@prostojs/rewrite 0.0.4 → 0.1.1

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 (37) hide show
  1. package/dist/index.cjs +3985 -0
  2. package/dist/{rewrite.d.ts → index.d.ts} +125 -147
  3. package/dist/index.mjs +3978 -0
  4. package/package.json +40 -43
  5. package/dist/rewrite.cjs.prod.js +0 -848
  6. package/dist/rewrite.esm-browser.prod.js +0 -1
  7. package/dist/rewrite.esm-bundler.js +0 -729
  8. package/dist/rewrite.global.prod.js +0 -1
  9. package/dist/src/__test__/html-parser.spec.d.ts +0 -2
  10. package/dist/src/__test__/html-parser.spec.d.ts.map +0 -1
  11. package/dist/src/__test__/mixed-parser.spec.d.ts +0 -2
  12. package/dist/src/__test__/mixed-parser.spec.d.ts.map +0 -1
  13. package/dist/src/__test__/rewriter.spec.d.ts +0 -2
  14. package/dist/src/__test__/rewriter.spec.d.ts.map +0 -1
  15. package/dist/src/__test__/strings.spec.d.ts +0 -2
  16. package/dist/src/__test__/strings.spec.d.ts.map +0 -1
  17. package/dist/src/__test__/text-parser.spec.d.ts +0 -2
  18. package/dist/src/__test__/text-parser.spec.d.ts.map +0 -1
  19. package/dist/src/constants.d.ts +0 -3
  20. package/dist/src/constants.d.ts.map +0 -1
  21. package/dist/src/files.d.ts +0 -8
  22. package/dist/src/files.d.ts.map +0 -1
  23. package/dist/src/index.d.ts +0 -18
  24. package/dist/src/index.d.ts.map +0 -1
  25. package/dist/src/rw-common.d.ts +0 -13
  26. package/dist/src/rw-common.d.ts.map +0 -1
  27. package/dist/src/rw-html-parser.d.ts +0 -17
  28. package/dist/src/rw-html-parser.d.ts.map +0 -1
  29. package/dist/src/rw-text-parser.d.ts +0 -31
  30. package/dist/src/rw-text-parser.d.ts.map +0 -1
  31. package/dist/src/string-expression.d.ts +0 -4
  32. package/dist/src/string-expression.d.ts.map +0 -1
  33. package/dist/src/types.d.ts +0 -96
  34. package/dist/src/types.d.ts.map +0 -1
  35. package/dist/src/utils.d.ts +0 -3
  36. package/dist/src/utils.d.ts.map +0 -1
  37. package/index.js +0 -2
