ms-vite-plugin 1.4.65 → 1.4.67

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/build.js CHANGED
@@ -1 +1 @@
1
- "use strict";var x=Object.create;var L=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var q=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty;var C=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of N(e))!z.call(t,r)&&r!==o&&L(t,r,{get:()=>e[r],enumerable:!(s=$(e,r))||s.enumerable});return t};var W=(t,e,o)=>(o=t!=null?x(q(t)):{},C(e||!t||!t.__esModule?L(o,"default",{value:t,enumerable:!0}):o,t));var A=exports&&exports.__createBinding||(Object.create?(function(t,e,o,s){s===void 0&&(s=o);var r=Object.getOwnPropertyDescriptor(e,o);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[o]}}),Object.defineProperty(t,s,r)}):(function(t,e,o,s){s===void 0&&(s=o),t[s]=e[o]})),K=exports&&exports.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),O=exports&&exports.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(o){var s=[];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(s[s.length]=r);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var o={};if(e!=null)for(var s=t(e),r=0;r<s.length;r++)s[r]!=="default"&&A(o,e,s[r]);return K(o,e),o}})(),M=exports&&exports.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildAll=void 0;const T=M(require("archiver")),E=require("child_process"),i=O(require("fs-extra")),D=O(require("os")),n=O(require("path")),B=require("./stopGuardPlugin"),G=require("./luaBundle"),F=require("./scriptProtect"),H=M(require("vite-plugin-bundle-obfuscator"));async function R(t,e){const o=(0,T.default)("zip",{zlib:{level:9}}),s=i.createWriteStream(e);return new Promise((r,c)=>{o.directory(t,!1).on("error",a=>c(a)).pipe(s),s.on("close",()=>r()),o.finalize()})}async function I(t,e){const o=[];async function s(r){const c=await i.readdir(r,{withFileTypes:!0});for(const a of c){const f=n.resolve(r,a.name);a.isDirectory()?await s(f):a.isFile()&&(/^main\.(js|ts)$/.test(a.name)||/_thread\.(js|ts)$/.test(a.name))&&o.push(n.relative(e,f))}}return await s(t),o}function Q(){const t=[{cmd:n.join(D.homedir(),".KuaiJSDevloper","python","python.exe"),args:["--version"]},{cmd:n.join(D.homedir(),".KuaiJSDevloper","python","bin","python"),args:["--version"]},{cmd:"python",args:["--version"]},{cmd:"python3",args:["--version"]},{cmd:"python3.14",args:["--version"]}];for(const e of t)try{const o=(0,E.spawnSync)(e.cmd,e.args,{encoding:"utf8"}),s=(o.stdout||o.stderr||"").trim();if(s&&/Python\s+3\.14(\.\d+)?/i.test(s))return{ok:!0,path:e.cmd,version:s}}catch{}return{ok:!1}}async function U(t){async function e(o){const s=await i.readdir(o,{withFileTypes:!0});for(const r of s){const c=n.join(o,r.name);if(r.isDirectory())if(r.name==="__pycache__"){const a=await i.readdir(c,{withFileTypes:!0});for(const f of a){const P=n.join(c,f.name);if(f.isFile()&&f.name.endsWith(".cpython-314.pyc")){const S=n.dirname(c),y=f.name.replace(/\.cpython-314\.pyc$/,".pyc"),j=n.join(S,y);await i.move(P,j,{overwrite:!0})}}try{await i.remove(c)}catch{}}else await e(c);else if(r.isFile())if(r.name.endsWith(".cpython-314.pyc")){const a=c.replace(".cpython-314.pyc",".pyc");await i.move(c,a,{overwrite:!0})}else r.name.endsWith(".py")&&await i.remove(c)}}await e(t)}const V=["Minify","Weak","Medium","Strong"];async function X(t){const e=n.join(t,"obfuscator.json");if(!await i.pathExists(e))return{enabled:!0,preset:"Medium",bundle:!0};try{const o=await i.readJSON(e),s=o?.enabled!==!1,r=o?.bundle!==!1,c=Y(o?.preset);return{enabled:s,preset:c,bundle:r}}catch(o){return console.error("\u274C \u65E0\u6CD5\u8BFB\u53D6 obfuscator.json"),console.error(o instanceof Error?o.message:String(o)),process.exit(1),{enabled:!0,preset:"Medium",bundle:!0}}}function Y(t){if(typeof t!="string")return"Medium";const e=V.find(o=>o.toLowerCase()===t.trim().toLowerCase());return e||(console.warn(`\u26A0\uFE0F obfuscator.json \u7684 preset \u65E0\u6548: ${t}\uFF0C\u5DF2\u6539\u7528 Medium`),"Medium")}function Z(t){return[n.join(t,"node_modules/@gamely/prometheus-cli/bin/cli.js"),n.join(t,"node_modules/ms-vite-plugin/node_modules/@gamely/prometheus-cli/bin/cli.js"),n.resolve(process.cwd(),"node_modules/@gamely/prometheus-cli/bin/cli.js")].find(o=>i.pathExistsSync(o))}const k=async(t=!0,e)=>{const o=n.join(e,"scripts"),s=await i.pathExists(n.join(o,"main.js"))||await i.pathExists(n.join(o,"main.ts")),r=await i.pathExists(n.join(o,"main.py")),c=await i.pathExists(n.join(o,"main.lua"));if(s){console.log("\u{1F680} \u5F00\u59CB\u6784\u5EFAJavaScript\u9879\u76EE...");const{build:l}=await import("vite"),u=n.join(e,"obfuscator.json");await i.pathExists(u)||(console.error("\u274C \u9519\u8BEF: \u5F53\u524D\u76EE\u5F55\u4E0D\u662F\u6709\u6548\u7684 \u5FEB\u70B9JS \u9879\u76EE"),console.error("\u8BF7\u786E\u4FDD\u76EE\u5F55\u5305\u542B\u4EE5\u4E0B\u6587\u4EF6:"),console.error(" - obfuscator.json"),process.exit(1));const w=await i.readJSON(u),b=w.scriptProtect===!0,{enabled:_,scriptProtect:m,...p}=w,d=n.join(e,t?"dist":"msbundle"),h=await I(o,o);await i.remove(d);const g=!t&&b?(0,F.createScriptProtectHelpers)():[];!t&&b&&console.log("\u{1F510} \u5DF2\u542F\u7528 JS \u539F\u751F\u4FDD\u62A4\uFF08scriptProtect=true\uFF0C\u9700\u8981\u652F\u6301 .kjst \u7684\u65B0\u7248 App\uFF09");for(const v of h)await l({root:e,build:{lib:{entry:{[n.basename(v,n.extname(v))]:`./scripts/${v}`},fileName:()=>v.replace(/\.ts$/,".js"),formats:["iife"],name:"KuaiJS"},outDir:t?"dist/scripts":"msbundle/scripts",emptyOutDir:!1,sourcemap:t,minify:!t,target:"safari15"},plugins:[(0,B.createStopGuardPlugin)(),...t?[]:[...b?[(0,F.createScriptProtectPlugin)(g)]:[],_?(0,H.default)({autoExcludeNodeModules:!0,threadPool:!0,options:{...p,target:"browser",debugProtection:!1,disableConsoleOutput:!1,domainLock:[],selfDefending:!1,renameGlobals:!1,renameProperties:!1,reservedNames:[...p.reservedNames||[],...g]}}):[]]]})}if(t)return;const a=n.join(e,"msbundle");if(await i.ensureDir(a),(r||c)&&await i.copy(n.join(e,"scripts"),n.join(a,"scripts")),r){const l=Q();if(l.ok){console.log(`\u2705 \u68C0\u6D4B\u5230 ${l.version} (${l.path})`);const u=(0,E.spawnSync)(l.path,["-m","compileall","scripts"],{encoding:"utf8",cwd:a});u.status===0?(console.log("\u2705 \u6210\u529F\u7F16\u8BD1\u6240\u6709 Python \u6587\u4EF6"),await U(n.join(a,"scripts"))):(console.error("\u274C \u7F16\u8BD1 Python \u6587\u4EF6\u5931\u8D25"),console.error(u.stderr),process.exit(1))}else console.warn("\u26A0\uFE0F \u672A\u68C0\u6D4B\u5230 Python 3.14\uFF0C\u8BF7\u786E\u4FDD\u5728\u76EE\u6807\u8FD0\u884C\u73AF\u5883\u5B89\u88C5 Python 3.14")}else if(c){const l=await X(e),u=n.join(a,"scripts");if(l.bundle?await(0,G.bundleLuaScripts)(u):console.log("\u2139\uFE0F \u5DF2\u5173\u95ED Lua \u5355\u6587\u4EF6\u5408\u5E76\uFF08obfuscator.json bundle=false\uFF09"),!l.enabled)console.log("\u2139\uFE0F \u5DF2\u5173\u95ED Lua \u6DF7\u6DC6\uFF08obfuscator.json enabled=false\uFF09");else{const w=[],b=async m=>{const p=await i.readdir(m,{withFileTypes:!0});for(const d of p){const h=n.join(m,d.name);d.isDirectory()?await b(h):d.isFile()&&d.name.endsWith(".lua")&&w.push(h)}};await b(u);const _=Z(e);_||(console.error("\u274C \u672A\u627E\u5230 @gamely/prometheus-cli\uFF0C\u65E0\u6CD5\u6DF7\u6DC6 Lua"),process.exit(1));for(const m of w){const p=n.relative(u,m);console.log(`\u{1F6E0}\uFE0F \u6DF7\u6DC6 Lua: ${p} (preset=${l.preset})`);const d=(0,E.spawnSync)(process.execPath,[_,p,"--preset",l.preset],{cwd:u,encoding:"utf8"});d.status!==0&&(console.error("\u274C \u6DF7\u6DC6 Lua \u5931\u8D25:",p),console.error(d.stderr||d.stdout||""),process.exit(1));const h=p.replace(/\.lua$/,".obfuscated.lua"),g=n.join(u,h);await i.pathExists(g)&&(await i.remove(m),await i.move(g,m,{overwrite:!0}))}console.log("\u2705 Lua \u6DF7\u6DC6\u5B8C\u6210")}}await i.copy(n.join(e,"res"),n.join(a,"res")),await i.copy(n.join(e,"ui"),n.join(a,"ui"));for(const l of["logo.jpg","logo.png"]){const u=n.join(e,l);await i.pathExists(u)&&await i.copy(u,n.join(a,l))}const f=n.join(e,"dist"),P=n.join(e,"package.json"),S=n.join(a,"package.json"),y=await i.readJSON(P);delete y.scripts,delete y.devDependencies,delete y.dependencies,await i.writeJSON(S,y,{spaces:2}),await i.emptyDir(f);const j=n.join(f,"ms.zip"),J=n.join(f,"ms.msbundle");await R(a,j),await i.rename(j,J),await i.remove(a)};exports.buildAll=k;
1
+ "use strict";var x=Object.create;var M=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var q=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty;var C=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of N(e))!z.call(t,r)&&r!==o&&M(t,r,{get:()=>e[r],enumerable:!(s=$(e,r))||s.enumerable});return t};var W=(t,e,o)=>(o=t!=null?x(q(t)):{},C(e||!t||!t.__esModule?M(o,"default",{value:t,enumerable:!0}):o,t));var K=exports&&exports.__createBinding||(Object.create?(function(t,e,o,s){s===void 0&&(s=o);var r=Object.getOwnPropertyDescriptor(e,o);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[o]}}),Object.defineProperty(t,s,r)}):(function(t,e,o,s){s===void 0&&(s=o),t[s]=e[o]})),A=exports&&exports.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),O=exports&&exports.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(o){var s=[];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(s[s.length]=r);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var o={};if(e!=null)for(var s=t(e),r=0;r<s.length;r++)s[r]!=="default"&&K(o,e,s[r]);return A(o,e),o}})(),D=exports&&exports.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildAll=void 0;const T=D(require("archiver")),E=require("child_process"),i=O(require("fs-extra")),F=O(require("os")),n=O(require("path")),B=require("./stopGuardPlugin"),G=require("./luaBundle"),L=require("./scriptProtect"),H=D(require("vite-plugin-bundle-obfuscator"));async function R(t,e){const o=(0,T.default)("zip",{zlib:{level:9}}),s=i.createWriteStream(e);return new Promise((r,c)=>{o.directory(t,!1).on("error",a=>c(a)).pipe(s),s.on("close",()=>r()),o.finalize()})}async function I(t,e){const o=[];async function s(r){const c=await i.readdir(r,{withFileTypes:!0});for(const a of c){const f=n.resolve(r,a.name);a.isDirectory()?await s(f):a.isFile()&&(/^main\.(js|ts)$/.test(a.name)||/_thread\.(js|ts)$/.test(a.name))&&o.push(n.relative(e,f))}}return await s(t),o}function Q(){const t=[{cmd:n.join(F.homedir(),".KuaiJSDevloper","python","python.exe"),args:["--version"]},{cmd:n.join(F.homedir(),".KuaiJSDevloper","python","bin","python"),args:["--version"]},{cmd:"python",args:["--version"]},{cmd:"python3",args:["--version"]},{cmd:"python3.14",args:["--version"]}];for(const e of t)try{const o=(0,E.spawnSync)(e.cmd,e.args,{encoding:"utf8"}),s=(o.stdout||o.stderr||"").trim();if(s&&/Python\s+3\.14(\.\d+)?/i.test(s))return{ok:!0,path:e.cmd,version:s}}catch{}return{ok:!1}}async function U(t){async function e(o){const s=await i.readdir(o,{withFileTypes:!0});for(const r of s){const c=n.join(o,r.name);if(r.isDirectory())if(r.name==="__pycache__"){const a=await i.readdir(c,{withFileTypes:!0});for(const f of a){const P=n.join(c,f.name);if(f.isFile()&&f.name.endsWith(".cpython-314.pyc")){const S=n.dirname(c),b=f.name.replace(/\.cpython-314\.pyc$/,".pyc"),j=n.join(S,b);await i.move(P,j,{overwrite:!0})}}try{await i.remove(c)}catch{}}else await e(c);else if(r.isFile())if(r.name.endsWith(".cpython-314.pyc")){const a=c.replace(".cpython-314.pyc",".pyc");await i.move(c,a,{overwrite:!0})}else r.name.endsWith(".py")&&await i.remove(c)}}await e(t)}const V=["Minify","Weak","Medium","Strong"];async function X(t){const e=n.join(t,"obfuscator.json");if(!await i.pathExists(e))return{enabled:!0,preset:"Medium",bundle:!0};try{const o=await i.readJSON(e),s=o?.enabled!==!1,r=o?.bundle!==!1,c=Y(o?.preset);return{enabled:s,preset:c,bundle:r}}catch(o){return console.error("\u274C \u65E0\u6CD5\u8BFB\u53D6 obfuscator.json"),console.error(o instanceof Error?o.message:String(o)),process.exit(1),{enabled:!0,preset:"Medium",bundle:!0}}}function Y(t){if(typeof t!="string")return"Medium";const e=V.find(o=>o.toLowerCase()===t.trim().toLowerCase());return e||(console.warn(`\u26A0\uFE0F obfuscator.json \u7684 preset \u65E0\u6548: ${t}\uFF0C\u5DF2\u6539\u7528 Medium`),"Medium")}function Z(t){return[n.join(t,"node_modules/@gamely/prometheus-cli/bin/cli.js"),n.join(t,"node_modules/ms-vite-plugin/node_modules/@gamely/prometheus-cli/bin/cli.js"),n.resolve(process.cwd(),"node_modules/@gamely/prometheus-cli/bin/cli.js")].find(o=>i.pathExistsSync(o))}const k=async(t=!0,e)=>{const o=n.join(e,"scripts"),s=await i.pathExists(n.join(o,"main.js"))||await i.pathExists(n.join(o,"main.ts")),r=await i.pathExists(n.join(o,"main.py")),c=await i.pathExists(n.join(o,"main.lua"));if(s){console.log("\u{1F680} \u5F00\u59CB\u6784\u5EFAJavaScript\u9879\u76EE...");const{build:l}=await import("vite"),u=n.join(e,"obfuscator.json");await i.pathExists(u)||(console.error("\u274C \u9519\u8BEF: \u5F53\u524D\u76EE\u5F55\u4E0D\u662F\u6709\u6548\u7684 \u5FEB\u70B9JS \u9879\u76EE"),console.error("\u8BF7\u786E\u4FDD\u76EE\u5F55\u5305\u542B\u4EE5\u4E0B\u6587\u4EF6:"),console.error(" - obfuscator.json"),process.exit(1));const g=await i.readJSON(u),m=g.scriptProtect===!0,{enabled:_,scriptProtect:y,...p}=g,d=n.join(e,t?"dist":"msbundle"),h=await I(o,o);await i.remove(d);const w=!t&&m?(0,L.createScriptProtectHelpers)():[];!t&&m&&console.log("\u{1F510} \u5DF2\u542F\u7528 JS \u539F\u751F\u4FDD\u62A4\uFF08scriptProtect=true\uFF09");for(const v of h)await l({root:e,build:{lib:{entry:{[n.basename(v,n.extname(v))]:`./scripts/${v}`},fileName:()=>v.replace(/\.ts$/,".js"),formats:["iife"],name:"KuaiJS"},outDir:t?"dist/scripts":"msbundle/scripts",emptyOutDir:!1,sourcemap:t,minify:!t,target:"safari15"},plugins:[(0,B.createStopGuardPlugin)(),...t?[]:[...m?[(0,L.createScriptProtectPlugin)(w)]:[],_?(0,H.default)({autoExcludeNodeModules:!0,threadPool:!0,options:{...p,target:"browser",debugProtection:!1,disableConsoleOutput:!1,domainLock:[],selfDefending:!1,renameGlobals:!1,renameProperties:!1,reservedNames:[...p.reservedNames||[],...w]}}):[],...m?[(0,L.createKjstEmbedPlugin)()]:[]]]})}if(t)return;const a=n.join(e,"msbundle");if(await i.ensureDir(a),(r||c)&&await i.copy(n.join(e,"scripts"),n.join(a,"scripts")),r){const l=Q();if(l.ok){console.log(`\u2705 \u68C0\u6D4B\u5230 ${l.version} (${l.path})`);const u=(0,E.spawnSync)(l.path,["-m","compileall","scripts"],{encoding:"utf8",cwd:a});u.status===0?(console.log("\u2705 \u6210\u529F\u7F16\u8BD1\u6240\u6709 Python \u6587\u4EF6"),await U(n.join(a,"scripts"))):(console.error("\u274C \u7F16\u8BD1 Python \u6587\u4EF6\u5931\u8D25"),console.error(u.stderr),process.exit(1))}else console.warn("\u26A0\uFE0F \u672A\u68C0\u6D4B\u5230 Python 3.14\uFF0C\u8BF7\u786E\u4FDD\u5728\u76EE\u6807\u8FD0\u884C\u73AF\u5883\u5B89\u88C5 Python 3.14")}else if(c){const l=await X(e),u=n.join(a,"scripts");if(l.bundle?await(0,G.bundleLuaScripts)(u):console.log("\u2139\uFE0F \u5DF2\u5173\u95ED Lua \u5355\u6587\u4EF6\u5408\u5E76\uFF08obfuscator.json bundle=false\uFF09"),!l.enabled)console.log("\u2139\uFE0F \u5DF2\u5173\u95ED Lua \u6DF7\u6DC6\uFF08obfuscator.json enabled=false\uFF09");else{const g=[],m=async y=>{const p=await i.readdir(y,{withFileTypes:!0});for(const d of p){const h=n.join(y,d.name);d.isDirectory()?await m(h):d.isFile()&&d.name.endsWith(".lua")&&g.push(h)}};await m(u);const _=Z(e);_||(console.error("\u274C \u672A\u627E\u5230 @gamely/prometheus-cli\uFF0C\u65E0\u6CD5\u6DF7\u6DC6 Lua"),process.exit(1));for(const y of g){const p=n.relative(u,y);console.log(`\u{1F6E0}\uFE0F \u6DF7\u6DC6 Lua: ${p} (preset=${l.preset})`);const d=(0,E.spawnSync)(process.execPath,[_,p,"--preset",l.preset],{cwd:u,encoding:"utf8"});d.status!==0&&(console.error("\u274C \u6DF7\u6DC6 Lua \u5931\u8D25:",p),console.error(d.stderr||d.stdout||""),process.exit(1));const h=p.replace(/\.lua$/,".obfuscated.lua"),w=n.join(u,h);await i.pathExists(w)&&(await i.remove(y),await i.move(w,y,{overwrite:!0}))}console.log("\u2705 Lua \u6DF7\u6DC6\u5B8C\u6210")}}await i.copy(n.join(e,"res"),n.join(a,"res")),await i.copy(n.join(e,"ui"),n.join(a,"ui"));for(const l of["logo.jpg","logo.png"]){const u=n.join(e,l);await i.pathExists(u)&&await i.copy(u,n.join(a,l))}const f=n.join(e,"dist"),P=n.join(e,"package.json"),S=n.join(a,"package.json"),b=await i.readJSON(P);delete b.scripts,delete b.devDependencies,delete b.dependencies,await i.writeJSON(S,b,{spaces:2}),await i.emptyDir(f);const j=n.join(f,"ms.zip"),J=n.join(f,"ms.msbundle");await R(a,j),await i.rename(j,J),await i.remove(a)};exports.buildAll=k;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addVararg=r;function c(t){t.vararg=!0,s(t.body.body)}function a(t){switch(t.type){case"FuncExpr":c(t);break;case"UnaryExpr":a(t.arg);break;case"BinaryExpr":a(t.left),a(t.right);break;case"TableExpr":for(const e of t.fields)e.kind==="index"&&a(e.key),a(e.value);break;case"IndexExpr":a(t.object),a(t.index);break;case"MemberExpr":a(t.object);break;case"CallExpr":a(t.callee);for(const e of t.args)a(e);break;case"MethodCallExpr":a(t.object);for(const e of t.args)a(e);break;case"ParenExpr":a(t.exp);break;default:break}}function s(t){for(const e of t)switch(e.type){case"DoStat":case"WhileStat":case"RepeatStat":case"ForNumStat":case"ForInStat":if(e.type==="WhileStat"&&a(e.cond),e.type==="RepeatStat"&&a(e.cond),e.type==="ForNumStat"&&(a(e.start),a(e.end),e.step&&a(e.step)),e.type==="ForInStat")for(const o of e.exps)a(o);s(e.body.body);break;case"IfStat":for(const o of e.clauses)a(o.cond),s(o.body.body);e.elseBody&&s(e.elseBody.body);break;case"FuncStat":case"LocalFuncStat":c(e.func);break;case"LocalStat":if(e.exps)for(const o of e.exps)a(o);break;case"AssignStat":for(const o of e.vars)a(o);for(const o of e.exps)a(o);break;case"CallStat":a(e.exp);break;case"ReturnStat":for(const o of e.exps)a(o);break;default:break}}function r(t){s(t.body)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addVararg=o;function c(t){t.vararg=!0,s(t.body.body)}function a(t){switch(t.type){case"FuncExpr":c(t);break;case"UnaryExpr":a(t.arg);break;case"BinaryExpr":a(t.left),a(t.right);break;case"TableExpr":for(const e of t.fields)e.kind==="index"&&a(e.key),a(e.value);break;case"IndexExpr":a(t.object),a(t.index);break;case"MemberExpr":a(t.object);break;case"CallExpr":a(t.callee);for(const e of t.args)a(e);break;case"MethodCallExpr":a(t.object);for(const e of t.args)a(e);break;case"ParenExpr":a(t.exp);break;default:break}}function s(t){for(const e of t)switch(e.type){case"DoStat":case"WhileStat":case"RepeatStat":case"ForNumStat":case"ForInStat":if(e.type==="WhileStat"&&a(e.cond),e.type==="RepeatStat"&&a(e.cond),e.type==="ForNumStat"&&(a(e.start),a(e.end),e.step&&a(e.step)),e.type==="ForInStat")for(const r of e.exps)a(r);s(e.body.body);break;case"IfStat":for(const r of e.clauses)a(r.cond),s(r.body.body);e.elseBody&&s(e.elseBody.body);break;case"FuncStat":case"LocalFuncStat":c(e.func);break;case"LocalStat":if(e.exps)for(const r of e.exps)a(r);break;case"AssignStat":for(const r of e.vars)a(r);for(const r of e.exps)a(r);break;case"CallStat":a(e.exp);break;case"ReturnStat":for(const r of e.exps)a(r);break;default:break}}function o(t){s(t.body)}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.flattenControlFlow=C;function m(e){return{type:"NumberLiteral",raw:String(e),value:e}}function y(e){return{type:"NameExpr",name:e}}function b(e,t){return{type:"AssignStat",vars:e.map(a=>y(a)),exps:t}}function u(e,t){return b([e.stateName],[typeof t=="number"?m(t):t])}function k(e,t,a){return{type:"BinaryExpr",op:"or",left:{type:"BinaryExpr",op:"and",left:y(e),right:m(t)},right:m(a)}}function E(e,t,a){return{type:"BinaryExpr",op:e,left:t,right:a}}function S(e){const t=`__t${e.nextTemp}`;return e.nextTemp+=1,e.temps.push(t),t}function x(e){const t=e.nextState;return e.nextState+=1,e.states.set(t,[]),t}function r(e,t,a){e.states.get(t).push(a)}function L(e,t){for(const a of e)if(a.type==="LocalStat")for(const n of a.names)t.push(n.name);else if(a.type==="LocalFuncStat")t.push(a.name);else if(a.type==="ForNumStat")t.push(a.name),L(a.body.body,t);else if(a.type==="ForInStat")t.push(...a.names),L(a.body.body,t);else if(a.type==="DoStat"||a.type==="WhileStat"||a.type==="RepeatStat")L(a.body.body,t);else if(a.type==="IfStat"){for(const n of a.clauses)L(n.body.body,t);a.elseBody&&L(a.elseBody.body,t)}}function h(e,t,a,n){if(e.length===0)return t;const p=e.map(()=>x(a));for(let s=0;s<e.length;s+=1){const c=e[s];c.type==="LabelStat"&&a.userLabels.set(c.name,p[s])}for(let s=0;s<e.length;s+=1){const c=s+1<e.length?p[s+1]:t;I(a,p[s],e[s],c,n)}return p[0]}function I(e,t,a,n,p){switch(a.type){case"EmptyStat":case"LabelStat":r(e,t,u(e,n));return;case"AssignStat":case"CallStat":case"FuncStat":r(e,t,a),r(e,t,u(e,n));return;case"LocalStat":a.exps&&a.exps.length>0&&r(e,t,b(a.names.map(s=>s.name),a.exps)),r(e,t,u(e,n));return;case"LocalFuncStat":r(e,t,b([a.name],[a.func])),r(e,t,u(e,n));return;case"ReturnStat":r(e,t,a);return;case"BreakStat":r(e,t,u(e,p));return;case"GotoStat":{const s=e.userLabels.get(a.name);if(s===void 0)throw new Error(`goto \u672A\u5B9A\u4E49\u6807\u7B7E ::${a.name}::`);r(e,t,u(e,s));return}case"DoStat":r(e,t,u(e,h(a.body.body,n,e,p)));return;case"IfStat":{const s=S(e);let c=t;for(let l=0;l<a.clauses.length;l+=1){const f=l===a.clauses.length-1,d=h(a.clauses[l].body.body,n,e,p);let i=n;f?a.elseBody&&(i=h(a.elseBody.body,n,e,p)):i=x(e),r(e,c,b([s],[a.clauses[l].cond])),r(e,c,u(e,k(s,d,i))),f||(c=i)}a.clauses.length===0&&r(e,t,u(e,n));return}case"WhileStat":{const s=S(e),c=h(a.body.body,t,e,n);r(e,t,b([s],[a.cond])),r(e,t,u(e,k(s,c,n)));return}case"RepeatStat":{const s=S(e),c=x(e),l=h(a.body.body,c,e,n);r(e,t,u(e,l)),r(e,c,b([s],[a.cond])),r(e,c,u(e,k(s,n,l)));return}case"ForNumStat":{const s=a.name,c=S(e),l=S(e),f=S(e),d=x(e),i=x(e),F=x(e),g=x(e),N=h(a.body.body,g,e,n);r(e,t,b([s],[a.start])),r(e,t,b([c],[a.end])),r(e,t,b([l],[a.step??m(1)])),r(e,t,u(e,d)),r(e,d,b([f],[E(">=",y(l),m(0))])),r(e,d,u(e,k(f,i,F))),r(e,i,b([f],[E("<=",y(s),y(c))])),r(e,i,u(e,k(f,N,n))),r(e,F,b([f],[E(">=",y(s),y(c))])),r(e,F,u(e,k(f,N,n))),r(e,g,b([s],[E("+",y(s),y(l))])),r(e,g,u(e,d));return}case"ForInStat":{const s=S(e),c=S(e),l=S(e),f=S(e),d=x(e),i=[b([l],[y(a.names[0])]),...a.body.body],F=h(i,d,e,n),g=a.exps.slice();for(;g.length<3;)g.push({type:"NilLiteral"});r(e,t,b([s,c,l],g.slice(0,3))),r(e,t,u(e,d)),r(e,d,{type:"AssignStat",vars:a.names.map(N=>y(N)),exps:[{type:"CallExpr",callee:y(s),args:[y(c),y(l)]}]}),r(e,d,b([f],[E("~=",y(a.names[0]),{type:"NilLiteral"})])),r(e,d,u(e,k(f,F,n)));return}default:r(e,t,u(e,n))}}function v(e,t){const a=e.slice();let n=t>>>0||1;for(let p=a.length-1;p>0;p-=1){n=Math.imul(n,1664525)+1013904223>>>0;const s=n%(p+1),c=a[p];a[p]=a[s],a[s]=c}return a}function w(e,t){if(e.length===0)return e;const a={states:new Map,temps:[],nextState:1,nextTemp:1,stateName:"__s",userLabels:new Map},n=[];L(e,n);const p=h(e,0,a,0),s=[...new Set([...n,...a.temps,a.stateName])],c=v([...a.states.keys()],t).map(l=>({cond:E("==",y(a.stateName),m(l)),body:{type:"Block",body:a.states.get(l)}}));return[{type:"LocalStat",names:s.map(l=>({name:l}))},b([a.stateName],[m(p)]),{type:"WhileStat",cond:E("~=",y(a.stateName),m(0)),body:{type:"Block",body:[{type:"IfStat",clauses:c}]}}]}function o(e,t){switch(e.type){case"FuncExpr":B(e.body.body,t),e.body.body=w(e.body.body,t);break;case"UnaryExpr":o(e.arg,t);break;case"BinaryExpr":o(e.left,t),o(e.right,t);break;case"TableExpr":for(const a of e.fields)a.kind==="index"&&o(a.key,t),o(a.value,t);break;case"IndexExpr":o(e.object,t),o(e.index,t);break;case"MemberExpr":o(e.object,t);break;case"CallExpr":o(e.callee,t);for(const a of e.args)o(a,t);break;case"MethodCallExpr":o(e.object,t);for(const a of e.args)o(a,t);break;case"ParenExpr":o(e.exp,t);break;default:break}}function B(e,t){for(const a of e)switch(a.type){case"DoStat":case"WhileStat":case"RepeatStat":case"ForNumStat":case"ForInStat":if((a.type==="WhileStat"||a.type==="RepeatStat")&&o(a.cond,t),a.type==="ForNumStat"&&(o(a.start,t),o(a.end,t),a.step&&o(a.step,t)),a.type==="ForInStat")for(const n of a.exps)o(n,t);B(a.body.body,t);break;case"IfStat":for(const n of a.clauses)o(n.cond,t),B(n.body.body,t);a.elseBody&&B(a.elseBody.body,t);break;case"FuncStat":case"LocalFuncStat":B(a.func.body.body,t),a.func.body.body=w(a.func.body.body,t);break;case"LocalStat":if(a.exps)for(const n of a.exps)o(n,t);break;case"AssignStat":for(const n of a.vars)o(n,t);for(const n of a.exps)o(n,t);break;case"CallStat":o(a.exp,t);break;case"ReturnStat":for(const n of a.exps)o(n,t);break;default:break}}function C(e,t){B(e.body,t),e.body=w(e.body,t)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.flattenControlFlow=C;function m(e){return{type:"NumberLiteral",raw:String(e),value:e}}function y(e){return{type:"NameExpr",name:e}}function b(e,t){return{type:"AssignStat",vars:e.map(a=>y(a)),exps:t}}function u(e,t){return b([e.stateName],[typeof t=="number"?m(t):t])}function k(e,t,a){return{type:"BinaryExpr",op:"or",left:{type:"BinaryExpr",op:"and",left:y(e),right:m(t)},right:m(a)}}function E(e,t,a){return{type:"BinaryExpr",op:e,left:t,right:a}}function S(e){const t=`__t${e.nextTemp}`;return e.nextTemp+=1,e.temps.push(t),t}function x(e){const t=e.nextState;return e.nextState+=1,e.states.set(t,[]),t}function r(e,t,a){e.states.get(t).push(a)}function L(e,t){for(const a of e)if(a.type==="LocalStat")for(const o of a.names)t.push(o.name);else if(a.type==="LocalFuncStat")t.push(a.name);else if(a.type==="ForNumStat")t.push(a.name),L(a.body.body,t);else if(a.type==="ForInStat")t.push(...a.names),L(a.body.body,t);else if(a.type==="DoStat"||a.type==="WhileStat"||a.type==="RepeatStat")L(a.body.body,t);else if(a.type==="IfStat"){for(const o of a.clauses)L(o.body.body,t);a.elseBody&&L(a.elseBody.body,t)}}function h(e,t,a,o){if(e.length===0)return t;const p=e.map(()=>x(a));for(let n=0;n<e.length;n+=1){const c=e[n];c.type==="LabelStat"&&a.userLabels.set(c.name,p[n])}for(let n=0;n<e.length;n+=1){const c=n+1<e.length?p[n+1]:t;I(a,p[n],e[n],c,o)}return p[0]}function I(e,t,a,o,p){switch(a.type){case"EmptyStat":case"LabelStat":r(e,t,u(e,o));return;case"AssignStat":case"CallStat":case"FuncStat":r(e,t,a),r(e,t,u(e,o));return;case"LocalStat":a.exps&&a.exps.length>0&&r(e,t,b(a.names.map(n=>n.name),a.exps)),r(e,t,u(e,o));return;case"LocalFuncStat":r(e,t,b([a.name],[a.func])),r(e,t,u(e,o));return;case"ReturnStat":r(e,t,a);return;case"BreakStat":r(e,t,u(e,p));return;case"GotoStat":{const n=e.userLabels.get(a.name);if(n===void 0)throw new Error(`goto \u672A\u5B9A\u4E49\u6807\u7B7E ::${a.name}::`);r(e,t,u(e,n));return}case"DoStat":r(e,t,u(e,h(a.body.body,o,e,p)));return;case"IfStat":{const n=S(e);let c=t;for(let l=0;l<a.clauses.length;l+=1){const f=l===a.clauses.length-1,d=h(a.clauses[l].body.body,o,e,p);let i=o;f?a.elseBody&&(i=h(a.elseBody.body,o,e,p)):i=x(e),r(e,c,b([n],[a.clauses[l].cond])),r(e,c,u(e,k(n,d,i))),f||(c=i)}a.clauses.length===0&&r(e,t,u(e,o));return}case"WhileStat":{const n=S(e),c=h(a.body.body,t,e,o);r(e,t,b([n],[a.cond])),r(e,t,u(e,k(n,c,o)));return}case"RepeatStat":{const n=S(e),c=x(e),l=h(a.body.body,c,e,o);r(e,t,u(e,l)),r(e,c,b([n],[a.cond])),r(e,c,u(e,k(n,o,l)));return}case"ForNumStat":{const n=a.name,c=S(e),l=S(e),f=S(e),d=x(e),i=x(e),F=x(e),g=x(e),N=h(a.body.body,g,e,o);r(e,t,b([n],[a.start])),r(e,t,b([c],[a.end])),r(e,t,b([l],[a.step??m(1)])),r(e,t,u(e,d)),r(e,d,b([f],[E(">=",y(l),m(0))])),r(e,d,u(e,k(f,i,F))),r(e,i,b([f],[E("<=",y(n),y(c))])),r(e,i,u(e,k(f,N,o))),r(e,F,b([f],[E(">=",y(n),y(c))])),r(e,F,u(e,k(f,N,o))),r(e,g,b([n],[E("+",y(n),y(l))])),r(e,g,u(e,d));return}case"ForInStat":{const n=S(e),c=S(e),l=S(e),f=S(e),d=x(e),i=[b([l],[y(a.names[0])]),...a.body.body],F=h(i,d,e,o),g=a.exps.slice();for(;g.length<3;)g.push({type:"NilLiteral"});r(e,t,b([n,c,l],g.slice(0,3))),r(e,t,u(e,d)),r(e,d,{type:"AssignStat",vars:a.names.map(N=>y(N)),exps:[{type:"CallExpr",callee:y(n),args:[y(c),y(l)]}]}),r(e,d,b([f],[E("~=",y(a.names[0]),{type:"NilLiteral"})])),r(e,d,u(e,k(f,F,o)));return}default:r(e,t,u(e,o))}}function v(e,t){const a=e.slice();let o=t>>>0||1;for(let p=a.length-1;p>0;p-=1){o=Math.imul(o,1664525)+1013904223>>>0;const n=o%(p+1),c=a[p];a[p]=a[n],a[n]=c}return a}function w(e,t){if(e.length===0)return e;const a={states:new Map,temps:[],nextState:1,nextTemp:1,stateName:"__s",userLabels:new Map},o=[];L(e,o);const p=h(e,0,a,0),n=[...new Set([...o,...a.temps,a.stateName])],c=v([...a.states.keys()],t).map(l=>({cond:E("==",y(a.stateName),m(l)),body:{type:"Block",body:a.states.get(l)}}));return[{type:"LocalStat",names:n.map(l=>({name:l}))},b([a.stateName],[m(p)]),{type:"WhileStat",cond:E("~=",y(a.stateName),m(0)),body:{type:"Block",body:[{type:"IfStat",clauses:c}]}}]}function s(e,t){switch(e.type){case"FuncExpr":B(e.body.body,t),e.body.body=w(e.body.body,t);break;case"UnaryExpr":s(e.arg,t);break;case"BinaryExpr":s(e.left,t),s(e.right,t);break;case"TableExpr":for(const a of e.fields)a.kind==="index"&&s(a.key,t),s(a.value,t);break;case"IndexExpr":s(e.object,t),s(e.index,t);break;case"MemberExpr":s(e.object,t);break;case"CallExpr":s(e.callee,t);for(const a of e.args)s(a,t);break;case"MethodCallExpr":s(e.object,t);for(const a of e.args)s(a,t);break;case"ParenExpr":s(e.exp,t);break;default:break}}function B(e,t){for(const a of e)switch(a.type){case"DoStat":case"WhileStat":case"RepeatStat":case"ForNumStat":case"ForInStat":if((a.type==="WhileStat"||a.type==="RepeatStat")&&s(a.cond,t),a.type==="ForNumStat"&&(s(a.start,t),s(a.end,t),a.step&&s(a.step,t)),a.type==="ForInStat")for(const o of a.exps)s(o,t);B(a.body.body,t);break;case"IfStat":for(const o of a.clauses)s(o.cond,t),B(o.body.body,t);a.elseBody&&B(a.elseBody.body,t);break;case"FuncStat":case"LocalFuncStat":B(a.func.body.body,t),a.func.body.body=w(a.func.body.body,t);break;case"LocalStat":if(a.exps)for(const o of a.exps)s(o,t);break;case"AssignStat":for(const o of a.vars)s(o,t);for(const o of a.exps)s(o,t);break;case"CallStat":s(a.exp,t);break;case"ReturnStat":for(const o of a.exps)s(o,t);break;default:break}}function C(e,t){B(e.body,t),e.body=w(e.body,t)}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.shortName=o,exports.renameLocals=c;const u=require("./reserved"),d=require("./scope"),l="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function o(a){let e=a,t="";do t=l[e%l.length]+t,e=Math.floor(e/l.length)-1;while(e>=0);return u.luaKeywords.has(t)?`_${t}`:t}function c(a){let e=0;const t=new Set;(0,d.collectAndRename)(a,(r,s)=>{if(r.newName!==r.original)return;let n=o(e);for(e+=1;s.has(n)||t.has(n)||u.luaKeywords.has(n);)n=o(e),e+=1;r.newName=n,t.add(n),s.add(n)})}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.shortName=o,exports.renameLocals=c;const u=require("./reserved"),d=require("./scope"),l="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function o(r){let e=r,t="";do t=l[e%l.length]+t,e=Math.floor(e/l.length)-1;while(e>=0);return u.luaKeywords.has(t)?`_${t}`:t}function c(r){let e=0;const t=new Set;(0,d.collectAndRename)(r,(a,s)=>{if(a.newName!==a.original)return;let n=o(e);for(e+=1;s.has(n)||t.has(n)||u.luaKeywords.has(n);)n=o(e),e+=1;a.newName=n,t.add(n),s.add(n)})}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveLocal=i,exports.collectAndRename=x;function i(e,c){let n=e;for(;n;){const a=n.locals.get(c);if(a)return a;n=n.parent}}function o(e){return{parent:e,locals:new Map}}function f(e,c){const n=e.locals.get(c);if(n)return n;const a={original:c,newName:c};return e.locals.set(c,a),a}function x(e,c){const n=new Set,a={locals:new Map};d(e.body,a,n,c)}function u(e,c,n,a){d(e.body,c,n,a)}function d(e,c,n,a){for(const s of e)b(s,c,n,a)}function m(e,c,n,a){const s=o(c),r=e.params.slice();for(let l=0;l<r.length;l+=1){const p=f(s,r[l]);a(p,n),e.params[l]=p.newName}u(e.body,s,n,a)}function b(e,c,n,a){switch(e.type){case"EmptyStat":case"BreakStat":case"GotoStat":case"LabelStat":return;case"DoStat":u(e.body,o(c),n,a);return;case"WhileStat":t(e.cond,c,n,a),u(e.body,o(c),n,a);return;case"RepeatStat":{const s=o(c);u(e.body,s,n,a),t(e.cond,s,n,a);return}case"IfStat":for(const s of e.clauses)t(s.cond,c,n,a),u(s.body,o(c),n,a);e.elseBody&&u(e.elseBody,o(c),n,a);return;case"ForNumStat":{t(e.start,c,n,a),t(e.end,c,n,a),e.step&&t(e.step,c,n,a);const s=o(c),r=f(s,e.name);a(r,n),e.name=r.newName,u(e.body,s,n,a);return}case"ForInStat":{for(const r of e.exps)t(r,c,n,a);const s=o(c);for(let r=0;r<e.names.length;r+=1){const l=f(s,e.names[r]);a(l,n),e.names[r]=l.newName}u(e.body,s,n,a);return}case"FuncStat":{const s=i(c,e.name.base);s&&(e.name.base=s.newName),m(e.func,c,n,a);return}case"LocalFuncStat":{const s=f(c,e.name);a(s,n),e.name=s.newName,m(e.func,c,n,a);return}case"LocalStat":if(e.exps)for(const s of e.exps)t(s,c,n,a);for(let s=0;s<e.names.length;s+=1){const r=f(c,e.names[s].name);a(r,n),e.names[s].name=r.newName}return;case"AssignStat":for(const s of e.vars)t(s,c,n,a);for(const s of e.exps)t(s,c,n,a);return;case"CallStat":t(e.exp,c,n,a);return;case"ReturnStat":for(const s of e.exps)t(s,c,n,a);return}}function t(e,c,n,a){switch(e.type){case"NilLiteral":case"BoolLiteral":case"NumberLiteral":case"StringLiteral":case"VarargExpr":return;case"NameExpr":{const s=i(c,e.name);s&&(e.name=s.newName);return}case"UnaryExpr":t(e.arg,c,n,a);return;case"BinaryExpr":t(e.left,c,n,a),t(e.right,c,n,a);return;case"FuncExpr":m(e,c,n,a);return;case"TableExpr":for(const s of e.fields)s.kind==="index"&&t(s.key,c,n,a),t(s.value,c,n,a);return;case"IndexExpr":t(e.object,c,n,a),t(e.index,c,n,a);return;case"MemberExpr":t(e.object,c,n,a);return;case"CallExpr":t(e.callee,c,n,a);for(const s of e.args)t(s,c,n,a);return;case"MethodCallExpr":t(e.object,c,n,a);for(const s of e.args)t(s,c,n,a);return;case"ParenExpr":t(e.exp,c,n,a);return}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveLocal=i,exports.collectAndRename=x;function i(e,o){let n=e;for(;n;){const a=n.locals.get(o);if(a)return a;n=n.parent}}function s(e){return{parent:e,locals:new Map}}function f(e,o){const n=e.locals.get(o);if(n)return n;const a={original:o,newName:o};return e.locals.set(o,a),a}function x(e,o){const n=new Set,a={locals:new Map};d(e.body,a,n,o)}function u(e,o,n,a){d(e.body,o,n,a)}function d(e,o,n,a){for(const c of e)b(c,o,n,a)}function m(e,o,n,a){const c=s(o),r=e.params.slice();for(let l=0;l<r.length;l+=1){const p=f(c,r[l]);a(p,n),e.params[l]=p.newName}u(e.body,c,n,a)}function b(e,o,n,a){switch(e.type){case"EmptyStat":case"BreakStat":case"GotoStat":case"LabelStat":return;case"DoStat":u(e.body,s(o),n,a);return;case"WhileStat":t(e.cond,o,n,a),u(e.body,s(o),n,a);return;case"RepeatStat":{const c=s(o);u(e.body,c,n,a),t(e.cond,c,n,a);return}case"IfStat":for(const c of e.clauses)t(c.cond,o,n,a),u(c.body,s(o),n,a);e.elseBody&&u(e.elseBody,s(o),n,a);return;case"ForNumStat":{t(e.start,o,n,a),t(e.end,o,n,a),e.step&&t(e.step,o,n,a);const c=s(o),r=f(c,e.name);a(r,n),e.name=r.newName,u(e.body,c,n,a);return}case"ForInStat":{for(const r of e.exps)t(r,o,n,a);const c=s(o);for(let r=0;r<e.names.length;r+=1){const l=f(c,e.names[r]);a(l,n),e.names[r]=l.newName}u(e.body,c,n,a);return}case"FuncStat":{const c=i(o,e.name.base);c&&(e.name.base=c.newName),m(e.func,o,n,a);return}case"LocalFuncStat":{const c=f(o,e.name);a(c,n),e.name=c.newName,m(e.func,o,n,a);return}case"LocalStat":if(e.exps)for(const c of e.exps)t(c,o,n,a);for(let c=0;c<e.names.length;c+=1){const r=f(o,e.names[c].name);a(r,n),e.names[c].name=r.newName}return;case"AssignStat":for(const c of e.vars)t(c,o,n,a);for(const c of e.exps)t(c,o,n,a);return;case"CallStat":t(e.exp,o,n,a);return;case"ReturnStat":for(const c of e.exps)t(c,o,n,a);return}}function t(e,o,n,a){switch(e.type){case"NilLiteral":case"BoolLiteral":case"NumberLiteral":case"StringLiteral":case"VarargExpr":return;case"NameExpr":{const c=i(o,e.name);c&&(e.name=c.newName);return}case"UnaryExpr":t(e.arg,o,n,a);return;case"BinaryExpr":t(e.left,o,n,a),t(e.right,o,n,a);return;case"FuncExpr":m(e,o,n,a);return;case"TableExpr":for(const c of e.fields)c.kind==="index"&&t(c.key,o,n,a),t(c.value,o,n,a);return;case"IndexExpr":t(e.object,o,n,a),t(e.index,o,n,a);return;case"MemberExpr":t(e.object,o,n,a);return;case"CallExpr":t(e.callee,o,n,a);for(const c of e.args)t(c,o,n,a);return;case"MethodCallExpr":t(e.object,o,n,a);for(const c of e.args)t(c,o,n,a);return;case"ParenExpr":t(e.exp,o,n,a);return}}
@@ -6,4 +6,5 @@ export type ScriptProtectResult = {
6
6
  };
7
7
  export declare function protectScript(code: string): ScriptProtectResult;
8
8
  export declare function createScriptProtectPlugin(reservedNames: string[]): Plugin;
9
+ export declare function createKjstEmbedPlugin(): Plugin;
9
10
  export declare function createScriptProtectHelpers(): string[];
@@ -1,4 +1,4 @@
1
- "use strict";var x=exports&&exports.__createBinding||(Object.create?(function(t,e,r,a){a===void 0&&(a=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,a,i)}):(function(t,e,r,a){a===void 0&&(a=r),t[a]=e[r]})),_=exports&&exports.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),O=exports&&exports.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var a=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(a[a.length]=i);return a},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var a=t(e),i=0;i<a.length;i++)a[i]!=="default"&&x(r,e,a[i]);return _(r,e),r}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.protectScript=L,exports.createScriptProtectPlugin=K,exports.createScriptProtectHelpers=I;const P=O(require("acorn")),h=O(require("crypto")),b=require("magic-string"),v="KJST",T=1,j=`-----BEGIN PUBLIC KEY-----
1
+ "use strict";var I=exports&&exports.__createBinding||(Object.create?(function(t,e,r,s){s===void 0&&(s=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,i)}):(function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]})),_=exports&&exports.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),E=exports&&exports.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(s[s.length]=i);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),i=0;i<s.length;i++)s[i]!=="default"&&I(r,e,s[i]);return _(r,e),r}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.protectScript=k,exports.createScriptProtectPlugin=F,exports.createKjstEmbedPlugin=R,exports.createScriptProtectHelpers=C;const A=E(require("acorn")),h=E(require("crypto")),w=require("magic-string"),x="KJST",T=1,v="/*KJST",D="*/",U=`-----BEGIN PUBLIC KEY-----
2
2
  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArzeAhUUEi4p0AxLYIVJK
