@cyberskill/shared 1.124.0 → 1.126.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.
Files changed (82) hide show
  1. package/dist/_tsup-dts-rollup.d.cts +2 -8
  2. package/dist/_tsup-dts-rollup.d.ts +2 -8
  3. package/dist/configs/config.util.cjs +1 -1
  4. package/dist/configs/config.util.js +1 -1
  5. package/dist/configs/index.cjs +1 -1
  6. package/dist/configs/index.js +1 -1
  7. package/dist/index.cjs +1 -1
  8. package/dist/index.d.cts +0 -1
  9. package/dist/index.d.ts +0 -1
  10. package/dist/index.js +1 -1
  11. package/dist/nodejs/apollo-server/apollo-server.util.cjs +1 -1
  12. package/dist/nodejs/apollo-server/apollo-server.util.js +1 -1
  13. package/dist/nodejs/apollo-server/index.cjs +1 -1
  14. package/dist/nodejs/apollo-server/index.js +1 -1
  15. package/dist/nodejs/cli/cli.util.cjs +1 -1
  16. package/dist/nodejs/cli/cli.util.js +1 -1
  17. package/dist/nodejs/cli/index.cjs +1 -1
  18. package/dist/nodejs/cli/index.js +1 -1
  19. package/dist/nodejs/command/command.util.cjs +1 -1
  20. package/dist/nodejs/command/command.util.js +1 -1
  21. package/dist/nodejs/command/index.cjs +1 -1
  22. package/dist/nodejs/command/index.js +1 -1
  23. package/dist/nodejs/express/express.type.d.cts +0 -1
  24. package/dist/nodejs/express/express.type.d.ts +0 -1
  25. package/dist/nodejs/express/express.util.cjs +1 -1
  26. package/dist/nodejs/express/express.util.js +1 -1
  27. package/dist/nodejs/express/index.cjs +1 -1
  28. package/dist/nodejs/express/index.d.cts +0 -1
  29. package/dist/nodejs/express/index.d.ts +0 -1
  30. package/dist/nodejs/express/index.js +1 -1
  31. package/dist/nodejs/fs/fs.util.cjs +1 -1
  32. package/dist/nodejs/fs/fs.util.js +1 -1
  33. package/dist/nodejs/fs/index.cjs +1 -1
  34. package/dist/nodejs/fs/index.js +1 -1
  35. package/dist/nodejs/index.cjs +1 -1
  36. package/dist/nodejs/index.d.cts +0 -1
  37. package/dist/nodejs/index.d.ts +0 -1
  38. package/dist/nodejs/index.js +1 -1
  39. package/dist/nodejs/mongo/index.cjs +1 -1
  40. package/dist/nodejs/mongo/index.js +1 -1
  41. package/dist/nodejs/mongo/mongo.util.cjs +1 -1
  42. package/dist/nodejs/mongo/mongo.util.js +1 -1
  43. package/dist/nodejs/package/index.cjs +1 -1
  44. package/dist/nodejs/package/index.js +1 -1
  45. package/dist/nodejs/package/package.util.cjs +1 -1
  46. package/dist/nodejs/package/package.util.js +1 -1
  47. package/dist/nodejs/path/index.cjs +1 -1
  48. package/dist/nodejs/path/index.js +1 -1
  49. package/dist/nodejs/path/path.constant.cjs +1 -1
  50. package/dist/nodejs/path/path.constant.js +1 -1
  51. package/dist/nodejs/path/path.util.cjs +1 -1
  52. package/dist/nodejs/path/path.util.js +1 -1
  53. package/dist/nodejs/storage/index.cjs +1 -1
  54. package/dist/nodejs/storage/index.js +1 -1
  55. package/dist/nodejs/storage/storage.util.cjs +1 -1
  56. package/dist/nodejs/storage/storage.util.js +1 -1
  57. package/dist/react/index.cjs +1 -1
  58. package/dist/react/index.js +1 -1
  59. package/dist/react/next-intl/index.cjs +1 -1
  60. package/dist/react/next-intl/index.js +1 -1
  61. package/dist/react/next-intl/next-intl.provider.cjs +1 -1
  62. package/dist/react/next-intl/next-intl.provider.js +1 -1
  63. package/dist/react/storage/index.cjs +1 -1
  64. package/dist/react/storage/index.js +1 -1
  65. package/dist/react/storage/storage.hook.cjs +1 -1
  66. package/dist/react/storage/storage.hook.js +1 -1
  67. package/dist/react/storage/storage.util.cjs +1 -1
  68. package/dist/react/storage/storage.util.js +1 -1
  69. package/dist/react/vitest/index.cjs +1 -1
  70. package/dist/react/vitest/index.js +1 -1
  71. package/dist/react/vitest/vitest.unit.cjs +1 -1
  72. package/dist/react/vitest/vitest.unit.js +1 -1
  73. package/package.json +8 -5
  74. package/public/tsconfig.base.json +1 -2
  75. package/dist/typescript/global.d.cjs +0 -1
  76. package/dist/typescript/global.d.d.cts +0 -1
  77. package/dist/typescript/global.d.d.ts +0 -1
  78. package/dist/typescript/global.d.js +0 -0
  79. /package/dist/{nodejs/express/express.d.cjs → typescript/style.d.cjs} +0 -0
  80. /package/dist/{nodejs/express/express.d.d.cts → typescript/style.d.d.cts} +0 -0
  81. /package/dist/{nodejs/express/express.d.d.ts → typescript/style.d.d.ts} +0 -0
  82. /package/dist/{nodejs/express/express.d.js → typescript/style.d.js} +0 -0
