@oracle/oraclejet-audit 18.1.5 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/corePackMigrator/corePackMigrator.js +1 -1
  2. package/corePackMigrator/metadata/badgeMetadata.json +66 -0
  3. package/corePackMigrator/metadata/checkboxsetMetadata.json +101 -0
  4. package/corePackMigrator/metadata/inputNumberMetadata.json +0 -3
  5. package/corePackMigrator/metadata/inputTextMetadata.json +0 -3
  6. package/corePackMigrator/metadata/labelMetadata.json +285 -222
  7. package/corePackMigrator/metadata/labelValueMetadata.json +226 -137
  8. package/corePackMigrator/metadata/listviewMetadata.json +7 -0
  9. package/corePackMigrator/metadata/radiosetMetadata.json +20 -9
  10. package/corePackMigrator/metadata/selectorMetadata.json +6 -0
  11. package/corePackMigrator/resource/astUtils.js +1 -1
  12. package/corePackMigrator/resource/componentMigrator.js +1 -1
  13. package/corePackMigrator/resource/fileScanner.js +1 -1
  14. package/corePackMigrator/resource/htmlUtils.js +1 -1
  15. package/corePackMigrator/resource/manifest.json +57 -49
  16. package/corePackMigrator/resource/migrationConfig.json +1 -1
  17. package/corePackMigrator/utilities/logging.js +2 -2
  18. package/jaf-amd.js +1 -1
  19. package/lib/Components.js +1 -1
  20. package/lib/Config.js +1 -1
  21. package/lib/FsUtils.js +1 -1
  22. package/lib/HtmlUtils.js +1 -1
  23. package/lib/JafLib.js +1 -1
  24. package/lib/MetaLib.js +1 -1
  25. package/lib/OjCPack.js +1 -1
  26. package/lib/RegTypes.js +1 -1
  27. package/lib/Registry.js +1 -1
  28. package/lib/Rules.js +1 -1
  29. package/lib/Ts.js +1 -1
  30. package/lib/TsUtils.js +1 -1
  31. package/lib/TsxUtils.js +1 -1
  32. package/lib/checkage.js +1 -1
  33. package/lib/defaults.js +1 -1
  34. package/lib/extends.js +1 -1
  35. package/lib/ns.js +1 -1
  36. package/lib/scaffold.js +1 -1
  37. package/lib/scopewalker.js +1 -1
  38. package/lib/sublib/precomp/Precompiler.js +1 -1
  39. package/libext/expparser.js +1 -1
  40. package/meta/18.0.0/jetauditmeta.js +1 -1
  41. package/meta/18.1.0/jetauditmeta.js +1 -1
  42. package/meta/19.0.0/jetauditmeta.js +9 -0
  43. package/meta/metaverlist.json +1 -1
  44. package/package.json +4 -4
  45. package/profiles/best-practice.json +3 -0
  46. package/profiles/redwood-strict.json +10 -1
  47. package/rulepacks/jetwc/jetwc-use-public-apis.js +6 -0
  48. package/rulepacks/jetwc/msgid.json +1 -1
  49. package/rulepacks/jetwc/rules.json +1 -1
  50. package/rulepacks/jetwc-lib/jetwcutils-componentAuditUtils.js +1 -1
  51. package/rulepacks/jetwc-lib/jetwcutils-componentFinder.js +1 -1
  52. package/rulepacks/jetwco/jetwco-cacc-properties.js +1 -1
  53. package/rulepacks/jetwco/rules.json +1 -1
  54. package/rules/jet/msgid.json +1 -1
  55. package/rules/jet/oj-acc-aria-accessible.js +1 -1
  56. package/rules/jet/oj-acc-aria-prop.js +1 -1
  57. package/rules/jet/oj-acc-navigable-link.js +6 -0
  58. package/rules/jet/oj-acc-select-aria-label.js +1 -1
  59. package/rules/jet/oj-cca-compjson-prop-conflict.js +6 -0
  60. package/rules/jet/oj-css-bp-zindex.js +7 -0
  61. package/rules/jet/oj-html-badge-maintenance.js +6 -0
  62. package/rules/jet/oj-html-binding-as-slot-child.js +1 -1
  63. package/rules/jet/oj-html-corequired.js +6 -0
  64. package/rules/jet/oj-html-nav-tab-nointeractive.js +6 -0
  65. package/rules/jet/oj-html-oj-ux-ico-slot.js +6 -0
  66. package/rules/jet/oj-html-ojtag-id.js +1 -1
  67. package/rules/jet/oj-html-redwood-ojoption-disabled.js +6 -0
  68. package/rules/jet/oj-html-slot-pref-content.js +1 -1
  69. package/rules/jet/oj-html-tabbar-progressive-popup.js +1 -1
  70. package/rules/jet/oj-html-wctag-for.js +1 -1
  71. package/rules/jet/oj-html-wctag-id.js +1 -1
  72. package/rules/jet/oj-html-wctag-maintenance.js +1 -1
  73. package/rules/jet/oj-html-wctag-packprivate.js +1 -1
  74. package/rules/jet/oj-js-poly-promise.js +1 -1
  75. package/rules/jet/oj-ts-poly-promise.js +1 -1
  76. package/rules/jet/oj-tsx-acc-navigable-link.js +6 -0
  77. package/rules/jet/oj-tsx-aria-prop.js +1 -1
  78. package/rules/jet/oj-tsx-corequired.js +6 -0
  79. package/rules/jet/oj-tsx-prop-ko-binding.js +6 -0
  80. package/rules/jet/oj-tsx-tabbar-progressive-popup.js +6 -0
  81. package/rules/jet/oj-tsx-wctag-packprivate.js +1 -1
  82. package/rules/jet/rules.json +1 -1
  83. package/schema/component-schema.json +1 -1
  84. package/src/JafCore.js +1 -1
  85. package/types/index.d.ts +5 -0
  86. package/corePackMigrator/metadata/messagesMetadata.json +0 -41
