vite-plugin-husky-helper 0.0.4 → 0.0.6

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.
@@ -1,2 +1,2 @@
1
- d24a9aee128a8a8d45eccfe53a4b98c41b223dba2ca675c5378f22823d71cbcf37781bd4a87de8b9d07ead8bc5ec50e336aea38b238acf3cbd3d016921c6653f17967a453136c68f90cd836b46f4a094
2
- 6e8fcbb98fbcd086f6870f7c927b89ad
1
+ 598e8bf4835b91bac265c547106ddd4fbf0edcc3eb22e4035dc4b6c01234744c198f3d5a55ed2700009230a06712a836b4d12b51c0b9c70d15bfc2d73b41e429ae6c6d2449873119a6a0c8977b388f4a
2
+ ddab9797dbb1fb3d5e1625a5dd9666fd
@@ -1,2 +1,2 @@
1
- 6960739ab89c9f9bd9d0c3885baea02992913ae0f34b6087b568b0f9b7fdcdf043d3b304c505ce3dba3f402d6a27f6666e5fd631362b49ea169d89984360a75bdd2547276b5b3374531a30c563411392
2
- 4a3afb4af0a7272716e1cdb5c54ad732
1
+ 833102f104e1f586c472ada14b19cc6c340b38e0cd09037caf8ce75e2889e6d348880e30abb36ca7dcb85342812649d3f764979d02c32c943afc8bbd725925b6391ad7c9d2227aadf53554bfc766d598
2
+ 53638861b41570885f90e4e06de54c0a
@@ -1,2 +1,2 @@
1
- c87c6e2228183b64d5d89c06cd925a667023d6571879ee6c49a0a87db5767c0bcf99e50d071fac9580b8746fcb1f60e390b9166900270dac2f5ea3c515d3531226d98a2aeb4cbe7ae56f1fc1b7a6f31847de87ae726966a0986a013b05008d08c45ff62ece704caacff8959cb1bad84d3ee7e9c5347469613ddf985d3b5243efccd92d53a25e3ec82db62dbe45a0fbbc969e7ef1cba2c5ca136bd1c99a939b914177f02b37a97909062a87e6e85c1d88b1b5108972f5d118121210e22c369dc0a1ccaff874e7e117177aea558c71ab81335b614b4bd9601766b59ff0f8bad86daef2bbf80d8825be6791ae9ef561efd5ee5de02d8a96a98143d24b408340ac10a183512f0728714e681e610974dd25ace2dca846eb48a3a5996b30ad82040626fa68e9ba02d3f0396fd9da2fab195d4ba24895e4c4a0932a170f52f1b1a3a59c4eb982e6486e8c172f899ec4ed68067f73ce98c1a84aae73cb2a5bf8dd618987c384422214bf21520f4e92954e0c2bffe884e115a0886bdf48de96cff993a0c2c5c59c0733a3a12217a1591fb0da7c46235fff68a2f67ee087162be47523ad108c162e4fc026c43ff5b4e81fb5e27a140c5f269e9e857e7f1258567a7709022520978a1d3b1d9bf88f51d2529889374cfcc228d524169982174e144a3b9a00279cc43465922509782a0e1fee985ba06b0cfcfdbacb8d6a3217db1af884efefbc65f2e5f52702c8c72b9aff6995c8aca4d83b8836a49e24fef7aa1b706091c4aff9088e3af8380d3dbda433a56db207987c2b2c9e5d3ef741a7cb8df8254fce726add39995a04ddddc7b1d48e1237700ef6dea18912077fa71382aecb5e14348fe7aa27a5d95ede8f877b93c9a925b2d86e187e4f1b422a1ca4a7c08f9ce6c7cdeff7bf6a7f65445a532c2e6687827d434beb19828bd298562f474d4be04dde229f583bb1396ce8b325d82e2d12f75a194b7f42f2b705c5f34a9a95cd7fd67b7d0ec90ad66cff27a32762708fba7c4da1da289febfbd1306910ca07741b708bdf5694d83ac2aa1d0a4fa54e9ed14af9e3260be25e258ad3d5793615a3474c9be029a28a8bd8f3ae2f62b4a0fb1d019b755f49a903ab04850ada4c3401dbcbbf7dcc07fc4f20b1c619c44a74265bdad0e3e3fb71699a2b1f41d03b9a4d674d440687db1e2b6a048f21662501601df10b254f97b923841bf15b6883c33e5238b4b4c093254a786b1809993cd6670f5fc47ca6080094a30ecea4d5eb14ec6115b470762c02fe2b1e1e2e374e913fb39ade6dce8095bb7a591a6d484e858b9fe7f3c9ffeca2eede3415eaf8403426a142087b3d2ffefebc8f5e1ce233a7c0b6b217e78353a1d006307c17e19551e88bf0d6247d9592a4483e5aff511c4a242e8b72a8d15559fbacc472d38c71a46a814c8f8a17f356e8c43b079cf1ff7c157fe750ed9ba0ef266ea8be612191b52bdb4012f61ba073d56a1b6b08c25f716f70a37b250f207fc9173e04bcfd4968e3459b624836cac8a7afdc3caa5d21ef23039860b41eee0d5bcfbc2bd04b91d26237c13d3ed1a09617d0d1156467bb832046d5519acef6157d3a7b8befc1fbd455b257f23c9ece6d9caf2ce52b684cde496fa0176e5159dcd769991e4e50d16f5a991a2d1e2c326d73033fc6c9d3fd056e38b0ab9d38bd81f3580efbe6411f2c8d52dad0ffe6dc4cccc190d3ee1971e0675eb635cc7c958ddb0bdc06676e0552d7f32cc770ce57ccab097bba81b56352dca34eaf57caca4947bbae6556fc54e4565f68035ba0a038c76705a54d954cf7e0681673d44f20f3fcf36fa18ce13e861a96eed458
2
- e462fdac41843d3224ecac5d1051cc41
1
+ 985eab259ef7495b6f0f840a40bea0fc6923e6462c11db0f392f7344aed3f810852c5111fe53b2a064f424d0ab8ad420884f4db45c3720f7efc386a795875db85d619647ea04e9f6a862b475262d25d5691b781508322fa0260788a36e061d222eef0167cccd2e8973e295a0cc80c32fe30ad3a61f898565aee566a02a0b036e9faa57d8ac0bf03a96cbdf53dbd341df99fd7b04f20ab45081d6133747eefd989b0c2df6b1e867789d493be61383dccec9ad96651d1e8da7c66c0347db21cb15037b8b4eef7ad72a8cd3847c1111e6b21f5245c6d2be25d630e02ab7fa22ea22f36465d73c1bd65c854e100031b94c1363e72418c5291636776152004a8b04c7623940e72e7c5832822a7f77a285971e22fce4255f4fbd1f1739f612e7a46947ea8830553528708e3871d33a5d4fc8f0512760c285def353dc688be08b3f8f7970d59daa74c94e9fa19c682a97292c7cef39c1ccb32a0768390c04c8dbf2cd8982106cf61000b384993550dd37b1a045ae8470a96817d48e24a53c061c3d9e07c6bb4201abca7d59ea6bcbde0f3256d6c787798107fc8c32ee5ddceae78aa2d3f4d2c5e2bd010e33b1cf5d45f3fd95202ae5754868b296568a9bd282c4fa493cbd5ded8cc64ed6144a8944d306896d7e02f56f77b3c2a8993770bcbb1287e74a13c6da2d46004fd2c96f3f08f062a6e4b35e7759b1f2ddb174859d3402430131d23ee7b0a66b899da17a280a351070f46246b03a87c7bc4888d7d88400c1cac482a6d47dbdd4748ef60e11eca9d0b3e91ff72a1d3cfd28d539654dfb05e3941efd8506cdd31d71a7aa3236235fff70c5de2c84d3d36146337db4591d32f9c2fe21ff6d64c0bac8605109d652a8242d0b628ae62b388894f1b9fd6819ec144faa201f262d9c0676a7c63ef81489dfe5e214b1c94d6fa4bc678d24f8f240582e67492df458217105f31e43c1dad83b6e638e91dcfd43e51cea2539c8978d60338b3f3ac6a2cbc78752c76f6877daf386182c74fc1a2c968a0d6b8e70f99e3eccc5c5ed039ed144d41091920138bde5707eadc1429ecb903553abc8fefa7cbc88a19fc99da27393f82294c5d73bca185f58db406aef26d84dfc3de731230799acf7cb2cbe5f5a82fa1478a2aefe33bfba8d3e23bacaf584a62afdbbf1264aedd7219934786248fdb1640f2d2daafa0a9a745e1ed2f64ba396a71250d7b68a75b5b9df25126b9243963e09924eba0f1cea0510e0760d8a95c0009e255b246503fa5a222a9a844e6695182014925457bbb41f3dfce6199f09d39e18ff348dcdbde5fb292ebb79003f54d472bc14300bc4f975fb87e12b15658fb86d0db260a35e42fa3bf0230ebfd34cd5d478b0a3304569f98639e3d7b69d892105a319c817b1ec8ec25898d1ade2597a0eb84473a8c4945ecd569def5cc0ec9b6b60a70f849bf44e3fa9036d953b7ce7a134045c40f5dcc44b019e9eaff4824e263737fb9ff87a51b855691f89308b30e063f697477422ebe060e442f870650a354d31f278b8c050869ae56944a6a4f558b07a99266ff17507b601663e6d7b16c2396ccedf03d9e414e4662c9c572b9ec308e9f439e2d4897688b5194993118734be9213705bdff6622cacc8915f70bbcc2e77c28382202e90de44951c3407943f25edc7150c660fde2df3b8b1b5f781b826ad9c921b0921a4d723e83a115f319da9d4aa9d634a9c3321e6bbae5d105c41eb804bada192efca1a0adb2913b57ecd7c90dc640c55fe186a1177e3cb697d07e93e7257e54393244f54e4bbfc07de29dcd35a5728440049f687b2218e7ea5a3c16403e0fc80bd
2
+ b9e2a503bb90e8f03b89f920eee04cc8
@@ -1,2 +1,2 @@
1
- 40eb7e3beadcabef0a888a35994408f8bceab8fa72de227c5474cdecd224cb249582a8eb7681d98487851e6961bf2f68bf211264caea1dde91d6f5f87d87283176509954524ceb01ff1b9bb41b05db84ad1e30779ebdb7f90788281e01035103d6d5ea6715cd655f2623755009f0d75043c2eaccbf6ac629225d438c4065c1c52215092cca0a93f5b1d556d53e9b3d2c0e8678467dca4ab6e0a8b889f6ecbf144b380a8bdce051c4c2b4811e818689d218c0aba4f0a86e37aaad77e54b408bf98d122906ee5defc19167b5ce7d785b36abc659fb6dc3652ffea60b53aa4038941ffe693ff7a73cf9eeb184bf1fd14468c1dc68ddaa69f8204f63aac36fcf25202a5122aa98d8c5092ce3b1d817f1a6a8ff4d56117a4b8d79297aa78330a08a53f476b96f5074c7572adfd4e721a966c10621147d5d851fceabe9736784838a89a03a7ab64ae2c780b9e28038bc5397ce0ebdf7940be52ba07da95f59522bd6ea57d2a86fcdfceb05288edb40a19a79483b3172e0ed0fd4a593e1d2fe763dcd5ebd996b78e1a84a41de82e52fc8b04c0dd5ae3a8063a560b5fbfc7ecfabc695d8875c37f77a0b2f3dbe83e2aa05b4e848f4dff20ec806f62412902101d872f5aa977799d59c14822720dd60a92c9cc214c2a8dbb88211dca7b7d56c4ffd1c3966b6d1cbba31ea2e3f6d50c40e3b97a29e7a5bb10520c9ec47c1e22d0504d69b912a16af47fa3fa92ab3e5f4e07bf20e76f9634419c4d65ab59dda065a1b4abcc6aa8ef3c6c0cd9ef49e6b869d77bd61dbc047dc50280abc3ca5a93ff5fa2153739720b27cea979a75a70500e94622ca7d94dabde732ae5d13aebfaaa5af512f155e154456fc4eece92a3a394b9780a963a827159e0bee45dfb76dedebb91ce9a046e46b818c7a47e11c6d16f083da01e1e978dde40b3a64b824b2e65e96d64c776e49a972dce4c60013809678d544508390b34a54a681055ccd194b385f3f912e316e2bfb801807b5ba1eaafac1a0229024863b02049322909481a6f9bfc64fa9819247dd6103c00ae9b6a4f5eeacf39fd463c1741572361ded87837f85232d0f4f97b5947b63a7272f7068b509b08e2313a6e4137a768e501a5f5579c457168b489af71bfa5d1cb813df1ca28de96e48c9150f2f868d610c6b53d82f79f58f757b9efe209ad44964b3feee4c0468b4455db8c2c6dde282d5a4ed81199d173b5bfcebcf0fc6cc9dc2e84c983fdc8c79dd0f7e80ba4b0e0e1c3c91a46ed711f76bb6d5aa59062867780cb3dc2756e5c86ebb9bcd72dfad4d6bc14e2e694cf4c363e91a69f21e6d2cbde5edc844c08973b43e94e7c79cf84612afb1716365cfb1858b748c1b300339d90e9416a9f2e4ea84160792aafa3073ea961dd45fea310b0073a7db074f4a717e79a174ab7f0b30c8a8d0a2c3221a5aa3ef0c84da02c444b95e481331ce42fecf5cc24d52a15b427fa669b4d9b9c626e53569142c645fafa7fd2c8d0ef9b14bfcb87856caf6b06a634d889eae7fe281f5c6a79dfc8d7f25b63b1a4f9b0665d589567af7c0fb666c9a7dd9c7e14b84858ab1cb750d85f2a9f13353cbbf96ed039798ebf3e60ab132c418eb5f7382d4ac8f1685daad3828cbc4302a0ec3f2a6b2f906bb229f9781322da4319fbce6ef5da4a2daa832acd31bd261dd1edc771fba189e8baa1ef1e317d924ad33dfb64c021d5b9d169f36293174
2
- fb5d28966d108be46e70286bdfafcda1
1
+ 3cb9e802fe39b116e2d334c18a2644e736e167f49711dbc10936d8a67e0cafd389f4ee1c192b3579dc745bf77facce3142a975f790a41dda56766307ff5dfe750f5558fa6ad02d90e501c6e26e4d622aaa9528c97dac83843aec56ac2483b83d5a9e340c3839e60fb9c27c40a83445a3f22eb18280cb05af1f76de0d6fb08d2714f3f196f30340ec154733a7560fdffc92cb0c4e7123ea7db7d37475aca516bc2387413ca7675155e78889eecca94c64da6866ae369a32a2b3b24f89390f775e492cd0daff3885eb3e106f2b3a1ef5743451937559971cfd83a8f38407c8f38ae916ff623297aad7892235ddae3e69e54a4ae9612835109bc866c39126faab3b4b49038eea5fe8e6204d6c7d267604b56c663e07e13a76f3fc22faa2a426eb857b67b455bcd2d806298a4312a1a85a6fdc5761061c43ab0441e198de593bad010753351dcfd2dbd4dcb17152c7fbe2d447b81bd85dddbe0747865a8a23e1b1b55ff2f1d5814d4380e25d5de8610c0fa414a4439a20d7068af3533fa418fa9b98cdbe72b5404bee58f2b8ea575735fcd2549bdc0ebeba4d7c7ee224bdeb35d725cee5442e50fe291ec3a0986ea3b830de6e1fee59c713c88654b1df94bac162eccb60cfb121b8492d771950ffaae453301cca653560ce16fc54d0a723bd4aa513f48b90a2246f7fa95618ee092537d18df8d7a96835b808a34aa350d8b002b69749f09fe080c10abef9771f3819224062fa95b188542d87f2d7ea71baa2e89a173a0de93e827a307027f6bb6d097544f2c7e747c9ab74376d273c09a7fb7b8d254e63a5fce65ccce06575a6cc8304a4af7cc3f2939a0e384de88d11066adb40ba29758f077463c47cc648e3fd8626d25c8b845766a9b2e62e160a587224e0582889f3db5e873b63a2e14d617dca273f253a9b7445481b125e307b44da2f7aeca0fc77877d3e51fb8c120c7f52a56bada6a70e54d14a09968d4cce9d740ae9cd4743a2ec0a00a70b75af1e281c83660753b95ec433b87c6a4c2abd86599ee6931d1bee27f54de56c82c0ea1877a8e922846520a78c5948a4732aa0cf865c28ab626ae56a467cb4f172116aa5a95ab5d06e96d8f619b28495af67df15ced123de84b70ff116ed0755076b6c0c2d0df954212d138617dd8b47ad9a356161f508a7745d1a6eb525872931bdd5e214d916205ae0bf70f1949269995504b0710082299973b5c4e1ee79fdacb97a78a8435b592a39c730441c1f0fff14c26f950059c810b23347c81555dd48d64582ac20cfc346cb8f4289ab734e9cc4e1e619f1ff11cad040c1c926fd57ad351553ae49cefda083861337b0cc02d66458ce157cde2813f975e85c7bc90de4ad2abea1cfe3fc3bd6a3a566ef12e2e886630c712356abbbc34c816a47c5c98448e69da35bf1473d726a15854bd9c484e0e332f2a054d2c1d57f1e24e4e9d49706b35470317a7e2f10bab32dd1263fe7ea6f343c0dfe86887070fc05c1dcb2d4b4dbe9f52b5d90c3a7cec45f1ec796254550a57b826d3ed21fbada51e4957faca0146ef098147a49b14422b2c564d31c67bf790ad00d7d1498a9e6a05510e406b1dcc604a547faec282ec9bbf1271a7399dfde97d1016d02c69eebad76dbe3fe62124ca4950914b153dc5257ac9c73459353e502f16e142295f77244002a423eb9a373521ffa2f2270ea872d64bcbb1fadbc8d0d4864dfa2
2
+ 6819879aece58d31f93b90c2a40bbf0f
@@ -0,0 +1,2 @@
1
+ ff2a14c0b4a01445b27d6e7bc1e1ee904044a129f43f290900199cf6de9ecb22817e6c65b82b80fac82a885a5c07bf1d453f0d9fd08879b846379b3bc4ed8c5a9d7031491befdfcd4ef742e13588b840c81d0385e4c317f0e4cc2386d413d61a00a4303db9920dc4469c645ee3745a772781db97540dae0f71b855eded4d3cad
2
+ 262bd7911ee6a7bb5ed225b558be7b7c
@@ -1,2 +1,2 @@
1
- b81400b0a0bea6b9412ac17ef6bd9f25
2
- 8a0d8bcd5998c9d65e34fca50e12b9ef
1
+ e7131ffa1e01798fcb573280ef115418
2
+ 95610ab35969848eb3cf720c5fdaa026
package/dist/esm/main.js CHANGED
@@ -1 +1 @@
1
- import*as e from"node:path";import*as s from"node:os";import{spawn as i,execSync as t}from"node:child_process";import o from"node:fs";import*as n from"node:crypto";async function r(e){try{return await o.promises.access(e),!0}catch{return!1}}async function c(e,s){return await new Promise((s,i)=>{let t="";o.createReadStream(e,{highWaterMark:1048576,encoding:"utf8"}).on("error",e=>i(e)).on("data",e=>t+=e).on("end",()=>{s(t)})})}async function a(e,s,i){return await new Promise((i,t)=>{o.createWriteStream(e,{encoding:"utf8",highWaterMark:1048576}).on("error",e=>t(e)).on("finish",()=>i()).on("open",function(){this.write(s),this.end()})})}function l(e){const s=e.split(/\r\n|\n|\r/).filter(Boolean),i={data:s[0],iv:s[1]},{iv:t,data:o}=i,r=n.scryptSync("unique password","Just fuck me!",32),c=n.createDecipheriv("aes-256-cbc",r,Buffer.from(t,"hex"));let a=c.update(o,"hex","utf8");return a+=c.final("utf8"),a}function p(e){t(`echo ${e}`,{stdio:"inherit",cwd:process.cwd()})}function u(o="pnpm"){return{name:"vite-plugin-husky-helper",async configResolved(n){if("serve"!==n.command)return;if(!await r(e.resolve(process.cwd(),".git")))return void p("[vite-plugin-husky-helper]❌ git 仓库未初始化,退出插件~~~");if(await async function(){return await r(e.resolve(process.cwd(),"./.husky"))}())return void p("[vite-plugin-husky-helper]❌ husky 配置已存在,退出插件~~~");const u=["husky","lint-staged","commitizen","cz-vinyl","@commitlint/cli","@commitlint/config-conventional"];try{i(o,["install",...u,"-D"],{detached:!0,stdio:"inherit",cwd:process.cwd(),shell:!0}).on("close",async i=>{if(0===i){if(p("[vite-plugin-husky-helper]✅ 相关依赖库安装成功~~~"),!function(e,s){const i=e.map(e=>({key:e,regexp:new RegExp(`"devDependencies"\\s*:\\s*{\\s*([^}]*"(${e})"[^}]*)}`)}));for(const e of i){const{key:i,regexp:t}=e,o=t.exec(s);if(!o||o.length>=2&&o[2]!==i)return!1}return!0}(u,await c(e.resolve(process.cwd(),"./package.json"))))return void p("[vite-plugin-husky-helper]❌ 安装依赖库异常,退出插件~~~");if(t("npx husky init",{stdio:"inherit",cwd:process.cwd()}),!await r(e.resolve(process.cwd(),"./.husky/pre-commit")))return void p("[vite-plugin-husky-helper]❌ husky 初始化失败,退出插件~~~");const i=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/pre-commit")),o=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/commit-msg")),n=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/commitlint.config.js"));if(await a(e.resolve(process.cwd(),"./.husky/pre-commit"),l(i)),await a(e.resolve(process.cwd(),"./.husky/commit-msg"),l(o)),await a(e.resolve(process.cwd(),"./commitlint.config.js"),l(n)),await r(e.resolve(process.cwd(),"./eslint.config.ts"))){const s=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/eslint.config.ts"));await a(e.resolve(process.cwd(),"./eslint.config.ts"),l(s))}if(await r(e.resolve(process.cwd(),"./.oxfmtrc.json"))){const s=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/.oxfmtrc.json"));await a(e.resolve(process.cwd(),"./.oxfmtrc.json"),l(s))}const d=await c(e.resolve(process.cwd(),"./package.json")),h=new RegExp(/\}\s*\}(?=\s*$)/),m='},\n "lint-staged": {\n "*.{js,ts,vue,jsx,tsx,cjs,mjs}": [\n "oxfmt",\n "oxlint --fix",\n "eslint --fix --cache"\n ]\n },\n "config": {\n "commitizen": {\n "path": "cz-vinyl"\n }\n }\n}';if(!h.exec(d))return void p("[vite-plugin-husky-helper]❌ package.json 内容异常,退出插件~~~");await a(e.resolve(process.cwd(),"./.package.json"),d.replace(h,m));const w=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/czvinyl.config.ts"));await a(e.resolve(process.cwd(),"./czvinyl.config.ts"),l(w));const f=process.ppid;p("[vite-plugin-husky-helper]✅ executed successfully! The window will be closed soon."),"win32"===s.platform()?t(`taskkill /PID ${f} /F`,{stdio:"ignore"}):t(`kill -9 ${f}`,{stdio:"ignore"})}else p("[vite-plugin-husky-helper]❌ 相关依赖库安装失败,退出插件~~~")})}catch(e){throw new Error(`[vite-plugin-husky-helper]❌ 调用操作系统命令失败!${e.message}`)}}}}export{u as huskyHelper};
1
+ import*as e from"node:path";import*as s from"node:os";import{spawn as i,execSync as t}from"node:child_process";import n from"node:fs";import*as o from"node:crypto";async function r(e){try{return await n.promises.access(e),!0}catch{return!1}}async function c(e,s){return await new Promise((s,i)=>{let t="";n.createReadStream(e,{highWaterMark:1048576,encoding:"utf8"}).on("error",e=>i(e)).on("data",e=>t+=e).on("end",()=>{s(t)})})}async function l(e,s,i){return await new Promise((i,t)=>{n.createWriteStream(e,{encoding:"utf8",highWaterMark:1048576}).on("error",e=>t(e)).on("finish",()=>i()).on("open",function(){this.write(s),this.end()})})}function a(e){const s=e.split(/\r\n|\n|\r/).filter(Boolean),i={data:s[0],iv:s[1]},{iv:t,data:n}=i,r=o.scryptSync("unique password","Just fuck me!",32),c=o.createDecipheriv("aes-256-cbc",r,Buffer.from(t,"hex"));let l=c.update(n,"hex","utf8");return l+=c.final("utf8"),l}function p(e){t(`echo ${e}`,{stdio:"inherit",cwd:process.cwd()})}function u(n="pnpm"){return{name:"vite-plugin-husky-helper",async configResolved(o){if("serve"!==o.command)return;if(!await r(e.resolve(process.cwd(),".git")))return void p("[vite-plugin-husky-helper] ❌ git 仓库未初始化,退出插件~~~");if(await async function(){return await r(e.resolve(process.cwd(),"./.husky"))}())return void p("[vite-plugin-husky-helper] ❌ husky 配置已存在,退出插件~~~");const u=["husky","lint-staged","commitizen","cz-vinyl","@commitlint/cli","@commitlint/config-conventional"];try{i(n,["install",...u,"-D"],{detached:!0,stdio:"inherit",cwd:process.cwd(),shell:!0}).on("close",async i=>{if(0===i){if(!function(e,s){const i=e.map(e=>({key:e,regexp:new RegExp(`"devDependencies"\\s*:\\s*{\\s*([^}]*"(${e})"[^}]*)}`)}));for(const e of i){const{key:i,regexp:t}=e,n=t.exec(s);if(!n||n.length>=2&&n[2]!==i)return!1}return!0}(u,await c(e.resolve(process.cwd(),"./package.json"))))return void p("[vite-plugin-husky-helper] ❌ 安装依赖库异常,退出插件~~~");if(p(" ➜ [vite-plugin-husky-helper] ✅ 相关依赖库安装成功~~~"),t("npx husky init",{stdio:"inherit",cwd:process.cwd()}),!await r(e.resolve(process.cwd(),"./.husky/pre-commit")))return void p("[vite-plugin-husky-helper] ❌ husky 初始化失败,退出插件~~~");const i=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/pre-commit")),n=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/commit-msg")),o=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/commitlint.config.js"));if(await l(e.resolve(process.cwd(),"./.husky/pre-commit"),a(i)),await l(e.resolve(process.cwd(),"./.husky/commit-msg"),a(n)),p(" ➜ [vite-plugin-husky-helper] ✅ husky 初始化成功~~~"),await l(e.resolve(process.cwd(),"./commitlint.config.js"),a(o)),p(" ➜ [vite-plugin-husky-helper] ✅ commitlint.config.js 配置成功~~~"),await r(e.resolve(process.cwd(),"./eslint.config.ts"))){const s=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/eslint.config.ts"));await l(e.resolve(process.cwd(),"./eslint.config.ts"),a(s)),p(" ➜ [vite-plugin-husky-helper] ✅ eslint.config.ts 配置成功~~~")}if(await r(e.resolve(process.cwd(),"./.oxfmtrc.json"))){const s=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/oxfmtrc.json"));await l(e.resolve(process.cwd(),"./.oxfmtrc.json"),a(s)),p(" ➜ [vite-plugin-husky-helper] ✅ .oxfmtrc.json 配置成功~~~")}const d=await c(e.resolve(process.cwd(),"./package.json")),h=new RegExp(/\}\s*\}(?=\s*$)/),m='},\n "lint-staged": {\n "*.{js,ts,vue,jsx,tsx,cjs,mjs}": [\n "oxfmt",\n "oxlint --fix",\n "eslint --fix --cache"\n ]\n },\n "config": {\n "commitizen": {\n "path": "cz-vinyl"\n }\n }\n}';if(!h.exec(d))return void p("[vite-plugin-husky-helper] ❌ package.json 内容异常,退出插件~~~");await l(e.resolve(process.cwd(),"./package.json"),d.replace(h,m)),p(" ➜ [vite-plugin-husky-helper] ✅ lint-staged 配置成功~~~");const w=await c(e.resolve(process.cwd(),"node_modules/vite-plugin-husky-helper/dist/esm/assets/czvinyl.config.ts"));await l(e.resolve(process.cwd(),"./czvinyl.config.ts"),a(w)),p(" ➜ [vite-plugin-husky-helper] ✅ czvinyl.config.ts 配置成功~~~");const f=process.ppid;p("[vite-plugin-husky-helper] ✅ executed successfully! The window will be closed soon."),"win32"===s.platform()?t(`taskkill /PID ${f} /F`,{stdio:"ignore"}):t(`kill -9 ${f}`,{stdio:"ignore"})}else p("[vite-plugin-husky-helper] ❌ 相关依赖库安装失败,退出插件~~~")})}catch(e){throw new Error(`[vite-plugin-husky-helper] ❌ 调用操作系统命令失败!${e.message}`)}}}}export{u as huskyHelper};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-husky-helper",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "private": false,
5
5
  "description": "用于前端项目 git 规范配置的插件",
6
6
  "keywords": [
@@ -17,7 +17,7 @@
17
17
  "main": "dist/esm/main.js",
18
18
  "types": "dist/esm/types/main.d.ts",
19
19
  "files": [
20
- "dist/"
20
+ "dist"
21
21
  ],
22
22
  "exports": {
23
23
  ".": {