chayns-toolkit 3.0.2 → 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli.js +2 -2
- package/package.json +8 -8
package/lib/cli.js
CHANGED
|
@@ -26,13 +26,13 @@ attempted value: ${s}
|
|
|
26
26
|
`}),Error(n)}}var pr="toolkit.config.js";var wt=z(ln()),D={path(t){return wt.default.hex("#16BDCA")(`\`${cn(t)}\``)},command(t){return wt.default.hex("#AC94FA")(`\`${cn(t)}\``)},code(t){return wt.default.hex("#76A9FA")(`\`${cn(t)}\``)},alt(t){return wt.default.hex("#97A6BA")(cn(t))},number(t){return wt.default.hex("#F17EB8")(t)}};function cn(t){return LP(t)?t[0]:t}function LP(t){return Array.isArray(t)}function fn({config:t,dev:e,modifier:r,target:n}){if(!r)return t;let i=r(t,{dev:e,target:n});if(i===void 0)throw Error(`The webpack customization function in your ${D.path(pr)} returned nothing.`);if(typeof i!="object")throw Error(`The webpack customization function in your ${D.path(pr)} returned an invalid configuration.`);return i}var mr=z(ln()),F={info(t){console.info(`${mr.default.hex("#76A9FA")("info ")} - ${t}`)},hint(t){console.info(`${mr.default.hex("#31C48D")("hint ")} - ${t}`)},warn(t){console.info(`${mr.default.hex("#FACA15")("warn ")} - ${t}`)},error(t){console.info(`${mr.default.hex("#F98080")("error")} - ${t}`)},blank(t){console.info(` ${t}`)},exit(t){console.info(""),t?process.exit(t):process.exit()}};async function mm(t){return(await t.build()).stats}function _m({analyze:t}){return async({config:e,packageJson:r})=>{let n=e.output.serverSideRendering?["server","client"]:[null];for(let i of n){let s=await Tr({mode:"production",analyze:t,outputFilename:e.output.filename,singleBundle:e.output.singleBundle,serverSideRendering:e.output.serverSideRendering,path:i?`${e.output.path}/${i}`:e.output.path,packageJson:r,prefixCss:e.output.prefixCss,cssVersion:e.output.cssVersion,exposeModules:e.output.exposeModules,entryPoints:e.output.entryPoints,target:i});if(typeof e.webpack=="function"){let u=e.webpack;s=fn({config:s,dev:!1,modifier:u,target:i??"client"})}let o=await(0,gm.createRsbuild)({rsbuildConfig:s});F.info("Bundling your code...");let a=await mm(o);a?.hasErrors()&&(F.error(`Compilation failed.
|
|
27
27
|
`),a.compilation.errors.forEach(u=>{console.error(u)}),F.exit(1))}}}var g0=require("child_process"),_0=z(require("path")),y0=require("@rsbuild/core"),Er=z(require("fs")),b0=require("node:fs");var Xe={install(t,e,r=!1){let n="npm i ";return t==="yarn"&&(n="yarn add "),Array.isArray(e)?n+=e.join(" "):n+=e,r&&(n+=" -D"),D.command(n)},remove(t,e){let r=t==="yarn"?"yarn remove ":"npm remove ";return r+=Array.isArray(e)?e.join(" "):e,D.command(r)},move(t,e,r){let n=Array.isArray(e)?e.join(" "):e;return t==="yarn"?D.command(`yarn remove ${n} && yarn add ${n}${r==="dev"?" -D":""}`):D.command(`npm install ${n}${r==="dev"?" -D":""}`)}};function ym(){let t=IP.some(r=>G.hasFile(r)),e=NP.some(r=>G.hasFile(r));if(t&&e&&(F.warn(`You have both ${D.path`package-lock.json`} and ${D.path`yarn.lock`} files in your project.
|
|
28
28
|
`),F.blank("Decide on wether you want to use Yarn or NPM and remove one of the lockfiles.")),t)return"npm";if(e)return"yarn"}var IP=["./package-lock.json","../package-lock.json","../../package-lock.json"],NP=["./yarn.lock","../yarn.lock","../../yarn.lock"];async function bm(){let t=await G.readFile("package.json");if(t===null)throw Error("No package.json file was found.");return JSON.parse(t)}async function Qe(...t){let e;try{e=await Dd()}catch(s){let o=s;F.error(`An error occured while loading the ${D.path`toolkit.config.js`} file:
|
|
29
|
-
`),F.blank(o.message);return}let[r,n]=await Promise.all([bm(),ym()]),i=!0;for(let s of t)if(i){for(let o of s)await o({config:e,packageJson:r,packageManager:n})&&(i=!1);t.indexOf(s)!==t.length-1&&F.blank("")}}var gr=z(require("dotenv"));function _r(t=!1){t?(process.env.BABEL_ENV="development",process.env.NODE_ENV="development"):(process.env.BABEL_ENV="production",process.env.NODE_ENV="production");let e=t?"development":process.env.BUILD_ENV||"production";gr.default.config({path:`.env.${e}.local`}),gr.default.config({path:".env.local"}),gr.default.config({path:`.env.${e}`}),gr.default.config({path:".env"})}var xm=require("util"),{isRegExp:vm}=xm.types;function Em(t,e){let r=Object.keys({...t.dependencies,...t.devDependencies});return Array.isArray(e)?r.filter(n=>e.some(i=>vm(i)?i.test(n):i===n)):vm(e)?r.some(n=>e.test(n)):r.includes(e)}var Am=z(require("fs")),wm=z(require("path")),Om=require("util"),HP=(0,Om.promisify)(Am.readFile);async function Es(t){let e=wm.resolve("package.json"),r=await HP(e,{encoding:"utf-8"}),n=JSON.parse(r),i=Object.keys({...n.dependencies,...n.devDependencies});return Array.isArray(t)?i.filter(s=>t.some(o=>Sm(o)?o.test(s):o===s)):Sm(t)?i.some(s=>t.test(s)):i.includes(t)}function Sm(t){return Object.prototype.toString.call(t)==="[object RegExp]"}async function Cm(t){let e=await Es("@types/react"),r=await Es("@types/react-dom"),n=[!e&&"@types/react",!r&&"@types/react-dom"].filter(Boolean);if(n.length>0){let i=n.map(s=>D.code(s)).join(" and ");F.hint(`You should install the ${i} package${n.length>0?"s":""} to get TypeScript support for React.
|
|
29
|
+
`),F.blank(o.message),F.exit(1);return}let[r,n]=await Promise.all([bm(),ym()]),i=!0;for(let s of t)if(i){for(let o of s)await o({config:e,packageJson:r,packageManager:n})&&(i=!1);t.indexOf(s)!==t.length-1&&F.blank("")}}var gr=z(require("dotenv"));function _r(t=!1){t?(process.env.BABEL_ENV="development",process.env.NODE_ENV="development"):(process.env.BABEL_ENV="production",process.env.NODE_ENV="production");let e=t?"development":process.env.BUILD_ENV||"production";gr.default.config({path:`.env.${e}.local`}),gr.default.config({path:".env.local"}),gr.default.config({path:`.env.${e}`}),gr.default.config({path:".env"})}var xm=require("util"),{isRegExp:vm}=xm.types;function Em(t,e){let r=Object.keys({...t.dependencies,...t.devDependencies});return Array.isArray(e)?r.filter(n=>e.some(i=>vm(i)?i.test(n):i===n)):vm(e)?r.some(n=>e.test(n)):r.includes(e)}var Am=z(require("fs")),wm=z(require("path")),Om=require("util"),HP=(0,Om.promisify)(Am.readFile);async function Es(t){let e=wm.resolve("package.json"),r=await HP(e,{encoding:"utf-8"}),n=JSON.parse(r),i=Object.keys({...n.dependencies,...n.devDependencies});return Array.isArray(t)?i.filter(s=>t.some(o=>Sm(o)?o.test(s):o===s)):Sm(t)?i.some(s=>t.test(s)):i.includes(t)}function Sm(t){return Object.prototype.toString.call(t)==="[object RegExp]"}async function Cm(t){let e=await Es("@types/react"),r=await Es("@types/react-dom"),n=[!e&&"@types/react",!r&&"@types/react-dom"].filter(Boolean);if(n.length>0){let i=n.map(s=>D.code(s)).join(" and ");F.hint(`You should install the ${i} package${n.length>0?"s":""} to get TypeScript support for React.
|
|
30
30
|
`),t!==void 0&&F.blank(`Install them by running ${Xe.install(t,n,!0)}`)}}async function Pm(){if(!G.hasFile("tsconfig.json"))return!0;let r=(await G.readFile("tsconfig.json")??"").replace(/\s/gi,"");return r===""||r==="{}"}var h0=z(p0());async function d0(){return G.hasFile("tsconfig.json")?!0:(await(0,h0.default)("src/**/*.{ts,tsx}")).length>0}async function In({packageJson:t,packageManager:e}){let r=Em(t,"typescript"),n=await Pm();return r?(await Cm(e),n&&await m0(),!1):await d0()?(n&&await m0(),F.error(`To use TypeScript, you have to install the ${D.code`typescript`} package by running ${Xe.install(e,"typescript",!0)}.`),!0):!1}async function m0(){await G.writeFile("tsconfig.json",JSON.stringify(LF,void 0,4)),F.info(`Seems like you want to use TypeScript. A ${D.path`tsconfig.json`} file has been set up for you.`)}var LF={compilerOptions:{allowJs:!0,allowSyntheticDefaultImports:!0,checkJs:!1,esModuleInterop:!0,experimentalDecorators:!0,isolatedModules:!0,jsx:"react",lib:["DOM","ESNext"],noEmit:!0,skipLibCheck:!0,strict:!0}};var ia=z(require("fs"));function Nn({config:t}){let{cert:e,key:r}=t.development,n=!1;return r&&!e||!r&&e?(F.error(`You have specified the ${D.code(r?"key":"cert")} field in your ${D.path`chayns-toolkit.json`} file, but not ${D.code(r?"cert":"key")}. You need to specify paths in both fields for SSL to work.`),n=!0):(r&&(ia.existsSync(r)||(F.error(`No file exists at the ${D.code`key`} path specified in ${D.path`chayns-toolkit.json`}.`),n=!0)),e&&(ia.existsSync(e)||(F.error(`No file exists at the ${D.code`cert`} path specified in ${D.path`chayns-toolkit.json`}.`),n=!0))),n}var sa=!1;function oa({devtools:t}){return async({config:e,packageJson:r,packageManager:n})=>{let{port:i,host:s,cert:o,key:a}=e.development,u=await Tr({analyze:!1,mode:"development",outputFilename:e.output.filename,singleBundle:e.output.singleBundle,serverSideRendering:e.output.serverSideRendering,packageJson:r,injectDevtoolsScript:t,prefixCss:e.output.prefixCss,cssVersion:e.output.cssVersion,exposeModules:e.output.exposeModules,entryPoints:e.output.entryPoints,target:"client"});if(t&&("react-devtools"in(r.dependencies||{})?(F.error(`You added ${D.code`react-devtools`} as a regular dependency.`),F.blank(`Install it under ${D.code`devDependencies`} by running ${Xe.move(n,"react-devtools","dev")}.
|
|
31
31
|
`),process.exit(1)):"react-devtools"in(r.devDependencies||{})||(F.error(`You need to install the ${D.code`react-devtools`} package to use the ${D.command`--devtools`} option.`),F.blank(`Run ${Xe.move(n,"react-devtools","dev")} to add it as a ${D.code`devDependency`}.
|
|
32
32
|
`),process.exit(1)),(0,g0.exec)(`node ${_0.join(require.resolve("react-devtools"),"../bin.js")}`)),u.server||={},u.server.host=s,u.server.port=i,u.server.headers={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, PATCH, OPTIONS","Access-Control-Allow-Headers":"X-Requested-With, content-type, Authorization"},o&&a&&(u.server.https={cert:Er.default.readFileSync(o),key:Er.default.readFileSync(a)}),typeof e.webpack=="function"){let b=e.webpack;u=fn({config:u,dev:!0,modifier:b,target:"client"})}let c=await(0,y0.createRsbuild)({rsbuildConfig:u}),{server:f,urls:h}=await c.startDevServer();h.forEach(b=>{console.log("Project is running at: ",b)});let p=async()=>{sa||(sa=!0,console.log("Start restarting dev server"),await f.close(),_r(!0),sa=!1,await Qe([In,Nn],[oa({devtools:t})]),console.log("Dev Server restarted"),(0,b0.unwatchFile)(G.resolvePath("./toolkit.config.js"),p))};(0,Er.watchFile)(G.resolvePath("./toolkit.config.js"),p)}}var aa=require("eslint");async function v0(){F.info("Linting your code...");try{let t=new aa.ESLint({fix:!0,extensions:["js","jsx","ts","tsx"]}),e=await t.lintFiles(["./src"]);await aa.ESLint.outputFixes(e);let r=e.reduce((s,o)=>s+o.warningCount,0),n=e.reduce((s,o)=>s+o.errorCount,0),i="";(r||n)&&(i=(await t.loadFormatter("pretty")).format(e)),n+r===0?F.info(`No linting errors were found.
|
|
33
33
|
`):(F.warn(`${n} errors and ${r} were found:
|
|
34
34
|
`),console.log(i))}catch(t){F.error(`An error occured while linting your project:
|
|
35
|
-
`),F.blank(t.message)}}var x0=z(require("fs")),E0=require("jest"),ua=z(require("path"));function S0({watch:t,setupFile:e}){return async({config:r,packageJson:n})=>{let i={transform:{"\\.[jt]sx?$":["babel-jest",{presets:["@babel/preset-react","@babel/preset-env"]}]},moduleFileExtensions:["ts","tsx","js","jsx"],moduleNameMapper:{"^.+\\.(css|less|scss)$":"babel-jest","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":ua.default.resolve(__dirname,"assets","file-mock.js")},testPathIgnorePatterns:["^.+\\.eslintrc\\.js$"],setupFilesAfterEnv:[ua.default.resolve(__dirname,"assets","react-testing-library.setup.js")],testEnvironment:"jsdom"};if(typeof r.jest=="function"){let o=r.jest;i=o(i)}if(e){let o=G.resolvePath(e),a=`The specified setup file for the tests (${o}) could not be found.`;try{x0.default.existsSync(o)?i.setupFilesAfterEnv&&i.setupFilesAfterEnv.push(o):F.warn(a)}catch{F.warn(a)}}let s=[];s.push("--config",JSON.stringify(i)),t&&s.push("--watch"),await(0,E0.run)(s)}}var la=z(ln()),A0=z(require("http")),w0=z(require("https")),O0=z(require("serve-handler")),ca=z(require("fs"));function C0(){return async({config:t})=>{let{host:e,port:r,cert:n,key:i}=t.development,s,o;n&&(s=ca.default.readFileSync(n)),i&&(o=ca.default.readFileSync(i));let a=!!(s&&o),u=async(f,h)=>{let p=Date.now();await(0,O0.default)(f,h,{public:t.output.path??"build"}),console.log(f.method,f.url),console.log("Returned",(h.statusCode===200?la.default.green:la.default.red)(h.statusCode),"in",Date.now()-p,"ms")};(a?w0.default.createServer({key:o,cert:s},u):A0.default.createServer(u)).listen(r,()=>{let f=`http${a?"s":""}://${e}:${r}`;console.log(`Running at ${f}`)}),await Promise.resolve()}}var nt=new P0.Command;nt.version("3.0.
|
|
35
|
+
`),F.blank(t.message)}}var x0=z(require("fs")),E0=require("jest"),ua=z(require("path"));function S0({watch:t,setupFile:e}){return async({config:r,packageJson:n})=>{let i={transform:{"\\.[jt]sx?$":["babel-jest",{presets:["@babel/preset-react","@babel/preset-env"]}]},moduleFileExtensions:["ts","tsx","js","jsx"],moduleNameMapper:{"^.+\\.(css|less|scss)$":"babel-jest","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":ua.default.resolve(__dirname,"assets","file-mock.js")},testPathIgnorePatterns:["^.+\\.eslintrc\\.js$"],setupFilesAfterEnv:[ua.default.resolve(__dirname,"assets","react-testing-library.setup.js")],testEnvironment:"jsdom"};if(typeof r.jest=="function"){let o=r.jest;i=o(i)}if(e){let o=G.resolvePath(e),a=`The specified setup file for the tests (${o}) could not be found.`;try{x0.default.existsSync(o)?i.setupFilesAfterEnv&&i.setupFilesAfterEnv.push(o):F.warn(a)}catch{F.warn(a)}}let s=[];s.push("--config",JSON.stringify(i)),t&&s.push("--watch"),await(0,E0.run)(s)}}var la=z(ln()),A0=z(require("http")),w0=z(require("https")),O0=z(require("serve-handler")),ca=z(require("fs"));function C0(){return async({config:t})=>{let{host:e,port:r,cert:n,key:i}=t.development,s,o;n&&(s=ca.default.readFileSync(n)),i&&(o=ca.default.readFileSync(i));let a=!!(s&&o),u=async(f,h)=>{let p=Date.now();await(0,O0.default)(f,h,{public:t.output.path??"build"}),console.log(f.method,f.url),console.log("Returned",(h.statusCode===200?la.default.green:la.default.red)(h.statusCode),"in",Date.now()-p,"ms")};(a?w0.default.createServer({key:o,cert:s},u):A0.default.createServer(u)).listen(r,()=>{let f=`http${a?"s":""}://${e}:${r}`;console.log(`Running at ${f}`)}),await Promise.resolve()}}var nt=new P0.Command;nt.version("3.0.4","-v, --version","output the version number");nt.command("dev").description("start up a development server with hot module replacement").option("-d, --devtools","open react-devtools in a separate window",!1).action(async t=>{_r(!0),await Qe([In,Nn],[oa({devtools:t.devtools})])});nt.command("build").description("bundles your code for production").option("-a, --analyze","analyze your bundle size",!1).action(async t=>{try{_r(!1),await Qe([_m({analyze:t.analyze})])}catch(e){F.error(e),F.exit(1)}console.info("")});nt.command("lint").description("lints your code for possible errors").action(async()=>{await v0(),console.info("")});nt.command("serve").description("serves the files from a local build folder").action(async()=>{try{await Qe([C0()])}catch(t){F.error(t)}});nt.command("test").description("executes all Jest tests for this project").option("-w, --watch","watch for changes to rerun tests",!1).option("--setupFile <path>","file that should be executed before the tests are initialized","").action(async t=>{try{await Qe([S0(t)])}catch(e){F.error(e)}console.info("")});nt.parse(process.argv);
|
|
36
36
|
/*! Bundled license information:
|
|
37
37
|
|
|
38
38
|
is-extglob/index.js:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chayns-toolkit",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.4",
|
|
4
4
|
"description": "A zero-config toolchain for developing chayns® apps.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"chayns",
|
|
@@ -49,14 +49,14 @@
|
|
|
49
49
|
"@chayns-toolkit/eslint-config": "^2.0.2",
|
|
50
50
|
"@module-federation/enhanced": "^0.6.10",
|
|
51
51
|
"@module-federation/node": "^2.5.20",
|
|
52
|
-
"@rsbuild/core": "^1.
|
|
53
|
-
"@rsbuild/plugin-assets-retry": "^1.0.
|
|
52
|
+
"@rsbuild/core": "^1.1.6",
|
|
53
|
+
"@rsbuild/plugin-assets-retry": "^1.0.6",
|
|
54
54
|
"@rsbuild/plugin-css-minimizer": "^1.0.2",
|
|
55
|
-
"@rsbuild/plugin-node-polyfill": "^1.0
|
|
56
|
-
"@rsbuild/plugin-react": "^1.0.
|
|
57
|
-
"@rsbuild/plugin-sass": "^1.
|
|
58
|
-
"@rsbuild/plugin-svgr": "^1.0.
|
|
59
|
-
"@rspack/core": "^1.
|
|
55
|
+
"@rsbuild/plugin-node-polyfill": "^1.2.0",
|
|
56
|
+
"@rsbuild/plugin-react": "^1.0.7",
|
|
57
|
+
"@rsbuild/plugin-sass": "^1.1.1",
|
|
58
|
+
"@rsbuild/plugin-svgr": "^1.0.5",
|
|
59
|
+
"@rspack/core": "^1.1.4",
|
|
60
60
|
"@testing-library/jest-dom": "^5.15.1",
|
|
61
61
|
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
|
62
62
|
"@typescript-eslint/parser": "^5.4.0",
|