package/lib/MetaLib.js CHANGED
@@ -3,4 +3,4 @@
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
- "use strict";const Namespaces=require("./ns");const HtmlUtils=require("./HtmlUtils");const SemVer=require("semver");const NO_SUGGESTION_AVAIL="No suggestion available.";const OJPREFIX="oj-";const OJS="ojs/oj";const EVENT_ON="on";const DOT=".";const DATA_OJ_CMD="data-oj-command";const DASH_CHANGED="-changed";const CHANGED="Changed";const PROP_SLOTS="slots";const PROP_PROPS="props";const PROP_EVENTS="events";const PROP_IMPLEMENTS="implements";const PROP_FOLDER="folder";const PROP_VERSION="version";const PROP_UNSUP_THEME="unsupTheme";const PROP_SUBCOMPONENT_TYPE="subcomponentType";const PACK_PRIVATE="packPrivate";const ANTIPATTERN="antiPattern";const DEPRECATED="deprecated";const MAINTENANCE="maintenance";const SUPERSEDES="supersedes";const STATUS_PROP_TYPE="propertyType";const STATUS_PROP_VALUE="propertyValue";const FT_TSX="tsx";const STRING="string";const BOOLEAN="boolean";const OBJECT="object";function MetaLib(nd,runMode,msgCtx,utils,fsUtils){this._json=null;this._delHist=null;this._renHist=null;this._reqAttrs=null;this._nonClasses=null;this._implements=null;this._hasJetWCIFCs=false;this._components=null;this._compSvcs=null;this._stylesets=null;this._runMode=runMode;this._utils=utils;this._fsUtils=fsUtils;this._domUtils=null;if(nd.jetver){this._jetVersions=nd.jetver.getVersions()}this._jetVer=null;this._theme=null;this._curFileType=null;this._deprecatedMethods=null;this._deprecatedMembers=null;this._deletedMethods=null;this._deletedMembers=null;this._error=msgCtx.error;this._debug=msgCtx.debug;this._info=msgCtx.info;this._msg=msgCtx.msg;this._console=msgCtx.console;this._isDebug=msgCtx.isdebug;this._isVerbose=msgCtx.isVerbose;this._nd=nd};MetaLib.prototype.isNSRegistered=function(prefix){return Namespaces.has(prefix)};MetaLib.prototype.isNamespaceTag=function(tagName){var s=tagName.replace(/[<>]/g,"");var x,ret=false;if(tagName.startsWith("demo-")||tagName.startsWith("my-")||tagName.startsWith("ns-")){return true}while(true){x=s.lastIndexOf("-");if(x>=0){s=s.substring(0,x);if(s.lastIndexOf("-")<0&&s==="oj"){break}if(Namespaces.has(s)){ret=true;break}}else{break}}if(!ret&&this.isJetTag(tagName)){ret=true}return ret};MetaLib.prototype.isNamespacePrefix=function(tagName){return this.isNamespaceTag(tagName)};MetaLib.prototype.isRuleIgnored=function(tagName,ruleName){var o,ret=false;if(o=this._getComponentFromTag(tagName)){if(o.extension&&o.extension.audit&&o.extension.audit.ignore){let ar=o.extension.audit.ignore;if(ar&&ar.length){ret=ar.includes(ruleName)}}}else{ret=this._components&&this._components.isRuleIgnored(tagName,ruleName)}return ret};MetaLib.prototype.isJetCoreTag=function(tag){return!!this._components.isJetCoreTag(tag)};MetaLib.prototype.isCoreTag=function(tag){return this.isJetCoreTag(tag)};MetaLib.prototype.isJetLegacyTag=function(tag){return this._getComponentNameFromTag(_removeChevrons(tag))};MetaLib.prototype.isJetTag=function(tagName){return!!(this._components.isJetCoreTag(tagName)||this.isJetLegacyTag(tagName))};MetaLib.prototype.isComponentTag=function(tagName){return tagName?this._components&&this._components.isUserTag(_removeChevrons(tagName)):false};MetaLib.prototype.isWCTag=function(tagName){var ret=false;if(tagName){tagName=_removeChevrons(tagName);ret=this._getComponentNameFromTag(tagName)||this._components&&this._components.isKnownTag(tagName)}return ret};MetaLib.prototype.isCCATag=function(tagName){return tagName?this.isWCTag(tagName):false};MetaLib.prototype.isVComponentTag=function(tagName){return tagName?this._components.isVComponentTag(tagName):false};MetaLib.prototype.isTagDeprecated=function(tagName){var clazz,ret;if(clazz=this._getComponentNameFromTag(_removeChevrons(tagName))){ret=this.isClassDeprecated(clazz)}else{ret=this._components.isTagDeprecated(tagName)}return ret};MetaLib.prototype.isTagAttrDeprecated=function(tagName,attrName){var member,ret=null;if(!attrName){return null}member=this._getTagAttrMemberObj(tagName,attrName);ret=member?this._isSubStateDeprecated(member,true):this._components.isTagAttrDeprecated(tagName,attrName);if(ret){ret.forEach(status=>{if(status.description){status.description=HtmlUtils.replaceEntities(status.description)}})}return ret};MetaLib.prototype.isTagEventDeprecated=function(tag,attr){var comp,member,ev,deps,retStatus=null;if(comp=this._getComponentFromTag(tag)){if(!comp.event&&!comp.member){return null}if(ev=this._getLegacyEventName(comp,attr)){if(comp.event&&(member=comp.event[ev])||comp.htmlattributes&&(member=comp.member[ev])){if(deps=member.ojdeprecated){if(deps.length){retStatus=this._createLegacyDeprecatedStatus(deps,true)}}}}}else{retStatus=this._components.isTagEventDeprecated(tag,attr)}return retStatus};MetaLib.prototype._getLegacyEventName=function(comp,eventName){var event,ev;if(!eventName.includes("-")){eventName=this._domUtils.kebabCase(eventName)}if(comp.htmlevents&&(ev=comp.htmlevents[eventName])||eventName.endsWith(DASH_CHANGED)&&(ev=comp.htmlattributes[eventName])){if(!(comp.event&&comp.event[ev])){if(ev.endsWith(CHANGED)){ev=ev.substring(0,ev.length-CHANGED.length)}}}return ev?ev:null};MetaLib.prototype.getTagPropertyFromEvent=function(tagName,eventName){var comp,ev;if(comp=this._getComponentFromTag(tagName)){ev=this._getLegacyEventName(comp,eventName)}else{if(ev=this._components.getTagPropertyFromEvent(tagName,eventName)){ev=ev.name}}return ev?ev:null};MetaLib.prototype.isTagAttr=function(tagName,attrName){var o,ret=false;if(!attrName){return false}attrName=attrName.charAt(0)===":"?attrName.substring(1):attrName;if(o=this._getComponentFromTag(tagName)){ret=this.isJetTagAttr(o,attrName)}else{ret=this._components&&this._components.isTagAttr(tagName,attrName)}return ret};MetaLib.prototype.isJetTagAttr=function(tagObj,attrName){var ret;if(!attrName){return false}attrName=attrName.charAt(0)===":"?attrName.substring(1):attrName;ret=this._curFileType===FT_TSX?tagObj.member&&tagObj.member[attrName]:tagObj.htmlattributes&&tagObj.htmlattributes[attrName];if(!ret&&attrName===DATA_OJ_CMD&&tagObj.member){ret=tagObj.member[DATA_OJ_CMD]}return!!ret};MetaLib.prototype._getTagAttrMemberObj=function(tagName,attrName){var obj,attrib,member,x;if(!attrName){return null}obj=this._getComponentFromTag(_removeChevrons(tagName));attrName=attrName.charAt(0)===":"?attrName.substring(1):attrName;if(this._curFileType===FT_TSX){attrName=this._domUtils.kebabCase(attrName)}if(!obj||!obj.htmlattributes||!obj.htmlattributes[attrName]){return null}member=null;attrib=obj.htmlattributes[attrName];if(attrib){x=attrib.indexOf(DOT);if(x>=0){if(obj.member){member=this._findSubMember(obj,obj.member,attrib,attrib)}}else{member=obj.member[attrib];if(member){return member}}}return member};MetaLib.prototype._findSubMember=function(obj,mem,attrName,subMemberPart){var member,ts,sm,rest,x,ret=null;x=subMemberPart.indexOf(DOT);if(x>=0){sm=subMemberPart.substring(0,x);rest=subMemberPart.substring(x+1)}else{sm=subMemberPart;rest=null}for(member in mem){member=mem[member];if(member.name===attrName&&!rest){ret=member;break}if(member.name!==sm){continue}if(!rest){ret=member;break}if(member.submember){ret=this._findSubMember(obj,member.submember,attrName,rest);if(ret){break}}else if(member.tstype){ts=this._getTsTypeObject(member);if(ts){ret=this._findSubMember(obj,ts.member,attrName,rest);if(ret){break}}}if(ret){break}}return ret};MetaLib.prototype._getTsTypeObject=function(mem){var ts,o,s,x;ts=mem.tstype;if(ts&&ts.target==="Type"&&typeof ts.value===STRING){s=ts.value;s=s.replace("=","");x=s.indexOf("|");if(x>=0){s=s.substring(0,x).trimRight()}if(s.charAt(s.length-1)===">"){x=s.lastIndexOf("<");if(s>=0){s=s.substring(0,x)}}o=this._json[s];if(!o){o=this._json[mem.memberof];if(o.typedef){s=ts.value;x=s.lastIndexOf(DOT);if(x>=0){s=s.substring(x+1);o=o.typedef[s]}}}}return o?o:null};MetaLib.prototype._getSubMemberPart=function(fullAttr,soFar){var s,x;s=fullAttr.replace(soFar,"");if(s.length){if(s.charAt(0)==="."){x=s.indexOf(DOT,1);if(x>=0){s=soFar+s.substring(0,x)}else{s=soFar+s}}}else{s=soFar}return s};MetaLib.prototype._handleAttrObject=function(member){var link,types,i,x;types=member.tstype;if(types){for(i=0;i<types.length;i++){if(types[i].target==="Type"){link=types[i].value;link=link.replace("=","");x=link.indexOf("<K");if(x>=0){link=link.substring(0,x)}break}}}return link};MetaLib.prototype.hasTagAttrValues=function(tagName,attrName){var member,ojv,ret=false;if(!attrName){return false}if(member=this._getTagAttrMemberObj(tagName,attrName)){ojv=this._getOjValues(member);ret=!!ojv}else if(this._components.isKnownTag(tagName)){ret=this._components.hasTagAttrValues(tagName,attrName)}return ret};MetaLib.prototype.isTagAttrValue=function(tagName,attrName,attrValue){var member,ojv,values,curValue,valType,i,ret=false;if(!attrName){return false}member=this._getTagAttrMemberObj(tagName,attrName);if(member){ojv=this._getOjValues(member);if(ojv){values=ojv.name;for(i=0;i<values.length;i++){if(ojv.type){valType=ojv.type[i];curValue=_convertValue(valType,attrValue);ret=curValue===values[i]}else{ret=attrValue===values[i]}if(ret){break}}}else{ret=true}}else{if(this._components.isKnownTag(tagName)){ret=this._components.isTagAttrValue(tagName,attrName,attrValue)}}return ret};MetaLib.prototype.isTagAttrEnumValueDeprecated=function(tagName,attrName,enumValue){var member,ojv,values,deps,dep,i,j,ret=null;if(!attrName){return null}member=this._getTagAttrMemberObj(tagName,attrName);if(!member){return this._isCompTagAttrEnumDepr(tagName,attrName,enumValue)}if(!member.ojdeprecated){return null}if(ojv=this._getOjValues(member)){values=ojv.name;for(i=0;i<values.length;i++){if(values[i]===enumValue){deps=member.ojdeprecated;for(j=0;j<deps.length;j++){dep=deps[j];if(dep.type&&dep.type!=="deprecated"){continue}if(dep.target==="propertyValue"&&dep.for===enumValue){ret={type:DEPRECATED,since:dep.since,description:dep.description};break}}}if(ret){break}}}return ret};MetaLib.prototype._isCompTagAttrEnumDepr=function(tagName,attrName,enumValue){if(!attrName){return null}return this._components?this._components.isTagAttrEnumDeprecated(tagName,attrName,enumValue):null};MetaLib.prototype.hasTagSlot=function(tagName){var ret;if(this.isJetLegacyTag(tagName)){ret=this._getSlots(tagName)?true:false}else if(this._components){this._components.hasTagSlot(tagName)}return ret};MetaLib.prototype.hasTagDefaultSlot=function(tagName){return this.isTagSlotName(tagName,"")};MetaLib.prototype.hasTagDynamicSlot=function(tagName){var tag,comp,members,b=false;tag=_removeChevrons(tagName);if(comp=this._getComponentFromTag(tag)){b=!!comp.header?.ojdynamicslot}else if(this._components){b=this._components.hasTagDynamicSlot(tag)}return b};MetaLib.prototype.isTagSlotName=function(tagName,slotName){var tag,slot;tag=_removeChevrons(tagName);slotName=slotName?slotName:"";if(this.isJetLegacyTag(tag)){slot=this._getSlotByName(this._getComponentFromTag(tag),slotName)}else if(this._components){if(!HtmlUtils.isCommonElem(tag)){slot=this._components.hasTagSlotName(tag,slotName)}}return!!slot};MetaLib.prototype.isTagSlotValue=function(tagName,slotName){return this.isTagSlotName(tagName,slotName)};MetaLib.prototype.isTagDynamicSlotValue=function(tagName,slotName){};MetaLib.prototype.getPreferredSlotContent=function(tag,slot){var obj,ret=null;if(obj=this.getPreferredSlotContentEx(tag,slot)){ret=obj.interfaces}return ret};MetaLib.prototype.getPreferredSlotContentEx=function(tag,slot){var ret;tag=_removeChevrons(tag);slot=slot?slot:"";if(this.isJetLegacyTag(tag)){ret=this.getJetPreferredSlotContent(tag,slot)}else if(this._components&&this._implements){ret=this._components.getPreferredSlotContent(tag,slot,this._implements)}return ret};MetaLib.prototype.getJetPreferredSlotContent=function(tag,slot){var clazz,slot,prefContent,content,comps;if(!this._implements||!(clazz=this._getComponentFromTag(tag))){return null}if(!slot){let defMem;if(clazz.member&&(defMem=clazz.member["Default"])&&defMem.ojchild){if(prefContent=defMem.ojpreferredcontent){prefContent.forEach(impl=>{if(content=this._implements[impl]){if(!comps){comps=[]}comps.push(...content)}})}}}else{if(clazz.slot){if(slot=clazz.slot[slot]){if(prefContent=slot.ojpreferredcontent){prefContent.forEach(impl=>{if(content=this._implements[impl]){if(!comps){comps=[]}comps.push(...content)}})}}}}return prefContent||comps?{interfaces:prefContent,components:comps}:null};MetaLib.prototype.isTagSlotDeprecated=function(tag,slotName){var status,md,ret;md=this.getTagSlotMetadata(tag,slotName);if(md&&(status=md.status)){let stat;for(let i=0;i<status.length;i++){stat=status[i];if(!stat.type||stat.type===DEPRECATED){ret=stat;break}}}return ret?ret:null};MetaLib.prototype.getTagSlotMetadata=function(tag,slot){var ret;tag=_removeChevrons(tag);if(this.isJetLegacyTag(tag)){ret=this._getJetTagSlotMetadata(tag,slot)}else if(this._components){ret=this._components.getTagSlotMetadata(tag,slot)}return ret};MetaLib.prototype._getJetTagSlotMetadata=function(tag,slotName){var o,slot;if(!(o=this._getComponentFromTag(tag))){return null}if(!o.slot||!(slot=o.slot[slotName])){return null}let deps,ret={};if(slot.ojpreferredcontent){ret.preferredContent=slot.ojpreferredcontent}if(slot.hasOwnProperty("ojminitems")){ret.minItems=slot.ojminitems}if(slot.hasOwnProperty("ojmaxitems")){ret.maxItems=slot.ojmaxitems}if(deps=slot.ojdeprecated){let dep,oStat,i;ret.status=[];for(i=0;i<deps.length;i++){dep=deps[i];oStat={};if(dep.hasOwnProperty("type")){oStat.type=dep.type}if(!dep.type||dep.type===DEPRECATED){if(dep.hasOwnProperty("target")){oStat.target=dep.target}if(dep.hasOwnProperty("for")){oStat.for=dep.for}if(dep.hasOwnProperty("value")){oStat.value=dep.value}}else if(dep.type===ANTIPATTERN){if(dep.hasOwnProperty("themes")){oStat.themes=dep.themes}}if(dep.hasOwnProperty("since")){oStat.since=dep.since}if(dep.hasOwnProperty("description")){oStat.description=dep.description}ret.status.push(oStat)}}return ret};MetaLib.prototype.isTagSupportedInTheme=function(tag){var o,a,ret=true;o=this._getComponentFromTag(tag);if(o){if(o.header){a=o.header.ojunsupportedthemes;ret=!(a&&a.includes(this._theme))}}else{ret=this._components&&this._components.isTagSupportedInTheme(tag,this._theme)}return ret};MetaLib.prototype.isAttrSupportedInTheme=function(tag,attr){var o,a,ret=true;o=this._getTagAttrMemberObj(tag,attr);if(o){a=o.ojunsupportedthemes;ret=!(a&&a.includes(this._theme))}else{ret=this._components.isAttrSupportedInTheme(tag,attr,this._theme)}return ret};MetaLib.prototype.hasTagCompPropSubprop=function(tagName,propName){var obj,ret=false;if(this.isCCATag(tagName)){obj=this._getComponentFromTag(tagName);if(obj&&obj.member){ret=obj.member[propName];ret=ret&&ret.submember}else if(this._components){ret=this._components.getTagProp(tagName,propName);ret=ret&&ret.properties}}return ret};MetaLib.prototype.isTagCompProp=function(tagName,propName){var obj,ret=false;if(this.isCCATag(tagName)){obj=this._getComponentFromTag(tagName);if(obj&&obj.member){ret=obj.member[propName]}else if(this._components){ret=this._components.isTagProp(tagName,propName)}}return ret};MetaLib.prototype.getTagAttrType=function(tag,attr){var member=this._getTagAttrMemberObj(tag,attr);return member?member.type:this._components.getTagPropType(tag,attr)};MetaLib.prototype.getTagAttrTypeEx=function(tag,attr){var ret={};var member=this._getTagAttrMemberObj(tag,attr);var t=member?member.type:this._components.getTagPropType(tag,attr);ret.raw=t;ret.types=t.split("|");ret.types.forEach((v,i,ar)=>{v=v.trim().toLowerCase().replace("array","Array");ar[i]=v.replace(">.",">")});return ret};MetaLib.prototype.getTagPropType=function(tagName,propName){return this._components?this._components.getTagPropType(tagName,propName):null};MetaLib.prototype.getTagPropMetadata=function(tag,attr){var obj;if(this._components){obj=this._components.getComponentPropMetadata(tag,attr)}return obj};MetaLib.prototype.getTagMetadata=function(tagName){var obj,comp,hdr,events,props,event,ret=null;tagName=_removeChevrons(tagName);if(!(obj=this._getComponentFromTag(tagName))){if(this._components){ret=this._components.getComponentMetadata(tagName)}return ret}if(hdr=obj.hdr){comp={};comp.name=hdr.customelement;if(hdr.slot){comp[PROP_SLOTS]=obj.slots}}if(obj.properties){comp[PROP_PROPS]=props={};this._extractProps(props,null,obj.properties,obj.name)}if(obj.events){comp[PROP_EVENTS]=events={};for(event in obj.events){}}if(obj.implements){comp[PROP_IMPLEMENTS]=obj.implements}if(obj.extension&&obj.extension.theme&&obj.extension.theme.unsupportedThemes){comp[PROP_UNSUP_THEME]=obj.extension.theme.unsupportedThemes}if(hdr&&hdr.ojsubcomponenttype){comp[PROP_SUBCOMPONENT_TYPE]=hdr.subcomponenttype}return ret};MetaLib.prototype.getAllCustomMetadata=function(){return this._components.getAllCustomMetadata()};MetaLib.prototype.getOjcMetadataByPath=function(path){return this._components.getOjcMetadataByPath(path)||null};MetaLib.prototype._getObjectMetadata=function(name){return this._json[name]};MetaLib.prototype.getPackPaths=function(){return this._components?this._components.getPackPaths():null};MetaLib.prototype.getPackMetadata=function(packName){return this._components?this._components.getPackMetadata(packName):null};MetaLib.prototype.getAllPackMetadata=function(){return this._components?this._components.getAllPackMetadata():null};MetaLib.prototype.getAllResourceMetadata=function(){return this._components?this._components.getAllResourceMetadata():null};MetaLib.prototype.getResourceMetadata=function(path){return this._components?this._components.getResourceMetadata(path):null};MetaLib.prototype.getResourcePaths=function(){return this._components?this._components.getResourcePaths():null};MetaLib.prototype.isTagStyleDeprecated=function(tagName,styleName){var o,ret;o=this.isWCStyleDeprecated(styleName);if(o){tagName=_removeChevrons(tagName);if(this._json.ojStyles.containers[o.index]===tagName){ret=o.dep.description}}return ret};MetaLib.prototype.isTagStyle=function(tagName,styleName){var obj,ret=false,compName,containers,indices,index,i;tagName=_removeChevrons(tagName);if(obj=this._getComponentFromTag(tagName)){compName=this._getComponentNameFromTag(tagName);containers=this._json.ojStyles.containers;indices=_getStyleIndices(this._json.ojStyles,styleName);if(indices){for(i=0;i<indices.length;i++){index=indices[i];if(index>=0){if(containers[index]===compName){ret=true;break}}}}}else{ret=this._components.isTagStyle(tagName)}return ret};MetaLib.prototype.isStyle=function(style){return this.isGenStyle(style)||this.isClassStyle(style)||this.isStylesetStyle(style)};MetaLib.prototype.isGenStyle=function(style){var x=this._json.genericStyles[style];return x||x===0?true:false};MetaLib.prototype.isJetStyle=function(style){return this._json.genericStyles[style]?"g":this._json.ojStyles[style]?"j":undefined};MetaLib.prototype.isCustomStyle=function(style){return this._components&&this._components.isStyle(style)};MetaLib.prototype.getStyleOrigin=function(style){var ret;if(this._json.genericStyles[style]){ret="g"}if(this._json.ojStyles[style]){ret=ret?"b":"j"}if(!ret&&this._components){if(this._components.isStyle(style)){ret="c"}}return ret};MetaLib.prototype.isClassStyle=function(style){var x=this._json.ojStyles[style];return x||x===0?true:false};MetaLib.prototype.isStylesetStyle=function(style){return this._stylesets?!!this._stylesets[style]:false};MetaLib.prototype.getStyleSelector=function(style,jet){var o,i,ret;if(typeof jet===BOOLEAN){o=jet?this._json.ojStyles[style]:this._json.genericStyles[style]}else{o=this._json.ojStyles[style];if(!o&&o!==0){o=this._json.genericStyles[style]}if(!o&&this._components){o=this._components.getStyleMetadata(style)}}if(this._utils.isObject(o)){if(o.styleselector){ret=o.styleselector}else if(o.meta){ret=o.meta.styleSelector}}else if(Array.isArray(o)){for(i=0;i<o.length;i++){if(this._utils.isObject(o[i])&&o[i].styleselector){if(!ret){ret=[]}ret.push(o[i].styleselector)}}if(ret&&ret.length===1){ret=ret[0]}}return ret?ret:null};MetaLib.prototype.isJetStylePrefix=function(s){var x;if(!s.startsWith(OJPREFIX)||!this._json.jetCssPrefixes.classes){return false}x=s.indexOf("-",3);if(x>=0){s=s.substring(0,x)}return this._json.jetCssPrefixes.classes.includes(s)};MetaLib.prototype.hasJetStylePrefixes=function(){return this._json.jetCssPrefixes&&this._json.jetCssPrefixes.classes};MetaLib.prototype.getClassesFromStyle=function(styleName,scope){var indices,oStyles,ret;scope=scope||"oj";if(scope==="oj"||scope==="both"){oStyles=this._json.ojStyles;if(oStyles){indices=_getStyleIndices(oStyles,styleName);if(indices){return _toContainers(oStyles,indices)}}}if(scope==="gen"||scope==="both"){oStyles=this._json.genericStyles;if(oStyles){indices=_getStyleIndices(oStyles,styleName);if(indices){ret=_toContainers(oStyles,indices)}}}return ret?ret:null};MetaLib.prototype.getJetTagFromStyle=function(styleName){var indices,oStyles,clazz;oStyles=this._json.ojStyles;if(oStyles){indices=_getStyleIndices(oStyles,styleName)}if(indices){if(indices.length>1||indices.length===0){clazz=null}else{clazz=this.isGenStyle(styleName)?null:_toContainers(oStyles,indices)}}return clazz?this.getTagFromClass(clazz):null};MetaLib.prototype.getJetTagsFromStyle=function(styleName){var indices,oStyles;oStyles=this._json.ojStyles;if(oStyles){indices=_getStyleIndices(oStyles,styleName);if(indices){return _toContainers(oStyles,indices,this._json)}}return null};MetaLib.prototype.getClassFromTag=function(tagName){return this._getComponentNameFromTag(_removeChevrons(tagName))};MetaLib.prototype.getClassFromModule=function(module){var clazz=this._json.moduleLookup[module];return clazz?clazz:null};MetaLib.prototype.getTagFromClass=function(className){if(className==="oj.ojTree"){return"oj-tree"}let ret=this._json[className];return ret&&ret.header?ret.header.customelement:null};MetaLib.prototype.isClass=function(className){var b=this._json[className];if(!b){if(className=this._classChange[className]){b=this._json[className]}}return!!b};MetaLib.prototype.isClassFinal=function(className){var clazz=this._json[className];if(!clazz){if(className=this._classChange[className]){clazz=this._json[className]}}return clazz&&clazz.header&&clazz.header.readonly};MetaLib.prototype.isClassMethod=function(className,methName){var clazz=this._json[className];return!!(clazz&&clazz.function&&clazz.function[methName])};MetaLib.prototype.isClassMethodStatic=function(className,methName){var meth,ret=null;var clazz=this._json[className];if(clazz&&clazz.function){meth=clazz.function[methName];ret=meth&&meth.scope&&meth.scope=="static"}return ret};MetaLib.prototype.getClassMethodScope=function(className,methName){var meth,ret=null;var clazz=this._json[className];if(clazz&&clazz.function){meth=clazz.function[methName];ret=meth.scope}return ret};MetaLib.prototype.isClassMember=function(className,memName){var clazz=this._json[className];return!!(clazz&&clazz.member&&clazz.member[memName])};MetaLib.prototype.isClassMemberStatic=function(className,memName){var mem,ret=null;var clazz=this._json[className];if(clazz&&clazz.member){mem=clazz.member[memName];ret=mem&&mem.scope&&mem.scope=="static"}return ret};MetaLib.prototype.getRequiredAttrs=function(tagName){let obj,clazz,i,ret=null;tagName=_removeChevrons(tagName);if(obj=this._getComponentFromTag(tagName)){clazz=this._getComponentNameFromTag(tagName)}ret=obj?this._reqAttrs[clazz]:this._components.getRequiredProps(tagName);if(this._curFileType!==FT_TSX&&ret&&ret.length){let ret2=[];for(i=0;i<ret.length;i++){ret2[i]=this._domUtils.kebabCase(ret[i])}ret=ret2}return ret};MetaLib.prototype.getTagsFromStyle=function(styleName){var classNames,tag,i,ret;ret=null;classNames=this.getClassesFromStyle(styleName);if(classNames){for(i=0;i<classNames.length;i++){tag=this.getTagFromClass(classNames[i]);if(tag){if(!ret){ret=[]}ret.push(tag)}}}return ret?ret:null};MetaLib.prototype.isStyleDeprecated=function(name){var s,o,t,i;s=this._json.genericStyles[name];if(!s&&s!==0&&this._json.ojStyles){s=this._json.ojStyles[name];if(!s&&s!==0&&this._stylesets){if(s=this._stylesets[name]){if(this._utils.isObject(s)){return!s.type||s.type==="deprecated"?s:null}}}}if(s){t=typeof s;if(Array.isArray(s)){for(i=0;i<s.length;i++){o=s[0];if(typeof o===OBJECT){if(!o.type||o.type==="deprecated"){break}}}}else if(t==="object"){if(!s.type||s.type==="deprecated"){o=s}}else{o=null}}return o?o.dep:null};MetaLib.prototype.isStyleDeprecatedEx=function(style){var a=null,ss,t,i;function _pushSS(o){if(o.dep){if(!o.dep.type||o.dep.type==="deprecated"){if(!a){a=[]}a.push(o)}}};function _stashSS(s){t=typeof s;if(Array.isArray(s)){for(i=0;i<s.length;i++){_pushSS(s[i])}}else if(t==="object"){_pushSS(s)}};if(ss=this._json.genericStyles[style]){_stashSS(ss)}if(ss=this._json.ojStyles[style]){_stashSS(ss)}else if(ss!==0&&this._stylesets){ss=this._stylesets[style];return this._utils.isObject(ss)?ss:null}return a};MetaLib.prototype.isWCStyleDeprecated=function(name){var s,o,t,i;s=this._json.ojStyles[name];if(s){t=typeof s;if(Array.isArray(s)){for(i=0;i<s.length;i++){o=s[i];if(typeof o===OBJECT){break}o=null}}else if(t==="object"){o=s}}return o?o:null};MetaLib.prototype.isBindingTag=function(tagName){var obj=this._getComponentFromTag(_removeChevrons(tagName));return obj&&obj.header?!!obj.header.ojbindingelement:false};MetaLib.prototype.isComponent=function(className){var obj=this._json[className];if(!obj){if(!className.startsWith("oj.")){obj=this._json["oj."+className]}}return!!obj};MetaLib.prototype.isClass=function(className){return!!this._json[className]};MetaLib.prototype.isJetComponentClass=function(className){return this.isClass(className)};MetaLib.prototype.isComponentDeprecated=function(className){return this.isClassDeprecated(className)};MetaLib.prototype.isClassDeleted=function(className){var classes,cn,version=null;if(this._delHist){if(classes=this._delHist.classes){cn=this._classChange[className];if(cn){className=cn}version=classes[className]}}return version};MetaLib.prototype.isClassRenamed=function(className){return this._renHist?this._renHist[className]:null};MetaLib.prototype.isClassDeprecated=function(className){var obj,ret=null;if(className==="oj.ojTree"){if(SemVer.gte(this._jetVer,"5.2.0")){return null}else{return{type:DEPRECATED,since:"5.2.0",description:"Use ojTreeView instead"}}}if(!(obj=this._json[className])){className=this._classChange[className];obj=className?this._json[className]:undefined}if(obj){if(obj.header){ret=this._isClassDeprecated(obj.header);if(ret&&ret.description){ret.description=this._utils.removeLink(ret.description)}}if(!ret){ret=this._isClassDeprecated(obj)}}return ret};MetaLib.prototype._isClassDeprecated=function(obj){var depr,status,ret=null;if(obj){if(obj.ojdeprecated&&obj.ojdeprecated.length){depr=obj.ojdeprecated;for(status of depr){if(!status.type||status.type===DEPRECATED){ret=status;if(!ret.type){ret.type=DEPRECATED}break}}}else if(depr=obj.deprecated){ret={type:DEPRECATED,description:typeof depr===BOOLEAN?NO_SUGGESTION_AVAIL:depr}}}return ret};MetaLib.prototype.isClassMethodDeleted=function(className,methodName){var a,cn,i,ret=null;a=this._deletedMethods[methodName];if(a){cn=this._classChange[className];if(cn){className=cn}for(i=0;i<a.length;i++){if(a[i]===className){ret=a[i+1];break}i++}}return ret};MetaLib.prototype.isClassMethodDeprecated=function(className,methodName){var obj,method,ret=null;obj=this._json[className];if(!obj){className=this._classChange[className];obj=className?this._json[className]:undefined}if(obj&&obj.function){for(method in obj.function){if(method===methodName){method=obj.function[method];ret=this._isSubStateDeprecated(method);break}}}return ret};MetaLib.prototype.isClassMemberDeleted=function(className,memberName){var a,i,cname,ret=null;a=this._deletedMembers[memberName];if(a){cname=this._classChange[className];for(i=0;i<a.length;i++){if(a[i]===className||a[i]===cname){ret=a[i+1];break}i++}}return ret};MetaLib.prototype.isClassMemberDeprecated=function(className,memName){var obj,member,obj,ret=null;obj=this._json[className];if(!obj){className=this._classChange[className];obj=className?this._json[className]:undefined}if(obj&&obj.member){memName=memName.charAt(0)===":"?memName.substring(1):memName;for(member in obj.member){if(member===memName){member=obj.member[memName];ret=this._isSubStateDeprecated(member,true);break}}}return ret};MetaLib.prototype.isClassAttrDeprecated=function(className,attrName){var obj,member,ret=null;obj=this._json[className];attrName=attrName.charAt(0)===":"?attrName.substring(1):attrName;if(obj&&obj.member){for(member in obj.member){member=obj.member[member];if(attrName===member.name){ret=this._isSubStateDeprecated(member,true);break}}}return ret};MetaLib.prototype.isComponentDeleted=function(className){return this.isClassDeleted(className)};MetaLib.prototype.isComponentAttrDeprecated=function(className,attrName){return this.isClassAttrDeprecated(className,attrName)};MetaLib.prototype.isComponentMethodDeprecated=function(className,methodName){return this.isClassMethodDeprecated(className,methodName)};MetaLib.prototype.isComponentMemberDeprecated=function(className,memberName){return this.isClassMemberDeprecated(className,memberName)};MetaLib.prototype.isComponentMethodDeleted=function(className,methodName){return this.isClassMethodDeleted(className,methodName)};MetaLib.prototype.isComponentMemberDeleted=function(className,memberName){return this.isClassMemberDeleted(className,memberName)};MetaLib.prototype.isTagPackPrivate=function(tag){var o,ret;if(!tag){return false}tag=_removeChevrons(tag);if(this.isJetTag(tag)){if(o=this._getComponentFromTag(tag)){ret=o.header&&o.header.ojsubcomponenttype===PACK_PRIVATE}}else if(this._components){ret=this._components.isTagPackPrivate(tag)}return ret};MetaLib.prototype.isTagAttrTranslatable=function(tag,attr){var member=this._getTagAttrMemberObj(tag,attr);return member?this._isSubStateTranslatable(member):this._components.isTagAttrTranslatable(tag,attr)};MetaLib.prototype.isTagAttrReadOnly=function(tag,attr){var o,ret=false;tag=_removeChevrons(tag);if(o=this._getTagAttrMemberObj(tag,attr)){ret=o&&o.readonly}else if(this._components){ret=this._components.isTagAttrReadOnly(tag,attr)}return ret};MetaLib.prototype.isTagAttrWriteback=function(tag,attr){var o,ret=false;tag=_removeChevrons(tag);if(o=this._getTagAttrMemberObj(tag,attr)){ret=o&&o.ojwriteback}else if(this._components){ret=this._components.isTagAttrWriteback(tag,attr)}return ret};MetaLib.prototype.hasTagDataOjCommand=function(tagName){var obj,ret=false,compName,containers,indexes,i;tagName=_removeChevrons(tagName);obj=this._getComponentFromTag(tagName);if(obj){compName=this._getComponentNameFromTag(tagName);indexes=this._json.dataOjCommand;if(indexes){containers=this._json.ojStyles.containers;for(i=0;i<indexes.length;i++){if(containers[indexes[i]]===compName){ret=true;break}}}}return ret};MetaLib.prototype.isTagEvent=function(tagName,eventName){var obj,attr,x,evName,ret=false;eventName=eventName.charAt(0)===":"?eventName.substring(1):eventName;evName=eventName.includes("-")?eventName:this._domUtils.kebabCase(eventName);if(!eventName.startsWith(EVENT_ON)){return ret}if(this.isWCTag(tagName)){if(this._getComponentNameFromTag(tagName)){obj=this._getComponentFromTag(_removeChevrons(tagName));if(this._curFileType===FT_TSX){if(!(evName=this._transformTsxLegacyTagEvent(eventName))){return false}}if(obj&&obj.htmlevents){ret=!!obj.htmlevents[evName]}if(!ret){if((x=evName.lastIndexOf(DASH_CHANGED))>=0){attr=evName.substring(3,x);attr=this._domUtils.camelCase(attr);ret=!!obj.member[attr]}}}else{ret=this._components&&this._components.isTagEvent(tagName,eventName)}if(!ret){ret=HtmlUtils.isCommonEventAttr(eventName)}}return ret};MetaLib.prototype._transformTsxLegacyTagEvent=function(eventName){var evName;if(eventName.startsWith("on")){let c,i=2;if(eventName.substring(2,4)==="oj"){i=4}c=eventName.charAt(i).toUpperCase();i++;evName=this._domUtils.kebabCase("on"+(i>4?"Oj":"")+c+eventName.substring(i))}return evName};MetaLib.prototype.isTagStatus=function(tag,statType){var clazz,ret;if(clazz=this._getComponentNameFromTag(_removeChevrons(tag))){let stats,status;if(stats=clazz?.header?.ojdeprecated){for(i=0;i<status.length;i++){status=stats[i];if(status.type===statType||statType===DEPRECATED&&!status.hasOwnProperty("type")){ret=true;break}}}}else{ret=this._components.isTagStatus(tag,statType)}return!!ret};MetaLib.prototype.getTagStatus=function(tag,statType){var clazz,ret=null;if(statType&&!this._isTagStatusType(statType)){return null}if(!(clazz=this._getComponentNameFromTag(_removeChevrons(tag)))){return this._components.getTagStatus(tag,statType)}if(clazz==="oj.ojTree"){if(SemVer.gte(this._jetVer,"5.2.0")){return null}else{if(statType===DEPRECATED){return[{type:DEPRECATED,description:"Use <oj-tree-view> instead"}]}else if(statType===SUPERSEDES){return[{type:SUPERSEDES,description:"Superseded by <oj-tree-view>"}]}return null}}let obj=this._json[clazz];if(obj&&obj.header){let arStat,omitted=statType===undefined;if(Array.isArray(arStat=obj.header.ojdeprecated)){let stat,i,stType;for(i=0;i<arStat.length;i++){stat=arStat[i];if(!(stType=stat.type)){stType=DEPRECATED}if(omitted||stType===statType){if(!ret){ret=[]}ret.push(obj={type:stType});if(stat.hasOwnProperty("target")){obj.target=stat.target}if(stat.hasOwnProperty("value")){obj.value=stat.value}if(stat.hasOwnProperty("since")){obj.since=stat.since}if(stat.hasOwnProperty("description")){obj.description=stat.description}if(stType===ANTIPATTERN&&stat.hasOwnProperty("themes")){ret.themes=stat.themes}this._handleStatusFor(stat,stType,ret)}}}else if(typeof arStat===STRING){ret=[{description:arStat}]}}return ret};MetaLib.prototype._isTagStatusType=function(type){return type===DEPRECATED||type===MAINTENANCE||type===SUPERSEDES||type===ANTIPATTERN};MetaLib.prototype.getPropStatus=function(tagName,propName,statType){var clazz,prop,propName2,status,ret;var omitted=statType===undefined;if(statType&&!this._isTagStatusType(statType)){return null}propName=propName.charAt(0)===":"?propName.substring(1):propName;if(clazz=this._getComponentNameFromTag(_removeChevrons(tagName))){let obj=this._json[clazz];if(this._curFileType===FT_TSX){if(obj.member){propName2=obj.member[propName]}}else if(obj.htmlattributes){propName2=obj.htmlattributes[propName]}if(!propName2){return null}if(obj&&obj.member&&(prop=obj.member[propName2])){if(status=prop.ojdeprecated){let i;for(i=0;i<status.length;i++){let stat,stType,o;stat=status[i];if(!(stType=stat.type)){stType=DEPRECATED}if(omitted||stType===statType){if(!ret){ret=[]}o={type:stType};if(stat.hasOwnProperty("target")){o.target=stat.target}if(stat.hasOwnProperty("value")){o.value=stat.value}if(stat.hasOwnProperty("since")){o.since=stat.since}if(stat.hasOwnProperty("description")){o.description=stat.description}if(stType===ANTIPATTERN&&stat.hasOwnProperty("themes")){o.themes=stat.themes}this._handleStatusFor(stat,stType,o);ret.push(o)}}}}}else{propName2=this._curFileType===FT_TSX?propName:this._domUtils.camelCase(propName);ret=this._components.getPropStatus(tagName,propName2,statType)}return ret?ret:null};MetaLib.prototype._handleStatusFor=function(stat,stType,obj){if(stType===ANTIPATTERN){if(stat.hasOwnProperty("for")&&obj.target===STATUS_PROP_VALUE){obj.value=stat.for}}else if(stType===DEPRECATED&&stat.hasOwnProperty("for")){if(obj.target===STATUS_PROP_VALUE||obj.target===STATUS_PROP_TYPE){obj.value=stat.for}}else if(stType===MAINTENANCE||stType===SUPERSEDES){if(stat.hasOwnProperty("for")){obj.value=stat.for}}};MetaLib.prototype.applySchema=function(obj){return this._compSvcs.validateComponentJsonWithSchema(obj)};MetaLib.prototype.walkElemStackForOJTag=function(ctx,excludeBindIf){var i,name,ret=null;var stack=ctx.elemStack;if(stack&&stack.length){for(i=stack.length-1;i>=0;i--){name=stack[i].name;if(name.toLowerCase().startsWith(OJPREFIX)){if(!name.startsWith("oj-bind-")||!excludeBindIf){ret=name;break}}}}return ret};MetaLib.prototype.walkDomStackForOJTag=function(ctx,excludeBindIf){return this.walkElemStackForOJTag(ctx,excludeBindIf)};MetaLib.prototype.getPublicInterface=function(){return{isJetTag:this.isJetTag.bind(this),isWCTag:this.isWCTag.bind(this),isComponentTag:this.isComponentTag.bind(this),isJetCoreTag:this.isJetCoreTag.bind(this),isCoreTag:this.isCoreTag.bind(this),isJetLegacyTag:this.isJetLegacyTag.bind(this),isTagDeprecated:this.isTagDeprecated.bind(this),isTagSupportedInTheme:this.isTagSupportedInTheme.bind(this),isAttrSupportedInTheme:this.isAttrSupportedInTheme.bind(this),isTagAttrDeprecated:this.isTagAttrDeprecated.bind(this),isTagAttrTranslatable:this.isTagAttrTranslatable.bind(this),isTagAttrReadOnly:this.isTagAttrReadOnly.bind(this),isTagAttrEnumValueDeprecated:this.isTagAttrEnumValueDeprecated.bind(this),isTagAttr:this.isTagAttr.bind(this),isJetTagAttr:this.isJetTagAttr.bind(this),hasTagAttrValues:this.hasTagAttrValues.bind(this),isTagAttrValue:this.isTagAttrValue.bind(this),getTagAttrType:this.getTagAttrType.bind(this),getTagAttrTypeEx:this.getTagAttrTypeEx.bind(this),getAllCustomMetadata:this.getAllCustomMetadata.bind(this),getTagMetadata:this.getTagMetadata.bind(this),getTagPropMetadata:this.getTagPropMetadata.bind(this),getOjcMetadataByPath:this.getOjcMetadataByPath.bind(this),getAllPackMetadata:this.getAllPackMetadata.bind(this),getPackMetadata:this.getPackMetadata.bind(this),getPackPaths:this.getPackPaths.bind(this),getAllResourceMetadata:this.getAllResourceMetadata.bind(this),getResourceMetadata:this.getResourceMetadata.bind(this),getResourcePaths:this.getResourcePaths.bind(this),isTagCompProp:this.isTagCompProp.bind(this),hasTagCompPropSubprop:this.hasTagCompPropSubprop.bind(this),getTagPropType:this.getTagPropType.bind(this),hasTagSlot:this.hasTagSlot.bind(this),hasTagDefaultSlot:this.hasTagDefaultSlot.bind(this),isTagSlotName:this.isTagSlotName.bind(this),isTagSlotValue:this.isTagSlotValue.bind(this),isTagSlotDeprecated:this.isTagSlotDeprecated.bind(this),getPreferredSlotContent:this.getPreferredSlotContent.bind(this),getPreferredSlotContentEx:this.getPreferredSlotContentEx.bind(this),getTagSlotMetadata:this.getTagSlotMetadata.bind(this),hasTagDataOjCommand:this.hasTagDataOjCommand.bind(this),isBindingTag:this.isBindingTag.bind(this),isTagAttrWriteback:this.isTagAttrWriteback.bind(this),isTagPackPrivate:this.isTagPackPrivate.bind(this),isTagStatus:this.isTagStatus.bind(this),getTagStatus:this.getTagStatus.bind(this),getPropStatus:this.getPropStatus.bind(this),isClass:this.isClass.bind(this),isClassRenamed:this.isClassRenamed.bind(this),isClassDeleted:this.isClassDeleted.bind(this),isClassDeprecated:this.isClassDeprecated.bind(this),isClassMethodDeleted:this.isClassMethodDeleted.bind(this),isClassMemberDeleted:this.isClassMemberDeleted.bind(this),isClassMethodDeprecated:this.isClassMethodDeprecated.bind(this),isClassMemberDeprecated:this.isClassMemberDeprecated.bind(this),isClassAttrDeprecated:this.isClassAttrDeprecated.bind(this),isClassFinal:this.isClassFinal.bind(this),isClassMethod:this.isClassMethod.bind(this),isClassMethodStatic:this.isClassMethodStatic.bind(this),isClassMember:this.isClassMember.bind(this),isClassMemberStatic:this.isClassMemberStatic.bind(this),getClassMethodScope:this.getClassMethodScope.bind(this),getStyleOrigin:this.getStyleOrigin.bind(this),isJetStyle:this.isJetStyle.bind(this),isCustomStyle:this.isCustomStyle.bind(this),isTagStyle:this.isTagStyle.bind(this),isStyle:this.isStyle.bind(this),isGenStyle:this.isGenStyle.bind(this),isClassStyle:this.isClassStyle.bind(this),isStylesetStyle:this.isStylesetStyle.bind(this),isStyleDeprecated:this.isStyleDeprecated.bind(this),isStyleDeprecatedEx:this.isStyleDeprecatedEx.bind(this),getStyleSelector:this.getStyleSelector.bind(this),getNonSSStyleElems:this.getNonSSStyleElems.bind(this),isJetStylePrefix:this.isJetStylePrefix.bind(this),hasJetStylePrefixes:this.hasJetStylePrefixes.bind(this),isTagEvent:this.isTagEvent.bind(this),isTagEventDeprecated:this.isTagEventDeprecated.bind(this),getTagPropertyFromEvent:this.getTagPropertyFromEvent.bind(this),getTagsFromStyle:this.getTagsFromStyle.bind(this),getJetTagFromStyle:this.getJetTagFromStyle.bind(this),getJetTagsFromStyle:this.getJetTagsFromStyle.bind(this),getClassesFromStyle:this.getClassesFromStyle.bind(this),getClassFromTag:this.getClassFromTag.bind(this),getClassFromModule:this.getClassFromModule.bind(this),getTagFromClass:this.getTagFromClass.bind(this),getDeprecatedMethodList:this.getDeprecatedMethodList.bind(this),getDeprecatedMemberList:this.getDeprecatedMemberList.bind(this),getDeletedMethodList:this.getDeletedMethodList.bind(this),getDeletedMemberList:this.getDeletedMemberList.bind(this),getRequiredAttrs:this.getRequiredAttrs.bind(this),isComponent:this.isComponent.bind(this),isNamespaceTag:this.isNamespaceTag.bind(this),isNSRegistered:this.isNSRegistered.bind(this),isNamespacePrefix:this.isNamespacePrefix.bind(this),isRuleIgnored:this.isRuleIgnored.bind(this),getRenamedClassList:this.getRenamedClassList.bind(this),getDeletedClassList:this.getDeletedClassList.bind(this),processImplements:this.processImplements.bind(this),isInterfaceImplemented:this.isInterfaceImplemented.bind(this),getInterfaces:this.getInterfaces.bind(this),getImplementers:this.getImplementers.bind(this),getSubcomponentType:this.getSubcomponentType.bind(this),getWCInterfaces:this.getWCInterfaces.bind(this),hasWCInterfaces:this.hasWCInterfaces.bind(this),hasJetWCInterfaces:this.hasJetWCInterfaces.bind(this),getMetaVers:this.getMetaVers.bind(this),walkElemStackForOJTag:this.walkelemStackForOJTag,walkDomStackForOJTag:this.walkDomStackForOJTag,isIgnoreAttr:this.isIgnoreAttr.bind(this),applySchema:this.applySchema.bind(this),getRevisionInfo:this.getRevisionInfo.bind(this),_getObjectMetadata:this._getObjectMetadata.bind(this)}};MetaLib.prototype.loadMeta=function(metaFile){var metaObj,ret=false;if(!this._json){try{if(metaObj=this._nd.metaLoader.loadMeta(metaFile,this._nd,this._fsUtils)){this._json=metaObj.meta;this._delHist=metaObj.delMeta;this._renHist=metaObj.renMeta;this._reqAttrs=metaObj.reqattr;this._jetVerRaw=this._json.meta.jetversion;this._jetVer=_removeJetVerExtension(this._jetVerRaw);this._metaCommonAnalysis();ret=true}else{this._error(`Metadata '${metaFile}' not found!`)}}catch(e){this._error(`[${e.name}]: Metadata load (${metaFile}) - ${e.message}`)}}return ret};MetaLib.prototype.getNonLegacyMaintenanceTags=function(){return this._components.getMaintenanceTags()};MetaLib.prototype.getRenamedClassList=function(){return this._renHist};MetaLib.prototype.getDeletedClassList=function(){return this._delHist};MetaLib.prototype.processImplements=function(tag,impls){if(Array.isArray(impls)&&this._implements){impls.forEach(impl=>{if(this._implements[impl]){this._implements[impl].push(tag)}else{this._implements[impl]=[tag]}})}};const OJV_CHARS=/[<>]/;MetaLib.prototype._getOjValues=function(mem){var ts,ret;if(!mem){return false}if(mem.ojvalues){if(mem.ojvalues.name&&Array.isArray(mem.ojvalues.name)&&mem.ojvalues.name.length){return mem.ojvalues}return}if(mem.tstype&&mem.tstype.m_ojvalues){return mem.tstype.m_ojvalues}ts=this._getTsTypeObject(mem);if(ts&&ts.ojvalues&&ts.ojvalues.name){if(Array.isArray(ts.ojvalues.name)&&ts.ojvalues.name.length){ret=ts.ojvalues}}return ret};MetaLib.prototype.getImplementers=function(ifc){var ret;if(this._implements&&ifc){ret=this._implements[ifc]}return ret||null};MetaLib.prototype.getInterfaces=function(tag){var obj,hdr,impls,ret;if(!tag){return null}tag=_removeChevrons(tag);if(this.isJetLegacyTag(tag)){if(obj=this._getComponentFromTag(tag)){if(hdr=obj.header){if(hdr.domInterface&&hdr.customelement){impls=hdr.domInterface;ret=Array.isArray(impls)?impls:[impls]}}}}else if(this.isComponentTag(tag)||this.isJetCoreTag(tag)){ret=this._components.getInterfaces(tag)}return ret||null};MetaLib.prototype.getWCInterfaces=function(){return this._implements};MetaLib.prototype.hasJetWCInterfaces=function(){return this._hasJetWCIFCs};MetaLib.prototype.hasWCInterfaces=function(){return!!this._implements};MetaLib.prototype.isInterfaceImplemented=function(tag,ifcName){var ifc,ret;if(ifc=this.getInterfaces(tag)){for(let i=0;i<ifc.length;i++){if(ifc[i]===ifcName){ret=true;break}}}return!!ret};MetaLib.prototype.getSubcomponentType=function(tag){var obj,hdr,ret;if(tag=_removeChevrons(tag)){if(this.isJetTag(tag)){if(obj=this._getComponentFromTag(tag)){if(hdr=obj.header){ret=hdr.ojsubcomponenttype}}}else if(this.isComponentTag(tag)){ret=this._components.getSubcomponentType(tag)}}return ret||null};MetaLib.prototype._createNonClassList=function(mp){this._nonClasses=mp.nonClasses?mp.nonClasses:["genericStyles","ojStyles"];this._nonClasses.push("moduleLookup");this._nonClasses.push("newGenericStyles");this._nonClasses.push("newOjStyles");if(!this._nonClasses.includes("custElementClassLookup"))this._nonClasses.push("custElementClassLookup");if(!this._nonClasses.includes("meta"))this._nonClasses.push("meta");if(!this._nonClasses.includes("ResponsivePrefixes"))this._nonClasses.push("ResponsivePrefixes")};MetaLib.prototype.setAmdMeta=function(obj){this._json=obj.jetMeta.meta;this._delHist=obj.jetMeta.delMeta;this._reqAttrs=obj.jetMeta.reqattr;this._jetVerRaw=this._json.meta.jetversion;this._jetVer=_removeJetVerExtension(this._jetVerRaw);this._metaCommonAnalysis();return true};MetaLib.prototype._metaCommonAnalysis=function(){this._createNonClassList(this._json.meta);this._createModuleLookup();this._createClassNameChanges();this._fixup_jet_42315();this._createImplements()};MetaLib.prototype.setTheme=function(theme){this._theme=theme};MetaLib.prototype._createModuleLookup=function(){var comps,compName,lookup,hdr;if(this._json.moduleLookup){return}this._json.moduleLookup=lookup={};comps=this._json;for(compName in comps){if(!this._nonClasses.includes(compName)&&!compName.startsWith("oj.__")){hdr=comps[compName].header;if(hdr){lookup[OJS+hdr.name.toLowerCase()]=compName}}}};MetaLib.prototype._createClassNameChanges=function(){var comps,compName,o,hdr;if(this._classChange=this._json.meta.isClassNameChanges){return}this._classChange=o={};comps=this._json;for(compName in comps){if(!this._nonClasses.includes(compName)){hdr=comps[compName].header;if(hdr&&compName!==hdr.name){o[hdr.name]=compName}}}this._json.meta.isClassNameChanges=true};MetaLib.prototype._fixup_jet_42315=function(){var o;if(SemVer.gte(this._jetVer,"8.0.0")){if(o=this._json.Color||this._json["oj.Color"]||this._json["oj.ojColor"]){if(!o.header){o.header={}}o.header.readonly=true}}};MetaLib.prototype._createImplements=function(){var clazzes,clazz,tag,impls,impl,o={},a,hdr;if(this._implements=this._json.meta.interfaces){return}clazzes=this._json;for(clazz in clazzes){if(this._nonClasses.includes(clazz)){continue}if(hdr=clazzes[clazz].header){if(hdr.domInterface&&hdr.customelement){impls=hdr.domInterface;impls=Array.isArray(impls)?impls:[impls];for(impl of impls){if(o[impl]){a=o[impl]}else{o[impl]=a=[]}this._hasJetWCIFCs=true;tag=this.getTagFromClass(clazz);if(tag&&!a.includes(tag)){a.push(tag)}}}}}this._implements=this._hasJetWCIFCs?o:null};MetaLib.prototype.getMetaVers=function(){return{versions:this._jetVersions,runver:this._jetVer}};MetaLib.prototype.setComponentsLib=function(compSvcs,comps){if(compSvcs){this._compSvcs=compSvcs}if(comps){this._components=comps}};MetaLib.prototype.setStylesets=function(ss){if(!ss){return}var o,obj,e,i;if(!this._stylesets){this._stylesets=obj={}}else{obj=this._stylesheets}for(i=0;i<ss.length;i++){o=ss[i];if(typeof o===STRING){obj[o]=true}else if(o.deprecated){obj[o.deprecated]=e={};if(o.since){e.since=o.since}if(o.note){e.description=o.note}else if(o.description){e.description=o.description}}}};MetaLib.prototype.setDomUtils=function(du){this._domUtils=du};MetaLib.prototype.getDomUtils=function(){return this._domUtils};MetaLib.prototype.setCurFileType=function(ft){this._curFileType=ft&&ft.startsWith(DOT)?ft.substring(1):ft;this._components.setCurFileType(this._curFileType)};MetaLib.prototype.getRevisionInfo=function(){var metaSect=this._json.meta;var revision="";var x;return{revision:revision,tag:metaSect.jetrevision,jetVersionRaw:metaSect.jetversion,jetVersion:(x=metaSect.jetversion.indexOf("-"))>=0?metaSect.jetversion.substring(0,x):metaSect.jetversion,date:metaSect.date,time:metaSect.time}};MetaLib.prototype._isSubStateDeprecated=function(obj,isMember){var depr,retStatus=null;if(obj&&obj.ojdeprecated&&obj.ojdeprecated.length){retStatus=this._createLegacyDeprecatedStatus(obj.ojdeprecated,isMember)}else if(depr=obj.deprecated){retStatus=typeof depr===BOOLEAN?NO_SUGGESTION_AVAIL:depr;retStatus=[{type:DEPRECATED,description:retStatus}]}return retStatus};MetaLib.prototype._isSubStateTranslatable=function(obj){return obj&&obj.ojtranslatable};MetaLib.prototype._createLegacyDeprecatedStatus=function(depr,isMember){var retStatus,depr,o;if(depr){depr.forEach(status=>{if(status.type&&status.type!==DEPRECATED){return}retStatus=[];o={type:DEPRECATED};if(status.hasOwnProperty("target")){o.target=status.target;if(isMember&&status.target==="memberType"){if(status.value&&status.value.length>1){o.target="propertyValue";o.value=[];status.value.forEach((elem,x)=>{if(x){if(elem.startsWith("'")||elem.startsWith("\"")){elem=elem.substring(1,elem.length-1)}o.value.push(elem)}})}else{o.target="propertyType"}}}if(status.hasOwnProperty("description")){o.description=status.description}if(status.hasOwnProperty("since")){o.since=status.since}if(status.hasOwnProperty("for")){o.value=[status.for]}else if(!o.value&&status.hasOwnProperty("value")){o.value=status.value}retStatus.push(o)})}return retStatus&&retStatus.length?retStatus:null};MetaLib.prototype._getComponentNameFromTag=function(tagName){var ret;if(tagName){tagName=tagName.toLowerCase();ret=this._json.custElementClassLookup[tagName]?this._json.custElementClassLookup[tagName]:null}else{ret=false}return ret};MetaLib.prototype.isIgnoreAttr=function(tagName,attrName){var ret=false;attrName=attrName.toLowerCase();attrName=attrName.charAt(0)===":"?attrName.substr(1):attrName;if(HtmlUtils.isCommonElem(attrName)||attrName.startsWith("aria-")){return true}if(tagName==="oj-avatar"){if(attrName==="src"||attrName==="initials")ret=true}else if(tagName==="oj-option"){if(attrName==="value")ret=true}return ret};MetaLib.prototype.getDeprecatedMethodList=function(){if(this._deprecatedMethods){return this._deprecatedMethods}var json=this._json;var name,methName,methObj,depMeth,o,a;var ret={};for(name in json){o=json[name];if(o&&o.function){for(methName in o.function){methObj=o.function[methName];depMeth=methObj.ojdeprecated;if(depMeth&&(!depMeth.type||depMeth.type==="deprecated")){if(ret[methName]){a=ret[methName]}else{ret[methName]=a=[]}a.push(name)}}}}return this._deprecatedMethods=ret};MetaLib.prototype.getDeprecatedMemberList=function(){if(this._deprecatedMembers){return this._deprecatedMembers}var json=this._json;var name,memName,memObj,depMem,o,a;var ret={};for(name in json){o=json[name];if(o&&o.member){for(memName in o.member){memObj=o.member[memName];depMem=memObj.ojdeprecated;if(depMem&&(!depMem.type||depMem.type==="deprecated")){if(ret[memName]){a=ret[memName]}else{ret[memName]=a=[]}a.push(name)}}}}return this._deprecatedMembers=ret};MetaLib.prototype.getDeletedMethodList=function(){if(this._deletedMethods){return this._deletedMethods}var json=this._delHist;var name,methName,ver,o,a;var ret={};if(json){for(name in json){o=json[name];if(o&&o.methods){for(methName in o.methods){ver=o.methods[methName];if(ret[methName]){a=ret[methName]}else{ret[methName]=a=[]}a.push(name);a.push(ver)}}}}return this._deletedMethods=ret};MetaLib.prototype.getDeletedMemberList=function(){if(this._deletedMembers){return this._deletedMembers}var json=this._delHist;var name,memName,ver,o,a;var ret={};if(json){for(name in json){o=json[name];if(o&&o.members){for(memName in o.members){ver=o.members[memName];if(ret[memName]){a=ret[memName]}else{ret[memName]=a=[]}a.push(name);a.push(ver)}}}}return this._deletedMembers=ret};MetaLib.prototype._getSlots=function(tagName){var obj=this._getComponentFromTag(_removeChevrons(tagName));return this._getSlots2(obj)};MetaLib.prototype._getSlots2=function(base){var bases,base,i,ret=null;while(base){ret=base&&base.slot?base.slot:null;if(ret){break}bases=base.header&&base.header.augments?base.header.augments:null;if(!bases){break}for(i=0;i<bases.length;i++){base=this._json[bases[i]];ret=this._getSlots2(base);if(ret){base=null;break}}}return ret?ret:null};MetaLib.prototype._getSlotByName=function(base,slotName){var ret=null;while(base){if(!slotName){ret=base&&base.member?base.member.Default&&base.member.Default.ojchild:null}else{if(base&&base.slot){ret=base.slot[slotName]}}break}return ret?ret:null};MetaLib.prototype._getComponentFromTag=function(tagName){var o=this._getComponentNameFromTag(tagName);if(o){o=this._json[o]}return o?o:null};function _getStyleIndices(scope,styleName){var a,n,ret,i;a=scope[styleName];if(a||a===0){if(!ret){ret=[]}if(Array.isArray(a)){for(i=0;i<a.length;i++){n=a[i];if(typeof n===OBJECT){n=a[i].index}ret.push(n)}}else{if(typeof a===OBJECT){n=a.index}else{n=a}ret.push(n)}}return ret&&ret.length?ret:null};MetaLib.prototype.getNonSSStyleElems=function(styleName,scope){var a,n,ret,i;scope=scope?this._json.ojStyles:this._json.genericStyles;a=scope[styleName];if(a||a===0){if(!ret){ret=[]}if(Array.isArray(a)){for(i=0;i<a.length;i++){n=a[i];if(typeof n===OBJECT&&!n.styleselector){n=a[i].index}ret.push(n)}}else{if(typeof a===OBJECT&&!a.styleselector){n=a.index}else{n=a}ret.push(n)}}return ret&&ret.length?_toContainers(scope,ret,this._json):null};MetaLib.prototype.displayImpls=function(){var impls,impl;this._console("[info] :--------- JET Interfaces Implemented ---------","I");if(!(impls=this._implements)){this._console(" None!","I")}else{for(impl in impls){this._console(`${impl} : <- <${impls[impl].join(",")}>`,"I")}}this._console("[info]: -------- End Declared Web Components ---------\n","I")};function _removeJetVerExtension(ver){let x=ver.indexOf("-");return x>=0?ver.substring(0,x):ver};function _toContainers(scope,indices,json){var cont,ret,clazz,elem,n,i;cont=scope.containers;for(i=0;i<indices.length;i++){n=indices[i];if(n>=0){if(!ret){ret=[]}if(!json){ret[i]=cont[n]}else{clazz=cont[n];elem=json[clazz];if(elem&&elem.header){elem=elem.header.customelement;if(elem){ret[i]=elem}}}}}return ret&&ret.length?ret:null};function _convertValue(valType,value){var retValue=value;if(valType===STRING){retValue=value}else if(valType==="number"){retValue=Number(value)}else if(valType==="boolean"){retValue=value.toLowerCase()==="true"}return retValue};function _removeChevrons(tagName){if(tagName){let len=tagName.length-1;let start=tagName.charAt(0)==="<"?1:0;let end=tagName.charAt(len)===">"?len:++len;tagName=tagName.substring(start,end)}return tagName};module.exports=MetaLib;
6
+ "use strict";const Namespaces=require("./ns");const HtmlUtils=require("./HtmlUtils");const SemVer=require("semver");const NO_SUGGESTION_AVAIL="No suggestion available.";const OJPREFIX="oj-";const OJS="ojs/oj";const EVENT_ON="on";const DOT=".";const DATA_OJ_CMD="data-oj-command";const DASH_CHANGED="-changed";const CHANGED="Changed";const PROP_SLOTS="slots";const PROP_PROPS="props";const PROP_EVENTS="events";const PROP_IMPLEMENTS="implements";const PROP_FOLDER="folder";const PROP_VERSION="version";const PROP_UNSUP_THEME="unsupTheme";const PROP_SUBCOMPONENT_TYPE="subcomponentType";const PACK_PRIVATE="packPrivate";const ANTIPATTERN="antiPattern";const DEPRECATED="deprecated";const MAINTENANCE="maintenance";const SUPERSEDES="supersedes";const STATUS_PROP_TYPE="propertyType";const STATUS_PROP_VALUE="propertyValue";const FT_TSX="tsx";const STRING="string";const BOOLEAN="boolean";const OBJECT="object";function MetaLib(nd,runMode,msgCtx,utils,fsUtils){this._json=null;this._delHist=null;this._renHist=null;this._reqAttrs=null;this._nonClasses=null;this._implements=null;this._hasJetWCIFCs=false;this._components=null;this._compSvcs=null;this._stylesets=null;this._runMode=runMode;this._utils=utils;this._fsUtils=fsUtils;this._domUtils=null;if(nd.jetver){this._jetVersions=nd.jetver.getVersions()}this._jetVer=null;this._theme=null;this._curFileType=null;this._deprecatedMethods=null;this._deprecatedMembers=null;this._deletedMethods=null;this._deletedMembers=null;this._error=msgCtx.error;this._debug=msgCtx.debug;this._info=msgCtx.info;this._msg=msgCtx.msg;this._console=msgCtx.console;this._isDebug=msgCtx.isdebug;this._isVerbose=msgCtx.isVerbose;this._nd=nd};MetaLib.prototype.isNSRegistered=function(prefix){return Namespaces.has(prefix)};MetaLib.prototype.isNamespaceTag=function(tagName){var s=tagName.replace(/[<>]/g,"");var x,ret=false;if(tagName.startsWith("demo-")||tagName.startsWith("my-")||tagName.startsWith("ns-")){return true}while(true){x=s.lastIndexOf("-");if(x>=0){s=s.substring(0,x);if(s.lastIndexOf("-")<0&&s==="oj"){break}if(Namespaces.has(s)){ret=true;break}}else{break}}if(!ret&&this.isJetTag(tagName)){ret=true}return ret};MetaLib.prototype.isNamespacePrefix=function(tagName){return this.isNamespaceTag(tagName)};MetaLib.prototype.isRuleIgnored=function(tagName,ruleName){var o,ret=false;if(o=this._getComponentFromTag(tagName)){if(o.extension&&o.extension.audit&&o.extension.audit.ignore){let ar=o.extension.audit.ignore;if(ar&&ar.length){ret=ar.includes(ruleName)}}}else{ret=this._components&&this._components.isRuleIgnored(tagName,ruleName)}return ret};MetaLib.prototype.isJetCoreTag=function(tag){return!!this._components.isJetCoreTag(tag)};MetaLib.prototype.isCoreTag=function(tag){return this.isJetCoreTag(tag)};MetaLib.prototype.isJetLegacyTag=function(tag){return this._getComponentNameFromTag(_removeChevrons(tag))};MetaLib.prototype.isJetTag=function(tagName){return!!(this._components.isJetCoreTag(tagName)||this.isJetLegacyTag(tagName))};MetaLib.prototype.isComponentTag=function(tagName){return tagName?this._components&&this._components.isUserTag(_removeChevrons(tagName)):false};MetaLib.prototype.isWCTag=function(tagName){var ret=false;if(tagName){tagName=_removeChevrons(tagName);ret=this._getComponentNameFromTag(tagName)||this._components&&this._components.isKnownTag(tagName)}return ret};MetaLib.prototype.isCCATag=function(tagName){return tagName?this.isWCTag(tagName):false};MetaLib.prototype.isVComponentTag=function(tagName){return tagName?this._components.isVComponentTag(tagName):false};MetaLib.prototype.isTagDeprecated=function(tagName){var clazz,ret;if(clazz=this._getComponentNameFromTag(_removeChevrons(tagName))){ret=this.isClassDeprecated(clazz)}else{ret=this._components.isTagDeprecated(tagName)}return ret};MetaLib.prototype.isTagAttrDeprecated=function(tagName,attrName){var member,ret=null;if(!attrName){return null}member=this._getTagAttrMemberObj(tagName,attrName);ret=member?this._isSubStateDeprecated(member,true):this._components.isTagAttrDeprecated(tagName,attrName);if(ret){ret.forEach(status=>{if(status.description){status.description=HtmlUtils.replaceEntities(status.description)}})}return ret};MetaLib.prototype.isTagEventDeprecated=function(tag,attr){var comp,member,ev,deps,retStatus=null;if(comp=this._getComponentFromTag(tag)){if(!comp.event&&!comp.member){return null}if(ev=this._getLegacyEventName(comp,attr)){if(comp.event&&(member=comp.event[ev])||comp.htmlattributes&&(member=comp.member[ev])){if(deps=member.ojdeprecated){if(deps.length){retStatus=this._createLegacyDeprecatedStatus(deps,true)}}}}}else{retStatus=this._components.isTagEventDeprecated(tag,attr)}return retStatus};MetaLib.prototype._getLegacyEventName=function(comp,eventName){var event,ev;if(!eventName.includes("-")){eventName=this._domUtils.kebabCase(eventName)}if(comp.htmlevents&&(ev=comp.htmlevents[eventName])||eventName.endsWith(DASH_CHANGED)&&(ev=comp.htmlattributes[eventName])){if(!(comp.event&&comp.event[ev])){if(ev.endsWith(CHANGED)){ev=ev.substring(0,ev.length-CHANGED.length)}}}return ev?ev:null};MetaLib.prototype.getTagPropertyFromEvent=function(tagName,eventName){var comp,ev;if(comp=this._getComponentFromTag(tagName)){ev=this._getLegacyEventName(comp,eventName)}else{if(ev=this._components.getTagPropertyFromEvent(tagName,eventName)){ev=ev.name}}return ev?ev:null};MetaLib.prototype.isTagAttr=function(tagName,attrName){var o,ret=false;if(!attrName){return false}attrName=attrName.charAt(0)===":"?attrName.substring(1):attrName;if(o=this._getComponentFromTag(tagName)){ret=this.isJetTagAttr(o,attrName)}else{ret=this._components&&this._components.isTagAttr(tagName,attrName)}return ret};MetaLib.prototype.isJetTagAttr=function(tagObj,attrName){var ret;if(!attrName){return false}attrName=attrName.charAt(0)===":"?attrName.substring(1):attrName;ret=this._curFileType===FT_TSX?tagObj.member&&tagObj.member[attrName]:tagObj.htmlattributes&&tagObj.htmlattributes[attrName];if(!ret&&attrName===DATA_OJ_CMD&&tagObj.member){ret=tagObj.member[DATA_OJ_CMD]}return!!ret};MetaLib.prototype._getTagAttrMemberObj=function(tagName,attrName){var obj,attrib,member,x;if(!attrName){return null}obj=this._getComponentFromTag(_removeChevrons(tagName));attrName=attrName.charAt(0)===":"?attrName.substring(1):attrName;if(this._curFileType===FT_TSX){attrName=this._domUtils.kebabCase(attrName)}if(!obj||!obj.htmlattributes||!obj.htmlattributes[attrName]){return null}member=null;attrib=obj.htmlattributes[attrName];if(attrib){x=attrib.indexOf(DOT);if(x>=0){if(obj.member){member=this._findSubMember(obj,obj.member,attrib,attrib)}}else{member=obj.member[attrib];if(member){return member}}}return member};MetaLib.prototype._findSubMember=function(obj,mem,attrName,subMemberPart){var member,ts,sm,rest,x,ret=null;x=subMemberPart.indexOf(DOT);if(x>=0){sm=subMemberPart.substring(0,x);rest=subMemberPart.substring(x+1)}else{sm=subMemberPart;rest=null}for(member in mem){member=mem[member];if(member.name===attrName&&!rest){ret=member;break}if(member.name!==sm){continue}if(!rest){ret=member;break}if(member.submember){ret=this._findSubMember(obj,member.submember,attrName,rest);if(ret){break}}else if(member.tstype){ts=this._getTsTypeObject(member);if(ts){ret=this._findSubMember(obj,ts.member,attrName,rest);if(ret){break}}}if(ret){break}}return ret};MetaLib.prototype._getTsTypeObject=function(mem){var ts,o,s,x;ts=mem.tstype;if(ts&&ts.target==="Type"&&typeof ts.value===STRING){s=ts.value;s=s.replace("=","");x=s.indexOf("|");if(x>=0){s=s.substring(0,x).trimRight()}if(s.charAt(s.length-1)===">"){x=s.lastIndexOf("<");if(s>=0){s=s.substring(0,x)}}o=this._json[s];if(!o){o=this._json[mem.memberof];if(o.typedef){s=ts.value;x=s.lastIndexOf(DOT);if(x>=0){s=s.substring(x+1);o=o.typedef[s]}}}}return o?o:null};MetaLib.prototype._getSubMemberPart=function(fullAttr,soFar){var s,x;s=fullAttr.replace(soFar,"");if(s.length){if(s.charAt(0)==="."){x=s.indexOf(DOT,1);if(x>=0){s=soFar+s.substring(0,x)}else{s=soFar+s}}}else{s=soFar}return s};MetaLib.prototype._handleAttrObject=function(member){var link,types,i,x;types=member.tstype;if(types){for(i=0;i<types.length;i++){if(types[i].target==="Type"){link=types[i].value;link=link.replace("=","");x=link.indexOf("<K");if(x>=0){link=link.substring(0,x)}break}}}return link};MetaLib.prototype.hasTagAttrValues=function(tagName,attrName){var member,ojv,ret=false;if(!attrName){return false}if(member=this._getTagAttrMemberObj(tagName,attrName)){ojv=this._getOjValues(member);ret=!!ojv}else if(this._components.isKnownTag(tagName)){ret=this._components.hasTagAttrValues(tagName,attrName)}return ret};MetaLib.prototype.isTagAttrValue=function(tagName,attrName,attrValue){var member,ojv,values,curValue,valType,i,ret=false;if(!attrName){return false}member=this._getTagAttrMemberObj(tagName,attrName);if(member){ojv=this._getOjValues(member);if(ojv){values=ojv.name;for(i=0;i<values.length;i++){if(ojv.type){valType=ojv.type[i];curValue=_convertValue(valType,attrValue);ret=curValue===values[i]}else{ret=attrValue===values[i]}if(ret){break}}}else{ret=true}}else{if(this._components.isKnownTag(tagName)){ret=this._components.isTagAttrValue(tagName,attrName,attrValue)}}return ret};MetaLib.prototype.isTagAttrEnumValueDeprecated=function(tagName,attrName,enumValue){var member,ojv,values,deps,dep,i,j,ret=null;if(!attrName){return null}member=this._getTagAttrMemberObj(tagName,attrName);if(!member){return this._isCompTagAttrEnumDepr(tagName,attrName,enumValue)}if(!member.ojdeprecated){return null}if(ojv=this._getOjValues(member)){values=ojv.name;for(i=0;i<values.length;i++){if(values[i]===enumValue){deps=member.ojdeprecated;for(j=0;j<deps.length;j++){dep=deps[j];if(dep.type&&dep.type!=="deprecated"){continue}if(dep.target==="propertyValue"&&dep.for===enumValue){ret={type:DEPRECATED,since:dep.since,description:dep.description};break}}}if(ret){break}}}return ret};MetaLib.prototype._isCompTagAttrEnumDepr=function(tagName,attrName,enumValue){if(!attrName){return null}return this._components?this._components.isTagAttrEnumDeprecated(tagName,attrName,enumValue):null};MetaLib.prototype.hasTagSlot=function(tagName){var ret;if(this.isJetLegacyTag(tagName)){ret=this._getSlots(tagName)?true:false}else if(this._components){this._components.hasTagSlot(tagName)}return ret};MetaLib.prototype.hasTagDefaultSlot=function(tagName){return this.isTagSlotName(tagName,"")};MetaLib.prototype.hasTagDynamicSlot=function(tagName){var tag,comp,members,b=false;tag=_removeChevrons(tagName);if(comp=this._getComponentFromTag(tag)){b=!!comp.header?.ojdynamicslot}else if(this._components){b=this._components.hasTagDynamicSlot(tag)}return b};MetaLib.prototype.isTagSlotName=function(tagName,slotName){var tag,slot;tag=_removeChevrons(tagName);slotName=slotName?slotName:"";if(this.isJetLegacyTag(tag)){slot=this._getSlotByName(this._getComponentFromTag(tag),slotName)}else if(this._components){if(!HtmlUtils.isCommonElem(tag)){slot=this._components.hasTagSlotName(tag,slotName)}}return!!slot};MetaLib.prototype.isTagSlotValue=function(tagName,slotName){return this.isTagSlotName(tagName,slotName)};MetaLib.prototype.isTagDynamicSlotValue=function(tagName,slotName){};MetaLib.prototype.getPreferredSlotContent=function(tag,slot){var obj,ret=null;if(obj=this.getPreferredSlotContentEx(tag,slot)){ret=obj.interfaces}return ret};MetaLib.prototype.getPreferredSlotContentEx=function(tag,slot){var ret;tag=_removeChevrons(tag);slot=slot?slot:"";if(this.isJetLegacyTag(tag)){ret=this.getJetPreferredSlotContent(tag,slot)}else if(this._components&&this._implements){ret=this._components.getPreferredSlotContent(tag,slot,this._implements)}return ret};MetaLib.prototype.getJetPreferredSlotContent=function(tag,slot){var clazz,slot,prefContent,content,comps;if(!this._implements||!(clazz=this._getComponentFromTag(tag))){return null}if(!slot){let defMem;if(clazz.member&&(defMem=clazz.member["Default"])&&defMem.ojchild){if(prefContent=defMem.ojpreferredcontent){prefContent.forEach(impl=>{if(content=this._implements[impl]){if(!comps){comps=[]}comps.push(...content)}})}}}else{if(clazz.slot){if(slot=clazz.slot[slot]){if(prefContent=slot.ojpreferredcontent){prefContent.forEach(impl=>{if(content=this._implements[impl]){if(!comps){comps=[]}comps.push(...content)}})}}}}return prefContent||comps?{interfaces:prefContent,components:comps}:null};MetaLib.prototype.isTagSlotDeprecated=function(tag,slotName){var status,md,ret;md=this.getTagSlotMetadata(tag,slotName);if(md&&(status=md.status)){let stat;for(let i=0;i<status.length;i++){stat=status[i];if(!stat.type||stat.type===DEPRECATED){ret=stat;break}}}return ret?ret:null};MetaLib.prototype.getTagSlotMetadata=function(tag,slot){var ret;tag=_removeChevrons(tag);if(this.isJetLegacyTag(tag)){ret=this._getJetTagSlotMetadata(tag,slot)}else if(this._components){ret=this._components.getTagSlotMetadata(tag,slot)}return ret};MetaLib.prototype._getJetTagSlotMetadata=function(tag,slotName){var o,slot;if(!(o=this._getComponentFromTag(tag))){return null}if(!o.slot||!(slot=o.slot[slotName])){return null}let deps,ret={};if(slot.ojpreferredcontent){ret.preferredContent=slot.ojpreferredcontent}if(slot.hasOwnProperty("ojminitems")){ret.minItems=slot.ojminitems}if(slot.hasOwnProperty("ojmaxitems")){ret.maxItems=slot.ojmaxitems}if(deps=slot.ojdeprecated){let dep,oStat,i;ret.status=[];for(i=0;i<deps.length;i++){dep=deps[i];oStat={};if(dep.hasOwnProperty("type")){oStat.type=dep.type}if(!dep.type||dep.type===DEPRECATED){if(dep.hasOwnProperty("target")){oStat.target=dep.target}if(dep.hasOwnProperty("for")){oStat.for=dep.for}if(dep.hasOwnProperty("value")){oStat.value=dep.value}}else if(dep.type===ANTIPATTERN){if(dep.hasOwnProperty("themes")){oStat.themes=dep.themes}}if(dep.hasOwnProperty("since")){oStat.since=dep.since}if(dep.hasOwnProperty("description")){oStat.description=dep.description}ret.status.push(oStat)}}return ret};MetaLib.prototype.isTagSupportedInTheme=function(tag){var o,a,ret=true;o=this._getComponentFromTag(tag);if(o){if(o.header){a=o.header.ojunsupportedthemes;ret=!(a&&a.includes(this._theme))}}else{ret=this._components&&this._components.isTagSupportedInTheme(tag,this._theme)}return ret};MetaLib.prototype.isAttrSupportedInTheme=function(tag,attr){var o,a,ret=true;o=this._getTagAttrMemberObj(tag,attr);if(o){a=o.ojunsupportedthemes;ret=!(a&&a.includes(this._theme))}else{ret=this._components.isAttrSupportedInTheme(tag,attr,this._theme)}return ret};MetaLib.prototype.hasTagCompPropSubprop=function(tagName,propName){var obj,ret=false;if(this.isCCATag(tagName)){obj=this._getComponentFromTag(tagName);if(obj&&obj.member){ret=obj.member[propName];ret=ret&&ret.submember}else if(this._components){ret=this._components.getTagProp(tagName,propName);ret=ret&&ret.properties}}return ret};MetaLib.prototype.isTagCompProp=function(tagName,propName){var obj,ret=false;if(this.isCCATag(tagName)){obj=this._getComponentFromTag(tagName);if(obj&&obj.member){ret=obj.member[propName]}else if(this._components){ret=this._components.isTagProp(tagName,propName)}}return ret};MetaLib.prototype.getTagAttrType=function(tag,attr){var member=this._getTagAttrMemberObj(tag,attr);return member?member.type:this._components.getTagPropType(tag,attr)};MetaLib.prototype.getTagAttrTypeEx=function(tag,attr){var ret={};var member=this._getTagAttrMemberObj(tag,attr);var t=member?member.type:this._components.getTagPropType(tag,attr);ret.raw=t;ret.types=t.split("|");ret.types.forEach((v,i,ar)=>{v=v.trim().toLowerCase().replace("array","Array");ar[i]=v.replace(">.",">")});return ret};MetaLib.prototype.getTagPropType=function(tagName,propName){return this._components?this._components.getTagPropType(tagName,propName):null};MetaLib.prototype.getTagPropMetadata=function(tag,attr){var obj;if(this._components){obj=this._components.getComponentPropMetadata(tag,attr)}return obj};MetaLib.prototype.getTagMetadata=function(tagName){var obj,comp,hdr,events,props,event,ret=null;tagName=_removeChevrons(tagName);if(!(obj=this._getComponentFromTag(tagName))){if(this._components){ret=this._components.getComponentMetadata(tagName)}return ret}if(hdr=obj.hdr){comp={};comp.name=hdr.customelement;if(hdr.slot){comp[PROP_SLOTS]=obj.slots}}if(obj.properties){comp[PROP_PROPS]=props={};this._extractProps(props,null,obj.properties,obj.name)}if(obj.events){comp[PROP_EVENTS]=events={};for(event in obj.events){}}if(obj.implements){comp[PROP_IMPLEMENTS]=obj.implements}if(obj.extension&&obj.extension.theme&&obj.extension.theme.unsupportedThemes){comp[PROP_UNSUP_THEME]=obj.extension.theme.unsupportedThemes}if(hdr&&hdr.ojsubcomponenttype){comp[PROP_SUBCOMPONENT_TYPE]=hdr.subcomponenttype}return ret};MetaLib.prototype.getAllCustomMetadata=function(){return this._components.getAllCustomMetadata()};MetaLib.prototype.getOjcMetadataByPath=function(path){return this._components.getOjcMetadataByPath(path)||null};MetaLib.prototype._getObjectMetadata=function(name){return this._json[name]};MetaLib.prototype.getPackPaths=function(){return this._components?this._components.getPackPaths():null};MetaLib.prototype.getPackMetadata=function(packName){return this._components?this._components.getPackMetadata(packName):null};MetaLib.prototype.getAllPackMetadata=function(){return this._components?this._components.getAllPackMetadata():null};MetaLib.prototype.getAllResourceMetadata=function(){return this._components?this._components.getAllResourceMetadata():null};MetaLib.prototype.getResourceMetadata=function(path){return this._components?this._components.getResourceMetadata(path):null};MetaLib.prototype.getResourcePaths=function(){return this._components?this._components.getResourcePaths():null};MetaLib.prototype.getTagRequirementsMetadata=function(tagName){var ret,obj;tagName=_removeChevrons(tagName);if(obj=this._getComponentFromTag(tagName)){ret=obj?.header?.ojrequirements}else{if(this._components){ret=this._components.getTagRequirementsMetadata(tagName)}}return ret?ret:null};MetaLib.prototype.isTagStyleDeprecated=function(tagName,styleName){var o,ret;o=this.isWCStyleDeprecated(styleName);if(o){tagName=_removeChevrons(tagName);if(this._json.ojStyles.containers[o.index]===tagName){ret=o.dep.description}}return ret};MetaLib.prototype.isTagStyle=function(tagName,styleName){var obj,ret=false,compName,containers,indices,index,i;tagName=_removeChevrons(tagName);if(obj=this._getComponentFromTag(tagName)){compName=this._getComponentNameFromTag(tagName);containers=this._json.ojStyles.containers;indices=_getStyleIndices(this._json.ojStyles,styleName);if(indices){for(i=0;i<indices.length;i++){index=indices[i];if(index>=0){if(containers[index]===compName){ret=true;break}}}}}else{ret=this._components.isTagStyle(tagName)}return ret};MetaLib.prototype.isStyle=function(style){return this.isGenStyle(style)||this.isClassStyle(style)||this.isStylesetStyle(style)};MetaLib.prototype.isGenStyle=function(style){var x=this._json.genericStyles[style];return x||x===0?true:false};MetaLib.prototype.isJetStyle=function(style){return this._json.genericStyles[style]?"g":this._json.ojStyles[style]?"j":undefined};MetaLib.prototype.isCustomStyle=function(style){return this._components&&this._components.isStyle(style)};MetaLib.prototype.getStyleOrigin=function(style){var ret;if(this._json.genericStyles[style]){ret="g"}if(this._json.ojStyles[style]){ret=ret?"b":"j"}if(!ret&&this._components){if(this._components.isStyle(style)){ret="c"}}return ret};MetaLib.prototype.isClassStyle=function(style){var x=this._json.ojStyles[style];return x||x===0?true:false};MetaLib.prototype.isStylesetStyle=function(style){return this._stylesets?!!this._stylesets[style]:false};MetaLib.prototype.getStyleSelector=function(style,jet){var o,i,ret;if(typeof jet===BOOLEAN){o=jet?this._json.ojStyles[style]:this._json.genericStyles[style]}else{o=this._json.ojStyles[style];if(!o&&o!==0){o=this._json.genericStyles[style]}if(!o&&this._components){o=this._components.getStyleMetadata(style)}}if(this._utils.isObject(o)){if(o.styleselector){ret=o.styleselector}else if(o.meta){ret=o.meta.styleSelector}}else if(Array.isArray(o)){for(i=0;i<o.length;i++){if(this._utils.isObject(o[i])&&o[i].styleselector){if(!ret){ret=[]}ret.push(o[i].styleselector)}}if(ret&&ret.length===1){ret=ret[0]}}return ret?ret:null};MetaLib.prototype.isJetStylePrefix=function(s){var x;if(!s.startsWith(OJPREFIX)||!this._json.jetCssPrefixes.classes){return false}x=s.indexOf("-",3);if(x>=0){s=s.substring(0,x)}return this._json.jetCssPrefixes.classes.includes(s)};MetaLib.prototype.hasJetStylePrefixes=function(){return this._json.jetCssPrefixes&&this._json.jetCssPrefixes.classes};MetaLib.prototype.getClassesFromStyle=function(styleName,scope){var indices,oStyles,ret;scope=scope||"oj";if(scope==="oj"||scope==="both"){oStyles=this._json.ojStyles;if(oStyles){indices=_getStyleIndices(oStyles,styleName);if(indices){return _toContainers(oStyles,indices)}}}if(scope==="gen"||scope==="both"){oStyles=this._json.genericStyles;if(oStyles){indices=_getStyleIndices(oStyles,styleName);if(indices){ret=_toContainers(oStyles,indices)}}}return ret?ret:null};MetaLib.prototype.getJetTagFromStyle=function(styleName){var indices,oStyles,clazz;oStyles=this._json.ojStyles;if(oStyles){indices=_getStyleIndices(oStyles,styleName)}if(indices){if(indices.length>1||indices.length===0){clazz=null}else{clazz=this.isGenStyle(styleName)?null:_toContainers(oStyles,indices)}}return clazz?this.getTagFromClass(clazz):null};MetaLib.prototype.getJetTagsFromStyle=function(styleName){var indices,oStyles;oStyles=this._json.ojStyles;if(oStyles){indices=_getStyleIndices(oStyles,styleName);if(indices){return _toContainers(oStyles,indices,this._json)}}return null};MetaLib.prototype.getClassFromTag=function(tagName){return this._getComponentNameFromTag(_removeChevrons(tagName))};MetaLib.prototype.getClassFromModule=function(module){var clazz=this._json.moduleLookup[module];return clazz?clazz:null};MetaLib.prototype.getTagFromClass=function(className){if(className==="oj.ojTree"){return"oj-tree"}let ret=this._json[className];return ret&&ret.header?ret.header.customelement:null};MetaLib.prototype.isClass=function(className){var b=this._json[className];if(!b){if(className=this._classChange[className]){b=this._json[className]}}return!!b};MetaLib.prototype.isClassFinal=function(className){var clazz=this._json[className];if(!clazz){if(className=this._classChange[className]){clazz=this._json[className]}}return clazz&&clazz.header&&clazz.header.readonly};MetaLib.prototype.isClassMethod=function(className,methName){var clazz=this._json[className];return!!(clazz&&clazz.function&&clazz.function[methName])};MetaLib.prototype.isClassMethodStatic=function(className,methName){var meth,ret=null;var clazz=this._json[className];if(clazz&&clazz.function){meth=clazz.function[methName];ret=meth&&meth.scope&&meth.scope=="static"}return ret};MetaLib.prototype.getClassMethodScope=function(className,methName){var meth,ret=null;var clazz=this._json[className];if(clazz&&clazz.function){meth=clazz.function[methName];ret=meth.scope}return ret};MetaLib.prototype.isClassMember=function(className,memName){var clazz=this._json[className];return!!(clazz&&clazz.member&&clazz.member[memName])};MetaLib.prototype.isClassMemberStatic=function(className,memName){var mem,ret=null;var clazz=this._json[className];if(clazz&&clazz.member){mem=clazz.member[memName];ret=mem&&mem.scope&&mem.scope=="static"}return ret};MetaLib.prototype.getRequiredAttrs=function(tagName){let obj,clazz,i,ret=null;tagName=_removeChevrons(tagName);if(obj=this._getComponentFromTag(tagName)){clazz=this._getComponentNameFromTag(tagName)}ret=obj?this._reqAttrs[clazz]:this._components.getRequiredProps(tagName);if(this._curFileType!==FT_TSX&&ret&&ret.length){let ret2=[];for(i=0;i<ret.length;i++){ret2[i]=this._domUtils.kebabCase(ret[i])}ret=ret2}return ret};MetaLib.prototype.getTagsFromStyle=function(styleName){var classNames,tag,i,ret;ret=null;classNames=this.getClassesFromStyle(styleName);if(classNames){for(i=0;i<classNames.length;i++){tag=this.getTagFromClass(classNames[i]);if(tag){if(!ret){ret=[]}ret.push(tag)}}}return ret?ret:null};MetaLib.prototype.isStyleDeprecated=function(name){var s,o,t,i;s=this._json.genericStyles[name];if(!s&&s!==0&&this._json.ojStyles){s=this._json.ojStyles[name];if(!s&&s!==0&&this._stylesets){if(s=this._stylesets[name]){if(this._utils.isObject(s)){return!s.type||s.type==="deprecated"?s:null}}}}if(s){t=typeof s;if(Array.isArray(s)){for(i=0;i<s.length;i++){o=s[0];if(typeof o===OBJECT){if(!o.type||o.type==="deprecated"){break}}}}else if(t==="object"){if(!s.type||s.type==="deprecated"){o=s}}else{o=null}}return o?o.dep:null};MetaLib.prototype.isStyleDeprecatedEx=function(style){var a=null,ss,t,i;function _pushSS(o){if(o.dep){if(!o.dep.type||o.dep.type==="deprecated"){if(!a){a=[]}a.push(o)}}};function _stashSS(s){t=typeof s;if(Array.isArray(s)){for(i=0;i<s.length;i++){_pushSS(s[i])}}else if(t==="object"){_pushSS(s)}};if(ss=this._json.genericStyles[style]){_stashSS(ss)}if(ss=this._json.ojStyles[style]){_stashSS(ss)}else if(ss!==0&&this._stylesets){ss=this._stylesets[style];return this._utils.isObject(ss)?ss:null}return a};MetaLib.prototype.isWCStyleDeprecated=function(name){var s,o,t,i;s=this._json.ojStyles[name];if(s){t=typeof s;if(Array.isArray(s)){for(i=0;i<s.length;i++){o=s[i];if(typeof o===OBJECT){break}o=null}}else if(t==="object"){o=s}}return o?o:null};MetaLib.prototype.isBindingTag=function(tagName){var obj=this._getComponentFromTag(_removeChevrons(tagName));return obj&&obj.header?!!obj.header.ojbindingelement:false};MetaLib.prototype.isComponent=function(className){var obj=this._json[className];if(!obj){if(!className.startsWith("oj.")){obj=this._json["oj."+className]}}return!!obj};MetaLib.prototype.isClass=function(className){return!!this._json[className]};MetaLib.prototype.isJetComponentClass=function(className){return this.isClass(className)};MetaLib.prototype.isComponentDeprecated=function(className){return this.isClassDeprecated(className)};MetaLib.prototype.isClassDeleted=function(className){var classes,cn,version=null;if(this._delHist){if(classes=this._delHist.classes){cn=this._classChange[className];if(cn){className=cn}version=classes[className]}}return version};MetaLib.prototype.isClassRenamed=function(className){return this._renHist?this._renHist[className]:null};MetaLib.prototype.isClassDeprecated=function(className){var obj,ret=null;if(className==="oj.ojTree"){if(SemVer.gte(this._jetVer,"5.2.0")){return null}else{return{type:DEPRECATED,since:"5.2.0",description:"Use ojTreeView instead"}}}if(!(obj=this._json[className])){className=this._classChange[className];obj=className?this._json[className]:undefined}if(obj){if(obj.header){ret=this._isClassDeprecated(obj.header);if(ret&&ret.description){ret.description=this._utils.removeLink(ret.description)}}if(!ret){ret=this._isClassDeprecated(obj)}}return ret};MetaLib.prototype._isClassDeprecated=function(obj){var depr,status,ret=null;if(obj){if(obj.ojdeprecated&&obj.ojdeprecated.length){depr=obj.ojdeprecated;for(status of depr){if(!status.type||status.type===DEPRECATED){ret=status;if(!ret.type){ret.type=DEPRECATED}break}}}else if(depr=obj.deprecated){ret={type:DEPRECATED,description:typeof depr===BOOLEAN?NO_SUGGESTION_AVAIL:depr}}}return ret};MetaLib.prototype.isClassMethodDeleted=function(className,methodName){var a,cn,i,ret=null;a=this._deletedMethods[methodName];if(a){cn=this._classChange[className];if(cn){className=cn}for(i=0;i<a.length;i++){if(a[i]===className){ret=a[i+1];break}i++}}return ret};MetaLib.prototype.isClassMethodDeprecated=function(className,methodName){var obj,method,ret=null;obj=this._json[className];if(!obj){className=this._classChange[className];obj=className?this._json[className]:undefined}if(obj&&obj.function){for(method in obj.function){if(method===methodName){method=obj.function[method];ret=this._isSubStateDeprecated(method);break}}}return ret};MetaLib.prototype.isClassMemberDeleted=function(className,memberName){var a,i,cname,ret=null;a=this._deletedMembers[memberName];if(a){cname=this._classChange[className];for(i=0;i<a.length;i++){if(a[i]===className||a[i]===cname){ret=a[i+1];break}i++}}return ret};MetaLib.prototype.isClassMemberDeprecated=function(className,memName){var obj,member,obj,ret=null;obj=this._json[className];if(!obj){className=this._classChange[className];obj=className?this._json[className]:undefined}if(obj&&obj.member){memName=memName.charAt(0)===":"?memName.substring(1):memName;for(member in obj.member){if(member===memName){member=obj.member[memName];ret=this._isSubStateDeprecated(member,true);break}}}return ret};MetaLib.prototype.isClassAttrDeprecated=function(className,attrName){var obj,member,ret=null;obj=this._json[className];attrName=attrName.charAt(0)===":"?attrName.substring(1):attrName;if(obj&&obj.member){for(member in obj.member){member=obj.member[member];if(attrName===member.name){ret=this._isSubStateDeprecated(member,true);break}}}return ret};MetaLib.prototype.isComponentDeleted=function(className){return this.isClassDeleted(className)};MetaLib.prototype.isComponentAttrDeprecated=function(className,attrName){return this.isClassAttrDeprecated(className,attrName)};MetaLib.prototype.isComponentMethodDeprecated=function(className,methodName){return this.isClassMethodDeprecated(className,methodName)};MetaLib.prototype.isComponentMemberDeprecated=function(className,memberName){return this.isClassMemberDeprecated(className,memberName)};MetaLib.prototype.isComponentMethodDeleted=function(className,methodName){return this.isClassMethodDeleted(className,methodName)};MetaLib.prototype.isComponentMemberDeleted=function(className,memberName){return this.isClassMemberDeleted(className,memberName)};MetaLib.prototype.isTagPackPrivate=function(tag){var o,ret;if(!tag){return false}tag=_removeChevrons(tag);if(this.isJetTag(tag)){if(o=this._getComponentFromTag(tag)){ret=o.header&&o.header.ojsubcomponenttype===PACK_PRIVATE}}else if(this._components){ret=this._components.isTagPackPrivate(tag)}return ret};MetaLib.prototype.isTagAttrTranslatable=function(tag,attr){var member=this._getTagAttrMemberObj(tag,attr);return member?this._isSubStateTranslatable(member):this._components.isTagAttrTranslatable(tag,attr)};MetaLib.prototype.isTagAttrReadOnly=function(tag,attr){var o,ret=false;tag=_removeChevrons(tag);if(o=this._getTagAttrMemberObj(tag,attr)){ret=o&&o.readonly}else if(this._components){ret=this._components.isTagAttrReadOnly(tag,attr)}return ret};MetaLib.prototype.isTagAttrWriteback=function(tag,attr){var o,ret=false;tag=_removeChevrons(tag);if(o=this._getTagAttrMemberObj(tag,attr)){ret=o&&o.ojwriteback}else if(this._components){ret=this._components.isTagAttrWriteback(tag,attr)}return ret};MetaLib.prototype.hasTagDataOjCommand=function(tagName){var obj,ret=false,compName,containers,indexes,i;tagName=_removeChevrons(tagName);obj=this._getComponentFromTag(tagName);if(obj){compName=this._getComponentNameFromTag(tagName);indexes=this._json.dataOjCommand;if(indexes){containers=this._json.ojStyles.containers;for(i=0;i<indexes.length;i++){if(containers[indexes[i]]===compName){ret=true;break}}}}return ret};MetaLib.prototype.isTagEvent=function(tagName,eventName){var obj,attr,x,evName,ret=false;eventName=eventName.charAt(0)===":"?eventName.substring(1):eventName;evName=eventName.includes("-")?eventName:this._domUtils.kebabCase(eventName);if(!eventName.startsWith(EVENT_ON)){return ret}if(this.isWCTag(tagName)){if(this._getComponentNameFromTag(tagName)){obj=this._getComponentFromTag(_removeChevrons(tagName));if(this._curFileType===FT_TSX){if(!(evName=this._transformTsxLegacyTagEvent(eventName))){return false}}if(obj&&obj.htmlevents){ret=!!obj.htmlevents[evName]}if(!ret){if((x=evName.lastIndexOf(DASH_CHANGED))>=0){attr=evName.substring(3,x);attr=this._domUtils.camelCase(attr);ret=!!obj.member[attr]}}}else{ret=this._components&&this._components.isTagEvent(tagName,eventName)}if(!ret){ret=HtmlUtils.isCommonEventAttr(eventName)}}return ret};MetaLib.prototype._transformTsxLegacyTagEvent=function(eventName){var evName;if(eventName.startsWith("on")){let c,i=2;if(eventName.substring(2,4)==="oj"){i=4}c=eventName.charAt(i).toUpperCase();i++;evName=this._domUtils.kebabCase("on"+(i>4?"Oj":"")+c+eventName.substring(i))}return evName};MetaLib.prototype.isTagStatus=function(tag,statType){var clazz,ret;if(clazz=this._getComponentNameFromTag(_removeChevrons(tag))){let stats,status;if(stats=clazz?.header?.ojdeprecated){for(i=0;i<status.length;i++){status=stats[i];if(status.type===statType||statType===DEPRECATED&&!status.hasOwnProperty("type")){ret=true;break}}}}else{ret=this._components.isTagStatus(tag,statType)}return!!ret};MetaLib.prototype.getTagStatus=function(tag,statType){var clazz,ret=null;if(statType&&!this._isTagStatusType(statType)){return null}if(!(clazz=this._getComponentNameFromTag(_removeChevrons(tag)))){return this._components.getTagStatus(tag,statType)}if(clazz==="oj.ojTree"){if(SemVer.gte(this._jetVer,"5.2.0")){return null}else{if(statType===DEPRECATED){return[{type:DEPRECATED,description:"Use <oj-tree-view> instead"}]}else if(statType===SUPERSEDES){return[{type:SUPERSEDES,description:"Superseded by <oj-tree-view>"}]}return null}}let obj=this._json[clazz];if(obj&&obj.header){let arStat,omitted=statType===undefined;if(Array.isArray(arStat=obj.header.ojdeprecated)){let stat,i,stType;for(i=0;i<arStat.length;i++){stat=arStat[i];if(!(stType=stat.type)){stType=DEPRECATED}if(omitted||stType===statType){if(!ret){ret=[]}ret.push(obj={type:stType});if(stat.hasOwnProperty("target")){obj.target=stat.target}if(stat.hasOwnProperty("value")){obj.value=stat.value}if(stat.hasOwnProperty("since")){obj.since=stat.since}if(stat.hasOwnProperty("description")){obj.description=stat.description}if(stType===ANTIPATTERN&&stat.hasOwnProperty("themes")){ret.themes=stat.themes}this._handleStatusFor(stat,stType,ret)}}}else if(typeof arStat===STRING){ret=[{description:arStat}]}}return ret};MetaLib.prototype._isTagStatusType=function(type){return type===DEPRECATED||type===MAINTENANCE||type===SUPERSEDES||type===ANTIPATTERN};MetaLib.prototype.getPropStatus=function(tagName,propName,statType){var clazz,prop,propName2,status,ret;var omitted=statType===undefined;if(statType&&!this._isTagStatusType(statType)){return null}propName=propName.charAt(0)===":"?propName.substring(1):propName;if(clazz=this._getComponentNameFromTag(_removeChevrons(tagName))){let obj=this._json[clazz];if(this._curFileType===FT_TSX){if(obj.member){propName2=obj.member[propName]}}else if(obj.htmlattributes){propName2=obj.htmlattributes[propName]}if(!propName2){return null}if(obj&&obj.member&&(prop=obj.member[propName2])){if(status=prop.ojdeprecated){let i;for(i=0;i<status.length;i++){let stat,stType,o;stat=status[i];if(!(stType=stat.type)){stType=DEPRECATED}if(omitted||stType===statType){if(!ret){ret=[]}o={type:stType};if(stat.hasOwnProperty("target")){o.target=stat.target}if(stat.hasOwnProperty("value")){o.value=stat.value}if(stat.hasOwnProperty("since")){o.since=stat.since}if(stat.hasOwnProperty("description")){o.description=stat.description}if(stType===ANTIPATTERN&&stat.hasOwnProperty("themes")){o.themes=stat.themes}this._handleStatusFor(stat,stType,o);ret.push(o)}}}}}else{propName2=this._curFileType===FT_TSX?propName:this._domUtils.camelCase(propName);ret=this._components.getPropStatus(tagName,propName2,statType)}return ret?ret:null};MetaLib.prototype._handleStatusFor=function(stat,stType,obj){if(stType===ANTIPATTERN){if(stat.hasOwnProperty("for")&&obj.target===STATUS_PROP_VALUE){obj.value=stat.for}}else if(stType===DEPRECATED&&stat.hasOwnProperty("for")){if(obj.target===STATUS_PROP_VALUE||obj.target===STATUS_PROP_TYPE){obj.value=stat.for}}else if(stType===MAINTENANCE||stType===SUPERSEDES){if(stat.hasOwnProperty("for")){obj.value=stat.for}}};MetaLib.prototype.applySchema=function(obj){return this._compSvcs.validateComponentJsonWithSchema(obj)};MetaLib.prototype.walkElemStackForOJTag=function(ctx,excludeBindIf){var i,name,ret=null;var stack=ctx.elemStack;if(stack&&stack.length){for(i=stack.length-1;i>=0;i--){name=stack[i].name;if(name.toLowerCase().startsWith(OJPREFIX)){if(!name.startsWith("oj-bind-")||!excludeBindIf){ret=name;break}}}}return ret};MetaLib.prototype.walkDomStackForOJTag=function(ctx,excludeBindIf){return this.walkElemStackForOJTag(ctx,excludeBindIf)};MetaLib.prototype.getPublicInterface=function(){return{isJetTag:this.isJetTag.bind(this),isWCTag:this.isWCTag.bind(this),isComponentTag:this.isComponentTag.bind(this),isJetCoreTag:this.isJetCoreTag.bind(this),isCoreTag:this.isCoreTag.bind(this),isJetLegacyTag:this.isJetLegacyTag.bind(this),isTagDeprecated:this.isTagDeprecated.bind(this),isTagSupportedInTheme:this.isTagSupportedInTheme.bind(this),isAttrSupportedInTheme:this.isAttrSupportedInTheme.bind(this),isTagAttrDeprecated:this.isTagAttrDeprecated.bind(this),isTagAttrTranslatable:this.isTagAttrTranslatable.bind(this),isTagAttrReadOnly:this.isTagAttrReadOnly.bind(this),isTagAttrEnumValueDeprecated:this.isTagAttrEnumValueDeprecated.bind(this),isTagAttr:this.isTagAttr.bind(this),isJetTagAttr:this.isJetTagAttr.bind(this),hasTagAttrValues:this.hasTagAttrValues.bind(this),isTagAttrValue:this.isTagAttrValue.bind(this),getTagAttrType:this.getTagAttrType.bind(this),getTagAttrTypeEx:this.getTagAttrTypeEx.bind(this),getAllCustomMetadata:this.getAllCustomMetadata.bind(this),getTagMetadata:this.getTagMetadata.bind(this),getTagPropMetadata:this.getTagPropMetadata.bind(this),getTagRequirementsMetadata:this.getTagRequirementsMetadata.bind(this),getOjcMetadataByPath:this.getOjcMetadataByPath.bind(this),getAllPackMetadata:this.getAllPackMetadata.bind(this),getPackMetadata:this.getPackMetadata.bind(this),getPackPaths:this.getPackPaths.bind(this),getAllResourceMetadata:this.getAllResourceMetadata.bind(this),getResourceMetadata:this.getResourceMetadata.bind(this),getResourcePaths:this.getResourcePaths.bind(this),isTagCompProp:this.isTagCompProp.bind(this),hasTagCompPropSubprop:this.hasTagCompPropSubprop.bind(this),getTagPropType:this.getTagPropType.bind(this),hasTagSlot:this.hasTagSlot.bind(this),hasTagDefaultSlot:this.hasTagDefaultSlot.bind(this),isTagSlotName:this.isTagSlotName.bind(this),isTagSlotValue:this.isTagSlotValue.bind(this),isTagSlotDeprecated:this.isTagSlotDeprecated.bind(this),getPreferredSlotContent:this.getPreferredSlotContent.bind(this),getPreferredSlotContentEx:this.getPreferredSlotContentEx.bind(this),getTagSlotMetadata:this.getTagSlotMetadata.bind(this),hasTagDataOjCommand:this.hasTagDataOjCommand.bind(this),isBindingTag:this.isBindingTag.bind(this),isTagAttrWriteback:this.isTagAttrWriteback.bind(this),isTagPackPrivate:this.isTagPackPrivate.bind(this),isTagStatus:this.isTagStatus.bind(this),getTagStatus:this.getTagStatus.bind(this),getPropStatus:this.getPropStatus.bind(this),isClass:this.isClass.bind(this),isClassRenamed:this.isClassRenamed.bind(this),isClassDeleted:this.isClassDeleted.bind(this),isClassDeprecated:this.isClassDeprecated.bind(this),isClassMethodDeleted:this.isClassMethodDeleted.bind(this),isClassMemberDeleted:this.isClassMemberDeleted.bind(this),isClassMethodDeprecated:this.isClassMethodDeprecated.bind(this),isClassMemberDeprecated:this.isClassMemberDeprecated.bind(this),isClassAttrDeprecated:this.isClassAttrDeprecated.bind(this),isClassFinal:this.isClassFinal.bind(this),isClassMethod:this.isClassMethod.bind(this),isClassMethodStatic:this.isClassMethodStatic.bind(this),isClassMember:this.isClassMember.bind(this),isClassMemberStatic:this.isClassMemberStatic.bind(this),getClassMethodScope:this.getClassMethodScope.bind(this),getStyleOrigin:this.getStyleOrigin.bind(this),isJetStyle:this.isJetStyle.bind(this),isCustomStyle:this.isCustomStyle.bind(this),isTagStyle:this.isTagStyle.bind(this),isStyle:this.isStyle.bind(this),isGenStyle:this.isGenStyle.bind(this),isClassStyle:this.isClassStyle.bind(this),isStylesetStyle:this.isStylesetStyle.bind(this),isStyleDeprecated:this.isStyleDeprecated.bind(this),isStyleDeprecatedEx:this.isStyleDeprecatedEx.bind(this),getStyleSelector:this.getStyleSelector.bind(this),getNonSSStyleElems:this.getNonSSStyleElems.bind(this),isJetStylePrefix:this.isJetStylePrefix.bind(this),hasJetStylePrefixes:this.hasJetStylePrefixes.bind(this),isTagEvent:this.isTagEvent.bind(this),isTagEventDeprecated:this.isTagEventDeprecated.bind(this),getTagPropertyFromEvent:this.getTagPropertyFromEvent.bind(this),getTagsFromStyle:this.getTagsFromStyle.bind(this),getJetTagFromStyle:this.getJetTagFromStyle.bind(this),getJetTagsFromStyle:this.getJetTagsFromStyle.bind(this),getClassesFromStyle:this.getClassesFromStyle.bind(this),getClassFromTag:this.getClassFromTag.bind(this),getClassFromModule:this.getClassFromModule.bind(this),getTagFromClass:this.getTagFromClass.bind(this),getDeprecatedMethodList:this.getDeprecatedMethodList.bind(this),getDeprecatedMemberList:this.getDeprecatedMemberList.bind(this),getDeletedMethodList:this.getDeletedMethodList.bind(this),getDeletedMemberList:this.getDeletedMemberList.bind(this),getRequiredAttrs:this.getRequiredAttrs.bind(this),isComponent:this.isComponent.bind(this),isNamespaceTag:this.isNamespaceTag.bind(this),isNSRegistered:this.isNSRegistered.bind(this),isNamespacePrefix:this.isNamespacePrefix.bind(this),isRuleIgnored:this.isRuleIgnored.bind(this),getRenamedClassList:this.getRenamedClassList.bind(this),getDeletedClassList:this.getDeletedClassList.bind(this),processImplements:this.processImplements.bind(this),isInterfaceImplemented:this.isInterfaceImplemented.bind(this),getInterfaces:this.getInterfaces.bind(this),getImplementers:this.getImplementers.bind(this),getSubcomponentType:this.getSubcomponentType.bind(this),getWCInterfaces:this.getWCInterfaces.bind(this),hasWCInterfaces:this.hasWCInterfaces.bind(this),hasJetWCInterfaces:this.hasJetWCInterfaces.bind(this),getMetaVers:this.getMetaVers.bind(this),walkElemStackForOJTag:this.walkelemStackForOJTag,walkDomStackForOJTag:this.walkDomStackForOJTag,isIgnoreAttr:this.isIgnoreAttr.bind(this),applySchema:this.applySchema.bind(this),getRevisionInfo:this.getRevisionInfo.bind(this),_getObjectMetadata:this._getObjectMetadata.bind(this)}};MetaLib.prototype.loadMeta=function(metaFile){var metaObj,ret=false;if(!this._json){try{if(metaObj=this._nd.metaLoader.loadMeta(metaFile,this._nd,this._fsUtils)){this._json=metaObj.meta;this._delHist=metaObj.delMeta;this._renHist=metaObj.renMeta;this._reqAttrs=metaObj.reqattr;this._jetVerRaw=this._json.meta.jetversion;this._jetVer=_removeJetVerExtension(this._jetVerRaw);this._metaCommonAnalysis();ret=true}else{this._error(`Metadata '${metaFile}' not found!`)}}catch(e){this._error(`[${e.name}]: Metadata load (${metaFile}) - ${e.message}`)}}return ret};MetaLib.prototype.getNonLegacyMaintenanceTags=function(){return this._components.getMaintenanceTags()};MetaLib.prototype.getRenamedClassList=function(){return this._renHist};MetaLib.prototype.getDeletedClassList=function(){return this._delHist};MetaLib.prototype.processImplements=function(tag,impls){if(Array.isArray(impls)&&this._implements){impls.forEach(impl=>{if(this._implements[impl]){this._implements[impl].push(tag)}else{this._implements[impl]=[tag]}})}};const OJV_CHARS=/[<>]/;MetaLib.prototype._getOjValues=function(mem){var ts,ret;if(!mem){return false}if(mem.ojvalues){if(mem.ojvalues.name&&Array.isArray(mem.ojvalues.name)&&mem.ojvalues.name.length){return mem.ojvalues}return}if(mem.tstype&&mem.tstype.m_ojvalues){return mem.tstype.m_ojvalues}ts=this._getTsTypeObject(mem);if(ts&&ts.ojvalues&&ts.ojvalues.name){if(Array.isArray(ts.ojvalues.name)&&ts.ojvalues.name.length){ret=ts.ojvalues}}return ret};MetaLib.prototype.getImplementers=function(ifc){var ret;if(this._implements&&ifc){ret=this._implements[ifc]}return ret||null};MetaLib.prototype.getInterfaces=function(tag){var obj,hdr,impls,ret;if(!tag){return null}tag=_removeChevrons(tag);if(this.isJetLegacyTag(tag)){if(obj=this._getComponentFromTag(tag)){if(hdr=obj.header){if(hdr.domInterface&&hdr.customelement){impls=hdr.domInterface;ret=Array.isArray(impls)?impls:[impls]}}}}else if(this.isComponentTag(tag)||this.isJetCoreTag(tag)){ret=this._components.getInterfaces(tag)}return ret||null};MetaLib.prototype.getWCInterfaces=function(){return this._implements};MetaLib.prototype.hasJetWCInterfaces=function(){return this._hasJetWCIFCs};MetaLib.prototype.hasWCInterfaces=function(){return!!this._implements};MetaLib.prototype.isInterfaceImplemented=function(tag,ifcName){var ifc,ret;if(ifc=this.getInterfaces(tag)){for(let i=0;i<ifc.length;i++){if(ifc[i]===ifcName){ret=true;break}}}return!!ret};MetaLib.prototype.getSubcomponentType=function(tag){var obj,hdr,ret;if(tag=_removeChevrons(tag)){if(this.isJetTag(tag)){if(obj=this._getComponentFromTag(tag)){if(hdr=obj.header){ret=hdr.ojsubcomponenttype}}}else if(this.isComponentTag(tag)){ret=this._components.getSubcomponentType(tag)}}return ret||null};MetaLib.prototype._createNonClassList=function(mp){this._nonClasses=mp.nonClasses?mp.nonClasses:["genericStyles","ojStyles"];this._nonClasses.push("moduleLookup");this._nonClasses.push("newGenericStyles");this._nonClasses.push("newOjStyles");if(!this._nonClasses.includes("custElementClassLookup"))this._nonClasses.push("custElementClassLookup");if(!this._nonClasses.includes("meta"))this._nonClasses.push("meta");if(!this._nonClasses.includes("ResponsivePrefixes"))this._nonClasses.push("ResponsivePrefixes")};MetaLib.prototype.setAmdMeta=function(obj){this._json=obj.jetMeta.meta;this._delHist=obj.jetMeta.delMeta;this._reqAttrs=obj.jetMeta.reqattr;this._jetVerRaw=this._json.meta.jetversion;this._jetVer=_removeJetVerExtension(this._jetVerRaw);this._metaCommonAnalysis();return true};MetaLib.prototype._metaCommonAnalysis=function(){this._createNonClassList(this._json.meta);this._createModuleLookup();this._createClassNameChanges();this._fixup_jet_42315();this._createImplements()};MetaLib.prototype.setTheme=function(theme){this._theme=theme};MetaLib.prototype._createModuleLookup=function(){var comps,compName,lookup,hdr;if(this._json.moduleLookup){return}this._json.moduleLookup=lookup={};comps=this._json;for(compName in comps){if(!this._nonClasses.includes(compName)&&!compName.startsWith("oj.__")){hdr=comps[compName].header;if(hdr){lookup[OJS+hdr.name.toLowerCase()]=compName}}}};MetaLib.prototype._createClassNameChanges=function(){var comps,compName,o,hdr;if(this._classChange=this._json.meta.isClassNameChanges){return}this._classChange=o={};comps=this._json;for(compName in comps){if(!this._nonClasses.includes(compName)){hdr=comps[compName].header;if(hdr&&compName!==hdr.name){o[hdr.name]=compName}}}this._json.meta.isClassNameChanges=true};MetaLib.prototype._fixup_jet_42315=function(){var o;if(SemVer.gte(this._jetVer,"8.0.0")){if(o=this._json.Color||this._json["oj.Color"]||this._json["oj.ojColor"]){if(!o.header){o.header={}}o.header.readonly=true}}};MetaLib.prototype._createImplements=function(){var clazzes,clazz,tag,impls,impl,o={},a,hdr;if(this._implements=this._json.meta.interfaces){return}clazzes=this._json;for(clazz in clazzes){if(this._nonClasses.includes(clazz)){continue}if(hdr=clazzes[clazz].header){if(hdr.domInterface&&hdr.customelement){impls=hdr.domInterface;impls=Array.isArray(impls)?impls:[impls];for(impl of impls){if(o[impl]){a=o[impl]}else{o[impl]=a=[]}this._hasJetWCIFCs=true;tag=this.getTagFromClass(clazz);if(tag&&!a.includes(tag)){a.push(tag)}}}}}this._implements=this._hasJetWCIFCs?o:null};MetaLib.prototype.getMetaVers=function(){return{versions:this._jetVersions,runver:this._jetVer}};MetaLib.prototype.setComponentsLib=function(compSvcs,comps){if(compSvcs){this._compSvcs=compSvcs}if(comps){this._components=comps}};MetaLib.prototype.setStylesets=function(ss){if(!ss){return}var o,obj,e,i;if(!this._stylesets){this._stylesets=obj={}}else{obj=this._stylesheets}for(i=0;i<ss.length;i++){o=ss[i];if(typeof o===STRING){obj[o]=true}else if(o.deprecated){obj[o.deprecated]=e={};if(o.since){e.since=o.since}if(o.note){e.description=o.note}else if(o.description){e.description=o.description}}}};MetaLib.prototype.setDomUtils=function(du){this._domUtils=du};MetaLib.prototype.getDomUtils=function(){return this._domUtils};MetaLib.prototype.setCurFileType=function(ft){this._curFileType=ft&&ft.startsWith(DOT)?ft.substring(1):ft;this._components.setCurFileType(this._curFileType)};MetaLib.prototype.getRevisionInfo=function(){var metaSect=this._json.meta;var revision="";var x;return{revision:revision,tag:metaSect.jetrevision,jetVersionRaw:metaSect.jetversion,jetVersion:(x=metaSect.jetversion.indexOf("-"))>=0?metaSect.jetversion.substring(0,x):metaSect.jetversion,date:metaSect.date,time:metaSect.time}};MetaLib.prototype._isSubStateDeprecated=function(obj,isMember){var depr,retStatus=null;if(obj&&obj.ojdeprecated&&obj.ojdeprecated.length){retStatus=this._createLegacyDeprecatedStatus(obj.ojdeprecated,isMember)}else if(depr=obj.deprecated){retStatus=typeof depr===BOOLEAN?NO_SUGGESTION_AVAIL:depr;retStatus=[{type:DEPRECATED,description:retStatus}]}return retStatus};MetaLib.prototype._isSubStateTranslatable=function(obj){return obj&&obj.ojtranslatable};MetaLib.prototype._createLegacyDeprecatedStatus=function(depr,isMember){var retStatus,depr,o;if(depr){depr.forEach(status=>{if(status.type&&status.type!==DEPRECATED){return}retStatus=[];o={type:DEPRECATED};if(status.hasOwnProperty("target")){o.target=status.target;if(isMember&&status.target==="memberType"){if(status.value&&status.value.length>1){o.target="propertyValue";o.value=[];status.value.forEach((elem,x)=>{if(x){if(elem.startsWith("'")||elem.startsWith("\"")){elem=elem.substring(1,elem.length-1)}o.value.push(elem)}})}else{o.target="propertyType"}}}if(status.hasOwnProperty("description")){o.description=status.description}if(status.hasOwnProperty("since")){o.since=status.since}if(status.hasOwnProperty("for")){o.value=[status.for]}else if(!o.value&&status.hasOwnProperty("value")){o.value=status.value}retStatus.push(o)})}return retStatus&&retStatus.length?retStatus:null};MetaLib.prototype._getComponentNameFromTag=function(tagName){var ret;if(tagName){tagName=tagName.toLowerCase();ret=this._json.custElementClassLookup[tagName]?this._json.custElementClassLookup[tagName]:null}else{ret=false}return ret};MetaLib.prototype.isIgnoreAttr=function(tagName,attrName){var ret=false;attrName=attrName.toLowerCase();attrName=attrName.charAt(0)===":"?attrName.substr(1):attrName;if(HtmlUtils.isCommonElem(attrName)||attrName.startsWith("aria-")){return true}if(tagName==="oj-avatar"){if(attrName==="src"||attrName==="initials")ret=true}else if(tagName==="oj-option"){if(attrName==="value")ret=true}return ret};MetaLib.prototype.getDeprecatedMethodList=function(){if(this._deprecatedMethods){return this._deprecatedMethods}var json=this._json;var name,methName,methObj,depMeth,o,a;var ret={};for(name in json){o=json[name];if(o&&o.function){for(methName in o.function){methObj=o.function[methName];depMeth=methObj.ojdeprecated;if(depMeth&&(!depMeth.type||depMeth.type==="deprecated")){if(ret[methName]){a=ret[methName]}else{ret[methName]=a=[]}a.push(name)}}}}return this._deprecatedMethods=ret};MetaLib.prototype.getDeprecatedMemberList=function(){if(this._deprecatedMembers){return this._deprecatedMembers}var json=this._json;var name,memName,memObj,depMem,o,a;var ret={};for(name in json){o=json[name];if(o&&o.member){for(memName in o.member){memObj=o.member[memName];depMem=memObj.ojdeprecated;if(depMem&&(!depMem.type||depMem.type==="deprecated")){if(ret[memName]){a=ret[memName]}else{ret[memName]=a=[]}a.push(name)}}}}return this._deprecatedMembers=ret};MetaLib.prototype.getDeletedMethodList=function(){if(this._deletedMethods){return this._deletedMethods}var json=this._delHist;var name,methName,ver,o,a;var ret={};if(json){for(name in json){o=json[name];if(o&&o.methods){for(methName in o.methods){ver=o.methods[methName];if(ret[methName]){a=ret[methName]}else{ret[methName]=a=[]}a.push(name);a.push(ver)}}}}return this._deletedMethods=ret};MetaLib.prototype.getDeletedMemberList=function(){if(this._deletedMembers){return this._deletedMembers}var json=this._delHist;var name,memName,ver,o,a;var ret={};if(json){for(name in json){o=json[name];if(o&&o.members){for(memName in o.members){ver=o.members[memName];if(ret[memName]){a=ret[memName]}else{ret[memName]=a=[]}a.push(name);a.push(ver)}}}}return this._deletedMembers=ret};MetaLib.prototype._getSlots=function(tagName){var obj=this._getComponentFromTag(_removeChevrons(tagName));return this._getSlots2(obj)};MetaLib.prototype._getSlots2=function(base){var bases,base,i,ret=null;while(base){ret=base&&base.slot?base.slot:null;if(ret){break}bases=base.header&&base.header.augments?base.header.augments:null;if(!bases){break}for(i=0;i<bases.length;i++){base=this._json[bases[i]];ret=this._getSlots2(base);if(ret){base=null;break}}}return ret?ret:null};MetaLib.prototype._getSlotByName=function(base,slotName){var ret=null;while(base){if(!slotName){ret=base&&base.member?base.member.Default&&base.member.Default.ojchild:null}else{if(base&&base.slot){ret=base.slot[slotName]}}break}return ret?ret:null};MetaLib.prototype._getComponentFromTag=function(tagName){var o=this._getComponentNameFromTag(tagName);if(o){o=this._json[o]}return o?o:null};function _getStyleIndices(scope,styleName){var a,n,ret,i;a=scope[styleName];if(a||a===0){if(!ret){ret=[]}if(Array.isArray(a)){for(i=0;i<a.length;i++){n=a[i];if(typeof n===OBJECT){n=a[i].index}ret.push(n)}}else{if(typeof a===OBJECT){n=a.index}else{n=a}ret.push(n)}}return ret&&ret.length?ret:null};MetaLib.prototype.getNonSSStyleElems=function(styleName,scope){var a,n,ret,i;scope=scope?this._json.ojStyles:this._json.genericStyles;a=scope[styleName];if(a||a===0){if(!ret){ret=[]}if(Array.isArray(a)){for(i=0;i<a.length;i++){n=a[i];if(typeof n===OBJECT&&!n.styleselector){n=a[i].index}ret.push(n)}}else{if(typeof a===OBJECT&&!a.styleselector){n=a.index}else{n=a}ret.push(n)}}return ret&&ret.length?_toContainers(scope,ret,this._json):null};MetaLib.prototype.displayImpls=function(){var impls,impl;this._console("[info] :--------- JET Interfaces Implemented ---------","I");if(!(impls=this._implements)){this._console(" None!","I")}else{for(impl in impls){this._console(`${impl} : <- <${impls[impl].join(",")}>`,"I")}}this._console("[info]: -------- End Declared Web Components ---------\n","I")};function _removeJetVerExtension(ver){let x=ver.indexOf("-");return x>=0?ver.substring(0,x):ver};function _toContainers(scope,indices,json){var cont,ret,clazz,elem,n,i;cont=scope.containers;for(i=0;i<indices.length;i++){n=indices[i];if(n>=0){if(!ret){ret=[]}if(!json){ret[i]=cont[n]}else{clazz=cont[n];elem=json[clazz];if(elem&&elem.header){elem=elem.header.customelement;if(elem){ret[i]=elem}}}}}return ret&&ret.length?ret:null};function _convertValue(valType,value){var retValue=value;if(valType===STRING){retValue=value}else if(valType==="number"){retValue=Number(value)}else if(valType==="boolean"){retValue=value.toLowerCase()==="true"}return retValue};function _removeChevrons(tagName){if(tagName){let len=tagName.length-1;let start=tagName.charAt(0)==="<"?1:0;let end=tagName.charAt(len)===">"?len:++len;tagName=tagName.substring(start,end)}return tagName};module.exports=MetaLib;
package/lib/OjCPack.js CHANGED
@@ -3,4 +3,4 @@
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 PACK_PATH="node_modules/@oracle/oraclejet-core-pack/oj-c/metadata";const ALLCOMP_JSON="allComponents.json";const LOAD_MSG="Loading JET Core Pack (oj-c)...";const LOAD_AMD_MSG="Using AMD JET Core Pack (oj-c)...";const BOOLEAN="boolean";function Ojc(isOJet,isAMD,cwd,msgCtx,nd,fsUtils){this._isOJet=!!isOJet;this._isAMD=isAMD;this._nd=nd;this._cwd=cwd.replace(/\\/g,"/");this._fsUtils=fsUtils;this._msgCtx=msgCtx;this._fp=undefined;this._components=null;this._version=null}Ojc.prototype.getComponents=function(){return this._components};Ojc.prototype.getPackVersion=function(){return this._version};Ojc.prototype.setPath=function(fp){if(!this._isAMD){if(fp&&this._fsUtils.getFileType(fp)==="d"){fp=this._nd.path.join(fp,ALLCOMP_JSON)}else if(typeof fp===BOOLEAN){fp=null}}this._fp=fp};Ojc.prototype.load=function(){var o,comps,comp,isPath,info=this._msgCtx.info;if(this._components){return this._components}if(!this._isAMD){if(this._fp===null){return this._components};if(this._fp===undefined){this._fp=this._nd.path.join(this._cwd,PACK_PATH,ALLCOMP_JSON)}else{isPath=true}if(!this._fsUtils.fileExists(this._fp)){let m=`Jet Core Pack metadata not found at '${this._fp}' [JAF-9015]\n`;let fn=isPath?this._msgCtx.error:this._msgCtx.warn;fn(m);return}info(LOAD_MSG);if(!(o=this._fsUtils.readJsonSync(this._fp,false,false))){this._msgCtx.error("Failed to read oj-c core pack allComponents.json");return false}else if(typeof o==="string"){this._msgCtx.error(o);return}comps=o.components;this._version=o.version}else{info(LOAD_AMD_MSG);comps=this._fp;if(comps.version){if(comps.name!=="oj-c"){this._msgCtx.error(`Expected JET oj-c Core Pack allComponents.json - received pack named ${comps.name}'`);return false}this._version=comps.version;comps=comps.components}else{this._version="supplied, version not available"}}if(comps){let n=0;for(comp in comps){n++;if(!this._components){this._components={}}this._components[comp]=comps[comp]}info(`... ${n} JET Core Pack components loaded`)}return this._components};module.exports=Ojc;
6
+ const PACK_PATH="node_modules/@oracle/oraclejet-core-pack/oj-c/metadata";const ALLCOMP_JSON="allComponents.json";const LOAD_MSG="Loading JET Core Pack (oj-c)...";const LOAD_AMD_MSG="Using AMD JET Core Pack (oj-c)...";const BOOLEAN="boolean";function Ojc(isOJet,isAMD,cwd,msgCtx,nd,fsUtils){this._isOJet=!!isOJet;this._isAMD=isAMD;this._nd=nd;this._cwd=cwd.replace(/\\/g,"/");this._fsUtils=fsUtils;this._msgCtx=msgCtx;this._fp=undefined;this._components=null;this._version=null}Ojc.prototype.getComponents=function(){return this._components};Ojc.prototype.getPackVersion=function(){return this._version};Ojc.prototype.getBuildDate=function(){return this._buildDate};Ojc.prototype.getBuildTime=function(){return this._buildTime};Ojc.prototype.setPath=function(fp){if(!this._isAMD){if(fp&&this._fsUtils.getFileType(fp)==="d"){fp=this._nd.path.join(fp,ALLCOMP_JSON)}else if(typeof fp===BOOLEAN){fp=null}}this._fp=fp};Ojc.prototype.load=function(){var o,comps,comp,isPath,info=this._msgCtx.info;if(this._components){return this._components}if(!this._isAMD){if(this._fp===null){return this._components};if(this._fp===undefined){this._fp=this._nd.path.join(this._cwd,PACK_PATH,ALLCOMP_JSON)}else{isPath=true}if(!this._fsUtils.fileExists(this._fp)){let m=`Jet Core Pack metadata not found at '${this._fp}' [JAF-9015]\n`;let fn=isPath?this._msgCtx.error:this._msgCtx.warn;fn(m);return}info(LOAD_MSG);if(!(o=this._fsUtils.readJsonSync(this._fp,false,false))){this._msgCtx.error("Failed to read oj-c core pack allComponents.json");return false}else if(typeof o==="string"){this._msgCtx.error(o);return}comps=o.components;this._version=o.version;this._buildDate=o.date.replace(",","");this._buildTime=o.time}else{info(LOAD_AMD_MSG);comps=this._fp;if(comps.version){if(comps.name!=="oj-c"){this._msgCtx.error(`Expected JET oj-c Core Pack allComponents.json - received pack named ${comps.name}'`);return false}this._version=comps.version;comps=comps.components}else{this._version="supplied, version not available"}}if(comps){let n=0;for(comp in comps){n++;if(!this._components){this._components={}}this._components[comp]=comps[comp]}info(`... ${n} JET Core Pack components loaded`)}return this._components};module.exports=Ojc;
package/lib/RegTypes.js CHANGED
@@ -3,4 +3,4 @@
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
- module.exports={ELEM:"elem",TAG:"tag",OJTAG:"ojtag",BINDING_TAG:"bindingtag",WEBCOMP:"webcomp",GLOBTAG:"globtag",NOTGLOB:"notglob",ATTR:"attr",ATTREXPR:"attrexpr",ATTREXPR_$PROPS:"attrexpr-$props",CLASS:"class",EVENT:"event",COMMENT:"comment",PROCSTMT:"procstmt",DIRECTIVE:"directive",DOCTYPE:"doctype",JETCOMP:"jetcomp",EXTCOMP:"extcomp",PHASE_FILE:"file",PHASE_STARTUP:"startup",PHASE_CLOSEDOWN:"closedown",PHASE_STARTUP_RULEPACK:"startupRP",PHASE_CLOSEDOWN_RULEPACK:"closedownRP",PHASE_START_AUDIT:"startaudit",PHASE_END_AUDIT:"endaudit"};
6
+ module.exports={ELEM:"elem",TAG:"tag",OJTAG:"ojtag",BINDING_TAG:"bindingtag",WEBCOMP:"webcomp",JETCOMP:"jetcomp",JET_CORE_COMP:"jetcorecomp",EXTCOMP:"extcomp",GLOBTAG:"globtag",NOTGLOB:"notglob",ATTR:"attr",ATTREXPR:"attrexpr",ATTREXPR_$PROPS:"attrexpr-$props",ATTR_ARIA:"attr-aria",CLASS:"class",EVENT:"event",STYLE:"style",STYLE_MEMBER:"stylemember",REQUIREMENTS:"requirements",COMMENT:"comment",PROCSTMT:"procstmt",DIRECTIVE:"directive",DOCTYPE:"doctype",JSON:"json",COMPJSON:"compjson",TSX_RENDERCOMPONENT:"TsxRenderComponent",TSX_COMPONENT:"TsxComponent",TSX_WEBCOMPONENT:"TsxWebComponent",TSX_JETCOMPONENT:"TsxJetComponent",TSX_REQUIREMENTS:"TsxRequirements",TSX_ELEM:"TsxElem",TSX_EVENT:"TsxEvent",TSX_PROPERTY:"TsxProperty",TSX_ARIA:"TsxAria",TSX_STYLE:"TsxStyle",TSX_FUNCTION:"TsxFunction",PHASE_FILE:"file",PHASE_STARTUP:"startup",PHASE_CLOSEDOWN:"closedown",PHASE_STARTUP_RULEPACK:"startupRP",PHASE_CLOSEDOWN_RULEPACK:"closedownRP",PHASE_START_AUDIT:"startaudit",PHASE_END_AUDIT:"endaudit"};
package/lib/Registry.js CHANGED
@@ -3,4 +3,4 @@
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 RULE_RE=new RegExp(/[~`!#$%\^&*+\[\]\\';,/{}|\\"\?]/);var Registry=function(appCtx){this._registry={};this._regexps={};this._reObjs={};this._TsxSynopsis={};this._appCtx=appCtx;this._info=appCtx.info;this._assert=appCtx.assert};Registry.prototype.getRegisteredCallbacks=function(type){var reo,ret;ret=this._registry[type];if(!type.startsWith("css-")&&type.indexOf("-")>0&&type.indexOf("|")<0){ret={...ret};type=type.substring(1,type.length-1).trim();for(re in this._regexps){reo=this._reObjs[re];if(reo&&reo.test(type)){if(!ret){ret={}}for(x in this._regexps[re]){ret[x]=this._regexps[re][x]}}};}return ret};Registry.prototype.isRegisteredCallback=function(type){if(type==="Tsx<"){let entry,ret;for(entry in this._registry){if(entry.startsWith("Tsx<")){ret=true;break}}return ret||false}return!!this._registry[type]};Registry.prototype.isRegisteredCallbackRE=function(elem){var ret,i;if(ret=this.isRegisteredCallback(elem)){return ret}elem=elem.startsWith("<")?elem.substring(1,elem.length-1):elem;for(re in this._regexps){if(this._reObjs[re].test(elem)){return true}}return false};Registry.prototype.getTsxRuleSynopsis=function(){var o=this._TsxSynopsis;o.isTsxRC=this.isRegisteredCallback("TsxRenderComponent");o.isTsxWC=this.isRegisteredCallback("TsxWebComponent");o.isTsxJetWC=this.isRegisteredCallback("TsxJetComponent");o.isTsxComp=this.isRegisteredCallback("TsxComponent");o.isTsxElem=this.isRegisteredCallback("TsxElem");o.isTsxProp=this.isRegisteredCallback("TsxProperty");o.isTsxEvent=this.isRegisteredCallback("TsxEvent");o.isTsxStyle=this.isRegisteredCallback("TsxStyle");o.isTsxNamedComp=this.isRegisteredCallback("Tsx<");o.isAnyTsxCompAttr=this.isRegisteredAnyTsxCompAttr();o.isAnyTsxAttr=this.isRegisteredAnyTsxAttr();return o};Registry.prototype.isAnyTsxTypeRegistered=function(){var keys,key,ret,i;keys=Object.keys(this._registry);for(i=0;i<keys.length;i++){key=keys[i];if(ret=key.startsWith("Tsx")){break}}return!!ret};Registry.prototype.isRegisteredAnyTsxCompAttr=function(){var keys,key,ret,i;keys=Object.keys(this._registry);for(i=0;i<keys.length;i++){key=keys[i];if(ret=key.startsWith("Tsx<")&&key.includes("|")){break}}return!!ret};Registry.prototype.isRegisteredAnyTsxAttr=function(){var keys,key,ret,i;keys=Object.keys(this._registry);for(i=0;i<keys.length;i++){key=keys[i];if(ret=key.startsWith("Tsx<")&&key.includes("=")&&!key.includes("|")){break}}return!!ret};Registry.prototype.setRuleCallback=function(ruleName,ruleRegs,rsi){var typeObj,regType,rt,callbacks,func,args,attrib,elem,isTsx;for(regType in ruleRegs){func=ruleRegs[regType];if(typeof func!=="function"){this._info(`Rule ${ruleName} : registered '${regType}' is not a function`);continue}rt=elem=regType;if(isTsx=rt.startsWith("Tsx<")){regType=rt.substring(3)}if(regType.charAt(0)==="<"){rt=regType.substring(1,regType.length-1).trim();args=rt.split(" ");if(args.length>1){attrib=args[args.length-1];if(attrib.endsWith("=")){rt=args[0]+"|"+attrib.substring(0,attrib.length-1)}elem=args[0]}else{elem=rt.endsWith("=")?null:rt}regType=`<${rt}>`;regType=(isTsx?"Tsx":"")+regType}if(!elem||!_isRE(elem)){if(!(typeObj=this._registry[regType])){this._registry[regType]=typeObj={}}}else{if(!(typeObj=this._regexps[rt])){this._regexps[rt]=typeObj={}}if(!this._reObjs[rt]){this._reObjs[rt]=new RegExp(rt)}}if(!(callbacks=typeObj[ruleName])){typeObj[ruleName]=callbacks=[]}callbacks.push({cb:func,rsi:rsi})}};Registry.prototype.XXsetRuleCallback=function(ruleName,ruleRegs,rsi){var typeObj,callbackType,ruleCallbacks,func;if(Array.isArray(ruleRegs)){var jj=this._setRuleCallback2(ruleName,ruleRegs)}else if(typeof ruleRegs!=="object"){return}else if(ruleRegs.cb){let regs=this._setExtended(ruleName,ruleRegs,rsi);if(regs){ruleRegs=regs}}for(callbackType in ruleRegs){func=ruleRegs[callbackType];if(typeof func!=="function"){this._info("Rule "+ruleName+" : registered '"+callbackType+"' is not a function");continue}typeObj=this._registry[callbackType];if(!typeObj){this._registry[callbackType]=typeObj={}}ruleCallbacks=typeObj[ruleName];if(!ruleCallbacks){typeObj[ruleName]=ruleCallbacks=[]}ruleCallbacks.push({cb:func,rsi:rsi})}};Registry.prototype.XXsetRuleCallback2=function(ruleName,regs,rsi){var a,i,j,props,prop,reg,val;for(i=0;i<regs.length;i++){reg=regs[i];if(!reg.cb){if(!a){a=[]}a.push(reg);continue}props=Object.keys(reg);if(props.length===2){for(j=0;j<props.length;j++){prop=props[j];if(prop!=="cb"){val=reg[prop];if(typeof val==="boolean"&&val){a.push({prop:val});break}}}continue}}};Registry.prototype.isEmpty=function(){return!this._appCtx.utils.hasAnyProps(this._registry)};Registry.prototype.dump=function(){var type,rule,vals,tagWidth,tagLen=0,indent,isFirst,s="";var list2={},ruleWidth,ruleLen=0,source,aSource,i;for(type in this._registry){if(type.length>tagLen){tagLen=type.length}}for(type in this._regexps){if(type.length>tagLen){tagLen=type.length}}if(!tagLen){return"\n-- No rules enabled - nothing to report --\n"}tagWidth=tagLen+3;indent=" ".repeat(tagWidth);s="\n"+ljustify("--- Tags ---",indent.length,indent)+"----- rules -----";source=this._registry;for(i=0;i<2;i++){aSource=Object.keys(source).sort();aSource.forEach(type=>{s+="\n"+ljustify(type,tagWidth,indent);vals=source[type];isFirst=true;for(rule in vals){s+=(isFirst?"":indent)+rule+"\n";isFirst=false;if(!list2[rule]){list2[rule]=[]}list2[rule].push(type);if(rule.length>ruleLen){ruleLen=rule.length}}});source=this._regexps}ruleWidth=ruleLen+2;indent=" ".repeat(ruleWidth);s+="\n"+ljustify("----- Rules -----",indent.length,indent)+"--- Tags ---";aSource=Object.keys(list2).sort();aSource.forEach(rule=>{vals=list2[rule];s+="\n"+ljustify(rule,ruleWidth,indent);isFirst=true;for(i=0;i<vals.length;i++){s+=(isFirst?"":indent)+vals[i]+"\n";isFirst=false}});return s+"\n"};function ljustify(n,w,blanks){var s=n.toString();var l=s.length;return s+blanks.substr(0,w-l)};function _isRE(s){var ret=s==="attrexpr-$props";return ret?!ret:RULE_RE.test(s)};module.exports=Registry;
6
+ const REG=require("../lib/RegTypes");const HTML_UTILS=require("../lib/HtmlUtils");const RULE_RE=new RegExp(/[~`!#$%\^&*+\[\]\\';,/{}|\\"\?]/);var Registry=function(appCtx){this._registry={};this._regexps={};this._reObjs={};this._TsxSynopsis=null;this._appCtx=appCtx;this._info=appCtx.info;this._assert=appCtx.assert};Registry.prototype.getRegisteredCallbacks=function(type){var reo,ret;ret=this._registry[type];if(!type.startsWith("css-")&&type.indexOf("-")>0&&type.indexOf("|")<0){ret={...ret};type=type.substring(1,type.length-1).trim();for(re in this._regexps){reo=this._reObjs[re];if(reo&&reo.test(type)){if(!ret){ret={}}for(x in this._regexps[re]){ret[x]=this._regexps[re][x]}}};}return ret};Registry.prototype.isRegisteredCallback=function(type){if(type==="Tsx<"){let entry,ret;for(entry in this._registry){if(entry.startsWith("Tsx<")){ret=true;break}}return ret||false}return!!this._registry[type]};Registry.prototype.isRegisteredCallbackRE=function(elem){var ret,i;if(ret=this.isRegisteredCallback(elem)){return ret}elem=elem.startsWith("<")?elem.substring(1,elem.length-1):elem;for(re in this._regexps){if(this._reObjs[re].test(elem)){return true}}return false};Registry.prototype.getTsxRuleSynopsis=function(){if(!this._TsxSynopsis){let o=this._TsxSynopsis={};o.isTsxRC=this.isRegisteredCallback(REG.TSX_RENDERCOMPONENT);o.isTsxWC=this.isRegisteredCallback(REG.TSX_WEBCOMPONENT);o.isTsxJetWC=this.isRegisteredCallback(REG.TSX_JETCOMPONENT);o.isTsxComp=this.isRegisteredCallback(REG.TSX_COMPONENT);o.isTsxRequirements=this.isRegisteredCallback(REG.TSX_REQUIREMENTS);o.isTsxElem=this.isRegisteredCallback(REG.TSX_ELEM);o.isTsxProp=this.isRegisteredCallback(REG.TSX_PROPERTY);o.isTsxEvent=this.isRegisteredCallback(REG.TSX_EVENT);o.isTsxStyle=this.isRegisteredCallback(REG.TSX_STYLE);o.isTsxAria=this.isRegisteredCallback(REG.TSX_ARIA);o.isTsxNamedComp=this.isRegisteredCallback("Tsx<");o.isAnyTsxCompAttr=this.isRegisteredAnyTsxCompAttr();o.isAnyTsxAttr=this.isRegisteredAnyTsxAttr()}return this._TsxSynopsis};Registry.prototype.isAnyTsxTypeRegistered=function(){var keys,key,ret,i;keys=Object.keys(this._registry);for(i=0;i<keys.length;i++){key=keys[i];if(ret=key.startsWith("Tsx")){break}}return!!ret};Registry.prototype.isRegisteredAnyTsxCompAttr=function(){var keys,key,ret,i;keys=Object.keys(this._registry);for(i=0;i<keys.length;i++){key=keys[i];if(ret=key.startsWith("Tsx<")&&key.includes("|")){break}}return!!ret};Registry.prototype.isRegisteredAnyTsxAttr=function(){var keys,key,ret,i;keys=Object.keys(this._registry);for(i=0;i<keys.length;i++){key=keys[i];if(ret=key.startsWith("Tsx<")&&key.includes("=")&&!key.includes("|")){break}}return!!ret};Registry.prototype.setRuleCallback=function(ruleName,ruleRegs,rsi){var typeObj,regType,rt,callbacks,func,args,attrib,elem,isTsx;for(regType in ruleRegs){func=ruleRegs[regType];if(typeof func!=="function"){this._info(`Rule ${ruleName} : registered '${regType}' is not a function`);continue}rt=elem=regType;if(isTsx=rt.startsWith("Tsx<")){regType=rt.substring(3)}if(regType.charAt(0)==="<"){rt=regType.substring(1,regType.length-1).trim();args=rt.split(" ");if(args.length>1){attrib=args[args.length-1];if(attrib.endsWith("=")){rt=args[0]+"|"+attrib.substring(0,attrib.length-1)}elem=args[0]}else{elem=rt.endsWith("=")?null:rt}regType=`<${rt}>`;regType=(isTsx?"Tsx":"")+regType}else if(rt.startsWith("globtag(")){if(rt.length<9||!rt.endsWith(")")){this._info(`Rule ${ruleName} : registered listener type 'globtag()' specification is incomplete`);continue}let s=rt.substring(8,rt.length-1).trim();if(!HTML_UTILS.isCommonElem(s)){this._info(`Rule ${ruleName} : registered listener type '${rt}' does not specify a global HTML element`);continue}}if(!elem||!_isRE(elem)){if(!(typeObj=this._registry[regType])){this._registry[regType]=typeObj={}}}else{if(!(typeObj=this._regexps[rt])){this._regexps[rt]=typeObj={}}if(!this._reObjs[rt]){this._reObjs[rt]=new RegExp(rt)}}if(!(callbacks=typeObj[ruleName])){typeObj[ruleName]=callbacks=[]}callbacks.push({cb:func,rsi:rsi})}};Registry.prototype.XXsetRuleCallback=function(ruleName,ruleRegs,rsi){var typeObj,callbackType,ruleCallbacks,func;if(Array.isArray(ruleRegs)){var jj=this._setRuleCallback2(ruleName,ruleRegs)}else if(typeof ruleRegs!=="object"){return}else if(ruleRegs.cb){let regs=this._setExtended(ruleName,ruleRegs,rsi);if(regs){ruleRegs=regs}}for(callbackType in ruleRegs){func=ruleRegs[callbackType];if(typeof func!=="function"){this._info("Rule "+ruleName+" : registered '"+callbackType+"' is not a function");continue}typeObj=this._registry[callbackType];if(!typeObj){this._registry[callbackType]=typeObj={}}ruleCallbacks=typeObj[ruleName];if(!ruleCallbacks){typeObj[ruleName]=ruleCallbacks=[]}ruleCallbacks.push({cb:func,rsi:rsi})}};Registry.prototype.XXsetRuleCallback2=function(ruleName,regs,rsi){var a,i,j,props,prop,reg,val;for(i=0;i<regs.length;i++){reg=regs[i];if(!reg.cb){if(!a){a=[]}a.push(reg);continue}props=Object.keys(reg);if(props.length===2){for(j=0;j<props.length;j++){prop=props[j];if(prop!=="cb"){val=reg[prop];if(typeof val==="boolean"&&val){a.push({prop:val});break}}}continue}}};Registry.prototype.isEmpty=function(){return!this._appCtx.utils.hasAnyProps(this._registry)};Registry.prototype.dump=function(){var type,rule,vals,tagWidth,tagLen=0,indent,isFirst,s="";var list2={},ruleWidth,ruleLen=0,source,aSource,i;for(type in this._registry){if(type.length>tagLen){tagLen=type.length}}for(type in this._regexps){if(type.length>tagLen){tagLen=type.length}}if(!tagLen){return"\n-- No rules enabled - nothing to report --\n"}tagWidth=tagLen+3;indent=" ".repeat(tagWidth);s="\n"+ljustify("--- Tags ---",indent.length,indent)+"----- rules -----";source=this._registry;for(i=0;i<2;i++){aSource=Object.keys(source).sort();aSource.forEach(type=>{s+="\n"+ljustify(type,tagWidth,indent);vals=source[type];isFirst=true;for(rule in vals){s+=(isFirst?"":indent)+rule+"\n";isFirst=false;if(!list2[rule]){list2[rule]=[]}list2[rule].push(type);if(rule.length>ruleLen){ruleLen=rule.length}}});source=this._regexps}ruleWidth=ruleLen+2;indent=" ".repeat(ruleWidth);s+="\n"+ljustify("----- Rules -----",indent.length,indent)+"--- Tags ---";aSource=Object.keys(list2).sort();aSource.forEach(rule=>{vals=list2[rule];s+="\n"+ljustify(rule,ruleWidth,indent);isFirst=true;for(i=0;i<vals.length;i++){s+=(isFirst?"":indent)+vals[i]+"\n";isFirst=false}});return s+"\n"};function ljustify(n,w,blanks){var s=n.toString();var l=s.length;return s+blanks.substr(0,w-l)};function _isRE(s){var ret=s==="attrexpr-$props";return ret?!ret:RULE_RE.test(s)};module.exports=Registry;
package/lib/Rules.js CHANGED
@@ -3,4 +3,4 @@
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 RuleContext=require("./RuleContext");const REG=require("../lib/RegTypes");const PROP_FILETYPE="filetype";const FILETYPE_CSS="css";var Rules=function(ruleSets,nodeDeps,config,fnMsgId,appCtx){this._appCtx=appCtx;this._msg=appCtx.msg;this._info=appCtx.info;this._debug=appCtx.debug;this._error=appCtx.error;this._warn=appCtx.warn;this._assert=appCtx.assert;this._metaLib=appCtx.metaLib;this._reporter=appCtx.reporter;this._Issue=appCtx.Issue;this._semVer=ruleSets.getSemVer();this._utils=appCtx.utils;this._fsUtils=appCtx.fsUtils;this._sevLib=appCtx.severity.getSevLib();this._ojetLib=appCtx.ojetLib;this._configLib=appCtx.configLib;this._plugin=appCtx.plugin;this._registry=ruleSets.getRegistry();this._ruleCount=ruleSets.getActiveRuleCount();this._rulesetSummary=ruleSets.getRulesetSummary();this._rulePacks=ruleSets.getRulePacks();this._common=this._createCommon();this._shadowRulePacks=ruleSets.getShadowRulePacks();this._ruleSets=ruleSets;this._curRuleName=null;this._Stats=appCtx.Stats;this._isUnitTest=appCtx.isUnitTest;this._debugMode=appCtx.debugMode;if(this._isUnitTest||config.rulesFired){this._Stats.packRulesFired=[];for(let i=0;i<ruleSets._ruleSets.length;i++)this._Stats.packRulesFired.push({pack:ruleSets._ruleSets[i].prefix,rules:{}})}this._builtinJetRules=null;this._useBuiltinJetRules=true;this._config=config;this._nd=nodeDeps;this._isNode=!!nodeDeps.fs;this._curFile=null;this._getMsgId=fnMsgId;this._sysOpts={verboseMode:appCtx.verboseMode,debugMode:appCtx.debugMode};this._message={msg:this._msg,info:this._info,debug:this._debug,error:this._error,warn:this._warn,assert:this._assert}};Rules.prototype.fireRules=function(ruleCtx,arg1,filepath,filetype,arg2,isEmbeddedCss){var ruleName,callbacks,typeObj;if(this._curFile!==filepath){this._curFile=filepath;this._fileType=filetype}if(typeObj=this._registry.getRegisteredCallbacks(ruleCtx.type)){let tsxType=ruleCtx.type;if(tsxType==="TsxWebComponent"||tsxType==="TsxElem"||tsxType.startsWith("Tsx<")||tsxType==="TsxJetComponent"||tsxType==="TsxStyle"||tsxType==="TsxEvent"){if(tsxType.includes("|")||tsxType.includes("=")||tsxType==="TsxEvent"||tsxType==="TsxStyle"){ruleCtx.type=arg1.type="TsxProperty"}else{ruleCtx.type=arg1.type="TsxComponent"}}for(ruleName in typeObj){if(this._isRuleDisabledByComment&&this._isRuleDisabledByComment(ruleName)){continue}callbacks=typeObj[ruleName];this._fireRulePreTest(ruleCtx,ruleName,arg1,filepath,arg2,isEmbeddedCss,callbacks)}}};Rules.prototype.getTsxRuleSynopsis=function(){return this._registry.getTsxRuleSynopsis()};Rules.prototype.setJafLib=function(jl){this._jafLib=jl};Rules.prototype._fireRulePreTest=function(ruleCtx,ruleName,arg1,filepath,arg2,isEmbeddedCss,callbacks){var opts,callback,fileType,i;if(!callbacks){return}for(i=0;i<callbacks.length;i++){callback=callbacks[i];opts=this._getRuleOptionsByName(ruleName,callback.rsi);if(!opts.enabled){return}fileType=opts[PROP_FILETYPE];if(fileType){if(isEmbeddedCss&&!this._isFileTypeOk(fileType,FILETYPE_CSS)){return}if(!this._isFileTypeOk(fileType,this._fileType)){return}}ruleCtx._rsi=callback.rsi;ruleCtx.getMsgId=this._getMsgId;this._fireRule(ruleCtx,ruleName,arg1,arg2,filepath,fileType,callback.cb)}};Rules.prototype._fireRule=function(ruleCtx,ruleName,name,value,filepath,filetype,callback){var rule,msg,ctxType,oFired;ctxType=ruleCtx.type;if(this._debugMode){this._debug(`Prepping rule '${ruleName}' ...`)}rule=this._getRuleByName(ruleName,ruleCtx._rsi);if(!rule){if(this._debugMode){this._debug(`'${ruleName}' rsi=${ruleCtx._rsi} instance could not be loaded`)}return}ruleCtx.Issue=this._Issue;ruleCtx.reporter=this._reporter;ruleCtx.filepath=filepath;ruleCtx.filetype=filetype;ruleCtx.utils=ruleCtx.utils?ruleCtx.utils:{};ruleCtx.ruleName=ruleName;ruleCtx.rulePack=this._rulePacks[ruleCtx._rsi].rulePack;ruleCtx.sysOpts=this._sysOpts;ruleCtx.common=this._common[ruleCtx._rsi];ruleCtx.userDefs=this._config.userDefs;ruleCtx.utils.configLib=this._configLib;ruleCtx.utils.utils=this._utils;ruleCtx.utils.fsUtils=this._fsUtils;ruleCtx.utils.metaLib=this._metaLib;ruleCtx.utils.msgLib=this._message;ruleCtx.utils.sevLib=this._sevLib;ruleCtx.utils.semVerUtils=this._semVer;ruleCtx.utils.jafLib=this._jafLib.getJafLib();ruleCtx.utils.OjetLib=this._ojetLib;ruleCtx.utils.pluginLib=this._plugin.getPluginLib();this._curCtx=ruleCtx;try{if(callback){if(this._debugMode){this._debug(`Firing rule '${ruleName}' ...`)}this._curRuleName=ruleName;ruleCtx.rulePack._setCBCtx(ruleCtx);if((ctxType==="attr"||ctxType==="attrexpr"||ctxType==="attrexpr-$props"||ctxType==="event"||ctxType.indexOf("|")>0||ctxType==="class"||ctxType==="style"||ctxType==="stylemember"||ctxType.startsWith("<")&&ctxType.includes("="))&&typeof value!=="string"){if(ctxType==="style"||ctxType==="stylemember"){if(this._debugMode){this._debugRuleCall(ctxType,name,_extractStyles(value.val),value.rawval)}if(ctxType==="style"){callback(ruleCtx,name,_extractStyles(value.val),value.rawval)}else{callback(ruleCtx,name,value.val,value.rawval)}}else{if(this._debugMode){this._debugRuleCall(ctxType,name,value.val,value.rawVal)}callback(ruleCtx,name,value.val,value.rawval)}}else if(ctxType.startsWith("compjson")||ctxType==="comment"){if(this._debugMode){this._debugRuleCall(ctxType,value)}callback(ruleCtx,value)}else if(ruleCtx.type==="json"){if(this._debugMode){this._debugRuleCall(ctxType,value.ast)}callback(ruleCtx,value.ast)}else if(ctxType==="MemberExpression"||ctxType==="CallExpression"){if(this._debugMode){this._debugRuleCall(ctxType,name)}callback(ruleCtx,name)}else{if(this._debugMode){this._debugRuleCall(ctxType,name,value)}callback(ruleCtx,name,value)}if(this._debugMode){this._debug(`JAF <- '${ruleName}'`)}this._curRuleName=null;this._Stats.rulesFired++;if(this._isUnitTest||this._config.rulesFired){if(oFired=this._Stats.packRulesFired[ruleCtx._rsi]){oFired=oFired.rules;if(oFired[ruleName]){oFired[ruleName]++}else{oFired[ruleName]=1}}}}else{rule.run(ruleCtx,name,value)}}catch(e){this._curRuleName=null;if(!e||!e.message){msg=`Unknown error - ${this._getFileSuffix(ruleCtx.filepath)} syntax issue?`}this._error("** running rule "+ruleName+(msg?` [${msg}] \n`:"")+` - file -> ${ruleCtx.filepath}`);if(e){this._error(`Stack trace:\n${e.stack}`)}}};Rules.prototype._debugRuleCall=function(ctxType){let s="";for(let i=1;i<arguments.length;i++){s+=`${i>1?",":""} arg${i}=${arguments[i]}`}this._debug(` -> '${ctxType}' ${s}`)};Rules.prototype.makeRuleContext=function(){return new RuleContext};Rules.prototype.isTypeRegistered=function(regType){return this._registry.isRegisteredCallback(regType)};Rules.prototype.isAnyTsxCompAttrRegistered=function(){return this._registry.isRegisteredAnyTsxCompAttr()};Rules.prototype.isAnyTsxAttrRegistered=function(){return this._registry.isRegisteredAnyTsxAttr()};Rules.prototype.isAnyTsxTypeRegistered=function(){return this._registry.isAnyTsxTypeRegistered()};Rules.prototype.isTypeRegisteredAsElemName=function(elem){return this._registry.isRegisteredCallbackRE(elem)};Rules.prototype.setJSCommentCallback=function(fnCB){this._isRuleDisabledByComment=fnCB};Rules.prototype.filterHtmlCallbacks=function(htmlCB){return htmlCB};Rules.prototype.getRulesProse=function(isInternal){var rulePacks,rulePack,rules,rule,ruleName,names,rsi,opts,haveRules,prefix,msgIds,ids;this._nd.exportRules.setupRulesToProse(this._nd,this._config.severity,this._appCtx);msgIds=this._ruleSets.getMsgIds();rulePacks=this._rulePacks;for(rsi=0;rsi<rulePacks.length;rsi++){rulePack=rulePacks[rsi];rules=rulePack.rulesJson;prefix=rules.prefix;this._nd.exportRules.packToProse(rules,rulePack.path,rsi);haveRules=false;rules=rules.rules;names=_getSortedRuleNames(rules);for(ruleName of names){opts=rules[ruleName];if(!opts.enabled||opts.hasOwnProperty("inservice")&&!opts.inservice){continue}opts=this._utils.extend(opts,isInternal);rule=this._shadowRulePacks[rsi][ruleName];ids=this._getMsgIdsForRule(ruleName,msgIds[prefix],prefix);this._nd.exportRules.ruleToProse(ruleName,rule,opts,ids);haveRules=true}if(!haveRules){this._nd.exportRules.packToProse()}}return this._nd.exportRules.getProse()};Rules.prototype.getRulesJson=function(active,obj){var rulePacks,rulePack,rulesJson,ruleName,rule,ruleOpts,opts,pack,rsi,prefix,msgIds,ids;msgIds=this._ruleSets.getMsgIds();rulePacks=this._rulePacks;this._nd.exportRules.setupRulesToJson(obj,this._config.severity,this._appCtx);for(rsi=0;rsi<rulePacks.length;rsi++){rulePack=rulePacks[rsi];this._nd.exportRules.packToJson(rulePack);rulesJson=rulePack.rulesJson;prefix=rulesJson.prefix;for(ruleName in rulesJson.rules){ruleOpts=rulesJson.rules[ruleName];if(ruleOpts.hasOwnProperty("inservice")&&!ruleOpts.inservice){continue}if(active&&!ruleOpts.enabled){continue}opts=this._utils.extend(ruleOpts);ids=this._getMsgIdsForRule(ruleName,msgIds[prefix],prefix);if(pack=this._shadowRulePacks[rsi]){rule=pack[ruleName]}else{rule=null}if(!active||rule){this._nd.exportRules.ruleToJson(ruleName,rule,opts,ids,active)}}}return this._nd.exportRules.getJson()};Rules.prototype.getRulesSonar=function(){var rulePacks,rulePack,ruleName,rules,rule,opts,prefix,msgIds,ids,rsi;this._nd.exportRules.setupRulesToXml(this._appCtx);msgIds=this._ruleSets.getMsgIds();rulePacks=this._rulePacks;for(rsi=0;rsi<rulePacks.length;rsi++){rulePack=rulePacks[rsi];rules=rulePack.rulesJson.rules;prefix=rulePack.rulesJson.prefix;for(ruleName in rules){opts=rules[ruleName];if(!opts.enabled||opts.hasOwnProperty("inservice")&&!opts.inservice){continue}opts=this._utils.extend(opts);rule=this._shadowRulePacks[rsi][ruleName];ids=this._getMsgIdsForRule(ruleName,msgIds[prefix],prefix);this._nd.exportRules.ruleToXml(ruleName,rule,opts,ids)}}return this._nd.exportRules.getXml()};Rules.prototype.getRuleOptions=function(ruleName,rsi){return this._getRuleOptionsByName(ruleName,rsi)};Rules.prototype.getActiveRuleCount=function(){return this._ruleCount};Rules.prototype.getRuleSetSummaryByIndex=function(rsi){return this._rulesetSummary[rsi]};Rules.prototype.getRulePack=function(rsi){return this._rulePacks[rsi].rulePack};Rules.prototype.getRSIByPrefix=function(prefix){var i,rsi=-1;;for(i=0;i<this._rulesetSummary.length;i++){if(this._rulesetSummary[i].prefix===prefix){rsi=i;break}}return rsi};Rules.prototype.isRuleEnabled=function(ruleName,rsi){if(rsi===undefined){rsi=this.getRSIByRuleName(ruleName);if(rsi<0){return false}}var opts=this._getRuleOptionsByName(ruleName,rsi);return!!(opts&&opts.enabled)};Rules.prototype.getRSIByRuleName=function(ruleName){var rsi,rp,len;len=this._shadowRulePacks.length;for(rsi=0;rsi<len;rsi++){rp=this._shadowRulePacks[rsi];if(rp[ruleName]){break}}return rsi<len?rsi:-1};Rules.prototype.getRuleDescription=function(prefix,ruleName,isShort){var rule,rsi,ret="";rsi=this.getRSIByPrefix(prefix);if(rsi>=0){rule=this._shadowRulePacks[rsi][ruleName];if(rule){ret=isShort?rule.getShortDescription():rule.getDescription()}}return ret};Rules.prototype.getRuleDescriptionEx=function(msgId,ruleName,isShort){var descrip,rule,prefix,msgNum,rsi,msgTab,msgIds,mid,sev,x;var idList=[];if(ruleName){var rp=this._shadowRulePacks;for(rsi=0;rsi<rp.length;rsi++){rule=rp[rsi][ruleName];if(rule){descrip=isShort?rule.getShortDescription():rule.getDescription();if(descrip){msgTab=this._ruleSets.loadMsgIds();if(prefix=this._rulesetSummary[rsi]){prefix=prefix.prefix;if(msgIds=msgTab[prefix]){for(mid in msgIds){if(mid.startsWith(ruleName)){idList.push(msgIds[mid])}}}}break}}}}if(msgId){rsi=this._ruleSets.getRsiFromMsgId(msgId);if(rsi>=0){x=msgId.indexOf("-");prefix=msgId.substring(0,x);msgNum=msgId.substring(x+1);msgTab=this._ruleSets.loadMsgIds();msgIds=msgTab[prefix];if(msgNum.length<4){msgNum="0".repeat(4-msgNum.length)+msgNum}for(mid in msgIds){if(msgIds[mid]===msgNum){x=mid.lastIndexOf("_");ruleName=x>0?mid.substring(0,x):mid;if(descrip=this.getRuleDescription(prefix,ruleName,isShort)){for(mid in msgIds){if(mid.startsWith(ruleName)){idList.push(msgIds[mid])}}break}}}}}if(ruleName){sev=this._getRuleOptionsByName(ruleName,rsi);sev=sev?sev.severity:""}return{descrip:descrip,rule:ruleName,prefix:prefix,sev:sev,idList:idList}};Rules.prototype._getMsgIdsForRule=function(rname,ids,prefix){var r,list=[];prefix=prefix?prefix+"-":"";for(r in ids){if(r.startsWith(rname)){list.push(prefix+ids[r])}}return list};Rules.prototype._showIgnoredRule=function(msg,isError){if(msg){if(!this._ignoredRulesShown){this._info("\n--------- Start-up Rule analysis ---------");this._ignoredRulesShown=true}isError?this._error(msg):this._info(msg)}else if(this._ignoredRulesShown){this._info("------------ End Rule analysis -------------")}};Rules.prototype.fireHookRules=function(ruleCtx,rsi){var ruleName,typeObj,callbacks,callback,opts,rc,i;var _rsi;ruleCtx.Issue=this._Issue;ruleCtx.reporter=this._reporter;_rsi=rsi;if(!(typeObj=this._registry.getRegisteredCallbacks(ruleCtx.type))){return}ruleCtx.userDefs=this._config.userDefs;ruleCtx.utils.configLib=this._configLib;ruleCtx.utils.fsUtils=this._fsUtils;ruleCtx.utils.metaLib=this._metaLib;ruleCtx.utils.msgLib=this._message;ruleCtx.utils.semVerUtils=this._semVer;ruleCtx.utils.OjetLib=this._ojetLib;ruleCtx.utils.utils=this._utils;ruleCtx.sysOpts=this._sysOpts;ruleCtx.getMsgId=this._getMsgId;for(ruleName in typeObj){callbacks=typeObj[ruleName];if(!callbacks){continue}for(i=0;i<callbacks.length;i++){callback=callbacks[i];if(rsi===undefined){_rsi=callback.rsi}else{if(rsi!==callback.rsi){continue}_rsi=rsi}opts=this._getRuleOptionsByName(ruleName,_rsi);if(ruleCtx.type==="file"||ruleCtx.type==="startscript"){if(opts&&opts.filetype){if(!this._isFileTypeOk(opts.filetype,ruleCtx.filetype)){continue}}}ruleCtx.ruleName=ruleName;ruleCtx.rulePack=this._rulePacks[_rsi].rulePack;ruleCtx._rsi=_rsi;ruleCtx.common=this._common[_rsi];if(this._debugMode){this._debug(`Firing hook rule '${ruleName}' type=${ruleCtx.type}`)}ruleCtx.rulePack._setCBCtx(ruleCtx);rc=callback.cb(ruleCtx);this._Stats.hooksFired++;if((ruleCtx.phase===REG.PHASE_STARTUP||ruleCtx.phase===REG.PHASE_START_AUDIT||ruleCtx.phase===REG.PHASE_FILE)&&typeof rc==="boolean"&&!rc){this._info("Hook rule ('"+ruleCtx.type+"') veto! by '"+ruleName+"'");return rc}}}return true};Rules.prototype.getFiredRuleName=function(){return this._curRuleName};Rules.prototype._getRuleByName=function(ruleName,rsi){var rs=this._shadowRulePacks[rsi];return rs[ruleName]};Rules.prototype._getRuleOptionsByName=function(ruleName,rsi){var rulePack=this._rulePacks[rsi];return rulePack.rulesJson.rules[ruleName]};Rules.prototype._isGroupActive=function(group){var groups,defs,def,i;groups=this._config.groups;defs=this._config.defGroups;if(this._checkGroups(groups,group)){return true}if(!defs){return false}for(i=0;i<groups.length;i++){def=groups[i];if(this._checkDefGroup(defs,def,group)){return true}}return false};Rules.prototype._loadBuiltinJetRulesDescriptions=function(){var ruleName,rules;try{if(!this._builtinJetRules){this._builtinJetRules=require("../rules/jet/rules.json")}}catch(e){this._error("Unable to load builtin rule definition file "+e)}if(this._builtinJetRules&&this._builtinJetRules.rules){rules=this._builtinJetRules.rules;for(ruleName in rules){rules[ruleName].$builtin=true}}return this._builtinJetRules};Rules.prototype._isFileTypeOk=function(ruleFileType,fileType){var ret=false;if(Array.isArray(ruleFileType)){ret=ruleFileType.indexOf(fileType)>=0}else{ret=ruleFileType===fileType}return ret};Rules.prototype._createCommon=function(){var i,a=[];for(i=0;i<this._rulesetSummary.length;i++){a.push({})}return a};Rules.prototype._getFileSuffix=function(fp){var s="";if(fp){s=this._nd.path.extname(fp)}return s.length?s:"?"};Rules.prototype.dumpRegistry=function(){return this._registry.dump()};function _extractStyles(s){var a,isExpr,i,sc=";";s=s.trim();isExpr=_isExpr(s);s=s.replace(/[\'\"\[\]\{\}]/g,"").trim();if(!s.includes(";")){if(isExpr){if(s.includes(",")){sc=","}}}a=s.split(sc);for(i=0;i<a.length;i++){a[i]=a[i].trim();if(!a[i].length){a.splice(i,1);i--}}return a};function _isExpr(s){s=s.trim();return s.startsWith("[[")||s.startsWith("{{")};function _getSortedRuleNames(rules){var rule,names=[];for(rule in rules){names.push(rule)}names.sort();return names};module.exports=Rules;
6
+ const RuleContext=require("./RuleContext");const REG=require("../lib/RegTypes");const PROP_FILETYPE="filetype";const FILETYPE_CSS="css";var Rules=function(ruleSets,nodeDeps,config,fnMsgId,appCtx){this._appCtx=appCtx;this._msg=appCtx.msg;this._info=appCtx.info;this._debug=appCtx.debug;this._error=appCtx.error;this._warn=appCtx.warn;this._assert=appCtx.assert;this._metaLib=appCtx.metaLib;this._reporter=appCtx.reporter;this._Issue=appCtx.Issue;this._semVer=ruleSets.getSemVer();this._utils=appCtx.utils;this._fsUtils=appCtx.fsUtils;this._sevLib=appCtx.severity.getSevLib();this._ojetLib=appCtx.ojetLib;this._configLib=appCtx.configLib;this._plugin=appCtx.plugin;this._registry=ruleSets.getRegistry();this._ruleCount=ruleSets.getActiveRuleCount();this._rulesetSummary=ruleSets.getRulesetSummary();this._rulePacks=ruleSets.getRulePacks();this._common=this._createCommon();this._shadowRulePacks=ruleSets.getShadowRulePacks();this._ruleSets=ruleSets;this._curRuleName=null;this._Stats=appCtx.Stats;this._isUnitTest=appCtx.isUnitTest;this._debugMode=appCtx.debugMode;if(this._isUnitTest||config.rulesFired){this._Stats.packRulesFired=[];for(let i=0;i<ruleSets._ruleSets.length;i++)this._Stats.packRulesFired.push({pack:ruleSets._ruleSets[i].prefix,rules:{}})}this._builtinJetRules=null;this._useBuiltinJetRules=true;this._config=config;this._nd=nodeDeps;this._isNode=!!nodeDeps.fs;this._curFile=null;this._getMsgId=fnMsgId;this._sysOpts={verboseMode:appCtx.verboseMode,debugMode:appCtx.debugMode};this._message={msg:this._msg,info:this._info,debug:this._debug,error:this._error,warn:this._warn,assert:this._assert}};Rules.prototype.fireRules=function(ruleCtx,arg1,filepath,filetype,arg2,isEmbeddedCss){var ruleName,callbacks,typeObj;if(this._curFile!==filepath){this._curFile=filepath;this._fileType=filetype}if(typeObj=this._registry.getRegisteredCallbacks(ruleCtx.type)){let tsxType=ruleCtx.type;if(tsxType==="TsxWebComponent"||tsxType==="TsxElem"||tsxType.startsWith("Tsx<")||tsxType==="TsxJetComponent"||tsxType==="TsxStyle"||tsxType==="TsxEvent"||tsxType==="TsxAria"||tsxType==="TsxRequirements"){if(tsxType.includes("|")||tsxType.includes("=")||tsxType==="TsxEvent"||tsxType==="TsxAria"||tsxType==="TsxStyle"){ruleCtx.type=arg1.type="TsxProperty"}else{ruleCtx.type=arg1.type="TsxComponent"}}for(ruleName in typeObj){if(this._isRuleDisabledByComment&&this._isRuleDisabledByComment(ruleName)){continue}callbacks=typeObj[ruleName];this._fireRulePreTest(ruleCtx,ruleName,arg1,filepath,arg2,isEmbeddedCss,callbacks)}}};Rules.prototype.getTsxRuleSynopsis=function(){return this._registry.getTsxRuleSynopsis()};Rules.prototype.setJafLib=function(jl){this._jafLib=jl};Rules.prototype._fireRulePreTest=function(ruleCtx,ruleName,arg1,filepath,arg2,isEmbeddedCss,callbacks){var opts,callback,fileType,i;if(!callbacks){return}for(i=0;i<callbacks.length;i++){callback=callbacks[i];opts=this._getRuleOptionsByName(ruleName,callback.rsi);if(!opts.enabled){return}fileType=opts[PROP_FILETYPE];if(fileType){if(isEmbeddedCss&&!this._isFileTypeOk(fileType,FILETYPE_CSS)){return}if(!this._isFileTypeOk(fileType,this._fileType)){return}}ruleCtx._rsi=callback.rsi;ruleCtx.getMsgId=this._getMsgId;this._fireRule(ruleCtx,ruleName,arg1,arg2,filepath,fileType,callback.cb)}};Rules.prototype._fireRule=function(ruleCtx,ruleName,name,value,filepath,filetype,callback){var rule,msg,ctxType,oFired;ctxType=ruleCtx.type;if(this._debugMode){this._debug(`Prepping rule '${ruleName}' ...`)}rule=this._getRuleByName(ruleName,ruleCtx._rsi);if(!rule){if(this._debugMode){this._debug(`'${ruleName}' rsi=${ruleCtx._rsi} instance could not be loaded`)}return}ruleCtx.Issue=this._Issue;ruleCtx.reporter=this._reporter;ruleCtx.filepath=filepath;ruleCtx.filetype=filetype;ruleCtx.utils=ruleCtx.utils?ruleCtx.utils:{};ruleCtx.ruleName=ruleName;ruleCtx.rulePack=this._rulePacks[ruleCtx._rsi].rulePack;ruleCtx.sysOpts=this._sysOpts;ruleCtx.common=this._common[ruleCtx._rsi];ruleCtx.userDefs=this._config.userDefs;ruleCtx.utils.configLib=this._configLib;ruleCtx.utils.utils=this._utils;ruleCtx.utils.fsUtils=this._fsUtils;ruleCtx.utils.metaLib=this._metaLib;ruleCtx.utils.msgLib=this._message;ruleCtx.utils.sevLib=this._sevLib;ruleCtx.utils.semVerUtils=this._semVer;ruleCtx.utils.jafLib=this._jafLib.getJafLib();ruleCtx.utils.OjetLib=this._ojetLib;ruleCtx.utils.pluginLib=this._plugin.getPluginLib();this._curCtx=ruleCtx;try{if(callback){if(this._debugMode){this._debug(`Firing rule '${ruleName}' ...`)}this._curRuleName=ruleName;ruleCtx.rulePack._setCBCtx(ruleCtx);if(ctxType.startsWith("Tsx")){if(this._debugMode){this._debugRuleCall(ctxType,name)}if(value){callback(ruleCtx,name,value)}else{callback(ruleCtx,name)}}else if((ctxType===REG.ATTR||ctxType===REG.ATTREXPR||ctxType===REG.ATTREXPR_$PROPS||ctxType===REG.ATTR_ARIA||ctxType===REG.EVENT||ctxType.indexOf("|")>0||ctxType===REG.CLASS||ctxType===REG.STYLE||ctxType===REG.STYLE_MEMBER||ctxType.startsWith("<")&&ctxType.includes("="))&&typeof value!=="string"){if(ctxType===REG.STYLE||ctxType===REG.STYLE_MEMBER){if(this._debugMode){this._debugRuleCall(ctxType,name,_extractStyles(value.val),value.rawval)}if(ctxType===REG.STYLE){callback(ruleCtx,name,_extractStyles(value.val),value.rawval)}else{callback(ruleCtx,name,value.val,value.rawval)}}else{if(this._debugMode){this._debugRuleCall(ctxType,name,value.val,value.rawVal)}callback(ruleCtx,name,value.val,value.rawval)}}else if(ruleCtx.type===REG.WEBCOMP||ruleCtx.type===REG.JETCOMP||ruleCtx.type===REG.JET_CORE_COMP||ruleCtx.type===REG.EXTCOMP){if(this._debugMode){this._debugRuleCall(ctxType)}callback(ruleCtx,name)}else if(ctxType.startsWith(REG.COMPJSON)||ctxType===REG.COMMENT){if(this._debugMode){this._debugRuleCall(ctxType,value)}callback(ruleCtx,value)}else if(ruleCtx.type===REG.JSON){if(this._debugMode){this._debugRuleCall(ctxType,value.ast)}callback(ruleCtx,value.ast)}else if(ctxType==="MemberExpression"||ctxType==="CallExpression"||ruleCtx.type.startsWith("globtag(")){if(this._debugMode){this._debugRuleCall(ctxType,name)}callback(ruleCtx,name)}else{if(this._debugMode){this._debugRuleCall(ctxType,name,value)}callback(ruleCtx,name,value)}if(this._debugMode){this._debug(`JAF <- '${ruleName}'`)}this._curRuleName=null;this._Stats.rulesFired++;if(this._isUnitTest||this._config.rulesFired){if(oFired=this._Stats.packRulesFired[ruleCtx._rsi]){oFired=oFired.rules;if(oFired[ruleName]){oFired[ruleName]++}else{oFired[ruleName]=1}}}}else{rule.run(ruleCtx,name,value)}}catch(e){this._curRuleName=null;if(!e||!e.message){msg=`Unknown error - ${this._getFileSuffix(ruleCtx.filepath)} syntax issue?`}this._error("** running rule "+ruleName+(msg?` [${msg}] \n`:"")+` - file -> ${ruleCtx.filepath}`);if(e){this._error(`Stack trace:\n${e.stack}`)}}};Rules.prototype._debugRuleCall=function(ctxType){let s="";for(let i=1;i<arguments.length;i++){s+=`${i>1?",":""} arg${i}=${arguments[i]}`}this._debug(` -> '${ctxType}' ${s}`)};Rules.prototype.makeRuleContext=function(){return new RuleContext};Rules.prototype.isTypeRegistered=function(regType){return this._registry.isRegisteredCallback(regType)};Rules.prototype.isAnyTsxCompAttrRegistered=function(){return this._registry.isRegisteredAnyTsxCompAttr()};Rules.prototype.isAnyTsxAttrRegistered=function(){return this._registry.isRegisteredAnyTsxAttr()};Rules.prototype.isAnyTsxTypeRegistered=function(){return this._registry.isAnyTsxTypeRegistered()};Rules.prototype.isTypeRegisteredAsElemName=function(elem){return this._registry.isRegisteredCallbackRE(elem)};Rules.prototype.setJSCommentCallback=function(fnCB){this._isRuleDisabledByComment=fnCB};Rules.prototype.filterHtmlCallbacks=function(htmlCB){return htmlCB};Rules.prototype.getRulesProse=function(isInternal){var rulePacks,rulePack,rules,rule,ruleName,names,rsi,opts,haveRules,prefix,msgIds,ids;this._nd.exportRules.setupRulesToProse(this._nd,this._config.severity,this._appCtx);msgIds=this._ruleSets.getMsgIds();rulePacks=this._rulePacks;for(rsi=0;rsi<rulePacks.length;rsi++){rulePack=rulePacks[rsi];rules=rulePack.rulesJson;prefix=rules.prefix;this._nd.exportRules.packToProse(rules,rulePack.path,rsi);haveRules=false;rules=rules.rules;names=_getSortedRuleNames(rules);for(ruleName of names){opts=rules[ruleName];if(!opts.enabled||opts.hasOwnProperty("inservice")&&!opts.inservice){continue}opts=this._utils.extend(opts,isInternal);rule=this._shadowRulePacks[rsi][ruleName];ids=this._getMsgIdsForRule(ruleName,msgIds[prefix],prefix);this._nd.exportRules.ruleToProse(ruleName,rule,opts,ids);haveRules=true}if(!haveRules){this._nd.exportRules.packToProse()}}return this._nd.exportRules.getProse()};Rules.prototype.getRulesJson=function(active,obj){var rulePacks,rulePack,rulesJson,ruleName,rule,ruleOpts,opts,pack,rsi,prefix,msgIds,ids;msgIds=this._ruleSets.getMsgIds();rulePacks=this._rulePacks;this._nd.exportRules.setupRulesToJson(obj,this._config.severity,this._appCtx);for(rsi=0;rsi<rulePacks.length;rsi++){rulePack=rulePacks[rsi];this._nd.exportRules.packToJson(rulePack);rulesJson=rulePack.rulesJson;prefix=rulesJson.prefix;for(ruleName in rulesJson.rules){ruleOpts=rulesJson.rules[ruleName];if(ruleOpts.hasOwnProperty("inservice")&&!ruleOpts.inservice){continue}if(active&&!ruleOpts.enabled){continue}opts=this._utils.extend(ruleOpts);ids=this._getMsgIdsForRule(ruleName,msgIds[prefix],prefix);if(pack=this._shadowRulePacks[rsi]){rule=pack[ruleName]}else{rule=null}if(!active||rule){this._nd.exportRules.ruleToJson(ruleName,rule,opts,ids,active)}}}return this._nd.exportRules.getJson()};Rules.prototype.getRulesSonar=function(){var rulePacks,rulePack,ruleName,rules,rule,opts,prefix,msgIds,ids,rsi;this._nd.exportRules.setupRulesToXml(this._appCtx);msgIds=this._ruleSets.getMsgIds();rulePacks=this._rulePacks;for(rsi=0;rsi<rulePacks.length;rsi++){rulePack=rulePacks[rsi];rules=rulePack.rulesJson.rules;prefix=rulePack.rulesJson.prefix;for(ruleName in rules){opts=rules[ruleName];if(!opts.enabled||opts.hasOwnProperty("inservice")&&!opts.inservice){continue}opts=this._utils.extend(opts);rule=this._shadowRulePacks[rsi][ruleName];ids=this._getMsgIdsForRule(ruleName,msgIds[prefix],prefix);this._nd.exportRules.ruleToXml(ruleName,rule,opts,ids)}}return this._nd.exportRules.getXml()};Rules.prototype.getRuleOptions=function(ruleName,rsi){return this._getRuleOptionsByName(ruleName,rsi)};Rules.prototype.getActiveRuleCount=function(){return this._ruleCount};Rules.prototype.getRuleSetSummaryByIndex=function(rsi){return this._rulesetSummary[rsi]};Rules.prototype.getRulePack=function(rsi){return this._rulePacks[rsi].rulePack};Rules.prototype.getRSIByPrefix=function(prefix){var i,rsi=-1;;for(i=0;i<this._rulesetSummary.length;i++){if(this._rulesetSummary[i].prefix===prefix){rsi=i;break}}return rsi};Rules.prototype.isRuleEnabled=function(ruleName,rsi){if(rsi===undefined){rsi=this.getRSIByRuleName(ruleName);if(rsi<0){return false}}var opts=this._getRuleOptionsByName(ruleName,rsi);return!!(opts&&opts.enabled)};Rules.prototype.getRSIByRuleName=function(ruleName){var rsi,rp,len;len=this._shadowRulePacks.length;for(rsi=0;rsi<len;rsi++){rp=this._shadowRulePacks[rsi];if(rp[ruleName]){break}}return rsi<len?rsi:-1};Rules.prototype.getRuleDescription=function(prefix,ruleName,isShort){var rule,rsi,ret="";rsi=this.getRSIByPrefix(prefix);if(rsi>=0){rule=this._shadowRulePacks[rsi][ruleName];if(rule){ret=isShort?rule.getShortDescription():rule.getDescription()}}return ret};Rules.prototype.getRuleDescriptionEx=function(msgId,ruleName,isShort){var descrip,rule,prefix,msgNum,rsi,msgTab,msgIds,mid,sev,x;var idList=[];if(ruleName){var rp=this._shadowRulePacks;for(rsi=0;rsi<rp.length;rsi++){rule=rp[rsi][ruleName];if(rule){descrip=isShort?rule.getShortDescription():rule.getDescription();if(descrip){msgTab=this._ruleSets.loadMsgIds();if(prefix=this._rulesetSummary[rsi]){prefix=prefix.prefix;if(msgIds=msgTab[prefix]){for(mid in msgIds){if(mid.startsWith(ruleName)){idList.push(msgIds[mid])}}}}break}}}}if(msgId){rsi=this._ruleSets.getRsiFromMsgId(msgId);if(rsi>=0){x=msgId.indexOf("-");prefix=msgId.substring(0,x);msgNum=msgId.substring(x+1);msgTab=this._ruleSets.loadMsgIds();msgIds=msgTab[prefix];if(msgNum.length<4){msgNum="0".repeat(4-msgNum.length)+msgNum}for(mid in msgIds){if(msgIds[mid]===msgNum){x=mid.lastIndexOf("_");ruleName=x>0?mid.substring(0,x):mid;if(descrip=this.getRuleDescription(prefix,ruleName,isShort)){for(mid in msgIds){if(mid.startsWith(ruleName)){idList.push(msgIds[mid])}}break}}}}}if(ruleName){sev=this._getRuleOptionsByName(ruleName,rsi);sev=sev?sev.severity:""}return{descrip:descrip,rule:ruleName,prefix:prefix,sev:sev,idList:idList}};Rules.prototype._getMsgIdsForRule=function(rname,ids,prefix){var r,list=[];prefix=prefix?prefix+"-":"";for(r in ids){if(r.startsWith(rname)){list.push(prefix+ids[r])}}return list};Rules.prototype._showIgnoredRule=function(msg,isError){if(msg){if(!this._ignoredRulesShown){this._info("\n--------- Start-up Rule analysis ---------");this._ignoredRulesShown=true}isError?this._error(msg):this._info(msg)}else if(this._ignoredRulesShown){this._info("------------ End Rule analysis -------------")}};Rules.prototype.fireHookRules=function(ruleCtx,rsi){var ruleName,typeObj,callbacks,callback,opts,rc,i;var _rsi;ruleCtx.Issue=this._Issue;ruleCtx.reporter=this._reporter;_rsi=rsi;if(!(typeObj=this._registry.getRegisteredCallbacks(ruleCtx.type))){return}ruleCtx.userDefs=this._config.userDefs;ruleCtx.utils.configLib=this._configLib;ruleCtx.utils.fsUtils=this._fsUtils;ruleCtx.utils.metaLib=this._metaLib;ruleCtx.utils.msgLib=this._message;ruleCtx.utils.semVerUtils=this._semVer;ruleCtx.utils.OjetLib=this._ojetLib;ruleCtx.utils.utils=this._utils;ruleCtx.sysOpts=this._sysOpts;ruleCtx.getMsgId=this._getMsgId;for(ruleName in typeObj){callbacks=typeObj[ruleName];if(!callbacks){continue}for(i=0;i<callbacks.length;i++){callback=callbacks[i];if(rsi===undefined){_rsi=callback.rsi}else{if(rsi!==callback.rsi){continue}_rsi=rsi}opts=this._getRuleOptionsByName(ruleName,_rsi);if(ruleCtx.type==="file"||ruleCtx.type==="startscript"||ruleCtx.type==="endfile"||ruleCtx.type==="endscript"){if(opts&&opts.filetype){if(!this._isFileTypeOk(opts.filetype,ruleCtx.filetype)){continue}}}ruleCtx.ruleName=ruleName;ruleCtx.rulePack=this._rulePacks[_rsi].rulePack;ruleCtx._rsi=_rsi;ruleCtx.common=this._common[_rsi];if(this._debugMode){this._debug(`Firing hook rule '${ruleName}' type=${ruleCtx.type}`)}ruleCtx.rulePack._setCBCtx(ruleCtx);rc=callback.cb(ruleCtx);this._Stats.hooksFired++;if((ruleCtx.phase===REG.PHASE_STARTUP||ruleCtx.phase===REG.PHASE_START_AUDIT||ruleCtx.phase===REG.PHASE_FILE)&&typeof rc==="boolean"&&!rc){this._info("Hook rule ('"+ruleCtx.type+"') veto! by '"+ruleName+"'");return rc}}}return true};Rules.prototype.getFiredRuleName=function(){return this._curRuleName};Rules.prototype._getRuleByName=function(ruleName,rsi){var rs=this._shadowRulePacks[rsi];return rs[ruleName]};Rules.prototype._getRuleOptionsByName=function(ruleName,rsi){var rulePack=this._rulePacks[rsi];return rulePack.rulesJson.rules[ruleName]};Rules.prototype._isGroupActive=function(group){var groups,defs,def,i;groups=this._config.groups;defs=this._config.defGroups;if(this._checkGroups(groups,group)){return true}if(!defs){return false}for(i=0;i<groups.length;i++){def=groups[i];if(this._checkDefGroup(defs,def,group)){return true}}return false};Rules.prototype._loadBuiltinJetRulesDescriptions=function(){var ruleName,rules;try{if(!this._builtinJetRules){this._builtinJetRules=require("../rules/jet/rules.json")}}catch(e){this._error("Unable to load builtin rule definition file "+e)}if(this._builtinJetRules&&this._builtinJetRules.rules){rules=this._builtinJetRules.rules;for(ruleName in rules){rules[ruleName].$builtin=true}}return this._builtinJetRules};Rules.prototype._isFileTypeOk=function(ruleFileType,fileType){var ret=false;if(Array.isArray(ruleFileType)){ret=ruleFileType.indexOf(fileType)>=0}else{ret=ruleFileType===fileType}return ret};Rules.prototype._createCommon=function(){var i,a=[];for(i=0;i<this._rulesetSummary.length;i++){a.push({})}return a};Rules.prototype._getFileSuffix=function(fp){var s="";if(fp){s=this._nd.path.extname(fp)}return s.length?s:"?"};Rules.prototype.dumpRegistry=function(){return this._registry.dump()};function _extractStyles(s){var a,isExpr,i,sc=";";s=s.trim();isExpr=_isExpr(s);s=s.replace(/[\'\"\[\]\{\}]/g,"").trim();if(!s.includes(";")){if(isExpr){if(s.includes(",")){sc=","}}}a=s.split(sc);for(i=0;i<a.length;i++){a[i]=a[i].trim();if(!a[i].length){a.splice(i,1);i--}}return a};function _isExpr(s){s=s.trim();return s.startsWith("[[")||s.startsWith("{{")};function _getSortedRuleNames(rules){var rule,names=[];for(rule in rules){names.push(rule)}names.sort();return names};module.exports=Rules;
package/lib/Ts.js CHANGED
@@ -3,4 +3,4 @@
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 AST=require("../lib/AST_Ts");const Comments=require("../lib/Comments");const JSX=require("../lib/jsx");const VAR_DECL="VariableDeclarator";const CALL_EXPR="CallExpression";const RETURN_STMT="ReturnStatement";const ASSIGN_EXPR="AssignmentExpression";const STYLE="style";function Ts(parser,nd,rules,fileIndex,appCtx,msgCtx){this._parser=parser;this._rules=rules;this._Issue=appCtx.Issue;this._reporter=appCtx.reporter;this._fileIndex=fileIndex;this._utils=appCtx.utils;this._msgCtx=msgCtx;this._nd=nd;this._Ast=null;this._jsx=new JSX(appCtx.metaLib,msgCtx);this._tsxUtils=appCtx.tsxUtils;this._debugMode=msgCtx.debugMode;this._debug=msgCtx.debug;this._error=msgCtx.error;this._info=msgCtx.info;this._verboseMode=msgCtx.isVerbose;this._config=appCtx.config;this._ecmaVer=appCtx.config.getEcmaVer();this._isComments=appCtx.config.getComments();this._reportJafIssue=appCtx.reportJafIssue;this._flushIssues=appCtx.flushIssues;this._runMode=appCtx.runMode};Ts.prototype.parse=function(data,file,fileType){var self=this;this._parseIt(data,file,fileType,function(treenode){let rc=self._parser.fireHookFileRules(treenode,null,false)});this._parser.fireHookFileRules(null,null)};Ts.prototype.hasParser=function(){return!!this._nd.tsparse};Ts.prototype.reportNoParser=function(){let issue=new this._Issue(`.ts/.tsx support not loaded - run mode '${this._runMode}'`);this._reportJafIssue(issue,this._parser.RULE_TS_NO_PARSER,0,0,0,0)};Ts.prototype.getAst=function(){return this._Ast.getAst()};Ts.prototype.getAstUtils=function(){return this._Ast?this._Ast.getUtils():null};Ts.prototype._parseIt=function(data,file,fileType,cb){var ret=false,rowNow,colNow,issue,opts,arRawComs,startPos;try{this._debug(`Parsing ${fileType.toUpperCase()}...`);this._Ast=new AST(data,file,fileType,this._nd,this._ecmaVer,this._isComments,this._msgCtx,this._config);ret=!!this._Ast.getAst()}catch(e){startPos=this._parser.startJsPosition;opts=this._rules.getRuleOptions(this._parser.RULE_TS_DIAGNOSE,this._parser.JAF_RSI);if(opts&&opts.enabled){rowNow=e.lineNumber+(startPos.row===0?0:startPos.row-2);colNow=e.column+(startPos.col===0?0:startPos.col-1);e.message=e.message.replace("&rbrace;","{");issue=new this._Issue("TypeScript syntax - "+e.message);this._reportJafIssue(issue,this._parser.RULE_TS_DIAGNOSE,rowNow,colNow,e.index+startPos.startIndex,e.index+startPos.startIndex+1)}else{rowNow=e.lineNumber+(startPos.row===0?0:startPos.row-2);colNow=e.column+(startPos.col===0?0:startPos.col-1);console.log(`\nTS-DIAGNOSE : [${rowNow}, ${colNow}] ${e.message}\n File -> ${this._curFile}`)}this._parser.parseErrors++;if(this._debugMode||this._verboseMode){this._info(`[TS PARSE ERROR(4) #${this._parser.parseErrors} : '${e.message}' File -> ${this._parser.curFile?this._parser.curFile:"n/a"}`)}}if(!ret){return ret}if(cb)cb(this._Ast.getProgram());ret=false;try{this._debug("Walking TS...");if(this._isComments){arRawComs=this._Ast.getRawComments();if(arRawComs&&arRawComs.length){if(!this._comments){this._comments=new Comments(this._nd,this._rules,this._msgCtx,this._utils,true)}this._comments.reset(this._Ast)}}this._fileType=fileType;if(fileType==="tsx"){if(this._rules.isTypeRegistered("TsxFunction")){let namedFuncs,tsxComps;if(namedFuncs=this._Ast.extractNamedFuncs()){namedFuncs.forEach(tsxFunc=>{if(tsxFunc.returns){tsxFunc.returns.forEach(ret=>{if(tsxComps=this._jsx.genTsxRenderComponent(ret.node,this._Ast.getData())){if(tsxComps.components){tsxComps.components.forEach(tsxComp=>{ret.tsxComponent=tsxComp})}}})}this._fireTsxRules(tsxFunc)})}}}this._Ast.walk(this._AstNodeHandler.bind(this));ret=true}catch(e){this._error(`TypeScript walk failure - ${e} in ${this._parser.curFile}`)}return ret};Ts.prototype._AstNodeHandler=function(node){var coms;if(this._rules.isTypeRegistered(node.type)){if(this._comments){coms=this._comments.isDisabled(node);if(coms&&(!coms.rules||coms.rules.length===0)){return}this._rules.setJSCommentCallback(coms?function(ruleName){var b=coms.rules.includes(ruleName);return!coms.invert?b:!b}:null)}this._rules.fireRules({type:node.type,node:node,position:{offset:this._parser.startJsPosition.startIndex,start:node.range[0],end:node.range[1]},data:this._Ast.getData(),utils:{AstUtils:this._Ast.getUtils(),tsxUtils:this._tsxUtils}},node,this._parser.curFile,this._parser.curFileType,null)}if(this._fileType==="tsx"){if(this._rules.isAnyTsxTypeRegistered()){this._fireTsxRules(node)}}};Ts.prototype._fireTsxRules=function(node){var _self=this;if(node.type===VAR_DECL||node.type===CALL_EXPR||node.type===RETURN_STMT||node.type===ASSIGN_EXPR){let result;if(result=this._jsx.genTsxRenderComponent(node,this._Ast.getData())){let syn=this._rules.getTsxRuleSynopsis();if(syn.isTsxRC){if(!Array.isArray(result)){_fireTsxRules(result)}else{result.forEach(tsxRC=>{_fireTsxRules(tsxRC)})}}if(syn.isTsxWC||syn.isTsxNamedComp||syn.isTsxComp||syn.isTsxElem||syn.isTsxJetWC||syn.isTsxProp||syn.isTsxEvent||syn.isTsxStyle){result.components.forEach(tsxComp=>{function _fireTsx(tsxComp){let props;if(syn.isTsxWC&&tsxComp.isWCTag){tsxComp.type="TsxWebComponent";_fireTsxRules(tsxComp)}if(syn.isTsxJetWC){tsxComp.type="TsxJetComponent";_fireTsxRules(tsxComp)}if(syn.isTsxComp){_fireTsxRules(tsxComp)}if(syn.isTsxElem&&!tsxComp.isPreactComp&&!tsxComp.isWCTag&&!tsxComp.NaT){tsxComp.type="TsxElem";_fireTsxRules(tsxComp)}if(syn.isTsxNamedComp){let t="Tsx<"+tsxComp.name+">";if(_self._rules.isTypeRegistered(t)){tsxComp.type=t;_fireTsxRules(tsxComp)}}if(syn.isAnyTsxCompAttr){if(props=tsxComp.properties){props.forEach(prop=>{let t=`Tsx<${tsxComp.name}|${prop.name}>`;if(_self._rules.isTypeRegistered(t)){prop.type=t;_fireTsxRules(prop)}})}}if(syn.isAnyTsxAttr){if(props=tsxComp.properties){props.forEach(prop=>{let t=`Tsx<${prop.name}=>`;if(_self._rules.isTypeRegistered(t)){prop.type=t;_fireTsxRules(prop)}})}}if(syn.isTsxProp){if(props=tsxComp.properties){props.forEach(prop=>{_fireTsxRules(prop)})}}if(syn.isTsxEvent){if(props=tsxComp.properties){props.forEach(prop=>{if(prop.name.startsWith("on")){prop.type="TsxEvent";_fireTsxRules(prop)}})}}if(syn.isTsxStyle){if(props=tsxComp.properties){props.forEach(prop=>{if(prop.name===STYLE){prop.type="TsxStyle";_fireTsxRules(prop)}})}}if(tsxComp.children){tsxComp.children.forEach(child=>{_fireTsx(child)})}}_fireTsx(tsxComp)})}}}else if(node.type==="TsxFunction"){_fireTsxRules(node)}function _fireTsxRules(tsxObj){var arg2=null;if(tsxObj.type!=="TsxRendercomponent"&&tsxObj.type!=="TsxProperty"){arg2=tsxObj.name}_self._rules.fireRules({type:tsxObj.type,node:tsxObj,position:{offset:_self._parser.startJsPosition.startIndex,start:tsxObj.range[0],end:tsxObj.range[1]},data:_self._Ast.getData(),utils:{AstUtils:_self._Ast.getUtils(),tsxUtils:_self._tsxUtils}},tsxObj,_self._parser.curFile,_self._parser.curFileType,arg2)}};Ts.prototype.getAst=function(){return this._Ast};Ts.prototype.clear=function(){};module.exports=Ts;
6
+ const AST=require("../lib/AST_Ts");const REG=require("../lib/RegTypes");const Comments=require("../lib/Comments");const JSX=require("../lib/jsx");const VAR_DECL="VariableDeclarator";const CALL_EXPR="CallExpression";const RETURN_STMT="ReturnStatement";const ASSIGN_EXPR="AssignmentExpression";const STYLE="style";function Ts(parser,nd,rules,fileIndex,appCtx,msgCtx){this._parser=parser;this._rules=rules;this._Issue=appCtx.Issue;this._reporter=appCtx.reporter;this._fileIndex=fileIndex;this._utils=appCtx.utils;this._metaLib=appCtx.metaLib;this._msgCtx=msgCtx;this._nd=nd;this._Ast=null;this._jsx=new JSX(appCtx.metaLib,msgCtx);this._tsxUtils=appCtx.tsxUtils;this._debugMode=msgCtx.debugMode;this._debug=msgCtx.debug;this._error=msgCtx.error;this._info=msgCtx.info;this._verboseMode=msgCtx.isVerbose;this._config=appCtx.config;this._ecmaVer=appCtx.config.getEcmaVer();this._isComments=appCtx.config.getComments();this._reportJafIssue=appCtx.reportJafIssue;this._flushIssues=appCtx.flushIssues;this._runMode=appCtx.runMode};Ts.prototype.parse=function(data,file,fileType){var self=this;this._parseIt(data,file,fileType,function(treenode){let rc=self._parser.fireHookFileRules(treenode,null,false)});this._parser.fireHookFileRules(null,null)};Ts.prototype.hasParser=function(){return!!this._nd.tsparse};Ts.prototype.reportNoParser=function(){let issue=new this._Issue(`.ts/.tsx support not loaded - run mode '${this._runMode}'`);this._reportJafIssue(issue,this._parser.RULE_TS_NO_PARSER,0,0,0,0)};Ts.prototype.getAst=function(){return this._Ast.getAst()};Ts.prototype.getAstUtils=function(){return this._Ast?this._Ast.getUtils():null};Ts.prototype._parseIt=function(data,file,fileType,cb){var ret=false,rowNow,colNow,issue,opts,arRawComs,startPos;try{this._debug(`Parsing ${fileType.toUpperCase()}...`);this._Ast=new AST(data,file,fileType,this._nd,this._ecmaVer,this._isComments,this._msgCtx,this._config);ret=!!this._Ast.getAst()}catch(e){startPos=this._parser.startJsPosition;opts=this._rules.getRuleOptions(this._parser.RULE_TS_DIAGNOSE,this._parser.JAF_RSI);if(opts&&opts.enabled){rowNow=e.lineNumber+(startPos.row===0?0:startPos.row-2);colNow=e.column+(startPos.col===0?0:startPos.col-1);e.message=e.message.replace("&rbrace;","{");issue=new this._Issue("TypeScript syntax - "+e.message);this._reportJafIssue(issue,this._parser.RULE_TS_DIAGNOSE,rowNow,colNow,e.index+startPos.startIndex,e.index+startPos.startIndex+1)}else{rowNow=e.lineNumber+(startPos.row===0?0:startPos.row-2);colNow=e.column+(startPos.col===0?0:startPos.col-1);console.log(`\nTS-DIAGNOSE : [${rowNow}, ${colNow}] ${e.message}\n File -> ${this._curFile}`)}this._parser.parseErrors++;if(this._debugMode||this._verboseMode){this._info(`[TS PARSE ERROR(4) #${this._parser.parseErrors} : '${e.message}' File -> ${this._parser.curFile?this._parser.curFile:"n/a"}`)}}if(!ret){return ret}if(cb)cb(this._Ast.getProgram());ret=false;try{this._debug("Walking TS...");if(this._isComments){arRawComs=this._Ast.getRawComments();if(arRawComs&&arRawComs.length){if(!this._comments){this._comments=new Comments(this._nd,this._rules,this._msgCtx,this._utils,true)}this._comments.reset(this._Ast)}}this._fileType=fileType;if(fileType==="tsx"){if(this._rules.isTypeRegistered(REG.TSX_FUNCTION)){let namedFuncs,tsxComps;if(namedFuncs=this._Ast.extractNamedFuncs()){namedFuncs.forEach(tsxFunc=>{if(tsxFunc.returns){tsxFunc.returns.forEach(ret=>{if(tsxComps=this._jsx.genTsxRenderComponent(ret.node,this._Ast.getData())){if(tsxComps.components){tsxComps.components.forEach(tsxComp=>{ret.tsxComponent=tsxComp})}}})}this._fireTsxRules(tsxFunc)})}}}this._Ast.walk(this._AstNodeHandler.bind(this));ret=true}catch(e){this._error(`TypeScript walk failure - ${e} in ${this._parser.curFile}`)}return ret};Ts.prototype._AstNodeHandler=function(node){var coms;if(this._rules.isTypeRegistered(node.type)){if(this._comments){coms=this._comments.isDisabled(node);if(coms&&(!coms.rules||coms.rules.length===0)){return}this._rules.setJSCommentCallback(coms?function(ruleName){var b=coms.rules.includes(ruleName);return!coms.invert?b:!b}:null)}this._rules.fireRules({type:node.type,node:node,position:{offset:this._parser.startJsPosition.startIndex,start:node.range[0],end:node.range[1]},data:this._Ast.getData(),utils:{AstUtils:this._Ast.getUtils(),tsxUtils:this._tsxUtils}},node,this._parser.curFile,this._parser.curFileType,null)}if(this._fileType==="tsx"){if(this._rules.isAnyTsxTypeRegistered()){this._fireTsxRules(node)}}};Ts.prototype._fireTsxRules=function(node){var _self=this;if(node.type===VAR_DECL||node.type===CALL_EXPR||node.type===RETURN_STMT||node.type===ASSIGN_EXPR){let result;if(result=this._jsx.genTsxRenderComponent(node,this._Ast.getData())){let syn=this._rules.getTsxRuleSynopsis();if(syn.isTsxRC){if(!Array.isArray(result)){_fireTsxRules(result)}else{result.forEach(tsxRC=>{_fireTsxRules(tsxRC)})}}if(syn.isTsxWC||syn.isTsxNamedComp||syn.isTsxComp||syn.isTsxElem||syn.isTsxJetWC||syn.isTsxProp||syn.isTsxEvent||syn.isTsxStyle||syn.isTsxAria||syn.isTsxRequirements){result.components.forEach(tsxComp=>{function _fireTsx(tsxComp){let props,reqMeta;if(tsxComp.isWCTag){if(syn.isTsxWC){tsxComp.type=REG.TSX_WEBCOMPONENT;_fireTsxRules(tsxComp)}if(syn.isTsxRequirements&&(reqMeta=_self._metaLib.getTagRequirementsMetadata(tsxComp.name))){tsxComp.type=REG.TSX_REQUIREMENTS;_fireTsxRules(tsxComp,reqMeta)}}if(syn.isTsxJetWC){tsxComp.type=REG.TSX_JETCOMPONENT;_fireTsxRules(tsxComp)}if(syn.isTsxComp){_fireTsxRules(tsxComp)}if(syn.isTsxElem&&!tsxComp.isPreactComp&&!tsxComp.isWCTag&&!tsxComp.NaT){tsxComp.type=REG.TSX_ELEM;_fireTsxRules(tsxComp)}if(syn.isTsxNamedComp){let t="Tsx<"+tsxComp.name+">";if(_self._rules.isTypeRegistered(t)){tsxComp.type=t;_fireTsxRules(tsxComp)}}if(syn.isAnyTsxCompAttr){if(props=tsxComp.properties){props.forEach(prop=>{let t=`Tsx<${tsxComp.name}|${prop.name}>`;if(_self._rules.isTypeRegistered(t)){prop.type=t;_fireTsxRules(prop)}})}}if(syn.isAnyTsxAttr){if(props=tsxComp.properties){props.forEach(prop=>{let t=`Tsx<${prop.name}=>`;if(_self._rules.isTypeRegistered(t)){prop.type=t;_fireTsxRules(prop)}})}}if(syn.isTsxProp){if(props=tsxComp.properties){props.forEach(prop=>{_fireTsxRules(prop)})}}if(syn.isTsxEvent){if(props=tsxComp.properties){props.forEach(prop=>{if(prop.name.startsWith("on")){prop.type=REG.TSX_EVENT;_fireTsxRules(prop)}})}}if(syn.isTsxAria){if(props=tsxComp.properties){props.forEach(prop=>{if(prop.name.startsWith("aria-")){prop.type=REG.TSX_ARIA;_fireTsxRules(prop)}})}}if(syn.isTsxStyle){if(props=tsxComp.properties){props.forEach(prop=>{if(prop.name===STYLE){prop.type=REG.TSX_STYLE;_fireTsxRules(prop)}})}}if(tsxComp.children){tsxComp.children.forEach(child=>{_fireTsx(child)})}}_fireTsx(tsxComp)})}}}else if(node.type===REG.TSX_FUNCTION){_fireTsxRules(node)}function _fireTsxRules(tsxObj,arg2){arg2=arg2||null;if(tsxObj.type!==REG.TSX_RENDERCOMPONENT&&tsxObj.type!==REG.TSX_PROPERTY&&tsxObj.type!==REG.TSX_ARIA&&tsxObj.type!==REG.TSX_REQUIREMENTS){arg2=tsxObj.name}_self._rules.fireRules({type:tsxObj.type,node:tsxObj,position:{offset:_self._parser.startJsPosition.startIndex,start:tsxObj.range[0],end:tsxObj.range[1]},data:_self._Ast.getData(),utils:{AstUtils:_self._Ast.getUtils(),tsxUtils:_self._tsxUtils}},tsxObj,_self._parser.curFile,_self._parser.curFileType,arg2)}};Ts.prototype.getAst=function(){return this._Ast};Ts.prototype.clear=function(){};module.exports=Ts;
package/lib/TsUtils.js CHANGED
@@ -3,4 +3,4 @@
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 PRE_COMPILER=require("./sublib/precomp/Precompiler");const UTILS=require("./sublib/precomp/Utils");const TsUtils=function(jafUtils,fsUtils,msgCtx,semVer,nd){this._jafUtils=jafUtils;this._fsUtils=fsUtils;this._utils=null;this._msgCtx=msgCtx;this._semVer=semVer;this._nd=nd;this._isDebug=msgCtx.isDebug;this._isVerbose=msgCtx.isVerbose;this._ojetCfg=null;this._preComp=null};TsUtils.prototype.getUtils=function(){if(!this._utils){this._utils=new UTILS(this._ojetCfg,this._jafUtils,this._fsUtils,this._msgCtx,this._nd)}return this._utils};TsUtils.prototype.getPreCompiler=function(){if(!this._preComp){if(this._isDebug){this.msgCtx.debug("Loading precompiler lib...")}this._preComp=new PRE_COMPILER(this.getUtils(),this._jafUtils,this._fsUtils,this._msgCtx,this._semVer,this._nd)}return this._preComp};TsUtils.prototype.setOjetConfig=function(cfg){this._ojetCfg=cfg};module.exports=TsUtils;
6
+ const PRE_COMPILER=require("./sublib/precomp/Precompiler");const UTILS=require("./sublib/precomp/Utils");const TsUtils=function(jafUtils,fsUtils,msgCtx,semVer,nd){this._jafUtils=jafUtils;this._fsUtils=fsUtils;this._utils=null;this._msgCtx=msgCtx;this._semVer=semVer;this._nd=nd;this._isDebug=msgCtx.isDebug;this._isVerbose=msgCtx.isVerbose;this._ojetCfg=null;this._preComp=null};TsUtils.prototype.getUtils=function(){if(!this._utils){this._utils=new UTILS(this._ojetCfg,this._jafUtils,this._fsUtils,this._msgCtx,this._nd)}return this._utils};TsUtils.prototype.getPreCompiler=function(){if(!this._preComp){if(this._isDebug){this._msgCtx.debug("Loading precompiler lib...\n");this._msgCtx.debug(`\noraclejetconfig.json = \n${this._ojetCfg?JSON.stringify(this._ojetCfg,null,3):"not found"}`)}this._preComp=new PRE_COMPILER(this.getUtils(),this._jafUtils,this._fsUtils,this._msgCtx,this._semVer,this._nd)}return this._preComp};TsUtils.prototype.setOjetConfig=function(cfg){this._ojetCfg=cfg};TsUtils.prototype.setDebugModes=function(isVerbose,isDebug){this._isDebug=isDebug;this._isVerbose=isVerbose};module.exports=TsUtils;
package/lib/TsxUtils.js CHANGED
@@ -3,4 +3,4 @@
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 TSX2_UTILS=require("./TsxUtils2");const HTML_UTILS=require("./HtmlUtils");const CB_END="end";const CB_NEXT_COMP="next-comp";const TSX_COMPONENT="TsxComponent";const TSX_PROPERTY="TsxProperty";const TEMPLATE="template";const OJ_DEFER="oj-defer";const OJ_BIND="oj-bind";const BODY="body";var TsxUtils=function(assert){this._fnAssert=assert;this._metaLib=null};TsxUtils.prototype.extractTsxProperties=function(ruleCtx,tsxRC,cb){this._onTsxRC(ruleCtx,tsxRC,cb)};TsxUtils.prototype.getProperty=function(tsxObj,propName){return this._extractProp(tsxObj,propName)};TsxUtils.prototype._extractProp=function(tsxObj,propName){var ret,ot;if(tsxObj&&(ot=tsxObj.type)){if(ot===TSX_PROPERTY){return tsxObj}if(ot===TSX_COMPONENT&&propName){let props,prop,i;if(props=tsxObj.properties){for(i=0;i<props.length;i++){prop=props[i];if(prop.name===propName){ret=prop;break}}}}}return ret};TsxUtils.prototype.getPropertyRawValue=function(tsxComp,name,stripDelims){var prop,ret;if(prop=this.getProperty(tsxComp,name)){ret=prop.valueRaw;if(stripDelims&&ret.charAt(0)==="\""){ret=ret.charAt(1)==="\""?ret="":ret.substring(1,ret.length-1)}}return typeof ret==="string"?ret:null};TsxUtils.prototype.getPropertyValue=function(tsxComp,propName){var tsxProp,ret,obj,i;var a=propName.split(".");var major=a[0];if(tsxProp=this.getProperty(tsxComp,major)){if(a.length===1){return tsxProp.node.value}if(!this.isPropertyPreactExpr(tsxProp)){return undefined}obj=tsxProp.node.value;for(i=1;i<a.length;i++){major=a.shift();if(!_isObject(obj)){break}if((obj=obj[major])&&_isObject(obj)){continue}break}}return ret};TsxUtils.prototype.getPropertyStringValue=function(tsxObj,propName){var tsxProp,value,ret;if(tsxProp=this._extractProp(tsxObj,propName)){value=tsxProp.node.value;if(value!==null){ret=value.type==="Literal"&&typeof value.value==="string"?value.value:null}}else{ret=null}return ret};TsxUtils.prototype.isPropertyPreactExpr=function(tsxObj,propName){var tsxProp,ret=false;if(tsxProp=this._extractProp(tsxObj,propName)){ret=tsxProp.node.value.type==="JSXExpressionContainer"}return ret};TsxUtils.prototype.isPropertyObjectExpr=function(tsxObj,propName){var tsxProp,ret=false;if(tsxProp=this._extractProp(tsxObj,propName)){if(tsxProp.node.value.type==="JSXExpressionContainer"){let expr=tsxProp.node.value.expression;ret=expr&&expr.type==="ObjectExpression"}}return ret};TsxUtils.prototype.isPropertyString=function(tsxObj,propName){var tsxProp,ret=false;if(tsxProp=this._extractProp(tsxObj,propName)){ret=tsxProp.node.value.type==="Literal"&&typeof tsxProp.node.value.value==="string"}return ret};TsxUtils.prototype.getAncestor=function(tsxComp,name){var o,ret;name=name||tsxComp.name;while(o=tsxComp.parent){if(o.name===name){ret=o;break}tsxComp=o}return ret||null};TsxUtils.prototype.getChildren=function(tsxComp){return tsxComp.children};TsxUtils.prototype.getDescendant=function(tsxComp,name){var childs,child,ret,i;while(childs=tsxComp.children){for(i=0;i<childs.length;i++){child=childs[i];if(child.name===name){ret=child;break}if(ret=this.getDescendant(child,name)){break}}break}return ret||null};TsxUtils.prototype.getDirectDescendant=function(tsxComp,name){var childs,child,ret,i;if(childs=tsxComp.children){for(i=0;i<childs.length;i++){child=childs[i];if(child.name===name){ret=child;break}}}return ret||null};TsxUtils.prototype.isExpressionObject=function(tsxObj,propName){var tsxProp,ret;if(tsxProp=this._extractProp(tsxObj,propName)){if(tsxProp.node.value.type==="JSXExpressionContainer"){let expr=tsxProp.node.value.expression;ret=expr.type==="ObjectExpression"}}return!!ret};TsxUtils.prototype.getExpressionObject=function(tsxObj,propName){var tsxProp,obj;if(tsxProp=this._extractProp(tsxObj,propName)){if(!tsxProp.node.value){return null}if(tsxProp.node.value.type!=="JSXExpressionContainer"){return null}let expr=tsxProp.node.value.expression;if(expr.type==="ObjectExpression"){let props,stack;props=expr.properties;obj={};stack=[];props.forEach(prop=>{_doProp(prop,obj,stack,this._fnAssert)})}}return obj||null};TsxUtils.prototype.toCamelCase=function(str){return TSX2_UTILS.toCamelCase(str)};TsxUtils.prototype.toKebabCase=function(str){return TSX2_UTILS.toKebabCase(str)};function _doProp(prop,obj,stack,fnAssert){let key,elems,propx,pvType;if(prop.type==="Property"&&(prop.key.type==="Identifier"||prop.key.type==="Literal")){if(prop.key.type==="Identifier"){key=prop.key.name}else{key=prop.key.value}pvType=prop.value.type;if(pvType==="Literal"){obj[key]=prop.value.value}else if(pvType==="Identifier"){obj[key]=prop.value.name}else if(pvType==="ArrayExpression"){obj[key]=[];elems=prop.value.elements;elems.forEach(elem=>{if(elem.type==="Literal"){obj[key].push(elem.value)}else if(elem.type==="ObjectExpression"){elem.properties.forEach(prop=>{stack.push(obj);obj={};propx=_doProp(prop,obj,stack,fnAssert);obj=stack.pop();obj[key].push(propx)})}})}else if(pvType==="FunctionExpression"){obj[key]=prop.value.body.body}else if(pvType==="ArrowFunctionExpression"){obj[key]=prop.value.body}else if(pvType==="ObjectExpression"){let o,p,i,objProps=prop.value.properties;stack.push(obj);obj[key]=o={};obj=o;for(i=0;i<objProps.length;i++){p=objProps[i];if(p.key.type==="Identifier"){if(p.value.type==="Literal"){o[p.key.name]=p.value.value}else if(p.value.type==="ObjectExpression"){_doProp(p,obj,stack,fnAssert);obj=stack.pop()}else if(p.value.type==="Identifier"){o[p.key.name]=p.value.name}else if(p.value.type==="ArrowFunctionExpression"){o[p.key.name]=p.value}else{fnAssert(`TsxUtils._doProp file line=${prop?.loc.start.line} ${p.value.type}`)}}}}else if(pvType==="MemberExpression"){obj[key]=prop.value}else if(pvType==="TemplateLiteral"){obj[key]=null}else if(pvType==="LogicalExpression"){obj[key]=prop.value}else if(pvType==="CallExpression"){obj[key]=prop.value}else if(pvType==="ConditionalExpression"){obj[key]=prop.value}else if(pvType==="AssignmentPattern"){fnAssert(`TsxUtils._doProp2 unhandled prop key '${key}' value type '${pvType}', file line=${prop?.loc.start.line}`);obj[key]="?"}else{fnAssert(`TsxUtils._doProp3 unhandled prop key '${key}' value type '${pvType}', file line=${prop?.loc.start.line}`);obj[key]="?"}}return obj};TsxUtils.prototype.setIssuePosition=function(issue,obj){if(obj.type===TSX_COMPONENT||obj.type===TSX_PROPERTY){let loc=obj.loc;issue.setPosition(loc.start.line,loc.start.column,obj.range[0],obj.range[1])}else{issue.setPosition(0,0,0,0)}};TsxUtils.prototype.setIssuePropValuePosition=function(issue,tsxProp){if(tsxProp.type==="TsxProperty"){let loc=tsxProp.node.value.loc;issue.setPosition(loc.start.line,loc.start.column,tsxProp.node.value.range[0],tsxProp.node.value.range[1])}else{issue.setPosition(0,0,0,0)}};TsxUtils.prototype.getRawtext=function(ruleCtx,tsxRC){return ruleCtx&&tsxRC&&tsxRC.range?ruleCtx.data.substring(tsxRC.range[0],tsxRC.range[1]):""};TsxUtils.prototype._onTsxRC=function(ruleCtx,tsxRC,cb){var comps,tsxComp,ret,i;if(!(comps=tsxRC.components)){return}for(i=0;i<comps.length;i++){tsxComp=comps[i];ret=this._checkComp(ruleCtx,tsxComp,cb);if(ret===CB_END){break}};cb(ruleCtx,null)};TsxUtils.prototype._checkComp=function(ruleCtx,tsxComp,cb){var props;if(props=tsxComp.properties){let prop,ret,i;for(i=0;i<props.length;i++){prop=props[i];ret=cb(ruleCtx,prop);if(ret===CB_END||ret===CB_NEXT_COMP){return ret}};}if(tsxComp.children){tsxComp.children.forEach(child=>{this._checkComp(ruleCtx,child,cb)})}};TsxUtils.prototype.getSlotParent=function(ruleCtx,tsxProp,slotName){var parent,isOjDefer=false,ret=null;parent=tsxProp.parent;if(!(parent=parent.parent)){return}isOjDefer=parent.name==="oj-defer";if(parent&&parent.name){if(parent.name!==BODY){if(ruleCtx.utils.metaLib.isTagSlotName(parent.name,slotName)){ret=parent}if(!ret){if(isOjDefer&&parent.name===TEMPLATE||parent.name==="oj-switcher"){ret=parent}else if(parent.name===TEMPLATE||parent.name.startsWith(OJ_BIND)||parent.name===OJ_DEFER){ret=_continueUpwards(ruleCtx,parent,slotName)}}}}return ret};TsxUtils.prototype.isChildOfElem=function(elemName,tsxComp){var ret=null;while(tsxComp.parent){if(tsxComp.parent.name===elemName){ret=tsxComp.parent;break}tsxComp=tsxComp.parent}return ret};function _continueUpwards(ruleCtx,tsxComp,slotName){var ret=null,parent,tagName;while(parent=tsxComp.parent){tagName=parent.name;if(tagName===TEMPLATE||tagName.startsWith(OJ_BIND)||tagName===OJ_DEFER){tsxComp=parent;continue}if(parent.name!==BODY){if(ruleCtx.utils.metaLib.isTagSlotName(tagName,slotName)){ret=parent}}break}return ret};function _isObject(value){return typeof value==="object"&&!Array.isArray(value)};TsxUtils.prototype.setMetaLib=function(metaLib){this._metaLib=metaLib};TsxUtils.prototype.isCommonElem=function(elem){return HTML_UTILS.isCommonElem(elem)};TsxUtils.prototype.isCommonAttr=function(attrName){return TSX2_UTILS.isCommonProp(attrName)||this.isAriaAttr(attrName)};TsxUtils.prototype.isCommonEventAttr=function(attrName){return TSX2_UTILS.isCommonEventProp(attrName)};TsxUtils.prototype.isHtml5ObsoleteElem=function(tag){return HTML_UTILS.isHtml5ObsoleteElem(tag)};TsxUtils.prototype.isAriaAttr=function(attr){return HTML_UTILS.isAriaAttr(attr)};TsxUtils.prototype.isSelfClosingTag=function(tag){return HTML_UTILS.isSelfClosingTag(tag)};TsxUtils.prototype.isSvgElem=function(elem){return HTML_UTILS.isSvgElem(elem)};module.exports=TsxUtils;
6
+ const TSX2_UTILS=require("./TsxUtils2");const HTML_UTILS=require("./HtmlUtils");const CB_END="end";const CB_NEXT_COMP="next-comp";const TSX_COMPONENT="TsxComponent";const TSX_PROPERTY="TsxProperty";const TEMPLATE="template";const OJ_DEFER="oj-defer";const OJ_BIND="oj-bind";const BODY="body";var TsxUtils=function(assert){this._fnAssert=assert;this._metaLib=null};TsxUtils.prototype.extractTsxProperties=function(ruleCtx,tsxRC,cb){this._onTsxRC(ruleCtx,tsxRC,cb)};TsxUtils.prototype.getProperty=function(tsxObj,propName){return this._extractProp(tsxObj,propName)};TsxUtils.prototype._extractProp=function(tsxObj,propName){var ret,ot;if(tsxObj&&(ot=tsxObj.type)){if(ot===TSX_PROPERTY){return tsxObj}if(ot===TSX_COMPONENT&&propName){let props,prop,i;if(props=tsxObj.properties){for(i=0;i<props.length;i++){prop=props[i];if(prop.name===propName){ret=prop;break}}}}}return ret};TsxUtils.prototype.getPropertyRawValue=function(tsxComp,name,stripDelims){var prop,ret;if(prop=this.getProperty(tsxComp,name)){ret=prop.valueRaw;if(stripDelims&&ret.charAt(0)==="\""){ret=ret.charAt(1)==="\""?ret="":ret.substring(1,ret.length-1)}}return typeof ret==="string"?ret:null};TsxUtils.prototype.getPropertyValue=function(tsxComp,propName){var tsxProp,ret,obj,i;var a=propName.split(".");var major=a[0];if(tsxProp=this.getProperty(tsxComp,major)){if(a.length===1){return tsxProp.node.value}if(!this.isPropertyPreactExpr(tsxProp)){return undefined}obj=tsxProp.node.value;for(i=1;i<a.length;i++){major=a.shift();if(!_isObject(obj)){break}if((obj=obj[major])&&_isObject(obj)){continue}break}}return ret};TsxUtils.prototype.getPropertyStringValue=function(tsxObj,propName){var tsxProp,value,ret;if(tsxProp=this._extractProp(tsxObj,propName)){value=tsxProp.node.value;if(value!==null){ret=value.type==="Literal"&&typeof value.value==="string"?value.value:null}}else{ret=null}return ret};TsxUtils.prototype.isPropertyPreactExpr=function(tsxObj,propName){var tsxProp,ret=false;if(tsxProp=this._extractProp(tsxObj,propName)){ret=tsxProp.node.value.type==="JSXExpressionContainer"}return ret};TsxUtils.prototype.isPropertyObjectExpr=function(tsxObj,propName){var tsxProp,ret=false;if(tsxProp=this._extractProp(tsxObj,propName)){if(tsxProp.node.value.type==="JSXExpressionContainer"){let expr=tsxProp.node.value.expression;ret=expr&&expr.type==="ObjectExpression"}}return ret};TsxUtils.prototype.isPropertyString=function(tsxObj,propName){var tsxProp,ret=false;if(tsxProp=this._extractProp(tsxObj,propName)){ret=tsxProp.node.value.type==="Literal"&&typeof tsxProp.node.value.value==="string"}return ret};TsxUtils.prototype.getAncestor=function(tsxComp,name){var o,ret;name=name||tsxComp.name;while(o=tsxComp.parent){if(o.name===name){ret=o;break}tsxComp=o}return ret||null};TsxUtils.prototype.getChildren=function(tsxComp){return tsxComp.children};TsxUtils.prototype.getDescendant=function(tsxComp,name){var childs,child,ret,i;while(childs=tsxComp.children){for(i=0;i<childs.length;i++){child=childs[i];if(child.name===name){ret=child;break}if(ret=this.getDescendant(child,name)){break}}break}return ret||null};TsxUtils.prototype.getDirectDescendant=function(tsxComp,name){var childs,child,ret,i;if(childs=tsxComp.children){for(i=0;i<childs.length;i++){child=childs[i];if(child.name===name){ret=child;break}}}return ret||null};TsxUtils.prototype.isExpressionObject=function(tsxObj,propName){var tsxProp,ret;if(tsxProp=this._extractProp(tsxObj,propName)){if(tsxProp.node.value.type==="JSXExpressionContainer"){let expr=tsxProp.node.value.expression;ret=expr.type==="ObjectExpression"}}return!!ret};TsxUtils.prototype.getExpressionObject=function(tsxObj,propName){var tsxProp,obj;if(tsxProp=this._extractProp(tsxObj,propName)){if(!tsxProp.node.value){return null}if(tsxProp.node.value.type!=="JSXExpressionContainer"){return null}let expr=tsxProp.node.value.expression;if(expr.type==="ObjectExpression"){let props,stack;props=expr.properties;obj={};stack=[];props.forEach(prop=>{_doProp(prop,obj,stack,this._fnAssert)})}}return obj||null};TsxUtils.prototype.toCamelCase=function(str){return TSX2_UTILS.toCamelCase(str)};TsxUtils.prototype.toKebabCase=function(str){return TSX2_UTILS.toKebabCase(str)};function _doProp(prop,obj,stack,fnAssert){let key,elems,propx,pvType;if(prop.type==="Property"&&(prop.key.type==="Identifier"||prop.key.type==="Literal")){if(prop.key.type==="Identifier"){key=prop.key.name}else{key=prop.key.value}pvType=prop.value.type;if(pvType==="Literal"){obj[key]=prop.value.value}else if(pvType==="Identifier"){obj[key]=prop.value.name}else if(pvType==="ArrayExpression"){obj[key]=[];elems=prop.value.elements;elems.forEach(elem=>{if(elem.type==="Literal"){obj[key].push(elem.value)}else if(elem.type==="ObjectExpression"){elem.properties.forEach(prop=>{stack.push(obj);obj={};propx=_doProp(prop,obj,stack,fnAssert);obj=stack.pop();obj[key].push(propx)})}})}else if(pvType==="FunctionExpression"){obj[key]=prop.value.body.body}else if(pvType==="ArrowFunctionExpression"){obj[key]=prop.value.body}else if(pvType==="ObjectExpression"){let o,p,i,objProps=prop.value.properties;stack.push(obj);obj[key]=o={};obj=o;for(i=0;i<objProps.length;i++){p=objProps[i];if(p.key.type==="Identifier"||p.key.type==="Literal"){if(p.value.type==="Literal"){o[p.key.value]=p.value.value}else if(p.value.type==="Identifier"){o[p.key.name]=p.value.value}else if(p.value.type==="ObjectExpression"){_doProp(p,obj,stack,fnAssert);obj=stack.pop()}else if(p.value.type==="Identifier"){o[p.key.name]=p.value.name}else if(p.value.type==="ArrowFunctionExpression"){o[p.key.name]=p.value}else{fnAssert(`TsxUtils._doProp file line=${prop?.loc.start.line} ${p.value.type}`)}}}}else if(pvType==="MemberExpression"){obj[key]=prop.value}else if(pvType==="TemplateLiteral"){obj[key]=null}else if(pvType==="LogicalExpression"){obj[key]=prop.value}else if(pvType==="CallExpression"){obj[key]=prop.value}else if(pvType==="ConditionalExpression"){obj[key]=prop.value}else if(pvType==="AssignmentPattern"){fnAssert(`TsxUtils._doProp2 unhandled prop key '${key}' value type '${pvType}', file line=${prop?.loc.start.line}`);obj[key]="?"}else{fnAssert(`TsxUtils._doProp3 unhandled prop key '${key}' value type '${pvType}', file line=${prop?.loc.start.line}`);obj[key]="?"}}return obj};TsxUtils.prototype.setIssuePosition=function(issue,obj){if(obj.type===TSX_COMPONENT||obj.type===TSX_PROPERTY){let loc=obj.loc;issue.setPosition(loc.start.line,loc.start.column,obj.range[0],obj.range[1])}else{issue.setPosition(0,0,0,0)}};TsxUtils.prototype.setIssuePropValuePosition=function(issue,tsxProp){if(tsxProp.type==="TsxProperty"){let loc=tsxProp.node.value.loc;issue.setPosition(loc.start.line,loc.start.column,tsxProp.node.value.range[0],tsxProp.node.value.range[1])}else{issue.setPosition(0,0,0,0)}};TsxUtils.prototype.getRawtext=function(ruleCtx,tsxRC){return ruleCtx&&tsxRC&&tsxRC.range?ruleCtx.data.substring(tsxRC.range[0],tsxRC.range[1]):""};TsxUtils.prototype._onTsxRC=function(ruleCtx,tsxRC,cb){var comps,tsxComp,ret,i;if(!(comps=tsxRC.components)){return}for(i=0;i<comps.length;i++){tsxComp=comps[i];ret=this._checkComp(ruleCtx,tsxComp,cb);if(ret===CB_END){break}};cb(ruleCtx,null)};TsxUtils.prototype._checkComp=function(ruleCtx,tsxComp,cb){var props;if(props=tsxComp.properties){let prop,ret,i;for(i=0;i<props.length;i++){prop=props[i];ret=cb(ruleCtx,prop);if(ret===CB_END||ret===CB_NEXT_COMP){return ret}};}if(tsxComp.children){tsxComp.children.forEach(child=>{this._checkComp(ruleCtx,child,cb)})}};TsxUtils.prototype.getSlotParent=function(ruleCtx,tsxProp,slotName){var parent,isOjDefer=false,ret=null;parent=tsxProp.parent;if(!(parent=parent.parent)){return}isOjDefer=parent.name==="oj-defer";if(parent&&parent.name){if(parent.name!==BODY){if(ruleCtx.utils.metaLib.isTagSlotName(parent.name,slotName)){ret=parent}if(!ret){if(isOjDefer&&parent.name===TEMPLATE||parent.name==="oj-switcher"){ret=parent}else if(parent.name===TEMPLATE||parent.name.startsWith(OJ_BIND)||parent.name===OJ_DEFER){ret=_continueUpwards(ruleCtx,parent,slotName)}}}}return ret};TsxUtils.prototype.isChildOfElem=function(elemName,tsxComp){var ret=null;while(tsxComp.parent){if(tsxComp.parent.name===elemName){ret=tsxComp.parent;break}tsxComp=tsxComp.parent}return ret};function _continueUpwards(ruleCtx,tsxComp,slotName){var ret=null,parent,tagName;while(parent=tsxComp.parent){tagName=parent.name;if(tagName===TEMPLATE||tagName.startsWith(OJ_BIND)||tagName===OJ_DEFER){tsxComp=parent;continue}if(parent.name!==BODY){if(ruleCtx.utils.metaLib.isTagSlotName(tagName,slotName)){ret=parent}}break}return ret};function _isObject(value){return typeof value==="object"&&!Array.isArray(value)};TsxUtils.prototype.setMetaLib=function(metaLib){this._metaLib=metaLib};TsxUtils.prototype.isCommonElem=function(elem){return HTML_UTILS.isCommonElem(elem)};TsxUtils.prototype.isCommonAttr=function(attrName){return TSX2_UTILS.isCommonProp(attrName)||this.isAriaAttr(attrName)};TsxUtils.prototype.isCommonEventAttr=function(attrName){return TSX2_UTILS.isCommonEventProp(attrName)};TsxUtils.prototype.isHtml5ObsoleteElem=function(tag){return HTML_UTILS.isHtml5ObsoleteElem(tag)};TsxUtils.prototype.isAriaAttr=function(attr){return HTML_UTILS.isAriaAttr(attr)};TsxUtils.prototype.isSelfClosingTag=function(tag){return HTML_UTILS.isSelfClosingTag(tag)};TsxUtils.prototype.isSvgElem=function(elem){return HTML_UTILS.isSvgElem(elem)};module.exports=TsxUtils;
package/lib/checkage.js CHANGED
@@ -3,4 +3,4 @@
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 BUILT="2025-07-23T20:32:29.091Z";const MAJOR_RELS=2;function CheckAge(burnedInJetVer,msgCtx){this._jetRels=-1;this._msgCtx=msgCtx;this._burnedInMajor=parseInt(burnedInJetVer.split(".")[0])};CheckAge.prototype.checkAge=function(){var curDate;var buildDate;var buildMonth;var monthsToNow;curDate=new Date;buildDate=BUILT==="@BUILT@"?curDate:new Date(BUILT);buildMonth=buildDate.getMonth()+1;monthsToNow=_getElapsedMonths(buildDate,curDate);if(!monthsToNow){this._jetRels=0}else{this._jetRels=_getReleases(buildMonth,monthsToNow);if(this._jetRels>MAJOR_RELS){this._emitMsg(monthsToNow)}}return this._jetRels};CheckAge.prototype.getJafReleaseCount=function(){return this._jetRels};CheckAge.prototype.getMajorReleaseCount=function(major){if(typeof major==="string"){let a=major.split(".");major=parseInt(a[0])}if(isNaN(major)){return this._jetRels}let estimatedMajor=this._burnedInMajor+this._jetRels;return estimatedMajor-major};CheckAge.prototype._emitMsg=function(old){var INDENT=" ".repeat(12);var s,h,p;if(this._jetRels){s=""+this._jetRels;if(this._jetRels===1){h="has";p=""}else{h="have";p="s"}}else{s="at least one";h="has";p=""}var s=`\nThis version of JAF is ${old} month${old===1?"":"s"} old, and there ${h} been ${s} scheduled public\n`+`${INDENT}major JET release${p}, together with JAF updates and fixes. It is strongly\n`+INDENT+"recommended that you install the latest version of JAF. [JAF-9100]\n";this._msgCtx.warn(s,"JAF-9100",true)};function _getElapsedMonths(start,end){return end.getMonth()-start.getMonth()+12*(end.getFullYear()-start.getFullYear())};function _getReleases(buildMonth,months){var toNextRel,releases=0;if(buildMonth===1){toNextRel=0}else if(buildMonth>1&&buildMonth<7){toNextRel=7-buildMonth}else if(buildMonth===7){toNextRel=0}else{toNextRel=13-buildMonth}if((releases=months-toNextRel)>=0){releases=1+Math.floor(releases/6)}else{releases=0}return releases};module.exports=CheckAge;
6
+ const BUILT="2025-08-12T17:05:24.797Z";const MAJOR_RELS=2;function CheckAge(burnedInJetVer,msgCtx){this._jetRels=-1;this._msgCtx=msgCtx;this._burnedInMajor=parseInt(burnedInJetVer.split(".")[0])};CheckAge.prototype.checkAge=function(){var curDate;var buildDate;var buildMonth;var monthsToNow;curDate=new Date;buildDate=BUILT==="@BUILT@"?curDate:new Date(BUILT);buildMonth=buildDate.getMonth()+1;monthsToNow=_getElapsedMonths(buildDate,curDate);if(!monthsToNow){this._jetRels=0}else{this._jetRels=_getReleases(buildMonth,monthsToNow);if(this._jetRels>MAJOR_RELS){this._emitMsg(monthsToNow)}}return this._jetRels};CheckAge.prototype.getJafReleaseCount=function(){return this._jetRels};CheckAge.prototype.getMajorReleaseCount=function(major){if(typeof major==="string"){let a=major.split(".");major=parseInt(a[0])}if(isNaN(major)){return this._jetRels}let estimatedMajor=this._burnedInMajor+this._jetRels;return estimatedMajor-major};CheckAge.prototype._emitMsg=function(old){var INDENT=" ".repeat(12);var s,h,p;if(this._jetRels){s=""+this._jetRels;if(this._jetRels===1){h="has";p=""}else{h="have";p="s"}}else{s="at least one";h="has";p=""}var s=`\nThis version of JAF is ${old} month${old===1?"":"s"} old, and there ${h} been ${s} scheduled public\n`+`${INDENT}major JET release${p}, together with JAF updates and fixes. It is strongly\n`+INDENT+"recommended that you install the latest version of JAF. [JAF-9100]\n";this._msgCtx.warn(s,"JAF-9100",true)};function _getElapsedMonths(start,end){return end.getMonth()-start.getMonth()+12*(end.getFullYear()-start.getFullYear())};function _getReleases(buildMonth,months){var toNextRel,releases=0;if(buildMonth===1){toNextRel=0}else if(buildMonth>1&&buildMonth<7){toNextRel=7-buildMonth}else if(buildMonth===7){toNextRel=0}else{toNextRel=13-buildMonth}if((releases=months-toNextRel)>=0){releases=1+Math.floor(releases/6)}else{releases=0}return releases};module.exports=CheckAge;
package/lib/defaults.js CHANGED
@@ -3,4 +3,4 @@
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 defaults={JETVER:"18.1.5".replace(/(\d*\.\d*)(\.\d*)+$/g,"$1")+".0",THEME:"Alta",ECMAVER:14};module.exports=defaults;
6
+ const defaults={JETVER:"19.0.0".replace(/(\d*\.\d*)(\.\d*)+$/g,"$1")+".0",THEME:"Alta",ECMAVER:14};module.exports=defaults;