@@ -1 +1 @@
1
- "use strict";function e(e,t){if(t==null||t>e.length)t=e.length;for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function t(t){if(Array.isArray(t))return e(t)}function n(e,t,n,r,o,a,c){try{var i=e[a](c);var u=i.value}catch(e){n(e);return}if(i.done){t(u)}else{Promise.resolve(u).then(r,o)}}function r(e){return function(){var t=this,r=arguments;return new Promise(function(o,a){var c=e.apply(t,r);function i(e){n(c,o,a,i,u,"next",e)}function u(e){n(c,o,a,i,u,"throw",e)}i(undefined)})}}function o(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 a(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function c(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};var r=Object.keys(n);if(typeof Object.getOwnPropertySymbols==="function"){r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))}r.forEach(function(t){o(e,t,n[t])})}return e}function u(e){return t(e)||a(e)||l(e)||c()}function s(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function l(t,n){if(!t)return;if(typeof t==="string")return e(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor)r=t.constructor.name;if(r==="Map"||r==="Set")return Array.from(r);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e(t,n)}function f(e,t){var n,r,o,a={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},c=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return c.next=i(0),c["throw"]=i(1),c["return"]=i(2),typeof Symbol==="function"&&(c[Symbol.iterator]=function(){return this}),c;function i(e){return function(t){return u([e,t])}}function u(i){if(n)throw new TypeError("Generator is already executing.");while(c&&(c=0,i[0]&&(a=0)),a)try{if(n=1,r&&(o=i[0]&2?r["return"]:i[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;if(r=0,o)i=[i[0]&2,o.value];switch(i[0]){case 0:case 1:o=i;break;case 4:a.label++;return{value:i[1],done:false};case 5:a.label++;r=i[1];i=[0];continue;case 7:i=a.ops.pop();a.trys.pop();continue;default:if(!(o=a.trys,o=o.length>0&&o[o.length-1])&&(i[0]===6||i[0]===2)){a=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(i[0]===6&&a.label<o[1]){a.label=o[1];o=i;break}if(o&&a.label<o[2]){a.label=o[2];a.ops.push(i);break}if(o[2])a.ops.pop();a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e];r=0}finally{n=o=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:true}}}var d=Object.create;var v=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var y=function(e,t){return v(e,"name",{value:t,configurable:!0})};var _=function(e,t){for(var n in t)v(e,n,{get:t[n],enumerable:!0})},I=function(e,t,n,r){var o=true,a=false,c=undefined;if(t&&(typeof t==="undefined"?"undefined":s(t))=="object"||typeof t=="function")try{var i=function(){var o=l.value;!h.call(e,o)&&o!==n&&v(e,o,{get:function(){return t[o]},enumerable:!(r=p(t,o))||r.enumerable})};for(var u=g(t)[Symbol.iterator](),l;!(o=(l=u.next()).done);o=true)i()}catch(e){a=true;c=e}finally{try{if(!o&&u.return!=null){u.return()}}finally{if(a){throw c}}}return e};var E=function(e,t,n){return n=e!=null?d(m(e)):{},I(t||!e||!e.__esModule?v(n,"default",{value:e,enumerable:!0}):n,e)},b=function(e){return I(v({},"__esModule",{value:!0}),e)};var O={};_(O,{vitestUnit:function(){return tf}});module.exports=b(O);var S=E(require("@vitejs/plugin-react-swc"),1),C=require("vitest/config");var T=".cyberskill-storage";var w=E(require("@dotenvx/dotenvx"),1),G=require("envalid"),R=E(require("os"),1),N=E(require("path"),1),P=E(require("process"),1);var L=!1;function k(){L||(w.default.config(),L=!0)}y(k,"loadEnvFile");function j(){k();var e=(0,G.cleanEnv)(P.default.env,{CWD:(0,G.str)({default:P.default.cwd()}),DEBUG:(0,G.bool)({default:!1}),CYBERSKILL_STORAGE_DIRECTORY:(0,G.str)({default:N.default.join(R.default.homedir(),T)})});return{CWD:e.CWD,DEBUG:e.DEBUG,CYBERSKILL_STORAGE_DIRECTORY:e.CYBERSKILL_STORAGE_DIRECTORY}}y(j,"getEnv");var D=function(e){return e.CLI="CLI",e.STRING="STRING",e.FUNCTION="FUNCTION",e}({});var U=require("child_process"),x=E(require("process"),1),A=E(require("util"),1);var M=function(e){return e.Error="error",e.Warning="warning",e}({});var F=E(require("chalk"),1),q=E(require("consola"),1),K=require("graphql");var Y=j();Y.DEBUG||(q.default.level=4);function B(e){var t=F.default[e];return typeof t=="function"?t:F.default.green}y(B,"chalkKeyword");var W={silent:q.default.silent,level:q.default.level,fatal:q.default.fatal,error:q.default.error,warn:q.default.warn,log:q.default.log,info:q.default.info,success:q.default.success,ready:q.default.ready,start:q.default.start,box:q.default.box,debug:q.default.debug,trace:q.default.trace,verbose:q.default.verbose,printBoxedLog:function e(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"red";if(!(t===null||t===void 0?void 0:t.length)){q.default.box(F.default.green(e));return}t.forEach(function(e){var t=e.file,r=e.position,o=e.rule,a=e.message;q.default.log("".concat(F.default.gray("File:")," ").concat(F.default.blue("".concat(t).concat(r?":".concat(r):"")))),o&&q.default.log(" ".concat(B(n)("Rule:")," ").concat(o)),q.default.log(" ".concat(B(n)("Message:")," ").concat(a))}),q.default.box(B(n)("".concat(e," : ").concat(t.length))),q.default.log(F.default.gray("─".repeat(40)))}};var J={isCurrentProject:!1,installedPath:"",file:{},isUpToDate:!1};var H=E(require("node-fetch"),1);var $=E(require("fs-extra"),1),V=require("path");var z=$.default,Q=z.lstatSync,X=z.readdirSync,Z=z.mkdirSync,ee=z.readFileSync,et=z.unlinkSync,en=z.statSync,er=$.default.readJsonSync;function eo(e,t,n){$.default.writeFileSync(e,t,n!==null&&n!==void 0?n:"utf-8")}y(eo,"writeFileSync");function ea(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}return t.every(function(e){return $.default.pathExistsSync(e)})}y(ea,"pathExistsSync");var ec=j();function ei(e){var t=eN(ec.CWD,eU);if(!ea(t))return!1;try{var n=er(t),r=n.name,o=n.dependencies,a=o===void 0?{}:o,c=n.devDependencies,i=c===void 0?{}:c,u=r===e,s=e in a,l=e in i;return u||s||l?{path:t,file:n,isCurrentProject:u,isDepend:s,isDevDepend:l}:!1}catch(e){return W.warn("Failed to read package.json: ".concat(e.message)),!1}}y(ei,"getPackage");function eu(e){return /*#__PURE__*/r(function(){var t,n,r,o;return f(this,function(a){switch(a.label){case 0:a.trys.push([0,3,,4]);return[4,(0,H.default)("https://registry.npmjs.org/".concat(e,"/latest"))];case 1:t=a.sent();if(!t.ok)throw new Error("Failed to fetch latest version: ".concat(t.status," ").concat(t.statusText));return[4,t.json()];case 2:n=a.sent(),r=n.version;return[2,r];case 3:o=a.sent();throw W.error('Failed to fetch version for "'.concat(e,'": ').concat(o.message)),o;case 4:return[2]}})})()}y(eu,"getLatestPackageVersion");function es(e,t){return /*#__PURE__*/r(function(){var n,r,o,a,c,u,s,l,d,v,p,g,m,h,y,_,I,E,b,O,S;return f(this,function(f){switch(f.label){case 0:f.trys.push([0,4,,5]);n=ei(e);if(!n)return[2,i({},J)];s=n.path,l=n.file,d=n.isCurrentProject,v=n.isDepend,p=n.isDevDepend,g=(r=l.dependencies)!==null&&r!==void 0?r:{},m=(o=l.devDependencies)!==null&&o!==void 0?o:{},h=d?(a=l.version)!==null&&a!==void 0?a:"0.0.0":v?(c=g[e])!==null&&c!==void 0?c:"0.0.0":p?(u=m[e])!==null&&u!==void 0?u:"0.0.0":"0.0.0";if(!d)return[3,1];I=h;return[3,3];case 1:return[4,eu(e)];case 2:I=f.sent();f.label=3;case 3:y=I,_=d||h===y;if(!_&&(t===null||t===void 0?void 0:t.update)){;b=v?"dependencies":p?"devDependencies":null;b&&((E=l[b])===null||E===void 0?void 0:E[e])!==y&&(l[b]=(O=l[b])!==null&&O!==void 0?O:{},l[b][e]=y,eo(s,JSON.stringify(l,null,4)),W.info('Updated "'.concat(e,'" to version ').concat(y)))}return[2,{isCurrentProject:d,installedPath:s,file:l,isUpToDate:_}];case 4:S=f.sent();return[2,(W.error('Error checking package "'.concat(e,'": ').concat(S.message)),i({},J))];case 5:return[2]}})})()}y(es,"checkPackage");function el(){return /*#__PURE__*/r(function(){var e,t,n,r,o,a,c,i,u,s,l,d;return f(this,function(f){switch(f.label){case 0:e=[{command:y(function(){return tl.pnpmInstallStandard()},"command"),message:"Installing dependencies (standard)"},{command:y(function(){return tl.pnpmInstallLegacy()},"command"),message:"Retrying with legacy peer dependencies"},{command:y(function(){return tl.pnpmInstallForce()},"command"),message:"Retrying with force install"}];t=true,n=false,r=undefined;f.label=1;case 1:f.trys.push([1,9,10,11]);o=e[Symbol.iterator]();f.label=2;case 2:if(!!(t=(a=o.next()).done))return[3,8];c=a.value,i=c.command,u=c.message;f.label=3;case 3:f.trys.push([3,6,,7]);return[4,i()];case 4:s=f.sent();return[4,eT("".concat(u," using: ").concat(s),s)];case 5:f.sent();return[2];case 6:l=f.sent();W.warn("Installation attempt failed: ".concat(u)),W.error("Details: ".concat(l.message));return[3,7];case 7:t=true;return[3,2];case 8:return[3,11];case 9:d=f.sent();n=true;r=d;return[3,11];case 10:try{if(!t&&o.return!=null){o.return()}}finally{if(n){throw r}}return[7];case 11:throw new Error("All dependency installation strategies failed.")}})})()}y(el,"installDependencies");function ef(e,t){return /*#__PURE__*/r(function(){var n,r,o,a,c,s,l,d,v,p,g;return f(this,function(f){switch(f.label){case 0:if(!ea(ti.PACKAGE_JSON)){W.error("package.json not found. Aborting setup.");return[2]}f.label=1;case 1:f.trys.push([1,13,,14]);n=u(new Set(e)).sort();return[4,Promise.all(n.map(function(e){return es(e,i({},(t===null||t===void 0?void 0:t.update)&&{update:t.update}))}))];case 2:r=f.sent().every(function(e){return e.isUpToDate});if(r)return[3,4];return[4,el()];case 3:r=f.sent();f.label=4;case 4:r;a=true,c=false,s=undefined;f.label=5;case 5:f.trys.push([5,10,11,12]);l=((o=t===null||t===void 0?void 0:t.postInstallActions)!==null&&o!==void 0?o:[])[Symbol.iterator]();f.label=6;case 6:if(!!(a=(d=l.next()).done))return[3,9];v=d.value;return[4,v()];case 7:f.sent();f.label=8;case 8:a=true;return[3,6];case 9:return[3,12];case 10:p=f.sent();c=true;s=p;return[3,12];case 11:try{if(!a&&l.return!=null){l.return()}}finally{if(c){throw s}}return[7];case 12:return[3,14];case 13:g=f.sent();throw W.error('Failed to setup "'.concat(e.join(", "),'": ').concat(g.message)),g;case 14:return[2]}})})()}y(ef,"setupPackages");var ed=E(require("node-persist"),1);var ev=j();function ep(){return /*#__PURE__*/r(function(){var e;return f(this,function(t){switch(t.label){case 0:e=ed.default.defaultInstance;if(e)return[3,2];return[4,ed.default.init({dir:ev.CYBERSKILL_STORAGE_DIRECTORY,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]}})})()}y(ep,"initNodePersist");var eg={get:function e(e){return /*#__PURE__*/r(function(){var t,n;return f(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,ep()];case 1:r.sent();return[4,ed.default.getItem(e)];case 2:return[2,(t=r.sent())!==null&&t!==void 0?t:null];case 3:n=r.sent();return[2,(W.error('[Storage:get] Error getting key "'.concat(e,'":'),n),null)];case 4:return[2]}})})()},set:function e(e,t){return /*#__PURE__*/r(function(){var n;return f(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,ep()];case 1:r.sent();return[4,ed.default.setItem(e,t)];case 2:r.sent();return[3,4];case 3:n=r.sent();W.error('[Storage:set] Error setting key "'.concat(e,'":'),n);return[3,4];case 4:return[2]}})})()},remove:function e(e){return /*#__PURE__*/r(function(){var t;return f(this,function(n){switch(n.label){case 0:n.trys.push([0,3,,4]);return[4,ep()];case 1:n.sent();return[4,ed.default.removeItem(e)];case 2:n.sent();return[3,4];case 3:t=n.sent();W.error('[Storage:remove] Error removing key "'.concat(e,'":'),t);return[3,4];case 4:return[2]}})})()},keys:function e(){return /*#__PURE__*/r(function(){var e,t;return f(this,function(n){switch(n.label){case 0:n.trys.push([0,3,,4]);return[4,ep()];case 1:n.sent();return[4,ed.default.keys()];case 2:e=n.sent();return[2,Array.isArray(e)?e:(W.warn("[Storage:keys] Invalid keys response:",e),[])];case 3:t=n.sent();return[2,(W.error("[Storage:keys] Error getting keys:",t),[])];case 4:return[2]}})})()},getLogLink:function e(e){return /*#__PURE__*/r(function(){return f(this,function(t){try{return[2,"".concat(ev.CYBERSKILL_STORAGE_DIRECTORY," (key: ").concat(e,")")]}catch(e){return[2,(W.error("[Storage:getLogLink] Error getting log link:",e),null)]}return[2]})})()}};var em=j(),eh=A.promisify(U.exec);function ey(e){return"error_list:".concat(e)}y(ey,"getErrorListKey");function e_(e){return /*#__PURE__*/r(function(){var t,n,o;return f(this,function(a){switch(a.label){case 0:if(e.length===0)return[2];t=Date.now(),n=ey(t);a.label=1;case 1:a.trys.push([1,3,,4]);return[4,eg.set(n,{errors:e,timestamp:t})];case 2:a.sent(),setTimeout(function(){return /*#__PURE__*/r(function(){var e;return f(this,function(t){switch(t.label){case 0:return[4,eg.getLogLink(n)];case 1:e=t.sent();e&&W.info("\uD83D\uDCC2 Open the error list manually: ".concat(e));return[2]}})})()},10);return[3,4];case 3:o=a.sent();W.error("Failed to save errors: ".concat(o.message));return[3,4];case 4:return[2]}})})()}y(e_,"saveErrorListToStorage");function eI(e){var t=[],n=[],r="",o=/^\s*(\d+):(\d+)\s+(error|warning)\s+(.+?)\s+(\S+)$/,a=/^(.+?)\((\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,u,s,l,f;var d=o.exec(e)||[],v=a.exec(e)||[],p=c.exec(e)||[];var g,m,h,y,_,I;d.length&&r?t.push({file:r,position:"".concat(d[1],":").concat(d[2]),type:d[3]===M.Error?M.Error:M.Warning,message:(g=d===null||d===void 0?void 0:(i=d[4])===null||i===void 0?void 0:i.trim())!==null&&g!==void 0?g:"",rule:(m=d===null||d===void 0?void 0:(u=d[5])===null||u===void 0?void 0:u.trim())!==null&&m!==void 0?m:""}):v.length?t.push({file:(h=v===null||v===void 0?void 0:v[1])!==null&&h!==void 0?h:"",position:"".concat(v[2],":").concat(v[3]),type:v[4]===M.Error?M.Error:M.Warning,message:(y=v===null||v===void 0?void 0:(s=v[5])===null||s===void 0?void 0:s.trim())!==null&&y!==void 0?y:""}):p.length?t.push({file:"commitlint",type:M.Error,message:(_=p===null||p===void 0?void 0:(l=p[1])===null||l===void 0?void 0:l.trim())!==null&&_!==void 0?_:"",rule:(I=p===null||p===void 0?void 0:(f=p[2])===null||f===void 0?void 0:f.trim())!==null&&I!==void 0?I:""}):n.push(e.trim())}}),t.length&&e_(t),em.DEBUG&&n.length&&(W.warn("Unmatched lines:"),n.forEach(function(e){return W.info(" ".concat(e))}))}y(eI,"parseTextErrors");function eE(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,o=e.line,a=e.column,c=e.ruleId,i=e.message;n.push({type:r===2?M.Error:M.Warning,file:t,position:"".concat(o,":").concat(a),rule:c,message:i})})}),n.length&&e_(n)}catch(t){eI(e)}}y(eE,"parseCommandOutput");function eb(e){return /*#__PURE__*/r(function(e){var t,n,r,o,a,c,i,u,s;var l=arguments;return f(this,function(f){switch(f.label){case 0:t=l.length>1&&l[1]!==void 0?l[1]:eE;n=new AbortController;x.default.on("SIGINT",function(){W.warn("Process interrupted. Terminating..."),n.abort(),x.default.exit()});f.label=1;case 1:f.trys.push([1,4,,5]);if(!(typeof e=="string"))return[3,3];return[4,eh(e,{maxBuffer:0x6400000,signal:n.signal})];case 2:r=f.sent(),o=r.stdout,a=r.stderr;[o,a].forEach(function(e){return e&&t(e)});f.label=3;case 3:return[3,5];case 4:c=f.sent();i=c.stdout,u=c.stderr,s=c.message;[i,u].forEach(function(e){return e&&t(e)}),!u&&!i&&W.error("Command failed: ".concat(s));return[3,5];case 5:return[2]}})}).apply(this,arguments)}y(eb,"executeCommand");function eO(e){return{raw:!0,cmd:e}}y(eO,"rawCommand");function eS(e,t){return(t===null||t===void 0?void 0:t.isRemote)?"".concat(e7," ").concat(ek," ").concat(e):(t===null||t===void 0?void 0:t.isCurrentProject)?"".concat(e7," ").concat(e5," ").concat(eH," ").concat(e):"".concat(e7," ").concat(eJ," ").concat(e)}y(eS,"formatCLI");function eC(e,t){return typeof e=="function"?eS(e(t),t):(typeof e==="undefined"?"undefined":s(e))=="object"&&(e===null||e===void 0?void 0:e.raw)===!0?e.cmd:typeof e=="string"?eS(e,t):e}y(eC,"formatCommand");function eT(e,t){return /*#__PURE__*/r(function(){var n;return f(this,function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);W.start("".concat(e)),em.DEBUG&&W.info("→ ".concat(t));return[4,eb(t)];case 1:r.sent(),W.success("".concat(e," done."));return[3,3];case 2:n=r.sent();throw W.error("".concat(e," failed: ").concat(n.message)),n;case 3:return[2]}})})()}y(eT,"runCommand");var ew=E(require("path"),1);var eG=j();function eR(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}return(0,ew.resolve).apply(this,[eG.CWD].concat(u(t)))}y(eR,"resolveWorkingPath");function eN(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}return(0,ew.join).apply(this,u(t))}y(eN,"join");var eP=j(),eL=eP.CWD,ek="@cyberskill/shared",ej="node_modules",eD="dist",eU="package.json",ex="package-lock.json",eA="tsconfig.json",eM=".gitignore",eF=".simple-git-hooks.json",eq="pnpm-lock.yaml",eK=".git/hooks/",eY=".git/COMMIT_EDITMSG",eB=".migrate-mongo.config.js",eW=eN(eL,ej,ek,eD),eJ="cyberskill",eH="src/nodejs/cli/index.ts",e$="eslint",eV="eslint",ez="vitest",eQ="playwright",eX="vitest",eZ="@commitlint/cli",e0="commitlint",e1="lint-staged",e2="lint-staged",e3="typescript",e4="tsc",e5="tsx",e6="git",e8="pnpm",e7="pnpm exec",e9="simple-git-hooks",te="simple-git-hooks",tt="@eslint/config-inspector",tn="eslint-config-inspector",tr="node-modules-inspector",to="node-modules-inspector",ta="migrate-mongo",tc="./node_modules/migrate-mongo/bin/migrate-mongo",ti={CYBERSKILL_DIRECTORY:eW,WORKING_DIRECTORY:eL,TS_CONFIG:eR(eA),GIT_IGNORE:eR(eM),GIT_HOOK:eR(eK),GIT_COMMIT_MSG:eR(eY),SIMPLE_GIT_HOOKS_JSON:eR(eF),PACKAGE_JSON:eR(eU),PACKAGE_LOCK_JSON:eR(ex),PNPM_LOCK_YAML:eR(eq),NODE_MODULES:eR(ej),MIGRATE_MONGO_CONFIG:eR(eB),LINT_STAGED_CONFIG:eR("".concat(eW,"/configs/lint-staged/index.js")),COMMITLINT_CONFIG:eR("".concat(eW,"/configs/commitlint/index.js")),UNIT_TEST_CONFIG:eR("".concat(eW,"/react/vitest/vitest.unit.js")),UNIT_TEST_SETUP_CONFIG:eR("".concat(eW,"/react/vitest/vitest.unit.setup.js")),E2E_TEST_CONFIG:eR("".concat(eW,"/react/vitest/vitest.e2e.js"))};function tu(e,t,n){return /*#__PURE__*/r(function(){return f(this,function(r){switch(r.label){case 0:if(!t)throw new Error("'first' argument is undefined");switch(e){case D.CLI:return[3,1];case D.STRING:return[3,3]}return[3,4];case 1:return[4,ef(t.split(" "),{update:!0})];case 2:return[2,(r.sent(),eC(eO("".concat(e7," ").concat(n))))];case 3:return[2,eC(eO(t))];case 4:throw new Error("Unsupported command type");case 5:return[2]}})})()}y(tu,"buildCommand");function ts(e,t,n){return function(){return /*#__PURE__*/r(function(){return f(this,function(r){return[2,tu(e,t,n)]})})()}}y(ts,"commandFactory");var tl={simpleGitHooks:ts(D.CLI,e9,te),eslintInspect:ts(D.CLI,tt,tn),nodeModulesInspect:ts(D.CLI,tr,to),eslintCheck:ts(D.CLI,e$,"".concat(eV," ").concat(ti.WORKING_DIRECTORY," --no-cache")),eslintFix:ts(D.CLI,e$,"".concat(eV," ").concat(ti.WORKING_DIRECTORY," --fix --no-cache")),typescriptCheck:ts(D.CLI,e3,"".concat(e4," -p ").concat(ti.TS_CONFIG," --noEmit")),configureGitHook:ts(D.STRING,"".concat(e6," config core.hooksPath ").concat(ti.GIT_HOOK)),testUnit:ts(D.CLI,ez,"".concat(eX," --config ").concat(ti.UNIT_TEST_CONFIG)),testE2e:ts(D.CLI,"".concat(ez," ").concat(eQ),"".concat(eX," --config ").concat(ti.E2E_TEST_CONFIG)),mongoMigrateCreate:y(function(e){return ts(D.CLI,ta,"".concat(e5," ").concat(tc," create ").concat(e," -f ").concat(ti.MIGRATE_MONGO_CONFIG))()},"mongoMigrateCreate"),mongoMigrateUp:ts(D.CLI,ta,"".concat(e5," ").concat(tc," up -f ").concat(ti.MIGRATE_MONGO_CONFIG)),mongoMigrateDown:ts(D.CLI,ta,"".concat(e5," ").concat(tc," down -f ").concat(ti.MIGRATE_MONGO_CONFIG)),commitLint:ts(D.CLI,eZ,"".concat(e0," --edit ").concat(ti.GIT_COMMIT_MSG," --config ").concat(ti.COMMITLINT_CONFIG)),lintStaged:ts(D.CLI,e1,"".concat(e2," --config ").concat(ti.LINT_STAGED_CONFIG)),stageBuildDirectory:ts(D.STRING,"".concat(e6," add ").concat(eD)),build:ts(D.STRING,"".concat(e8," run build")),pnpmInstallStandard:ts(D.STRING,"".concat(e8," install")),pnpmInstallLegacy:ts(D.STRING,"".concat(e8," install --legacy-peer-deps")),pnpmInstallForce:ts(D.STRING,"".concat(e8," install --force"))};function tf(e){return(0,C.defineConfig)(i({plugins:[(0,S.default)()],test:{globals:!0,environment:"jsdom",pool:"vmThreads",include:["**/*.test.unit.?(c|m)[jt]s?(x)"],setupFiles:[ti.UNIT_TEST_SETUP_CONFIG]}},e))}y(tf,"vitestUnit");0&&(module.exports={vitestUnit:vitestUnit});
1
+ "use strict";function e(e,t){if(t==null||t>e.length)t=e.length;for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function t(t){if(Array.isArray(t))return e(t)}function n(e,t,n,r,o,a,c){try{var i=e[a](c);var u=i.value}catch(e){n(e);return}if(i.done){t(u)}else{Promise.resolve(u).then(r,o)}}function r(e){return function(){var t=this,r=arguments;return new Promise(function(o,a){var c=e.apply(t,r);function i(e){n(c,o,a,i,u,"next",e)}function u(e){n(c,o,a,i,u,"throw",e)}i(undefined)})}}function o(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 a(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function c(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};var r=Object.keys(n);if(typeof Object.getOwnPropertySymbols==="function"){r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))}r.forEach(function(t){o(e,t,n[t])})}return e}function u(e){return t(e)||a(e)||l(e)||c()}function s(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function l(t,n){if(!t)return;if(typeof t==="string")return e(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor)r=t.constructor.name;if(r==="Map"||r==="Set")return Array.from(r);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e(t,n)}function f(e,t){var n,r,o,a={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},c=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return c.next=i(0),c["throw"]=i(1),c["return"]=i(2),typeof Symbol==="function"&&(c[Symbol.iterator]=function(){return this}),c;function i(e){return function(t){return u([e,t])}}function u(i){if(n)throw new TypeError("Generator is already executing.");while(c&&(c=0,i[0]&&(a=0)),a)try{if(n=1,r&&(o=i[0]&2?r["return"]:i[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;if(r=0,o)i=[i[0]&2,o.value];switch(i[0]){case 0:case 1:o=i;break;case 4:a.label++;return{value:i[1],done:false};case 5:a.label++;r=i[1];i=[0];continue;case 7:i=a.ops.pop();a.trys.pop();continue;default:if(!(o=a.trys,o=o.length>0&&o[o.length-1])&&(i[0]===6||i[0]===2)){a=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(i[0]===6&&a.label<o[1]){a.label=o[1];o=i;break}if(o&&a.label<o[2]){a.label=o[2];a.ops.push(i);break}if(o[2])a.ops.pop();a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e];r=0}finally{n=o=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:true}}}var d=Object.create;var v=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var y=function(e,t){return v(e,"name",{value:t,configurable:!0})};var I=function(e,t){for(var n in t)v(e,n,{get:t[n],enumerable:!0})},b=function(e,t,n,r){var o=true,a=false,c=undefined;if(t&&(typeof t==="undefined"?"undefined":s(t))=="object"||typeof t=="function")try{var i=function(){var o=l.value;!h.call(e,o)&&o!==n&&v(e,o,{get:function(){return t[o]},enumerable:!(r=p(t,o))||r.enumerable})};for(var u=g(t)[Symbol.iterator](),l;!(o=(l=u.next()).done);o=true)i()}catch(e){a=true;c=e}finally{try{if(!o&&u.return!=null){u.return()}}finally{if(a){throw c}}}return e};var O=function(e,t,n){return n=e!=null?d(m(e)):{},b(t||!e||!e.__esModule?v(n,"default",{value:e,enumerable:!0}):n,e)},E=function(e){return b(v({},"__esModule",{value:!0}),e)};var S={};I(S,{vitestUnit:function(){return tf}});module.exports=E(S);var C=O(require("@vitejs/plugin-react-swc"),1),T=require("vitest/config");var w=".cyberskill-storage";var _=O(require("@dotenvx/dotenvx"),1),G=require("envalid"),N=O(require("os"),1),L=O(require("path"),1),k=O(require("process"),1);var R=!1;function j(){R||(_.default.config(),R=!0)}y(j,"loadEnvFile");function D(){j();var e=(0,G.cleanEnv)(k.default.env,{CWD:(0,G.str)({default:k.default.cwd()}),DEBUG:(0,G.bool)({default:!1}),CYBERSKILL_STORAGE_DIRECTORY:(0,G.str)({default:L.default.join(N.default.homedir(),w)})});return{CWD:e.CWD,DEBUG:e.DEBUG,CYBERSKILL_STORAGE_DIRECTORY:e.CYBERSKILL_STORAGE_DIRECTORY}}y(D,"getEnv");var x=function(e){return e.CLI="CLI",e.STRING="STRING",e.FUNCTION="FUNCTION",e}({});var P=require("child_process"),A=O(require("process"),1),M=O(require("util"),1);var F=function(e){return e.Error="error",e.Warning="warning",e}({});var U=O(require("chalk"),1),K=O(require("consola"),1),q=require("graphql");var Y=D();Y.DEBUG||(K.default.level=4);function B(e){var t=U.default[e];return typeof t=="function"?t:U.default.green}y(B,"chalkKeyword");var W={silent:K.default.silent,level:K.default.level,fatal:K.default.fatal,error:K.default.error,warn:K.default.warn,log:K.default.log,info:K.default.info,success:K.default.success,ready:K.default.ready,start:K.default.start,box:K.default.box,debug:K.default.debug,trace:K.default.trace,verbose:K.default.verbose,printBoxedLog:function e(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"red";if(!(t===null||t===void 0?void 0:t.length)){K.default.box(U.default.green(e));return}t.forEach(function(e){var t=e.file,r=e.position,o=e.rule,a=e.message;K.default.log("".concat(U.default.gray("File:")," ").concat(U.default.blue("".concat(t).concat(r?":".concat(r):"")))),o&&K.default.log(" ".concat(B(n)("Rule:")," ").concat(o)),K.default.log(" ".concat(B(n)("Message:")," ").concat(a))}),K.default.box(B(n)("".concat(e," : ").concat(t.length))),K.default.log(U.default.gray("─".repeat(40)))}};var J={isCurrentProject:!1,installedPath:"",file:{},isUpToDate:!1};var H=O(require("node-fetch"),1);var $=O(require("fs-extra"),1);var V=$.default,z=V.lstatSync,Q=V.readdirSync,X=V.mkdirSync,Z=V.readFileSync,ee=V.unlinkSync,et=V.statSync,en=$.default.readJsonSync;function er(e,t,n){$.default.writeFileSync(e,t,n!==null&&n!==void 0?n:"utf-8")}y(er,"writeFileSync");function eo(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}return t.every(function(e){return $.default.pathExistsSync(e)})}y(eo,"pathExistsSync");var ea=D();function ec(e){var t=eL(ea.CWD,eP);if(!eo(t))return!1;try{var n=en(t),r=n.name,o=n.dependencies,a=o===void 0?{}:o,c=n.devDependencies,i=c===void 0?{}:c,u=r===e,s=e in a,l=e in i;return u||s||l?{path:t,file:n,isCurrentProject:u,isDepend:s,isDevDepend:l}:!1}catch(e){return W.warn("Failed to read package.json: ".concat(e.message)),!1}}y(ec,"getPackage");function ei(e){return r(function(){var t,n,r,o;return f(this,function(a){switch(a.label){case 0:a.trys.push([0,3,,4]);return[4,(0,H.default)("https://registry.npmjs.org/".concat(e,"/latest"))];case 1:t=a.sent();if(!t.ok)throw new Error("Failed to fetch latest version: ".concat(t.status," ").concat(t.statusText));return[4,t.json()];case 2:n=a.sent(),r=n.version;return[2,r];case 3:o=a.sent();throw W.error('Failed to fetch version for "'.concat(e,'": ').concat(o.message)),o;case 4:return[2]}})})()}y(ei,"getLatestPackageVersion");function eu(e,t){return r(function(){var n,r,o,a,c,u,s,l,d,v,p,g,m,h,y,I,b,O,E,S,C;return f(this,function(f){switch(f.label){case 0:f.trys.push([0,4,,5]);n=ec(e);if(!n)return[2,i({},J)];s=n.path,l=n.file,d=n.isCurrentProject,v=n.isDepend,p=n.isDevDepend,g=(r=l.dependencies)!==null&&r!==void 0?r:{},m=(o=l.devDependencies)!==null&&o!==void 0?o:{},h=d?(a=l.version)!==null&&a!==void 0?a:"0.0.0":v?(c=g[e])!==null&&c!==void 0?c:"0.0.0":p?(u=m[e])!==null&&u!==void 0?u:"0.0.0":"0.0.0";if(!d)return[3,1];b=h;return[3,3];case 1:return[4,ei(e)];case 2:b=f.sent();f.label=3;case 3:y=b,I=d||h===y;if(!I&&(t===null||t===void 0?void 0:t.update)){;E=v?"dependencies":p?"devDependencies":null;E&&((O=l[E])===null||O===void 0?void 0:O[e])!==y&&(l[E]=(S=l[E])!==null&&S!==void 0?S:{},l[E][e]=y,er(s,JSON.stringify(l,null,4)),W.info('Updated "'.concat(e,'" to version ').concat(y)))}return[2,{isCurrentProject:d,installedPath:s,file:l,isUpToDate:I}];case 4:C=f.sent();return[2,(W.error('Error checking package "'.concat(e,'": ').concat(C.message)),i({},J))];case 5:return[2]}})})()}y(eu,"checkPackage");function es(){return r(function(){var e,t,n,r,o,a,c,i,u,s,l,d;return f(this,function(f){switch(f.label){case 0:e=[{command:y(function(){return tl.pnpmInstallStandard()},"command"),message:"Installing dependencies (standard)"},{command:y(function(){return tl.pnpmInstallLegacy()},"command"),message:"Retrying with legacy peer dependencies"},{command:y(function(){return tl.pnpmInstallForce()},"command"),message:"Retrying with force install"}];t=true,n=false,r=undefined;f.label=1;case 1:f.trys.push([1,9,10,11]);o=e[Symbol.iterator]();f.label=2;case 2:if(!!(t=(a=o.next()).done))return[3,8];c=a.value,i=c.command,u=c.message;f.label=3;case 3:f.trys.push([3,6,,7]);return[4,i()];case 4:s=f.sent();return[4,eT("".concat(u," using: ").concat(s),s)];case 5:f.sent();return[2];case 6:l=f.sent();W.warn("Installation attempt failed: ".concat(u)),W.error("Details: ".concat(l.message));return[3,7];case 7:t=true;return[3,2];case 8:return[3,11];case 9:d=f.sent();n=true;r=d;return[3,11];case 10:try{if(!t&&o.return!=null){o.return()}}finally{if(n){throw r}}return[7];case 11:throw new Error("All dependency installation strategies failed.")}})})()}y(es,"installDependencies");function el(e,t){return r(function(){var n,r,o,a,c,s,l,d,v,p,g;return f(this,function(f){switch(f.label){case 0:if(!eo(ti.PACKAGE_JSON)){W.error("package.json not found. Aborting setup.");return[2]}f.label=1;case 1:f.trys.push([1,13,,14]);n=u(new Set(e)).sort();return[4,Promise.all(n.map(function(e){return eu(e,i({},(t===null||t===void 0?void 0:t.update)&&{update:t.update}))}))];case 2:r=f.sent().every(function(e){return e.isUpToDate});if(r)return[3,4];return[4,es()];case 3:r=f.sent();f.label=4;case 4:r;a=true,c=false,s=undefined;f.label=5;case 5:f.trys.push([5,10,11,12]);l=((o=t===null||t===void 0?void 0:t.postInstallActions)!==null&&o!==void 0?o:[])[Symbol.iterator]();f.label=6;case 6:if(!!(a=(d=l.next()).done))return[3,9];v=d.value;return[4,v()];case 7:f.sent();f.label=8;case 8:a=true;return[3,6];case 9:return[3,12];case 10:p=f.sent();c=true;s=p;return[3,12];case 11:try{if(!a&&l.return!=null){l.return()}}finally{if(c){throw s}}return[7];case 12:return[3,14];case 13:g=f.sent();throw W.error('Failed to setup "'.concat(e.join(", "),'": ').concat(g.message)),g;case 14:return[2]}})})()}y(el,"setupPackages");var ef=O(require("node-persist"),1);var ed=D();function ev(){return r(function(){var e;return f(this,function(t){switch(t.label){case 0:e=ef.default.defaultInstance;if(e)return[3,2];return[4,ef.default.init({dir:ed.CYBERSKILL_STORAGE_DIRECTORY,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]}})})()}y(ev,"initNodePersist");var ep={get:function e(e){return r(function(){var t,n;return f(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,ev()];case 1:r.sent();return[4,ef.default.getItem(e)];case 2:return[2,(t=r.sent())!==null&&t!==void 0?t:null];case 3:n=r.sent();return[2,(W.error('[Storage:get] Error getting key "'.concat(e,'":'),n),null)];case 4:return[2]}})})()},set:function e(e,t){return r(function(){var n;return f(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,ev()];case 1:r.sent();return[4,ef.default.setItem(e,t)];case 2:r.sent();return[3,4];case 3:n=r.sent();W.error('[Storage:set] Error setting key "'.concat(e,'":'),n);return[3,4];case 4:return[2]}})})()},remove:function e(e){return r(function(){var t;return f(this,function(n){switch(n.label){case 0:n.trys.push([0,3,,4]);return[4,ev()];case 1:n.sent();return[4,ef.default.removeItem(e)];case 2:n.sent();return[3,4];case 3:t=n.sent();W.error('[Storage:remove] Error removing key "'.concat(e,'":'),t);return[3,4];case 4:return[2]}})})()},keys:function e(){return r(function(){var e,t;return f(this,function(n){switch(n.label){case 0:n.trys.push([0,3,,4]);return[4,ev()];case 1:n.sent();return[4,ef.default.keys()];case 2:e=n.sent();return[2,Array.isArray(e)?e:(W.warn("[Storage:keys] Invalid keys response:",e),[])];case 3:t=n.sent();return[2,(W.error("[Storage:keys] Error getting keys:",t),[])];case 4:return[2]}})})()},getLogLink:function e(e){return r(function(){return f(this,function(t){try{return[2,"".concat(ed.CYBERSKILL_STORAGE_DIRECTORY," (key: ").concat(e,")")]}catch(e){return[2,(W.error("[Storage:getLogLink] Error getting log link:",e),null)]}return[2]})})()}};var eg=D(),em=M.promisify(P.exec);function eh(e){return"error_list:".concat(e)}y(eh,"getErrorListKey");function ey(e){return r(function(){var t,n,o;return f(this,function(a){switch(a.label){case 0:if(e.length===0)return[2];t=Date.now(),n=eh(t);a.label=1;case 1:a.trys.push([1,3,,4]);return[4,ep.set(n,{errors:e,timestamp:t})];case 2:a.sent(),setTimeout(function(){return r(function(){var e;return f(this,function(t){switch(t.label){case 0:return[4,ep.getLogLink(n)];case 1:e=t.sent();e&&W.info("\uD83D\uDCC2 Open the error list manually: ".concat(e));return[2]}})})()},10);return[3,4];case 3:o=a.sent();W.error("Failed to save errors: ".concat(o.message));return[3,4];case 4:return[2]}})})()}y(ey,"saveErrorListToStorage");function eI(e){var t=[],n=[],r="",o=/^\s*(\d+):(\d+)\s+(error|warning)\s+(.+?)\s+(\S+)$/,a=/^(.+?)\((\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,u,s,l,f;var d=o.exec(e)||[],v=a.exec(e)||[],p=c.exec(e)||[];var g,m,h,y,I,b;d.length&&r?t.push({file:r,position:"".concat(d[1],":").concat(d[2]),type:d[3]===F.Error?F.Error:F.Warning,message:(g=d===null||d===void 0?void 0:(i=d[4])===null||i===void 0?void 0:i.trim())!==null&&g!==void 0?g:"",rule:(m=d===null||d===void 0?void 0:(u=d[5])===null||u===void 0?void 0:u.trim())!==null&&m!==void 0?m:""}):v.length?t.push({file:(h=v===null||v===void 0?void 0:v[1])!==null&&h!==void 0?h:"",position:"".concat(v[2],":").concat(v[3]),type:v[4]===F.Error?F.Error:F.Warning,message:(y=v===null||v===void 0?void 0:(s=v[5])===null||s===void 0?void 0:s.trim())!==null&&y!==void 0?y:""}):p.length?t.push({file:"commitlint",type:F.Error,message:(I=p===null||p===void 0?void 0:(l=p[1])===null||l===void 0?void 0:l.trim())!==null&&I!==void 0?I:"",rule:(b=p===null||p===void 0?void 0:(f=p[2])===null||f===void 0?void 0:f.trim())!==null&&b!==void 0?b:""}):n.push(e.trim())}}),t.length&&ey(t),eg.DEBUG&&n.length&&(W.warn("Unmatched lines:"),n.forEach(function(e){return W.info(" ".concat(e))}))}y(eI,"parseTextErrors");function eb(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,o=e.line,a=e.column,c=e.ruleId,i=e.message;n.push({type:r===2?F.Error:F.Warning,file:t,position:"".concat(o,":").concat(a),rule:c,message:i})})}),n.length&&ey(n)}catch(t){eI(e)}}y(eb,"parseCommandOutput");function eO(e){return r(function(e){var t,n,r,o,a,c,i,u,s;var l=arguments;return f(this,function(f){switch(f.label){case 0:t=l.length>1&&l[1]!==void 0?l[1]:eb;n=new AbortController;A.default.on("SIGINT",function(){W.warn("Process interrupted. Terminating..."),n.abort(),A.default.exit()});f.label=1;case 1:f.trys.push([1,4,,5]);if(!(typeof e=="string"))return[3,3];return[4,em(e,{maxBuffer:0x6400000,signal:n.signal})];case 2:r=f.sent(),o=r.stdout,a=r.stderr;[o,a].forEach(function(e){return e&&t(e)});f.label=3;case 3:return[3,5];case 4:c=f.sent();i=c.stdout,u=c.stderr,s=c.message;[i,u].forEach(function(e){return e&&t(e)}),!u&&!i&&W.error("Command failed: ".concat(s));return[3,5];case 5:return[2]}})}).apply(this,arguments)}y(eO,"executeCommand");function eE(e){return{raw:!0,cmd:e}}y(eE,"rawCommand");function eS(e,t){return(t===null||t===void 0?void 0:t.isRemote)?"".concat(e7," ").concat(ej," ").concat(e):(t===null||t===void 0?void 0:t.isCurrentProject)?"".concat(e7," ").concat(e5," ").concat(eH," ").concat(e):"".concat(e7," ").concat(eJ," ").concat(e)}y(eS,"formatCLI");function eC(e,t){return typeof e=="function"?eS(e(t),t):(typeof e==="undefined"?"undefined":s(e))=="object"&&(e===null||e===void 0?void 0:e.raw)===!0?e.cmd:typeof e=="string"?eS(e,t):e}y(eC,"formatCommand");function eT(e,t){return r(function(){var n;return f(this,function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);W.start("".concat(e)),eg.DEBUG&&W.info("→ ".concat(t));return[4,eO(t)];case 1:r.sent(),W.success("".concat(e," done."));return[3,3];case 2:n=r.sent();throw W.error("".concat(e," failed: ").concat(n.message)),n;case 3:return[2]}})})()}y(eT,"runCommand");var ew=O(require("path"),1);var e_=D(),eG=ew.default;function eN(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}var r;return(r=eG).resolve.apply(r,[e_.CWD].concat(u(t)))}y(eN,"resolveWorkingPath");function eL(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}var r;return(r=eG).join.apply(r,u(t))}y(eL,"join");var ek=D(),eR=ek.CWD,ej="@cyberskill/shared",eD="node_modules",ex="dist",eP="package.json",eA="package-lock.json",eM="tsconfig.json",eF=".gitignore",eU=".simple-git-hooks.json",eK="pnpm-lock.yaml",eq=".git/hooks/",eY=".git/COMMIT_EDITMSG",eB=".migrate-mongo.config.js",eW=eL(eR,eD,ej,ex),eJ="cyberskill",eH="src/nodejs/cli/index.ts",e$="eslint",eV="eslint",ez="vitest",eQ="playwright",eX="vitest",eZ="@commitlint/cli",e0="commitlint",e1="lint-staged",e2="lint-staged",e3="typescript",e4="tsc",e5="tsx",e6="git",e8="pnpm",e7="pnpm exec",e9="simple-git-hooks",te="simple-git-hooks",tt="@eslint/config-inspector",tn="eslint-config-inspector",tr="node-modules-inspector",to="node-modules-inspector",ta="migrate-mongo",tc="./node_modules/migrate-mongo/bin/migrate-mongo",ti={CYBERSKILL_DIRECTORY:eW,WORKING_DIRECTORY:eR,TS_CONFIG:eN(eM),GIT_IGNORE:eN(eF),GIT_HOOK:eN(eq),GIT_COMMIT_MSG:eN(eY),SIMPLE_GIT_HOOKS_JSON:eN(eU),PACKAGE_JSON:eN(eP),PACKAGE_LOCK_JSON:eN(eA),PNPM_LOCK_YAML:eN(eK),NODE_MODULES:eN(eD),MIGRATE_MONGO_CONFIG:eN(eB),LINT_STAGED_CONFIG:eN("".concat(eW,"/configs/lint-staged/index.js")),COMMITLINT_CONFIG:eN("".concat(eW,"/configs/commitlint/index.js")),UNIT_TEST_CONFIG:eN("".concat(eW,"/react/vitest/vitest.unit.js")),UNIT_TEST_SETUP_CONFIG:eN("".concat(eW,"/react/vitest/vitest.unit.setup.js")),E2E_TEST_CONFIG:eN("".concat(eW,"/react/vitest/vitest.e2e.js"))};function tu(e,t,n){return r(function(){return f(this,function(r){switch(r.label){case 0:if(!t)throw new Error("'first' argument is undefined");switch(e){case x.CLI:return[3,1];case x.STRING:return[3,3]}return[3,4];case 1:return[4,el(t.split(" "),{update:!0})];case 2:return[2,(r.sent(),eC(eE("".concat(e7," ").concat(n))))];case 3:return[2,eC(eE(t))];case 4:throw new Error("Unsupported command type");case 5:return[2]}})})()}y(tu,"buildCommand");function ts(e,t,n){return function(){return r(function(){return f(this,function(r){return[2,tu(e,t,n)]})})()}}y(ts,"commandFactory");var tl={simpleGitHooks:ts(x.CLI,e9,te),eslintInspect:ts(x.CLI,tt,tn),nodeModulesInspect:ts(x.CLI,tr,to),eslintCheck:ts(x.CLI,e$,"".concat(eV," ").concat(ti.WORKING_DIRECTORY," --no-cache")),eslintFix:ts(x.CLI,e$,"".concat(eV," ").concat(ti.WORKING_DIRECTORY," --fix --no-cache")),typescriptCheck:ts(x.CLI,e3,"".concat(e4," -p ").concat(ti.TS_CONFIG," --noEmit")),configureGitHook:ts(x.STRING,"".concat(e6," config core.hooksPath ").concat(ti.GIT_HOOK)),testUnit:ts(x.CLI,ez,"".concat(eX," --config ").concat(ti.UNIT_TEST_CONFIG)),testE2e:ts(x.CLI,"".concat(ez," ").concat(eQ),"".concat(eX," --config ").concat(ti.E2E_TEST_CONFIG)),mongoMigrateCreate:y(function(e){return ts(x.CLI,ta,"".concat(e5," ").concat(tc," create ").concat(e," -f ").concat(ti.MIGRATE_MONGO_CONFIG))()},"mongoMigrateCreate"),mongoMigrateUp:ts(x.CLI,ta,"".concat(e5," ").concat(tc," up -f ").concat(ti.MIGRATE_MONGO_CONFIG)),mongoMigrateDown:ts(x.CLI,ta,"".concat(e5," ").concat(tc," down -f ").concat(ti.MIGRATE_MONGO_CONFIG)),commitLint:ts(x.CLI,eZ,"".concat(e0," --edit ").concat(ti.GIT_COMMIT_MSG," --config ").concat(ti.COMMITLINT_CONFIG)),lintStaged:ts(x.CLI,e1,"".concat(e2," --config ").concat(ti.LINT_STAGED_CONFIG)),stageBuildDirectory:ts(x.STRING,"".concat(e6," add ").concat(ex)),build:ts(x.STRING,"".concat(e8," run build")),pnpmInstallStandard:ts(x.STRING,"".concat(e8," install")),pnpmInstallLegacy:ts(x.STRING,"".concat(e8," install --legacy-peer-deps")),pnpmInstallForce:ts(x.STRING,"".concat(e8," install --force"))};function tf(e){return(0,T.defineConfig)(i({plugins:[(0,C.default)()],test:{globals:!0,environment:"jsdom",pool:"vmThreads",include:["**/*.test.unit.?(c|m)[jt]s?(x)"],setupFiles:[ti.UNIT_TEST_SETUP_CONFIG]}},e))}y(tf,"vitestUnit");0&&(module.exports={vitestUnit:vitestUnit});
@@ -1 +1 @@
1
- function e(e,t){if(t==null||t>e.length)t=e.length;for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function t(t){if(Array.isArray(t))return e(t)}function n(e,t,n,r,o,c,a){try{var i=e[c](a);var s=i.value}catch(e){n(e);return}if(i.done){t(s)}else{Promise.resolve(s).then(r,o)}}function r(e){return function(){var t=this,r=arguments;return new Promise(function(o,c){var a=e.apply(t,r);function i(e){n(a,o,c,i,s,"next",e)}function s(e){n(a,o,c,i,s,"throw",e)}i(undefined)})}}function o(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 c(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function a(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};var r=Object.keys(n);if(typeof Object.getOwnPropertySymbols==="function"){r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))}r.forEach(function(t){o(e,t,n[t])})}return e}function s(e){return t(e)||c(e)||l(e)||a()}function u(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function l(t,n){if(!t)return;if(typeof t==="string")return e(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor)r=t.constructor.name;if(r==="Map"||r==="Set")return Array.from(r);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e(t,n)}function f(e,t){var n,r,o,c={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},a=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return a.next=i(0),a["throw"]=i(1),a["return"]=i(2),typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function i(e){return function(t){return s([e,t])}}function s(i){if(n)throw new TypeError("Generator is already executing.");while(a&&(a=0,i[0]&&(c=0)),c)try{if(n=1,r&&(o=i[0]&2?r["return"]:i[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;if(r=0,o)i=[i[0]&2,o.value];switch(i[0]){case 0:case 1:o=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(!(o=c.trys,o=o.length>0&&o[o.length-1])&&(i[0]===6||i[0]===2)){c=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]<o[3])){c.label=i[1];break}if(i[0]===6&&c.label<o[1]){c.label=o[1];o=i;break}if(o&&c.label<o[2]){c.label=o[2];c.ops.push(i);break}if(o[2])c.ops.pop();c.trys.pop();continue}i=t.call(e,c)}catch(e){i=[6,e];r=0}finally{n=o=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:true}}}var d=Object.defineProperty;var p=function(e,t){return d(e,"name",{value:t,configurable:!0})};import m from"@vitejs/plugin-react-swc";import{defineConfig as g}from"vitest/config";var v=".cyberskill-storage";import h from"@dotenvx/dotenvx";import{bool as y,cleanEnv as _,str as I}from"envalid";import E from"node:os";import b from"node:path";import C from"node:process";var S=!1;function O(){S||(h.config(),S=!0)}p(O,"loadEnvFile");function T(){O();var e=_(C.env,{CWD:I({default:C.cwd()}),DEBUG:y({default:!1}),CYBERSKILL_STORAGE_DIRECTORY:I({default:b.join(E.homedir(),v)})});return{CWD:e.CWD,DEBUG:e.DEBUG,CYBERSKILL_STORAGE_DIRECTORY:e.CYBERSKILL_STORAGE_DIRECTORY}}p(T,"getEnv");var w=function(e){return e.CLI="CLI",e.STRING="STRING",e.FUNCTION="FUNCTION",e}({});import{exec as G}from"node:child_process";import R from"node:process";import*as N from"node:util";var L=function(e){return e.Error="error",e.Warning="warning",e}({});import k from"chalk";import P from"consola";import{GraphQLError as D}from"graphql";var U=T();U.DEBUG||(P.level=4);function j(e){var t=k[e];return typeof t=="function"?t:k.green}p(j,"chalkKeyword");var x={silent:P.silent,level:P.level,fatal:P.fatal,error:P.error,warn:P.warn,log:P.log,info:P.info,success:P.success,ready:P.ready,start:P.start,box:P.box,debug:P.debug,trace:P.trace,verbose:P.verbose,printBoxedLog:function e(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"red";if(!(t===null||t===void 0?void 0:t.length)){P.box(k.green(e));return}t.forEach(function(e){var t=e.file,r=e.position,o=e.rule,c=e.message;P.log("".concat(k.gray("File:")," ").concat(k.blue("".concat(t).concat(r?":".concat(r):"")))),o&&P.log(" ".concat(j(n)("Rule:")," ").concat(o)),P.log(" ".concat(j(n)("Message:")," ").concat(c))}),P.box(j(n)("".concat(e," : ").concat(t.length))),P.log(k.gray("─".repeat(40)))}};var A={isCurrentProject:!1,installedPath:"",file:{},isUpToDate:!1};import F from"node-fetch";import M from"fs-extra";var K=M.lstatSync,Y=M.readdirSync,B=M.mkdirSync,W=M.readFileSync,J=M.unlinkSync,H=M.statSync,$=M.readJsonSync;function q(e,t,n){M.writeFileSync(e,t,n!==null&&n!==void 0?n:"utf-8")}p(q,"writeFileSync");function Q(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}return t.every(function(e){return M.pathExistsSync(e)})}p(Q,"pathExistsSync");var V=T();function z(e){var t=eb(V.CWD,eG);if(!Q(t))return!1;try{var n=$(t),r=n.name,o=n.dependencies,c=o===void 0?{}:o,a=n.devDependencies,i=a===void 0?{}:a,s=r===e,u=e in c,l=e in i;return s||u||l?{path:t,file:n,isCurrentProject:s,isDepend:u,isDevDepend:l}:!1}catch(e){return x.warn("Failed to read package.json: ".concat(e.message)),!1}}p(z,"getPackage");function X(e){return /*#__PURE__*/r(function(){var t,n,r,o;return f(this,function(c){switch(c.label){case 0:c.trys.push([0,3,,4]);return[4,F("https://registry.npmjs.org/".concat(e,"/latest"))];case 1:t=c.sent();if(!t.ok)throw new Error("Failed to fetch latest version: ".concat(t.status," ").concat(t.statusText));return[4,t.json()];case 2:n=c.sent(),r=n.version;return[2,r];case 3:o=c.sent();throw x.error('Failed to fetch version for "'.concat(e,'": ').concat(o.message)),o;case 4:return[2]}})})()}p(X,"getLatestPackageVersion");function Z(e,t){return /*#__PURE__*/r(function(){var n,r,o,c,a,s,u,l,d,p,m,g,v,h,y,_,I,E,b,C,S;return f(this,function(f){switch(f.label){case 0:f.trys.push([0,4,,5]);n=z(e);if(!n)return[2,i({},A)];u=n.path,l=n.file,d=n.isCurrentProject,p=n.isDepend,m=n.isDevDepend,g=(r=l.dependencies)!==null&&r!==void 0?r:{},v=(o=l.devDependencies)!==null&&o!==void 0?o:{},h=d?(c=l.version)!==null&&c!==void 0?c:"0.0.0":p?(a=g[e])!==null&&a!==void 0?a:"0.0.0":m?(s=v[e])!==null&&s!==void 0?s:"0.0.0":"0.0.0";if(!d)return[3,1];I=h;return[3,3];case 1:return[4,X(e)];case 2:I=f.sent();f.label=3;case 3:y=I,_=d||h===y;if(!_&&(t===null||t===void 0?void 0:t.update)){;b=p?"dependencies":m?"devDependencies":null;b&&((E=l[b])===null||E===void 0?void 0:E[e])!==y&&(l[b]=(C=l[b])!==null&&C!==void 0?C:{},l[b][e]=y,q(u,JSON.stringify(l,null,4)),x.info('Updated "'.concat(e,'" to version ').concat(y)))}return[2,{isCurrentProject:d,installedPath:u,file:l,isUpToDate:_}];case 4:S=f.sent();return[2,(x.error('Error checking package "'.concat(e,'": ').concat(S.message)),i({},A))];case 5:return[2]}})})()}p(Z,"checkPackage");function ee(){return /*#__PURE__*/r(function(){var e,t,n,r,o,c,a,i,s,u,l,d;return f(this,function(f){switch(f.label){case 0:e=[{command:p(function(){return tn.pnpmInstallStandard()},"command"),message:"Installing dependencies (standard)"},{command:p(function(){return tn.pnpmInstallLegacy()},"command"),message:"Retrying with legacy peer dependencies"},{command:p(function(){return tn.pnpmInstallForce()},"command"),message:"Retrying with force install"}];t=true,n=false,r=undefined;f.label=1;case 1:f.trys.push([1,9,10,11]);o=e[Symbol.iterator]();f.label=2;case 2:if(!!(t=(c=o.next()).done))return[3,8];a=c.value,i=a.command,s=a.message;f.label=3;case 3:f.trys.push([3,6,,7]);return[4,i()];case 4:u=f.sent();return[4,ev("".concat(s," using: ").concat(u),u)];case 5:f.sent();return[2];case 6:l=f.sent();x.warn("Installation attempt failed: ".concat(s)),x.error("Details: ".concat(l.message));return[3,7];case 7:t=true;return[3,2];case 8:return[3,11];case 9:d=f.sent();n=true;r=d;return[3,11];case 10:try{if(!t&&o.return!=null){o.return()}}finally{if(n){throw r}}return[7];case 11:throw new Error("All dependency installation strategies failed.")}})})()}p(ee,"installDependencies");function et(e,t){return /*#__PURE__*/r(function(){var n,r,o,c,a,u,l,d,p,m,g;return f(this,function(f){switch(f.label){case 0:if(!Q(e9.PACKAGE_JSON)){x.error("package.json not found. Aborting setup.");return[2]}f.label=1;case 1:f.trys.push([1,13,,14]);n=s(new Set(e)).sort();return[4,Promise.all(n.map(function(e){return Z(e,i({},(t===null||t===void 0?void 0:t.update)&&{update:t.update}))}))];case 2:r=f.sent().every(function(e){return e.isUpToDate});if(r)return[3,4];return[4,ee()];case 3:r=f.sent();f.label=4;case 4:r;c=true,a=false,u=undefined;f.label=5;case 5:f.trys.push([5,10,11,12]);l=((o=t===null||t===void 0?void 0:t.postInstallActions)!==null&&o!==void 0?o:[])[Symbol.iterator]();f.label=6;case 6:if(!!(c=(d=l.next()).done))return[3,9];p=d.value;return[4,p()];case 7:f.sent();f.label=8;case 8:c=true;return[3,6];case 9:return[3,12];case 10:m=f.sent();a=true;u=m;return[3,12];case 11:try{if(!c&&l.return!=null){l.return()}}finally{if(a){throw u}}return[7];case 12:return[3,14];case 13:g=f.sent();throw x.error('Failed to setup "'.concat(e.join(", "),'": ').concat(g.message)),g;case 14:return[2]}})})()}p(et,"setupPackages");import en from"node-persist";var er=T();function eo(){return /*#__PURE__*/r(function(){var e;return f(this,function(t){switch(t.label){case 0:e=en.defaultInstance;if(e)return[3,2];return[4,en.init({dir:er.CYBERSKILL_STORAGE_DIRECTORY,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]}})})()}p(eo,"initNodePersist");var ec={get:function e(e){return /*#__PURE__*/r(function(){var t,n;return f(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,eo()];case 1:r.sent();return[4,en.getItem(e)];case 2:return[2,(t=r.sent())!==null&&t!==void 0?t:null];case 3:n=r.sent();return[2,(x.error('[Storage:get] Error getting key "'.concat(e,'":'),n),null)];case 4:return[2]}})})()},set:function e(e,t){return /*#__PURE__*/r(function(){var n;return f(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,eo()];case 1:r.sent();return[4,en.setItem(e,t)];case 2:r.sent();return[3,4];case 3:n=r.sent();x.error('[Storage:set] Error setting key "'.concat(e,'":'),n);return[3,4];case 4:return[2]}})})()},remove:function e(e){return /*#__PURE__*/r(function(){var t;return f(this,function(n){switch(n.label){case 0:n.trys.push([0,3,,4]);return[4,eo()];case 1:n.sent();return[4,en.removeItem(e)];case 2:n.sent();return[3,4];case 3:t=n.sent();x.error('[Storage:remove] Error removing key "'.concat(e,'":'),t);return[3,4];case 4:return[2]}})})()},keys:function e(){return /*#__PURE__*/r(function(){var e,t;return f(this,function(n){switch(n.label){case 0:n.trys.push([0,3,,4]);return[4,eo()];case 1:n.sent();return[4,en.keys()];case 2:e=n.sent();return[2,Array.isArray(e)?e:(x.warn("[Storage:keys] Invalid keys response:",e),[])];case 3:t=n.sent();return[2,(x.error("[Storage:keys] Error getting keys:",t),[])];case 4:return[2]}})})()},getLogLink:function e(e){return /*#__PURE__*/r(function(){return f(this,function(t){try{return[2,"".concat(er.CYBERSKILL_STORAGE_DIRECTORY," (key: ").concat(e,")")]}catch(e){return[2,(x.error("[Storage:getLogLink] Error getting log link:",e),null)]}return[2]})})()}};var ea=T(),ei=N.promisify(G);function es(e){return"error_list:".concat(e)}p(es,"getErrorListKey");function eu(e){return /*#__PURE__*/r(function(){var t,n,o;return f(this,function(c){switch(c.label){case 0:if(e.length===0)return[2];t=Date.now(),n=es(t);c.label=1;case 1:c.trys.push([1,3,,4]);return[4,ec.set(n,{errors:e,timestamp:t})];case 2:c.sent(),setTimeout(function(){return /*#__PURE__*/r(function(){var e;return f(this,function(t){switch(t.label){case 0:return[4,ec.getLogLink(n)];case 1:e=t.sent();e&&x.info("\uD83D\uDCC2 Open the error list manually: ".concat(e));return[2]}})})()},10);return[3,4];case 3:o=c.sent();x.error("Failed to save errors: ".concat(o.message));return[3,4];case 4:return[2]}})})()}p(eu,"saveErrorListToStorage");function el(e){var t=[],n=[],r="",o=/^\s*(\d+):(\d+)\s+(error|warning)\s+(.+?)\s+(\S+)$/,c=/^(.+?)\((\d+),(\d+)\):\s+(error|warning)\s+TS\d+:\s+(\S.+)$/,a=/^✖\s+(.*?)\s+\[(.*?)\]$/;e.split("\n").forEach(function(e){if(e.startsWith("/"))r=e.trim();else{var i,s,u,l,f;var d=o.exec(e)||[],p=c.exec(e)||[],m=a.exec(e)||[];var g,v,h,y,_,I;d.length&&r?t.push({file:r,position:"".concat(d[1],":").concat(d[2]),type:d[3]===L.Error?L.Error:L.Warning,message:(g=d===null||d===void 0?void 0:(i=d[4])===null||i===void 0?void 0:i.trim())!==null&&g!==void 0?g:"",rule:(v=d===null||d===void 0?void 0:(s=d[5])===null||s===void 0?void 0:s.trim())!==null&&v!==void 0?v:""}):p.length?t.push({file:(h=p===null||p===void 0?void 0:p[1])!==null&&h!==void 0?h:"",position:"".concat(p[2],":").concat(p[3]),type:p[4]===L.Error?L.Error:L.Warning,message:(y=p===null||p===void 0?void 0:(u=p[5])===null||u===void 0?void 0:u.trim())!==null&&y!==void 0?y:""}):m.length?t.push({file:"commitlint",type:L.Error,message:(_=m===null||m===void 0?void 0:(l=m[1])===null||l===void 0?void 0:l.trim())!==null&&_!==void 0?_:"",rule:(I=m===null||m===void 0?void 0:(f=m[2])===null||f===void 0?void 0:f.trim())!==null&&I!==void 0?I:""}):n.push(e.trim())}}),t.length&&eu(t),ea.DEBUG&&n.length&&(x.warn("Unmatched lines:"),n.forEach(function(e){return x.info(" ".concat(e))}))}p(el,"parseTextErrors");function ef(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,o=e.line,c=e.column,a=e.ruleId,i=e.message;n.push({type:r===2?L.Error:L.Warning,file:t,position:"".concat(o,":").concat(c),rule:a,message:i})})}),n.length&&eu(n)}catch(t){el(e)}}p(ef,"parseCommandOutput");function ed(e){return /*#__PURE__*/r(function(e){var t,n,r,o,c,a,i,s,u;var l=arguments;return f(this,function(f){switch(f.label){case 0:t=l.length>1&&l[1]!==void 0?l[1]:ef;n=new AbortController;R.on("SIGINT",function(){x.warn("Process interrupted. Terminating..."),n.abort(),R.exit()});f.label=1;case 1:f.trys.push([1,4,,5]);if(!(typeof e=="string"))return[3,3];return[4,ei(e,{maxBuffer:0x6400000,signal:n.signal})];case 2:r=f.sent(),o=r.stdout,c=r.stderr;[o,c].forEach(function(e){return e&&t(e)});f.label=3;case 3:return[3,5];case 4:a=f.sent();i=a.stdout,s=a.stderr,u=a.message;[i,s].forEach(function(e){return e&&t(e)}),!s&&!i&&x.error("Command failed: ".concat(u));return[3,5];case 5:return[2]}})}).apply(this,arguments)}p(ed,"executeCommand");function ep(e){return{raw:!0,cmd:e}}p(ep,"rawCommand");function em(e,t){return(t===null||t===void 0?void 0:t.isRemote)?"".concat(e0," ").concat(eO," ").concat(e):(t===null||t===void 0?void 0:t.isCurrentProject)?"".concat(e0," ").concat(ez," ").concat(eF," ").concat(e):"".concat(e0," ").concat(eA," ").concat(e)}p(em,"formatCLI");function eg(e,t){return typeof e=="function"?em(e(t),t):(typeof e==="undefined"?"undefined":u(e))=="object"&&(e===null||e===void 0?void 0:e.raw)===!0?e.cmd:typeof e=="string"?em(e,t):e}p(eg,"formatCommand");function ev(e,t){return /*#__PURE__*/r(function(){var n;return f(this,function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);x.start("".concat(e)),ea.DEBUG&&x.info("→ ".concat(t));return[4,ed(t)];case 1:r.sent(),x.success("".concat(e," done."));return[3,3];case 2:n=r.sent();throw x.error("".concat(e," failed: ").concat(n.message)),n;case 3:return[2]}})})()}p(ev,"runCommand");import eh,{join as ey,resolve as e_}from"node:path";var eI=T();function eE(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}return e_.apply(void 0,[eI.CWD].concat(s(t)))}p(eE,"resolveWorkingPath");function eb(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}return ey.apply(void 0,s(t))}p(eb,"join");var eC=T(),eS=eC.CWD,eO="@cyberskill/shared",eT="node_modules",ew="dist",eG="package.json",eR="package-lock.json",eN="tsconfig.json",eL=".gitignore",ek=".simple-git-hooks.json",eP="pnpm-lock.yaml",eD=".git/hooks/",eU=".git/COMMIT_EDITMSG",ej=".migrate-mongo.config.js",ex=eb(eS,eT,eO,ew),eA="cyberskill",eF="src/nodejs/cli/index.ts",eM="eslint",eK="eslint",eY="vitest",eB="playwright",eW="vitest",eJ="@commitlint/cli",eH="commitlint",e$="lint-staged",eq="lint-staged",eQ="typescript",eV="tsc",ez="tsx",eX="git",eZ="pnpm",e0="pnpm exec",e1="simple-git-hooks",e2="simple-git-hooks",e3="@eslint/config-inspector",e4="eslint-config-inspector",e5="node-modules-inspector",e6="node-modules-inspector",e8="migrate-mongo",e7="./node_modules/migrate-mongo/bin/migrate-mongo",e9={CYBERSKILL_DIRECTORY:ex,WORKING_DIRECTORY:eS,TS_CONFIG:eE(eN),GIT_IGNORE:eE(eL),GIT_HOOK:eE(eD),GIT_COMMIT_MSG:eE(eU),SIMPLE_GIT_HOOKS_JSON:eE(ek),PACKAGE_JSON:eE(eG),PACKAGE_LOCK_JSON:eE(eR),PNPM_LOCK_YAML:eE(eP),NODE_MODULES:eE(eT),MIGRATE_MONGO_CONFIG:eE(ej),LINT_STAGED_CONFIG:eE("".concat(ex,"/configs/lint-staged/index.js")),COMMITLINT_CONFIG:eE("".concat(ex,"/configs/commitlint/index.js")),UNIT_TEST_CONFIG:eE("".concat(ex,"/react/vitest/vitest.unit.js")),UNIT_TEST_SETUP_CONFIG:eE("".concat(ex,"/react/vitest/vitest.unit.setup.js")),E2E_TEST_CONFIG:eE("".concat(ex,"/react/vitest/vitest.e2e.js"))};function te(e,t,n){return /*#__PURE__*/r(function(){return f(this,function(r){switch(r.label){case 0:if(!t)throw new Error("'first' argument is undefined");switch(e){case w.CLI:return[3,1];case w.STRING:return[3,3]}return[3,4];case 1:return[4,et(t.split(" "),{update:!0})];case 2:return[2,(r.sent(),eg(ep("".concat(e0," ").concat(n))))];case 3:return[2,eg(ep(t))];case 4:throw new Error("Unsupported command type");case 5:return[2]}})})()}p(te,"buildCommand");function tt(e,t,n){return function(){return /*#__PURE__*/r(function(){return f(this,function(r){return[2,te(e,t,n)]})})()}}p(tt,"commandFactory");var tn={simpleGitHooks:tt(w.CLI,e1,e2),eslintInspect:tt(w.CLI,e3,e4),nodeModulesInspect:tt(w.CLI,e5,e6),eslintCheck:tt(w.CLI,eM,"".concat(eK," ").concat(e9.WORKING_DIRECTORY," --no-cache")),eslintFix:tt(w.CLI,eM,"".concat(eK," ").concat(e9.WORKING_DIRECTORY," --fix --no-cache")),typescriptCheck:tt(w.CLI,eQ,"".concat(eV," -p ").concat(e9.TS_CONFIG," --noEmit")),configureGitHook:tt(w.STRING,"".concat(eX," config core.hooksPath ").concat(e9.GIT_HOOK)),testUnit:tt(w.CLI,eY,"".concat(eW," --config ").concat(e9.UNIT_TEST_CONFIG)),testE2e:tt(w.CLI,"".concat(eY," ").concat(eB),"".concat(eW," --config ").concat(e9.E2E_TEST_CONFIG)),mongoMigrateCreate:p(function(e){return tt(w.CLI,e8,"".concat(ez," ").concat(e7," create ").concat(e," -f ").concat(e9.MIGRATE_MONGO_CONFIG))()},"mongoMigrateCreate"),mongoMigrateUp:tt(w.CLI,e8,"".concat(ez," ").concat(e7," up -f ").concat(e9.MIGRATE_MONGO_CONFIG)),mongoMigrateDown:tt(w.CLI,e8,"".concat(ez," ").concat(e7," down -f ").concat(e9.MIGRATE_MONGO_CONFIG)),commitLint:tt(w.CLI,eJ,"".concat(eH," --edit ").concat(e9.GIT_COMMIT_MSG," --config ").concat(e9.COMMITLINT_CONFIG)),lintStaged:tt(w.CLI,e$,"".concat(eq," --config ").concat(e9.LINT_STAGED_CONFIG)),stageBuildDirectory:tt(w.STRING,"".concat(eX," add ").concat(ew)),build:tt(w.STRING,"".concat(eZ," run build")),pnpmInstallStandard:tt(w.STRING,"".concat(eZ," install")),pnpmInstallLegacy:tt(w.STRING,"".concat(eZ," install --legacy-peer-deps")),pnpmInstallForce:tt(w.STRING,"".concat(eZ," install --force"))};function tr(e){return g(i({plugins:[m()],test:{globals:!0,environment:"jsdom",pool:"vmThreads",include:["**/*.test.unit.?(c|m)[jt]s?(x)"],setupFiles:[e9.UNIT_TEST_SETUP_CONFIG]}},e))}p(tr,"vitestUnit");export{tr as vitestUnit};
1
+ function e(e,t){if(t==null||t>e.length)t=e.length;for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function t(t){if(Array.isArray(t))return e(t)}function n(e,t,n,r,o,c,a){try{var i=e[c](a);var s=i.value}catch(e){n(e);return}if(i.done){t(s)}else{Promise.resolve(s).then(r,o)}}function r(e){return function(){var t=this,r=arguments;return new Promise(function(o,c){var a=e.apply(t,r);function i(e){n(a,o,c,i,s,"next",e)}function s(e){n(a,o,c,i,s,"throw",e)}i(undefined)})}}function o(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 c(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function a(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};var r=Object.keys(n);if(typeof Object.getOwnPropertySymbols==="function"){r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))}r.forEach(function(t){o(e,t,n[t])})}return e}function s(e){return t(e)||c(e)||l(e)||a()}function u(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function l(t,n){if(!t)return;if(typeof t==="string")return e(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor)r=t.constructor.name;if(r==="Map"||r==="Set")return Array.from(r);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e(t,n)}function f(e,t){var n,r,o,c={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},a=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return a.next=i(0),a["throw"]=i(1),a["return"]=i(2),typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function i(e){return function(t){return s([e,t])}}function s(i){if(n)throw new TypeError("Generator is already executing.");while(a&&(a=0,i[0]&&(c=0)),c)try{if(n=1,r&&(o=i[0]&2?r["return"]:i[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;if(r=0,o)i=[i[0]&2,o.value];switch(i[0]){case 0:case 1:o=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(!(o=c.trys,o=o.length>0&&o[o.length-1])&&(i[0]===6||i[0]===2)){c=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]<o[3])){c.label=i[1];break}if(i[0]===6&&c.label<o[1]){c.label=o[1];o=i;break}if(o&&c.label<o[2]){c.label=o[2];c.ops.push(i);break}if(o[2])c.ops.pop();c.trys.pop();continue}i=t.call(e,c)}catch(e){i=[6,e];r=0}finally{n=o=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:true}}}var d=Object.defineProperty;var p=function(e,t){return d(e,"name",{value:t,configurable:!0})};import m from"@vitejs/plugin-react-swc";import{defineConfig as g}from"vitest/config";var v=".cyberskill-storage";import h from"@dotenvx/dotenvx";import{bool as y,cleanEnv as I,str as b}from"envalid";import E from"node:os";import C from"node:path";import S from"node:process";var O=!1;function T(){O||(h.config(),O=!0)}p(T,"loadEnvFile");function w(){T();var e=I(S.env,{CWD:b({default:S.cwd()}),DEBUG:y({default:!1}),CYBERSKILL_STORAGE_DIRECTORY:b({default:C.join(E.homedir(),v)})});return{CWD:e.CWD,DEBUG:e.DEBUG,CYBERSKILL_STORAGE_DIRECTORY:e.CYBERSKILL_STORAGE_DIRECTORY}}p(w,"getEnv");var G=function(e){return e.CLI="CLI",e.STRING="STRING",e.FUNCTION="FUNCTION",e}({});import{exec as _}from"node:child_process";import N from"node:process";import*as L from"node:util";var k=function(e){return e.Error="error",e.Warning="warning",e}({});import R from"chalk";import D from"consola";import{GraphQLError as j}from"graphql";var x=w();x.DEBUG||(D.level=4);function A(e){var t=R[e];return typeof t=="function"?t:R.green}p(A,"chalkKeyword");var F={silent:D.silent,level:D.level,fatal:D.fatal,error:D.error,warn:D.warn,log:D.log,info:D.info,success:D.success,ready:D.ready,start:D.start,box:D.box,debug:D.debug,trace:D.trace,verbose:D.verbose,printBoxedLog:function e(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"red";if(!(t===null||t===void 0?void 0:t.length)){D.box(R.green(e));return}t.forEach(function(e){var t=e.file,r=e.position,o=e.rule,c=e.message;D.log("".concat(R.gray("File:")," ").concat(R.blue("".concat(t).concat(r?":".concat(r):"")))),o&&D.log(" ".concat(A(n)("Rule:")," ").concat(o)),D.log(" ".concat(A(n)("Message:")," ").concat(c))}),D.box(A(n)("".concat(e," : ").concat(t.length))),D.log(R.gray("─".repeat(40)))}};var P={isCurrentProject:!1,installedPath:"",file:{},isUpToDate:!1};import M from"node-fetch";import U from"fs-extra";var K=U.lstatSync,Y=U.readdirSync,B=U.mkdirSync,W=U.readFileSync,J=U.unlinkSync,H=U.statSync,$=U.readJsonSync;function q(e,t,n){U.writeFileSync(e,t,n!==null&&n!==void 0?n:"utf-8")}p(q,"writeFileSync");function Q(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}return t.every(function(e){return U.pathExistsSync(e)})}p(Q,"pathExistsSync");var V=w();function z(e){var t=eE(V.CWD,eG);if(!Q(t))return!1;try{var n=$(t),r=n.name,o=n.dependencies,c=o===void 0?{}:o,a=n.devDependencies,i=a===void 0?{}:a,s=r===e,u=e in c,l=e in i;return s||u||l?{path:t,file:n,isCurrentProject:s,isDepend:u,isDevDepend:l}:!1}catch(e){return F.warn("Failed to read package.json: ".concat(e.message)),!1}}p(z,"getPackage");function X(e){return r(function(){var t,n,r,o;return f(this,function(c){switch(c.label){case 0:c.trys.push([0,3,,4]);return[4,M("https://registry.npmjs.org/".concat(e,"/latest"))];case 1:t=c.sent();if(!t.ok)throw new Error("Failed to fetch latest version: ".concat(t.status," ").concat(t.statusText));return[4,t.json()];case 2:n=c.sent(),r=n.version;return[2,r];case 3:o=c.sent();throw F.error('Failed to fetch version for "'.concat(e,'": ').concat(o.message)),o;case 4:return[2]}})})()}p(X,"getLatestPackageVersion");function Z(e,t){return r(function(){var n,r,o,c,a,s,u,l,d,p,m,g,v,h,y,I,b,E,C,S,O;return f(this,function(f){switch(f.label){case 0:f.trys.push([0,4,,5]);n=z(e);if(!n)return[2,i({},P)];u=n.path,l=n.file,d=n.isCurrentProject,p=n.isDepend,m=n.isDevDepend,g=(r=l.dependencies)!==null&&r!==void 0?r:{},v=(o=l.devDependencies)!==null&&o!==void 0?o:{},h=d?(c=l.version)!==null&&c!==void 0?c:"0.0.0":p?(a=g[e])!==null&&a!==void 0?a:"0.0.0":m?(s=v[e])!==null&&s!==void 0?s:"0.0.0":"0.0.0";if(!d)return[3,1];b=h;return[3,3];case 1:return[4,X(e)];case 2:b=f.sent();f.label=3;case 3:y=b,I=d||h===y;if(!I&&(t===null||t===void 0?void 0:t.update)){;C=p?"dependencies":m?"devDependencies":null;C&&((E=l[C])===null||E===void 0?void 0:E[e])!==y&&(l[C]=(S=l[C])!==null&&S!==void 0?S:{},l[C][e]=y,q(u,JSON.stringify(l,null,4)),F.info('Updated "'.concat(e,'" to version ').concat(y)))}return[2,{isCurrentProject:d,installedPath:u,file:l,isUpToDate:I}];case 4:O=f.sent();return[2,(F.error('Error checking package "'.concat(e,'": ').concat(O.message)),i({},P))];case 5:return[2]}})})()}p(Z,"checkPackage");function ee(){return r(function(){var e,t,n,r,o,c,a,i,s,u,l,d;return f(this,function(f){switch(f.label){case 0:e=[{command:p(function(){return tt.pnpmInstallStandard()},"command"),message:"Installing dependencies (standard)"},{command:p(function(){return tt.pnpmInstallLegacy()},"command"),message:"Retrying with legacy peer dependencies"},{command:p(function(){return tt.pnpmInstallForce()},"command"),message:"Retrying with force install"}];t=true,n=false,r=undefined;f.label=1;case 1:f.trys.push([1,9,10,11]);o=e[Symbol.iterator]();f.label=2;case 2:if(!!(t=(c=o.next()).done))return[3,8];a=c.value,i=a.command,s=a.message;f.label=3;case 3:f.trys.push([3,6,,7]);return[4,i()];case 4:u=f.sent();return[4,ev("".concat(s," using: ").concat(u),u)];case 5:f.sent();return[2];case 6:l=f.sent();F.warn("Installation attempt failed: ".concat(s)),F.error("Details: ".concat(l.message));return[3,7];case 7:t=true;return[3,2];case 8:return[3,11];case 9:d=f.sent();n=true;r=d;return[3,11];case 10:try{if(!t&&o.return!=null){o.return()}}finally{if(n){throw r}}return[7];case 11:throw new Error("All dependency installation strategies failed.")}})})()}p(ee,"installDependencies");function et(e,t){return r(function(){var n,r,o,c,a,u,l,d,p,m,g;return f(this,function(f){switch(f.label){case 0:if(!Q(e7.PACKAGE_JSON)){F.error("package.json not found. Aborting setup.");return[2]}f.label=1;case 1:f.trys.push([1,13,,14]);n=s(new Set(e)).sort();return[4,Promise.all(n.map(function(e){return Z(e,i({},(t===null||t===void 0?void 0:t.update)&&{update:t.update}))}))];case 2:r=f.sent().every(function(e){return e.isUpToDate});if(r)return[3,4];return[4,ee()];case 3:r=f.sent();f.label=4;case 4:r;c=true,a=false,u=undefined;f.label=5;case 5:f.trys.push([5,10,11,12]);l=((o=t===null||t===void 0?void 0:t.postInstallActions)!==null&&o!==void 0?o:[])[Symbol.iterator]();f.label=6;case 6:if(!!(c=(d=l.next()).done))return[3,9];p=d.value;return[4,p()];case 7:f.sent();f.label=8;case 8:c=true;return[3,6];case 9:return[3,12];case 10:m=f.sent();a=true;u=m;return[3,12];case 11:try{if(!c&&l.return!=null){l.return()}}finally{if(a){throw u}}return[7];case 12:return[3,14];case 13:g=f.sent();throw F.error('Failed to setup "'.concat(e.join(", "),'": ').concat(g.message)),g;case 14:return[2]}})})()}p(et,"setupPackages");import en from"node-persist";var er=w();function eo(){return r(function(){var e;return f(this,function(t){switch(t.label){case 0:e=en.defaultInstance;if(e)return[3,2];return[4,en.init({dir:er.CYBERSKILL_STORAGE_DIRECTORY,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]}})})()}p(eo,"initNodePersist");var ec={get:function e(e){return r(function(){var t,n;return f(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,eo()];case 1:r.sent();return[4,en.getItem(e)];case 2:return[2,(t=r.sent())!==null&&t!==void 0?t:null];case 3:n=r.sent();return[2,(F.error('[Storage:get] Error getting key "'.concat(e,'":'),n),null)];case 4:return[2]}})})()},set:function e(e,t){return r(function(){var n;return f(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,eo()];case 1:r.sent();return[4,en.setItem(e,t)];case 2:r.sent();return[3,4];case 3:n=r.sent();F.error('[Storage:set] Error setting key "'.concat(e,'":'),n);return[3,4];case 4:return[2]}})})()},remove:function e(e){return r(function(){var t;return f(this,function(n){switch(n.label){case 0:n.trys.push([0,3,,4]);return[4,eo()];case 1:n.sent();return[4,en.removeItem(e)];case 2:n.sent();return[3,4];case 3:t=n.sent();F.error('[Storage:remove] Error removing key "'.concat(e,'":'),t);return[3,4];case 4:return[2]}})})()},keys:function e(){return r(function(){var e,t;return f(this,function(n){switch(n.label){case 0:n.trys.push([0,3,,4]);return[4,eo()];case 1:n.sent();return[4,en.keys()];case 2:e=n.sent();return[2,Array.isArray(e)?e:(F.warn("[Storage:keys] Invalid keys response:",e),[])];case 3:t=n.sent();return[2,(F.error("[Storage:keys] Error getting keys:",t),[])];case 4:return[2]}})})()},getLogLink:function e(e){return r(function(){return f(this,function(t){try{return[2,"".concat(er.CYBERSKILL_STORAGE_DIRECTORY," (key: ").concat(e,")")]}catch(e){return[2,(F.error("[Storage:getLogLink] Error getting log link:",e),null)]}return[2]})})()}};var ea=w(),ei=L.promisify(_);function es(e){return"error_list:".concat(e)}p(es,"getErrorListKey");function eu(e){return r(function(){var t,n,o;return f(this,function(c){switch(c.label){case 0:if(e.length===0)return[2];t=Date.now(),n=es(t);c.label=1;case 1:c.trys.push([1,3,,4]);return[4,ec.set(n,{errors:e,timestamp:t})];case 2:c.sent(),setTimeout(function(){return r(function(){var e;return f(this,function(t){switch(t.label){case 0:return[4,ec.getLogLink(n)];case 1:e=t.sent();e&&F.info("\uD83D\uDCC2 Open the error list manually: ".concat(e));return[2]}})})()},10);return[3,4];case 3:o=c.sent();F.error("Failed to save errors: ".concat(o.message));return[3,4];case 4:return[2]}})})()}p(eu,"saveErrorListToStorage");function el(e){var t=[],n=[],r="",o=/^\s*(\d+):(\d+)\s+(error|warning)\s+(.+?)\s+(\S+)$/,c=/^(.+?)\((\d+),(\d+)\):\s+(error|warning)\s+TS\d+:\s+(\S.+)$/,a=/^✖\s+(.*?)\s+\[(.*?)\]$/;e.split("\n").forEach(function(e){if(e.startsWith("/"))r=e.trim();else{var i,s,u,l,f;var d=o.exec(e)||[],p=c.exec(e)||[],m=a.exec(e)||[];var g,v,h,y,I,b;d.length&&r?t.push({file:r,position:"".concat(d[1],":").concat(d[2]),type:d[3]===k.Error?k.Error:k.Warning,message:(g=d===null||d===void 0?void 0:(i=d[4])===null||i===void 0?void 0:i.trim())!==null&&g!==void 0?g:"",rule:(v=d===null||d===void 0?void 0:(s=d[5])===null||s===void 0?void 0:s.trim())!==null&&v!==void 0?v:""}):p.length?t.push({file:(h=p===null||p===void 0?void 0:p[1])!==null&&h!==void 0?h:"",position:"".concat(p[2],":").concat(p[3]),type:p[4]===k.Error?k.Error:k.Warning,message:(y=p===null||p===void 0?void 0:(u=p[5])===null||u===void 0?void 0:u.trim())!==null&&y!==void 0?y:""}):m.length?t.push({file:"commitlint",type:k.Error,message:(I=m===null||m===void 0?void 0:(l=m[1])===null||l===void 0?void 0:l.trim())!==null&&I!==void 0?I:"",rule:(b=m===null||m===void 0?void 0:(f=m[2])===null||f===void 0?void 0:f.trim())!==null&&b!==void 0?b:""}):n.push(e.trim())}}),t.length&&eu(t),ea.DEBUG&&n.length&&(F.warn("Unmatched lines:"),n.forEach(function(e){return F.info(" ".concat(e))}))}p(el,"parseTextErrors");function ef(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,o=e.line,c=e.column,a=e.ruleId,i=e.message;n.push({type:r===2?k.Error:k.Warning,file:t,position:"".concat(o,":").concat(c),rule:a,message:i})})}),n.length&&eu(n)}catch(t){el(e)}}p(ef,"parseCommandOutput");function ed(e){return r(function(e){var t,n,r,o,c,a,i,s,u;var l=arguments;return f(this,function(f){switch(f.label){case 0:t=l.length>1&&l[1]!==void 0?l[1]:ef;n=new AbortController;N.on("SIGINT",function(){F.warn("Process interrupted. Terminating..."),n.abort(),N.exit()});f.label=1;case 1:f.trys.push([1,4,,5]);if(!(typeof e=="string"))return[3,3];return[4,ei(e,{maxBuffer:0x6400000,signal:n.signal})];case 2:r=f.sent(),o=r.stdout,c=r.stderr;[o,c].forEach(function(e){return e&&t(e)});f.label=3;case 3:return[3,5];case 4:a=f.sent();i=a.stdout,s=a.stderr,u=a.message;[i,s].forEach(function(e){return e&&t(e)}),!s&&!i&&F.error("Command failed: ".concat(u));return[3,5];case 5:return[2]}})}).apply(this,arguments)}p(ed,"executeCommand");function ep(e){return{raw:!0,cmd:e}}p(ep,"rawCommand");function em(e,t){return(t===null||t===void 0?void 0:t.isRemote)?"".concat(eZ," ").concat(eO," ").concat(e):(t===null||t===void 0?void 0:t.isCurrentProject)?"".concat(eZ," ").concat(eV," ").concat(eP," ").concat(e):"".concat(eZ," ").concat(eF," ").concat(e)}p(em,"formatCLI");function eg(e,t){return typeof e=="function"?em(e(t),t):(typeof e==="undefined"?"undefined":u(e))=="object"&&(e===null||e===void 0?void 0:e.raw)===!0?e.cmd:typeof e=="string"?em(e,t):e}p(eg,"formatCommand");function ev(e,t){return r(function(){var n;return f(this,function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);F.start("".concat(e)),ea.DEBUG&&F.info("→ ".concat(t));return[4,ed(t)];case 1:r.sent(),F.success("".concat(e," done."));return[3,3];case 2:n=r.sent();throw F.error("".concat(e," failed: ").concat(n.message)),n;case 3:return[2]}})})()}p(ev,"runCommand");import eh from"node:path";var ey=w(),eI=eh;function eb(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}var r;return(r=eI).resolve.apply(r,[ey.CWD].concat(s(t)))}p(eb,"resolveWorkingPath");function eE(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}var r;return(r=eI).join.apply(r,s(t))}p(eE,"join");var eC=w(),eS=eC.CWD,eO="@cyberskill/shared",eT="node_modules",ew="dist",eG="package.json",e_="package-lock.json",eN="tsconfig.json",eL=".gitignore",ek=".simple-git-hooks.json",eR="pnpm-lock.yaml",eD=".git/hooks/",ej=".git/COMMIT_EDITMSG",ex=".migrate-mongo.config.js",eA=eE(eS,eT,eO,ew),eF="cyberskill",eP="src/nodejs/cli/index.ts",eM="eslint",eU="eslint",eK="vitest",eY="playwright",eB="vitest",eW="@commitlint/cli",eJ="commitlint",eH="lint-staged",e$="lint-staged",eq="typescript",eQ="tsc",eV="tsx",ez="git",eX="pnpm",eZ="pnpm exec",e0="simple-git-hooks",e1="simple-git-hooks",e2="@eslint/config-inspector",e3="eslint-config-inspector",e4="node-modules-inspector",e5="node-modules-inspector",e6="migrate-mongo",e8="./node_modules/migrate-mongo/bin/migrate-mongo",e7={CYBERSKILL_DIRECTORY:eA,WORKING_DIRECTORY:eS,TS_CONFIG:eb(eN),GIT_IGNORE:eb(eL),GIT_HOOK:eb(eD),GIT_COMMIT_MSG:eb(ej),SIMPLE_GIT_HOOKS_JSON:eb(ek),PACKAGE_JSON:eb(eG),PACKAGE_LOCK_JSON:eb(e_),PNPM_LOCK_YAML:eb(eR),NODE_MODULES:eb(eT),MIGRATE_MONGO_CONFIG:eb(ex),LINT_STAGED_CONFIG:eb("".concat(eA,"/configs/lint-staged/index.js")),COMMITLINT_CONFIG:eb("".concat(eA,"/configs/commitlint/index.js")),UNIT_TEST_CONFIG:eb("".concat(eA,"/react/vitest/vitest.unit.js")),UNIT_TEST_SETUP_CONFIG:eb("".concat(eA,"/react/vitest/vitest.unit.setup.js")),E2E_TEST_CONFIG:eb("".concat(eA,"/react/vitest/vitest.e2e.js"))};function e9(e,t,n){return r(function(){return f(this,function(r){switch(r.label){case 0:if(!t)throw new Error("'first' argument is undefined");switch(e){case G.CLI:return[3,1];case G.STRING:return[3,3]}return[3,4];case 1:return[4,et(t.split(" "),{update:!0})];case 2:return[2,(r.sent(),eg(ep("".concat(eZ," ").concat(n))))];case 3:return[2,eg(ep(t))];case 4:throw new Error("Unsupported command type");case 5:return[2]}})})()}p(e9,"buildCommand");function te(e,t,n){return function(){return r(function(){return f(this,function(r){return[2,e9(e,t,n)]})})()}}p(te,"commandFactory");var tt={simpleGitHooks:te(G.CLI,e0,e1),eslintInspect:te(G.CLI,e2,e3),nodeModulesInspect:te(G.CLI,e4,e5),eslintCheck:te(G.CLI,eM,"".concat(eU," ").concat(e7.WORKING_DIRECTORY," --no-cache")),eslintFix:te(G.CLI,eM,"".concat(eU," ").concat(e7.WORKING_DIRECTORY," --fix --no-cache")),typescriptCheck:te(G.CLI,eq,"".concat(eQ," -p ").concat(e7.TS_CONFIG," --noEmit")),configureGitHook:te(G.STRING,"".concat(ez," config core.hooksPath ").concat(e7.GIT_HOOK)),testUnit:te(G.CLI,eK,"".concat(eB," --config ").concat(e7.UNIT_TEST_CONFIG)),testE2e:te(G.CLI,"".concat(eK," ").concat(eY),"".concat(eB," --config ").concat(e7.E2E_TEST_CONFIG)),mongoMigrateCreate:p(function(e){return te(G.CLI,e6,"".concat(eV," ").concat(e8," create ").concat(e," -f ").concat(e7.MIGRATE_MONGO_CONFIG))()},"mongoMigrateCreate"),mongoMigrateUp:te(G.CLI,e6,"".concat(eV," ").concat(e8," up -f ").concat(e7.MIGRATE_MONGO_CONFIG)),mongoMigrateDown:te(G.CLI,e6,"".concat(eV," ").concat(e8," down -f ").concat(e7.MIGRATE_MONGO_CONFIG)),commitLint:te(G.CLI,eW,"".concat(eJ," --edit ").concat(e7.GIT_COMMIT_MSG," --config ").concat(e7.COMMITLINT_CONFIG)),lintStaged:te(G.CLI,eH,"".concat(e$," --config ").concat(e7.LINT_STAGED_CONFIG)),stageBuildDirectory:te(G.STRING,"".concat(ez," add ").concat(ew)),build:te(G.STRING,"".concat(eX," run build")),pnpmInstallStandard:te(G.STRING,"".concat(eX," install")),pnpmInstallLegacy:te(G.STRING,"".concat(eX," install --legacy-peer-deps")),pnpmInstallForce:te(G.STRING,"".concat(eX," install --force"))};function tn(e){return g(i({plugins:[m()],test:{globals:!0,environment:"jsdom",pool:"vmThreads",include:["**/*.test.unit.?(c|m)[jt]s?(x)"],setupFiles:[e7.UNIT_TEST_SETUP_CONFIG]}},e))}p(tn,"vitestUnit");export{tn as vitestUnit};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cyberskill/shared",
3
3
  "type": "module",
