@meng-xi/vite-plugin 0.1.0 → 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.
- package/README-en.md +170 -49
- package/README.md +149 -29
- package/dist/common/format/index.cjs +1 -0
- package/dist/common/format/index.d.cts +156 -0
- package/dist/common/format/index.d.mts +156 -0
- package/dist/common/format/index.d.ts +156 -0
- package/dist/common/format/index.mjs +1 -0
- package/dist/common/fs/index.cjs +1 -0
- package/dist/common/fs/index.d.cts +150 -0
- package/dist/common/fs/index.d.mts +150 -0
- package/dist/common/fs/index.d.ts +150 -0
- package/dist/common/fs/index.mjs +1 -0
- package/dist/common/html/index.cjs +2 -0
- package/dist/common/html/index.d.cts +109 -0
- package/dist/common/html/index.d.mts +109 -0
- package/dist/common/html/index.d.ts +109 -0
- package/dist/common/html/index.mjs +2 -0
- package/dist/common/index.cjs +1 -1
- package/dist/common/index.d.cts +7 -417
- package/dist/common/index.d.mts +7 -417
- package/dist/common/index.d.ts +7 -417
- package/dist/common/index.mjs +1 -1
- package/dist/common/object/index.cjs +1 -0
- package/dist/common/object/index.d.cts +30 -0
- package/dist/common/object/index.d.mts +30 -0
- package/dist/common/object/index.d.ts +30 -0
- package/dist/common/object/index.mjs +1 -0
- package/dist/common/script/index.cjs +1 -0
- package/dist/common/script/index.d.cts +54 -0
- package/dist/common/script/index.d.mts +54 -0
- package/dist/common/script/index.d.ts +54 -0
- package/dist/common/script/index.mjs +1 -0
- package/dist/common/validation/index.cjs +1 -0
- package/dist/common/validation/index.d.cts +93 -0
- package/dist/common/validation/index.d.mts +93 -0
- package/dist/common/validation/index.d.ts +93 -0
- package/dist/common/validation/index.mjs +1 -0
- package/dist/factory/index.cjs +1 -1
- package/dist/factory/index.d.cts +1 -1
- package/dist/factory/index.d.mts +1 -1
- package/dist/factory/index.d.ts +1 -1
- package/dist/factory/index.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +15 -3
- package/dist/index.d.mts +15 -3
- package/dist/index.d.ts +15 -3
- package/dist/index.mjs +1 -1
- package/dist/plugins/buildProgress/index.cjs +2 -0
- package/dist/plugins/buildProgress/index.d.cts +187 -0
- package/dist/plugins/buildProgress/index.d.mts +187 -0
- package/dist/plugins/buildProgress/index.d.ts +187 -0
- package/dist/plugins/buildProgress/index.mjs +2 -0
- package/dist/plugins/copyFile/index.cjs +1 -0
- package/dist/plugins/copyFile/index.d.cts +78 -0
- package/dist/plugins/copyFile/index.d.mts +78 -0
- package/dist/plugins/copyFile/index.d.ts +78 -0
- package/dist/plugins/copyFile/index.mjs +1 -0
- package/dist/plugins/faviconManager/index.cjs +1 -0
- package/dist/plugins/faviconManager/index.d.cts +143 -0
- package/dist/plugins/faviconManager/index.d.mts +143 -0
- package/dist/plugins/faviconManager/index.d.ts +143 -0
- package/dist/plugins/faviconManager/index.mjs +1 -0
- package/dist/plugins/generateRouter/index.cjs +35 -0
- package/dist/plugins/generateRouter/index.d.cts +215 -0
- package/dist/plugins/generateRouter/index.d.mts +215 -0
- package/dist/plugins/generateRouter/index.d.ts +215 -0
- package/dist/plugins/generateRouter/index.mjs +35 -0
- package/dist/plugins/generateVersion/index.cjs +1 -0
- package/dist/plugins/generateVersion/index.d.cts +184 -0
- package/dist/plugins/generateVersion/index.d.mts +184 -0
- package/dist/plugins/generateVersion/index.d.ts +184 -0
- package/dist/plugins/generateVersion/index.mjs +1 -0
- package/dist/plugins/htmlInject/index.cjs +7 -0
- package/dist/plugins/htmlInject/index.d.cts +278 -0
- package/dist/plugins/htmlInject/index.d.mts +278 -0
- package/dist/plugins/htmlInject/index.d.ts +278 -0
- package/dist/plugins/htmlInject/index.mjs +7 -0
- package/dist/plugins/index.cjs +1 -1
- package/dist/plugins/index.d.cts +10 -1714
- package/dist/plugins/index.d.mts +10 -1714
- package/dist/plugins/index.d.ts +10 -1714
- package/dist/plugins/index.mjs +1 -1
- package/dist/plugins/loadingManager/index.cjs +487 -0
- package/dist/plugins/loadingManager/index.d.cts +769 -0
- package/dist/plugins/loadingManager/index.d.mts +769 -0
- package/dist/plugins/loadingManager/index.d.ts +769 -0
- package/dist/plugins/loadingManager/index.mjs +487 -0
- package/dist/plugins/versionUpdateChecker/index.cjs +185 -0
- package/dist/plugins/versionUpdateChecker/index.d.cts +200 -0
- package/dist/plugins/versionUpdateChecker/index.d.mts +200 -0
- package/dist/plugins/versionUpdateChecker/index.d.ts +200 -0
- package/dist/plugins/versionUpdateChecker/index.mjs +185 -0
- package/dist/shared/vite-plugin.Bcg6RW2N.cjs +3 -0
- package/dist/shared/{vite-plugin.CiHfwMiN.d.ts → vite-plugin.DRRlWY8P.d.cts} +50 -0
- package/dist/shared/{vite-plugin.CiHfwMiN.d.cts → vite-plugin.DRRlWY8P.d.mts} +50 -0
- package/dist/shared/{vite-plugin.CiHfwMiN.d.mts → vite-plugin.DRRlWY8P.d.ts} +50 -0
- package/dist/shared/{vite-plugin.B88RyRN8.mjs → vite-plugin.DcExl6jd.mjs} +2 -2
- package/package.json +72 -2
- package/dist/shared/vite-plugin.CawoITTT.cjs +0 -1
- package/dist/shared/vite-plugin.D6Law9Ke.mjs +0 -706
- package/dist/shared/vite-plugin.D8L9KzuW.cjs +0 -706
- package/dist/shared/vite-plugin.DFjf9wFM.mjs +0 -2
- package/dist/shared/vite-plugin.DSb6XzBn.mjs +0 -1
- package/dist/shared/vite-plugin.IGZeStMa.cjs +0 -3
- package/dist/shared/vite-plugin.Tab4qcIM.cjs +0 -2
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import i from"fs";import l from"path";import{randomBytes as v}from"crypto";const x=10;async function T(u){try{await i.promises.access(u,i.constants.F_OK)}catch(t){const e=t;throw e.code==="ENOENT"?new Error(`\u590D\u5236\u6587\u4EF6\u5931\u8D25\uFF1A\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728 - ${u}`):e.code==="EACCES"?new Error(`\u590D\u5236\u6587\u4EF6\u5931\u8D25\uFF1A\u6CA1\u6709\u6743\u9650\u8BBF\u95EE\u6E90\u6587\u4EF6 - ${u}`):new Error(`\u590D\u5236\u6587\u4EF6\u5931\u8D25\uFF1A\u68C0\u67E5\u6E90\u6587\u4EF6\u65F6\u51FA\u9519 - ${u}\uFF0C\u9519\u8BEF\uFF1A${e.message}`)}}async function w(u){try{await i.promises.mkdir(u,{recursive:!0})}catch(t){const e=t;throw e.code==="EACCES"?new Error(`\u590D\u5236\u6587\u4EF6\u5931\u8D25\uFF1A\u6CA1\u6709\u6743\u9650\u521B\u5EFA\u76EE\u6807\u76EE\u5F55 - ${u}`):new Error(`\u590D\u5236\u6587\u4EF6\u5931\u8D25\uFF1A\u521B\u5EFA\u76EE\u6807\u76EE\u5F55\u65F6\u51FA\u9519 - ${u}\uFF0C\u9519\u8BEF\uFF1A${e.message}`)}}async function D(u,t){const e=await i.promises.readdir(u,{withFileTypes:!0}),r=[];for(const a of e){const o=l.join(u,a.name),p=a.isFile(),c=a.isDirectory();if(r.push({path:o,isFile:p,isDirectory:c}),c&&t){const F=await D(o,t);r.push(...F)}}return r}async function d(u,t){try{const[e,r]=await Promise.all([i.promises.stat(u),i.promises.stat(t)]);return e.mtimeMs>r.mtimeMs||e.size!==r.size}catch{return!0}}async function h(u){try{return await i.promises.access(u,i.constants.F_OK),!0}catch{return!1}}async function $(u,t,e){const r=[];let a=0;async function o(){for(;a<u.length;){const c=a++,F=await t(u[c]);r[c]=F}}const p=Array(Math.min(e,u.length)).fill(null).map(()=>o());return await Promise.all(p),r}async function b(u,t,e){const r=Date.now(),{recursive:a,overwrite:o,incremental:p=!1,parallelLimit:c=x}=e;let F=0,B=0,A=0;if((await i.promises.stat(u)).isDirectory()){await w(t);const s=await D(u,a),g=s.filter(n=>n.isFile);A=s.filter(n=>n.isDirectory).length;const y=new Set;for(const n of g){const C=l.relative(u,n.path),m=l.dirname(l.join(t,C));y.add(m)}await Promise.all([...y].map(n=>w(n)));const k=await $(g,async n=>{const C=l.relative(u,n.path),m=l.join(t,C);let f=o;return f||(f=!await h(m)),p&&f&&(f=await d(n.path,m)),f?(await i.promises.copyFile(n.path,m),{copied:!0,skipped:!1}):{copied:!1,skipped:!0}},c);for(const n of k)n.copied&&F++,n.skipped&&B++}else{await w(l.dirname(t));let s=o;s||(s=!await h(t)),p&&s&&(s=await d(u,t)),s?(await i.promises.copyFile(u,t),F++):B++}const M=Date.now()-r;return{copiedFiles:F,skippedFiles:B,copiedDirs:A,executionTime:M}}async function Y(u,t){try{await i.promises.writeFile(u,t,"utf-8")}catch(e){const r=e;throw r.code==="EACCES"?new Error(`\u5199\u5165\u6587\u4EF6\u5931\u8D25\uFF1A\u6CA1\u6709\u6743\u9650\u5199\u5165\u6587\u4EF6 - ${u}`):new Error(`\u5199\u5165\u6587\u4EF6\u5931\u8D25\uFF1A\u5199\u5165\u6587\u4EF6\u65F6\u51FA\u9519 - ${u}\uFF0C\u9519\u8BEF\uFF1A${r.message}`)}}async function _(u){try{return await i.promises.readFile(u,"utf-8")}catch(t){const e=t;throw e.code==="EACCES"?new Error(`\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A\u6CA1\u6709\u6743\u9650\u8BFB\u53D6\u6587\u4EF6 - ${u}`):new Error(`\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A\u8BFB\u53D6\u6587\u4EF6\u65F6\u51FA\u9519 - ${u}\uFF0C\u9519\u8BEF\uFF1A${e.message}`)}}function P(u){try{return i.readFileSync(u,"utf-8")}catch(t){const e=t;throw e.code==="EACCES"?new Error(`\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A\u6CA1\u6709\u6743\u9650\u8BFB\u53D6\u6587\u4EF6 - ${u}`):new Error(`\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A\u8BFB\u53D6\u6587\u4EF6\u65F6\u51FA\u9519 - ${u}\uFF0C\u9519\u8BEF\uFF1A${e.message}`)}}function E(u,t=2){return u.toString().padStart(t,"0")}function H(u=8){const t=Math.max(1,Math.min(64,u));return v(Math.ceil(t/2)).toString("hex").slice(0,t)}function S(u=new Date){return{YYYY:u.getFullYear().toString(),YY:u.getFullYear().toString().slice(-2),MM:E(u.getMonth()+1),DD:E(u.getDate()),HH:E(u.getHours()),mm:E(u.getMinutes()),ss:E(u.getSeconds()),SSS:E(u.getMilliseconds(),3),timestamp:u.getTime().toString()}}function O(u,t){const e=S(u);let r=t;for(const[a,o]of Object.entries(e))r=r.replace(new RegExp(`\\{${a}\\}`,"g"),o);return r}function R(u,t){let e=u;for(const[r,a]of Object.entries(t))e=e.replace(new RegExp(`\\{${r}\\}`,"g"),a);return e}function z(u,t=/[/-]/){return u.replace(/^\/+/,"").split(t).filter(Boolean).map((e,r)=>r===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join("")}function L(u,t=/[/-]/){return u.replace(/^\/+/,"").split(t).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join("")}function N(u){return u.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"")}function j(u,t,e){const r=new RegExp(t,"i");return r.test(u)?{html:u.replace(r,`${e}
|
|
2
|
-
${t}`),injected:!0}:{html:u,injected:!1}}function J(u,t,e=["</head>","</body>","</html>"]){for(const r of e){const a=j(u,r,t);if(a.injected)return a}return{html:u+t,injected:!0}}function U(u,t="callback",e=""){return u?`function(${e}) { try { ${u} } catch(e) { console.error('[${t}] error:', e); } }`:`function(${e}) {}`}function K(u){return/<script\b/i.test(u)}function Z(u){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(u))throw new Error(`"${u}" \u4E0D\u662F\u5408\u6CD5\u7684 JavaScript \u6807\u8BC6\u7B26\uFF0C\u5FC5\u987B\u4EE5\u5B57\u6BCD\u3001\u4E0B\u5212\u7EBF\u6216\u7F8E\u5143\u7B26\u5F00\u5934\uFF0C\u4EC5\u5305\u542B\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u4E0B\u5212\u7EBF\u548C\u7F8E\u5143\u7B26`);if(["__proto__","constructor","prototype"].includes(u))throw new Error(`"${u}" \u662F JavaScript \u5185\u7F6E\u5C5E\u6027\uFF0C\u53EF\u80FD\u5BFC\u81F4\u539F\u578B\u6C61\u67D3\uFF0C\u8BF7\u4F7F\u7528\u5176\u4ED6\u540D\u79F0`)}export{K as a,b,T as c,O as d,w as e,h as f,H as g,S as h,j as i,J as j,R as k,_ as l,U as m,P as n,$ as o,E as p,N as q,D as r,d as s,z as t,L as u,Z as v,Y as w};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Logger as s}from"../logger/index.mjs";import"fs";import"path";import"crypto";import{V as u,d as g}from"./vite-plugin.B88RyRN8.mjs";class a{options;logger;validator;viteConfig=null;constructor(t,r){this.options=this.mergeOptions(t),this.logger=this.initLogger(r),this.validator=new u(this.options),this.safeExecuteSync(()=>this.validateOptions(),"\u63D2\u4EF6\u914D\u7F6E\u9A8C\u8BC1")}getDefaultOptions(){return{}}mergeOptions(t){const r={enabled:!0,verbose:!0,errorStrategy:"throw"},e=this.getDefaultOptions();return g(r,e,t)}initLogger(t){return s.create({name:this.getPluginName(),enabled:this.options.verbose,...t}).createPluginLogger(this.getPluginName())}validateOptions(){}getEnforce(){}onConfigResolved(t){this.viteConfig=t,this.logger.info("\u914D\u7F6E\u89E3\u6790\u5B8C\u6210\uFF0C\u63D2\u4EF6\u5DF2\u521D\u59CB\u5316")}destroy(){s.unregister(this.getPluginName())}safeExecuteSync(t,r){try{return t()}catch(e){return this.handleError(e,r)}}async safeExecute(t,r){try{return await t()}catch(e){return this.handleError(e,r)}}handleError(t,r){let e=`${r}: `;switch(t instanceof Error?e+=t.message:typeof t=="string"?e+=t:e+=String(t),this.options.errorStrategy){case"throw":throw this.logger.error(e),t;case"log":case"ignore":this.logger.error(e);return;default:throw this.logger.error(e),t}}toPlugin(){const t={name:this.getPluginName(),enforce:this.getEnforce()};this.addPluginHooks(t);const r=t.configResolved;t.configResolved=n=>{this.options.enabled&&(this.onConfigResolved(n),typeof r=="function"&&r(n))};const e=this,o=t.closeBundle;return t.closeBundle=function(){typeof o=="function"&&o.call(this),e.destroy()},t}}function l(i,t){return r=>{const e=t?t(r):r,o=new i(e),n=o.toPlugin();return n.pluginInstance=o,n}}export{a as B,l as c};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";function i(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.prototype.toString.call(e)==="[object Object]"}function deepMerge(...e){const u={};for(const r of e)if(r)for(const t in r){if(!Object.prototype.hasOwnProperty.call(r,t))continue;const n=r[t],s=u[t];n!==void 0&&(i(n)&&i(s)?u[t]=deepMerge(s,n):u[t]=n)}return u}class Validator{options;currentField=null;errors=[];constructor(u){this.options=u}field(u){const r=this;return r.currentField=u,r}required(){if(this.currentField===null)throw new Error("\u5FC5\u987B\u5148\u8C03\u7528 field() \u65B9\u6CD5\u6307\u5B9A\u8981\u9A8C\u8BC1\u7684\u5B57\u6BB5");return this.options[this.currentField]==null&&this.errors.push(`${String(this.currentField)} \u662F\u5FC5\u586B\u5B57\u6BB5`),this}string(){if(this.currentField===null)throw new Error("\u5FC5\u987B\u5148\u8C03\u7528 field() \u65B9\u6CD5\u6307\u5B9A\u8981\u9A8C\u8BC1\u7684\u5B57\u6BB5");const u=this.options[this.currentField];return u!=null&&typeof u!="string"&&this.errors.push(`${String(this.currentField)} \u5FC5\u987B\u662F\u5B57\u7B26\u4E32\u7C7B\u578B`),this}boolean(){if(this.currentField===null)throw new Error("\u5FC5\u987B\u5148\u8C03\u7528 field() \u65B9\u6CD5\u6307\u5B9A\u8981\u9A8C\u8BC1\u7684\u5B57\u6BB5");const u=this.options[this.currentField];return u!=null&&typeof u!="boolean"&&this.errors.push(`${String(this.currentField)} \u5FC5\u987B\u662F\u5E03\u5C14\u7C7B\u578B`),this}number(){if(this.currentField===null)throw new Error("\u5FC5\u987B\u5148\u8C03\u7528 field() \u65B9\u6CD5\u6307\u5B9A\u8981\u9A8C\u8BC1\u7684\u5B57\u6BB5");const u=this.options[this.currentField];return u!=null&&typeof u!="number"&&this.errors.push(`${String(this.currentField)} \u5FC5\u987B\u662F\u6570\u5B57\u7C7B\u578B`),this}array(){if(this.currentField===null)throw new Error("\u5FC5\u987B\u5148\u8C03\u7528 field() \u65B9\u6CD5\u6307\u5B9A\u8981\u9A8C\u8BC1\u7684\u5B57\u6BB5");const u=this.options[this.currentField];return u!=null&&!Array.isArray(u)&&this.errors.push(`${String(this.currentField)} \u5FC5\u987B\u662F\u6570\u7EC4\u7C7B\u578B`),this}object(){if(this.currentField===null)throw new Error("\u5FC5\u987B\u5148\u8C03\u7528 field() \u65B9\u6CD5\u6307\u5B9A\u8981\u9A8C\u8BC1\u7684\u5B57\u6BB5");const u=this.options[this.currentField];return u!=null&&typeof u!="object"&&!Array.isArray(u)&&this.errors.push(`${String(this.currentField)} \u5FC5\u987B\u662F\u5BF9\u8C61\u7C7B\u578B`),this}default(u){if(this.currentField===null)throw new Error("\u5FC5\u987B\u5148\u8C03\u7528 field() \u65B9\u6CD5\u6307\u5B9A\u8981\u9A8C\u8BC1\u7684\u5B57\u6BB5");return this.options[this.currentField]==null&&(this.options[this.currentField]=u),this}custom(u,r){if(this.currentField===null)throw new Error("\u5FC5\u987B\u5148\u8C03\u7528 field() \u65B9\u6CD5\u6307\u5B9A\u8981\u9A8C\u8BC1\u7684\u5B57\u6BB5");const t=this.options[this.currentField];return t!=null&&!u(t)&&this.errors.push(r),this}validate(){if(this.errors.length>0)throw new Error(`\u914D\u7F6E\u9A8C\u8BC1\u5931\u8D25\uFF1A
|
|
2
|
-
${this.errors.map(u=>`- ${u}`).join(`
|
|
3
|
-
`)}`);return this.options}}exports.Validator=Validator,exports.deepMerge=deepMerge;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const o=require("fs"),u=require("path"),crypto=require("crypto");function _interopDefaultCompat(t){return t&&typeof t=="object"&&"default"in t?t.default:t}const o__default=_interopDefaultCompat(o),u__default=_interopDefaultCompat(u),S=10;async function checkSourceExists(t){try{await o__default.promises.access(t,o__default.constants.F_OK)}catch(e){const r=e;throw r.code==="ENOENT"?new Error(`\u590D\u5236\u6587\u4EF6\u5931\u8D25\uFF1A\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728 - ${t}`):r.code==="EACCES"?new Error(`\u590D\u5236\u6587\u4EF6\u5931\u8D25\uFF1A\u6CA1\u6709\u6743\u9650\u8BBF\u95EE\u6E90\u6587\u4EF6 - ${t}`):new Error(`\u590D\u5236\u6587\u4EF6\u5931\u8D25\uFF1A\u68C0\u67E5\u6E90\u6587\u4EF6\u65F6\u51FA\u9519 - ${t}\uFF0C\u9519\u8BEF\uFF1A${r.message}`)}}async function ensureTargetDir(t){try{await o__default.promises.mkdir(t,{recursive:!0})}catch(e){const r=e;throw r.code==="EACCES"?new Error(`\u590D\u5236\u6587\u4EF6\u5931\u8D25\uFF1A\u6CA1\u6709\u6743\u9650\u521B\u5EFA\u76EE\u6807\u76EE\u5F55 - ${t}`):new Error(`\u590D\u5236\u6587\u4EF6\u5931\u8D25\uFF1A\u521B\u5EFA\u76EE\u6807\u76EE\u5F55\u65F6\u51FA\u9519 - ${t}\uFF0C\u9519\u8BEF\uFF1A${r.message}`)}}async function readDirRecursive(t,e){const r=await o__default.promises.readdir(t,{withFileTypes:!0}),n=[];for(const a of r){const s=u__default.join(t,a.name),p=a.isFile(),F=a.isDirectory();if(n.push({path:s,isFile:p,isDirectory:F}),F&&e){const l=await readDirRecursive(s,e);n.push(...l)}}return n}async function shouldUpdateFile(t,e){try{const[r,n]=await Promise.all([o__default.promises.stat(t),o__default.promises.stat(e)]);return r.mtimeMs>n.mtimeMs||r.size!==n.size}catch{return!0}}async function fileExists(t){try{return await o__default.promises.access(t,o__default.constants.F_OK),!0}catch{return!1}}async function runWithConcurrency(t,e,r){const n=[];let a=0;async function s(){for(;a<t.length;){const F=a++,l=await e(t[F]);n[F]=l}}const p=Array(Math.min(r,t.length)).fill(null).map(()=>s());return await Promise.all(p),n}async function copySourceToTarget(t,e,r){const n=Date.now(),{recursive:a,overwrite:s,incremental:p=!1,parallelLimit:F=S}=r;let l=0,f=0,d=0;if((await o__default.promises.stat(t)).isDirectory()){await ensureTargetDir(e);const c=await readDirRecursive(t,a),C=c.filter(i=>i.isFile);d=c.filter(i=>i.isDirectory).length;const D=new Set;for(const i of C){const w=u__default.relative(t,i.path),E=u__default.dirname(u__default.join(e,w));D.add(E)}await Promise.all([...D].map(i=>ensureTargetDir(i)));const h=await runWithConcurrency(C,async i=>{const w=u__default.relative(t,i.path),E=u__default.join(e,w);let m=s;return m||(m=!await fileExists(E)),p&&m&&(m=await shouldUpdateFile(i.path,E)),m?(await o__default.promises.copyFile(i.path,E),{copied:!0,skipped:!1}):{copied:!1,skipped:!0}},F);for(const i of h)i.copied&&l++,i.skipped&&f++}else{await ensureTargetDir(u__default.dirname(e));let c=s;c||(c=!await fileExists(e)),p&&c&&(c=await shouldUpdateFile(t,e)),c?(await o__default.promises.copyFile(t,e),l++):f++}const B=Date.now()-n;return{copiedFiles:l,skippedFiles:f,copiedDirs:d,executionTime:B}}async function writeFileContent(t,e){try{await o__default.promises.writeFile(t,e,"utf-8")}catch(r){const n=r;throw n.code==="EACCES"?new Error(`\u5199\u5165\u6587\u4EF6\u5931\u8D25\uFF1A\u6CA1\u6709\u6743\u9650\u5199\u5165\u6587\u4EF6 - ${t}`):new Error(`\u5199\u5165\u6587\u4EF6\u5931\u8D25\uFF1A\u5199\u5165\u6587\u4EF6\u65F6\u51FA\u9519 - ${t}\uFF0C\u9519\u8BEF\uFF1A${n.message}`)}}async function readFileContent(t){try{return await o__default.promises.readFile(t,"utf-8")}catch(e){const r=e;throw r.code==="EACCES"?new Error(`\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A\u6CA1\u6709\u6743\u9650\u8BFB\u53D6\u6587\u4EF6 - ${t}`):new Error(`\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A\u8BFB\u53D6\u6587\u4EF6\u65F6\u51FA\u9519 - ${t}\uFF0C\u9519\u8BEF\uFF1A${r.message}`)}}function readFileSync(t){try{return o__default.readFileSync(t,"utf-8")}catch(e){const r=e;throw r.code==="EACCES"?new Error(`\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A\u6CA1\u6709\u6743\u9650\u8BFB\u53D6\u6587\u4EF6 - ${t}`):new Error(`\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A\u8BFB\u53D6\u6587\u4EF6\u65F6\u51FA\u9519 - ${t}\uFF0C\u9519\u8BEF\uFF1A${r.message}`)}}function padNumber(t,e=2){return t.toString().padStart(e,"0")}function generateRandomHash(t=8){const e=Math.max(1,Math.min(64,t));return crypto.randomBytes(Math.ceil(e/2)).toString("hex").slice(0,e)}function getDateFormatParams(t=new Date){return{YYYY:t.getFullYear().toString(),YY:t.getFullYear().toString().slice(-2),MM:padNumber(t.getMonth()+1),DD:padNumber(t.getDate()),HH:padNumber(t.getHours()),mm:padNumber(t.getMinutes()),ss:padNumber(t.getSeconds()),SSS:padNumber(t.getMilliseconds(),3),timestamp:t.getTime().toString()}}function formatDate(t,e){const r=getDateFormatParams(t);let n=e;for(const[a,s]of Object.entries(r))n=n.replace(new RegExp(`\\{${a}\\}`,"g"),s);return n}function parseTemplate(t,e){let r=t;for(const[n,a]of Object.entries(e))r=r.replace(new RegExp(`\\{${n}\\}`,"g"),a);return r}function toCamelCase(t,e=/[/-]/){return t.replace(/^\/+/,"").split(e).filter(Boolean).map((r,n)=>n===0?r.toLowerCase():r.charAt(0).toUpperCase()+r.slice(1).toLowerCase()).join("")}function toPascalCase(t,e=/[/-]/){return t.replace(/^\/+/,"").split(e).filter(Boolean).map(r=>r.charAt(0).toUpperCase()+r.slice(1).toLowerCase()).join("")}function stripJsonComments(t){return t.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"")}function injectBeforeTag(t,e,r){const n=new RegExp(e,"i");return n.test(t)?{html:t.replace(n,`${r}
|
|
2
|
-
${e}`),injected:!0}:{html:t,injected:!1}}function injectHtmlByPriority(t,e,r=["</head>","</body>","</html>"]){for(const n of r){const a=injectBeforeTag(t,n,e);if(a.injected)return a}return{html:t+e,injected:!0}}function makeCallback(t,e="callback",r=""){return t?`function(${r}) { try { ${t} } catch(e) { console.error('[${e}] error:', e); } }`:`function(${r}) {}`}function containsScriptTag(t){return/<script\b/i.test(t)}function validateIdentifierName(t){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(t))throw new Error(`"${t}" \u4E0D\u662F\u5408\u6CD5\u7684 JavaScript \u6807\u8BC6\u7B26\uFF0C\u5FC5\u987B\u4EE5\u5B57\u6BCD\u3001\u4E0B\u5212\u7EBF\u6216\u7F8E\u5143\u7B26\u5F00\u5934\uFF0C\u4EC5\u5305\u542B\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u4E0B\u5212\u7EBF\u548C\u7F8E\u5143\u7B26`);if(["__proto__","constructor","prototype"].includes(t))throw new Error(`"${t}" \u662F JavaScript \u5185\u7F6E\u5C5E\u6027\uFF0C\u53EF\u80FD\u5BFC\u81F4\u539F\u578B\u6C61\u67D3\uFF0C\u8BF7\u4F7F\u7528\u5176\u4ED6\u540D\u79F0`)}exports.checkSourceExists=checkSourceExists,exports.containsScriptTag=containsScriptTag,exports.copySourceToTarget=copySourceToTarget,exports.ensureTargetDir=ensureTargetDir,exports.fileExists=fileExists,exports.formatDate=formatDate,exports.generateRandomHash=generateRandomHash,exports.getDateFormatParams=getDateFormatParams,exports.injectBeforeTag=injectBeforeTag,exports.injectHtmlByPriority=injectHtmlByPriority,exports.makeCallback=makeCallback,exports.padNumber=padNumber,exports.parseTemplate=parseTemplate,exports.readDirRecursive=readDirRecursive,exports.readFileContent=readFileContent,exports.readFileSync=readFileSync,exports.runWithConcurrency=runWithConcurrency,exports.shouldUpdateFile=shouldUpdateFile,exports.stripJsonComments=stripJsonComments,exports.toCamelCase=toCamelCase,exports.toPascalCase=toPascalCase,exports.validateIdentifierName=validateIdentifierName,exports.writeFileContent=writeFileContent;
|