@cyberskill/shared 1.191.0 → 1.193.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 (61) hide show
  1. package/dist/_tsup-dts-rollup.d.cts +80 -0
  2. package/dist/_tsup-dts-rollup.d.ts +80 -0
  3. package/dist/config/config.util.cjs +1 -1
  4. package/dist/config/config.util.js +1 -1
  5. package/dist/config/index.cjs +1 -1
  6. package/dist/config/index.js +1 -1
  7. package/dist/config/vitest/index.cjs +1 -1
  8. package/dist/config/vitest/index.js +1 -1
  9. package/dist/config/vitest/vitest.unit.cjs +1 -1
  10. package/dist/config/vitest/vitest.unit.js +1 -1
  11. package/dist/node/cli/cli.util.cjs +1 -1
  12. package/dist/node/cli/cli.util.js +1 -1
  13. package/dist/node/cli/index.cjs +1 -1
  14. package/dist/node/cli/index.js +1 -1
  15. package/dist/node/command/command.util.cjs +1 -1
  16. package/dist/node/command/command.util.js +1 -1
  17. package/dist/node/command/index.cjs +1 -1
  18. package/dist/node/command/index.js +1 -1
  19. package/dist/node/fs/fs.util.cjs +1 -1
  20. package/dist/node/fs/fs.util.d.cts +1 -0
  21. package/dist/node/fs/fs.util.d.ts +1 -0
  22. package/dist/node/fs/fs.util.js +1 -1
  23. package/dist/node/fs/index.cjs +1 -1
  24. package/dist/node/fs/index.d.cts +1 -0
  25. package/dist/node/fs/index.d.ts +1 -0
  26. package/dist/node/fs/index.js +1 -1
  27. package/dist/node/index.cjs +1 -1
  28. package/dist/node/index.d.cts +10 -0
  29. package/dist/node/index.d.ts +10 -0
  30. package/dist/node/index.js +1 -1
  31. package/dist/node/mongo/index.cjs +1 -1
  32. package/dist/node/mongo/index.js +1 -1
  33. package/dist/node/mongo/mongo.util.cjs +1 -1
  34. package/dist/node/mongo/mongo.util.js +1 -1
  35. package/dist/node/package/index.cjs +1 -1
  36. package/dist/node/package/index.js +1 -1
  37. package/dist/node/package/package.util.cjs +1 -1
  38. package/dist/node/package/package.util.js +1 -1
  39. package/dist/node/path/index.cjs +1 -1
  40. package/dist/node/path/index.d.cts +1 -0
  41. package/dist/node/path/index.d.ts +1 -0
  42. package/dist/node/path/index.js +1 -1
  43. package/dist/node/path/path.constant.cjs +1 -1
  44. package/dist/node/path/path.constant.js +1 -1
  45. package/dist/node/path/path.util.cjs +1 -1
  46. package/dist/node/path/path.util.d.cts +1 -0
  47. package/dist/node/path/path.util.d.ts +1 -0
  48. package/dist/node/path/path.util.js +1 -1
  49. package/dist/node/upload/index.cjs +1 -0
  50. package/dist/node/upload/index.d.cts +8 -0
  51. package/dist/node/upload/index.d.ts +8 -0
  52. package/dist/node/upload/index.js +1 -0
  53. package/dist/node/upload/upload.type.cjs +1 -0
  54. package/dist/node/upload/upload.type.d.cts +6 -0
  55. package/dist/node/upload/upload.type.d.ts +6 -0
  56. package/dist/node/upload/upload.type.js +1 -0
  57. package/dist/node/upload/upload.util.cjs +1 -0
  58. package/dist/node/upload/upload.util.d.cts +2 -0
  59. package/dist/node/upload/upload.util.d.ts +2 -0
  60. package/dist/node/upload/upload.util.js +1 -0
  61. package/package.json +11 -6
