UNPKG

5.86 kBJavaScriptView Raw
1"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),r=require("eslint/package.json"),t=require("eslint-mdx"),s=require("eslint-plugin-react/lib/rules/no-unescaped-entities"),n=require("eslint/lib/rules/no-unused-expressions"),a=require("path"),i=require("vfile"),o=require("cosmiconfig"),l=require("remark-mdx"),c=require("remark-parse"),u=require("remark-stringify"),d=require("unified");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p,f=m(s),g=m(n),x=m(a),v=m(i),h=m(l),y=m(c),_=m(u),b=m(d),q={parser:"eslint-mdx",plugins:["mdx"]},k=function(e,r){return void 0===r&&(r={}),(Array.isArray(e)?e:Object.keys(e)).reduce((function(e,r){var t;return Object.assign(e,((t={})[r]=!1,t))}),r)};try{p=require("rebass")}catch(e){p=["Box","Flex","Text","Heading","Link","Button","Image","Card"]}var S=e.__assign(e.__assign({},q),{globals:k(p,{React:!1}),rules:{"lines-between-class-members":0,"react/jsx-no-undef":[2,{allowGlobals:!0}],"react/react-in-jsx-scope":0}}),j=+r.version.split(".").slice(0,2).join("."),E=e.__assign(e.__assign({},q),{rules:{"mdx/no-jsx-html-comments":2,"mdx/no-unescaped-entities":1,"mdx/no-unused-expressions":2,"mdx/remark":1,"no-unused-expressions":0,"react/no-unescaped-entities":0}});if(j>=6.4){var T=[{files:"*.mdx",extends:"plugin:mdx/overrides"}];try{require.resolve("prettier"),require.resolve("eslint-plugin-prettier"),T.push({files:"*.md",rules:{"prettier/prettier":[2,{parser:"markdown"}]}})}catch(e){}Object.assign(E,{overrides:T})}var I,O,P=Object.freeze({__proto__:null,base:q,overrides:S,recommended:E}),C={meta:{type:"problem",docs:{description:"Forbid invalid html style comments in jsx block",category:"SyntaxError",recommended:!0},messages:{jsxHtmlComments:"html style comments are invalid in jsx: {{ origin }}"},fixable:"code"},create:function(e){return{ExpressionStatement:function(r){var s=e.parserServices.JSXElementsWithHTMLComments;if(t.JSX_TYPES.includes(r.expression.type)&&"Program"===r.parent.type&&s&&0!==s.length){var n=s.shift();if(!n.data.inline)for(var a=function(t,s,n){e.report({messageId:"jsxHtmlComments",data:{origin:n},loc:s,node:r,fix:function(e){return e.replaceTextRange([s.start.offset,s.end.offset],t)}})},i=0,o=n.data.comments;i<o.length;i++){var l=o[i];a(l.fixed,l.loc,l.origin)}}}}}},w=[{char:">",alternatives:["&gt;"]},{char:'"',alternatives:["&quot;","&ldquo;","&#34;","&rdquo;"]},{char:"'",alternatives:["&apos;","&lsquo;","&#39;","&rsquo;"]},{char:"}",alternatives:["&#125;"]}],A=e.__assign(e.__assign({},f.default),{create:function(e){var r,s=(e.options[0]||{}).forbid||w;return(r={})["Literal, JSXText"]=function(r){var n=r.parent,a=r.loc;if(t.isJsxNode(n)){for(;n&&"Program"!==n.parent.type;)n=n.parent;var i=a.start,o=i.line,l=i.column,c=a.end,u=c.line,d=c.column,m=e.getSourceCode().lines,p=n.loc.start.line<o?0:m.slice(o-1,u).join("\n").search(t.openTag);p<0&&(p=0);for(var f=o;f<=u;f++){var g=m[f-1],x=0,v=g.length;f===o&&(x=l+p),f===u&&(v=d,f===o&&(v+=p)),g=g.slice(x,v);for(var h=0,y=s;h<y.length;h++)for(var _=y[h],b=0;b<g.length;b++){var q=g[b];"string"==typeof _?q===_&&e.report({loc:{line:f,column:x+b},message:"HTML entity, `"+_+"` , must be escaped.",node:r}):q===_.char&&e.report({loc:{line:f,column:x+b},message:"`"+_.char+"` can be escaped with "+_.alternatives.map((function(e){return"``".split("").join(e)})).join(", ")+".",node:r})}}}},r}}),N=e.__assign(e.__assign({},g.default),{create:function(e){var r=g.default.create(e);return{ExpressionStatement:function(e){t.isJsxNode(e.expression)&&"Program"===e.parent.type||r.ExpressionStatement(e)}}}}),R=function(e,r,t){t&&/^\.\.?([/\\]|$)/.test(e)&&(e=x.default.resolve(x.default.dirname(t),e)),r=r.endsWith("-")?r:r+"-";for(var s,n=0,a=[e,e.startsWith("@")?e.replace("/","/"+r):r+e];n<a.length;n++){var i=a[n];try{return require(i)}catch(e){s||(s=e)}}throw s},H=function(r,t){I||(I=o.cosmiconfigSync("remark",{packageProp:"remarkConfig"}).search),O||(O=b.default().use(y.default).freeze());var s=I(r)||{},n=s.config||{},a=n.plugins,i=void 0===a?[]:a,l=n.settings;try{i.push([require.resolve("remark-lint-file-extension"),!1])}catch(e){}var c=O().use({settings:l}).use(_.default);return t&&c.use(h.default),i.reduce((function(r,t){var n=Array.isArray(t)?t:[t],a=n[0],i=n.slice(1);return r.use.apply(r,e.__spreadArray(["string"==typeof a?R(a,"remark",s.filepath):a],i))}),c).freeze()},J={meta:{type:"layout",docs:{description:"Linter integration with remark plugins",category:"Stylistic Issues",recommended:!0},messages:{remarkReport:"{{ source }}:{{ ruleId }} - {{ reason }}"},fixable:"code"},create:function(r){var s=r.getFilename(),n=x.default.extname(s),a=r.getSourceCode(),i=r.parserOptions,o=t.DEFAULT_EXTENSIONS.concat(i.extensions||[]).includes(n),l=t.MARKDOWN_EXTENSIONS.concat(i.markdownExtensions||[]).includes(n);return{Program:function(t){if(o||l){var n=a.getText(t),i=H(s,o),c=v.default({path:s,contents:n});try{i.processSync(c)}catch(e){c.messages.includes(e)||(c.message(e).fatal=!0)}for(var u=function(s,a,o,l,c){r.report({messageId:"remarkReport",data:{reason:a,source:s,ruleId:o},loc:{start:e.__assign(e.__assign({},l),{column:l.column-1}),end:e.__assign(e.__assign({},c),{column:c.column-1})},node:t,fix:function(e){if(null==l.offset)return null;var r=[l.offset,null==c.offset?l.offset+1:c.offset],t=n.slice.apply(n,r),s=i.processSync(t).toString();return e.replaceTextRange(r,t.endsWith("\n")?s:s.slice(0,-1))}})},d=0,m=c.messages;d<m.length;d++){var p=m[d],f=p.source,g=p.reason,x=p.ruleId,h=p.location;u(f,g,x,h.start,h.end)}}}}}},L={"no-jsx-html-comments":C,"no-unescaped-entities":A,"no-unused-expressions":N,remark:J};exports.configs=P,exports.getGlobals=k,exports.getRemarkProcessor=H,exports.noJsxHtmlComments=C,exports.noUnescapedEntities=A,exports.noUnusedExpressions=N,exports.remark=J,exports.requirePkg=R,exports.rules=L;