@cyberskill/shared 1.23.0 → 1.25.0
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/commands.cjs +1 -1
- package/dist/commands.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.d.cts +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/storage.cjs +1 -1
- package/dist/utils/storage.d.cts +1 -2
- package/dist/utils/storage.d.ts +1 -2
- package/dist/utils/storage.js +1 -1
- package/package.json +1 -1
package/dist/commands.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";function e(e,t,n,r,s,c,i){try{var a=e[c](i);var o=a.value}catch(e){n(e);return}if(a.done){t(o)}else{Promise.resolve(o).then(r,s)}}function t(t){return function(){var n=this,r=arguments;return new Promise(function(s,c){var i=t.apply(n,r);function a(t){e(i,s,c,a,o,"next",t)}function o(t){e(i,s,c,a,o,"throw",t)}a(undefined)})}}function n(e,t,n){if(t in e){Object.defineProperty(e,t,{value:n,enumerable:true,configurable:true,writable:true})}else{e[t]=n}return e}function r(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};var s=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){s=s.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))}s.forEach(function(t){n(e,t,r[t])})}return e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);if(t){r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}n.push.apply(n,r)}return n}function c(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{s(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function i(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function a(e,t){var n,r,s,c,i={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]};return c={next:a(0),"throw":a(1),"return":a(2)},typeof Symbol==="function"&&(c[Symbol.iterator]=function(){return this}),c;function a(e){return function(t){return o([e,t])}}function o(c){if(n)throw new TypeError("Generator is already executing.");while(i)try{if(n=1,r&&(s=c[0]&2?r["return"]:c[0]?r["throw"]||((s=r["return"])&&s.call(r),0):r.next)&&!(s=s.call(r,c[1])).done)return s;if(r=0,s)c=[c[0]&2,s.value];switch(c[0]){case 0:case 1:s=c;break;case 4:i.label++;return{value:c[1],done:false};case 5:i.label++;r=c[1];c=[0];continue;case 7:c=i.ops.pop();i.trys.pop();continue;default:if(!(s=i.trys,s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){i=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){i.label=c[1];break}if(c[0]===6&&i.label<s[1]){i.label=s[1];s=c;break}if(s&&i.label<s[2]){i.label=s[2];i.ops.push(c);break}if(s[2])i.ops.pop();i.trys.pop();continue}c=t.call(e,i)}catch(e){c=[6,e];r=0}finally{n=s=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:true}}}var o=Object.create;var u=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var h=function(e,t,n,r){var s=true,c=false,a=undefined;if(t&&(typeof t==="undefined"?"undefined":i(t))=="object"||typeof t=="function")try{var o=function(){var s=h.value;!d.call(e,s)&&s!==n&&u(e,s,{get:function(){return t[s]},enumerable:!(r=l(t,s))||r.enumerable})};for(var p=f(t)[Symbol.iterator](),h;!(s=(h=p.next()).done);s=true)o()}catch(e){c=true;a=e}finally{try{if(!s&&p.return!=null){p.return()}}finally{if(c){throw a}}}return e};var g=function(e,t,n){return n=e!=null?o(p(e)):{},h(t||!e||!e.__esModule?u(n,"default",{value:e,enumerable:!0}):n,e)};var y=function(){return(typeof document==="undefined"?"undefined":i(document))>"u"?new URL("file:".concat(__filename)).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href},m=y();var v=g(require("fs"),1),b=g(require("path"),1),w=g(require("process"),1),_=require("yargs/helpers"),S=g(require("yargs/yargs"),1);var O=require("path"),T=g(require("process"),1),A=require("url"),P=(0,A.fileURLToPath)(m),E=(0,O.dirname)(P),k=T.default.env.INIT_CWD||T.default.cwd();var I=g(require("boxen"),1),j=g(require("chalk"),1),C=require("child_process"),N=g(require("process"),1),G=g(require("util"),1);var x=g(require("localforage"),1),F=g(require("node-persist"),1),H=g(require("os"),1),L=g(require("path"),1),M=g(require("process"),1),R=(typeof window==="undefined"?"undefined":i(window))<"u",K=M.default.env.CYBERSKILL_STORAGE_DIR||L.default.join(H.default.homedir(),".cyberskill-storage");function q(){return U.apply(this,arguments)}function U(){U=t(function(){var e;return a(this,function(t){switch(t.label){case 0:e=!R&&!F.default.defaultInstance;if(!e)return[3,2];return[4,F.default.init({dir:K,stringify:JSON.stringify,parse:JSON.parse,encoding:"utf8",logging:!1,forgiveParseErrors:!0})];case 1:e=t.sent();t.label=2;case 2:e;return[2]}})});return U.apply(this,arguments)}var D={get:function e(e){return t(function(){var t,n,r;return a(this,function(s){switch(s.label){case 0:s.trys.push([0,6,,7]);if(!R)return[3,2];return[4,x.default.getItem(e)];case 1:n=s.sent();return[3,5];case 2:return[4,q()];case 3:s.sent();return[4,F.default.getItem(e)];case 4:n=(t=s.sent())!==null&&t!==void 0?t:null;s.label=5;case 5:return[2,n];case 6:r=s.sent();return[2,(console.error('❌ [Storage:get] Error getting key "'.concat(e,'":'),r),null)];case 7:return[2]}})})()},set:function e(e,n){return t(function(){var t,r;return a(this,function(s){switch(s.label){case 0:s.trys.push([0,6,,7]);if(!R)return[3,2];return[4,x.default.setItem(e,n)];case 1:t=s.sent();return[3,5];case 2:return[4,q()];case 3:s.sent();return[4,F.default.setItem(e,n)];case 4:t=s.sent();s.label=5;case 5:t;return[3,7];case 6:r=s.sent();console.error('❌ [Storage:set] Error setting key "'.concat(e,'":'),r);return[3,7];case 7:return[2]}})})()},remove:function e(e){return t(function(){var t,n;return a(this,function(r){switch(r.label){case 0:r.trys.push([0,6,,7]);if(!R)return[3,2];return[4,x.default.removeItem(e)];case 1:t=r.sent();return[3,5];case 2:return[4,q()];case 3:r.sent();return[4,F.default.removeItem(e)];case 4:t=r.sent();r.label=5;case 5:t;return[3,7];case 6:n=r.sent();console.error('❌ [Storage:remove] Error removing key "'.concat(e,'":'),n);return[3,7];case 7:return[2]}})})()},keys:function e(){return t(function(){var e,t,n;return a(this,function(r){switch(r.label){case 0:r.trys.push([0,5,,6]);if(!R)return[3,2];return[4,x.default.keys()];case 1:return[2,(e=r.sent())!==null&&e!==void 0?e:[]];case 2:return[4,q()];case 3:r.sent();return[4,F.default.keys()];case 4:t=r.sent();return[2,Array.isArray(t)?t:(console.warn("⚠️ [Storage:keys] Invalid keys response:",t),[])];case 5:n=r.sent();return[2,(console.error("❌ [Storage:keys] Error getting keys:",n),[])];case 6:return[2]}})})()},getLogLink:function e(e){return t(function(){return a(this,function(t){try{return[2,"".concat(K," (key: ").concat(e,")")]}catch(e){return[2,(console.error("❌ [Storage:getLogLink] Error getting log link:",e),null)]}return[2]})})()}};var J=N.default.env.DEBUG==="true",B=G.promisify(C.exec),W=j.default,Y=W.gray,$=W.blue,z=function(){return Y("[".concat(new Date().toLocaleTimeString(),"]"))};function Q(e){var t=j.default[e];return typeof t=="function"?t:j.default.green}function V(e,t,n,r){var s=Q(t);console.log("".concat(z()," ").concat(s("".concat(n," ").concat(e))," ").concat(r))}function X(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.color,s=r===void 0?"green":r,c=n.padding,i=c===void 0?1:c,a=n.margin,o=a===void 0?1:a,u=n.borderStyle,l=u===void 0?"round":u,f=n.titleColor,p=f===void 0?"bold":f;var d=Q(s),h=Q(p);if(typeof t=="string"){console.log((0,I.default)(h(d("".concat(e,"\n").concat(t))),{padding:i,margin:o,borderStyle:l,borderColor:s}));return}Array.isArray(t)&&t.length&&(t.forEach(function(e){var t=e.file,n=e.position,r=e.rule,s=e.message;console.log("".concat(z()," ").concat(d("File:")," ").concat($("".concat(t).concat(n?":".concat(n):"")))),r&&console.log(" ".concat(d("Rule:")," ").concat(d(r))),console.log(" ".concat(d("Message:")," ").concat(d(s)))}),console.log((0,I.default)(h(d("".concat(e,": ").concat(t.length))),{padding:i,margin:o,borderStyle:l,borderColor:s})),console.log(Y("─".repeat(40))))}var Z={success:function(e){return V("SUCCESS","green","✔",e)},error:function(e){return V("ERROR","red","✖",e)},warning:function(e){return V("WARNING","yellow","⚠",e)},info:function(e){return V("INFO","blue","ℹ",e)},printBoxedLog:X},ee=function(e){return"error_list:".concat(e)};function et(e){return en.apply(this,arguments)}function en(){en=t(function(e){var n,r,s;return a(this,function(c){switch(c.label){case 0:if(e.length===0)return[2];n=Date.now(),r=ee(n);c.label=1;case 1:c.trys.push([1,3,,4]);return[4,D.set(r,{errors:e,timestamp:n})];case 2:c.sent(),setTimeout(/*#__PURE__*/t(function(){var e;return a(this,function(t){switch(t.label){case 0:return[4,D.getLogLink(r)];case 1:e=t.sent();e&&Z.info("\uD83D\uDCC2 Open the error list manually: ".concat(e));return[2]}})}),10);return[3,4];case 3:s=c.sent();Z.error("Failed to save errors: ".concat(s.message));return[3,4];case 4:return[2]}})});return en.apply(this,arguments)}function er(){return es.apply(this,arguments)}function es(){es=t(function(){var e,n,r;return a(this,function(s){switch(s.label){case 0:s.trys.push([0,3,,4]);return[4,D.keys()];case 1:e=s.sent(),n=Array.isArray(e)?e.filter(function(e){var t;return e===null||e===void 0?void 0:(t=e.startsWith)===null||t===void 0?void 0:t.call(e,"error_list:")}):[];return[4,Promise.all(n.map(/*#__PURE__*/function(){var e=t(function(e){var t;return a(this,function(n){switch(n.label){case 0:return[4,D.get(e)];case 1:return[2,((t=n.sent())===null||t===void 0?void 0:t.errors)||[]]}})});return function(t){return e.apply(this,arguments)}}()))];case 2:return[2,s.sent().flat()];case 3:r=s.sent();return[2,(Z.error("Failed to retrieve stored errors: ".concat(r.message)),[])];case 4:return[2]}})});return es.apply(this,arguments)}function ec(){return ei.apply(this,arguments)}function ei(){ei=t(function(){var e,t,n;return a(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,D.keys()];case 1:e=r.sent(),t=Array.isArray(e)?e.filter(function(e){var t;return e===null||e===void 0?void 0:(t=e.startsWith)===null||t===void 0?void 0:t.call(e,"error_list:")}):[];return[4,Promise.all(t.map(function(e){return D.remove(e)}))];case 2:r.sent();return[3,4];case 3:n=r.sent();Z.error("Failed to clear error lists: ".concat(n.message));return[3,4];case 4:return[2]}})});return ei.apply(this,arguments)}function ea(e){var t=[],n=[],r="",s=/^\s*(\d+):(\d+)\s+(error|warning)\s+(.+?)\s+(\S+)$/,c=/^(.+?)\((\d+),(\d+)\):\s+(error|warning)\s+TS\d+:\s+(\S.+)$/,i=/^✖\s+(.*?)\s+\[(.*?)\]$/;e.split("\n").forEach(function(e){if(e.startsWith("/"))r=e.trim();else{var a=s.exec(e)||[],o=c.exec(e)||[],u=i.exec(e)||[];a.length&&r?t.push({file:r,position:"".concat(a[1],":").concat(a[2]),type:a[3]==="error"?"error":"warning",message:a[4].trim(),rule:a[5].trim()}):o.length?t.push({file:o[1],position:"".concat(o[2],":").concat(o[3]),type:o[4]==="error"?"error":"warning",message:o[5].trim()}):u.length?t.push({file:"commitlint",type:"error",message:u[1].trim(),rule:u[2].trim()}):n.push(e.trim())}}),t.length&&et(t),n.length&&J&&(Z.warning("Unmatched lines:"),n.forEach(function(e){return console.log(" ".concat(e))}))}function eo(e){try{var t=JSON.parse(e),n=[];t.forEach(function(e){var t=e.filePath,r=e.messages;r.forEach(function(e){var r=e.severity,s=e.line,c=e.column,i=e.ruleId,a=e.message;n.push({type:r===2?"error":"warning",file:t,position:"".concat(s,":").concat(c),rule:i,message:a})})}),n.length&&et(n)}catch(t){ea(e)}}function eu(e){return el.apply(this,arguments)}function el(){el=t(function(e){var t,n,r,s,c,i,o,u,l;var f=arguments;return a(this,function(a){switch(a.label){case 0:t=f.length>1&&f[1]!==void 0?f[1]:eo;n=new AbortController;N.default.on("SIGINT",function(){Z.warning("Process interrupted. Terminating..."),n.abort(),N.default.exit()});a.label=1;case 1:a.trys.push([1,3,,4]);return[4,B(e,{maxBuffer:0x6400000,signal:n.signal})];case 2:r=a.sent(),s=r.stdout,c=r.stderr;[s,c].forEach(function(e){return e&&t(e)});return[3,4];case 3:i=a.sent();o=i.stdout,u=i.stderr,l=i.message;[o,u].forEach(function(e){return e&&t(e)}),!u&&!o&&Z.error("Command failed: ".concat(l));return[3,4];case 4:return[2]}})});return el.apply(this,arguments)}var ef=g(require("fs"),1),ep=function(e){return ef.existsSync(e)};var ed=g(require("node-fetch"),1),eh=g(require("fs"),1),eg=g(require("path"),1);var ey=24*60*60*1e3;function em(e){return e?eg.default.join(k,"node_modules",e,"package.json"):eg.default.join(k,"package.json")}function ev(e){return eb.apply(this,arguments)}function eb(){eb=t(function(e){var t,n,r,s,c,i,o,u,l,f;var p=arguments;return a(this,function(a){switch(a.label){case 0:t=p.length>1&&p[1]!==void 0?p[1]:!1;n="npm_version:".concat(e),r="npm_metadata:".concat(e);return[4,D.get(n)];case 1:s=a.sent();return[4,D.get(r)];case 2:c=a.sent(),i=s&&Date.now()-s.timestamp<ey;if(!t&&i)return[2,(Z.info("Using cached version for ".concat(e,": ").concat(s.version)),s.version)];o={};(c===null||c===void 0?void 0:c.etag)&&(o["If-None-Match"]=c.etag),(c===null||c===void 0?void 0:c.lastModified)&&(o["If-Modified-Since"]=c.lastModified);a.label=3;case 3:a.trys.push([3,8,,9]);Z.info("Fetching latest version for ".concat(e,"..."));return[4,(0,ed.default)("https://registry.npmjs.org/".concat(e,"/latest"),{headers:o})];case 4:u=a.sent();if(u.status===304&&s)return[2,(Z.info("Cache is still valid for ".concat(e,": ").concat(s.version)),s.version)];if(!u.ok)throw new Error("Failed to fetch latest version: ".concat(u.statusText));return[4,u.json()];case 5:l=a.sent().version;return[4,D.set(n,{version:l,timestamp:Date.now()})];case 6:a.sent();return[4,D.set(r,{etag:u.headers.get("ETag")||void 0,lastModified:u.headers.get("Last-Modified")||void 0})];case 7:return[2,(a.sent(),Z.success("Cached latest version for ".concat(e,": ").concat(l)),l)];case 8:f=a.sent();if(Z.error("Error fetching latest version for ".concat(e,": ").concat(f.message)),s)return[2,(Z.warning("Falling back to cached version for ".concat(e,": ").concat(s.version)),s.version)];throw f;case 9:return[2]}})});return eb.apply(this,arguments)}function ew(e){return e_.apply(this,arguments)}function e_(){e_=t(function(e){var t,n,r,s,c;var i=arguments;return a(this,function(a){switch(a.label){case 0:t=i.length>1&&i[1]!==void 0?i[1]:!0;a.label=1;case 1:a.trys.push([1,3,,4]);n=em(e);if(!eh.default.existsSync(n))return[2,(Z.info("".concat(e," is not installed.")),!0)];r=JSON.parse(eh.default.readFileSync(n,"utf-8")).version;return[4,ev(e,t)];case 2:s=a.sent();return[2,(Z.info("Installed version of ".concat(e,": ").concat(r)),Z.info("Latest version of ".concat(e,": ").concat(s)),r!==s)];case 3:c=a.sent();return[2,(Z.warning("Failed to check version for ".concat(e,": ").concat(c.message)),!0)];case 4:return[2]}})});return e_.apply(this,arguments)}function eS(e){return eO.apply(this,arguments)}function eO(){eO=t(function(e){var t,s,i,o;return a(this,function(a){switch(a.label){case 0:a.trys.push([0,4,,5]);return[4,ev(e,!0)];case 1:t=a.sent(),s=em();if(!eh.default.existsSync(s)){Z.error("package.json not found. Cannot update ".concat(e));return[2]}i=JSON.parse(eh.default.readFileSync(s,"utf-8"));i.dependencies=c(r({},i.dependencies),n({},e,t)),eh.default.writeFileSync(s,JSON.stringify(i,null,2)),Z.info("Updated ".concat(e," to version ").concat(t));return[4,eu("npm i -f")];case 2:a.sent();return[4,eu("npm run lint:fix")];case 3:a.sent(),Z.success("".concat(e," updated successfully."));return[3,5];case 4:o=a.sent();throw Z.error("Failed to update ".concat(e,": ").concat(o.message)),o;case 5:return[2]}})});return eO.apply(this,arguments)}function eT(e,t){try{var n=eg.default.join(e,"package.json");return eh.default.existsSync(n)?JSON.parse(eh.default.readFileSync(n,"utf-8")).name===t:!1}catch(e){return Z.error("Error reading package.json: ".concat(e.message)),!1}}var eA={TS_CONFIG_PATH:b.resolve(k,"tsconfig.json"),HUSKY_PATH:b.resolve(k,".husky"),GIT_HOOK_PATH:b.resolve(k,".git/hooks"),GIT_COMMIT_MSG:b.resolve(k,".git/COMMIT_EDITMSG"),SIMPLE_GIT_HOOKS_PATH:b.resolve(K,".simple-git-hooks.json"),PACKAGE_JSON_PATH:b.resolve(k,"package.json"),PACKAGE_LOCK_PATH:b.resolve(k,"package-lock.json"),PACKAGE_NAME:"@cyberskill/shared",LINT_STAGED_CONFIG_PATH:b.resolve(E,"./configs/lint-staged/base.js"),COMMITLINT_CONFIG_PATH:b.resolve(E,"./configs/commitlint/base.js"),UNIT_TEST_CONFIG_PATH:b.resolve(E,"./configs/vitest/react/unit.js"),E2E_TEST_CONFIG_PATH:b.resolve(E,"./configs/vitest/react/e2e.js"),HOOKS_CONFIG:{"pre-commit":"npx --yes cyberskill lint-staged","commit-msg":"npx --yes cyberskill commitlint"}};function eP(e,t){return eE.apply(this,arguments)}function eE(){eE=t(function(e,t){return a(this,function(n){switch(n.label){case 0:Z.info("➡️ ".concat(e,"..."));return[4,eu(t)];case 1:n.sent(),Z.success("✅ ".concat(e," completed."));return[2]}})});return eE.apply(this,arguments)}function ek(){return eI.apply(this,arguments)}function eI(){eI=t(function(){var e;return a(this,function(t){switch(t.label){case 0:if(!ep(eA.TS_CONFIG_PATH))return[3,2];return[4,eP("Running TypeScript check","npx tsc -p ".concat(eA.TS_CONFIG_PATH," --noEmit"))];case 1:e=t.sent();return[3,3];case 2:e=Z.warning("⚠️ TypeScript config not found. Skipping TypeScript check.");t.label=3;case 3:e;return[2]}})});return eI.apply(this,arguments)}function ej(){return eC.apply(this,arguments)}function eC(){eC=t(function(){var e;var t=arguments;return a(this,function(n){switch(n.label){case 0:e=t.length>0&&t[0]!==void 0?t[0]:!1;return[4,eP("Running ESLint ".concat(e?"(with fix)":"(without fix)"),"npx eslint ".concat(k).concat(e?" --fix":""))];case 1:n.sent();return[2]}})});return eC.apply(this,arguments)}function eN(){return eG.apply(this,arguments)}function eG(){eG=t(function(){var e;return a(this,function(t){switch(t.label){case 0:if(!eT(k,eA.PACKAGE_NAME))return[3,5];Z.info("➡️ @cyberskill/shared detected. Building before lint-staged...");t.label=1;case 1:t.trys.push([1,4,,5]);return[4,eP("Building @cyberskill/shared","npm run build")];case 2:t.sent();return[4,eu("git add dist")];case 3:t.sent(),Z.success("✅ Built and staged @cyberskill/shared");return[3,5];case 4:e=t.sent();throw Z.error("❌ Failed to build and stage @cyberskill/shared: ".concat(e.message)),e;case 5:return[4,eP("Running lint-staged","npx lint-staged --config ".concat(eA.LINT_STAGED_CONFIG_PATH))];case 6:t.sent();return[2]}})});return eG.apply(this,arguments)}function ex(){return eF.apply(this,arguments)}function eF(){eF=t(function(){return a(this,function(e){switch(e.label){case 0:return[4,eP("Inspecting ESLint rules","npx @eslint/config-inspector")];case 1:e.sent();return[2]}})});return eF.apply(this,arguments)}function eH(){return eL.apply(this,arguments)}function eL(){eL=t(function(){var e,t,n;return a(this,function(r){switch(r.label){case 0:return[4,ec()];case 1:r.sent();return[4,Promise.all([ek(),ej()])];case 2:r.sent();return[4,er()];case 3:e=r.sent(),t=e.filter(function(e){return e.type==="error"}),n=e.filter(function(e){return e.type==="warning"});!t.length&&!n.length?Z.printBoxedLog("✔ NO ISSUES FOUND","",{color:"green"}):(Z.printBoxedLog("⚠ Warnings",n,{color:"yellow"}),Z.printBoxedLog("✖ Errors",t,{color:"red"})),Z.success("✅ Lint check completed.");return[2]}})});return eL.apply(this,arguments)}function eM(){return eR.apply(this,arguments)}function eR(){eR=t(function(){return a(this,function(e){switch(e.label){case 0:return[4,eP("Running commit lint","npx commitlint --edit ".concat(eA.GIT_COMMIT_MSG," --config ").concat(eA.COMMITLINT_CONFIG_PATH))];case 1:e.sent();return[2]}})});return eR.apply(this,arguments)}function eK(){return eq.apply(this,arguments)}function eq(){eq=t(function(){var e,t,n,r,s,c;return a(this,function(i){switch(i.label){case 0:if(Z.info("➡️ Starting project setup..."),!ep(eA.PACKAGE_JSON_PATH)){Z.error("❌ package.json not found. Aborting setup.");return[2]}i.label=1;case 1:i.trys.push([1,9,,10]);t=JSON.parse(v.readFileSync(eA.PACKAGE_JSON_PATH,"utf-8"));r=eT(k,eA.PACKAGE_NAME);if(r)return[3,4];s=(e=t.dependencies)===null||e===void 0?void 0:e[eA.PACKAGE_NAME];if(!s)return[3,3];return[4,ew(eA.PACKAGE_NAME)];case 2:s=!i.sent();i.label=3;case 3:r=s;i.label=4;case 4:if(!r)return[3,5];n=Z.success("✅ Cyberskill package is already up to date.");return[3,7];case 5:Z.info("\uD83D\uDCE6 Updating Cyberskill package...");return[4,eS(eA.PACKAGE_NAME)];case 6:n=(i.sent(),Z.success("✅ Cyberskill package updated successfully."));i.label=7;case 7:n;return[4,eU()];case 8:i.sent(),Z.success("✅ Project setup completed.");return[3,10];case 9:c=i.sent();throw Z.error("❌ Failed to setup project: ".concat(c.message)),c;case 10:return[2]}})});return eq.apply(this,arguments)}function eU(){return eD.apply(this,arguments)}function eD(){eD=t(function(){var e;return a(this,function(t){switch(t.label){case 0:Z.info("➡️ Setting up Git hooks...");e=ep(eA.HUSKY_PATH);if(!e)return[3,3];return[4,eu("npx rimraf ".concat(eA.HUSKY_PATH," ").concat(eA.GIT_HOOK_PATH))];case 1:t.sent();return[4,eu("git config core.hooksPath ".concat(eA.GIT_HOOK_PATH))];case 2:e=t.sent();t.label=3;case 3:e,v.writeFileSync(eA.SIMPLE_GIT_HOOKS_PATH,JSON.stringify(eA.HOOKS_CONFIG,null,4));return[4,eu("npx simple-git-hooks")];case 4:t.sent(),Z.success("✅ Git hooks configured successfully.");return[2]}})});return eD.apply(this,arguments)}function eJ(){return eB.apply(this,arguments)}function eB(){eB=t(function(){var e,t,n,r,s,c,i,o,u,l,f;return a(this,function(a){switch(a.label){case 0:e=[{command:"npm install",message:"Standard installation"},{command:"npm install --legacy-peer-deps",message:"Attempting installation with --legacy-peer-deps"},{command:"npm install --force",message:"Attempting forced installation"}];t=true,n=false,r=undefined;a.label=1;case 1:a.trys.push([1,8,9,10]);s=e[Symbol.iterator]();a.label=2;case 2:if(!!(t=(c=s.next()).done))return[3,7];i=c.value,o=i.command,u=i.message;a.label=3;case 3:a.trys.push([3,5,,6]);Z.info("➡️ ".concat(u,"..."));return[4,eu(o)];case 4:a.sent(),Z.success("✅ Dependencies installed using: ".concat(o));return[2];case 5:l=a.sent();Z.warning("⚠️ Failed with: ".concat(o)),Z.error("❌ Error: ".concat(l.message));return[3,6];case 6:t=true;return[3,2];case 7:return[3,10];case 8:f=a.sent();n=true;r=f;return[3,10];case 9:try{if(!t&&s.return!=null){s.return()}}finally{if(n){throw r}}return[7];case 10:throw new Error("❌ Failed to install dependencies after multiple attempts.")}})});return eB.apply(this,arguments)}function eW(){return eY.apply(this,arguments)}function eY(){eY=t(function(){return a(this,function(e){switch(e.label){case 0:return[4,eP("Resetting project","npx rimraf ".concat(k,"/node_modules ").concat(eA.PACKAGE_LOCK_PATH))];case 1:e.sent();return[4,eJ()];case 2:e.sent();return[4,eU()];case 3:e.sent();return[2]}})});return eY.apply(this,arguments)}function e$(){return ez.apply(this,arguments)}function ez(){ez=t(function(){return a(this,function(e){switch(e.label){case 0:return[4,eP("Running unit tests","npx vitest --config ".concat(eA.UNIT_TEST_CONFIG_PATH))];case 1:e.sent();return[2]}})});return ez.apply(this,arguments)}function eQ(){return eV.apply(this,arguments)}function eV(){eV=t(function(){return a(this,function(e){switch(e.label){case 0:return[4,eP("Running E2E tests","npx vitest --config ".concat(eA.E2E_TEST_CONFIG_PATH))];case 1:e.sent();return[2]}})});return eV.apply(this,arguments)}(0,S.default)((0,_.hideBin)(w.default.argv)).command("lint","Run linting checks",eH).command("lint:fix","Fix linting issues",function(){return ej(!0)}).command("lint:inspect","Inspect linting rules",ex).command("lint-staged","Run lint-staged",eN).command("commitlint","Run commitlint",eM).command("setup","Run project setup",eK).command("reset","Reset project dependencies",eW).command("test:unit","Run unit tests",e$).command("test:e2e","Run e2e tests",eQ).help().parse();
|
|
2
|
+
"use strict";function e(e,t,n,r,s,i,c){try{var o=e[i](c);var a=o.value}catch(e){n(e);return}if(o.done){t(a)}else{Promise.resolve(a).then(r,s)}}function t(t){return function(){var n=this,r=arguments;return new Promise(function(s,i){var c=t.apply(n,r);function o(t){e(c,s,i,o,a,"next",t)}function a(t){e(c,s,i,o,a,"throw",t)}o(undefined)})}}function n(e,t,n){if(t in e){Object.defineProperty(e,t,{value:n,enumerable:true,configurable:true,writable:true})}else{e[t]=n}return e}function r(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};var s=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){s=s.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))}s.forEach(function(t){n(e,t,r[t])})}return e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);if(t){r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}n.push.apply(n,r)}return n}function i(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{s(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function c(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function o(e,t){var n,r,s,i,c={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]};return i={next:o(0),"throw":o(1),"return":o(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function o(e){return function(t){return a([e,t])}}function a(i){if(n)throw new TypeError("Generator is already executing.");while(c)try{if(n=1,r&&(s=i[0]&2?r["return"]:i[0]?r["throw"]||((s=r["return"])&&s.call(r),0):r.next)&&!(s=s.call(r,i[1])).done)return s;if(r=0,s)i=[i[0]&2,s.value];switch(i[0]){case 0:case 1:s=i;break;case 4:c.label++;return{value:i[1],done:false};case 5:c.label++;r=i[1];i=[0];continue;case 7:i=c.ops.pop();c.trys.pop();continue;default:if(!(s=c.trys,s=s.length>0&&s[s.length-1])&&(i[0]===6||i[0]===2)){c=0;continue}if(i[0]===3&&(!s||i[1]>s[0]&&i[1]<s[3])){c.label=i[1];break}if(i[0]===6&&c.label<s[1]){c.label=s[1];s=i;break}if(s&&c.label<s[2]){c.label=s[2];c.ops.push(i);break}if(s[2])c.ops.pop();c.trys.pop();continue}i=t.call(e,c)}catch(e){i=[6,e];r=0}finally{n=s=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:true}}}var a=Object.create;var u=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var g=function(e,t,n,r){var s=true,i=false,o=undefined;if(t&&(typeof t==="undefined"?"undefined":c(t))=="object"||typeof t=="function")try{var a=function(){var s=g.value;!d.call(e,s)&&s!==n&&u(e,s,{get:function(){return t[s]},enumerable:!(r=l(t,s))||r.enumerable})};for(var p=f(t)[Symbol.iterator](),g;!(s=(g=p.next()).done);s=true)a()}catch(e){i=true;o=e}finally{try{if(!s&&p.return!=null){p.return()}}finally{if(i){throw o}}}return e};var h=function(e,t,n){return n=e!=null?a(p(e)):{},g(t||!e||!e.__esModule?u(n,"default",{value:e,enumerable:!0}):n,e)};var y=function(){return(typeof document==="undefined"?"undefined":c(document))>"u"?new URL("file:".concat(__filename)).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href},m=y();var v=h(require("fs"),1),b=h(require("path"),1),w=h(require("process"),1),S=require("yargs/helpers"),_=h(require("yargs/yargs"),1);var O=require("path"),k=h(require("process"),1),T=require("url"),A=(0,T.fileURLToPath)(m),P=(0,O.dirname)(A),E=k.default.env.INIT_CWD||k.default.cwd();var I=h(require("boxen"),1),j=h(require("chalk"),1),C=require("child_process"),N=h(require("process"),1),G=h(require("util"),1);var x=h(require("localforage"),1),F=h(require("node-persist"),1),H=h(require("os"),1),L=h(require("path"),1),M=h(require("process"),1),R=(typeof window==="undefined"?"undefined":c(window))<"u",K=M.default.env.CYBERSKILL_STORAGE_DIR||L.default.join(H.default.homedir(),".cyberskill-storage");function q(){return U.apply(this,arguments)}function U(){U=t(function(){var e;return o(this,function(t){switch(t.label){case 0:e=!R&&!F.default.defaultInstance;if(!e)return[3,2];return[4,F.default.init({dir:K,stringify:JSON.stringify,parse:JSON.parse,encoding:"utf8",logging:!1,forgiveParseErrors:!0})];case 1:e=t.sent();t.label=2;case 2:e;return[2]}})});return U.apply(this,arguments)}var D={get:function e(e){return t(function(){var t,n,r;return o(this,function(s){switch(s.label){case 0:s.trys.push([0,6,,7]);if(!R)return[3,2];return[4,x.default.getItem(e)];case 1:n=s.sent();return[3,5];case 2:return[4,q()];case 3:s.sent();return[4,F.default.getItem(e)];case 4:n=(t=s.sent())!==null&&t!==void 0?t:null;s.label=5;case 5:return[2,n];case 6:r=s.sent();return[2,(console.error('❌ [Storage:get] Error getting key "'.concat(e,'":'),r),null)];case 7:return[2]}})})()},set:function e(e,n){return t(function(){var t,r;return o(this,function(s){switch(s.label){case 0:s.trys.push([0,6,,7]);if(!R)return[3,2];return[4,x.default.setItem(e,n)];case 1:t=s.sent();return[3,5];case 2:return[4,q()];case 3:s.sent();return[4,F.default.setItem(e,n)];case 4:t=s.sent();s.label=5;case 5:t;return[3,7];case 6:r=s.sent();console.error('❌ [Storage:set] Error setting key "'.concat(e,'":'),r);return[3,7];case 7:return[2]}})})()},remove:function e(e){return t(function(){var t,n;return o(this,function(r){switch(r.label){case 0:r.trys.push([0,6,,7]);if(!R)return[3,2];return[4,x.default.removeItem(e)];case 1:t=r.sent();return[3,5];case 2:return[4,q()];case 3:r.sent();return[4,F.default.removeItem(e)];case 4:t=r.sent();r.label=5;case 5:t;return[3,7];case 6:n=r.sent();console.error('❌ [Storage:remove] Error removing key "'.concat(e,'":'),n);return[3,7];case 7:return[2]}})})()},keys:function e(){return t(function(){var e,t,n;return o(this,function(r){switch(r.label){case 0:r.trys.push([0,5,,6]);if(!R)return[3,2];return[4,x.default.keys()];case 1:return[2,(e=r.sent())!==null&&e!==void 0?e:[]];case 2:return[4,q()];case 3:r.sent();return[4,F.default.keys()];case 4:t=r.sent();return[2,Array.isArray(t)?t:(console.warn("⚠️ [Storage:keys] Invalid keys response:",t),[])];case 5:n=r.sent();return[2,(console.error("❌ [Storage:keys] Error getting keys:",n),[])];case 6:return[2]}})})()},getLogLink:function e(e){return t(function(){return o(this,function(t){try{return[2,"".concat(K," (key: ").concat(e,")")]}catch(e){return[2,(console.error("❌ [Storage:getLogLink] Error getting log link:",e),null)]}return[2]})})()}};var J=N.default.env.DEBUG==="true",B=G.promisify(C.exec),W=j.default,Y=W.gray,$=W.blue,z=function(){return Y("[".concat(new Date().toLocaleTimeString(),"]"))};function Q(e){var t=j.default[e];return typeof t=="function"?t:j.default.green}function V(e,t,n,r){var s=Q(t);console.log("".concat(z()," ").concat(s("".concat(n," ").concat(e))," ").concat(r))}function X(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.color,s=r===void 0?"green":r,i=n.padding,c=i===void 0?1:i,o=n.margin,a=o===void 0?1:o,u=n.borderStyle,l=u===void 0?"round":u,f=n.titleColor,p=f===void 0?"bold":f;var d=Q(s),g=Q(p);if(typeof t=="string"){console.log((0,I.default)(g(d("".concat(e,"\n").concat(t))),{padding:c,margin:a,borderStyle:l,borderColor:s}));return}Array.isArray(t)&&t.length&&(t.forEach(function(e){var t=e.file,n=e.position,r=e.rule,s=e.message;console.log("".concat(z()," ").concat(d("File:")," ").concat($("".concat(t).concat(n?":".concat(n):"")))),r&&console.log(" ".concat(d("Rule:")," ").concat(d(r))),console.log(" ".concat(d("Message:")," ").concat(d(s)))}),console.log((0,I.default)(g(d("".concat(e,": ").concat(t.length))),{padding:c,margin:a,borderStyle:l,borderColor:s})),console.log(Y("─".repeat(40))))}var Z={success:function(e){return V("SUCCESS","green","✔",e)},error:function(e){return V("ERROR","red","✖",e)},warning:function(e){return V("WARNING","yellow","⚠",e)},info:function(e){return V("INFO","blue","ℹ",e)},printBoxedLog:X},ee=function(e){return"error_list:".concat(e)};function et(e){return en.apply(this,arguments)}function en(){en=t(function(e){var n,r,s;return o(this,function(i){switch(i.label){case 0:if(e.length===0)return[2];n=Date.now(),r=ee(n);i.label=1;case 1:i.trys.push([1,3,,4]);return[4,D.set(r,{errors:e,timestamp:n})];case 2:i.sent(),setTimeout(/*#__PURE__*/t(function(){var e;return o(this,function(t){switch(t.label){case 0:return[4,D.getLogLink(r)];case 1:e=t.sent();e&&Z.info("\uD83D\uDCC2 Open the error list manually: ".concat(e));return[2]}})}),10);return[3,4];case 3:s=i.sent();Z.error("Failed to save errors: ".concat(s.message));return[3,4];case 4:return[2]}})});return en.apply(this,arguments)}function er(){return es.apply(this,arguments)}function es(){es=t(function(){var e,n,r;return o(this,function(s){switch(s.label){case 0:s.trys.push([0,3,,4]);return[4,D.keys()];case 1:e=s.sent(),n=Array.isArray(e)?e.filter(function(e){var t;return e===null||e===void 0?void 0:(t=e.startsWith)===null||t===void 0?void 0:t.call(e,"error_list:")}):[];return[4,Promise.all(n.map(/*#__PURE__*/function(){var e=t(function(e){var t;return o(this,function(n){switch(n.label){case 0:return[4,D.get(e)];case 1:return[2,((t=n.sent())===null||t===void 0?void 0:t.errors)||[]]}})});return function(t){return e.apply(this,arguments)}}()))];case 2:return[2,s.sent().flat()];case 3:r=s.sent();return[2,(Z.error("Failed to retrieve stored errors: ".concat(r.message)),[])];case 4:return[2]}})});return es.apply(this,arguments)}function ei(){return ec.apply(this,arguments)}function ec(){ec=t(function(){var e,t,n;return o(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,D.keys()];case 1:e=r.sent(),t=Array.isArray(e)?e.filter(function(e){var t;return e===null||e===void 0?void 0:(t=e.startsWith)===null||t===void 0?void 0:t.call(e,"error_list:")}):[];return[4,Promise.all(t.map(function(e){return D.remove(e)}))];case 2:r.sent();return[3,4];case 3:n=r.sent();Z.error("Failed to clear error lists: ".concat(n.message));return[3,4];case 4:return[2]}})});return ec.apply(this,arguments)}function eo(e){var t=[],n=[],r="",s=/^\s*(\d+):(\d+)\s+(error|warning)\s+(.+?)\s+(\S+)$/,i=/^(.+?)\((\d+),(\d+)\):\s+(error|warning)\s+TS\d+:\s+(\S.+)$/,c=/^✖\s+(.*?)\s+\[(.*?)\]$/;e.split("\n").forEach(function(e){if(e.startsWith("/"))r=e.trim();else{var o=s.exec(e)||[],a=i.exec(e)||[],u=c.exec(e)||[];o.length&&r?t.push({file:r,position:"".concat(o[1],":").concat(o[2]),type:o[3]==="error"?"error":"warning",message:o[4].trim(),rule:o[5].trim()}):a.length?t.push({file:a[1],position:"".concat(a[2],":").concat(a[3]),type:a[4]==="error"?"error":"warning",message:a[5].trim()}):u.length?t.push({file:"commitlint",type:"error",message:u[1].trim(),rule:u[2].trim()}):n.push(e.trim())}}),t.length&&et(t),n.length&&J&&(Z.warning("Unmatched lines:"),n.forEach(function(e){return console.log(" ".concat(e))}))}function ea(e){try{var t=JSON.parse(e),n=[];t.forEach(function(e){var t=e.filePath,r=e.messages;r.forEach(function(e){var r=e.severity,s=e.line,i=e.column,c=e.ruleId,o=e.message;n.push({type:r===2?"error":"warning",file:t,position:"".concat(s,":").concat(i),rule:c,message:o})})}),n.length&&et(n)}catch(t){eo(e)}}function eu(e){return el.apply(this,arguments)}function el(){el=t(function(e){var t,n,r,s,i,c,a,u,l;var f=arguments;return o(this,function(o){switch(o.label){case 0:t=f.length>1&&f[1]!==void 0?f[1]:ea;n=new AbortController;N.default.on("SIGINT",function(){Z.warning("Process interrupted. Terminating..."),n.abort(),N.default.exit()});o.label=1;case 1:o.trys.push([1,3,,4]);return[4,B(e,{maxBuffer:0x6400000,signal:n.signal})];case 2:r=o.sent(),s=r.stdout,i=r.stderr;[s,i].forEach(function(e){return e&&t(e)});return[3,4];case 3:c=o.sent();a=c.stdout,u=c.stderr,l=c.message;[a,u].forEach(function(e){return e&&t(e)}),!u&&!a&&Z.error("Command failed: ".concat(l));return[3,4];case 4:return[2]}})});return el.apply(this,arguments)}var ef=h(require("fs"),1),ep=function(e){return ef.existsSync(e)};var ed=h(require("node-fetch"),1),eg=h(require("fs"),1),eh=h(require("path"),1);var ey=24*60*60*1e3;function em(e){return e?eh.default.join(E,"node_modules",e,"package.json"):eh.default.join(E,"package.json")}function ev(e){return eb.apply(this,arguments)}function eb(){eb=t(function(e){var t,n,r,s,i,c,a,u,l,f;var p=arguments;return o(this,function(o){switch(o.label){case 0:t=p.length>1&&p[1]!==void 0?p[1]:!1;n="npm_version:".concat(e),r="npm_metadata:".concat(e);return[4,D.get(n)];case 1:s=o.sent();return[4,D.get(r)];case 2:i=o.sent(),c=s&&Date.now()-s.timestamp<ey;if(!t&&c)return[2,(Z.info("Using cached version for ".concat(e,": ").concat(s.version)),s.version)];a={};(i===null||i===void 0?void 0:i.etag)&&(a["If-None-Match"]=i.etag),(i===null||i===void 0?void 0:i.lastModified)&&(a["If-Modified-Since"]=i.lastModified);o.label=3;case 3:o.trys.push([3,8,,9]);Z.info("Fetching latest version for ".concat(e,"..."));return[4,(0,ed.default)("https://registry.npmjs.org/".concat(e,"/latest"),{headers:a})];case 4:u=o.sent();if(u.status===304&&s)return[2,(Z.info("Cache is still valid for ".concat(e,": ").concat(s.version)),s.version)];if(!u.ok)throw new Error("Failed to fetch latest version: ".concat(u.statusText));return[4,u.json()];case 5:l=o.sent().version;return[4,D.set(n,{version:l,timestamp:Date.now()})];case 6:o.sent();return[4,D.set(r,{etag:u.headers.get("ETag")||void 0,lastModified:u.headers.get("Last-Modified")||void 0})];case 7:return[2,(o.sent(),Z.success("Cached latest version for ".concat(e,": ").concat(l)),l)];case 8:f=o.sent();if(Z.error("Error fetching latest version for ".concat(e,": ").concat(f.message)),s)return[2,(Z.warning("Falling back to cached version for ".concat(e,": ").concat(s.version)),s.version)];throw f;case 9:return[2]}})});return eb.apply(this,arguments)}function ew(e){return eS.apply(this,arguments)}function eS(){eS=t(function(e){var t,n,r,s,i;var c=arguments;return o(this,function(o){switch(o.label){case 0:t=c.length>1&&c[1]!==void 0?c[1]:!0;o.label=1;case 1:o.trys.push([1,3,,4]);n=em(e);if(!eg.default.existsSync(n))return[2,(Z.info("".concat(e," is not installed.")),!0)];r=JSON.parse(eg.default.readFileSync(n,"utf-8")).version;return[4,ev(e,t)];case 2:s=o.sent();return[2,(Z.info("Installed version of ".concat(e,": ").concat(r)),Z.info("Latest version of ".concat(e,": ").concat(s)),r!==s)];case 3:i=o.sent();return[2,(Z.warning("Failed to check version for ".concat(e,": ").concat(i.message)),!0)];case 4:return[2]}})});return eS.apply(this,arguments)}function e_(e){return eO.apply(this,arguments)}function eO(){eO=t(function(e){var t,s,c,a;return o(this,function(o){switch(o.label){case 0:o.trys.push([0,4,,5]);return[4,ev(e,!0)];case 1:t=o.sent(),s=em();if(!eg.default.existsSync(s)){Z.error("package.json not found. Cannot update ".concat(e));return[2]}c=JSON.parse(eg.default.readFileSync(s,"utf-8"));c.dependencies=i(r({},c.dependencies),n({},e,t)),eg.default.writeFileSync(s,JSON.stringify(c,null,2)),Z.info("Updated ".concat(e," to version ").concat(t));return[4,eu("npm i -f")];case 2:o.sent();return[4,eu("npm run lint:fix")];case 3:o.sent(),Z.success("".concat(e," updated successfully."));return[3,5];case 4:a=o.sent();throw Z.error("Failed to update ".concat(e,": ").concat(a.message)),a;case 5:return[2]}})});return eO.apply(this,arguments)}function ek(e,t){try{var n=eh.default.join(e,"package.json");return eg.default.existsSync(n)?JSON.parse(eg.default.readFileSync(n,"utf-8")).name===t:!1}catch(e){return Z.error("Error reading package.json: ".concat(e.message)),!1}}var eT={TS_CONFIG_PATH:b.resolve(E,"tsconfig.json"),HUSKY_PATH:b.resolve(E,".husky"),GIT_HOOK_PATH:b.resolve(E,".git/hooks"),GIT_COMMIT_MSG:b.resolve(E,".git/COMMIT_EDITMSG"),SIMPLE_GIT_HOOKS_PATH:b.resolve(E,".simple-git-hooks.json"),PACKAGE_JSON_PATH:b.resolve(E,"package.json"),PACKAGE_LOCK_PATH:b.resolve(E,"package-lock.json"),PACKAGE_NAME:"@cyberskill/shared",LINT_STAGED_CONFIG_PATH:b.resolve(P,"./configs/lint-staged/base.js"),COMMITLINT_CONFIG_PATH:b.resolve(P,"./configs/commitlint/base.js"),UNIT_TEST_CONFIG_PATH:b.resolve(P,"./configs/vitest/react/unit.js"),E2E_TEST_CONFIG_PATH:b.resolve(P,"./configs/vitest/react/e2e.js"),HOOKS_CONFIG:{"pre-commit":"npx --yes cyberskill lint-staged","commit-msg":"npx --yes cyberskill commitlint"}};function eA(e,t){return eP.apply(this,arguments)}function eP(){eP=t(function(e,t){return o(this,function(n){switch(n.label){case 0:Z.info("➡️ ".concat(e,"..."));return[4,eu(t)];case 1:n.sent(),Z.success("✅ ".concat(e," completed."));return[2]}})});return eP.apply(this,arguments)}function eE(){return eI.apply(this,arguments)}function eI(){eI=t(function(){var e;return o(this,function(t){switch(t.label){case 0:if(!ep(eT.TS_CONFIG_PATH))return[3,2];return[4,eA("Running TypeScript check","npx tsc -p ".concat(eT.TS_CONFIG_PATH," --noEmit"))];case 1:e=t.sent();return[3,3];case 2:e=Z.warning("⚠️ TypeScript config not found. Skipping TypeScript check.");t.label=3;case 3:e;return[2]}})});return eI.apply(this,arguments)}function ej(){return eC.apply(this,arguments)}function eC(){eC=t(function(){var e;var t=arguments;return o(this,function(n){switch(n.label){case 0:e=t.length>0&&t[0]!==void 0?t[0]:!1;return[4,eA("Running ESLint ".concat(e?"(with fix)":"(without fix)"),"npx eslint ".concat(E).concat(e?" --fix":""))];case 1:n.sent();return[2]}})});return eC.apply(this,arguments)}function eN(){return eG.apply(this,arguments)}function eG(){eG=t(function(){var e;return o(this,function(t){switch(t.label){case 0:if(!ek(E,eT.PACKAGE_NAME))return[3,5];Z.info("➡️ @cyberskill/shared detected. Building before lint-staged...");t.label=1;case 1:t.trys.push([1,4,,5]);return[4,eA("Building @cyberskill/shared","npm run build")];case 2:t.sent();return[4,eu("git add dist")];case 3:t.sent(),Z.success("✅ Built and staged @cyberskill/shared");return[3,5];case 4:e=t.sent();throw Z.error("❌ Failed to build and stage @cyberskill/shared: ".concat(e.message)),e;case 5:return[4,eA("Running lint-staged","npx lint-staged --config ".concat(eT.LINT_STAGED_CONFIG_PATH))];case 6:t.sent();return[2]}})});return eG.apply(this,arguments)}function ex(){return eF.apply(this,arguments)}function eF(){eF=t(function(){return o(this,function(e){switch(e.label){case 0:return[4,eA("Inspecting ESLint rules","npx @eslint/config-inspector")];case 1:e.sent();return[2]}})});return eF.apply(this,arguments)}function eH(){return eL.apply(this,arguments)}function eL(){eL=t(function(){var e,t,n;return o(this,function(r){switch(r.label){case 0:return[4,ei()];case 1:r.sent();return[4,Promise.all([eE(),ej()])];case 2:r.sent();return[4,er()];case 3:e=r.sent(),t=e.filter(function(e){return e.type==="error"}),n=e.filter(function(e){return e.type==="warning"});!t.length&&!n.length?Z.printBoxedLog("✔ NO ISSUES FOUND","",{color:"green"}):(Z.printBoxedLog("⚠ Warnings",n,{color:"yellow"}),Z.printBoxedLog("✖ Errors",t,{color:"red"})),Z.success("✅ Lint check completed.");return[2]}})});return eL.apply(this,arguments)}function eM(){return eR.apply(this,arguments)}function eR(){eR=t(function(){return o(this,function(e){switch(e.label){case 0:return[4,eA("Running commit lint","npx commitlint --edit ".concat(eT.GIT_COMMIT_MSG," --config ").concat(eT.COMMITLINT_CONFIG_PATH))];case 1:e.sent();return[2]}})});return eR.apply(this,arguments)}function eK(){return eq.apply(this,arguments)}function eq(){eq=t(function(){var e,t,n,r,s,i;return o(this,function(c){switch(c.label){case 0:if(Z.info("➡️ Starting project setup..."),!ep(eT.PACKAGE_JSON_PATH)){Z.error("❌ package.json not found. Aborting setup.");return[2]}c.label=1;case 1:c.trys.push([1,9,,10]);t=JSON.parse(v.readFileSync(eT.PACKAGE_JSON_PATH,"utf-8"));r=ek(E,eT.PACKAGE_NAME);if(r)return[3,4];s=(e=t.dependencies)===null||e===void 0?void 0:e[eT.PACKAGE_NAME];if(!s)return[3,3];return[4,ew(eT.PACKAGE_NAME)];case 2:s=!c.sent();c.label=3;case 3:r=s;c.label=4;case 4:if(!r)return[3,5];n=Z.success("✅ Cyberskill package is already up to date.");return[3,7];case 5:Z.info("\uD83D\uDCE6 Updating Cyberskill package...");return[4,e_(eT.PACKAGE_NAME)];case 6:n=(c.sent(),Z.success("✅ Cyberskill package updated successfully."));c.label=7;case 7:n;return[4,eU()];case 8:c.sent(),Z.success("✅ Project setup completed.");return[3,10];case 9:i=c.sent();throw Z.error("❌ Failed to setup project: ".concat(i.message)),i;case 10:return[2]}})});return eq.apply(this,arguments)}function eU(){return eD.apply(this,arguments)}function eD(){eD=t(function(){var e,t;return o(this,function(n){switch(n.label){case 0:Z.info("➡️ Setting up Git hooks...");e=ep(eT.HUSKY_PATH);if(!e)return[3,3];return[4,eu("npx rimraf ".concat(eT.HUSKY_PATH," ").concat(eT.GIT_HOOK_PATH))];case 1:n.sent();return[4,eu("git config core.hooksPath ".concat(eT.GIT_HOOK_PATH))];case 2:e=n.sent();n.label=3;case 3:e,v.writeFileSync(eT.SIMPLE_GIT_HOOKS_PATH,JSON.stringify(eT.HOOKS_CONFIG,null,4));t=b.resolve(".gitignore");ep(t)?v.readFileSync(t,"utf8").split("\n").includes(".simple-git-hooks.json")?Z.info("✅ .simple-git-hooks.json is already ignored in .gitignore"):(v.appendFileSync(t,"\n# Ignore simple-git-hooks config\n.simple-git-hooks.json\n"),Z.info("✅ Added .simple-git-hooks.json to .gitignore")):(v.writeFileSync(t,"# Ignore simple-git-hooks config\n.simple-git-hooks.json\n"),Z.info("✅ Created .gitignore and added .simple-git-hooks.json"));return[4,eu("npx simple-git-hooks")];case 4:n.sent(),Z.success("✅ Git hooks configured successfully.");return[2]}})});return eD.apply(this,arguments)}function eJ(){return eB.apply(this,arguments)}function eB(){eB=t(function(){var e,t,n,r,s,i,c,a,u,l,f;return o(this,function(o){switch(o.label){case 0:e=[{command:"npm install",message:"Standard installation"},{command:"npm install --legacy-peer-deps",message:"Attempting installation with --legacy-peer-deps"},{command:"npm install --force",message:"Attempting forced installation"}];t=true,n=false,r=undefined;o.label=1;case 1:o.trys.push([1,8,9,10]);s=e[Symbol.iterator]();o.label=2;case 2:if(!!(t=(i=s.next()).done))return[3,7];c=i.value,a=c.command,u=c.message;o.label=3;case 3:o.trys.push([3,5,,6]);Z.info("➡️ ".concat(u,"..."));return[4,eu(a)];case 4:o.sent(),Z.success("✅ Dependencies installed using: ".concat(a));return[2];case 5:l=o.sent();Z.warning("⚠️ Failed with: ".concat(a)),Z.error("❌ Error: ".concat(l.message));return[3,6];case 6:t=true;return[3,2];case 7:return[3,10];case 8:f=o.sent();n=true;r=f;return[3,10];case 9:try{if(!t&&s.return!=null){s.return()}}finally{if(n){throw r}}return[7];case 10:throw new Error("❌ Failed to install dependencies after multiple attempts.")}})});return eB.apply(this,arguments)}function eW(){return eY.apply(this,arguments)}function eY(){eY=t(function(){return o(this,function(e){switch(e.label){case 0:return[4,eA("Resetting project","npx rimraf ".concat(E,"/node_modules ").concat(eT.PACKAGE_LOCK_PATH))];case 1:e.sent();return[4,eJ()];case 2:e.sent();return[4,eU()];case 3:e.sent();return[2]}})});return eY.apply(this,arguments)}function e$(){return ez.apply(this,arguments)}function ez(){ez=t(function(){return o(this,function(e){switch(e.label){case 0:return[4,eA("Running unit tests","npx vitest --config ".concat(eT.UNIT_TEST_CONFIG_PATH))];case 1:e.sent();return[2]}})});return ez.apply(this,arguments)}function eQ(){return eV.apply(this,arguments)}function eV(){eV=t(function(){return o(this,function(e){switch(e.label){case 0:return[4,eA("Running E2E tests","npx vitest --config ".concat(eT.E2E_TEST_CONFIG_PATH))];case 1:e.sent();return[2]}})});return eV.apply(this,arguments)}(0,_.default)((0,S.hideBin)(w.default.argv)).command("lint","Run linting checks",eH).command("lint:fix","Fix linting issues",function(){return ej(!0)}).command("lint:inspect","Inspect linting rules",ex).command("lint-staged","Run lint-staged",eN).command("commitlint","Run commitlint",eM).command("setup","Run project setup",eK).command("reset","Reset project dependencies",eW).command("test:unit","Run unit tests",e$).command("test:e2e","Run e2e tests",eQ).help().parse();
|
package/dist/commands.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
function e(e,t,n,r,s,o,c){try{var i=e[o](c);var a=i.value}catch(e){n(e);return}if(i.done){t(a)}else{Promise.resolve(a).then(r,s)}}function t(t){return function(){var n=this,r=arguments;return new Promise(function(s,o){var c=t.apply(n,r);function i(t){e(c,s,o,i,a,"next",t)}function a(t){e(c,s,o,i,a,"throw",t)}i(undefined)})}}function n(e,t,n){if(t in e){Object.defineProperty(e,t,{value:n,enumerable:true,configurable:true,writable:true})}else{e[t]=n}return e}function r(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};var s=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){s=s.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))}s.forEach(function(t){n(e,t,r[t])})}return e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);if(t){r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}n.push.apply(n,r)}return n}function o(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{s(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function c(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function i(e,t){var n,r,s,o,c={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]};return o={next:i(0),"throw":i(1),"return":i(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function i(e){return function(t){return a([e,t])}}function a(o){if(n)throw new TypeError("Generator is already executing.");while(c)try{if(n=1,r&&(s=o[0]&2?r["return"]:o[0]?r["throw"]||((s=r["return"])&&s.call(r),0):r.next)&&!(s=s.call(r,o[1])).done)return s;if(r=0,s)o=[o[0]&2,s.value];switch(o[0]){case 0:case 1:s=o;break;case 4:c.label++;return{value:o[1],done:false};case 5:c.label++;r=o[1];o=[0];continue;case 7:o=c.ops.pop();c.trys.pop();continue;default:if(!(s=c.trys,s=s.length>0&&s[s.length-1])&&(o[0]===6||o[0]===2)){c=0;continue}if(o[0]===3&&(!s||o[1]>s[0]&&o[1]<s[3])){c.label=o[1];break}if(o[0]===6&&c.label<s[1]){c.label=s[1];s=o;break}if(s&&c.label<s[2]){c.label=s[2];c.ops.push(o);break}if(s[2])c.ops.pop();c.trys.pop();continue}o=t.call(e,c)}catch(e){o=[6,e];r=0}finally{n=s=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}}import*as a from"node:fs";import*as u from"node:path";import l from"node:process";import{hideBin as f}from"yargs/helpers";import p from"yargs/yargs";import{dirname as d}from"node:path";import h from"node:process";import{fileURLToPath as g}from"node:url";var m=g(import.meta.url),y=d(m),v=h.env.INIT_CWD||h.cwd();import b from"boxen";import w from"chalk";import{exec as _}from"node:child_process";import S from"node:process";import*as O from"node:util";import T from"localforage";import A from"node-persist";import E from"node:os";import k from"node:path";import P from"node:process";var I=(typeof window==="undefined"?"undefined":c(window))<"u",C=P.env.CYBERSKILL_STORAGE_DIR||k.join(E.homedir(),".cyberskill-storage");function N(){return G.apply(this,arguments)}function G(){G=t(function(){var e;return i(this,function(t){switch(t.label){case 0:e=!I&&!A.defaultInstance;if(!e)return[3,2];return[4,A.init({dir:C,stringify:JSON.stringify,parse:JSON.parse,encoding:"utf8",logging:!1,forgiveParseErrors:!0})];case 1:e=t.sent();t.label=2;case 2:e;return[2]}})});return G.apply(this,arguments)}var j={get:function e(e){return t(function(){var t,n,r;return i(this,function(s){switch(s.label){case 0:s.trys.push([0,6,,7]);if(!I)return[3,2];return[4,T.getItem(e)];case 1:n=s.sent();return[3,5];case 2:return[4,N()];case 3:s.sent();return[4,A.getItem(e)];case 4:n=(t=s.sent())!==null&&t!==void 0?t:null;s.label=5;case 5:return[2,n];case 6:r=s.sent();return[2,(console.error('❌ [Storage:get] Error getting key "'.concat(e,'":'),r),null)];case 7:return[2]}})})()},set:function e(e,n){return t(function(){var t,r;return i(this,function(s){switch(s.label){case 0:s.trys.push([0,6,,7]);if(!I)return[3,2];return[4,T.setItem(e,n)];case 1:t=s.sent();return[3,5];case 2:return[4,N()];case 3:s.sent();return[4,A.setItem(e,n)];case 4:t=s.sent();s.label=5;case 5:t;return[3,7];case 6:r=s.sent();console.error('❌ [Storage:set] Error setting key "'.concat(e,'":'),r);return[3,7];case 7:return[2]}})})()},remove:function e(e){return t(function(){var t,n;return i(this,function(r){switch(r.label){case 0:r.trys.push([0,6,,7]);if(!I)return[3,2];return[4,T.removeItem(e)];case 1:t=r.sent();return[3,5];case 2:return[4,N()];case 3:r.sent();return[4,A.removeItem(e)];case 4:t=r.sent();r.label=5;case 5:t;return[3,7];case 6:n=r.sent();console.error('❌ [Storage:remove] Error removing key "'.concat(e,'":'),n);return[3,7];case 7:return[2]}})})()},keys:function e(){return t(function(){var e,t,n;return i(this,function(r){switch(r.label){case 0:r.trys.push([0,5,,6]);if(!I)return[3,2];return[4,T.keys()];case 1:return[2,(e=r.sent())!==null&&e!==void 0?e:[]];case 2:return[4,N()];case 3:r.sent();return[4,A.keys()];case 4:t=r.sent();return[2,Array.isArray(t)?t:(console.warn("⚠️ [Storage:keys] Invalid keys response:",t),[])];case 5:n=r.sent();return[2,(console.error("❌ [Storage:keys] Error getting keys:",n),[])];case 6:return[2]}})})()},getLogLink:function e(e){return t(function(){return i(this,function(t){try{return[2,"".concat(C," (key: ").concat(e,")")]}catch(e){return[2,(console.error("❌ [Storage:getLogLink] Error getting log link:",e),null)]}return[2]})})()}};var x=S.env.DEBUG==="true",F=O.promisify(_),H=w.gray,M=w.blue,L=function(){return H("[".concat(new Date().toLocaleTimeString(),"]"))};function R(e){var t=w[e];return typeof t=="function"?t:w.green}function K(e,t,n,r){var s=R(t);console.log("".concat(L()," ").concat(s("".concat(n," ").concat(e))," ").concat(r))}function D(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.color,s=r===void 0?"green":r,o=n.padding,c=o===void 0?1:o,i=n.margin,a=i===void 0?1:i,u=n.borderStyle,l=u===void 0?"round":u,f=n.titleColor,p=f===void 0?"bold":f;var d=R(s),h=R(p);if(typeof t=="string"){console.log(b(h(d("".concat(e,"\n").concat(t))),{padding:c,margin:a,borderStyle:l,borderColor:s}));return}Array.isArray(t)&&t.length&&(t.forEach(function(e){var t=e.file,n=e.position,r=e.rule,s=e.message;console.log("".concat(L()," ").concat(d("File:")," ").concat(M("".concat(t).concat(n?":".concat(n):"")))),r&&console.log(" ".concat(d("Rule:")," ").concat(d(r))),console.log(" ".concat(d("Message:")," ").concat(d(s)))}),console.log(b(h(d("".concat(e,": ").concat(t.length))),{padding:c,margin:a,borderStyle:l,borderColor:s})),console.log(H("─".repeat(40))))}var U={success:function(e){return K("SUCCESS","green","✔",e)},error:function(e){return K("ERROR","red","✖",e)},warning:function(e){return K("WARNING","yellow","⚠",e)},info:function(e){return K("INFO","blue","ℹ",e)},printBoxedLog:D},J=function(e){return"error_list:".concat(e)};function B(e){return W.apply(this,arguments)}function W(){W=t(function(e){var n,r,s;return i(this,function(o){switch(o.label){case 0:if(e.length===0)return[2];n=Date.now(),r=J(n);o.label=1;case 1:o.trys.push([1,3,,4]);return[4,j.set(r,{errors:e,timestamp:n})];case 2:o.sent(),setTimeout(/*#__PURE__*/t(function(){var e;return i(this,function(t){switch(t.label){case 0:return[4,j.getLogLink(r)];case 1:e=t.sent();e&&U.info("\uD83D\uDCC2 Open the error list manually: ".concat(e));return[2]}})}),10);return[3,4];case 3:s=o.sent();U.error("Failed to save errors: ".concat(s.message));return[3,4];case 4:return[2]}})});return W.apply(this,arguments)}function Y(){return $.apply(this,arguments)}function $(){$=t(function(){var e,n,r;return i(this,function(s){switch(s.label){case 0:s.trys.push([0,3,,4]);return[4,j.keys()];case 1:e=s.sent(),n=Array.isArray(e)?e.filter(function(e){var t;return e===null||e===void 0?void 0:(t=e.startsWith)===null||t===void 0?void 0:t.call(e,"error_list:")}):[];return[4,Promise.all(n.map(/*#__PURE__*/function(){var e=t(function(e){var t;return i(this,function(n){switch(n.label){case 0:return[4,j.get(e)];case 1:return[2,((t=n.sent())===null||t===void 0?void 0:t.errors)||[]]}})});return function(t){return e.apply(this,arguments)}}()))];case 2:return[2,s.sent().flat()];case 3:r=s.sent();return[2,(U.error("Failed to retrieve stored errors: ".concat(r.message)),[])];case 4:return[2]}})});return $.apply(this,arguments)}function q(){return z.apply(this,arguments)}function z(){z=t(function(){var e,t,n;return i(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,j.keys()];case 1:e=r.sent(),t=Array.isArray(e)?e.filter(function(e){var t;return e===null||e===void 0?void 0:(t=e.startsWith)===null||t===void 0?void 0:t.call(e,"error_list:")}):[];return[4,Promise.all(t.map(function(e){return j.remove(e)}))];case 2:r.sent();return[3,4];case 3:n=r.sent();U.error("Failed to clear error lists: ".concat(n.message));return[3,4];case 4:return[2]}})});return z.apply(this,arguments)}function Q(e){var t=[],n=[],r="",s=/^\s*(\d+):(\d+)\s+(error|warning)\s+(.+?)\s+(\S+)$/,o=/^(.+?)\((\d+),(\d+)\):\s+(error|warning)\s+TS\d+:\s+(\S.+)$/,c=/^✖\s+(.*?)\s+\[(.*?)\]$/;e.split("\n").forEach(function(e){if(e.startsWith("/"))r=e.trim();else{var i=s.exec(e)||[],a=o.exec(e)||[],u=c.exec(e)||[];i.length&&r?t.push({file:r,position:"".concat(i[1],":").concat(i[2]),type:i[3]==="error"?"error":"warning",message:i[4].trim(),rule:i[5].trim()}):a.length?t.push({file:a[1],position:"".concat(a[2],":").concat(a[3]),type:a[4]==="error"?"error":"warning",message:a[5].trim()}):u.length?t.push({file:"commitlint",type:"error",message:u[1].trim(),rule:u[2].trim()}):n.push(e.trim())}}),t.length&&B(t),n.length&&x&&(U.warning("Unmatched lines:"),n.forEach(function(e){return console.log(" ".concat(e))}))}function V(e){try{var t=JSON.parse(e),n=[];t.forEach(function(e){var t=e.filePath,r=e.messages;r.forEach(function(e){var r=e.severity,s=e.line,o=e.column,c=e.ruleId,i=e.message;n.push({type:r===2?"error":"warning",file:t,position:"".concat(s,":").concat(o),rule:c,message:i})})}),n.length&&B(n)}catch(t){Q(e)}}function X(e){return Z.apply(this,arguments)}function Z(){Z=t(function(e){var t,n,r,s,o,c,a,u,l;var f=arguments;return i(this,function(i){switch(i.label){case 0:t=f.length>1&&f[1]!==void 0?f[1]:V;n=new AbortController;S.on("SIGINT",function(){U.warning("Process interrupted. Terminating..."),n.abort(),S.exit()});i.label=1;case 1:i.trys.push([1,3,,4]);return[4,F(e,{maxBuffer:0x6400000,signal:n.signal})];case 2:r=i.sent(),s=r.stdout,o=r.stderr;[s,o].forEach(function(e){return e&&t(e)});return[3,4];case 3:c=i.sent();a=c.stdout,u=c.stderr,l=c.message;[a,u].forEach(function(e){return e&&t(e)}),!u&&!a&&U.error("Command failed: ".concat(l));return[3,4];case 4:return[2]}})});return Z.apply(this,arguments)}import*as ee from"node:fs";var et=function(e){return ee.existsSync(e)};import en from"node-fetch";import er from"node:fs";import es from"node:path";var eo=24*60*60*1e3;function ec(e){return e?es.join(v,"node_modules",e,"package.json"):es.join(v,"package.json")}function ei(e){return ea.apply(this,arguments)}function ea(){ea=t(function(e){var t,n,r,s,o,c,a,u,l,f;var p=arguments;return i(this,function(i){switch(i.label){case 0:t=p.length>1&&p[1]!==void 0?p[1]:!1;n="npm_version:".concat(e),r="npm_metadata:".concat(e);return[4,j.get(n)];case 1:s=i.sent();return[4,j.get(r)];case 2:o=i.sent(),c=s&&Date.now()-s.timestamp<eo;if(!t&&c)return[2,(U.info("Using cached version for ".concat(e,": ").concat(s.version)),s.version)];a={};(o===null||o===void 0?void 0:o.etag)&&(a["If-None-Match"]=o.etag),(o===null||o===void 0?void 0:o.lastModified)&&(a["If-Modified-Since"]=o.lastModified);i.label=3;case 3:i.trys.push([3,8,,9]);U.info("Fetching latest version for ".concat(e,"..."));return[4,en("https://registry.npmjs.org/".concat(e,"/latest"),{headers:a})];case 4:u=i.sent();if(u.status===304&&s)return[2,(U.info("Cache is still valid for ".concat(e,": ").concat(s.version)),s.version)];if(!u.ok)throw new Error("Failed to fetch latest version: ".concat(u.statusText));return[4,u.json()];case 5:l=i.sent().version;return[4,j.set(n,{version:l,timestamp:Date.now()})];case 6:i.sent();return[4,j.set(r,{etag:u.headers.get("ETag")||void 0,lastModified:u.headers.get("Last-Modified")||void 0})];case 7:return[2,(i.sent(),U.success("Cached latest version for ".concat(e,": ").concat(l)),l)];case 8:f=i.sent();if(U.error("Error fetching latest version for ".concat(e,": ").concat(f.message)),s)return[2,(U.warning("Falling back to cached version for ".concat(e,": ").concat(s.version)),s.version)];throw f;case 9:return[2]}})});return ea.apply(this,arguments)}function eu(e){return el.apply(this,arguments)}function el(){el=t(function(e){var t,n,r,s,o;var c=arguments;return i(this,function(i){switch(i.label){case 0:t=c.length>1&&c[1]!==void 0?c[1]:!0;i.label=1;case 1:i.trys.push([1,3,,4]);n=ec(e);if(!er.existsSync(n))return[2,(U.info("".concat(e," is not installed.")),!0)];r=JSON.parse(er.readFileSync(n,"utf-8")).version;return[4,ei(e,t)];case 2:s=i.sent();return[2,(U.info("Installed version of ".concat(e,": ").concat(r)),U.info("Latest version of ".concat(e,": ").concat(s)),r!==s)];case 3:o=i.sent();return[2,(U.warning("Failed to check version for ".concat(e,": ").concat(o.message)),!0)];case 4:return[2]}})});return el.apply(this,arguments)}function ef(e){return ep.apply(this,arguments)}function ep(){ep=t(function(e){var t,s,c,a;return i(this,function(i){switch(i.label){case 0:i.trys.push([0,4,,5]);return[4,ei(e,!0)];case 1:t=i.sent(),s=ec();if(!er.existsSync(s)){U.error("package.json not found. Cannot update ".concat(e));return[2]}c=JSON.parse(er.readFileSync(s,"utf-8"));c.dependencies=o(r({},c.dependencies),n({},e,t)),er.writeFileSync(s,JSON.stringify(c,null,2)),U.info("Updated ".concat(e," to version ").concat(t));return[4,X("npm i -f")];case 2:i.sent();return[4,X("npm run lint:fix")];case 3:i.sent(),U.success("".concat(e," updated successfully."));return[3,5];case 4:a=i.sent();throw U.error("Failed to update ".concat(e,": ").concat(a.message)),a;case 5:return[2]}})});return ep.apply(this,arguments)}function ed(e,t){try{var n=es.join(e,"package.json");return er.existsSync(n)?JSON.parse(er.readFileSync(n,"utf-8")).name===t:!1}catch(e){return U.error("Error reading package.json: ".concat(e.message)),!1}}var eh={TS_CONFIG_PATH:u.resolve(v,"tsconfig.json"),HUSKY_PATH:u.resolve(v,".husky"),GIT_HOOK_PATH:u.resolve(v,".git/hooks"),GIT_COMMIT_MSG:u.resolve(v,".git/COMMIT_EDITMSG"),SIMPLE_GIT_HOOKS_PATH:u.resolve(C,".simple-git-hooks.json"),PACKAGE_JSON_PATH:u.resolve(v,"package.json"),PACKAGE_LOCK_PATH:u.resolve(v,"package-lock.json"),PACKAGE_NAME:"@cyberskill/shared",LINT_STAGED_CONFIG_PATH:u.resolve(y,"./configs/lint-staged/base.js"),COMMITLINT_CONFIG_PATH:u.resolve(y,"./configs/commitlint/base.js"),UNIT_TEST_CONFIG_PATH:u.resolve(y,"./configs/vitest/react/unit.js"),E2E_TEST_CONFIG_PATH:u.resolve(y,"./configs/vitest/react/e2e.js"),HOOKS_CONFIG:{"pre-commit":"npx --yes cyberskill lint-staged","commit-msg":"npx --yes cyberskill commitlint"}};function eg(e,t){return em.apply(this,arguments)}function em(){em=t(function(e,t){return i(this,function(n){switch(n.label){case 0:U.info("➡️ ".concat(e,"..."));return[4,X(t)];case 1:n.sent(),U.success("✅ ".concat(e," completed."));return[2]}})});return em.apply(this,arguments)}function ey(){return ev.apply(this,arguments)}function ev(){ev=t(function(){var e;return i(this,function(t){switch(t.label){case 0:if(!et(eh.TS_CONFIG_PATH))return[3,2];return[4,eg("Running TypeScript check","npx tsc -p ".concat(eh.TS_CONFIG_PATH," --noEmit"))];case 1:e=t.sent();return[3,3];case 2:e=U.warning("⚠️ TypeScript config not found. Skipping TypeScript check.");t.label=3;case 3:e;return[2]}})});return ev.apply(this,arguments)}function eb(){return ew.apply(this,arguments)}function ew(){ew=t(function(){var e;var t=arguments;return i(this,function(n){switch(n.label){case 0:e=t.length>0&&t[0]!==void 0?t[0]:!1;return[4,eg("Running ESLint ".concat(e?"(with fix)":"(without fix)"),"npx eslint ".concat(v).concat(e?" --fix":""))];case 1:n.sent();return[2]}})});return ew.apply(this,arguments)}function e_(){return eS.apply(this,arguments)}function eS(){eS=t(function(){var e;return i(this,function(t){switch(t.label){case 0:if(!ed(v,eh.PACKAGE_NAME))return[3,5];U.info("➡️ @cyberskill/shared detected. Building before lint-staged...");t.label=1;case 1:t.trys.push([1,4,,5]);return[4,eg("Building @cyberskill/shared","npm run build")];case 2:t.sent();return[4,X("git add dist")];case 3:t.sent(),U.success("✅ Built and staged @cyberskill/shared");return[3,5];case 4:e=t.sent();throw U.error("❌ Failed to build and stage @cyberskill/shared: ".concat(e.message)),e;case 5:return[4,eg("Running lint-staged","npx lint-staged --config ".concat(eh.LINT_STAGED_CONFIG_PATH))];case 6:t.sent();return[2]}})});return eS.apply(this,arguments)}function eO(){return eT.apply(this,arguments)}function eT(){eT=t(function(){return i(this,function(e){switch(e.label){case 0:return[4,eg("Inspecting ESLint rules","npx @eslint/config-inspector")];case 1:e.sent();return[2]}})});return eT.apply(this,arguments)}function eA(){return eE.apply(this,arguments)}function eE(){eE=t(function(){var e,t,n;return i(this,function(r){switch(r.label){case 0:return[4,q()];case 1:r.sent();return[4,Promise.all([ey(),eb()])];case 2:r.sent();return[4,Y()];case 3:e=r.sent(),t=e.filter(function(e){return e.type==="error"}),n=e.filter(function(e){return e.type==="warning"});!t.length&&!n.length?U.printBoxedLog("✔ NO ISSUES FOUND","",{color:"green"}):(U.printBoxedLog("⚠ Warnings",n,{color:"yellow"}),U.printBoxedLog("✖ Errors",t,{color:"red"})),U.success("✅ Lint check completed.");return[2]}})});return eE.apply(this,arguments)}function ek(){return eP.apply(this,arguments)}function eP(){eP=t(function(){return i(this,function(e){switch(e.label){case 0:return[4,eg("Running commit lint","npx commitlint --edit ".concat(eh.GIT_COMMIT_MSG," --config ").concat(eh.COMMITLINT_CONFIG_PATH))];case 1:e.sent();return[2]}})});return eP.apply(this,arguments)}function eI(){return eC.apply(this,arguments)}function eC(){eC=t(function(){var e,t,n,r,s,o;return i(this,function(c){switch(c.label){case 0:if(U.info("➡️ Starting project setup..."),!et(eh.PACKAGE_JSON_PATH)){U.error("❌ package.json not found. Aborting setup.");return[2]}c.label=1;case 1:c.trys.push([1,9,,10]);t=JSON.parse(a.readFileSync(eh.PACKAGE_JSON_PATH,"utf-8"));r=ed(v,eh.PACKAGE_NAME);if(r)return[3,4];s=(e=t.dependencies)===null||e===void 0?void 0:e[eh.PACKAGE_NAME];if(!s)return[3,3];return[4,eu(eh.PACKAGE_NAME)];case 2:s=!c.sent();c.label=3;case 3:r=s;c.label=4;case 4:if(!r)return[3,5];n=U.success("✅ Cyberskill package is already up to date.");return[3,7];case 5:U.info("\uD83D\uDCE6 Updating Cyberskill package...");return[4,ef(eh.PACKAGE_NAME)];case 6:n=(c.sent(),U.success("✅ Cyberskill package updated successfully."));c.label=7;case 7:n;return[4,eN()];case 8:c.sent(),U.success("✅ Project setup completed.");return[3,10];case 9:o=c.sent();throw U.error("❌ Failed to setup project: ".concat(o.message)),o;case 10:return[2]}})});return eC.apply(this,arguments)}function eN(){return eG.apply(this,arguments)}function eG(){eG=t(function(){var e;return i(this,function(t){switch(t.label){case 0:U.info("➡️ Setting up Git hooks...");e=et(eh.HUSKY_PATH);if(!e)return[3,3];return[4,X("npx rimraf ".concat(eh.HUSKY_PATH," ").concat(eh.GIT_HOOK_PATH))];case 1:t.sent();return[4,X("git config core.hooksPath ".concat(eh.GIT_HOOK_PATH))];case 2:e=t.sent();t.label=3;case 3:e,a.writeFileSync(eh.SIMPLE_GIT_HOOKS_PATH,JSON.stringify(eh.HOOKS_CONFIG,null,4));return[4,X("npx simple-git-hooks")];case 4:t.sent(),U.success("✅ Git hooks configured successfully.");return[2]}})});return eG.apply(this,arguments)}function ej(){return ex.apply(this,arguments)}function ex(){ex=t(function(){var e,t,n,r,s,o,c,a,u,l,f;return i(this,function(i){switch(i.label){case 0:e=[{command:"npm install",message:"Standard installation"},{command:"npm install --legacy-peer-deps",message:"Attempting installation with --legacy-peer-deps"},{command:"npm install --force",message:"Attempting forced installation"}];t=true,n=false,r=undefined;i.label=1;case 1:i.trys.push([1,8,9,10]);s=e[Symbol.iterator]();i.label=2;case 2:if(!!(t=(o=s.next()).done))return[3,7];c=o.value,a=c.command,u=c.message;i.label=3;case 3:i.trys.push([3,5,,6]);U.info("➡️ ".concat(u,"..."));return[4,X(a)];case 4:i.sent(),U.success("✅ Dependencies installed using: ".concat(a));return[2];case 5:l=i.sent();U.warning("⚠️ Failed with: ".concat(a)),U.error("❌ Error: ".concat(l.message));return[3,6];case 6:t=true;return[3,2];case 7:return[3,10];case 8:f=i.sent();n=true;r=f;return[3,10];case 9:try{if(!t&&s.return!=null){s.return()}}finally{if(n){throw r}}return[7];case 10:throw new Error("❌ Failed to install dependencies after multiple attempts.")}})});return ex.apply(this,arguments)}function eF(){return eH.apply(this,arguments)}function eH(){eH=t(function(){return i(this,function(e){switch(e.label){case 0:return[4,eg("Resetting project","npx rimraf ".concat(v,"/node_modules ").concat(eh.PACKAGE_LOCK_PATH))];case 1:e.sent();return[4,ej()];case 2:e.sent();return[4,eN()];case 3:e.sent();return[2]}})});return eH.apply(this,arguments)}function eM(){return eL.apply(this,arguments)}function eL(){eL=t(function(){return i(this,function(e){switch(e.label){case 0:return[4,eg("Running unit tests","npx vitest --config ".concat(eh.UNIT_TEST_CONFIG_PATH))];case 1:e.sent();return[2]}})});return eL.apply(this,arguments)}function eR(){return eK.apply(this,arguments)}function eK(){eK=t(function(){return i(this,function(e){switch(e.label){case 0:return[4,eg("Running E2E tests","npx vitest --config ".concat(eh.E2E_TEST_CONFIG_PATH))];case 1:e.sent();return[2]}})});return eK.apply(this,arguments)}p(f(l.argv)).command("lint","Run linting checks",eA).command("lint:fix","Fix linting issues",function(){return eb(!0)}).command("lint:inspect","Inspect linting rules",eO).command("lint-staged","Run lint-staged",e_).command("commitlint","Run commitlint",ek).command("setup","Run project setup",eI).command("reset","Reset project dependencies",eF).command("test:unit","Run unit tests",eM).command("test:e2e","Run e2e tests",eR).help().parse();
|
|
2
|
+
function e(e,n,t,r,s,o,i){try{var c=e[o](i);var a=c.value}catch(e){t(e);return}if(c.done){n(a)}else{Promise.resolve(a).then(r,s)}}function n(n){return function(){var t=this,r=arguments;return new Promise(function(s,o){var i=n.apply(t,r);function c(n){e(i,s,o,c,a,"next",n)}function a(n){e(i,s,o,c,a,"throw",n)}c(undefined)})}}function t(e,n,t){if(n in e){Object.defineProperty(e,n,{value:t,enumerable:true,configurable:true,writable:true})}else{e[n]=t}return e}function r(e){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};var s=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){s=s.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))}s.forEach(function(n){t(e,n,r[n])})}return e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);if(n){r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})}t.push.apply(t,r)}return t}function o(e,n){n=n!=null?n:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(n))}else{s(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function i(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function c(e,n){var t,r,s,o,i={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]};return o={next:c(0),"throw":c(1),"return":c(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function c(e){return function(n){return a([e,n])}}function a(o){if(t)throw new TypeError("Generator is already executing.");while(i)try{if(t=1,r&&(s=o[0]&2?r["return"]:o[0]?r["throw"]||((s=r["return"])&&s.call(r),0):r.next)&&!(s=s.call(r,o[1])).done)return s;if(r=0,s)o=[o[0]&2,s.value];switch(o[0]){case 0:case 1:s=o;break;case 4:i.label++;return{value:o[1],done:false};case 5:i.label++;r=o[1];o=[0];continue;case 7:o=i.ops.pop();i.trys.pop();continue;default:if(!(s=i.trys,s=s.length>0&&s[s.length-1])&&(o[0]===6||o[0]===2)){i=0;continue}if(o[0]===3&&(!s||o[1]>s[0]&&o[1]<s[3])){i.label=o[1];break}if(o[0]===6&&i.label<s[1]){i.label=s[1];s=o;break}if(s&&i.label<s[2]){i.label=s[2];i.ops.push(o);break}if(s[2])i.ops.pop();i.trys.pop();continue}o=n.call(e,i)}catch(e){o=[6,e];r=0}finally{t=s=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}}import*as a from"node:fs";import*as u from"node:path";import l from"node:process";import{hideBin as f}from"yargs/helpers";import p from"yargs/yargs";import{dirname as d}from"node:path";import g from"node:process";import{fileURLToPath as h}from"node:url";var m=h(import.meta.url),y=d(m),v=g.env.INIT_CWD||g.cwd();import b from"boxen";import w from"chalk";import{exec as S}from"node:child_process";import _ from"node:process";import*as O from"node:util";import k from"localforage";import T from"node-persist";import A from"node:os";import E from"node:path";import P from"node:process";var I=(typeof window==="undefined"?"undefined":i(window))<"u",j=P.env.CYBERSKILL_STORAGE_DIR||E.join(A.homedir(),".cyberskill-storage");function C(){return N.apply(this,arguments)}function N(){N=n(function(){var e;return c(this,function(n){switch(n.label){case 0:e=!I&&!T.defaultInstance;if(!e)return[3,2];return[4,T.init({dir:j,stringify:JSON.stringify,parse:JSON.parse,encoding:"utf8",logging:!1,forgiveParseErrors:!0})];case 1:e=n.sent();n.label=2;case 2:e;return[2]}})});return N.apply(this,arguments)}var G={get:function e(e){return n(function(){var n,t,r;return c(this,function(s){switch(s.label){case 0:s.trys.push([0,6,,7]);if(!I)return[3,2];return[4,k.getItem(e)];case 1:t=s.sent();return[3,5];case 2:return[4,C()];case 3:s.sent();return[4,T.getItem(e)];case 4:t=(n=s.sent())!==null&&n!==void 0?n:null;s.label=5;case 5:return[2,t];case 6:r=s.sent();return[2,(console.error('❌ [Storage:get] Error getting key "'.concat(e,'":'),r),null)];case 7:return[2]}})})()},set:function e(e,t){return n(function(){var n,r;return c(this,function(s){switch(s.label){case 0:s.trys.push([0,6,,7]);if(!I)return[3,2];return[4,k.setItem(e,t)];case 1:n=s.sent();return[3,5];case 2:return[4,C()];case 3:s.sent();return[4,T.setItem(e,t)];case 4:n=s.sent();s.label=5;case 5:n;return[3,7];case 6:r=s.sent();console.error('❌ [Storage:set] Error setting key "'.concat(e,'":'),r);return[3,7];case 7:return[2]}})})()},remove:function e(e){return n(function(){var n,t;return c(this,function(r){switch(r.label){case 0:r.trys.push([0,6,,7]);if(!I)return[3,2];return[4,k.removeItem(e)];case 1:n=r.sent();return[3,5];case 2:return[4,C()];case 3:r.sent();return[4,T.removeItem(e)];case 4:n=r.sent();r.label=5;case 5:n;return[3,7];case 6:t=r.sent();console.error('❌ [Storage:remove] Error removing key "'.concat(e,'":'),t);return[3,7];case 7:return[2]}})})()},keys:function e(){return n(function(){var e,n,t;return c(this,function(r){switch(r.label){case 0:r.trys.push([0,5,,6]);if(!I)return[3,2];return[4,k.keys()];case 1:return[2,(e=r.sent())!==null&&e!==void 0?e:[]];case 2:return[4,C()];case 3:r.sent();return[4,T.keys()];case 4:n=r.sent();return[2,Array.isArray(n)?n:(console.warn("⚠️ [Storage:keys] Invalid keys response:",n),[])];case 5:t=r.sent();return[2,(console.error("❌ [Storage:keys] Error getting keys:",t),[])];case 6:return[2]}})})()},getLogLink:function e(e){return n(function(){return c(this,function(n){try{return[2,"".concat(j," (key: ").concat(e,")")]}catch(e){return[2,(console.error("❌ [Storage:getLogLink] Error getting log link:",e),null)]}return[2]})})()}};var x=_.env.DEBUG==="true",F=O.promisify(S),H=w.gray,M=w.blue,L=function(){return H("[".concat(new Date().toLocaleTimeString(),"]"))};function R(e){var n=w[e];return typeof n=="function"?n:w.green}function K(e,n,t,r){var s=R(n);console.log("".concat(L()," ").concat(s("".concat(t," ").concat(e))," ").concat(r))}function D(e,n){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=t.color,s=r===void 0?"green":r,o=t.padding,i=o===void 0?1:o,c=t.margin,a=c===void 0?1:c,u=t.borderStyle,l=u===void 0?"round":u,f=t.titleColor,p=f===void 0?"bold":f;var d=R(s),g=R(p);if(typeof n=="string"){console.log(b(g(d("".concat(e,"\n").concat(n))),{padding:i,margin:a,borderStyle:l,borderColor:s}));return}Array.isArray(n)&&n.length&&(n.forEach(function(e){var n=e.file,t=e.position,r=e.rule,s=e.message;console.log("".concat(L()," ").concat(d("File:")," ").concat(M("".concat(n).concat(t?":".concat(t):"")))),r&&console.log(" ".concat(d("Rule:")," ").concat(d(r))),console.log(" ".concat(d("Message:")," ").concat(d(s)))}),console.log(b(g(d("".concat(e,": ").concat(n.length))),{padding:i,margin:a,borderStyle:l,borderColor:s})),console.log(H("─".repeat(40))))}var U={success:function(e){return K("SUCCESS","green","✔",e)},error:function(e){return K("ERROR","red","✖",e)},warning:function(e){return K("WARNING","yellow","⚠",e)},info:function(e){return K("INFO","blue","ℹ",e)},printBoxedLog:D},J=function(e){return"error_list:".concat(e)};function B(e){return W.apply(this,arguments)}function W(){W=n(function(e){var t,r,s;return c(this,function(o){switch(o.label){case 0:if(e.length===0)return[2];t=Date.now(),r=J(t);o.label=1;case 1:o.trys.push([1,3,,4]);return[4,G.set(r,{errors:e,timestamp:t})];case 2:o.sent(),setTimeout(/*#__PURE__*/n(function(){var e;return c(this,function(n){switch(n.label){case 0:return[4,G.getLogLink(r)];case 1:e=n.sent();e&&U.info("\uD83D\uDCC2 Open the error list manually: ".concat(e));return[2]}})}),10);return[3,4];case 3:s=o.sent();U.error("Failed to save errors: ".concat(s.message));return[3,4];case 4:return[2]}})});return W.apply(this,arguments)}function Y(){return $.apply(this,arguments)}function $(){$=n(function(){var e,t,r;return c(this,function(s){switch(s.label){case 0:s.trys.push([0,3,,4]);return[4,G.keys()];case 1:e=s.sent(),t=Array.isArray(e)?e.filter(function(e){var n;return e===null||e===void 0?void 0:(n=e.startsWith)===null||n===void 0?void 0:n.call(e,"error_list:")}):[];return[4,Promise.all(t.map(/*#__PURE__*/function(){var e=n(function(e){var n;return c(this,function(t){switch(t.label){case 0:return[4,G.get(e)];case 1:return[2,((n=t.sent())===null||n===void 0?void 0:n.errors)||[]]}})});return function(n){return e.apply(this,arguments)}}()))];case 2:return[2,s.sent().flat()];case 3:r=s.sent();return[2,(U.error("Failed to retrieve stored errors: ".concat(r.message)),[])];case 4:return[2]}})});return $.apply(this,arguments)}function q(){return z.apply(this,arguments)}function z(){z=n(function(){var e,n,t;return c(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,G.keys()];case 1:e=r.sent(),n=Array.isArray(e)?e.filter(function(e){var n;return e===null||e===void 0?void 0:(n=e.startsWith)===null||n===void 0?void 0:n.call(e,"error_list:")}):[];return[4,Promise.all(n.map(function(e){return G.remove(e)}))];case 2:r.sent();return[3,4];case 3:t=r.sent();U.error("Failed to clear error lists: ".concat(t.message));return[3,4];case 4:return[2]}})});return z.apply(this,arguments)}function Q(e){var n=[],t=[],r="",s=/^\s*(\d+):(\d+)\s+(error|warning)\s+(.+?)\s+(\S+)$/,o=/^(.+?)\((\d+),(\d+)\):\s+(error|warning)\s+TS\d+:\s+(\S.+)$/,i=/^✖\s+(.*?)\s+\[(.*?)\]$/;e.split("\n").forEach(function(e){if(e.startsWith("/"))r=e.trim();else{var c=s.exec(e)||[],a=o.exec(e)||[],u=i.exec(e)||[];c.length&&r?n.push({file:r,position:"".concat(c[1],":").concat(c[2]),type:c[3]==="error"?"error":"warning",message:c[4].trim(),rule:c[5].trim()}):a.length?n.push({file:a[1],position:"".concat(a[2],":").concat(a[3]),type:a[4]==="error"?"error":"warning",message:a[5].trim()}):u.length?n.push({file:"commitlint",type:"error",message:u[1].trim(),rule:u[2].trim()}):t.push(e.trim())}}),n.length&&B(n),t.length&&x&&(U.warning("Unmatched lines:"),t.forEach(function(e){return console.log(" ".concat(e))}))}function V(e){try{var n=JSON.parse(e),t=[];n.forEach(function(e){var n=e.filePath,r=e.messages;r.forEach(function(e){var r=e.severity,s=e.line,o=e.column,i=e.ruleId,c=e.message;t.push({type:r===2?"error":"warning",file:n,position:"".concat(s,":").concat(o),rule:i,message:c})})}),t.length&&B(t)}catch(n){Q(e)}}function X(e){return Z.apply(this,arguments)}function Z(){Z=n(function(e){var n,t,r,s,o,i,a,u,l;var f=arguments;return c(this,function(c){switch(c.label){case 0:n=f.length>1&&f[1]!==void 0?f[1]:V;t=new AbortController;_.on("SIGINT",function(){U.warning("Process interrupted. Terminating..."),t.abort(),_.exit()});c.label=1;case 1:c.trys.push([1,3,,4]);return[4,F(e,{maxBuffer:0x6400000,signal:t.signal})];case 2:r=c.sent(),s=r.stdout,o=r.stderr;[s,o].forEach(function(e){return e&&n(e)});return[3,4];case 3:i=c.sent();a=i.stdout,u=i.stderr,l=i.message;[a,u].forEach(function(e){return e&&n(e)}),!u&&!a&&U.error("Command failed: ".concat(l));return[3,4];case 4:return[2]}})});return Z.apply(this,arguments)}import*as ee from"node:fs";var en=function(e){return ee.existsSync(e)};import et from"node-fetch";import er from"node:fs";import es from"node:path";var eo=24*60*60*1e3;function ei(e){return e?es.join(v,"node_modules",e,"package.json"):es.join(v,"package.json")}function ec(e){return ea.apply(this,arguments)}function ea(){ea=n(function(e){var n,t,r,s,o,i,a,u,l,f;var p=arguments;return c(this,function(c){switch(c.label){case 0:n=p.length>1&&p[1]!==void 0?p[1]:!1;t="npm_version:".concat(e),r="npm_metadata:".concat(e);return[4,G.get(t)];case 1:s=c.sent();return[4,G.get(r)];case 2:o=c.sent(),i=s&&Date.now()-s.timestamp<eo;if(!n&&i)return[2,(U.info("Using cached version for ".concat(e,": ").concat(s.version)),s.version)];a={};(o===null||o===void 0?void 0:o.etag)&&(a["If-None-Match"]=o.etag),(o===null||o===void 0?void 0:o.lastModified)&&(a["If-Modified-Since"]=o.lastModified);c.label=3;case 3:c.trys.push([3,8,,9]);U.info("Fetching latest version for ".concat(e,"..."));return[4,et("https://registry.npmjs.org/".concat(e,"/latest"),{headers:a})];case 4:u=c.sent();if(u.status===304&&s)return[2,(U.info("Cache is still valid for ".concat(e,": ").concat(s.version)),s.version)];if(!u.ok)throw new Error("Failed to fetch latest version: ".concat(u.statusText));return[4,u.json()];case 5:l=c.sent().version;return[4,G.set(t,{version:l,timestamp:Date.now()})];case 6:c.sent();return[4,G.set(r,{etag:u.headers.get("ETag")||void 0,lastModified:u.headers.get("Last-Modified")||void 0})];case 7:return[2,(c.sent(),U.success("Cached latest version for ".concat(e,": ").concat(l)),l)];case 8:f=c.sent();if(U.error("Error fetching latest version for ".concat(e,": ").concat(f.message)),s)return[2,(U.warning("Falling back to cached version for ".concat(e,": ").concat(s.version)),s.version)];throw f;case 9:return[2]}})});return ea.apply(this,arguments)}function eu(e){return el.apply(this,arguments)}function el(){el=n(function(e){var n,t,r,s,o;var i=arguments;return c(this,function(c){switch(c.label){case 0:n=i.length>1&&i[1]!==void 0?i[1]:!0;c.label=1;case 1:c.trys.push([1,3,,4]);t=ei(e);if(!er.existsSync(t))return[2,(U.info("".concat(e," is not installed.")),!0)];r=JSON.parse(er.readFileSync(t,"utf-8")).version;return[4,ec(e,n)];case 2:s=c.sent();return[2,(U.info("Installed version of ".concat(e,": ").concat(r)),U.info("Latest version of ".concat(e,": ").concat(s)),r!==s)];case 3:o=c.sent();return[2,(U.warning("Failed to check version for ".concat(e,": ").concat(o.message)),!0)];case 4:return[2]}})});return el.apply(this,arguments)}function ef(e){return ep.apply(this,arguments)}function ep(){ep=n(function(e){var n,s,i,a;return c(this,function(c){switch(c.label){case 0:c.trys.push([0,4,,5]);return[4,ec(e,!0)];case 1:n=c.sent(),s=ei();if(!er.existsSync(s)){U.error("package.json not found. Cannot update ".concat(e));return[2]}i=JSON.parse(er.readFileSync(s,"utf-8"));i.dependencies=o(r({},i.dependencies),t({},e,n)),er.writeFileSync(s,JSON.stringify(i,null,2)),U.info("Updated ".concat(e," to version ").concat(n));return[4,X("npm i -f")];case 2:c.sent();return[4,X("npm run lint:fix")];case 3:c.sent(),U.success("".concat(e," updated successfully."));return[3,5];case 4:a=c.sent();throw U.error("Failed to update ".concat(e,": ").concat(a.message)),a;case 5:return[2]}})});return ep.apply(this,arguments)}function ed(e,n){try{var t=es.join(e,"package.json");return er.existsSync(t)?JSON.parse(er.readFileSync(t,"utf-8")).name===n:!1}catch(e){return U.error("Error reading package.json: ".concat(e.message)),!1}}var eg={TS_CONFIG_PATH:u.resolve(v,"tsconfig.json"),HUSKY_PATH:u.resolve(v,".husky"),GIT_HOOK_PATH:u.resolve(v,".git/hooks"),GIT_COMMIT_MSG:u.resolve(v,".git/COMMIT_EDITMSG"),SIMPLE_GIT_HOOKS_PATH:u.resolve(v,".simple-git-hooks.json"),PACKAGE_JSON_PATH:u.resolve(v,"package.json"),PACKAGE_LOCK_PATH:u.resolve(v,"package-lock.json"),PACKAGE_NAME:"@cyberskill/shared",LINT_STAGED_CONFIG_PATH:u.resolve(y,"./configs/lint-staged/base.js"),COMMITLINT_CONFIG_PATH:u.resolve(y,"./configs/commitlint/base.js"),UNIT_TEST_CONFIG_PATH:u.resolve(y,"./configs/vitest/react/unit.js"),E2E_TEST_CONFIG_PATH:u.resolve(y,"./configs/vitest/react/e2e.js"),HOOKS_CONFIG:{"pre-commit":"npx --yes cyberskill lint-staged","commit-msg":"npx --yes cyberskill commitlint"}};function eh(e,n){return em.apply(this,arguments)}function em(){em=n(function(e,n){return c(this,function(t){switch(t.label){case 0:U.info("➡️ ".concat(e,"..."));return[4,X(n)];case 1:t.sent(),U.success("✅ ".concat(e," completed."));return[2]}})});return em.apply(this,arguments)}function ey(){return ev.apply(this,arguments)}function ev(){ev=n(function(){var e;return c(this,function(n){switch(n.label){case 0:if(!en(eg.TS_CONFIG_PATH))return[3,2];return[4,eh("Running TypeScript check","npx tsc -p ".concat(eg.TS_CONFIG_PATH," --noEmit"))];case 1:e=n.sent();return[3,3];case 2:e=U.warning("⚠️ TypeScript config not found. Skipping TypeScript check.");n.label=3;case 3:e;return[2]}})});return ev.apply(this,arguments)}function eb(){return ew.apply(this,arguments)}function ew(){ew=n(function(){var e;var n=arguments;return c(this,function(t){switch(t.label){case 0:e=n.length>0&&n[0]!==void 0?n[0]:!1;return[4,eh("Running ESLint ".concat(e?"(with fix)":"(without fix)"),"npx eslint ".concat(v).concat(e?" --fix":""))];case 1:t.sent();return[2]}})});return ew.apply(this,arguments)}function eS(){return e_.apply(this,arguments)}function e_(){e_=n(function(){var e;return c(this,function(n){switch(n.label){case 0:if(!ed(v,eg.PACKAGE_NAME))return[3,5];U.info("➡️ @cyberskill/shared detected. Building before lint-staged...");n.label=1;case 1:n.trys.push([1,4,,5]);return[4,eh("Building @cyberskill/shared","npm run build")];case 2:n.sent();return[4,X("git add dist")];case 3:n.sent(),U.success("✅ Built and staged @cyberskill/shared");return[3,5];case 4:e=n.sent();throw U.error("❌ Failed to build and stage @cyberskill/shared: ".concat(e.message)),e;case 5:return[4,eh("Running lint-staged","npx lint-staged --config ".concat(eg.LINT_STAGED_CONFIG_PATH))];case 6:n.sent();return[2]}})});return e_.apply(this,arguments)}function eO(){return ek.apply(this,arguments)}function ek(){ek=n(function(){return c(this,function(e){switch(e.label){case 0:return[4,eh("Inspecting ESLint rules","npx @eslint/config-inspector")];case 1:e.sent();return[2]}})});return ek.apply(this,arguments)}function eT(){return eA.apply(this,arguments)}function eA(){eA=n(function(){var e,n,t;return c(this,function(r){switch(r.label){case 0:return[4,q()];case 1:r.sent();return[4,Promise.all([ey(),eb()])];case 2:r.sent();return[4,Y()];case 3:e=r.sent(),n=e.filter(function(e){return e.type==="error"}),t=e.filter(function(e){return e.type==="warning"});!n.length&&!t.length?U.printBoxedLog("✔ NO ISSUES FOUND","",{color:"green"}):(U.printBoxedLog("⚠ Warnings",t,{color:"yellow"}),U.printBoxedLog("✖ Errors",n,{color:"red"})),U.success("✅ Lint check completed.");return[2]}})});return eA.apply(this,arguments)}function eE(){return eP.apply(this,arguments)}function eP(){eP=n(function(){return c(this,function(e){switch(e.label){case 0:return[4,eh("Running commit lint","npx commitlint --edit ".concat(eg.GIT_COMMIT_MSG," --config ").concat(eg.COMMITLINT_CONFIG_PATH))];case 1:e.sent();return[2]}})});return eP.apply(this,arguments)}function eI(){return ej.apply(this,arguments)}function ej(){ej=n(function(){var e,n,t,r,s,o;return c(this,function(i){switch(i.label){case 0:if(U.info("➡️ Starting project setup..."),!en(eg.PACKAGE_JSON_PATH)){U.error("❌ package.json not found. Aborting setup.");return[2]}i.label=1;case 1:i.trys.push([1,9,,10]);n=JSON.parse(a.readFileSync(eg.PACKAGE_JSON_PATH,"utf-8"));r=ed(v,eg.PACKAGE_NAME);if(r)return[3,4];s=(e=n.dependencies)===null||e===void 0?void 0:e[eg.PACKAGE_NAME];if(!s)return[3,3];return[4,eu(eg.PACKAGE_NAME)];case 2:s=!i.sent();i.label=3;case 3:r=s;i.label=4;case 4:if(!r)return[3,5];t=U.success("✅ Cyberskill package is already up to date.");return[3,7];case 5:U.info("\uD83D\uDCE6 Updating Cyberskill package...");return[4,ef(eg.PACKAGE_NAME)];case 6:t=(i.sent(),U.success("✅ Cyberskill package updated successfully."));i.label=7;case 7:t;return[4,eC()];case 8:i.sent(),U.success("✅ Project setup completed.");return[3,10];case 9:o=i.sent();throw U.error("❌ Failed to setup project: ".concat(o.message)),o;case 10:return[2]}})});return ej.apply(this,arguments)}function eC(){return eN.apply(this,arguments)}function eN(){eN=n(function(){var e,n;return c(this,function(t){switch(t.label){case 0:U.info("➡️ Setting up Git hooks...");e=en(eg.HUSKY_PATH);if(!e)return[3,3];return[4,X("npx rimraf ".concat(eg.HUSKY_PATH," ").concat(eg.GIT_HOOK_PATH))];case 1:t.sent();return[4,X("git config core.hooksPath ".concat(eg.GIT_HOOK_PATH))];case 2:e=t.sent();t.label=3;case 3:e,a.writeFileSync(eg.SIMPLE_GIT_HOOKS_PATH,JSON.stringify(eg.HOOKS_CONFIG,null,4));n=u.resolve(".gitignore");en(n)?a.readFileSync(n,"utf8").split("\n").includes(".simple-git-hooks.json")?U.info("✅ .simple-git-hooks.json is already ignored in .gitignore"):(a.appendFileSync(n,"\n# Ignore simple-git-hooks config\n.simple-git-hooks.json\n"),U.info("✅ Added .simple-git-hooks.json to .gitignore")):(a.writeFileSync(n,"# Ignore simple-git-hooks config\n.simple-git-hooks.json\n"),U.info("✅ Created .gitignore and added .simple-git-hooks.json"));return[4,X("npx simple-git-hooks")];case 4:t.sent(),U.success("✅ Git hooks configured successfully.");return[2]}})});return eN.apply(this,arguments)}function eG(){return ex.apply(this,arguments)}function ex(){ex=n(function(){var e,n,t,r,s,o,i,a,u,l,f;return c(this,function(c){switch(c.label){case 0:e=[{command:"npm install",message:"Standard installation"},{command:"npm install --legacy-peer-deps",message:"Attempting installation with --legacy-peer-deps"},{command:"npm install --force",message:"Attempting forced installation"}];n=true,t=false,r=undefined;c.label=1;case 1:c.trys.push([1,8,9,10]);s=e[Symbol.iterator]();c.label=2;case 2:if(!!(n=(o=s.next()).done))return[3,7];i=o.value,a=i.command,u=i.message;c.label=3;case 3:c.trys.push([3,5,,6]);U.info("➡️ ".concat(u,"..."));return[4,X(a)];case 4:c.sent(),U.success("✅ Dependencies installed using: ".concat(a));return[2];case 5:l=c.sent();U.warning("⚠️ Failed with: ".concat(a)),U.error("❌ Error: ".concat(l.message));return[3,6];case 6:n=true;return[3,2];case 7:return[3,10];case 8:f=c.sent();t=true;r=f;return[3,10];case 9:try{if(!n&&s.return!=null){s.return()}}finally{if(t){throw r}}return[7];case 10:throw new Error("❌ Failed to install dependencies after multiple attempts.")}})});return ex.apply(this,arguments)}function eF(){return eH.apply(this,arguments)}function eH(){eH=n(function(){return c(this,function(e){switch(e.label){case 0:return[4,eh("Resetting project","npx rimraf ".concat(v,"/node_modules ").concat(eg.PACKAGE_LOCK_PATH))];case 1:e.sent();return[4,eG()];case 2:e.sent();return[4,eC()];case 3:e.sent();return[2]}})});return eH.apply(this,arguments)}function eM(){return eL.apply(this,arguments)}function eL(){eL=n(function(){return c(this,function(e){switch(e.label){case 0:return[4,eh("Running unit tests","npx vitest --config ".concat(eg.UNIT_TEST_CONFIG_PATH))];case 1:e.sent();return[2]}})});return eL.apply(this,arguments)}function eR(){return eK.apply(this,arguments)}function eK(){eK=n(function(){return c(this,function(e){switch(e.label){case 0:return[4,eh("Running E2E tests","npx vitest --config ".concat(eg.E2E_TEST_CONFIG_PATH))];case 1:e.sent();return[2]}})});return eK.apply(this,arguments)}p(f(l.argv)).command("lint","Run linting checks",eT).command("lint:fix","Fix linting issues",function(){return eb(!0)}).command("lint:inspect","Inspect linting rules",eO).command("lint-staged","Run lint-staged",eS).command("commitlint","Run commitlint",eE).command("setup","Run project setup",eI).command("reset","Reset project dependencies",eF).command("test:unit","Run unit tests",eM).command("test:e2e","Run e2e tests",eR).help().parse();
|