@@ -0,0 +1 @@
1
+ function e(e,n){if(n==null||n>e.length)n=e.length;for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function n(n){if(Array.isArray(n))return e(n)}function t(e,n,t,r,a,o,i){try{var s=e[o](i);var c=s.value}catch(e){t(e);return}if(s.done){n(c)}else{Promise.resolve(c).then(r,a)}}function r(e){return function(){var n=this,r=arguments;return new Promise(function(a,o){var i=e.apply(n,r);function s(e){t(i,a,o,s,c,"next",e)}function c(e){t(i,a,o,s,c,"throw",e)}s(undefined)})}}function a(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 o(e,n){if(n!=null&&typeof Symbol!=="undefined"&&n[Symbol.hasInstance]){return!!n[Symbol.hasInstance](e)}else{return e instanceof n}}function i(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function s(){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 c(e){for(var n=1;n<arguments.length;n++){var t=arguments[n]!=null?arguments[n]:{};var r=Object.keys(t);if(typeof Object.getOwnPropertySymbols==="function"){r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))}r.forEach(function(n){a(e,n,t[n])})}return e}function u(e){return n(e)||i(e)||E(e)||s()}function l(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function E(n,t){if(!n)return;if(typeof n==="string")return e(n,t);var r=Object.prototype.toString.call(n).slice(8,-1);if(r==="Object"&&n.constructor)r=n.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(n,t)}function d(e,n){var t,r,a,o={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return i.next=s(0),i["throw"]=s(1),i["return"]=s(2),typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function s(e){return function(n){return c([e,n])}}function c(s){if(t)throw new TypeError("Generator is already executing.");while(i&&(i=0,s[0]&&(o=0)),o)try{if(t=1,r&&(a=s[0]&2?r["return"]:s[0]?r["throw"]||((a=r["return"])&&a.call(r),0):r.next)&&!(a=a.call(r,s[1])).done)return a;if(r=0,a)s=[s[0]&2,a.value];switch(s[0]){case 0:case 1:a=s;break;case 4:o.label++;return{value:s[1],done:false};case 5:o.label++;r=s[1];s=[0];continue;case 7:s=o.ops.pop();o.trys.pop();continue;default:if(!(a=o.trys,a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){o=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]<a[3])){o.label=s[1];break}if(s[0]===6&&o.label<a[1]){o.label=a[1];a=s;break}if(a&&o.label<a[2]){o.label=a[2];o.ops.push(s);break}if(a[2])o.ops.pop();o.trys.pop();continue}s=n.call(e,o)}catch(e){s=[6,e];r=0}finally{t=a=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:true}}}var f=Object.defineProperty;var p=function(e,n){return f(e,"name",{value:n,configurable:!0})};import m from"fs-extra";import S from"path";var D=m.lstatSync,O=m.readdirSync,C=m.mkdirSync,v=m.readFileSync,I=m.unlinkSync,y=m.statSync,N=m.createWriteStream,T=m.readJsonSync;function g(e,n,t){m.writeFileSync(e,n,t!==null&&t!==void 0?t:"utf-8")}p(g,"writeFileSync");function h(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++){n[t]=arguments[t]}return n.every(function(e){return m.pathExistsSync(e)})}p(h,"pathExistsSync");import A from"fs-extra";var _=".cyberskill-storage";import R from"@dotenvx/dotenvx";import{bool as G,cleanEnv as P,str as M}from"envalid";import L from"os";import b from"path";import U from"process";var w=function(e){return e.PRODUCTION="production",e.STAGING="staging",e.DEVELOPMENT="development",e}({});var V=!1;function F(){U.env.NODE_ENV!==w.PRODUCTION&&!V&&(R.config(),V=!0)}p(F,"loadEnvFile");function Y(){F();var e=P(U.env,{CWD:M({default:U.cwd()}),DEBUG:G({default:!1}),CYBERSKILL_STORAGE_DIRECTORY:M({default:b.join(L.homedir(),_)})});return{CWD:e.CWD,DEBUG:e.DEBUG,CYBERSKILL_STORAGE_DIRECTORY:e.CYBERSKILL_STORAGE_DIRECTORY}}p(Y,"getEnv");var x=function(e){return e.CLI="CLI",e.STRING="STRING",e.FUNCTION="FUNCTION",e}({});import{exec as k}from"child_process";import j from"process";import*as K from"util";var B=function(e){return e.Error="error",e.Warning="warning",e}({});import H from"chalk";import Q from"consola";import{GraphQLError as q}from"graphql";var W={GRAPHQL_PARSE_FAILED:{CODE:"GRAPHQL_PARSE_FAILED",MESSAGE:"The GraphQL operation string contains a syntax error."},GRAPHQL_VALIDATION_FAILED:{CODE:"GRAPHQL_VALIDATION_FAILED",MESSAGE:"The GraphQL operation is not valid against the server's schema."},BAD_USER_INPUT:{CODE:"BAD_USER_INPUT",MESSAGE:"The GraphQL operation includes an invalid value for a field argument."},PERSISTED_QUERY_NOT_FOUND:{CODE:"PERSISTED_QUERY_NOT_FOUND",MESSAGE:"A client sent the hash of a query string to execute via automatic persisted queries, but the query was not in the APQ cache."},PERSISTED_QUERY_NOT_SUPPORTED:{CODE:"PERSISTED_QUERY_NOT_SUPPORTED",MESSAGE:"A client sent the hash of a query string to execute via automatic persisted queries, but the server has disabled APQ."},OPERATION_RESOLUTION_FAILURE:{CODE:"OPERATION_RESOLUTION_FAILURE",MESSAGE:"The request was parsed successfully and is valid against the server's schema, but the server couldn't resolve which operation to run. This occurs when a request containing multiple named operations doesn't specify which operation to run (i.e.,operationName), or if the named operation isn't included in the request."},CONTINUE:{CODE:100,MESSAGE:"Continue"},SWITCHING_PROTOCOLS:{CODE:101,MESSAGE:"Switching Protocols"},PROCESSING:{CODE:102,MESSAGE:"Processing"},OK:{CODE:200,MESSAGE:"OK"},CREATED:{CODE:201,MESSAGE:"Created"},ACCEPTED:{CODE:202,MESSAGE:"Accepted"},NON_AUTHORITATIVE_INFORMATION:{CODE:203,MESSAGE:"Non Authoritative Information"},NO_CONTENT:{CODE:204,MESSAGE:"No Content"},RESET_CONTENT:{CODE:205,MESSAGE:"Reset Content"},PARTIAL_CONTENT:{CODE:206,MESSAGE:"Partial Content"},MULTI_STATUS:{CODE:207,MESSAGE:"Multi-Status"},MULTIPLE_CHOICES:{CODE:300,MESSAGE:"Multiple Choices"},MOVED_PERMANENTLY:{CODE:301,MESSAGE:"Moved Permanently"},MOVED_TEMPORARILY:{CODE:302,MESSAGE:"Moved Temporarily"},SEE_OTHER:{CODE:303,MESSAGE:"See Other"},NOT_MODIFIED:{CODE:304,MESSAGE:"Not Modified"},USE_PROXY:{CODE:305,MESSAGE:"Use Proxy"},TEMPORARY_REDIRECT:{CODE:307,MESSAGE:"Temporary Redirect"},PERMANENT_REDIRECT:{CODE:308,MESSAGE:"Permanent Redirect"},BAD_REQUEST:{CODE:400,MESSAGE:"Bad Request"},UNAUTHORIZED:{CODE:401,MESSAGE:"Unauthorized"},PAYMENT_REQUIRED:{CODE:402,MESSAGE:"Payment Required"},FORBIDDEN:{CODE:403,MESSAGE:"Forbidden"},NOT_FOUND:{CODE:404,MESSAGE:"Not Found"},METHOD_NOT_ALLOWED:{CODE:405,MESSAGE:"Method Not Allowed"},NOT_ACCEPTABLE:{CODE:406,MESSAGE:"Not Acceptable"},PROXY_AUTHENTICATION_REQUIRED:{CODE:407,MESSAGE:"Proxy Authentication Required"},REQUEST_TIMEOUT:{CODE:408,MESSAGE:"Request Timeout"},CONFLICT:{CODE:409,MESSAGE:"Conflict"},GONE:{CODE:410,MESSAGE:"Gone"},LENGTH_REQUIRED:{CODE:411,MESSAGE:"Length Required"},PRECONDITION_FAILED:{CODE:412,MESSAGE:"Precondition Failed"},REQUEST_TOO_LONG:{CODE:413,MESSAGE:"Request Entity Too Large"},REQUEST_URI_TOO_LONG:{CODE:414,MESSAGE:"Request-URI Too Long"},UNSUPPORTED_MEDIA_TYPE:{CODE:415,MESSAGE:"Unsupported Media Type"},REQUESTED_RANGE_NOT_SATISFIABLE:{CODE:416,MESSAGE:"Requested Range Not Satisfiable"},EXPECTATION_FAILED:{CODE:417,MESSAGE:"Expectation Failed"},IM_A_TEAPOT:{CODE:418,MESSAGE:"I'm a teapot"},INSUFFICIENT_SPACE_ON_RESOURCE:{CODE:419,MESSAGE:"Insufficient Space on Resource"},METHOD_FAILURE:{CODE:420,MESSAGE:"Method Failure"},MISDIRECTED_REQUEST:{CODE:421,MESSAGE:"Misdirected Request"},UNPROCESSABLE_ENTITY:{CODE:422,MESSAGE:"Unprocessable Entity"},LOCKED:{CODE:423,MESSAGE:"Locked"},FAILED_DEPENDENCY:{CODE:424,MESSAGE:"Failed Dependency"},PRECONDITION_REQUIRED:{CODE:428,MESSAGE:"Precondition Required"},TOO_MANY_REQUESTS:{CODE:429,MESSAGE:"Too Many Requests"},REQUEST_HEADER_FIELDS_TOO_LARGE:{CODE:431,MESSAGE:"Request Header Fields Too Large"},UNAVAILABLE_FOR_LEGAL_REASONS:{CODE:451,MESSAGE:"Unavailable For Legal Reasons"},INTERNAL_SERVER_ERROR:{CODE:500,MESSAGE:"Internal Server Error"},NOT_IMPLEMENTED:{CODE:501,MESSAGE:"Not Implemented"},BAD_GATEWAY:{CODE:502,MESSAGE:"Bad Gateway"},SERVICE_UNAVAILABLE:{CODE:503,MESSAGE:"Service Unavailable"},GATEWAY_TIMEOUT:{CODE:504,MESSAGE:"Gateway Timeout"},HTTP_VERSION_NOT_SUPPORTED:{CODE:505,MESSAGE:"HTTP Version Not Supported"},INSUFFICIENT_STORAGE:{CODE:507,MESSAGE:"Insufficient Storage"},NETWORK_AUTHENTICATION_REQUIRED:{CODE:511,MESSAGE:"Network Authentication Required"}};var z=Y();z.DEBUG||(Q.level=4);function J(e){var n=H[e];return typeof n=="function"?n:H.green}p(J,"chalkKeyword");var $={silent:Q.silent,level:Q.level,fatal:Q.fatal,error:Q.error,warn:Q.warn,log:Q.log,info:Q.info,success:Q.success,ready:Q.ready,start:Q.start,box:Q.box,debug:Q.debug,trace:Q.trace,verbose:Q.verbose,printBoxedLog:function e(e,n){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"red";if(!(n===null||n===void 0?void 0:n.length)){Q.box(H.green(e));return}n.forEach(function(e){var n=e.file,r=e.position,a=e.rule,o=e.message;Q.log("".concat(H.gray("File:")," ").concat(H.blue("".concat(n).concat(r?":".concat(r):"")))),a&&Q.log(" ".concat(J(t)("Rule:")," ").concat(a)),Q.log(" ".concat(J(t)("Message:")," ").concat(o))}),Q.box(J(t)("".concat(e," : ").concat(n.length))),Q.log(H.gray("─".repeat(40)))}};function X(e,n){var t=n!==null&&n!==void 0?n:{},r=t.shouldLog,a=r===void 0?!0:r,i=t.returnValue,s=t.callback,c=o(e,Error)?e:new Error(typeof e=="string"?e:"Unknown error");return a&&$.error(c.message),s&&typeof s=="function"&&s(c),i||{success:!1,message:c.message,code:W.INTERNAL_SERVER_ERROR.CODE}}p(X,"catchError");var Z=function(e){return e.DEPENDENCY="dependencies",e.DEV_DEPENDENCY="devDependencies",e.PEER_DEPENDENCY="peerDependencies",e.BUNDLE_DEPENDENCY="bundleDependencies",e.OPTIONAL_DEPENDENCY="optionalDependencies",e}({});import ee from"node-fetch";var en=Y();function et(e){return r(function(){var n,t,r,a;return d(this,function(o){switch(o.label){case 0:o.trys.push([0,3,,4]);return[4,ee("https://registry.npmjs.org/".concat(e,"/latest"))];case 1:n=o.sent();if(!n.ok)throw new Error("Failed to fetch latest version: ".concat(n.status," ").concat(n.statusText));return[4,n.json()];case 2:t=o.sent(),r=t.version;return[2,{success:!0,result:r}];case 3:a=o.sent();return[2,X(a)];case 4:return[2]}})})()}p(et,"getLatestPackageVersion");function er(e){return r(function(){var n,t,r,a,o,i,s,c,u,l,E,f,p,m,S,D,O,C,v,I,y,N,g,A;return d(this,function(d){switch(d.label){case 0:d.trys.push([0,2,,3]);if(!e){if(h(no.PACKAGE_JSON)){n=T(no.PACKAGE_JSON),t=n.name,r=t===void 0?"":t,a=n.version,o=a===void 0?"":a;return[2,{success:!0,result:{name:r,currentVersion:o,latestVersion:o,isCurrentProject:!0,isInstalled:!0,isUpToDate:!0,isDependency:!1,isDevDependency:!1,installedPath:no.PACKAGE_JSON,file:n}}]}return[2,{success:!0,result:{name:"",currentVersion:"",latestVersion:"",isCurrentProject:!1,isInstalled:!1,isUpToDate:!1,isDependency:!1,isDevDependency:!1,installedPath:"",file:{}}}]}if(!h(no.PACKAGE_JSON))return[2,{success:!0,result:{name:e.name,currentVersion:"",latestVersion:"",isCurrentProject:!1,isInstalled:!1,isUpToDate:!1,isDependency:e.type===Z.DEPENDENCY,isDevDependency:e.type===Z.DEV_DEPENDENCY,installedPath:"",file:{}}}];i=T(no.PACKAGE_JSON),s=i.name,c=i.version,u=c===void 0?"":c,l=i.dependencies,E=l===void 0?{}:l,f=i.devDependencies,p=f===void 0?{}:f;if(e.name===s)return[2,{success:!0,result:{name:s,currentVersion:u,latestVersion:u,isCurrentProject:!0,isInstalled:!0,isUpToDate:!0,isDependency:e.type===Z.DEPENDENCY,isDevDependency:e.type===Z.DEV_DEPENDENCY,installedPath:no.PACKAGE_JSON,file:i}}];m=e.name in E,S=e.name in p;return[4,et(e.name)];case 1:D=d.sent();if(!D.success)return[2,{success:!0,result:{name:e.name,currentVersion:"",latestVersion:"",isCurrentProject:!1,isInstalled:!1,isUpToDate:!1,isDependency:m,isDevDependency:S,installedPath:"",file:{}}}];if(!m&&!S)return[2,{success:!0,result:{name:e.name,currentVersion:"",latestVersion:D.result,isCurrentProject:!1,isInstalled:!1,isUpToDate:!1,isDependency:e.type===Z.DEPENDENCY,isDevDependency:e.type===Z.DEV_DEPENDENCY,installedPath:"",file:{}}}];v=(C=(O=E[e.name])!==null&&O!==void 0?O:p[e.name])!==null&&C!==void 0?C:"",I=eA(en.CWD,eP,e.name,eb);if(!h(I))return[2,{success:!0,result:{name:e.name,currentVersion:"",latestVersion:D.result,isCurrentProject:!1,isInstalled:!1,isUpToDate:!1,isDependency:m,isDevDependency:S,installedPath:"",file:{}}}];y=T(I),N=y.version,g=N===void 0?"":N;return[2,v!==g?{success:!0,result:{name:e.name,currentVersion:g||v,latestVersion:D.result,isCurrentProject:!1,isInstalled:!0,isUpToDate:!1,isDependency:m,isDevDependency:S,installedPath:I,file:y}}:{success:!0,result:{name:e.name,currentVersion:v,latestVersion:D.result,isCurrentProject:!1,isInstalled:!0,isUpToDate:v===D.result,isDependency:m,isDevDependency:S,installedPath:I,file:y}}];case 2:A=d.sent();return[2,X(A)];case 3:return[2]}})})()}p(er,"getPackage");function ea(e){return r(function(){var n,t,r,a,o;return d(this,function(i){try{;r=T(no.PACKAGE_JSON),a=(n=r.dependencies)!==null&&n!==void 0?n:{},o=(t=r.devDependencies)!==null&&t!==void 0?t:{};e.isDependency?a[e.name]=e.latestVersion:e.isDevDependency&&(o[e.name]=e.latestVersion),g(no.PACKAGE_JSON,JSON.stringify(r,null,4)),$.info('Updated "'.concat(e.name,'" to version ').concat(e.latestVersion))}catch(e){X(e)}return[2]})})()}p(ea,"updatePackage");function eo(){return r(function(){var e,n,t,r,a,o,i,s,c,u,l,E,f;return d(this,function(d){switch(d.label){case 0:d.trys.push([0,12,,13]);e=[{command:p(function(){return ns.pnpmInstallStandard()},"command"),message:"Installing dependencies (standard)"},{command:p(function(){return ns.pnpmInstallLegacy()},"command"),message:"Retrying with legacy peer dependencies"},{command:p(function(){return ns.pnpmInstallForce()},"command"),message:"Retrying with force install"}];n=true,t=false,r=undefined;d.label=1;case 1:d.trys.push([1,9,10,11]);a=e[Symbol.iterator]();d.label=2;case 2:if(!!(n=(o=a.next()).done))return[3,8];i=o.value,s=i.command,c=i.message;d.label=3;case 3:d.trys.push([3,6,,7]);return[4,s()];case 4:u=d.sent();return[4,eI("".concat(c," using: ").concat(u),u)];case 5:d.sent();return[2];case 6:l=d.sent();X(l);return[3,7];case 7:n=true;return[3,2];case 8:return[3,11];case 9:E=d.sent();t=true;r=E;return[3,11];case 10:try{if(!n&&a.return!=null){a.return()}}finally{if(t){throw r}}return[7];case 11:return[3,13];case 12:f=d.sent();X(f);return[3,13];case 13:return[2]}})})()}p(eo,"installDependencies");function ei(e,n){return r(function(){var t,r,a,o,i,s,c,l,E,f,p,m,S,D,O,C,v;return d(this,function(d){switch(d.label){case 0:d.trys.push([0,15,,16]);if(!h(no.PACKAGE_JSON)){$.error("package.json not found. Aborting setup.");return[2]}return[4,Promise.all(e.map(er))];case 1:a=d.sent().filter(function(e){return e.success&&!!e.result&&!e.result.isCurrentProject}).map(function(e){return e.result}),o=a.filter(function(e){return!e.isInstalled}),i=a.filter(function(e){return!e.isUpToDate}),s=[];(n===null||n===void 0?void 0:n.install)&&o.length>0&&(t=s).push.apply(t,u(o.map(ea))),(n===null||n===void 0?void 0:n.update)&&i.length>0&&(r=s).push.apply(r,u(i.map(ea)));c=s.length>0;if(!c)return[3,6];return[4,Promise.all(s)];case 2:d.sent();return[4,eo()];case 3:d.sent();l=["Running ESLint with auto-fix"];return[4,ns.eslintFix()];case 4:return[4,eI.apply(void 0,l.concat([d.sent()]))];case 5:c=d.sent();d.label=6;case 6:c;f=true,p=false,m=undefined;d.label=7;case 7:d.trys.push([7,12,13,14]);S=((E=n===null||n===void 0?void 0:n.callbacks)!==null&&E!==void 0?E:[])[Symbol.iterator]();d.label=8;case 8:if(!!(f=(D=S.next()).done))return[3,11];O=D.value;return[4,O()];case 9:d.sent();d.label=10;case 10:f=true;return[3,8];case 11:return[3,14];case 12:C=d.sent();p=true;m=C;return[3,14];case 13:try{if(!f&&S.return!=null){S.return()}}finally{if(p){throw m}}return[7];case 14:return[3,16];case 15:v=d.sent();X(v);return[3,16];case 16:return[2]}})})()}p(ei,"setupPackages");import es from"node-persist";var ec=Y();function eu(){return r(function(){var e;return d(this,function(n){switch(n.label){case 0:e=es.defaultInstance;if(e)return[3,2];return[4,es.init({dir:ec.CYBERSKILL_STORAGE_DIRECTORY})];case 1:e=n.sent();n.label=2;case 2:e;return[2]}})})()}p(eu,"initNodePersist");var el={get:function e(e){return r(function(){var n,t;return d(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,eu()];case 1:r.sent();return[4,es.getItem(e)];case 2:return[2,(n=r.sent())!==null&&n!==void 0?n:null];case 3:t=r.sent();return[2,X(t,{returnValue:null})];case 4:return[2]}})})()},set:function e(e,n){return r(function(){var t;return d(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,eu()];case 1:r.sent();return[4,es.setItem(e,n)];case 2:r.sent();return[3,4];case 3:t=r.sent();X(t);return[3,4];case 4:return[2]}})})()},remove:function e(e){return r(function(){var n;return d(this,function(t){switch(t.label){case 0:t.trys.push([0,3,,4]);return[4,eu()];case 1:t.sent();return[4,es.removeItem(e)];case 2:t.sent();return[3,4];case 3:n=t.sent();X(n);return[3,4];case 4:return[2]}})})()},keys:function e(){return r(function(){var e,n;return d(this,function(t){switch(t.label){case 0:t.trys.push([0,3,,4]);return[4,eu()];case 1:t.sent();return[4,es.keys()];case 2:e=t.sent();return[2,Array.isArray(e)?e:($.warn("[Storage:keys] Invalid keys response:",e),[])];case 3:n=t.sent();return[2,X(n,{returnValue:[]})];case 4:return[2]}})})()},getLogLink:function e(e){return r(function(){return d(this,function(n){try{return[2,"".concat(ec.CYBERSKILL_STORAGE_DIRECTORY," (key: ").concat(e,")")]}catch(e){return[2,X(e,{returnValue:null})]}return[2]})})()}};var eE=Y(),ed=K.promisify(k);function ef(){return r(function(){var e;return d(this,function(n){switch(n.label){case 0:return[4,er()];case 1:e=n.sent();return[2,e.success?e.result.name:Date.now().toString()]}})})()}p(ef,"getPackageName");function ep(e){return r(function(){var n,t;return d(this,function(a){switch(a.label){case 0:if(e.length===0)return[2];return[4,ef()];case 1:n=a.sent();a.label=2;case 2:a.trys.push([2,4,,5]);return[4,el.set(n,e)];case 3:a.sent(),setTimeout(function(){return r(function(){var e;return d(this,function(t){switch(t.label){case 0:return[4,el.getLogLink(n)];case 1:e=t.sent();e&&$.info("\uD83D\uDCC2 Open the error list manually: ".concat(e));return[2]}})})()},0);return[3,5];case 4:t=a.sent();X(t);return[3,5];case 5:return[2]}})})()}p(ep,"saveErrorListToStorage");function em(e){var n=[],t=[],r="",a=/^\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 s,c,u,l,E;var d=a.exec(e)||[],f=o.exec(e)||[],p=i.exec(e)||[];var m,S,D,O,C,v;d.length&&r?n.push({file:r,position:"".concat(d[1],":").concat(d[2]),type:d[3]===B.Error?B.Error:B.Warning,message:(m=d===null||d===void 0?void 0:(s=d[4])===null||s===void 0?void 0:s.trim())!==null&&m!==void 0?m:"",rule:(S=d===null||d===void 0?void 0:(c=d[5])===null||c===void 0?void 0:c.trim())!==null&&S!==void 0?S:""}):f.length?n.push({file:(D=f===null||f===void 0?void 0:f[1])!==null&&D!==void 0?D:"",position:"".concat(f[2],":").concat(f[3]),type:f[4]===B.Error?B.Error:B.Warning,message:(O=f===null||f===void 0?void 0:(u=f[5])===null||u===void 0?void 0:u.trim())!==null&&O!==void 0?O:""}):p.length?n.push({file:"commitlint",type:B.Error,message:(C=p===null||p===void 0?void 0:(l=p[1])===null||l===void 0?void 0:l.trim())!==null&&C!==void 0?C:"",rule:(v=p===null||p===void 0?void 0:(E=p[2])===null||E===void 0?void 0:E.trim())!==null&&v!==void 0?v:""}):t.push(e.trim())}}),n.length&&ep(n),eE.DEBUG&&t.length&&($.warn("Unmatched lines:"),t.forEach(function(e){return $.info(" ".concat(e))}))}p(em,"parseTextErrors");function eS(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,a=e.line,o=e.column,i=e.ruleId,s=e.message;t.push({type:r===2?B.Error:B.Warning,file:n,position:"".concat(a,":").concat(o),rule:i,message:s})})}),t.length&&ep(t)}catch(n){em(e)}}p(eS,"parseCommandOutput");function eD(e){return r(function(e){var n,t,r,a,o,i,s,c,u;var l=arguments;return d(this,function(E){switch(E.label){case 0:n=l.length>1&&l[1]!==void 0?l[1]:eS;t=new AbortController;j.on("SIGINT",function(){$.warn("Process interrupted. Terminating..."),t.abort(),j.exit()});E.label=1;case 1:E.trys.push([1,4,,5]);if(!(typeof e=="string"))return[3,3];return[4,ed(e,{maxBuffer:0x6400000,signal:t.signal})];case 2:r=E.sent(),a=r.stdout,o=r.stderr;[a,o].forEach(function(e){return e&&n(e)});E.label=3;case 3:return[3,5];case 4:i=E.sent();s=i.stdout,c=i.stderr,u=i.message;[s,c].forEach(function(e){return e&&n(e)}),!c&&!s&&$.error("Command failed: ".concat(u));return[3,5];case 5:return[2]}})}).apply(this,arguments)}p(eD,"executeCommand");function eO(e){return{raw:!0,cmd:e}}p(eO,"rawCommand");function eC(e,n){return(n===null||n===void 0?void 0:n.isCurrentProject)?"".concat(e8," ").concat(e4," ").concat(eH," ").concat(e):"".concat(e8," ").concat(eB," ").concat(e)}p(eC,"formatCLI");function ev(e,n){return typeof e=="function"?eC(e(n),n):(typeof e==="undefined"?"undefined":l(e))=="object"&&(e===null||e===void 0?void 0:e.raw)===!0?e.cmd:typeof e=="string"?eC(e,n):e}p(ev,"formatCommand");function eI(e,n){return r(function(){var t;return d(this,function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);$.start("".concat(e)),eE.DEBUG&&$.info("→ ".concat(n));return[4,eD(n)];case 1:r.sent(),$.success("".concat(e," done."));return[3,3];case 2:t=r.sent();X(t);return[3,3];case 3:return[2]}})})()}p(eI,"runCommand");import ey from"path";var eN=Y(),eT=ey,eg=eT.dirname;function eh(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++){n[t]=arguments[t]}var r;return(r=eT).resolve.apply(r,[eN.CWD].concat(u(n)))}p(eh,"resolveWorkingPath");function eA(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++){n[t]=arguments[t]}var r;return(r=eT).join.apply(r,u(n))}p(eA,"join");var e_=Y(),eR=e_.CWD,eG="@cyberskill/shared",eP="node_modules",eM="dist",eL="public",eb="package.json",eU="package-lock.json",ew="tsconfig.json",eV=".gitignore",eF=".simple-git-hooks.json",eY="pnpm-lock.yaml",ex=".git/hooks/",ek=".git/COMMIT_EDITMSG",ej=".migrate-mongo.config.js",eK=function(){var e=A.readJsonSync(eh(eb)).name===eG?eR:eA(eR,eP,eG);return eA(e,eM)}(),eB="cyberskill",eH="src/node/cli/index.ts",eQ="eslint",eq="eslint",eW="vitest";var ez="vitest",eJ="@commitlint/cli",e$="@commitlint/config-conventional",eX="commitlint",eZ="lint-staged",e0="lint-staged",e1="typescript",e2="tsc",e4="tsx",e3="git",e5="pnpm",e8="pnpm exec",e6="simple-git-hooks",e7="simple-git-hooks",e9="@eslint/config-inspector",ne="eslint-config-inspector",nn="node-modules-inspector",nt="node-modules-inspector",nr="migrate-mongo",na="./node_modules/migrate-mongo/bin/migrate-mongo",no={CYBERSKILL_DIRECTORY:eK,WORKING_DIRECTORY:eR,PUBLIC_DIRECTORY:eh(eL),TS_CONFIG:eh(ew),GIT_IGNORE:eh(eV),GIT_HOOK:eh(ex),GIT_COMMIT_MSG:eh(ek),SIMPLE_GIT_HOOKS_JSON:eh(eF),PACKAGE_JSON:eh(eb),PACKAGE_LOCK_JSON:eh(eU),PNPM_LOCK_YAML:eh(eY),NODE_MODULES:eh(eP),MIGRATE_MONGO_CONFIG:eh(ej),LINT_STAGED_CONFIG:eh("".concat(eK,"/config/lint-staged/index.js")),COMMITLINT_CONFIG:eh("".concat(eK,"/config/commitlint/index.js")),VITEST_UNIT_CONFIG:eh("".concat(eK,"/config/vitest/vitest.unit.js")),VITEST_UNIT_SETUP_CONFIG:eh("".concat(eK,"/config/vitest/vitest.unit.setup.js")),VITEST_E2E_CONFIG:eh("".concat(eK,"/config/vitest/vitest.e2e.js"))};function ni(e){var n=e.type,t=e.packages,a=e.command;var o=t===null||t===void 0?void 0:t.reduce(function(e,n){return e.some(function(e){return e.name===n.name})||e.push(n),e},[]);return function(){return r(function(){var e;return d(this,function(t){switch(t.label){case 0:switch(n){case x.CLI:return[3,1];case x.STRING:return[3,4]}return[3,5];case 1:e=o===null||o===void 0?void 0:o.length;if(!e)return[3,3];return[4,ei(o,{install:!0})];case 2:e=t.sent();t.label=3;case 3:return[2,(e,ev(eO("".concat(e8," ").concat(a))))];case 4:return[2,ev(eO(a))];case 5:throw new Error("Unsupported command type");case 6:return[2]}})})()}}p(ni,"buildCommand");var ns={simpleGitHooks:ni({type:x.CLI,packages:[{name:e6,type:Z.DEV_DEPENDENCY}],command:e7}),eslintInspect:ni({type:x.CLI,packages:[{name:e9,type:Z.DEV_DEPENDENCY}],command:ne}),nodeModulesInspect:ni({type:x.CLI,packages:[{name:nn,type:Z.DEV_DEPENDENCY}],command:nt}),eslintCheck:ni({type:x.CLI,packages:[{name:eQ,type:Z.DEV_DEPENDENCY}],command:"".concat(eq," ").concat(no.WORKING_DIRECTORY," --no-cache")}),eslintFix:ni({type:x.CLI,packages:[{name:eQ,type:Z.DEV_DEPENDENCY}],command:"".concat(eq," ").concat(no.WORKING_DIRECTORY," --fix --no-cache")}),typescriptCheck:ni({type:x.CLI,packages:[{name:e1,type:Z.DEV_DEPENDENCY}],command:"".concat(e2," -p ").concat(no.TS_CONFIG," --noEmit")}),testUnit:ni({type:x.CLI,packages:[{name:eW,type:Z.DEV_DEPENDENCY}],command:"".concat(ez," --config ").concat(no.VITEST_UNIT_CONFIG)}),testE2e:ni({type:x.CLI,packages:[{name:eW,type:Z.DEV_DEPENDENCY}],command:"".concat(ez," --config ").concat(no.VITEST_E2E_CONFIG)}),mongoMigrateCreate:p(function(e){return ni({type:x.CLI,packages:[{name:e4,type:Z.DEPENDENCY},{name:nr,type:Z.DEPENDENCY}],command:"".concat(e4," ").concat(na," create ").concat(e," -f ").concat(no.MIGRATE_MONGO_CONFIG)})()},"mongoMigrateCreate"),mongoMigrateUp:ni({type:x.CLI,packages:[{name:e4,type:Z.DEPENDENCY},{name:nr,type:Z.DEPENDENCY}],command:"".concat(e4," ").concat(na," up -f ").concat(no.MIGRATE_MONGO_CONFIG)}),mongoMigrateDown:ni({type:x.CLI,packages:[{name:e4,type:Z.DEPENDENCY},{name:nr,type:Z.DEPENDENCY}],command:"".concat(e4," ").concat(na," down -f ").concat(no.MIGRATE_MONGO_CONFIG)}),commitLint:ni({type:x.CLI,packages:[{name:eJ,type:Z.DEV_DEPENDENCY},{name:e$,type:Z.DEV_DEPENDENCY}],command:"".concat(eX," --edit ").concat(no.GIT_COMMIT_MSG," --config ").concat(no.COMMITLINT_CONFIG)}),lintStaged:ni({type:x.CLI,packages:[{name:eZ,type:Z.DEV_DEPENDENCY}],command:"".concat(e0," --config ").concat(no.LINT_STAGED_CONFIG)}),configureGitHook:ni({type:x.STRING,command:"".concat(e3," config core.hooksPath ").concat(no.GIT_HOOK)}),build:ni({type:x.STRING,command:"".concat(e5," run --if-present build")}),pnpmInstallStandard:ni({type:x.STRING,command:"".concat(e5," install --ignore-scripts")}),pnpmInstallLegacy:ni({type:x.STRING,command:"".concat(e5," install --ignore-scripts --legacy-peer-deps")}),pnpmInstallForce:ni({type:x.STRING,command:"".concat(e5," install --ignore-scripts --force")}),pnpmPruneStore:ni({type:x.STRING,command:"".concat(e5," store prune")}),pnpmCleanCache:ni({type:x.STRING,command:"".concat(e5," cache delete")})};var nc=function(e){return e.IMAGE="IMAGE",e.VIDEO="VIDEO",e.DOCUMENT="DOCUMENT",e.OTHER="OTHER",e}({});function nu(e){return r(function(){return d(this,function(n){return[2,new Promise(function(n,t){var r=0;e.on("data",function(e){r+=e.length}),e.on("end",function(){return n(r)}),e.on("error",t)})]})})()}p(nu,"getFileSizeFromStream");function nl(e,n){var t=e.lastIndexOf(".");if(t===-1)return!1;var r=e.substring(t+1).toLowerCase();return n.includes(r)}p(nl,"validateFileExtension");function nE(e,n,t){var r=e.filename,a=e.fileSize,o=n[t],i=o.allowedExtensions,s=o.sizeLimit;if(!nl(r,i))return{isValid:!1,error:"File extension not allowed for ".concat(t.toLowerCase()," files. Allowed extensions: ").concat(i.join(", "))};if(a!==void 0&&a>s){var c=Math.round(s/1048576);return{isValid:!1,error:"File size exceeds limit for ".concat(t.toLowerCase()," files. Maximum size: ").concat(c,"MB")}}return{isValid:!0}}p(nE,"validateUpload");function nd(e){var n;return c({},(n={},a(n,nc.IMAGE,{allowedExtensions:["jpg","jpeg","png","gif","webp","svg"],sizeLimit:5242880}),a(n,nc.VIDEO,{allowedExtensions:["mp4","avi","mov","wmv","flv","webm"],sizeLimit:524288e3}),a(n,nc.DOCUMENT,{allowedExtensions:["pdf","doc","docx","txt","rtf"],sizeLimit:0xa00000}),a(n,nc.OTHER,{allowedExtensions:["zip","rar","tar","gz"],sizeLimit:5242880}),n),e)}p(nd,"createUploadConfig");function nf(e){return r(function(){var n,t,r,a,i,s,c,u,E,f,p,m,S,D,O,v,I,y,T,g,A;return d(this,function(d){switch(d.label){case 0:n=e.path,t=e.file,r=e.config,a=e.type;if(!n||typeof n!="string")return[2,{success:!1,message:"Invalid path provided",result:""}];if(!t||(typeof t==="undefined"?"undefined":l(t))!="object")return[2,{success:!1,message:"Invalid file provided",result:""}];if(r){i=[nc.IMAGE,nc.VIDEO,nc.DOCUMENT,nc.OTHER];s=true,c=false,u=undefined;try{for(E=i[Symbol.iterator]();!(s=(f=E.next()).done);s=true){p=f.value;if(!r[p]||!Array.isArray(r[p].allowedExtensions)||r[p].allowedExtensions.length===0)return[2,{success:!1,message:"Invalid config for ".concat(p.toLowerCase()," files"),result:""}];if(typeof r[p].sizeLimit!="number"||r[p].sizeLimit<=0)return[2,{success:!1,message:"Invalid size limit for ".concat(p.toLowerCase()," files"),result:""}]}}catch(e){c=true;u=e}finally{try{if(!s&&E.return!=null){E.return()}}finally{if(c){throw u}}}}d.label=1;case 1:d.trys.push([1,7,,8]);return[4,t];case 2:return[4,d.sent().file];case 3:m=d.sent(),S=m.filename,D=m.createReadStream;if(!r)return[3,5];O=D();return[4,nu(O)];case 4:v=d.sent(),I=nE({filename:S,fileSize:v},r,a);if(!I.isValid)return[2,{success:!1,message:I.error||"File validation failed",result:""}];d.label=5;case 5:y=eg(n);h(y)||C(y,{recursive:!0});T=D(),g=N(n);T.pipe(g);return[4,new Promise(function(e,n){g.on("finish",function(){return e()}),g.on("error",n),T.on("error",n)})];case 6:return[2,(d.sent(),{success:!0,message:"File uploaded successfully",result:n})];case 7:A=d.sent();return[2,{success:!1,message:o(A,Error)?A.message:"File upload failed",result:""}];case 8:return[2]}})})()}p(nf,"upload");export{nd as createUploadConfig,nf as upload};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cyberskill/shared",
3
3
  "type": "module",