4
- "version": "1.124.0",
4
+ "version": "1.126.0",
5
5
  "description": "CyberSkill Shared",
6
6
  "author": "Stephen Cheng",
7
7
  "license": "MIT",
@@ -236,19 +236,19 @@
236
236
  "eslint-plugin-react-hooks": "5.2.0",
237
237
  "eslint-plugin-react-refresh": "0.4.20",
238
238
  "express": "4.21.2",
239
- "express-device": "0.4.2",
240
239
  "express-session": "1.18.1",
240
+ "express-useragent": "1.0.15",
241
241
  "fs-extra": "11.3.0",
242
242
  "globals": "16.0.0",
243
243
  "graphql": "16.11.0",
244
244
  "graphql-ws": "6.0.4",
245
- "i18next": "25.0.1",
245
+ "i18next": "25.0.2",
246
246
  "jsdom": "26.1.0",
247
247
  "localforage": "1.10.0",
248
248
  "migrate-mongo": "12.1.3",
249
249
  "modern-normalize": "3.0.1",
250
250
  "mongodb": "6.16.0",
251
- "mongoose": "8.14.0",
251
+ "mongoose": "8.14.1",
252
252
  "mongoose-aggregate-paginate-v2": "1.1.4",
253
253
  "mongoose-paginate-v2": "1.9.0",