@@ -1 +0,0 @@
1
- var Prostorewrite=function(e,t){"use strict";const o=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],n=["script","style"],r="Work with files supported only in NodeJS environment.";const i=new t.BasicNode({label:"",icon:'"',tokens:[/(?<quote>["'`])/,({customData:e})=>e.quote||""],backSlash:"-ignore"});function s(e){return new t.BasicNode({label:"string",icon:"≈",tokens:[e[0],e[1]],tokenOE:"omit-omit"}).addAbsorbs(i,"join").mapContent("expression","join-clear").onPop((({parserContext:t,customData:{expression:o}})=>{try{new Function(o)}catch(n){t.panic("Invalid expression: "+n.message,o.length+e[0].length+e[1].length)}})).initCustomData((()=>({expression:"",code:({customData:e},t=0)=>" ".repeat(2*t)+`__ += ${e.expression.trim()}\n`})))}function c(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function a(e){console.log("[rewrite] DEBUG: "+e+"")}function d(e){try{return new Function("__ctx__","process","window","global","require",e)}catch(t){throw console.error(t.message),console.error(t.stack),t}}function l(e){return e.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\n/g,"\\n").replace(/\$/g,"\\$")}function p(e){return`__ += \`${l(e)}\`\n`}function u(e,t=1){let o="",n="";function r(){o&&(n+=i+p(o),o="")}const i=" ".repeat(2*t);return e.content.forEach((e=>{if("string"==typeof e)o+=e;else{r();const o=e.getCustomData();o.openCode&&(n+=i+o.openCode),o.code&&(n+=o.code(e,t)),n+=u(e,t+(o.openCode?1:0)),o.closeCode&&(n+=i+o.closeCode)}})),r(),n}function g(e,t=!1){function o(o){const n=e.parse(o);return t&&a("Parsed tree view:\n"+n.toTree()),"let __ = ''\nlet __v = ''\nwith (__ctx__) {\n"+u(n)+"}\nreturn __"}function n(e){const t=o(e),n=d(t);return e=>{try{return n(e)}catch(o){m(o,t)}}}return{genRewriteCode:o,genRewriteFunction:n,printAsTree:function(t){return console.log(e.parse(t).toTree())},rewrite:(e,t)=>n(e)(t||{})}}function m(e,o){var n;const r=(null===(n=e.stack)||void 0===n?void 0:n.split("\n")[1])||"",i=/<anonymous>:(\d+):(\d+)\)/g.exec(r);if(i){const n=parseInt(i[1],10)-2,r=parseInt(i[2],10)-1,s=t.renderCodeFragment(o.split("\n"),{row:n,error:r});console.error(""+e.message+""),console.error(s)}throw e}const x={label:"Document Type",tokens:["<!DOCTYPE ",">"]},k={icon:"<![CDATA[",tokens:["<![CDATA[","]]>"]},h={label:"comment",icon:"“",tokens:["\x3c!--","--\x3e"]},f=new t.BasicNode({label:"value",icon:"=",tokens:[/=(?<quote>["'`])/,({customData:e})=>e.quote||""],backSlash:"-ignore",tokenOE:"omit-omit"}),w=new t.BasicNode({label:"value",icon:"=",tokens:[/=(?<content>\w+)/,/[\s\/\>]/],tokenOE:"omit-eject"}),v={label:"inner",tokens:[">","</"],tokenOE:"-eject"},b={};[{key:"for",exprRequired:!0,compatible:["if"],opening:!0,renderOpen:e=>`for (${e||""}) {\n`},{key:"if",exprRequired:!0,compatible:["for"],opening:!0,renderOpen:e=>`if (${e||""}) {\n`},{key:"else-if",closingKey:"IF",exprRequired:!0,opening:!1,overtakes:["if","else-if"],renderOpen:e=>`} else if (${e||""}) {\n`},{key:"else",closingKey:"IF",exprRequired:!1,opening:!1,overtakes:["if","else-if"],renderOpen:()=>"} else {\n"}].forEach((e=>b[e.key]=e));const $=(e,o=!1)=>{const n=new t.BasicNode({icon:"Html Mode"}),r=new t.BasicNode(x),i=new t.BasicNode(k),a=new t.BasicNode(h),d=new t.BasicNode(v),l=s(e.exprDelimeters),p=R(),u=R("↳",e.blockOperation,"block"),g=R("≈",e.attrExpression,"expr"),m=[u,g,p],f=new t.BasicNode({icon:"T",tokens:[new RegExp(`^\\s*(?:\x3c!--)${c(e.directive)}\\s*text-mode-on\\s*--\x3e\\s*$`,"m"),new RegExp(`^\\s*(?:\x3c!--)${c(e.directive)}\\s*text-mode-off\\s*--\x3e\\s*$`,"m")],tokenOE:"omit-omit"}).onMatch((({parserContext:e})=>e.jump())).onPop((({parserContext:e})=>e.jump())),w=new t.BasicNode({tokens:[/<(?<tag>[\w:\-\.]+)/,({customData:e})=>e.isVoid?/\/?>\s*/:e.isText?new RegExp(`\\s*<\\/(?<endTag>${c(e.tag)})\\s*>\\s*`):/(?:\/\>|\<\/(?<endTag>[\w:\-\.]+)\s*\>\s*)/]}).onMatch((({context:t,customData:n})=>{t.icon=n.tag,n.isVoid=e.voidTags.includes(n.tag),n.isText=e.textTags.includes(n.tag),n.isVoid&&t.clearRecognizes(d),n.isText&&!o&&t.addAbsorbs(d,"join")})).onBeforeChildParse(((e,{customData:t})=>{t.isText&&e.node===d&&(e.clearRecognizes(),o&&e.addRecognizes(f),e.removeOnAppendContent(),e.endsWith={token:new RegExp(`<\\/(?<endTag>${c(t.tag)})\\s*>`),eject:!0})})).onAfterChildParse(((e,{context:t})=>{e.node===d&&t.clearRecognizes()})).onPop((({customData:{isVoid:e,tag:t,endTag:o,operations:n},parserContext:r,customData:i,context:s})=>{var c,a;if(n&&n.length){n=n.sort((e=>"for"===e.key?-1:1)),i.operation=n[0].key;for(let e=0;e<n.length;e++){const{key:o,value:i}=n[e],c=b[o];if(c||r.panicBlock(`Unknown block operation "${o}".`,t.length,t.length+1),c.exprRequired&&!i&&r.panicBlock(`Expression required for "${o}" operation.`,t.length,t.length+1),!c.exprRequired&&i&&r.panicBlock(`Unexpected expression for "${o}" operation.`,t.length,t.length+1),c.overtakes){const e=s.getPrevNode(),o=s.getPrevContext();"string"==typeof e&&e.replace(/[\s\n\r]/g,"")&&r.panicBlock(`Unexpected block operation "${c.key}".`,t.length,t.length+1),o&&c.overtakes.includes(o.getCustomData().operation)||r.panicBlock(`Unexpected block operation "${c.key}".`,t.length,t.length+1);o.getCustomData().closeCode=""}}if(1===n.length){i.openCode=b[n[0].key].renderOpen(n[0].value),i.closeCode="}\n"}else if(2===n.length){const e=b[n[0].key],o=b[n[1].key];(null===(c=e.compatible)||void 0===c?void 0:c.includes(o.key))&&(null===(a=o.compatible)||void 0===a?void 0:a.includes(e.key))||r.panicBlock(`Block operation "${e.key}" is not compatible with "${o.key}".`,t.length,t.length+1),i.openCode=e.renderOpen(n[0].value)+o.renderOpen(n[1].value),i.closeCode="}\n}\n"}else r.panicBlock(`Too many block operations "${n.map((e=>e.key)).join(", ")}".`,t.length,t.length+1)}e||"string"!=typeof o||t===o||r.panicBlock(`Open tag <${t}> and closing tag </${o}> must be equal.`,t.length||0,o.length+1)})).addRecognizes(d,...m).addHoistChildren({node:u,as:"operations",asArray:!0,deep:1,mapRule:"customData"});return o&&(n.addRecognizes(f),d.addRecognizes(f),i.addRecognizes(f)),n.addRecognizes(r,a,w,l),d.addRecognizes(a,i,w,l),a.addRecognizes(l),i.addRecognizes(l),{rootNode:n,innerNode:d,commentNode:a,cDataNode:i,docTypeNode:r,stringExpressionNode:l,attrNode:p,attrBlockOperationNode:u,attrExprNode:g,tagNode:w,textDirectiveNode:f}};function R(e="=",o,n="plain"){const r={label:"",icon:e,tokens:[o?new RegExp(`${c(o)}(?<key>[\\w:\\-\\.]+)`):/(?<key>[\w:\-\.]+)/,/[\s\n\/>]/],tokenOE:"omit-eject"},i={'"':"&quot;","'":"&apos;"};const s=[w,f],a={plain:({customData:{key:e,value:t,quote:o}},n=0)=>" ".repeat(2*n)+p(e+function(e,t){let o="";return e&&(o+="=",o+=t?t+e.replace(new RegExp(t,"g"),i[t])+t:e),o}(t,o)),block:()=>"",expr:({customData:{key:e,value:t,quote:o}},n=0)=>{const r=o||"",s=" ".repeat(2*n);let c=s+"__v = "+(t||"''")+"\n";return c+=s+"if (typeof __v === 'boolean') {\n",c+=s+` if (__v) __ += \`${e}\`\n`,c+=s+"} else {\n",c+=s+` __ += \`${e}=${r}\${`+` (__v || '').replace(/${r}/g, '${i[r]}') }${r}\`\n`,c+=s+"}\n",c}};return new t.BasicNode(r).addPopsAfterNode(...s).addHoistChildren({node:f,as:"quote",deep:1,mapRule:"customData.quote"}).onPop((({parserContext:e,customData:{value:t,quote:o}})=>{if("expr"===n&&t)try{new Function(t)}catch(r){e.panic("Invalid expression: "+r.message,t.length+1)}"expr"!==n||o||e.panic("Expression must be quoted.",(null==t?void 0:t.length)||1)})).addAbsorbs(s,"join->value").initCustomData((()=>({key:"",code:a[n]})))}const y={};[{key:"FOR",exprRequired:!0,opening:!0,code:({customData:e})=>`for ${e.expression} {\n`},{key:"IF",exprRequired:!0,opening:!0,code:({customData:e})=>`if ${e.expression} {\n`},{key:"ELSEIF",closingKey:"IF",exprRequired:!0,opening:!1,overtakes:["IF","ELSEIF"],code:({customData:e})=>`} else if ${e.expression} {\n`},{key:"ELSE",closingKey:"IF",exprRequired:!1,opening:!1,overtakes:["IF","ELSEIF"],code:()=>"} else {\n"}].forEach((e=>y[e.key]=e));const E=(e,o=!1)=>{const n=new t.BasicNode({icon:"Text Mode"}),r=s(e.exprDelimeters),i=new t.BasicNode({label:"",icon:"↳",tokens:[new RegExp(`^\\s*(?:\\/\\/|#)${c(e.blockOperation)}\\s*(?<block>\\w+[^\\S\\r\\n]*\\w*)[^\\S\\r\\n]*(?<expression>\\(.*\\))?(?<rest>[^\\n]*)?$`,"m"),new RegExp(`^\\s*(?:\\/\\/|#)${c(e.blockOperation)}\\s*(?<endBlock>END[^\\S\\r\\n]*\\w*)[^\\S\\r\\n]*(?<endExpression>\\(.*\\))?(?<endRest>[^\\n]*)?$`,"m")],tokenOE:"omit-omit"}).onMatchStartToken((({customData:e,parserContext:t,matched:o})=>{const{block:n,expression:r,rest:i}=o.groups,s=y[n.replace(/[\s\n]/g,"")];return s||t.panic(`Unknown block operation "${n.trim()}".`,-o[0].indexOf(n)),s.exprRequired&&!r&&t.panic(`Expression required for "${n.trim()}" operation.`,-o[0].length),!s.exprRequired&&r&&t.panic(`Unexpected expression for "${n.trim()}" operation.`,-o[0].indexOf(r)),i&&t.panic(`Unexpected text "${i}" in "${n.trim()}" operation.`,-o[0].length+i.length),!!s.opening||(s.overtakes&&s.overtakes.includes(e.block)?(t.pop(),!0):void t.panic(e.block?`Unexpected block operation "${n.trim()}" after "${e.block}" block.`:`Unexpected block operation "${n.trim()}".`))})).onMatch((({customData:e,context:t,parserContext:o})=>{e.block=e.block.replace(/[\s\n]/g,""),e.descr=y[e.block],e.openCode=e.descr.code(t),o.jump()})).onPop((({parserContext:e})=>e.jump())).onMatchEndToken((({customData:e,matched:t,parserContext:o})=>{const{endBlock:n}=t.groups;return"END"+(e.descr.closingKey||e.descr.key)!==n.replace(/[\s\n]/g,"")&&o.panic("Wrong closing block instruction "+n,t[0].length),e.closeCode="}\n",!0})).popsAtEOFSource(!0),a=new t.BasicNode({icon:":",tokens:[new RegExp(`^\\s*(?:\\/\\/|#)${c(e.revealLine)}[^\\S\\r\\n]*`,"m"),/$/m],tokenOE:"omit-"}).addRecognizes(r).popsAtEOFSource(!0),d=new t.BasicNode({icon:":",tokens:[new RegExp(`^\\s*(?:\\/\\/|#)${c(e.directive)}\\s*ignore-next-line\\s*$`,"m"),/^[^\n]*$/m],tokenOE:"omit-"}).popsAtEOFSource(!0),l=new t.BasicNode({icon:"H",tokens:[new RegExp(`^\\s*(?:\\/\\/|#)${c(e.directive)}\\s*html-mode-on\\s*$`,"m"),new RegExp(`^\\s*(?:\\/\\/|#)${c(e.directive)}\\s*html-mode-off\\s*$`,"m")],tokenOE:"omit-omit"}).onMatch((({parserContext:e})=>e.jump())).onPop((({parserContext:e})=>e.jump()));return i.addRecognizes(d,i,a,r),n.addRecognizes(d,i,a,r),o&&(n.addRecognizes(l),i.addRecognizes(l)),{stringExpressionNode:r,revealNode:a,ignoreDirectiveNode:d,blockOperationNode:i,rootNode:n,htmlDirectiveNode:l}},N=["{{","}}"];return e.ProstoRewrite=class{constructor(e){var t,r;this.options={defaultMode:(null==e?void 0:e.defaultMode)||"auto",debug:(null==e?void 0:e.debug)||!1,htmlPattern:[],textPattern:[],html:{exprDelimeters:N,attrExpression:":",blockOperation:"v-",directive:"!@",voidTags:(null===(t=null==e?void 0:e.html)||void 0===t?void 0:t.voidTags)||o,textTags:(null===(r=null==e?void 0:e.html)||void 0===r?void 0:r.textTags)||n,...null==e?void 0:e.html},text:{exprDelimeters:N,blockOperation:"=",revealLine:":",directive:"!@",...null==e?void 0:e.text}}}get mixedRewriter(){const e=E(this.options.text,!0),t=$(this.options.html,!0);return e.htmlDirectiveNode.addRecognizes(...t.rootNode.recognizes),t.textDirectiveNode.addRecognizes(...e.rootNode.recognizes),{text:g(e.rootNode,this.options.debug),html:g(t.rootNode,this.options.debug)}}get textRewriter(){return((e,t=!1)=>g(E(e).rootNode,t))(this.options.text,this.options.debug)}get htmlRewriter(){return((e,t=!1)=>g($(e).rootNode,t))(this.options.html,this.options.debug)}async rewriteFile(e,t){const o=await async function(e){throw new Error(r)}(),n=this.determineMode(e.mode||this.options.defaultMode,e.input,o);let i=o;const s=this.mixedRewriter;return n?(this.debug("Parsing file in "+n+" mode. "+e.input),i=s[n].rewrite(o,t)):this.debug("File isn't recognized as text nor as html. "+e.input),e.output&&(n?(await async function(e,t){throw new Error(r)}(),this.debug("File has been rewritten in "+n+" mode. "+e.output)):(await async function(e,t){throw new Error(r)}(),this.debug("File rewriting was skipped. File copied. "+e.output))),i}async rewriteDir(e,t){}determineMode(e,t,o){if("text"===e)return"text";if("html"===e)return"html";if("auto"===e){const e=!!this.options.textPattern.find((e=>e.match(t))),n=!!this.options.htmlPattern.find((e=>e.match(t)));if(e&&n)return/^<!DOCTYPE\s/.test(o)||/^<\?xml\s/.test(o)?"html":"text";if(e)return"text";if(n)return"html"}}debug(e){this.options.debug&&a(e)}},e.genSafeFunc=d,e.getRewriter=g,e.getStringExpressionRewriter=function(e=["{{","}}"]){const o=s(e),n=new t.BasicNode({}).addRecognizes(o);function r(e){return"let __ = []\nwith (__ctx__) {\n"+n.parse(e).content.map((e=>`__.push(${"string"==typeof e?`\`${l(e)}\``:`${e.getCustomData().expression}`})`)).join("\n ")+"}\nreturn __.length === 1 ? __[0] : __.join('')"}function i(e){const t=r(e),o=d(t);return e=>{try{return o(e)}catch(n){m(n,t)}}}return{genRewriteCode:r,genRewriteFunction:i,printAsTree:function(e){return console.log(n.parse(e).toTree())},rewrite:(e,t)=>i(e)(t||{})}},e.pushString=p,e.renderCode=u,Object.defineProperty(e,"__esModule",{value:!0}),e}({},ProstoParser);
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=html-parser.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"html-parser.spec.d.ts","sourceRoot":"","sources":["../../../src/__test__/html-parser.spec.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=mixed-parser.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mixed-parser.spec.d.ts","sourceRoot":"","sources":["../../../src/__test__/mixed-parser.spec.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=rewriter.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rewriter.spec.d.ts","sourceRoot":"","sources":["../../../src/__test__/rewriter.spec.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=strings.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strings.spec.d.ts","sourceRoot":"","sources":["../../../src/__test__/strings.spec.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=text-parser.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-parser.spec.d.ts","sourceRoot":"","sources":["../../../src/__test__/text-parser.spec.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- export declare const htmlVoidTags: string[];
2
- export declare const htmlTextTags: string[];
3
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,UAiBxB,CAAA;AAED,eAAO,MAAM,YAAY,UAGxB,CAAA"}
@@ -1,8 +0,0 @@
1
- export declare function readDir(dirPath: string): Promise<AsyncGenerator<string, any, unknown>>;
2
- export declare function readFile(filePath: string): Promise<string>;
3
- export declare function writeFile(targetPath: string, data: string): Promise<void>;
4
- export declare function copyFile(filePath: string, targetPath: string): Promise<void>;
5
- export declare function pathResolve(p: string): Promise<string>;
6
- export declare function pathJoin(...parts: string[]): Promise<string>;
7
- export declare function pathDirname(p: string): Promise<string>;
8
- //# sourceMappingURL=files.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/files.ts"],"names":[],"mappings":"AACA,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,iDAkB5C;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBhE;AAED,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAU/D;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAWlE;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,MAAM,mBAM1C;AAED,wBAAsB,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,mBAMhD;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,MAAM,mBAM1C"}
@@ -1,18 +0,0 @@
1
- import { TProstoRewriteContext, TRewriteDirOptions, TRewriteFileOptions, TRewriteOptions, TRewriteOptionsPublic } from './types';
2
- export * from './types';
3
- export * from './rw-common';
4
- export declare class ProstoRewrite {
5
- protected options: TRewriteOptions;
6
- constructor(options?: TRewriteOptionsPublic);
7
- get mixedRewriter(): {
8
- text: import("./types").TProstoRewriter;
9
- html: import("./types").TProstoRewriter;
10
- };
11
- get textRewriter(): import("./types").TProstoRewriter;
12
- get htmlRewriter(): import("./types").TProstoRewriter;
13
- rewriteFile(opts: TRewriteFileOptions, context?: TProstoRewriteContext): Promise<string>;
14
- rewriteDir(opts: TRewriteDirOptions, context?: TProstoRewriteContext): Promise<void>;
15
- private determineMode;
16
- private debug;
17
- }
18
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAyB,kBAAkB,EACrE,mBAAmB,EAAgB,eAAe,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAG9F,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAI3B,qBAAa,aAAa;IACtB,SAAS,CAAC,OAAO,EAAE,eAAe,CAAA;gBAEtB,OAAO,CAAC,EAAE,qBAAqB;IA8B3C,IAAI,aAAa;;;MAShB;IAED,IAAI,YAAY,sCAEf;IAED,IAAI,YAAY,sCAEf;IAEY,WAAW,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAuBtE,UAAU,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,qBAAqB;IA6BjF,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,KAAK;CAIhB"}
@@ -1,13 +0,0 @@
1
- import { ProstoParserNode, ProstoParserNodeContext } from '@prostojs/parser';
2
- import { TProstoRewriter, TProstoRewriteContext } from './types';
3
- export declare function genSafeFunc(code: string): (context?: TProstoRewriteContext) => string;
4
- export declare function pushString(s: string): string;
5
- export declare function renderCode(context: ProstoParserNodeContext, level?: number): string;
6
- export declare function getRewriter(rootNode: ProstoParserNode, debug?: boolean): TProstoRewriter;
7
- export declare function getStringExpressionRewriter(interpolationDelimiters?: [string, string]): {
8
- genRewriteCode: (source: string) => string;
9
- genRewriteFunction: (source: string) => (context?: TProstoRewriteContext | undefined) => string;
10
- printAsTree: (source: string) => void;
11
- rewrite: (source: string, context?: TProstoRewriteContext | undefined) => string;
12
- };
13
- //# sourceMappingURL=rw-common.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rw-common.d.ts","sourceRoot":"","sources":["../../src/rw-common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,gBAAgB,EAAE,uBAAuB,EAAsB,MAAM,kBAAkB,CAAA;AAG3G,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAoB,MAAM,SAAS,CAAA;AAGlF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,qBAAqB,KAAK,MAAM,CAQrF;AAID,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,uBAAuB,EAAE,KAAK,SAAI,UA8BrE;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,UAAQ,GAAG,eAAe,CAkCtF;AAmBD,wBAAgB,2BAA2B,CAAC,uBAAuB,GAAE,CAAC,MAAM,EAAE,MAAM,CAAgB;6BAIvE,MAAM,KAAG,MAAM;iCAUf,MAAM;0BAWR,MAAM;sBAQP,MAAM;EAE/B"}
@@ -1,17 +0,0 @@
1
- import { BasicNode } from '@prostojs/parser';
2
- import { TAttrNodeCustomData, TRewriteHtmlOptions, TTagNodeCustomData } from './types';
3
- export declare const getHtmlParser: (opts: TRewriteHtmlOptions, recognizeTextDirective?: boolean) => {
4
- rootNode: BasicNode<any>;
5
- innerNode: BasicNode<any>;
6
- commentNode: BasicNode<any>;
7
- cDataNode: BasicNode<any>;
8
- docTypeNode: BasicNode<any>;
9
- stringExpressionNode: BasicNode<import("./types").TStringExpressionData>;
10
- attrNode: BasicNode<TAttrNodeCustomData>;
11
- attrBlockOperationNode: BasicNode<TAttrNodeCustomData>;
12
- attrExprNode: BasicNode<TAttrNodeCustomData>;
13
- tagNode: BasicNode<TTagNodeCustomData>;
14
- textDirectiveNode: BasicNode<any>;
15
- };
16
- export declare const getHtmlRewriter: (opts: TRewriteHtmlOptions, debug?: boolean) => import("./types").TProstoRewriter;
17
- //# sourceMappingURL=rw-html-parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rw-html-parser.d.ts","sourceRoot":"","sources":["../../src/rw-html-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8C,MAAM,kBAAkB,CAAA;AAGxF,OAAO,EAAE,mBAAmB,EAA8D,mBAAmB,EAAE,kBAAkB,EAAwB,MAAM,SAAS,CAAA;AAgFxK,eAAO,MAAM,aAAa,SAAU,mBAAmB;;;;;;;;;;;;CAwJtD,CAAA;AAED,eAAO,MAAM,eAAe,SAAU,mBAAmB,uDAExD,CAAA"}
@@ -1,31 +0,0 @@
1
- import { BasicNode } from '@prostojs/parser';
2
- import { TRewriteCodeFactory, TRewriteNodeType, TRewriteTextOptions } from './types';
3
- interface TTextBlockDescr {
4
- key: TTextBlockOperations;
5
- exprRequired?: boolean;
6
- opening?: boolean;
7
- overtakes?: string[];
8
- closingKey?: string;
9
- code: TRewriteCodeFactory<TTextBlockCustomData>;
10
- }
11
- declare type TTextBlockOperations = 'IF' | 'FOR' | 'ELSE' | 'ELSEIF';
12
- interface TTextBlockCustomData extends TRewriteNodeType<TTextBlockCustomData> {
13
- block: string;
14
- expression: string;
15
- rest: string;
16
- descr: TTextBlockDescr;
17
- endBlock: string;
18
- endExpression: string;
19
- endRest: string;
20
- }
21
- export declare const getTextParser: (opts: TRewriteTextOptions, recognizeHtmlDirective?: boolean) => {
22
- stringExpressionNode: BasicNode<import("./types").TStringExpressionData>;
23
- revealNode: BasicNode<any>;
24
- ignoreDirectiveNode: BasicNode<any>;
25
- blockOperationNode: BasicNode<TTextBlockCustomData>;
26
- rootNode: BasicNode<any>;
27
- htmlDirectiveNode: BasicNode<any>;
28
- };
29
- export declare const getTextRewriter: (opts: TRewriteTextOptions, debug?: boolean) => import("./types").TProstoRewriter;
30
- export {};
31
- //# sourceMappingURL=rw-text-parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rw-text-parser.d.ts","sourceRoot":"","sources":["../../src/rw-text-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAIpF,UAAU,eAAe;IACrB,GAAG,EAAE,oBAAoB,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAA;CAClD;AAED,aAAK,oBAAoB,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;AAoC5D,UAAU,oBAAqB,SAAQ,gBAAgB,CAAC,oBAAoB,CAAC;IACzE,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,eAAe,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,aAAa,SAAU,mBAAmB;;;;;;;CA2GtD,CAAA;AAED,eAAO,MAAM,eAAe,SAAU,mBAAmB,uDAExD,CAAA"}
@@ -1,4 +0,0 @@
1
- import { BasicNode } from '@prostojs/parser';
2
- import { TStringExpressionData } from './types';
3
- export declare function stringExpressionNodeFactory(interpolationDelimiters: [string, string]): BasicNode<TStringExpressionData>;
4
- //# sourceMappingURL=string-expression.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string-expression.d.ts","sourceRoot":"","sources":["../../src/string-expression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,kBAAkB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAmB,MAAM,SAAS,CAAA;AAUhE,wBAAgB,2BAA2B,CAAC,uBAAuB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,oCAoBpF"}
@@ -1,96 +0,0 @@
1
- import { ProstoParserNodeContext } from '@prostojs/parser';
2
- import { IMinimatch } from 'minimatch';
3
- export interface TRewriteNodeType<T extends {
4
- code: TRewriteCodeFactory<any>;
5
- } = {
6
- code: TRewriteCodeFactory<any>;
7
- }> {
8
- code: TRewriteCodeFactory<T>;
9
- openCode?: string;
10
- closeCode?: string;
11
- }
12
- export declare type TStringNodeData = {
13
- quote: string;
14
- };
15
- export interface TStringExpressionData extends TRewriteNodeType<TStringExpressionData> {
16
- expression: string;
17
- }
18
- export declare type TRewriteCodeFactory<T> = (context: ProstoParserNodeContext<T>, level?: number) => string;
19
- export interface TValueNodeCustomData {
20
- quote: string;
21
- }
22
- export interface TAttrNodeCustomData extends TRewriteNodeType<TAttrNodeCustomData> {
23
- key: string;
24
- value?: string;
25
- quote?: string;
26
- }
27
- export declare type THTMLBlockOperations = 'if' | 'for' | 'else' | 'else-if';
28
- export interface TTagNodeCustomData extends TRewriteNodeType<TTagNodeCustomData> {
29
- isText?: boolean;
30
- isVoid?: boolean;
31
- operation?: THTMLBlockOperations;
32
- tag: string;
33
- endTag?: string;
34
- operations?: TAttrNodeCustomData[];
35
- attrs?: TAttrNodeCustomData[];
36
- }
37
- export interface THTMLBlockDescr {
38
- key: THTMLBlockOperations;
39
- exprRequired?: boolean;
40
- compatible?: THTMLBlockOperations[];
41
- opening?: boolean;
42
- overtakes?: THTMLBlockOperations[];
43
- closingKey?: string;
44
- renderOpen: (v?: string) => string;
45
- }
46
- export interface TProstoRewriter {
47
- genRewriteCode: (source: string) => string;
48
- genRewriteFunction: (source: string) => (context?: TProstoRewriteContext) => string;
49
- printAsTree: (source: string) => void;
50
- rewrite: (source: string, context?: TProstoRewriteContext) => string;
51
- }
52
- export declare type TProstoRewriteContext = Record<string, unknown>;
53
- export interface TRewriteCommonOptions {
54
- exprDelimeters: [string, string];
55
- blockOperation: string;
56
- directive: string;
57
- }
58
- export interface TRewriteHtmlOptions extends TRewriteCommonOptions {
59
- attrExpression: string;
60
- voidTags: string[];
61
- textTags: string[];
62
- }
63
- export interface TRewriteTextOptions extends TRewriteCommonOptions {
64
- revealLine: string;
65
- }
66
- export interface TRewriteOptions {
67
- defaultMode: TRewriteMode;
68
- debug: boolean;
69
- htmlPattern: IMinimatch[];
70
- textPattern: IMinimatch[];
71
- html: TRewriteHtmlOptions;
72
- text: TRewriteTextOptions;
73
- }
74
- export declare type TRewriteMode = 'html' | 'text' | 'auto';
75
- export interface TRewriteOptionsPublic {
76
- defaultMode?: TRewriteMode;
77
- debug?: boolean;
78
- htmlPattern?: string[];
79
- textPattern?: string[];
80
- html?: Partial<TRewriteHtmlOptions>;
81
- text?: Partial<TRewriteTextOptions>;
82
- }
83
- export interface TRewriteFileOptions {
84
- input: string;
85
- output?: string;
86
- mode?: TRewriteMode;
87
- }
88
- export interface TRewriteDirOptions {
89
- baseDir: string;
90
- include?: string[];
91
- exclude?: string[];
92
- output?: string;
93
- mode?: TRewriteMode;
94
- onFile?: (path: string, output: string) => void;
95
- }
96
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function escapeRegex(s: string): string;
2
- export declare function debug(message: string): void;
3
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,QAEpC"}
package/index.js DELETED
@@ -1,2 +0,0 @@
1
- 'use strict'
2
- module.exports = require('./dist/rewrite.cjs.prod.js')