4
- "version": "1.191.0",
4
+ "version": "1.193.0",
5
5
  "description": "CyberSkill Shared",
6
6
  "author": "Stephen Cheng",
7
7
  "license": "MIT",
@@ -114,6 +114,11 @@
114
114
  "import": "./dist/node/storage/index.js",
115
115
  "require": "./dist/node/storage/index.cjs"
116
116
  },
117
+ "./node/upload": {
118
+ "types": "./dist/node/upload/index.d.ts",
119
+ "import": "./dist/node/upload/index.js",
120
+ "require": "./dist/node/upload/index.cjs"
121
+ },
117
122
  "./node/ws": {
118
123
  "types": "./dist/node/ws/index.d.ts",
119
124
  "import": "./dist/node/ws/index.js",
@@ -228,7 +233,7 @@
228
233
  "@dotenvx/dotenvx": "1.45.1",
229
234
  "@eddeee888/gcg-typescript-resolver-files": "0.12.1",
230
235
  "@graphql-codegen/cli": "5.0.7",
231
- "@graphql-codegen/client-preset": "4.8.2",
236
+ "@graphql-codegen/client-preset": "4.8.3",
232
237
  "@nestjs/common": "11.1.3",
233
238
  "@nestjs/core": "11.1.3",
234
239
  "@vitejs/plugin-react-swc": "3.10.2",
@@ -254,10 +259,10 @@
254
259
  "localforage": "1.10.0",
255
260
  "migrate-mongo": "12.1.3",
256
261
  "mongodb": "6.17.0",
257
- "mongoose": "8.16.0",
262
+ "mongoose": "8.16.1",
258
263
  "mongoose-aggregate-paginate-v2": "1.1.4",
259
264
  "mongoose-paginate-v2": "1.9.1",
260
- "next-intl": "4.3.0",
265
+ "next-intl": "4.3.1",
261
266
  "node-fetch": "3.3.2",
262
267
  "node-persist": "4.0.4",
263
268
  "qs": "6.14.0",
@@ -292,7 +297,7 @@
292
297
  "@types/express-useragent": "1.0.5",
293
298
  "@types/fs-extra": "11.0.4",
294
299
  "@types/migrate-mongo": "10.0.5",
295
- "@types/node": "24.0.3",
300
+ "@types/node": "24.0.7",
296
301
  "@types/node-persist": "3.1.8",
297
302
  "@types/react": "19.1.8",
298
303
  "@types/react-dom": "19.1.6",
@@ -302,7 +307,7 @@
302
307
  "@types/yargs": "17.0.33",
303
308
  "@vitest/browser": "3.2.4",
304
309
  "esbuild-sass-plugin": "3.3.1",
305
- "eslint": "9.29.0",
310
+ "eslint": "9.30.0",
306
311
  "eslint-config-next": "15.3.4",
307
312
  "eslint-plugin-format": "1.0.1",
308
313
  "eslint-plugin-react-hooks": "5.2.0",