254
254
  "next-intl": "4.1.0",
@@ -265,7 +265,7 @@
265
265
  "sass": "1.87.0",
266
266
  "slugify": "1.6.6",
267
267
  "tsup": "8.4.0",
268
- "tsx": "4.19.3",
268
+ "tsx": "4.19.4",
269
269
  "typescript": "5.8.3",
270
270
  "unorm": "1.6.0",
271
271
  "uuid": "11.1.0",
@@ -282,15 +282,18 @@
282
282
  "devDependencies": {
283
283
  "@commitlint/cli": "19.8.0",
284
284
  "@eslint/config-inspector": "1.0.2",
285
+ "@types/body-parser": "1.19.5",
285
286
  "@types/compression": "1.7.5",
286
287
  "@types/cookie-parser": "1.4.8",
287
288
  "@types/cors": "2.8.17",
288
289
  "@types/crypto-js": "4.2.2",
289
290
  "@types/express": "4.17.21",
290
291
  "@types/express-session": "1.18.1",
292
+ "@types/express-useragent": "1.0.5",
291
293
  "@types/fs-extra": "11.0.4",
292
294
  "@types/migrate-mongo": "10.0.5",
293
295
  "@types/mongoose-aggregate-paginate-v2": "1.0.12",
296
+ "@types/node": "22.15.3",
294
297
  "@types/node-persist": "3.1.8",
295
298
  "@types/react": "19.1.2",
296
299
  "@types/react-dom": "19.1.2",
@@ -33,6 +33,5 @@
33
33
  "verbatimModuleSyntax": true,
34
34
  "noUncheckedSideEffectImports": true,
35
35
  "skipLibCheck": true
36
- },
37
- "exclude": ["node_modules"]
36
+ }
38
37
  }
@@ -1 +0,0 @@
1
- "use strict";
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
File without changes