3
3
  UcXyySzlh8G4TfH/quDXiKVlYlho9v2R1cQKQgFpVuDW8SDyc2iWUTNa8D/NX9LN
4
4
  IqcgQP0lyTxuFvevfGOlPt6NDl0nYNqaToK5AvN/F7AcchU9JrNSB4BNEeFRechm
@@ -6,4 +6,5 @@ GL9m5iUY0HCbiOIcbo+rx1GQaqTYCUuZIJttuARYCq0ggoOHjBqMHUKWwdNtJVoe
6
6
  PrdRaKzL3CB2gXazQzKUVrlK2vEDEaTvSLJoCym7SkSf/XmxjfEADlcwrqTb01ar
7
7
  U8mm9/g5R9q43B8NqlTpGOcs1OpAY5DZW1DDjXhyHBfrPCt82hhmeO/yI0N8vE2m
8
8
  MwIDAQAB
9
- -----END PUBLIC KEY-----`,C=new Set(["action","$\u52A8\u4F5C","appleOcr","$\u82F9\u679COCR","cloud","$\u4E91\u63A7","config","$\u914D\u7F6E","cryptoUtils","cv","device","$\u8BBE\u5907","dotOcr","$\u70B9\u9635OCR","file","$\u6587\u4EF6","hid","$HID","hotUpdate","$\u70ED\u66F4\u65B0","http","$HTTP","image","$\u56FE\u7247","ime","$\u8F93\u5165\u6CD5","logger","$\u65E5\u5FD7","media","$\u5A92\u4F53","mysql","$MySQL\u6570\u636E\u5E93","netCard","$\u5361\u5BC6","paddleOcr","$PaddleOCR","pip","$\u60AC\u6D6E\u7A97","sharedState","$\u5171\u4EAB\u72B6\u6001","system","$\u7CFB\u7EDF","thread","$\u7EBF\u7A0B","tomatoOcr","tts","$\u6587\u5B57\u8F6C\u8BED\u97F3","ui","$\u89C6\u56FE","utils","$\u5DE5\u5177","yolo","$YOLO","yoloCls","$YOLO\u5206\u7C7B"]),D=new Set(["createNodeSelector","$\u521B\u5EFA\u8282\u70B9\u9009\u62E9\u5668","exit","$\u9000\u51FA\u811A\u672C","getAgentFastMode","$\u83B7\u53D6Agent\u5FEB\u901F\u6A21\u5F0F","getAgentTouchMode","$\u83B7\u53D6Agent\u89E6\u63A7\u6A21\u5F0F","getContext","$\u83B7\u53D6\u4E0A\u4E0B\u6587","getCpuAutoThrottle","$\u83B7\u53D6CPU\u81EA\u52A8\u9650\u6D41","getCpuThrottleDelay","$\u83B7\u53D6CPU\u9650\u6D41\u5EF6\u8FDF","importClass","$\u5BFC\u5165\u7C7B","loadDex","$\u52A0\u8F7DDex","logd","$\u6253\u5370\u8C03\u8BD5\u65E5\u5FD7","loge","$\u6253\u5370\u9519\u8BEF\u65E5\u5FD7","logi","$\u6253\u5370\u4FE1\u606F\u65E5\u5FD7","logw","$\u6253\u5370\u8B66\u544A\u65E5\u5FD7","println","$\u6253\u5370","restartScript","$\u91CD\u542F\u811A\u672C","setAgentFastMode","$\u8BBE\u7F6EAgent\u5FEB\u901F\u6A21\u5F0F","setAgentTouchMode","$\u8BBE\u7F6EAgent\u89E6\u63A7\u6A21\u5F0F","setCpuAutoThrottle","$\u8BBE\u7F6ECPU\u81EA\u52A8\u9650\u6D41","setCpuThrottleDelay","$\u8BBE\u7F6ECPU\u9650\u6D41\u5EF6\u8FDF","setExceptionCallback","$\u8BBE\u7F6E\u5F02\u5E38\u505C\u6B62\u56DE\u8C03","setStopCallback","$\u8BBE\u7F6E\u505C\u6B62\u56DE\u8C03","sleep","$\u5EF6\u65F6","takeMeToFront","$APP\u5207\u5165\u524D\u53F0","time","$\u83B7\u53D6\u5F53\u524D\u65F6\u95F4\u6233"]);function m(t){for(;;){const e=`_0x${h.randomBytes(3).toString("hex")}`;if(!t.has(e))return t.add(e),e}}function y(t,e){const r=t.indexOf(e);return r>=0?r:(t.push(e),t.length-1)}function S(t,e){for(let r=e.length-1;r>=0;r-=1)if(e[r].has(t))return!0;return!1}function p(t,e){if(!(!t||typeof t!="object")){if(t.type==="Identifier"){e.add(t.name);return}if(t.type==="AssignmentPattern"){p(t.left,e);return}if(t.type==="RestElement"){p(t.argument,e);return}if(t.type==="ArrayPattern"){for(const r of t.elements||[])p(r,e);return}if(t.type==="ObjectPattern")for(const r of t.properties||[])r.type==="RestElement"?p(r.argument,e):p(r.value,e)}}function U(t){try{return P.parse(t,{allowHashBang:!0,ecmaVersion:"latest",sourceType:"script"})}catch{return P.parse(t,{allowHashBang:!0,ecmaVersion:"latest",sourceType:"module"})}}function A(t,e,r,a){if(!t||typeof t!="object"||typeof t.type!="string")return;let i=0;if(t.type==="FunctionDeclaration"||t.type==="FunctionExpression"||t.type==="ArrowFunctionExpression"){const c=new Set;t.id&&t.id.type==="Identifier"&&c.add(t.id.name);for(const o of t.params||[])p(o,c);r.push(c),i+=1}if(t.type==="CatchClause"&&t.param){const c=new Set;p(t.param,c),r.push(c),i+=1}if(t.type==="VariableDeclaration"){const c=r[r.length-1];for(const o of t.declarations||[])p(o.id,c)}a(t,e,r);for(const c of Object.keys(t)){if(c==="parent"||c==="start"||c==="end"||c==="loc"||c==="range"||c==="raw")continue;const o=t[c];if(Array.isArray(o))for(const u of o)A(u,t,r,a);else o&&typeof o=="object"&&A(o,t,r,a)}for(;i>0;)r.pop(),i-=1}function M(t,e){return!(!e||t.value!=="use strict"||e.type!=="ExpressionStatement")}function E(t){if(!(!t||t.type!=="MemberExpression")){if(t.computed)return t.property?.type==="Literal"&&typeof t.property.value=="string"?t.property.value:void 0;if(t.property?.type==="Identifier")return t.property.name}}function N(t){const e=Buffer.from(JSON.stringify(t),"utf8"),r=h.randomBytes(32),a=h.randomBytes(16),i=h.createCipheriv("aes-256-cbc",r,a),c=Buffer.concat([i.update(e),i.final()]),o=h.publicEncrypt({key:j,padding:h.constants.RSA_PKCS1_OAEP_PADDING,oaepHash:"sha256"},r),u=Buffer.alloc(7);u.write(v,0,4,"ascii"),u.writeUInt8(T,4),u.writeUInt16BE(o.length,5);const n=Buffer.alloc(4);return n.writeUInt32BE(c.length,0),Buffer.concat([u,o,a,n,c])}function L(t){const e=I();return B(t,e[0],e[1],e[2])}function K(t){const e=new Set(t),r=t[0],a=t[1],i=t[2];if(!r||!a||!i||e.size!==3)throw new Error("script protect helper names \u65E0\u6548");return{name:"kuaijs-script-protect",apply:"build",enforce:"post",renderChunk(c,o){const u=B(c,r,a,i);return this.emitFile({type:"asset",fileName:o.fileName.replace(/\.js$/i,".kjst"),source:u.table}),{code:u.code,map:null}}}}function I(){const t=new Set;return[m(t),m(t),m(t)]}function B(t,e,r,a){const i=[""],c=[],o=U(t);A(o,null,[new Set],(n,l,g)=>{if(n.type==="CallExpression"){const s=n.callee;if(s?.type==="Identifier"){if(D.has(s.name)&&!S(s.name,g)){const f=y(i,s.name);c.push({start:s.start,end:s.end,text:`${r}(0,${f})`})}return}if(s?.type==="MemberExpression"&&s.object?.type==="Identifier"){const f=s.object.name,$=E(s);if($&&C.has(f)&&!S(f,g)){const d=y(i,f),w=y(i,$);c.push({start:s.start,end:s.end,text:`${r}(${d},${w})`})}}return}if(n.type==="MemberExpression"){if(l?.type==="CallExpression"&&l.callee===n||l?.type==="AssignmentExpression"&&l.left===n||n.object?.type!=="Identifier")return;const s=n.object.name,f=E(n);if(f&&C.has(s)&&!S(s,g)){const $=y(i,s),d=y(i,f);c.push({start:n.start,end:n.end,text:`${a}(${$},${d})`})}return}if(n.type==="Literal"&&typeof n.value=="string"){if(M(n,l)||l?.type==="Property"&&l.key===n)return;const s=y(i,n.value);c.push({start:n.start,end:n.end,text:`${e}(${s})`});return}if(n.type==="Property"&&!n.method&&!n.computed&&n.key?.type==="Identifier"&&n.key.name!=="__proto__"){const s=y(i,n.key.name),f=`[${e}(${s})]`;n.shorthand?c.push({start:n.start,end:n.end,text:`${f}:${n.key.name}`}):c.push({start:n.key.start,end:n.key.end,text:f})}}),c.sort((n,l)=>l.start-n.start);const u=new b(t);for(const n of c)n.start===n.end?u.appendLeft(n.start,n.text):u.overwrite(n.start,n.end,n.text);return{code:u.toString(),table:N({s:e,n:r,p:a,v:i}),reservedNames:[e,r,a]}}
9
+ -----END PUBLIC KEY-----`,O=new Set(["action","$\u52A8\u4F5C","appleOcr","$\u82F9\u679COCR","cloud","$\u4E91\u63A7","config","$\u914D\u7F6E","cryptoUtils","cv","device","$\u8BBE\u5907","dotOcr","$\u70B9\u9635OCR","file","$\u6587\u4EF6","hid","$HID","hotUpdate","$\u70ED\u66F4\u65B0","http","$HTTP","image","$\u56FE\u7247","ime","$\u8F93\u5165\u6CD5","logger","$\u65E5\u5FD7","media","$\u5A92\u4F53","mysql","$MySQL\u6570\u636E\u5E93","netCard","$\u5361\u5BC6","paddleOcr","$PaddleOCR","pip","$\u60AC\u6D6E\u7A97","sharedState","$\u5171\u4EAB\u72B6\u6001","system","$\u7CFB\u7EDF","thread","$\u7EBF\u7A0B","tomatoOcr","tts","$\u6587\u5B57\u8F6C\u8BED\u97F3","ui","$\u89C6\u56FE","utils","$\u5DE5\u5177","yolo","$YOLO","yoloCls","$YOLO\u5206\u7C7B"]),M=new Set(["createNodeSelector","$\u521B\u5EFA\u8282\u70B9\u9009\u62E9\u5668","exit","$\u9000\u51FA\u811A\u672C","getAgentFastMode","$\u83B7\u53D6Agent\u5FEB\u901F\u6A21\u5F0F","getAgentTouchMode","$\u83B7\u53D6Agent\u89E6\u63A7\u6A21\u5F0F","getContext","$\u83B7\u53D6\u4E0A\u4E0B\u6587","getCpuAutoThrottle","$\u83B7\u53D6CPU\u81EA\u52A8\u9650\u6D41","getCpuThrottleDelay","$\u83B7\u53D6CPU\u9650\u6D41\u5EF6\u8FDF","importClass","$\u5BFC\u5165\u7C7B","loadDex","$\u52A0\u8F7DDex","logd","$\u6253\u5370\u8C03\u8BD5\u65E5\u5FD7","loge","$\u6253\u5370\u9519\u8BEF\u65E5\u5FD7","logi","$\u6253\u5370\u4FE1\u606F\u65E5\u5FD7","logw","$\u6253\u5370\u8B66\u544A\u65E5\u5FD7","println","$\u6253\u5370","restartScript","$\u91CD\u542F\u811A\u672C","setAgentFastMode","$\u8BBE\u7F6EAgent\u5FEB\u901F\u6A21\u5F0F","setAgentTouchMode","$\u8BBE\u7F6EAgent\u89E6\u63A7\u6A21\u5F0F","setCpuAutoThrottle","$\u8BBE\u7F6ECPU\u81EA\u52A8\u9650\u6D41","setCpuThrottleDelay","$\u8BBE\u7F6ECPU\u9650\u6D41\u5EF6\u8FDF","setExceptionCallback","$\u8BBE\u7F6E\u5F02\u5E38\u505C\u6B62\u56DE\u8C03","setStopCallback","$\u8BBE\u7F6E\u505C\u6B62\u56DE\u8C03","sleep","$\u5EF6\u65F6","takeMeToFront","$APP\u5207\u5165\u524D\u53F0","time","$\u83B7\u53D6\u5F53\u524D\u65F6\u95F4\u6233"]);function m(t){for(;;){const e=`_0x${h.randomBytes(3).toString("hex")}`;if(!t.has(e))return t.add(e),e}}function y(t,e){const r=t.indexOf(e);return r>=0?r:(t.push(e),t.length-1)}function S(t,e){for(let r=e.length-1;r>=0;r-=1)if(e[r].has(t))return!0;return!1}function p(t,e){if(!(!t||typeof t!="object")){if(t.type==="Identifier"){e.add(t.name);return}if(t.type==="AssignmentPattern"){p(t.left,e);return}if(t.type==="RestElement"){p(t.argument,e);return}if(t.type==="ArrayPattern"){for(const r of t.elements||[])p(r,e);return}if(t.type==="ObjectPattern")for(const r of t.properties||[])r.type==="RestElement"?p(r.argument,e):p(r.value,e)}}function N(t){try{return A.parse(t,{allowHashBang:!0,ecmaVersion:"latest",sourceType:"script"})}catch{return A.parse(t,{allowHashBang:!0,ecmaVersion:"latest",sourceType:"module"})}}function P(t,e,r,s){if(!t||typeof t!="object"||typeof t.type!="string")return;let i=0;if(t.type==="FunctionDeclaration"||t.type==="FunctionExpression"||t.type==="ArrowFunctionExpression"){const c=new Set;t.id&&t.id.type==="Identifier"&&c.add(t.id.name);for(const a of t.params||[])p(a,c);r.push(c),i+=1}if(t.type==="CatchClause"&&t.param){const c=new Set;p(t.param,c),r.push(c),i+=1}if(t.type==="VariableDeclaration"){const c=r[r.length-1];for(const a of t.declarations||[])p(a.id,c)}s(t,e,r);for(const c of Object.keys(t)){if(c==="parent"||c==="start"||c==="end"||c==="loc"||c==="range"||c==="raw")continue;const a=t[c];if(Array.isArray(a))for(const u of a)P(u,t,r,s);else a&&typeof a=="object"&&P(a,t,r,s)}for(;i>0;)r.pop(),i-=1}function K(t,e){return!(!e||t.value!=="use strict"||e.type!=="ExpressionStatement")}function B(t){if(!(!t||t.type!=="MemberExpression")){if(t.computed)return t.property?.type==="Literal"&&typeof t.property.value=="string"?t.property.value:void 0;if(t.property?.type==="Identifier")return t.property.name}}function L(t){const e=Buffer.from(JSON.stringify(t),"utf8"),r=h.randomBytes(32),s=h.randomBytes(16),i=h.createCipheriv("aes-256-cbc",r,s),c=Buffer.concat([i.update(e),i.final()]),a=h.publicEncrypt({key:U,padding:h.constants.RSA_PKCS1_PADDING},r),u=Buffer.alloc(7);u.write(x,0,4,"ascii"),u.writeUInt8(T,4),u.writeUInt16BE(a.length,5);const n=Buffer.alloc(4);return n.writeUInt32BE(c.length,0),Buffer.concat([u,a,s,n,c])}function k(t){const e=C();return b(t,e[0],e[1],e[2])}function F(t){const e=new Set(t),r=t[0],s=t[1],i=t[2];if(!r||!s||!i||e.size!==3)throw new Error("script protect helper names \u65E0\u6548");return{name:"kuaijs-script-protect",apply:"build",enforce:"post",renderChunk(c,a){const u=b(c,r,s,i);return this.emitFile({type:"asset",fileName:a.fileName.replace(/\.js$/i,".kjst"),source:u.table}),{code:u.code,map:null}}}}function R(){return{name:"kuaijs-kjst-embed",apply:"build",enforce:"post",generateBundle(t,e){for(const[r,s]of Object.entries(e)){if(s.type!=="asset"||!/\.kjst$/i.test(r))continue;const i=r.replace(/\.kjst$/i,".js"),c=e[i];if(!c||c.type!=="chunk")continue;const a=s.source,u=typeof a=="string"?Buffer.from(a,"binary"):Buffer.from(a);c.code=`${c.code}
10
+ ${v}${u.toString("base64")}${D}`,delete e[r]}}}}function C(){const t=new Set;return[m(t),m(t),m(t)]}function b(t,e,r,s){const i=[""],c=[],a=N(t);P(a,null,[new Set],(n,l,d)=>{if(n.type==="CallExpression"){const o=n.callee;if(o?.type==="Identifier"){if(M.has(o.name)&&!S(o.name,d)){const f=y(i,o.name);c.push({start:o.start,end:o.end,text:`${r}(0,${f})`})}return}if(o?.type==="MemberExpression"&&o.object?.type==="Identifier"){const f=o.object.name,$=B(o);if($&&O.has(f)&&!S(f,d)){const g=y(i,f),j=y(i,$);c.push({start:o.start,end:o.end,text:`${r}(${g},${j})`})}}return}if(n.type==="MemberExpression"){if(l?.type==="CallExpression"&&l.callee===n||l?.type==="AssignmentExpression"&&l.left===n||n.object?.type!=="Identifier")return;const o=n.object.name,f=B(n);if(f&&O.has(o)&&!S(o,d)){const $=y(i,o),g=y(i,f);c.push({start:n.start,end:n.end,text:`${s}(${$},${g})`})}return}if(n.type==="Literal"&&typeof n.value=="string"){if(K(n,l)||l?.type==="Property"&&l.key===n)return;const o=y(i,n.value);c.push({start:n.start,end:n.end,text:`${e}(${o})`});return}if(n.type==="Property"&&!n.method&&!n.computed&&n.key?.type==="Identifier"&&n.key.name!=="__proto__"){const o=y(i,n.key.name),f=`[${e}(${o})]`;n.shorthand?c.push({start:n.start,end:n.end,text:`${f}:${n.key.name}`}):c.push({start:n.key.start,end:n.key.end,text:f})}}),c.sort((n,l)=>l.start-n.start);const u=new w(t);for(const n of c)n.start===n.end?u.appendLeft(n.start,n.text):u.overwrite(n.start,n.end,n.text);return{code:u.toString(),table:L({s:e,n:r,p:s,v:i}),reservedNames:[e,r,s]}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ms-vite-plugin",
3
- "version": "1.4.65",
3
+ "version": "1.4.67",
4
4
  "type": "commonjs",
5
5
  "license": "MIT",
6
6
  "publishConfig": {