@rsbuild/core 0.0.25 → 0.0.26

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 (54) hide show
  1. package/bin/rsbuild.js +4 -25
  2. package/compiled/jiti/index.js +1885 -0
  3. package/compiled/jiti/license +21 -0
  4. package/compiled/jiti/package.json +1 -0
  5. package/compiled/jiti/types/jiti.d.ts +19 -0
  6. package/compiled/jiti/types/types.d.ts +31 -0
  7. package/compiled/sirv/index.js +1 -0
  8. package/compiled/sirv/package.json +1 -0
  9. package/compiled/sirv/sirv.d.ts +27 -0
  10. package/dist/cli/commands.d.ts +8 -4
  11. package/dist/cli/commands.js +49 -10
  12. package/dist/cli/config.d.ts +2 -2
  13. package/dist/cli/config.js +15 -6
  14. package/dist/cli/prepare.d.ts +1 -0
  15. package/dist/cli/{run.js → prepare.js} +19 -17
  16. package/dist/createRsbuild.d.ts +0 -1
  17. package/dist/createRsbuild.js +4 -9
  18. package/dist/index.d.ts +7 -3
  19. package/dist/index.js +2 -4
  20. package/dist/rspack-provider/config.d.ts +9 -0
  21. package/dist/rspack-provider/{config/defaults.js → config.js} +9 -3
  22. package/dist/rspack-provider/core/createContext.d.ts +8 -2
  23. package/dist/rspack-provider/core/createContext.js +90 -5
  24. package/dist/rspack-provider/core/initConfigs.js +4 -3
  25. package/dist/rspack-provider/core/initPlugins.js +2 -1
  26. package/dist/rspack-provider/index.d.ts +3 -2
  27. package/dist/rspack-provider/index.js +11 -4
  28. package/dist/rspack-provider/plugins/css.js +2 -10
  29. package/dist/rspack-provider/provider.js +5 -6
  30. package/dist/rspack-provider/shared.d.ts +8 -0
  31. package/dist/rspack-provider/shared.js +116 -0
  32. package/dist/server/prodServer.js +1 -1
  33. package/dist/server/restart.js +2 -4
  34. package/package.json +4 -6
  35. package/dist/cli/index.d.ts +0 -2
  36. package/dist/cli/index.js +0 -31
  37. package/dist/cli/run.d.ts +0 -5
  38. package/dist/rspack-provider/config/defaults.d.ts +0 -3
  39. package/dist/rspack-provider/config/normalize.d.ts +0 -7
  40. package/dist/rspack-provider/config/normalize.js +0 -33
  41. package/dist/rspack-provider/shared/constants.d.ts +0 -1
  42. package/dist/rspack-provider/shared/constants.js +0 -28
  43. package/dist/rspack-provider/shared/fs.d.ts +0 -1
  44. package/dist/rspack-provider/shared/fs.js +0 -38
  45. package/dist/rspack-provider/shared/index.d.ts +0 -3
  46. package/dist/rspack-provider/shared/index.js +0 -26
  47. package/dist/rspack-provider/shared/plugin.d.ts +0 -3
  48. package/dist/rspack-provider/shared/plugin.js +0 -75
  49. package/dist/rspack-provider/shared/rspackVersion.d.ts +0 -3
  50. package/dist/rspack-provider/shared/rspackVersion.js +0 -61
  51. /package/dist/rspack-provider/{rspackLoader/css-modules-typescript-pre-loader → css-modules-typescript-pre-loader}/index.d.ts +0 -0
  52. /package/dist/rspack-provider/{rspackLoader/css-modules-typescript-pre-loader → css-modules-typescript-pre-loader}/index.js +0 -0
  53. /package/dist/rspack-provider/{rspackLoader/css-modules-typescript-pre-loader → css-modules-typescript-pre-loader}/postcss-icss-extract-plugin.d.ts +0 -0
  54. /package/dist/rspack-provider/{rspackLoader/css-modules-typescript-pre-loader → css-modules-typescript-pre-loader}/postcss-icss-extract-plugin.js +0 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Pooya Parsa <pooya@pi0.io>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ {"name":"jiti","version":"1.20.0","license":"MIT","types":"types/jiti.d.ts"}
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" />
2
+ import { Module } from 'module';
3
+ import { TransformOptions, JITIOptions } from './types';
4
+ export type { JITIOptions, TransformOptions } from "./types";
5
+ type Require = typeof require;
6
+ type Module = typeof module;
7
+ type ModuleCache = Record<string, Module>;
8
+ export type EvalModuleOptions = Partial<{
9
+ id: string;
10
+ filename: string;
11
+ ext: string;
12
+ cache: ModuleCache;
13
+ }>;
14
+ export interface JITI extends Require {
15
+ transform: (opts: TransformOptions) => string;
16
+ register: () => () => void;
17
+ evalModule: (source: string, options?: EvalModuleOptions) => unknown;
18
+ }
19
+ export default function createJITI(_filename: string, opts?: JITIOptions, parentModule?: Module, parentCache?: ModuleCache): JITI;
@@ -0,0 +1,31 @@
1
+ export type TransformOptions = {
2
+ source: string;
3
+ filename?: string;
4
+ ts?: boolean;
5
+ retainLines?: boolean;
6
+ legacy?: boolean;
7
+ [key: string]: any;
8
+ };
9
+ export type TRANSFORM_RESULT = {
10
+ code: string;
11
+ error?: any;
12
+ };
13
+ export type JITIOptions = {
14
+ transform?: (opts: TransformOptions) => TRANSFORM_RESULT;
15
+ debug?: boolean;
16
+ cache?: boolean | string;
17
+ sourceMaps?: boolean;
18
+ requireCache?: boolean;
19
+ v8cache?: boolean;
20
+ interopDefault?: boolean;
21
+ esmResolve?: boolean;
22
+ cacheVersion?: string;
23
+ onError?: (error: Error) => void;
24
+ legacy?: boolean;
25
+ extensions?: string[];
26
+ transformOptions?: Omit<TransformOptions, "source">;
27
+ alias?: Record<string, string>;
28
+ nativeModules?: string[];
29
+ transformModules?: string[];
30
+ experimentalBun?: boolean;
31
+ };
@@ -0,0 +1 @@
1
+ (()=>{var i={899:(i,t,a)=>{const e=a(477);function parse(i){let t=i.url;if(t==null)return;let a=i._parsedUrl;if(a&&a.raw===t)return a;let p=t,l="",o;if(t.length>1){let i=t.indexOf("?",1);if(i!==-1){l=t.substring(i);p=t.substring(0,i);if(l.length>1){o=e.parse(l.substring(1))}}}return i._parsedUrl={pathname:p,search:l,query:o,raw:t}}t.parse=parse},245:(i,t)=>{const a={ez:"application/andrew-inset",aw:"application/applixware",atom:"application/atom+xml",atomcat:"application/atomcat+xml",atomdeleted:"application/atomdeleted+xml",atomsvc:"application/atomsvc+xml",dwd:"application/atsc-dwd+xml",held:"application/atsc-held+xml",rsat:"application/atsc-rsat+xml",bdoc:"application/bdoc",xcs:"application/calendar+xml",ccxml:"application/ccxml+xml",cdfx:"application/cdfx+xml",cdmia:"application/cdmi-capability",cdmic:"application/cdmi-container",cdmid:"application/cdmi-domain",cdmio:"application/cdmi-object",cdmiq:"application/cdmi-queue",cu:"application/cu-seeme",mpd:"application/dash+xml",davmount:"application/davmount+xml",dbk:"application/docbook+xml",dssc:"application/dssc+der",xdssc:"application/dssc+xml",es:"application/ecmascript",ecma:"application/ecmascript",emma:"application/emma+xml",emotionml:"application/emotionml+xml",epub:"application/epub+zip",exi:"application/exi",fdt:"application/fdt+xml",pfr:"application/font-tdpfr",geojson:"application/geo+json",gml:"application/gml+xml",gpx:"application/gpx+xml",gxf:"application/gxf",gz:"application/gzip",hjson:"application/hjson",stk:"application/hyperstudio",ink:"application/inkml+xml",inkml:"application/inkml+xml",ipfix:"application/ipfix",its:"application/its+xml",jar:"application/java-archive",war:"application/java-archive",ear:"application/java-archive",ser:"application/java-serialized-object",class:"application/java-vm",js:"application/javascript",mjs:"application/javascript",json:"application/json",map:"application/json",json5:"application/json5",jsonml:"application/jsonml+json",jsonld:"application/ld+json",lgr:"application/lgr+xml",lostxml:"application/lost+xml",hqx:"application/mac-binhex40",cpt:"application/mac-compactpro",mads:"application/mads+xml",webmanifest:"application/manifest+json",mrc:"application/marc",mrcx:"application/marcxml+xml",ma:"application/mathematica",nb:"application/mathematica",mb:"application/mathematica",mathml:"application/mathml+xml",mbox:"application/mbox",mscml:"application/mediaservercontrol+xml",metalink:"application/metalink+xml",meta4:"application/metalink4+xml",mets:"application/mets+xml",maei:"application/mmt-aei+xml",musd:"application/mmt-usd+xml",mods:"application/mods+xml",m21:"application/mp21",mp21:"application/mp21",mp4s:"application/mp4",m4p:"application/mp4",doc:"application/msword",dot:"application/msword",mxf:"application/mxf",nq:"application/n-quads",nt:"application/n-triples",cjs:"application/node",bin:"application/octet-stream",dms:"application/octet-stream",lrf:"application/octet-stream",mar:"application/octet-stream",so:"application/octet-stream",dist:"application/octet-stream",distz:"application/octet-stream",pkg:"application/octet-stream",bpk:"application/octet-stream",dump:"application/octet-stream",elc:"application/octet-stream",deploy:"application/octet-stream",exe:"application/octet-stream",dll:"application/octet-stream",deb:"application/octet-stream",dmg:"application/octet-stream",iso:"application/octet-stream",img:"application/octet-stream",msi:"application/octet-stream",msp:"application/octet-stream",msm:"application/octet-stream",buffer:"application/octet-stream",oda:"application/oda",opf:"application/oebps-package+xml",ogx:"application/ogg",omdoc:"application/omdoc+xml",onetoc:"application/onenote",onetoc2:"application/onenote",onetmp:"application/onenote",onepkg:"application/onenote",oxps:"application/oxps",relo:"application/p2p-overlay+xml",xer:"application/patch-ops-error+xml",pdf:"application/pdf",pgp:"application/pgp-encrypted",asc:"application/pgp-signature",sig:"application/pgp-signature",prf:"application/pics-rules",p10:"application/pkcs10",p7m:"application/pkcs7-mime",p7c:"application/pkcs7-mime",p7s:"application/pkcs7-signature",p8:"application/pkcs8",ac:"application/pkix-attr-cert",cer:"application/pkix-cert",crl:"application/pkix-crl",pkipath:"application/pkix-pkipath",pki:"application/pkixcmp",pls:"application/pls+xml",ai:"application/postscript",eps:"application/postscript",ps:"application/postscript",provx:"application/provenance+xml",cww:"application/prs.cww",pskcxml:"application/pskc+xml",raml:"application/raml+yaml",rdf:"application/rdf+xml",owl:"application/rdf+xml",rif:"application/reginfo+xml",rnc:"application/relax-ng-compact-syntax",rl:"application/resource-lists+xml",rld:"application/resource-lists-diff+xml",rs:"application/rls-services+xml",rapd:"application/route-apd+xml",sls:"application/route-s-tsid+xml",rusd:"application/route-usd+xml",gbr:"application/rpki-ghostbusters",mft:"application/rpki-manifest",roa:"application/rpki-roa",rsd:"application/rsd+xml",rss:"application/rss+xml",rtf:"application/rtf",sbml:"application/sbml+xml",scq:"application/scvp-cv-request",scs:"application/scvp-cv-response",spq:"application/scvp-vp-request",spp:"application/scvp-vp-response",sdp:"application/sdp",senmlx:"application/senml+xml",sensmlx:"application/sensml+xml",setpay:"application/set-payment-initiation",setreg:"application/set-registration-initiation",shf:"application/shf+xml",siv:"application/sieve",sieve:"application/sieve",smi:"application/smil+xml",smil:"application/smil+xml",rq:"application/sparql-query",srx:"application/sparql-results+xml",gram:"application/srgs",grxml:"application/srgs+xml",sru:"application/sru+xml",ssdl:"application/ssdl+xml",ssml:"application/ssml+xml",swidtag:"application/swid+xml",tei:"application/tei+xml",teicorpus:"application/tei+xml",tfi:"application/thraud+xml",tsd:"application/timestamped-data",toml:"application/toml",trig:"application/trig",ttml:"application/ttml+xml",ubj:"application/ubjson",rsheet:"application/urc-ressheet+xml",td:"application/urc-targetdesc+xml",vxml:"application/voicexml+xml",wasm:"application/wasm",wgt:"application/widget",hlp:"application/winhlp",wsdl:"application/wsdl+xml",wspolicy:"application/wspolicy+xml",xaml:"application/xaml+xml",xav:"application/xcap-att+xml",xca:"application/xcap-caps+xml",xdf:"application/xcap-diff+xml",xel:"application/xcap-el+xml",xns:"application/xcap-ns+xml",xenc:"application/xenc+xml",xhtml:"application/xhtml+xml",xht:"application/xhtml+xml",xlf:"application/xliff+xml",xml:"application/xml",xsl:"application/xml",xsd:"application/xml",rng:"application/xml",dtd:"application/xml-dtd",xop:"application/xop+xml",xpl:"application/xproc+xml",xslt:"application/xml",xspf:"application/xspf+xml",mxml:"application/xv+xml",xhvml:"application/xv+xml",xvml:"application/xv+xml",xvm:"application/xv+xml",yang:"application/yang",yin:"application/yin+xml",zip:"application/zip","3gpp":"video/3gpp",adp:"audio/adpcm",amr:"audio/amr",au:"audio/basic",snd:"audio/basic",mid:"audio/midi",midi:"audio/midi",kar:"audio/midi",rmi:"audio/midi",mxmf:"audio/mobile-xmf",mp3:"audio/mpeg",m4a:"audio/mp4",mp4a:"audio/mp4",mpga:"audio/mpeg",mp2:"audio/mpeg",mp2a:"audio/mpeg",m2a:"audio/mpeg",m3a:"audio/mpeg",oga:"audio/ogg",ogg:"audio/ogg",spx:"audio/ogg",opus:"audio/ogg",s3m:"audio/s3m",sil:"audio/silk",wav:"audio/wav",weba:"audio/webm",xm:"audio/xm",ttc:"font/collection",otf:"font/otf",ttf:"font/ttf",woff:"font/woff",woff2:"font/woff2",exr:"image/aces",apng:"image/apng",avif:"image/avif",bmp:"image/bmp",cgm:"image/cgm",drle:"image/dicom-rle",emf:"image/emf",fits:"image/fits",g3:"image/g3fax",gif:"image/gif",heic:"image/heic",heics:"image/heic-sequence",heif:"image/heif",heifs:"image/heif-sequence",hej2:"image/hej2k",hsj2:"image/hsj2",ief:"image/ief",jls:"image/jls",jp2:"image/jp2",jpg2:"image/jp2",jpeg:"image/jpeg",jpg:"image/jpeg",jpe:"image/jpeg",jph:"image/jph",jhc:"image/jphc",jpm:"image/jpm",jpx:"image/jpx",jpf:"image/jpx",jxr:"image/jxr",jxra:"image/jxra",jxrs:"image/jxrs",jxs:"image/jxs",jxsc:"image/jxsc",jxsi:"image/jxsi",jxss:"image/jxss",ktx:"image/ktx",ktx2:"image/ktx2",png:"image/png",btif:"image/prs.btif",pti:"image/prs.pti",sgi:"image/sgi",svg:"image/svg+xml",svgz:"image/svg+xml",t38:"image/t38",tif:"image/tiff",tiff:"image/tiff",tfx:"image/tiff-fx",webp:"image/webp",wmf:"image/wmf","disposition-notification":"message/disposition-notification",u8msg:"message/global",u8dsn:"message/global-delivery-status",u8mdn:"message/global-disposition-notification",u8hdr:"message/global-headers",eml:"message/rfc822",mime:"message/rfc822","3mf":"model/3mf",gltf:"model/gltf+json",glb:"model/gltf-binary",igs:"model/iges",iges:"model/iges",msh:"model/mesh",mesh:"model/mesh",silo:"model/mesh",mtl:"model/mtl",obj:"model/obj",stpz:"model/step+zip",stpxz:"model/step-xml+zip",stl:"model/stl",wrl:"model/vrml",vrml:"model/vrml",x3db:"model/x3d+fastinfoset",x3dbz:"model/x3d+binary",x3dv:"model/x3d-vrml",x3dvz:"model/x3d+vrml",x3d:"model/x3d+xml",x3dz:"model/x3d+xml",appcache:"text/cache-manifest",manifest:"text/cache-manifest",ics:"text/calendar",ifb:"text/calendar",coffee:"text/coffeescript",litcoffee:"text/coffeescript",css:"text/css",csv:"text/csv",html:"text/html",htm:"text/html",shtml:"text/html",jade:"text/jade",jsx:"text/jsx",less:"text/less",markdown:"text/markdown",md:"text/markdown",mml:"text/mathml",mdx:"text/mdx",n3:"text/n3",txt:"text/plain",text:"text/plain",conf:"text/plain",def:"text/plain",list:"text/plain",log:"text/plain",in:"text/plain",ini:"text/plain",dsc:"text/prs.lines.tag",rtx:"text/richtext",sgml:"text/sgml",sgm:"text/sgml",shex:"text/shex",slim:"text/slim",slm:"text/slim",spdx:"text/spdx",stylus:"text/stylus",styl:"text/stylus",tsv:"text/tab-separated-values",t:"text/troff",tr:"text/troff",roff:"text/troff",man:"text/troff",me:"text/troff",ms:"text/troff",ttl:"text/turtle",uri:"text/uri-list",uris:"text/uri-list",urls:"text/uri-list",vcard:"text/vcard",vtt:"text/vtt",yaml:"text/yaml",yml:"text/yaml","3gp":"video/3gpp","3g2":"video/3gpp2",h261:"video/h261",h263:"video/h263",h264:"video/h264",m4s:"video/iso.segment",jpgv:"video/jpeg",jpgm:"image/jpm",mj2:"video/mj2",mjp2:"video/mj2",ts:"video/mp2t",mp4:"video/mp4",mp4v:"video/mp4",mpg4:"video/mp4",mpeg:"video/mpeg",mpg:"video/mpeg",mpe:"video/mpeg",m1v:"video/mpeg",m2v:"video/mpeg",ogv:"video/ogg",qt:"video/quicktime",mov:"video/quicktime",webm:"video/webm"};function lookup(i){let t=(""+i).trim().toLowerCase();let e=t.lastIndexOf(".");return a[!~e?t:t.substring(++e)]}t.lookup=lookup;t.mimes=a},952:(i,t,a)=>{const e=a(147);const{join:p,normalize:l,resolve:o}=a(17);const{totalist:s}=a(102);const{parse:n}=a(899);const{lookup:m}=a(245);const noop=()=>{};function isMatch(i,t){for(let a=0;a<t.length;a++){if(t[a].test(i))return true}}function toAssume(i,t){let a=0,e,p=i.length-1;if(i.charCodeAt(p)===47){i=i.substring(0,p)}let l=[],o=`${i}/index`;for(;a<t.length;a++){e=t[a]?`.${t[a]}`:"";if(i)l.push(i+e);l.push(o+e)}return l}function viaCache(i,t,a){let e=0,p,l=toAssume(t,a);for(;e<l.length;e++){if(p=i[l[e]])return p}}function viaLocal(i,t,a,o){let s=0,n=toAssume(a,o);let m,c,r,x;for(;s<n.length;s++){m=l(p(i,r=n[s]));if(m.startsWith(i)&&e.existsSync(m)){c=e.statSync(m);if(c.isDirectory())continue;x=toHeaders(r,c,t);x["Cache-Control"]=t?"no-cache":"no-store";return{abs:m,stats:c,headers:x}}}}function is404(i,t){return t.statusCode=404,t.end()}function send(i,t,a,p,l){let o=200,s,n={};l={...l};for(let i in l){s=t.getHeader(i);if(s)l[i]=s}if(s=t.getHeader("content-type")){l["Content-Type"]=s}if(i.headers.range){o=206;let[a,e]=i.headers.range.replace("bytes=","").split("-");let s=n.end=parseInt(e,10)||p.size-1;let m=n.start=parseInt(a,10)||0;if(s>=p.size){s=p.size-1}if(m>=p.size){t.setHeader("Content-Range",`bytes */${p.size}`);t.statusCode=416;return t.end()}l["Content-Range"]=`bytes ${m}-${s}/${p.size}`;l["Content-Length"]=s-m+1;l["Accept-Ranges"]="bytes"}t.writeHead(o,l);e.createReadStream(a,n).pipe(t)}const c={".br":"br",".gz":"gzip"};function toHeaders(i,t,a){let e=c[i.slice(-3)];let p=m(i.slice(0,e&&-3))||"";if(p==="text/html")p+=";charset=utf-8";let l={"Content-Length":t.size,"Content-Type":p,"Last-Modified":t.mtime.toUTCString()};if(e)l["Content-Encoding"]=e;if(a)l["ETag"]=`W/"${t.size}-${t.mtime.getTime()}"`;return l}i.exports=function(i,t={}){i=o(i||".");let a=t.onNoMatch||is404;let e=t.setHeaders||noop;let p=t.extensions||["html","htm"];let l=t.gzip&&p.map((i=>`${i}.gz`)).concat("gz");let m=t.brotli&&p.map((i=>`${i}.br`)).concat("br");const c={};let r="/";let x=!!t.etag;let d=!!t.single;if(typeof t.single==="string"){let i=t.single.lastIndexOf(".");r+=!!~i?t.single.substring(0,i):t.single}let g=[];if(t.ignores!==false){g.push(/[/]([A-Za-z\s\d~$._-]+\.\w+){1,}$/);if(t.dotfiles)g.push(/\/\.\w/);else g.push(/\/\.well-known/);[].concat(t.ignores||[]).forEach((i=>{g.push(new RegExp(i,"i"))}))}let f=t.maxAge!=null&&`public,max-age=${t.maxAge}`;if(f&&t.immutable)f+=",immutable";else if(f&&t.maxAge===0)f+=",must-revalidate";if(!t.dev){s(i,((i,a,e)=>{if(/\.well-known[\\+\/]/.test(i)){}else if(!t.dotfiles&&/(^\.|[\\+|\/+]\.)/.test(i))return;let p=toHeaders(i,e,x);if(f)p["Cache-Control"]=f;c["/"+i.normalize().replace(/\\+/g,"/")]={abs:a,stats:e,headers:p}}))}let u=t.dev?viaLocal.bind(0,i,x):viaCache.bind(0,c);return function(i,t,o){let s=[""];let c=n(i).pathname;let f=i.headers["accept-encoding"]||"";if(l&&f.includes("gzip"))s.unshift(...l);if(m&&/(br|brotli)/i.test(f))s.unshift(...m);s.push(...p);if(c.indexOf("%")!==-1){try{c=decodeURI(c)}catch(i){}}let h=u(c,s)||d&&!isMatch(c,g)&&u(r,s);if(!h)return o?o():a(i,t);if(x&&i.headers["if-none-match"]===h.headers["ETag"]){t.writeHead(304);return t.end()}if(l||m){t.setHeader("Vary","Accept-Encoding")}e(t,c,h.stats);send(i,t,h.abs,h.stats,h.headers)}}},102:(i,t,a)=>{const{join:e,resolve:p}=a(17);const{readdirSync:l,statSync:o}=a(147);function totalist(i,t,a=""){i=p(".",i);let s=l(i);let n=0,m,c;for(;n<s.length;n++){m=e(i,s[n]);c=o(m);c.isDirectory()?totalist(m,t,e(a,s[n])):t(e(a,s[n]),m,c)}}t.totalist=totalist},147:i=>{"use strict";i.exports=require("fs")},17:i=>{"use strict";i.exports=require("path")},477:i=>{"use strict";i.exports=require("querystring")}};var t={};function __nccwpck_require__(a){var e=t[a];if(e!==undefined){return e.exports}var p=t[a]={exports:{}};var l=true;try{i[a](p,p.exports,__nccwpck_require__);l=false}finally{if(l)delete t[a]}return p.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var a=__nccwpck_require__(952);module.exports=a})();
@@ -0,0 +1 @@
1
+ {"name":"sirv","author":{"name":"Luke Edwards","email":"luke@lukeed.com","url":"https://lukeed.com"},"version":"2.0.3","license":"MIT","types":"sirv.d.ts"}
@@ -0,0 +1,27 @@
1
+ declare namespace sirv {
2
+ import type { Stats } from 'fs';
3
+ import type { IncomingMessage, ServerResponse } from 'http';
4
+
5
+ type Arrayable<T> = T | T[];
6
+ export type NextHandler = () => void | Promise<void>;
7
+ export type RequestHandler = (req: IncomingMessage, res: ServerResponse, next?: NextHandler) => void;
8
+
9
+ export interface Options {
10
+ dev?: boolean;
11
+ etag?: boolean;
12
+ maxAge?: number;
13
+ immutable?: boolean;
14
+ single?: string | boolean;
15
+ ignores?: false | Arrayable<string | RegExp>;
16
+ extensions?: string[];
17
+ dotfiles?: boolean;
18
+ brotli?: boolean;
19
+ gzip?: boolean;
20
+ onNoMatch?: (req: IncomingMessage, res: ServerResponse) => void;
21
+ setHeaders?: (res: ServerResponse, pathname: string, stats: Stats) => void;
22
+ }
23
+
24
+ export default function(dir?: string, opts?: Options): RequestHandler;
25
+ }
26
+
27
+ export = sirv;
@@ -1,10 +1,14 @@
1
- import type { RsbuildInstance, RsbuildMode } from '..';
2
- export type InspectOptions = {
1
+ import type { RsbuildMode } from '..';
2
+ export type CommonOptions = {
3
+ config?: string;
4
+ };
5
+ export type InspectOptions = CommonOptions & {
3
6
  env: RsbuildMode;
4
7
  output: string;
5
8
  verbose?: boolean;
6
9
  };
7
- export type DevOptions = {
10
+ export type DevOptions = CommonOptions & {
8
11
  open?: boolean;
9
12
  };
10
- export declare function setupProgram(rsbuild: RsbuildInstance): void;
13
+ export declare function init(options?: CommonOptions): Promise<import("@rsbuild/shared").RsbuildInstance<any>>;
14
+ export declare function runCli(): void;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,21 +17,45 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
  var commands_exports = {};
20
30
  __export(commands_exports, {
21
- setupProgram: () => setupProgram
31
+ init: () => init,
32
+ runCli: () => runCli
22
33
  });
23
34
  module.exports = __toCommonJS(commands_exports);
24
35
  var import_path = require("path");
25
36
  var import_shared = require("@rsbuild/shared");
26
37
  var import_commander = require("../../compiled/commander");
27
- function setupProgram(rsbuild) {
28
- const pkgJson = (0, import_path.join)(__dirname, "../../package.json");
29
- const { version } = import_shared.fse.readJSONSync(pkgJson);
30
- import_commander.program.name("rsbuild").usage("<command> [options]").version(version);
31
- import_commander.program.command("dev").option(`--open`, "open the page in browser on startup").description("starting the dev server").action(async (options) => {
38
+ var import_config = require("./config");
39
+ let commonOpts = {};
40
+ async function init(options) {
41
+ if (options) {
42
+ commonOpts = options;
43
+ }
44
+ const config = await (0, import_config.loadConfig)(commonOpts.config);
45
+ const { createRsbuild } = await Promise.resolve().then(() => __toESM(require("../createRsbuild")));
46
+ return await createRsbuild({
47
+ rsbuildConfig: config,
48
+ provider: config.provider
49
+ });
50
+ }
51
+ function runCli() {
52
+ import_commander.program.name("rsbuild").usage("<command> [options]").version("0.0.26");
53
+ import_commander.program.command("dev").option(`--open`, "open the page in browser on startup").option(
54
+ "-c --config <config>",
55
+ "specify the configuration file, can be a relative or absolute path"
56
+ ).description("starting the dev server").action(async (options) => {
32
57
  try {
58
+ const rsbuild = await init(options);
33
59
  await rsbuild.startDevServer({
34
60
  open: options.open
35
61
  });
@@ -39,8 +65,12 @@ function setupProgram(rsbuild) {
39
65
  process.exit(1);
40
66
  }
41
67
  });
42
- import_commander.program.command("build").description("build the app for production").action(async () => {
68
+ import_commander.program.command("build").option(
69
+ "-c --config <config>",
70
+ "specify the configuration file, can be a relative or absolute path"
71
+ ).description("build the app for production").action(async (options) => {
43
72
  try {
73
+ const rsbuild = await init(options);
44
74
  await rsbuild.build();
45
75
  } catch (err) {
46
76
  import_shared.logger.error("Failed to build, please check logs.");
@@ -48,8 +78,12 @@ function setupProgram(rsbuild) {
48
78
  process.exit(1);
49
79
  }
50
80
  });
51
- import_commander.program.command("preview").description("preview the production build locally").action(async () => {
81
+ import_commander.program.command("preview").option(
82
+ "-c --config <config>",
83
+ "specify the configuration file, can be a relative or absolute path"
84
+ ).description("preview the production build locally").action(async (options) => {
52
85
  try {
86
+ const rsbuild = await init(options);
53
87
  await rsbuild.preview();
54
88
  } catch (err) {
55
89
  import_shared.logger.error("Failed to start preview server, please check logs.");
@@ -57,8 +91,12 @@ function setupProgram(rsbuild) {
57
91
  process.exit(1);
58
92
  }
59
93
  });
60
- import_commander.program.command("inspect").description("inspect the Rspack and Rsbuild configs").option(`--env <env>`, "specify env mode", "development").option("--output <output>", "specify inspect content output path", "/").option("--verbose", "show full function definitions in output").action(async (options) => {
94
+ import_commander.program.command("inspect").description("inspect the Rspack and Rsbuild configs").option(`--env <env>`, "specify env mode", "development").option("--output <output>", "specify inspect content output path", "/").option("--verbose", "show full function definitions in output").option(
95
+ "-c --config <config>",
96
+ "specify the configuration file, can be a relative or absolute path"
97
+ ).action(async (options) => {
61
98
  try {
99
+ const rsbuild = await init(options);
62
100
  await rsbuild.inspectConfig({
63
101
  env: options.env,
64
102
  verbose: options.verbose,
@@ -75,5 +113,6 @@ function setupProgram(rsbuild) {
75
113
  }
76
114
  // Annotate the CommonJS export names for ESM import in node:
77
115
  0 && (module.exports = {
78
- setupProgram
116
+ init,
117
+ runCli
79
118
  });
@@ -1,4 +1,4 @@
1
- import type { RsbuildConfig as BaseRsbuildConfig } from '@rsbuild/shared';
1
+ import { type RsbuildConfig as BaseRsbuildConfig } from '@rsbuild/shared';
2
2
  export type RsbuildConfig = BaseRsbuildConfig & {
3
3
  /**
4
4
  * @private only for testing
@@ -6,4 +6,4 @@ export type RsbuildConfig = BaseRsbuildConfig & {
6
6
  provider?: any;
7
7
  };
8
8
  export declare const defineConfig: (config: RsbuildConfig) => RsbuildConfig;
9
- export declare function loadConfig(): Promise<ReturnType<typeof defineConfig>>;
9
+ export declare function loadConfig(customConfig?: string): Promise<ReturnType<typeof defineConfig>>;
@@ -33,11 +33,20 @@ __export(config_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(config_exports);
35
35
  var import_fs = __toESM(require("fs"));
36
- var import_jiti = __toESM(require("jiti"));
37
36
  var import_path = require("path");
37
+ var import_shared = require("@rsbuild/shared");
38
38
  var import_restart = require("../server/restart");
39
39
  const defineConfig = (config) => config;
40
- const resolveConfigPath = () => {
40
+ const resolveConfigPath = (customConfig) => {
41
+ const root = process.cwd();
42
+ if (customConfig) {
43
+ const customConfigPath = (0, import_path.isAbsolute)(customConfig) ? customConfig : (0, import_path.join)(root, customConfig);
44
+ if (import_fs.default.existsSync(customConfigPath)) {
45
+ return customConfigPath;
46
+ }
47
+ import_shared.logger.warn(`Cannot find config file: ${import_shared.color.dim(customConfigPath)}
48
+ `);
49
+ }
41
50
  const CONFIG_FILES = [
42
51
  "rsbuild.config.ts",
43
52
  "rsbuild.config.js",
@@ -46,7 +55,6 @@ const resolveConfigPath = () => {
46
55
  "rsbuild.config.mts",
47
56
  "rsbuild.config.cts"
48
57
  ];
49
- const root = process.cwd();
50
58
  for (const file of CONFIG_FILES) {
51
59
  const configFile = (0, import_path.join)(root, file);
52
60
  if (import_fs.default.existsSync(configFile)) {
@@ -65,10 +73,11 @@ async function watchConfig(configFile) {
65
73
  watcher.on("change", callback);
66
74
  watcher.on("unlink", callback);
67
75
  }
68
- async function loadConfig() {
69
- const configFile = resolveConfigPath();
76
+ async function loadConfig(customConfig) {
77
+ const configFile = resolveConfigPath(customConfig);
70
78
  if (configFile) {
71
- const loadConfig2 = (0, import_jiti.default)(__filename, {
79
+ const { default: jiti } = await Promise.resolve().then(() => __toESM(require("../../compiled/jiti")));
80
+ const loadConfig2 = jiti(__filename, {
72
81
  esmResolve: true,
73
82
  // disable require cache to support restart CLI and read the new config
74
83
  requireCache: false,
@@ -0,0 +1 @@
1
+ export declare function prepareCli(): void;
@@ -16,26 +16,28 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var run_exports = {};
20
- __export(run_exports, {
21
- runCli: () => runCli
19
+ var prepare_exports = {};
20
+ __export(prepare_exports, {
21
+ prepareCli: () => prepareCli
22
22
  });
23
- module.exports = __toCommonJS(run_exports);
24
- var import__ = require("..");
25
- var import_commands = require("./commands");
26
- var import_config = require("./config");
27
- async function runCli(options = {}) {
28
- const config = await (0, import_config.loadConfig)();
29
- const rsbuild = await (0, import__.createRsbuild)({
30
- rsbuildConfig: config,
31
- provider: config.provider
32
- });
33
- if (!options.isRestart) {
34
- (0, import_commands.setupProgram)(rsbuild);
23
+ module.exports = __toCommonJS(prepare_exports);
24
+ var import_rslog = require("@rsbuild/shared/rslog");
25
+ function initNodeEnv() {
26
+ if (!process.env.NODE_ENV) {
27
+ const command = process.argv[2];
28
+ process.env.NODE_ENV = ["build", "preview"].includes(command) ? "production" : "development";
35
29
  }
36
- return rsbuild;
30
+ }
31
+ function prepareCli() {
32
+ initNodeEnv();
33
+ const { npm_execpath } = process.env;
34
+ if (!npm_execpath || npm_execpath.includes("npx-cli.js")) {
35
+ console.log();
36
+ }
37
+ import_rslog.logger.greet(` ${`Rsbuild v${"0.0.26"}`}
38
+ `);
37
39
  }
38
40
  // Annotate the CommonJS export names for ESM import in node:
39
41
  0 && (module.exports = {
40
- runCli
42
+ prepareCli
41
43
  });
@@ -1,6 +1,5 @@
1
1
  import { type RsbuildInstance, type RsbuildProvider, type CreateRsbuildOptions } from '@rsbuild/shared';
2
2
  import type { RsbuildConfig } from './types';
3
- export declare const getCreateRsbuildDefaultOptions: () => Required<CreateRsbuildOptions>;
4
3
  export declare function createRsbuild<P extends ({
5
4
  rsbuildConfig
6
5
  }: {
@@ -28,8 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var createRsbuild_exports = {};
30
30
  __export(createRsbuild_exports, {
31
- createRsbuild: () => createRsbuild,
32
- getCreateRsbuildDefaultOptions: () => getCreateRsbuildDefaultOptions
31
+ createRsbuild: () => createRsbuild
33
32
  });
34
33
  module.exports = __toCommonJS(createRsbuild_exports);
35
34
  var import_shared = require("@rsbuild/shared");
@@ -40,15 +39,12 @@ const getRspackProvider = async (rsbuildConfig) => {
40
39
  rsbuildConfig
41
40
  });
42
41
  };
43
- const getCreateRsbuildDefaultOptions = () => ({
44
- cwd: process.cwd(),
45
- target: ["web"]
46
- });
47
42
  async function createRsbuild(options) {
48
43
  const { rsbuildConfig } = options;
49
44
  const provider = options.provider ? options.provider({ rsbuildConfig }) : await getRspackProvider(rsbuildConfig);
50
45
  const rsbuildOptions = {
51
- ...getCreateRsbuildDefaultOptions(),
46
+ cwd: process.cwd(),
47
+ target: ["web"],
52
48
  ...options
53
49
  };
54
50
  const pluginStore = (0, import_shared.createPluginStore)();
@@ -100,6 +96,5 @@ async function createRsbuild(options) {
100
96
  }
101
97
  // Annotate the CommonJS export names for ESM import in node:
102
98
  0 && (module.exports = {
103
- createRsbuild,
104
- getCreateRsbuildDefaultOptions
99
+ createRsbuild
105
100
  });
package/dist/index.d.ts CHANGED
@@ -1,6 +1,10 @@
1
- export { createRsbuild, getCreateRsbuildDefaultOptions } from './createRsbuild';
1
+ /**
2
+ * The methods and types exported from this file are considered as
3
+ * the public API of @rsbuild/core.
4
+ */
5
+ export { createRsbuild } from './createRsbuild';
2
6
  export { mergeRsbuildConfig } from '@rsbuild/shared';
3
- export { defineConfig } from './cli';
7
+ export { defineConfig } from './cli/config';
4
8
  export type { Rspack } from './rspack-provider';
5
9
  export type { RsbuildConfig, NormalizedConfig, RsbuildPlugin, RsbuildPluginAPI } from './types';
6
- export type { Context, RsbuildMode, RsbuildEntry, RsbuildTarget, RsbuildInstance, CreateRsbuildOptions, InspectConfigOptions, OnExitFn, OnAfterBuildFn, OnAfterCreateCompilerFn, OnAfterStartDevServerFn, OnBeforeBuildFn, OnBeforeStartDevServerFn, OnBeforeCreateCompilerFn, OnDevCompileDoneFn, ModifyRsbuildConfigFn } from '@rsbuild/shared';
10
+ export type { Context as RsbuildContext, RsbuildMode, RsbuildEntry, RsbuildTarget, RsbuildInstance, CreateRsbuildOptions, InspectConfigOptions, OnExitFn, OnAfterBuildFn, OnAfterCreateCompilerFn, OnAfterStartDevServerFn, OnBeforeBuildFn, OnBeforeStartDevServerFn, OnBeforeCreateCompilerFn, OnDevCompileDoneFn, ModifyRsbuildConfigFn } from '@rsbuild/shared';
package/dist/index.js CHANGED
@@ -19,18 +19,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var src_exports = {};
20
20
  __export(src_exports, {
21
21
  createRsbuild: () => import_createRsbuild.createRsbuild,
22
- defineConfig: () => import_cli.defineConfig,
23
- getCreateRsbuildDefaultOptions: () => import_createRsbuild.getCreateRsbuildDefaultOptions,
22
+ defineConfig: () => import_config.defineConfig,
24
23
  mergeRsbuildConfig: () => import_shared.mergeRsbuildConfig
25
24
  });
26
25
  module.exports = __toCommonJS(src_exports);
27
26
  var import_createRsbuild = require("./createRsbuild");
28
27
  var import_shared = require("@rsbuild/shared");
29
- var import_cli = require("./cli");
28
+ var import_config = require("./cli/config");
30
29
  // Annotate the CommonJS export names for ESM import in node:
31
30
  0 && (module.exports = {
32
31
  createRsbuild,
33
32
  defineConfig,
34
- getCreateRsbuildDefaultOptions,
35
33
  mergeRsbuildConfig
36
34
  });
@@ -0,0 +1,9 @@
1
+ import { type RsbuildConfig, type NormalizedConfig } from '@rsbuild/shared';
2
+ export declare const createDefaultConfig: () => RsbuildConfig;
3
+ export declare const withDefaultConfig: (config: RsbuildConfig) => RsbuildConfig;
4
+ /** #__PURE__
5
+ * 1. May used by multiple plugins.
6
+ * 2. Object value that should not be empty.
7
+ * 3. Meaningful and can be filled by constant value.
8
+ */
9
+ export declare const normalizeConfig: (config: RsbuildConfig) => NormalizedConfig;
@@ -16,12 +16,13 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var defaults_exports = {};
20
- __export(defaults_exports, {
19
+ var config_exports = {};
20
+ __export(config_exports, {
21
21
  createDefaultConfig: () => createDefaultConfig,
22
+ normalizeConfig: () => normalizeConfig,
22
23
  withDefaultConfig: () => withDefaultConfig
23
24
  });
24
- module.exports = __toCommonJS(defaults_exports);
25
+ module.exports = __toCommonJS(config_exports);
25
26
  var import_shared = require("@rsbuild/shared");
26
27
  const createDefaultConfig = () => ({
27
28
  dev: (0, import_shared.getDefaultDevConfig)(),
@@ -33,8 +34,13 @@ const createDefaultConfig = () => ({
33
34
  performance: (0, import_shared.getDefaultPerformanceConfig)()
34
35
  });
35
36
  const withDefaultConfig = (config) => (0, import_shared.mergeRsbuildConfig)(createDefaultConfig(), config);
37
+ const normalizeConfig = (config) => (0, import_shared.mergeRsbuildConfig)(
38
+ createDefaultConfig(),
39
+ config
40
+ );
36
41
  // Annotate the CommonJS export names for ESM import in node:
37
42
  0 && (module.exports = {
38
43
  createDefaultConfig,
44
+ normalizeConfig,
39
45
  withDefaultConfig
40
46
  });
@@ -1,5 +1,11 @@
1
- import { type CreateRsbuildOptions } from '@rsbuild/shared';
2
- import type { Context, RsbuildConfig } from '../../types';
1
+ import { RsbuildConfig, type Context as BaseContext, type BundlerType, type SourceConfig, type OutputConfig, type NormalizedConfig, type CreateRsbuildOptions } from '@rsbuild/shared';
2
+ import type { Context } from '../../types';
3
+ /**
4
+ * Create context by config.
5
+ */
6
+ export declare function createContextByConfig(options: Required<CreateRsbuildOptions>, bundlerType: BundlerType, sourceConfig?: SourceConfig, outputConfig?: OutputConfig): BaseContext;
7
+ export declare function updateContextByNormalizedConfig(context: BaseContext, config: NormalizedConfig): void;
8
+ export declare function createPublicContext(context: BaseContext): Readonly<BaseContext>;
3
9
  /**
4
10
  * Generate the actual context used in the build,
5
11
  * which can have a lot of overhead and take some side effects.
@@ -18,16 +18,98 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var createContext_exports = {};
20
20
  __export(createContext_exports, {
21
- createContext: () => createContext
21
+ createContext: () => createContext,
22
+ createContextByConfig: () => createContextByConfig,
23
+ createPublicContext: () => createPublicContext,
24
+ updateContextByNormalizedConfig: () => updateContextByNormalizedConfig
22
25
  });
23
26
  module.exports = __toCommonJS(createContext_exports);
24
27
  var import_path = require("path");
25
28
  var import_shared = require("@rsbuild/shared");
26
29
  var import_initHooks = require("./initHooks");
27
- var import_defaults = require("../config/defaults");
30
+ var import_config = require("../config");
31
+ function getDefaultEntry(root) {
32
+ const files = [
33
+ // Most projects are using typescript now.
34
+ // So we put `.ts` as the first one to improve performance.
35
+ "ts",
36
+ "js",
37
+ "tsx",
38
+ "jsx",
39
+ ".mjs",
40
+ ".cjs"
41
+ ].map((ext) => (0, import_path.join)(root, `src/index.${ext}`));
42
+ const entryFile = (0, import_shared.findExists)(files);
43
+ if (entryFile) {
44
+ return {
45
+ index: entryFile
46
+ };
47
+ }
48
+ return {};
49
+ }
50
+ function createContextByConfig(options, bundlerType, sourceConfig = {}, outputConfig = {}) {
51
+ const { cwd, target } = options;
52
+ const rootPath = cwd;
53
+ const distPath = (0, import_shared.getAbsoluteDistPath)(cwd, outputConfig);
54
+ const cachePath = (0, import_path.join)(rootPath, "node_modules", ".cache");
55
+ if (sourceConfig.entries) {
56
+ import_shared.logger.warn(
57
+ "[Rsbuild] `source.entries` option has been renamed to `source.entry`, please update the Rsbuild config."
58
+ );
59
+ import_shared.logger.warn(
60
+ "[Rsbuild] `source.entries` option will be removed in Rsbuild v0.2.0."
61
+ );
62
+ }
63
+ const context = {
64
+ entry: sourceConfig.entry || // TODO: remove sourceConfig.entries in v0.2.0
65
+ // compat with previous config
66
+ sourceConfig.entries || getDefaultEntry(rootPath),
67
+ version: "0.0.26",
68
+ target,
69
+ rootPath,
70
+ distPath,
71
+ cachePath,
72
+ bundlerType
73
+ };
74
+ return context;
75
+ }
76
+ function updateContextByNormalizedConfig(context, config) {
77
+ context.distPath = (0, import_shared.getAbsoluteDistPath)(context.rootPath, config.output);
78
+ if (config.source.entry) {
79
+ context.entry = config.source.entry;
80
+ }
81
+ }
82
+ function createPublicContext(context) {
83
+ const exposedKeys = [
84
+ "entry",
85
+ "target",
86
+ "version",
87
+ "rootPath",
88
+ "distPath",
89
+ "devServer",
90
+ "cachePath",
91
+ "configPath",
92
+ "tsconfigPath",
93
+ "bundlerType"
94
+ ];
95
+ return new Proxy(context, {
96
+ get(target, prop) {
97
+ if (exposedKeys.includes(prop)) {
98
+ return target[prop];
99
+ }
100
+ return void 0;
101
+ },
102
+ set(_, prop) {
103
+ import_shared.logger.error(
104
+ `Context is readonly, you can not assign to the "context.${prop}" prop.`
105
+ );
106
+ return true;
107
+ }
108
+ });
109
+ }
28
110
  async function createContext(options, userRsbuildConfig) {
29
- const rsbuildConfig = (0, import_defaults.withDefaultConfig)(userRsbuildConfig);
30
- const context = (0, import_shared.createContextByConfig)(
111
+ const rsbuildConfig = (0, import_config.withDefaultConfig)(userRsbuildConfig);
112
+ const context = createContextByConfig(
31
113
  options,
32
114
  "rspack",
33
115
  rsbuildConfig.source,
@@ -44,5 +126,8 @@ async function createContext(options, userRsbuildConfig) {
44
126
  }
45
127
  // Annotate the CommonJS export names for ESM import in node:
46
128
  0 && (module.exports = {
47
- createContext
129
+ createContext,
130
+ createContextByConfig,
131
+ createPublicContext,
132
+ updateContextByNormalizedConfig
48
133
  });