@khanacademy/perseus-linter 4.9.0 → 4.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -5,4 +5,4 @@ export { runLinter, allLintRules as rules } from "./run-linter";
5
5
  export type { LinterWarning } from "./rule";
6
6
  export type { LinterContextProps } from "./types";
7
7
  export declare function pushContextStack(context: any, name: string): any;
8
- export { lintPerseusArticle, lintPerseusItem, lintPerseusRenderer, } from "./lint-content";
8
+ export { lintPerseusArticle, lintPerseusItem, lintPerseusRenderer, type LinterWarningItem, } from "./lint-content";
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ function _interopNamespaceCompat(e) {
28
28
 
29
29
  var KAS__namespace = /*#__PURE__*/_interopNamespaceCompat(KAS);
30
30
 
31
- const libName="@khanacademy/perseus-linter";const libVersion="4.9.0";perseusUtils.addLibraryVersionToPerseusDebug(libName,libVersion);
31
+ const libName="@khanacademy/perseus-linter";const libVersion="4.9.2";perseusUtils.addLibraryVersionToPerseusDebug(libName,libVersion);
32
32
 
33
33
  const linterContextDefault={contentType:"",highlightLint:false,paths:[],stack:[]};
34
34
 
@@ -175,7 +175,7 @@ class TreeTransformer{static isNode(n){return n&&typeof n==="object"&&typeof n.t
175
175
 
176
176
  const allLintRules=AllRules.filter(r=>r.severity<Rule.Severity.BULK_WARNING);function runLinter(tree,context,highlight,rules=allLintRules){const warnings=[];const tt=new TreeTransformer(tree);tt.traverse((node,state,content)=>{if(TreeTransformer.isTextNode(node)){let next=state.nextSibling();while(TreeTransformer.isTextNode(next)){node.content+=next.content;state.removeNextSibling();next=state.nextSibling();}}});let tableWarnings=[];let insideTable=false;tt.traverse((node,state,content)=>{const nodeWarnings=[];const applicableRules=rules.filter(r=>r.applies(context));const stack=[...context.stack];stack.push(node.type);const nodeContext={...context,stack:stack.join(".")};applicableRules.forEach(rule=>{const warning=rule.check(node,state,content,nodeContext);if(warning){if(warning.start||warning.end){warning.target=content.substring(warning.start,warning.end);}warnings.push(warning);if(highlight){nodeWarnings.push(warning);}}});if(!highlight){return}if(node.type==="table"){if(tableWarnings.length){nodeWarnings.push(...tableWarnings);}insideTable=false;tableWarnings=[];}else if(!insideTable){insideTable=state.ancestors().some(n=>n.type==="table");}if(insideTable&&nodeWarnings.length>0){tableWarnings.push(...nodeWarnings);}if(nodeWarnings.length>0){nodeWarnings.sort((a,b)=>{return a.severity-b.severity});if(node.type!=="text"||nodeWarnings.length>1){state.replace({type:"lint",content:node,message:nodeWarnings.map(w=>w.message).join("\n\n"),ruleName:nodeWarnings[0].rule,blockHighlight:nodeContext.blockHighlight,insideTable:insideTable,severity:nodeWarnings[0].severity});}else {const content=node.content;const warning=nodeWarnings[0];const start=warning.start;const end=warning.end;const prefix=content.substring(0,start);const lint=content.substring(start,end);const suffix=content.substring(end);const replacements=[];if(prefix){replacements.push({type:"text",content:prefix});}replacements.push({type:"lint",content:{type:"text",content:lint},message:warning.message,ruleName:warning.rule,insideTable:insideTable,severity:warning.severity});if(suffix){replacements.push({type:"text",content:suffix});}state.replace(...replacements);}}});return warnings}
177
177
 
178
- function lintPerseusItem(parsedPerseusItem){const questionLint=lintPerseusRenderer(parsedPerseusItem.question,"exercise");const hintLint=parsedPerseusItem.hints.map(hint=>lintPerseusRenderer(hint,"exercise"));return {question:questionLint,hints:hintLint}}function lintPerseusArticle(parsedPerseusArticle){const articleSections=Array.isArray(parsedPerseusArticle)?parsedPerseusArticle:[parsedPerseusArticle];return articleSections.map(section=>lintPerseusRenderer(section,"article"))}function lintPerseusRenderer(parsedPerseusRenderer,contentType){const tree=pureMarkdown.parse(parsedPerseusRenderer.content);const context={content:parsedPerseusRenderer.content,widgets:parsedPerseusRenderer.widgets,stack:[],contentType};return runLinter(tree,context,false)}
178
+ function lintPerseusItem(parsedPerseusItem){const questionLint=lintPerseusRenderer(parsedPerseusItem.question,"exercise");const hintLint=parsedPerseusItem.hints.map(hint=>lintPerseusRenderer(hint,"exercise"));return {question:questionLint,hints:hintLint}}function lintPerseusArticle(parsedPerseusArticle){const articleSections=Array.isArray(parsedPerseusArticle)?parsedPerseusArticle:[parsedPerseusArticle];return articleSections.map(section=>lintPerseusRenderer(section,"article"))}function lintPerseusRenderer(parsedPerseusRenderer,contentType){const tree=pureMarkdown.parse(parsedPerseusRenderer.content);const context={content:parsedPerseusRenderer.content,widgets:parsedPerseusRenderer.widgets,stack:[],contentType};return [...runLinter(tree,context,false)]}
179
179
 
180
180
  function pushContextStack(context,name){const stack=context.stack||[];return {...context,stack:stack.concat(name)}}
181
181