New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@dlightjs/reactivity-parser

Package Overview
Dependencies
Maintainers
2
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dlightjs/reactivity-parser - npm Package Compare versions

Comparing version 1.0.0-alpha.0 to 1.0.0-alpha.1

14

dist/index.d.ts

@@ -61,2 +61,12 @@ import { ViewUnit } from '@dlightjs/view-parser';

}
interface SwitchBranch {
case: DependencyValue<types.Expression> | null | undefined;
children: ViewParticle[];
break: boolean;
}
interface SwitchParticle {
type: "switch";
discriminant: DependencyValue<types.Expression>;
branches: SwitchBranch[];
}
interface EnvParticle {

@@ -78,3 +88,3 @@ type: "env";

}
type ViewParticle = TemplateParticle | TextParticle | HTMLParticle | CompParticle | ForParticle | IfParticle | EnvParticle | ExpParticle | SubviewParticle;
type ViewParticle = TemplateParticle | TextParticle | HTMLParticle | CompParticle | ForParticle | IfParticle | EnvParticle | ExpParticle | SwitchParticle | SubviewParticle;
interface ReactivityParserConfig {

@@ -101,2 +111,2 @@ babelApi: typeof Babel;

export { CompParticle, DependencyProp, DependencyValue, EnvParticle, ExpParticle, ForParticle, HTMLParticle, IfBranch, IfParticle, ReactivityParserConfig, ReactivityParserOption, SubviewParticle, TemplateParticle, TemplateProp, TextParticle, ViewParticle, mutableParticle, parseReactivity };
export { CompParticle, DependencyProp, DependencyValue, EnvParticle, ExpParticle, ForParticle, HTMLParticle, IfBranch, IfParticle, ReactivityParserConfig, ReactivityParserOption, SubviewParticle, SwitchBranch, SwitchParticle, TemplateParticle, TemplateProp, TextParticle, ViewParticle, mutableParticle, parseReactivity };

2

dist/index.js

@@ -1,2 +0,2 @@

import{createErrorHandler as f}from"@dlightjs/error-handler";var d=f("ReactivityParser",{1:"Invalid ViewUnit type"});var m={acceptCharset:"accept-charset",colSpan:"colspan",contentEditable:"contenteditable",formAction:"formaction",formEnctype:"formenctype",formMethod:"formmethod",formNoValidate:"formnovalidate",formTarget:"formtarget",httpEquiv:"http-equiv",intrinsicSize:"intrinsicsize",inputMode:"inputmode",itemProp:"itemprop",maxLength:"maxlength",minLength:"minlength",noValidate:"novalidate",playsInline:"playsinline",referrerPolicy:"referrerpolicy",rowSpan:"rowspan",tabIndex:"tabindex"};function h(c){return m[c]||c}var o=class{config;options;t;traverse;availableProperties;dependencyMap;identifierDepMap;dependencyParseType;escapeNamings=["escape","$"];customHTMLProps=["do","element","innerHTML","prop","attr","dataset","forwardProps","textContent"];usedProperties=new Set;constructor(e,t){this.config=e,this.options=t,this.t=e.babelApi.types,this.traverse=e.babelApi.traverse,this.availableProperties=e.availableProperties,this.dependencyMap=e.dependencyMap,this.identifierDepMap=e.identifierDepMap??{},this.dependencyParseType=e.dependencyParseType??"property",t?.escapeNamings&&(this.escapeNamings=t.escapeNamings),t?.customHTMLProps&&(this.customHTMLProps=t.customHTMLProps)}parse(e){return this.parseViewUnit(e)}parseViewUnit(e){return this.isHTMLTemplate(e)?this.parseTemplate(e):e.type==="text"?this.parseText(e):e.type==="html"?this.parseHTML(e):e.type==="comp"?this.parseComp(e):e.type==="for"?this.parseFor(e):e.type==="if"?this.parseIf(e):e.type==="env"?this.parseEnv(e):e.type==="exp"?this.parseExp(e):e.type==="subview"?this.parseSubview(e):d.throw1()}parseTemplate(e){return{type:"template",template:this.generateTemplateString(e),props:this.parseTemplateProps(e),mutableParticles:this.generateMutableParticles(e)}}generateTemplateString(e){let t="",i=r=>{let s=r.tag.value,a=this.filterTemplateProps(Object.entries(r.props??[]).filter(([,p])=>this.isStaticProp(p)&&!(this.t.isBooleanLiteral(p.value)&&!p.value.value)).map(([p,{value:l}])=>[h(p),l.value])).map(([p,l])=>l===!0?` ${p}`:` ${p}="${l}"`).join("");t+=`<${s}${a}>`,r.content?this.isStaticProp(r.content)&&(t+=r.content.value.value):r.children?.forEach(p=>{if(p.type==="html"&&this.t.isStringLiteral(p.tag)){i(p);return}p.type==="text"&&this.t.isStringLiteral(p.content)&&(t+=p.content.value)}),t+=`</${s}>`};return i(e),t}generateMutableParticles(e){let t=[],i=(r,s=[])=>{r.children?.forEach((n,a)=>{(n.type!=="html"||!this.t.isStringLiteral(n.tag))&&n.type!=="text"&&t.push({path:[...s,a],...this.parseViewParticle(n)})}),r.children?.filter(n=>n.type==="html"&&this.t.isStringLiteral(n.tag)).forEach((n,a)=>{i(n,[...s,a])})};return i(e),t}parseTemplateProps(e){let t=[],i=(r,s)=>{Object.entries({...r.props??{},...r.content?{textContent:r.content}:{}}).filter(([,n])=>!this.isStaticProp(n)).forEach(([n,a])=>{let p=this.getDependencies(a.value);t.push({tag:r.tag.value,key:n,path:s,value:a.value,dependencyIndexArr:p})}),r.children?.filter(n=>n.type==="html"&&this.t.isStringLiteral(n.tag)||n.type==="text").forEach((n,a)=>{if(n.type==="html")i(n,[...s,a]);else if(n.type==="text"){let p=this.getDependencies(n.content);t.push({tag:"text",key:"value",path:[...s,a],value:n.content,dependencyIndexArr:p})}})};return i(e,[]),t}parseText(e){return{type:"text",content:{value:e.content,dependencyIndexArr:this.getDependencies(e.content)}}}parseHTML(e){let t=this.getDependencies(e.tag),i={type:"html",tag:e.tag};if(e.props&&(e.content&&(e.props.textContent=e.content),i.props=Object.fromEntries(Object.entries(e.props).map(([s,n])=>[s,this.generateDependencyProp(n)]))),e.children&&(i.children=e.children.map(this.parseViewParticle.bind(this))),t.length===0)return i;let r=this.uid();return{type:"exp",content:{value:this.t.stringLiteral(r),viewPropMap:{[r]:[i]}}}}parseComp(e){let t=this.getDependencies(e.tag),i={type:"comp",tag:e.tag};if(e.content&&(i.content=this.generateDependencyProp(e.content)),e.props&&(i.props=Object.fromEntries(Object.entries(e.props).map(([s,n])=>[s,this.generateDependencyProp(n)]))),e.children&&(i.children=e.children.map(this.parseViewParticle.bind(this))),t.length===0)return i;let r=this.uid();return{type:"exp",content:{value:this.t.stringLiteral(r),viewPropMap:{[r]:[i]}}}}parseFor(e){let t=this.getDependencies(e.array),i=this.config.identifierDepMap,r=this.t.isIdentifier(e.key)&&e.key.name;this.config.identifierDepMap=Object.fromEntries(this.getIdentifiers(this.t.assignmentExpression("=",e.item,this.t.identifier("temp"))).filter(n=>!r||n!==r).map(n=>[n,t.map(a=>this.availableProperties[a])]));let s={type:"for",item:e.item,array:{value:e.array,dependencyIndexArr:t},children:e.children.map(this.parseViewParticle.bind(this)),key:e.key};return this.config.identifierDepMap=i,s}parseIf(e){return{type:"if",branches:e.branches.map(t=>({condition:{value:t.condition,dependencyIndexArr:this.getDependencies(t.condition)},children:t.children.map(this.parseViewParticle.bind(this))}))}}parseEnv(e){return{type:"env",props:Object.fromEntries(Object.entries(e.props).map(([t,i])=>[t,this.generateDependencyProp(i)])),children:e.children.map(this.parseViewParticle.bind(this))}}parseExp(e){let t={type:"exp",content:this.generateDependencyProp(e.content)};return e.props&&(t.props=Object.fromEntries(Object.entries(e.props).map(([i,r])=>[i,this.generateDependencyProp(r)]))),t}parseSubview(e){let t={type:"subview",tag:e.tag};return e.props&&(t.props=Object.fromEntries(Object.entries(e.props).map(([i,r])=>[i,this.generateDependencyProp(r)]))),e.children&&(t.children=e.children.map(this.parseViewParticle.bind(this))),t}generateDependencyProp(e){let t={value:e.value,dependencyIndexArr:this.getDependencies(e.value)};return e.viewPropMap&&(t.viewPropMap=Object.fromEntries(Object.entries(e.viewPropMap).map(([i,r])=>[i,r.map(this.parseViewParticle.bind(this))]))),t}getDependencies(e){let t=this.dependencyParseType==="identifier"?this.getIdentifierDependencies(e):this.getPropertyDependencies(e);return[...new Set([...t,...this.getIdentifierMapDependencies(e)])]}getIdentifierDependencies(e){let t=new Set,i=this.valueWrapper(e);return this.traverse(i,{Identifier:r=>{let n=r.node.name;this.availableProperties.includes(n)&&this.isStandAloneIdentifier(r)&&!this.isMemberInEscapeFunction(r)&&!this.isMemberInManualFunction(r)&&!this.isAssignmentExpressionLeft(r)&&!this.isAssignmentIdentifierExpressionRight(r)&&(t.add(n),this.dependencyMap[n]?.forEach(t.add.bind(t)))}}),t.forEach(this.usedProperties.add.bind(this.usedProperties)),[...t].map(r=>this.availableProperties.indexOf(r))}getPropertyDependencies(e){let t=new Set,i=this.valueWrapper(e);return this.traverse(i,{MemberExpression:r=>{if(!this.t.isIdentifier(r.node.property))return;let s=r.node.property.name;this.availableProperties.includes(s)&&this.t.isThisExpression(r.node.object)&&!this.isMemberInEscapeFunction(r)&&!this.isMemberInManualFunction(r)&&!this.isAssignmentExpressionLeft(r)&&!this.isAssignmentPropertyExpressionRight(r)&&(t.add(s),this.dependencyMap[s]?.forEach(t.add.bind(t)))}}),t.forEach(this.usedProperties.add.bind(this.usedProperties)),[...t].map(r=>this.availableProperties.indexOf(r))}getIdentifierMapDependencies(e){let t=new Set,i=this.valueWrapper(e);return this.traverse(i,{Identifier:r=>{let n=r.node.name;if(this.isAttrFromFunction(r,n))return;let a=this.identifierDepMap[n];a&&(this.isMemberInEscapeFunction(r)||this.isMemberInManualFunction(r)||a.forEach(t.add.bind(t)))}}),t.forEach(this.usedProperties.add.bind(this.usedProperties)),[...t].map(r=>this.availableProperties.indexOf(r))}parseViewParticle(e){let t=new o(this.config,this.options),i=t.parse(e);return t.usedProperties.forEach(this.usedProperties.add.bind(this.usedProperties)),i}isHTMLTemplate(e){return e.type==="html"&&this.t.isStringLiteral(e.tag)&&!!e.children?.some(t=>t.type==="html"&&this.t.isStringLiteral(t.tag))}isStaticProp(e){let{value:t,viewPropMap:i}=e;return(!i||Object.keys(i).length===0)&&(this.t.isStringLiteral(t)||this.t.isNumericLiteral(t)||this.t.isBooleanLiteral(t))}filterTemplateProps(e){return e.filter(([t])=>!t.startsWith("on")).filter(([t])=>!this.customHTMLProps.includes(t))}valueWrapper(e){return this.t.file(this.t.program([this.t.isStatement(e)?e:this.t.expressionStatement(e)]))}isStandAloneIdentifier(e){let t=e.node,i=e.parentPath?.node;if(this.t.isMemberExpression(i)&&i.property===t||this.isAttrFromFunction(e,t.name))return!1;for(;e.parentPath;){if(this.t.isVariableDeclarator(e.parentPath.node)||this.t.isObjectProperty(e.parentPath.node)&&e.parentPath.node.key===e.node&&!e.parentPath.node.computed)return!1;e=e.parentPath}return!0}getIdentifiers(e){if(this.t.isIdentifier(e))return[e.name];let t=new Set;return this.traverse(this.valueWrapper(e),{Identifier:i=>{this.isStandAloneIdentifier(i)&&t.add(i.node.name)}}),[...t]}isAttrFromFunction(e,t){let i=e.parentPath,r=s=>this.t.isIdentifier(s)?s.name===t:this.t.isAssignmentPattern(s)?r(s.left):this.t.isArrayPattern(s)?s.elements.filter(Boolean).map(n=>r(n)).includes(!0):this.t.isObjectPattern(s)?s.properties.filter(n=>this.t.isObjectProperty(n)&&this.t.isIdentifier(n.key)).map(n=>n.key.name).includes(t):this.t.isRestElement(s)?r(s.argument):!1;for(;i;){let s=i.node;if(this.t.isArrowFunctionExpression(s)||this.t.isFunctionDeclaration(s)){for(let n of s.params)if(r(n))return!0}i=i.parentPath}return!1}isAssignmentExpressionLeft(e){let t=e.parentPath?.node;return this.t.isAssignmentExpression(t)&&t.left===e.node||this.t.isUpdateExpression(t)}isAssignmentPropertyExpressionRight(e){let t=e.node,i=!1,r=e.parentPath;for(;r;){if(this.t.isAssignmentExpression(r.node)){let s=r.node.left,n=t.type===s.type,a=t.property.name===s.property.name;i=n&&a}r=r.parentPath}return i}isAssignmentIdentifierExpressionRight(e){let t=e.node,i=!1,r=e.parentPath;for(;r;){if(this.t.isAssignmentExpression(r.node)){let s=r.node.left,n=t.type===s.type,a=t.name===s.name;i=n&&a}r=r.parentPath}return i}isMemberInEscapeFunction(e){let t=!1,i=e.parentPath;for(;i;){let r=i.node;if(this.t.isCallExpression(r)&&this.t.isIdentifier(r.callee)&&this.escapeNamings.includes(r.callee.name)){t=!0;break}i=i.parentPath}return t}isMemberInManualFunction(e){let t=!1,i=e.parentPath;for(;i;){let r=i.node,s=i.parentPath?.node,n=this.t.isCallExpression(s)&&this.t.isIdentifier(s.callee)&&s.callee.name==="manual",a=this.t.isCallExpression(s)&&s.arguments[0]===r;if(n&&a){t=!0;break}i=i.parentPath}return t}uid(){return Math.random().toString(36).slice(2)}};function x(c,e,t){let i=new Set;return[c.map(s=>{let n=new o(e,t),a=n.parse(s);return n.usedProperties.forEach(i.add.bind(i)),a}),i]}export{x as parseReactivity};
import{createErrorHandler as f}from"@dlightjs/error-handler";var l=f("ReactivityParser",{1:"Invalid ViewUnit type"});var m={acceptCharset:"accept-charset",colSpan:"colspan",contentEditable:"contenteditable",formAction:"formaction",formEnctype:"formenctype",formMethod:"formmethod",formNoValidate:"formnovalidate",formTarget:"formtarget",httpEquiv:"http-equiv",intrinsicSize:"intrinsicsize",inputMode:"inputmode",itemProp:"itemprop",maxLength:"maxlength",minLength:"minlength",noValidate:"novalidate",playsInline:"playsinline",referrerPolicy:"referrerpolicy",rowSpan:"rowspan",tabIndex:"tabindex"};function h(c){return m[c]||c}var o=class{config;options;t;traverse;availableProperties;dependencyMap;identifierDepMap;dependencyParseType;escapeNamings=["escape","$"];customHTMLProps=["do","element","innerHTML","prop","attr","dataset","forwardProps","textContent"];usedProperties=new Set;constructor(e,t){this.config=e,this.options=t,this.t=e.babelApi.types,this.traverse=e.babelApi.traverse,this.availableProperties=e.availableProperties,this.dependencyMap=e.dependencyMap,this.identifierDepMap=e.identifierDepMap??{},this.dependencyParseType=e.dependencyParseType??"property",t?.escapeNamings&&(this.escapeNamings=t.escapeNamings),t?.customHTMLProps&&(this.customHTMLProps=t.customHTMLProps)}parse(e){return this.parseViewUnit(e)}parseViewUnit(e){return this.isHTMLTemplate(e)?this.parseTemplate(e):e.type==="text"?this.parseText(e):e.type==="html"?this.parseHTML(e):e.type==="comp"?this.parseComp(e):e.type==="for"?this.parseFor(e):e.type==="if"?this.parseIf(e):e.type==="env"?this.parseEnv(e):e.type==="exp"?this.parseExp(e):e.type==="switch"?this.parseSwitch(e):e.type==="subview"?this.parseSubview(e):l.throw1()}parseTemplate(e){return{type:"template",template:this.generateTemplateString(e),props:this.parseTemplateProps(e),mutableParticles:this.generateMutableParticles(e)}}generateTemplateString(e){let t="",i=r=>{let s=r.tag.value,a=this.filterTemplateProps(Object.entries(r.props??[]).filter(([,p])=>this.isStaticProp(p)&&!(this.t.isBooleanLiteral(p.value)&&!p.value.value)).map(([p,{value:d}])=>[h(p),d.value])).map(([p,d])=>d===!0?` ${p}`:` ${p}="${d}"`).join("");t+=`<${s}${a}>`,r.content?this.isStaticProp(r.content)&&(t+=r.content.value.value):r.children?.forEach(p=>{if(p.type==="html"&&this.t.isStringLiteral(p.tag)){i(p);return}p.type==="text"&&this.t.isStringLiteral(p.content)&&(t+=p.content.value)}),t+=`</${s}>`};return i(e),t}generateMutableParticles(e){let t=[],i=(r,s=[])=>{r.children?.forEach((n,a)=>{(n.type!=="html"||!this.t.isStringLiteral(n.tag))&&n.type!=="text"&&t.push({path:[...s,a],...this.parseViewParticle(n)})}),r.children?.filter(n=>n.type==="html"&&this.t.isStringLiteral(n.tag)).forEach((n,a)=>{i(n,[...s,a])})};return i(e),t}parseTemplateProps(e){let t=[],i=(r,s)=>{Object.entries({...r.props??{},...r.content?{textContent:r.content}:{}}).filter(([,n])=>!this.isStaticProp(n)).forEach(([n,a])=>{let p=this.getDependencies(a.value);t.push({tag:r.tag.value,key:n,path:s,value:a.value,dependencyIndexArr:p})}),r.children?.filter(n=>n.type==="html"&&this.t.isStringLiteral(n.tag)||n.type==="text").forEach((n,a)=>{if(n.type==="html")i(n,[...s,a]);else if(n.type==="text"){let p=this.getDependencies(n.content);t.push({tag:"text",key:"value",path:[...s,a],value:n.content,dependencyIndexArr:p})}})};return i(e,[]),t}parseText(e){return{type:"text",content:{value:e.content,dependencyIndexArr:this.getDependencies(e.content)}}}parseHTML(e){let t=this.getDependencies(e.tag),i={type:"html",tag:e.tag};if(e.props&&(e.content&&(e.props.textContent=e.content),i.props=Object.fromEntries(Object.entries(e.props).map(([s,n])=>[s,this.generateDependencyProp(n)]))),e.children&&(i.children=e.children.map(this.parseViewParticle.bind(this))),t.length===0)return i;let r=this.uid();return{type:"exp",content:{value:this.t.stringLiteral(r),viewPropMap:{[r]:[i]},dependencyIndexArr:t}}}parseComp(e){let t=this.getDependencies(e.tag),i={type:"comp",tag:e.tag};if(e.content&&(i.content=this.generateDependencyProp(e.content)),e.props&&(i.props=Object.fromEntries(Object.entries(e.props).map(([s,n])=>[s,this.generateDependencyProp(n)]))),e.children&&(i.children=e.children.map(this.parseViewParticle.bind(this))),t.length===0)return i;let r=this.uid();return{type:"exp",content:{value:this.t.stringLiteral(r),viewPropMap:{[r]:[i]},dependencyIndexArr:t}}}parseFor(e){let t=this.getDependencies(e.array),i=this.config.identifierDepMap,r=this.t.isIdentifier(e.key)&&e.key.name;this.config.identifierDepMap=Object.fromEntries(this.getIdentifiers(this.t.assignmentExpression("=",e.item,this.t.identifier("temp"))).filter(n=>!r||n!==r).map(n=>[n,t.map(a=>this.availableProperties[a])]));let s={type:"for",item:e.item,array:{value:e.array,dependencyIndexArr:t},children:e.children.map(this.parseViewParticle.bind(this)),key:e.key};return this.config.identifierDepMap=i,s}parseIf(e){return{type:"if",branches:e.branches.map(t=>({condition:{value:t.condition,dependencyIndexArr:this.getDependencies(t.condition)},children:t.children.map(this.parseViewParticle.bind(this))}))}}parseSwitch(e){return{type:"switch",discriminant:{value:e.discriminant,dependencyIndexArr:this.getDependencies(e.discriminant)},branches:e.branches.map(t=>({case:t.case?{value:t.case,dependencyIndexArr:this.getDependencies(t.case)}:null,children:t.children.map(this.parseViewParticle.bind(this)),break:t.break}))}}parseEnv(e){return{type:"env",props:Object.fromEntries(Object.entries(e.props).map(([t,i])=>[t,this.generateDependencyProp(i)])),children:e.children.map(this.parseViewParticle.bind(this))}}parseExp(e){let t={type:"exp",content:this.generateDependencyProp(e.content)};return e.props&&(t.props=Object.fromEntries(Object.entries(e.props).map(([i,r])=>[i,this.generateDependencyProp(r)]))),t}parseSubview(e){let t={type:"subview",tag:e.tag};return e.props&&(t.props=Object.fromEntries(Object.entries(e.props).map(([i,r])=>[i,this.generateDependencyProp(r)]))),e.children&&(t.children=e.children.map(this.parseViewParticle.bind(this))),t}generateDependencyProp(e){let t={value:e.value,dependencyIndexArr:this.getDependencies(e.value)};return e.viewPropMap&&(t.viewPropMap=Object.fromEntries(Object.entries(e.viewPropMap).map(([i,r])=>[i,r.map(this.parseViewParticle.bind(this))]))),t}getDependencies(e){let t=this.dependencyParseType==="identifier"?this.getIdentifierDependencies(e):this.getPropertyDependencies(e);return[...new Set([...t,...this.getIdentifierMapDependencies(e)])]}getIdentifierDependencies(e){let t=new Set,i=this.valueWrapper(e);return this.traverse(i,{Identifier:r=>{let n=r.node.name;this.availableProperties.includes(n)&&this.isStandAloneIdentifier(r)&&!this.isMemberInEscapeFunction(r)&&!this.isMemberInManualFunction(r)&&!this.isAssignmentExpressionLeft(r)&&!this.isAssignmentIdentifierExpressionRight(r)&&(t.add(n),this.dependencyMap[n]?.forEach(t.add.bind(t)))}}),t.forEach(this.usedProperties.add.bind(this.usedProperties)),[...t].map(r=>this.availableProperties.indexOf(r))}getPropertyDependencies(e){let t=new Set,i=this.valueWrapper(e);return this.traverse(i,{MemberExpression:r=>{if(!this.t.isIdentifier(r.node.property))return;let s=r.node.property.name;this.availableProperties.includes(s)&&this.t.isThisExpression(r.node.object)&&!this.isMemberInEscapeFunction(r)&&!this.isMemberInManualFunction(r)&&!this.isAssignmentExpressionLeft(r)&&!this.isAssignmentPropertyExpressionRight(r)&&(t.add(s),this.dependencyMap[s]?.forEach(t.add.bind(t)))}}),t.forEach(this.usedProperties.add.bind(this.usedProperties)),[...t].map(r=>this.availableProperties.indexOf(r))}getIdentifierMapDependencies(e){let t=new Set,i=this.valueWrapper(e);return this.traverse(i,{Identifier:r=>{let n=r.node.name;if(this.isAttrFromFunction(r,n))return;let a=this.identifierDepMap[n];a&&(this.isMemberInEscapeFunction(r)||this.isMemberInManualFunction(r)||a.forEach(t.add.bind(t)))}}),t.forEach(this.usedProperties.add.bind(this.usedProperties)),[...t].map(r=>this.availableProperties.indexOf(r))}parseViewParticle(e){let t=new o(this.config,this.options),i=t.parse(e);return t.usedProperties.forEach(this.usedProperties.add.bind(this.usedProperties)),i}isHTMLTemplate(e){return e.type==="html"&&this.t.isStringLiteral(e.tag)&&!!e.children?.some(t=>t.type==="html"&&this.t.isStringLiteral(t.tag))}isStaticProp(e){let{value:t,viewPropMap:i}=e;return(!i||Object.keys(i).length===0)&&(this.t.isStringLiteral(t)||this.t.isNumericLiteral(t)||this.t.isBooleanLiteral(t))}filterTemplateProps(e){return e.filter(([t])=>!t.startsWith("on")).filter(([t])=>!this.customHTMLProps.includes(t))}valueWrapper(e){return this.t.file(this.t.program([this.t.isStatement(e)?e:this.t.expressionStatement(e)]))}isStandAloneIdentifier(e){let t=e.node,i=e.parentPath?.node;if(this.t.isMemberExpression(i)&&i.property===t||this.isAttrFromFunction(e,t.name))return!1;for(;e.parentPath;){if(this.t.isVariableDeclarator(e.parentPath.node)||this.t.isObjectProperty(e.parentPath.node)&&e.parentPath.node.key===e.node&&!e.parentPath.node.computed)return!1;e=e.parentPath}return!0}getIdentifiers(e){if(this.t.isIdentifier(e))return[e.name];let t=new Set;return this.traverse(this.valueWrapper(e),{Identifier:i=>{this.isStandAloneIdentifier(i)&&t.add(i.node.name)}}),[...t]}isAttrFromFunction(e,t){let i=e.parentPath,r=s=>this.t.isIdentifier(s)?s.name===t:this.t.isAssignmentPattern(s)?r(s.left):this.t.isArrayPattern(s)?s.elements.filter(Boolean).map(n=>r(n)).includes(!0):this.t.isObjectPattern(s)?s.properties.filter(n=>this.t.isObjectProperty(n)&&this.t.isIdentifier(n.key)).map(n=>n.key.name).includes(t):this.t.isRestElement(s)?r(s.argument):!1;for(;i;){let s=i.node;if(this.t.isArrowFunctionExpression(s)||this.t.isFunctionDeclaration(s)){for(let n of s.params)if(r(n))return!0}i=i.parentPath}return!1}isAssignmentExpressionLeft(e){let t=e.parentPath?.node;return this.t.isAssignmentExpression(t)&&t.left===e.node||this.t.isUpdateExpression(t)}isAssignmentPropertyExpressionRight(e){let t=e.node,i=!1,r=e.parentPath;for(;r;){if(this.t.isAssignmentExpression(r.node)){let s=r.node.left,n=t.type===s.type,a=t.property.name===s.property.name;i=n&&a}r=r.parentPath}return i}isAssignmentIdentifierExpressionRight(e){let t=e.node,i=!1,r=e.parentPath;for(;r;){if(this.t.isAssignmentExpression(r.node)){let s=r.node.left,n=t.type===s.type,a=t.name===s.name;i=n&&a}r=r.parentPath}return i}isMemberInEscapeFunction(e){let t=!1,i=e.parentPath;for(;i;){let r=i.node;if(this.t.isCallExpression(r)&&this.t.isIdentifier(r.callee)&&this.escapeNamings.includes(r.callee.name)){t=!0;break}i=i.parentPath}return t}isMemberInManualFunction(e){let t=!1,i=e.parentPath;for(;i;){let r=i.node,s=i.parentPath?.node,n=this.t.isCallExpression(s)&&this.t.isIdentifier(s.callee)&&s.callee.name==="manual",a=this.t.isCallExpression(s)&&s.arguments[0]===r;if(n&&a){t=!0;break}i=i.parentPath}return t}uid(){return Math.random().toString(36).slice(2)}};function E(c,e,t){let i=new Set;return[c.map(s=>{let n=new o(e,t),a=n.parse(s);return n.usedProperties.forEach(i.add.bind(i)),a}),i]}export{E as parseReactivity};
//# sourceMappingURL=index.js.map
{
"name": "@dlightjs/reactivity-parser",
"version": "1.0.0-alpha.0",
"version": "1.0.0-alpha.1",
"description": "DLight reactivity parser given View Units",

@@ -5,0 +5,0 @@ "author": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc