@modern-js/utils 1.7.5 → 1.7.6

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @modern-js/utils
2
2
 
3
+ ## 1.7.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 6451a098: fix: cyclic dependencies of @modern-js/core and @moden-js/webpack
8
+ - d5a2cfd8: fix(utils): isModernjsMonorepo should return false if there is no package.json
9
+ - 437367c6: fix(server): hmr not working when using proxy
10
+
3
11
  ## 1.7.5
4
12
 
5
13
  ### Patch Changes
@@ -0,0 +1 @@
1
+ (()=>{var e={256:function(e){(function(t,s){true?e.exports=s():0})(this,(function(){"use strict";var e=function isMergeableObject(e){return isNonNullObject(e)&&!isSpecial(e)};function isNonNullObject(e){return!!e&&typeof e==="object"}function isSpecial(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||isReactElement(e)}var t=typeof Symbol==="function"&&Symbol.for;var s=t?Symbol.for("react.element"):60103;function isReactElement(e){return e.$$typeof===s}function emptyTarget(e){return Array.isArray(e)?[]:{}}function cloneIfNecessary(t,s){var n=s&&s.clone===true;return n&&e(t)?deepmerge(emptyTarget(t),t,s):t}function defaultArrayMerge(t,s,n){var i=t.slice();s.forEach((function(s,r){if(typeof i[r]==="undefined"){i[r]=cloneIfNecessary(s,n)}else if(e(s)){i[r]=deepmerge(t[r],s,n)}else if(t.indexOf(s)===-1){i.push(cloneIfNecessary(s,n))}}));return i}function mergeObject(t,s,n){var i={};if(e(t)){Object.keys(t).forEach((function(e){i[e]=cloneIfNecessary(t[e],n)}))}Object.keys(s).forEach((function(r){if(!e(s[r])||!t[r]){i[r]=cloneIfNecessary(s[r],n)}else{i[r]=deepmerge(t[r],s[r],n)}}));return i}function deepmerge(e,t,s){var n=Array.isArray(t);var i=Array.isArray(e);var r=s||{arrayMerge:defaultArrayMerge};var o=n===i;if(!o){return cloneIfNecessary(t,s)}else if(n){var u=r.arrayMerge||defaultArrayMerge;return u(e,t,s)}else{return mergeObject(e,t,s)}}deepmerge.all=function deepmergeAll(e,t){if(!Array.isArray(e)||e.length<2){throw new Error("first argument should be an array with at least two elements")}return e.reduce((function(e,s){return deepmerge(e,s,t)}))};var n=deepmerge;return n}))},210:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.arrayToString=void 0;const arrayToString=(e,t,s)=>{const n=e.map((function(e,n){const i=s(e,n);if(i===undefined)return String(i);return t+i.split("\n").join(`\n${t}`)})).join(t?",\n":",");const i=t&&n?"\n":"";return`[${i}${n}${i}]`};t.arrayToString=arrayToString},262:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.FunctionParser=t.dedentFunction=t.functionToString=t.USED_METHOD_KEY=void 0;const n=s(893);const i={" "(){}}[" "].toString().charAt(0)==='"';const r={Function:"function ",GeneratorFunction:"function* ",AsyncFunction:"async function ",AsyncGeneratorFunction:"async function* "};const o={Function:"",GeneratorFunction:"*",AsyncFunction:"async ",AsyncGeneratorFunction:"async *"};const u=new Set(("case delete else in instanceof new return throw typeof void "+", ; : + - ! ~ & | ^ * / % < > ? =").split(" "));t.USED_METHOD_KEY=new WeakSet;const functionToString=(e,s,n,i)=>{const r=typeof i==="string"?i:undefined;if(r!==undefined)t.USED_METHOD_KEY.add(e);return new FunctionParser(e,s,n,r).stringify()};t.functionToString=functionToString;function dedentFunction(e){let t;for(const s of e.split("\n").slice(1)){const n=/^[\s\t]+/.exec(s);if(!n)return e;const[i]=n;if(t===undefined)t=i;else if(i.length<t.length)t=i}return t?e.split(`\n${t}`).join("\n"):e}t.dedentFunction=dedentFunction;class FunctionParser{constructor(e,t,s,i){this.fn=e;this.indent=t;this.next=s;this.key=i;this.pos=0;this.hadKeyword=false;this.fnString=Function.prototype.toString.call(e);this.fnType=e.constructor.name;this.keyQuote=i===undefined?"":n.quoteKey(i,s);this.keyPrefix=i===undefined?"":`${this.keyQuote}:${t?" ":""}`;this.isMethodCandidate=i===undefined?false:this.fn.name===""||this.fn.name===i}stringify(){const e=this.tryParse();if(!e){return`${this.keyPrefix}void ${this.next(this.fnString)}`}return dedentFunction(e)}getPrefix(){if(this.isMethodCandidate&&!this.hadKeyword){return o[this.fnType]+this.keyQuote}return this.keyPrefix+r[this.fnType]}tryParse(){if(this.fnString[this.fnString.length-1]!=="}"){return this.keyPrefix+this.fnString}if(this.fn.name){const e=this.tryStrippingName();if(e)return e}const e=this.pos;if(this.consumeSyntax()==="class")return this.fnString;this.pos=e;if(this.tryParsePrefixTokens()){const e=this.tryStrippingName();if(e)return e;let t=this.pos;switch(this.consumeSyntax("WORD_LIKE")){case"WORD_LIKE":if(this.isMethodCandidate&&!this.hadKeyword){t=this.pos}case"()":if(this.fnString.substr(this.pos,2)==="=>"){return this.keyPrefix+this.fnString}this.pos=t;case'"':case"'":case"[]":return this.getPrefix()+this.fnString.substr(this.pos)}}}tryStrippingName(){if(i){return}let e=this.pos;const t=this.fnString.substr(this.pos,this.fn.name.length);if(t===this.fn.name){this.pos+=t.length;if(this.consumeSyntax()==="()"&&this.consumeSyntax()==="{}"&&this.pos===this.fnString.length){if(this.isMethodCandidate||!n.isValidVariableName(t)){e+=t.length}return this.getPrefix()+this.fnString.substr(e)}}this.pos=e}tryParsePrefixTokens(){let e=this.pos;this.hadKeyword=false;switch(this.fnType){case"AsyncFunction":if(this.consumeSyntax()!=="async")return false;e=this.pos;case"Function":if(this.consumeSyntax()==="function"){this.hadKeyword=true}else{this.pos=e}return true;case"AsyncGeneratorFunction":if(this.consumeSyntax()!=="async")return false;case"GeneratorFunction":let t=this.consumeSyntax();if(t==="function"){t=this.consumeSyntax();this.hadKeyword=true}return t==="*"}}consumeSyntax(e){const t=this.consumeMatch(/^(?:([A-Za-z_0-9$\xA0-\uFFFF]+)|=>|\+\+|\-\-|.)/);if(!t)return;const[s,n]=t;this.consumeWhitespace();if(n)return e||n;switch(s){case"(":return this.consumeSyntaxUntil("(",")");case"[":return this.consumeSyntaxUntil("[","]");case"{":return this.consumeSyntaxUntil("{","}");case"`":return this.consumeTemplate();case'"':return this.consumeRegExp(/^(?:[^\\"]|\\.)*"/,'"');case"'":return this.consumeRegExp(/^(?:[^\\']|\\.)*'/,"'")}return s}consumeSyntaxUntil(e,t){let s=true;for(;;){const n=this.consumeSyntax();if(n===t)return e+t;if(!n||n===")"||n==="]"||n==="}")return;if(n==="/"&&s&&this.consumeMatch(/^(?:\\.|[^\\\/\n[]|\[(?:\\.|[^\]])*\])+\/[a-z]*/)){s=false;this.consumeWhitespace()}else{s=u.has(n)}}}consumeMatch(e){const t=e.exec(this.fnString.substr(this.pos));if(t)this.pos+=t[0].length;return t}consumeRegExp(e,t){const s=e.exec(this.fnString.substr(this.pos));if(!s)return;this.pos+=s[0].length;this.consumeWhitespace();return t}consumeTemplate(){for(;;){this.consumeMatch(/^(?:[^`$\\]|\\.|\$(?!{))*/);if(this.fnString[this.pos]==="`"){this.pos++;this.consumeWhitespace();return"`"}if(this.fnString.substr(this.pos,2)==="${"){this.pos+=2;this.consumeWhitespace();if(this.consumeSyntaxUntil("{","}"))continue}return}}consumeWhitespace(){this.consumeMatch(/^(?:\s|\/\/.*|\/\*[^]*?\*\/)*/)}}t.FunctionParser=FunctionParser},592:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.stringify=void 0;const n=s(761);const i=s(893);const r=Symbol("root");function stringify(e,t,s,n={}){const o=typeof s==="string"?s:" ".repeat(s||0);const u=[];const a=new Set;const c=new Map;const l=new Map;let h=0;const{maxDepth:f=100,references:p=false,skipUndefinedProperties:d=false,maxValues:g=1e5}=n;const m=replacerToString(t);const onNext=(e,t)=>{if(++h>g)return;if(d&&e===undefined)return;if(u.length>f)return;if(t===undefined)return m(e,o,onNext,t);u.push(t);const s=y(e,t===r?undefined:t);u.pop();return s};const y=p?(e,t)=>{if(e!==null&&(typeof e==="object"||typeof e==="function"||typeof e==="symbol")){if(c.has(e)){l.set(u.slice(1),c.get(e));return m(undefined,o,onNext,t)}c.set(e,u.slice(1))}return m(e,o,onNext,t)}:(e,t)=>{if(a.has(e))return;a.add(e);const s=m(e,o,onNext,t);a.delete(e);return s};const b=onNext(e,r);if(l.size){const e=o?" ":"";const t=o?"\n":"";let s=`var x${e}=${e}${b};${t}`;for(const[n,r]of l.entries()){const o=i.stringifyPath(n,onNext);const u=i.stringifyPath(r,onNext);s+=`x${o}${e}=${e}x${u};${t}`}return`(function${e}()${e}{${t}${s}return x;${t}}())`}return b}t.stringify=stringify;function replacerToString(e){if(!e)return n.toString;return(t,s,i,r)=>e(t,s,(e=>n.toString(e,s,i,r)),r)}},125:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.objectToString=void 0;const n=s(893);const i=s(262);const r=s(210);const objectToString=(e,t,s,n)=>{if(typeof Buffer==="function"&&Buffer.isBuffer(e)){return`Buffer.from(${s(e.toString("base64"))}, 'base64')`}if(typeof global==="object"&&e===global){return globalToString(e,t,s,n)}const i=o[Object.prototype.toString.call(e)];return i?i(e,t,s,n):undefined};t.objectToString=objectToString;const rawObjectToString=(e,t,s,r)=>{const o=t?"\n":"";const u=t?" ":"";const a=Object.keys(e).reduce((function(r,o){const a=e[o];const c=s(a,o);if(c===undefined)return r;const l=c.split("\n").join(`\n${t}`);if(i.USED_METHOD_KEY.has(a)){r.push(`${t}${l}`);return r}r.push(`${t}${n.quoteKey(o,s)}:${u}${l}`);return r}),[]).join(`,${o}`);if(a==="")return"{}";return`{${o}${a}${o}}`};const globalToString=(e,t,s)=>`Function(${s("return this")})()`;const o={"[object Array]":r.arrayToString,"[object Object]":rawObjectToString,"[object Error]":(e,t,s)=>`new Error(${s(e.message)})`,"[object Date]":e=>`new Date(${e.getTime()})`,"[object String]":(e,t,s)=>`new String(${s(e.toString())})`,"[object Number]":e=>`new Number(${e})`,"[object Boolean]":e=>`new Boolean(${e})`,"[object Set]":(e,t,s)=>`new Set(${s(Array.from(e))})`,"[object Map]":(e,t,s)=>`new Map(${s(Array.from(e))})`,"[object RegExp]":String,"[object global]":globalToString,"[object Window]":globalToString}},893:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.stringifyPath=t.quoteKey=t.isValidVariableName=t.IS_VALID_IDENTIFIER=t.quoteString=void 0;const s=/[\\\'\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;const n=new Map([["\b","\\b"],["\t","\\t"],["\n","\\n"],["\f","\\f"],["\r","\\r"],["'","\\'"],['"','\\"'],["\\","\\\\"]]);function escapeChar(e){return n.get(e)||`\\u${`0000${e.charCodeAt(0).toString(16)}`.slice(-4)}`}function quoteString(e){return`'${e.replace(s,escapeChar)}'`}t.quoteString=quoteString;const i=new Set(("break else new var case finally return void catch for switch while "+"continue function this with default if throw delete in try "+"do instanceof typeof abstract enum int short boolean export "+"interface static byte extends long super char final native synchronized "+"class float package throws const goto private transient debugger "+"implements protected volatile double import public let yield").split(" "));t.IS_VALID_IDENTIFIER=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function isValidVariableName(e){return typeof e==="string"&&!i.has(e)&&t.IS_VALID_IDENTIFIER.test(e)}t.isValidVariableName=isValidVariableName;function quoteKey(e,t){return isValidVariableName(e)?e:t(e)}t.quoteKey=quoteKey;function stringifyPath(e,t){let s="";for(const n of e){if(isValidVariableName(n)){s+=`.${n}`}else{s+=`[${t(n)}]`}}return s}t.stringifyPath=stringifyPath},761:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.toString=void 0;const n=s(893);const i=s(125);const r=s(262);const o={string:n.quoteString,number:e=>Object.is(e,-0)?"-0":String(e),boolean:String,symbol:(e,t,s)=>{const n=Symbol.keyFor(e);if(n!==undefined)return`Symbol.for(${s(n)})`;return`Symbol(${s(e.description)})`},bigint:(e,t,s)=>`BigInt(${s(String(e))})`,undefined:String,object:i.objectToString,function:r.functionToString};const toString=(e,t,s,n)=>{if(e===null)return"null";return o[typeof e](e,t,s,n)};t.toString=toString},430:e=>{e.exports=class{constructor(e){this.parent=e}batch(e){e(this);return this}end(){return this.parent}}},717:(e,t,s)=>{const n=s(256);const i=s(430);e.exports=class extends i{constructor(e){super(e);this.store=new Map}extend(e){this.shorthands=e;e.forEach((e=>{this[e]=t=>this.set(e,t)}));return this}clear(){this.store.clear();return this}delete(e){this.store.delete(e);return this}order(){const e=[...this.store].reduce(((e,[t,s])=>{e[t]=s;return e}),{});const t=Object.keys(e);const s=[...t];t.forEach((t=>{if(!e[t]){return}const{__before:n,__after:i}=e[t];if(n&&s.includes(n)){s.splice(s.indexOf(t),1);s.splice(s.indexOf(n),0,t)}else if(i&&s.includes(i)){s.splice(s.indexOf(t),1);s.splice(s.indexOf(i)+1,0,t)}}));return{entries:e,order:s}}entries(){const{entries:e,order:t}=this.order();if(t.length){return e}return undefined}values(){const{entries:e,order:t}=this.order();return t.map((t=>e[t]))}get(e){return this.store.get(e)}getOrCompute(e,t){if(!this.has(e)){this.set(e,t())}return this.get(e)}has(e){return this.store.has(e)}set(e,t){this.store.set(e,t);return this}merge(e,t=[]){Object.keys(e).forEach((s=>{if(t.includes(s)){return}const i=e[s];if(!Array.isArray(i)&&typeof i!=="object"||i===null||!this.has(s)){this.set(s,i)}else{this.set(s,n(this.get(s),i))}}));return this}clean(e){return Object.keys(e).reduce(((t,s)=>{const n=e[s];if(n===undefined){return t}if(Array.isArray(n)&&!n.length){return t}if(Object.prototype.toString.call(n)==="[object Object]"&&!Object.keys(n).length){return t}t[s]=n;return t}),{})}when(e,t=Function.prototype,s=Function.prototype){if(e){t(this)}else{s(this)}return this}}},534:(e,t,s)=>{const n=s(430);e.exports=class extends n{constructor(e){super(e);this.store=new Set}add(e){this.store.add(e);return this}prepend(e){this.store=new Set([e,...this.store]);return this}clear(){this.store.clear();return this}delete(e){this.store.delete(e);return this}values(){return[...this.store]}has(e){return this.store.has(e)}merge(e){this.store=new Set([...this.store,...e]);return this}when(e,t=Function.prototype,s=Function.prototype){if(e){t(this)}else{s(this)}return this}}},555:(e,t,s)=>{const n=s(717);const i=s(534);const r=s(777);const o=s(645);const u=s(677);const a=s(138);const c=s(383);const l=s(819);const h=s(731);const f=s(2);e.exports=class extends n{constructor(){super();this.devServer=new a(this);this.entryPoints=new n(this);this.module=new l(this);this.node=new n(this);this.optimization=new h(this);this.output=new u(this);this.performance=new f(this);this.plugins=new n(this);this.resolve=new r(this);this.resolveLoader=new o(this);this.extend(["amd","bail","cache","context","devtool","externals","loader","mode","name","parallelism","profile","recordsInputPath","recordsPath","recordsOutputPath","stats","target","watch","watchOptions"])}static toString(e,{verbose:t=false,configPrefix:n="config"}={}){const{stringify:i}=s(592);return i(e,((e,s,i)=>{if(e&&e.__pluginName){const t=`/* ${n}.${e.__pluginType}('${e.__pluginName}') */\n`;const s=e.__pluginPath?`(require(${i(e.__pluginPath)}))`:e.__pluginConstructorName;if(s){const n=i(e.__pluginArgs).slice(1,-1);return`${t}new ${s}(${n})`}return t+i(e.__pluginArgs&&e.__pluginArgs.length?{args:e.__pluginArgs}:{})}if(e&&e.__ruleNames){const t=e.__ruleTypes;const s=`/* ${n}.module${e.__ruleNames.map(((e,s)=>`.${t?t[s]:"rule"}('${e}')`)).join("")}${e.__useName?`.use('${e.__useName}')`:``} */\n`;return s+i(e)}if(e&&e.__expression){return e.__expression}if(typeof e==="function"){if(!t&&e.toString().length>100){return`function () { /* omitted long function */ }`}}return i(e)}),2)}entry(e){return this.entryPoints.getOrCompute(e,(()=>new i(this)))}plugin(e){return this.plugins.getOrCompute(e,(()=>new c(this,e)))}toConfig(){const e=this.entryPoints.entries()||{};return this.clean(Object.assign(this.entries()||{},{node:this.node.entries(),output:this.output.entries(),resolve:this.resolve.toConfig(),resolveLoader:this.resolveLoader.toConfig(),devServer:this.devServer.toConfig(),module:this.module.toConfig(),optimization:this.optimization.toConfig(),plugins:this.plugins.values().map((e=>e.toConfig())),performance:this.performance.entries(),entry:Object.keys(e).reduce(((t,s)=>Object.assign(t,{[s]:e[s].values()})),{})}))}toString(t){return e.exports.toString(this.toConfig(),t)}merge(e={},t=[]){const s=["node","output","resolve","resolveLoader","devServer","optimization","performance","module"];if(!t.includes("entry")&&"entry"in e){Object.keys(e.entry).forEach((t=>this.entry(t).merge([].concat(e.entry[t]))))}if(!t.includes("plugin")&&"plugin"in e){Object.keys(e.plugin).forEach((t=>this.plugin(t).merge(e.plugin[t])))}s.forEach((s=>{if(!t.includes(s)&&s in e){this[s].merge(e[s])}}));return super.merge(e,[...t,...s,"entry","plugin"])}}},138:(e,t,s)=>{const n=s(717);const i=s(534);e.exports=class extends n{constructor(e){super(e);this.allowedHosts=new i(this);this.extend(["after","before","bonjour","clientLogLevel","color","compress","contentBase","disableHostCheck","filename","headers","historyApiFallback","host","hot","hotOnly","http2","https","index","info","inline","lazy","mimeTypes","noInfo","open","openPage","overlay","pfx","pfxPassphrase","port","proxy","progress","public","publicPath","quiet","setup","socket","sockHost","sockPath","sockPort","staticOptions","stats","stdin","useLocalIp","watchContentBase","watchOptions","writeToDisk"])}toConfig(){return this.clean({allowedHosts:this.allowedHosts.values(),...this.entries()||{}})}merge(e,t=[]){if(!t.includes("allowedHosts")&&"allowedHosts"in e){this.allowedHosts.merge(e.allowedHosts)}return super.merge(e,["allowedHosts"])}}},819:(e,t,s)=>{const n=s(717);const i=s(693);e.exports=class extends n{constructor(e){super(e);this.rules=new n(this);this.defaultRules=new n(this);this.extend(["noParse","strictExportPresence"])}defaultRule(e){return this.defaultRules.getOrCompute(e,(()=>new i(this,e,"defaultRule")))}rule(e){return this.rules.getOrCompute(e,(()=>new i(this,e,"rule")))}toConfig(){return this.clean(Object.assign(this.entries()||{},{defaultRules:this.defaultRules.values().map((e=>e.toConfig())),rules:this.rules.values().map((e=>e.toConfig()))}))}merge(e,t=[]){if(!t.includes("rule")&&"rule"in e){Object.keys(e.rule).forEach((t=>this.rule(t).merge(e.rule[t])))}if(!t.includes("defaultRule")&&"defaultRule"in e){Object.keys(e.defaultRule).forEach((t=>this.defaultRule(t).merge(e.defaultRule[t])))}return super.merge(e,["rule","defaultRule"])}}},731:(e,t,s)=>{const n=s(717);const i=s(383);e.exports=class extends n{constructor(e){super(e);this.minimizers=new n(this);this.extend(["concatenateModules","flagIncludedChunks","mergeDuplicateChunks","minimize","namedChunks","namedModules","nodeEnv","noEmitOnErrors","occurrenceOrder","portableRecords","providedExports","removeAvailableModules","removeEmptyChunks","runtimeChunk","sideEffects","splitChunks","usedExports"])}minimizer(e){if(Array.isArray(e)){throw new Error("optimization.minimizer() no longer supports being passed an array. "+"Either switch to the new syntax (https://github.com/neutrinojs/webpack-chain#config-optimization-minimizers-adding) or downgrade to webpack-chain 4. "+"If using Vue this likely means a Vue plugin has not yet been updated to support Vue CLI 4+.")}return this.minimizers.getOrCompute(e,(()=>new i(this,e,"optimization.minimizer")))}toConfig(){return this.clean(Object.assign(this.entries()||{},{minimizer:this.minimizers.values().map((e=>e.toConfig()))}))}merge(e,t=[]){if(!t.includes("minimizer")&&"minimizer"in e){Object.keys(e.minimizer).forEach((t=>this.minimizer(t).merge(e.minimizer[t])))}return super.merge(e,[...t,"minimizer"])}}},282:e=>{e.exports=e=>class extends e{before(e){if(this.__after){throw new Error(`Unable to set .before(${JSON.stringify(e)}) with existing value for .after()`)}this.__before=e;return this}after(e){if(this.__before){throw new Error(`Unable to set .after(${JSON.stringify(e)}) with existing value for .before()`)}this.__after=e;return this}merge(e,t=[]){if(e.before){this.before(e.before)}if(e.after){this.after(e.after)}return super.merge(e,[...t,"before","after"])}}},677:(e,t,s)=>{const n=s(717);e.exports=class extends n{constructor(e){super(e);this.extend(["auxiliaryComment","chunkCallbackName","chunkFilename","chunkLoadTimeout","crossOriginLoading","devtoolFallbackModuleFilenameTemplate","devtoolLineToLine","devtoolModuleFilenameTemplate","devtoolNamespace","filename","futureEmitAssets","globalObject","hashDigest","hashDigestLength","hashFunction","hashSalt","hotUpdateChunkFilename","hotUpdateFunction","hotUpdateMainFilename","jsonpFunction","library","libraryExport","libraryTarget","path","pathinfo","publicPath","sourceMapFilename","sourcePrefix","strictModuleExceptionHandling","umdNamedDefine","webassemblyModuleFilename"])}}},2:(e,t,s)=>{const n=s(717);e.exports=class extends n{constructor(e){super(e);this.extend(["assetFilter","hints","maxAssetSize","maxEntrypointSize"])}}},383:(e,t,s)=>{const n=s(717);const i=s(282);e.exports=i(class extends n{constructor(e,t,s="plugin"){super(e);this.name=t;this.type=s;this.extend(["init"]);this.init(((e,t=[])=>{if(typeof e==="function"){return new e(...t)}return e}))}use(e,t=[]){return this.set("plugin",e).set("args",t)}tap(e){if(!this.has("plugin")){throw new Error(`Cannot call .tap() on a plugin that has not yet been defined. Call ${this.type}('${this.name}').use(<Plugin>) first.`)}this.set("args",e(this.get("args")||[]));return this}set(e,t){if(e==="args"&&!Array.isArray(t)){throw new Error("args must be an array of arguments")}return super.set(e,t)}merge(e,t=[]){if("plugin"in e){this.set("plugin",e.plugin)}if("args"in e){this.set("args",e.args)}return super.merge(e,[...t,"args","plugin"])}toConfig(){const e=this.get("init");let t=this.get("plugin");const n=this.get("args");let i=null;if(t===undefined){throw new Error(`Invalid ${this.type} configuration: ${this.type}('${this.name}').use(<Plugin>) was not called to specify the plugin`)}if(typeof t==="string"){i=t;t=s(875)(i)}const r=t.__expression?`(${t.__expression})`:t.name;const o=e(t,n);Object.defineProperties(o,{__pluginName:{value:this.name},__pluginType:{value:this.type},__pluginArgs:{value:n},__pluginConstructorName:{value:r},__pluginPath:{value:i}});return o}})},777:(e,t,s)=>{const n=s(717);const i=s(534);const r=s(383);e.exports=class extends n{constructor(e){super(e);this.alias=new n(this);this.aliasFields=new i(this);this.descriptionFiles=new i(this);this.extensions=new i(this);this.mainFields=new i(this);this.mainFiles=new i(this);this.modules=new i(this);this.plugins=new n(this);this.extend(["cachePredicate","cacheWithContext","concord","enforceExtension","enforceModuleExtension","symlinks","unsafeCache"])}plugin(e){return this.plugins.getOrCompute(e,(()=>new r(this,e,"resolve.plugin")))}toConfig(){return this.clean(Object.assign(this.entries()||{},{alias:this.alias.entries(),aliasFields:this.aliasFields.values(),descriptionFiles:this.descriptionFiles.values(),extensions:this.extensions.values(),mainFields:this.mainFields.values(),mainFiles:this.mainFiles.values(),modules:this.modules.values(),plugins:this.plugins.values().map((e=>e.toConfig()))}))}merge(e,t=[]){const s=["alias","aliasFields","descriptionFiles","extensions","mainFields","mainFiles","modules"];if(!t.includes("plugin")&&"plugin"in e){Object.keys(e.plugin).forEach((t=>this.plugin(t).merge(e.plugin[t])))}s.forEach((s=>{if(!t.includes(s)&&s in e){this[s].merge(e[s])}}));return super.merge(e,[...t,...s,"plugin"])}}},645:(e,t,s)=>{const n=s(777);const i=s(534);e.exports=class extends n{constructor(e){super(e);this.moduleExtensions=new i(this);this.packageMains=new i(this)}toConfig(){return this.clean({moduleExtensions:this.moduleExtensions.values(),packageMains:this.packageMains.values(),...super.toConfig()})}merge(e,t=[]){const s=["moduleExtensions","packageMains"];s.forEach((s=>{if(!t.includes(s)&&s in e){this[s].merge(e[s])}}));return super.merge(e,[...t,...s])}}},693:(e,t,s)=>{const n=s(717);const i=s(534);const r=s(282);const o=s(993);const u=s(777);function toArray(e){return Array.isArray(e)?e:[e]}const a=r(class extends n{constructor(e,t,s="rule"){super(e);this.name=t;this.names=[];this.ruleType=s;this.ruleTypes=[];let r=this;while(r instanceof a){this.names.unshift(r.name);this.ruleTypes.unshift(r.ruleType);r=r.parent}this.uses=new n(this);this.include=new i(this);this.exclude=new i(this);this.rules=new n(this);this.oneOfs=new n(this);this.resolve=new u(this);this.extend(["enforce","issuer","parser","resource","resourceQuery","sideEffects","test","type"])}use(e){return this.uses.getOrCompute(e,(()=>new o(this,e)))}rule(e){return this.rules.getOrCompute(e,(()=>new a(this,e,"rule")))}oneOf(e){return this.oneOfs.getOrCompute(e,(()=>new a(this,e,"oneOf")))}pre(){return this.enforce("pre")}post(){return this.enforce("post")}toConfig(){const e=this.clean(Object.assign(this.entries()||{},{include:this.include.values(),exclude:this.exclude.values(),rules:this.rules.values().map((e=>e.toConfig())),oneOf:this.oneOfs.values().map((e=>e.toConfig())),use:this.uses.values().map((e=>e.toConfig())),resolve:this.resolve.toConfig()}));Object.defineProperties(e,{__ruleNames:{value:this.names},__ruleTypes:{value:this.ruleTypes}});return e}merge(e,t=[]){if(!t.includes("include")&&"include"in e){this.include.merge(toArray(e.include))}if(!t.includes("exclude")&&"exclude"in e){this.exclude.merge(toArray(e.exclude))}if(!t.includes("use")&&"use"in e){Object.keys(e.use).forEach((t=>this.use(t).merge(e.use[t])))}if(!t.includes("rules")&&"rules"in e){Object.keys(e.rules).forEach((t=>this.rule(t).merge(e.rules[t])))}if(!t.includes("oneOf")&&"oneOf"in e){Object.keys(e.oneOf).forEach((t=>this.oneOf(t).merge(e.oneOf[t])))}if(!t.includes("resolve")&&"resolve"in e){this.resolve.merge(e.resolve)}if(!t.includes("test")&&"test"in e){this.test(e.test instanceof RegExp||typeof e.test==="function"?e.test:new RegExp(e.test))}return super.merge(e,[...t,"include","exclude","use","rules","oneOf","resolve","test"])}});e.exports=a},993:(e,t,s)=>{const n=s(256);const i=s(717);const r=s(282);e.exports=r(class extends i{constructor(e,t){super(e);this.name=t;this.extend(["loader","options"])}tap(e){this.options(e(this.get("options")));return this}merge(e,t=[]){if(!t.includes("loader")&&"loader"in e){this.loader(e.loader)}if(!t.includes("options")&&"options"in e){this.options(n(this.store.get("options")||{},e.options))}return super.merge(e,[...t,"loader","options"])}toConfig(){const e=this.clean(this.entries()||{});Object.defineProperties(e,{__useName:{value:this.name},__ruleNames:{value:this.parent&&this.parent.names},__ruleTypes:{value:this.parent&&this.parent.ruleTypes}});return e}})},875:e=>{function webpackEmptyContext(e){var t=new Error("Cannot find module '"+e+"'");t.code="MODULE_NOT_FOUND";throw t}webpackEmptyContext.keys=()=>[];webpackEmptyContext.resolve=webpackEmptyContext;webpackEmptyContext.id=875;e.exports=webpackEmptyContext}};var t={};function __nccwpck_require__(s){var n=t[s];if(n!==undefined){return n.exports}var i=t[s]={exports:{}};var r=true;try{e[s].call(i.exports,i,i.exports,__nccwpck_require__);r=false}finally{if(r)delete t[s]}return i.exports}(()=>{__nccwpck_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var s=__nccwpck_require__(555);module.exports=s})();
@@ -0,0 +1,373 @@
1
+ Mozilla Public License Version 2.0
2
+ ==================================
3
+
4
+ 1. Definitions
5
+ --------------
6
+
7
+ 1.1. "Contributor"
8
+ means each individual or legal entity that creates, contributes to
9
+ the creation of, or owns Covered Software.
10
+
11
+ 1.2. "Contributor Version"
12
+ means the combination of the Contributions of others (if any) used
13
+ by a Contributor and that particular Contributor's Contribution.
14
+
15
+ 1.3. "Contribution"
16
+ means Covered Software of a particular Contributor.
17
+
18
+ 1.4. "Covered Software"
19
+ means Source Code Form to which the initial Contributor has attached
20
+ the notice in Exhibit A, the Executable Form of such Source Code
21
+ Form, and Modifications of such Source Code Form, in each case
22
+ including portions thereof.
23
+
24
+ 1.5. "Incompatible With Secondary Licenses"
25
+ means
26
+
27
+ (a) that the initial Contributor has attached the notice described
28
+ in Exhibit B to the Covered Software; or
29
+
30
+ (b) that the Covered Software was made available under the terms of
31
+ version 1.1 or earlier of the License, but not also under the
32
+ terms of a Secondary License.
33
+
34
+ 1.6. "Executable Form"
35
+ means any form of the work other than Source Code Form.
36
+
37
+ 1.7. "Larger Work"
38
+ means a work that combines Covered Software with other material, in
39
+ a separate file or files, that is not Covered Software.
40
+
41
+ 1.8. "License"
42
+ means this document.
43
+
44
+ 1.9. "Licensable"
45
+ means having the right to grant, to the maximum extent possible,
46
+ whether at the time of the initial grant or subsequently, any and
47
+ all of the rights conveyed by this License.
48
+
49
+ 1.10. "Modifications"
50
+ means any of the following:
51
+
52
+ (a) any file in Source Code Form that results from an addition to,
53
+ deletion from, or modification of the contents of Covered
54
+ Software; or
55
+
56
+ (b) any new file in Source Code Form that contains any Covered
57
+ Software.
58
+
59
+ 1.11. "Patent Claims" of a Contributor
60
+ means any patent claim(s), including without limitation, method,
61
+ process, and apparatus claims, in any patent Licensable by such
62
+ Contributor that would be infringed, but for the grant of the
63
+ License, by the making, using, selling, offering for sale, having
64
+ made, import, or transfer of either its Contributions or its
65
+ Contributor Version.
66
+
67
+ 1.12. "Secondary License"
68
+ means either the GNU General Public License, Version 2.0, the GNU
69
+ Lesser General Public License, Version 2.1, the GNU Affero General
70
+ Public License, Version 3.0, or any later versions of those
71
+ licenses.
72
+
73
+ 1.13. "Source Code Form"
74
+ means the form of the work preferred for making modifications.
75
+
76
+ 1.14. "You" (or "Your")
77
+ means an individual or a legal entity exercising rights under this
78
+ License. For legal entities, "You" includes any entity that
79
+ controls, is controlled by, or is under common control with You. For
80
+ purposes of this definition, "control" means (a) the power, direct
81
+ or indirect, to cause the direction or management of such entity,
82
+ whether by contract or otherwise, or (b) ownership of more than
83
+ fifty percent (50%) of the outstanding shares or beneficial
84
+ ownership of such entity.
85
+
86
+ 2. License Grants and Conditions
87
+ --------------------------------
88
+
89
+ 2.1. Grants
90
+
91
+ Each Contributor hereby grants You a world-wide, royalty-free,
92
+ non-exclusive license:
93
+
94
+ (a) under intellectual property rights (other than patent or trademark)
95
+ Licensable by such Contributor to use, reproduce, make available,
96
+ modify, display, perform, distribute, and otherwise exploit its
97
+ Contributions, either on an unmodified basis, with Modifications, or
98
+ as part of a Larger Work; and
99
+
100
+ (b) under Patent Claims of such Contributor to make, use, sell, offer
101
+ for sale, have made, import, and otherwise transfer either its
102
+ Contributions or its Contributor Version.
103
+
104
+ 2.2. Effective Date
105
+
106
+ The licenses granted in Section 2.1 with respect to any Contribution
107
+ become effective for each Contribution on the date the Contributor first
108
+ distributes such Contribution.
109
+
110
+ 2.3. Limitations on Grant Scope
111
+
112
+ The licenses granted in this Section 2 are the only rights granted under
113
+ this License. No additional rights or licenses will be implied from the
114
+ distribution or licensing of Covered Software under this License.
115
+ Notwithstanding Section 2.1(b) above, no patent license is granted by a
116
+ Contributor:
117
+
118
+ (a) for any code that a Contributor has removed from Covered Software;
119
+ or
120
+
121
+ (b) for infringements caused by: (i) Your and any other third party's
122
+ modifications of Covered Software, or (ii) the combination of its
123
+ Contributions with other software (except as part of its Contributor
124
+ Version); or
125
+
126
+ (c) under Patent Claims infringed by Covered Software in the absence of
127
+ its Contributions.
128
+
129
+ This License does not grant any rights in the trademarks, service marks,
130
+ or logos of any Contributor (except as may be necessary to comply with
131
+ the notice requirements in Section 3.4).
132
+
133
+ 2.4. Subsequent Licenses
134
+
135
+ No Contributor makes additional grants as a result of Your choice to
136
+ distribute the Covered Software under a subsequent version of this
137
+ License (see Section 10.2) or under the terms of a Secondary License (if
138
+ permitted under the terms of Section 3.3).
139
+
140
+ 2.5. Representation
141
+
142
+ Each Contributor represents that the Contributor believes its
143
+ Contributions are its original creation(s) or it has sufficient rights
144
+ to grant the rights to its Contributions conveyed by this License.
145
+
146
+ 2.6. Fair Use
147
+
148
+ This License is not intended to limit any rights You have under
149
+ applicable copyright doctrines of fair use, fair dealing, or other
150
+ equivalents.
151
+
152
+ 2.7. Conditions
153
+
154
+ Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
155
+ in Section 2.1.
156
+
157
+ 3. Responsibilities
158
+ -------------------
159
+
160
+ 3.1. Distribution of Source Form
161
+
162
+ All distribution of Covered Software in Source Code Form, including any
163
+ Modifications that You create or to which You contribute, must be under
164
+ the terms of this License. You must inform recipients that the Source
165
+ Code Form of the Covered Software is governed by the terms of this
166
+ License, and how they can obtain a copy of this License. You may not
167
+ attempt to alter or restrict the recipients' rights in the Source Code
168
+ Form.
169
+
170
+ 3.2. Distribution of Executable Form
171
+
172
+ If You distribute Covered Software in Executable Form then:
173
+
174
+ (a) such Covered Software must also be made available in Source Code
175
+ Form, as described in Section 3.1, and You must inform recipients of
176
+ the Executable Form how they can obtain a copy of such Source Code
177
+ Form by reasonable means in a timely manner, at a charge no more
178
+ than the cost of distribution to the recipient; and
179
+
180
+ (b) You may distribute such Executable Form under the terms of this
181
+ License, or sublicense it under different terms, provided that the
182
+ license for the Executable Form does not attempt to limit or alter
183
+ the recipients' rights in the Source Code Form under this License.
184
+
185
+ 3.3. Distribution of a Larger Work
186
+
187
+ You may create and distribute a Larger Work under terms of Your choice,
188
+ provided that You also comply with the requirements of this License for
189
+ the Covered Software. If the Larger Work is a combination of Covered
190
+ Software with a work governed by one or more Secondary Licenses, and the
191
+ Covered Software is not Incompatible With Secondary Licenses, this
192
+ License permits You to additionally distribute such Covered Software
193
+ under the terms of such Secondary License(s), so that the recipient of
194
+ the Larger Work may, at their option, further distribute the Covered
195
+ Software under the terms of either this License or such Secondary
196
+ License(s).
197
+
198
+ 3.4. Notices
199
+
200
+ You may not remove or alter the substance of any license notices
201
+ (including copyright notices, patent notices, disclaimers of warranty,
202
+ or limitations of liability) contained within the Source Code Form of
203
+ the Covered Software, except that You may alter any license notices to
204
+ the extent required to remedy known factual inaccuracies.
205
+
206
+ 3.5. Application of Additional Terms
207
+
208
+ You may choose to offer, and to charge a fee for, warranty, support,
209
+ indemnity or liability obligations to one or more recipients of Covered
210
+ Software. However, You may do so only on Your own behalf, and not on
211
+ behalf of any Contributor. You must make it absolutely clear that any
212
+ such warranty, support, indemnity, or liability obligation is offered by
213
+ You alone, and You hereby agree to indemnify every Contributor for any
214
+ liability incurred by such Contributor as a result of warranty, support,
215
+ indemnity or liability terms You offer. You may include additional
216
+ disclaimers of warranty and limitations of liability specific to any
217
+ jurisdiction.
218
+
219
+ 4. Inability to Comply Due to Statute or Regulation
220
+ ---------------------------------------------------
221
+
222
+ If it is impossible for You to comply with any of the terms of this
223
+ License with respect to some or all of the Covered Software due to
224
+ statute, judicial order, or regulation then You must: (a) comply with
225
+ the terms of this License to the maximum extent possible; and (b)
226
+ describe the limitations and the code they affect. Such description must
227
+ be placed in a text file included with all distributions of the Covered
228
+ Software under this License. Except to the extent prohibited by statute
229
+ or regulation, such description must be sufficiently detailed for a
230
+ recipient of ordinary skill to be able to understand it.
231
+
232
+ 5. Termination
233
+ --------------
234
+
235
+ 5.1. The rights granted under this License will terminate automatically
236
+ if You fail to comply with any of its terms. However, if You become
237
+ compliant, then the rights granted under this License from a particular
238
+ Contributor are reinstated (a) provisionally, unless and until such
239
+ Contributor explicitly and finally terminates Your grants, and (b) on an
240
+ ongoing basis, if such Contributor fails to notify You of the
241
+ non-compliance by some reasonable means prior to 60 days after You have
242
+ come back into compliance. Moreover, Your grants from a particular
243
+ Contributor are reinstated on an ongoing basis if such Contributor
244
+ notifies You of the non-compliance by some reasonable means, this is the
245
+ first time You have received notice of non-compliance with this License
246
+ from such Contributor, and You become compliant prior to 30 days after
247
+ Your receipt of the notice.
248
+
249
+ 5.2. If You initiate litigation against any entity by asserting a patent
250
+ infringement claim (excluding declaratory judgment actions,
251
+ counter-claims, and cross-claims) alleging that a Contributor Version
252
+ directly or indirectly infringes any patent, then the rights granted to
253
+ You by any and all Contributors for the Covered Software under Section
254
+ 2.1 of this License shall terminate.
255
+
256
+ 5.3. In the event of termination under Sections 5.1 or 5.2 above, all
257
+ end user license agreements (excluding distributors and resellers) which
258
+ have been validly granted by You or Your distributors under this License
259
+ prior to termination shall survive termination.
260
+
261
+ ************************************************************************
262
+ * *
263
+ * 6. Disclaimer of Warranty *
264
+ * ------------------------- *
265
+ * *
266
+ * Covered Software is provided under this License on an "as is" *
267
+ * basis, without warranty of any kind, either expressed, implied, or *
268
+ * statutory, including, without limitation, warranties that the *
269
+ * Covered Software is free of defects, merchantable, fit for a *
270
+ * particular purpose or non-infringing. The entire risk as to the *
271
+ * quality and performance of the Covered Software is with You. *
272
+ * Should any Covered Software prove defective in any respect, You *
273
+ * (not any Contributor) assume the cost of any necessary servicing, *
274
+ * repair, or correction. This disclaimer of warranty constitutes an *
275
+ * essential part of this License. No use of any Covered Software is *
276
+ * authorized under this License except under this disclaimer. *
277
+ * *
278
+ ************************************************************************
279
+
280
+ ************************************************************************
281
+ * *
282
+ * 7. Limitation of Liability *
283
+ * -------------------------- *
284
+ * *
285
+ * Under no circumstances and under no legal theory, whether tort *
286
+ * (including negligence), contract, or otherwise, shall any *
287
+ * Contributor, or anyone who distributes Covered Software as *
288
+ * permitted above, be liable to You for any direct, indirect, *
289
+ * special, incidental, or consequential damages of any character *
290
+ * including, without limitation, damages for lost profits, loss of *
291
+ * goodwill, work stoppage, computer failure or malfunction, or any *
292
+ * and all other commercial damages or losses, even if such party *
293
+ * shall have been informed of the possibility of such damages. This *
294
+ * limitation of liability shall not apply to liability for death or *
295
+ * personal injury resulting from such party's negligence to the *
296
+ * extent applicable law prohibits such limitation. Some *
297
+ * jurisdictions do not allow the exclusion or limitation of *
298
+ * incidental or consequential damages, so this exclusion and *
299
+ * limitation may not apply to You. *
300
+ * *
301
+ ************************************************************************
302
+
303
+ 8. Litigation
304
+ -------------
305
+
306
+ Any litigation relating to this License may be brought only in the
307
+ courts of a jurisdiction where the defendant maintains its principal
308
+ place of business and such litigation shall be governed by laws of that
309
+ jurisdiction, without reference to its conflict-of-law provisions.
310
+ Nothing in this Section shall prevent a party's ability to bring
311
+ cross-claims or counter-claims.
312
+
313
+ 9. Miscellaneous
314
+ ----------------
315
+
316
+ This License represents the complete agreement concerning the subject
317
+ matter hereof. If any provision of this License is held to be
318
+ unenforceable, such provision shall be reformed only to the extent
319
+ necessary to make it enforceable. Any law or regulation which provides
320
+ that the language of a contract shall be construed against the drafter
321
+ shall not be used to construe this License against a Contributor.
322
+
323
+ 10. Versions of the License
324
+ ---------------------------
325
+
326
+ 10.1. New Versions
327
+
328
+ Mozilla Foundation is the license steward. Except as provided in Section
329
+ 10.3, no one other than the license steward has the right to modify or
330
+ publish new versions of this License. Each version will be given a
331
+ distinguishing version number.
332
+
333
+ 10.2. Effect of New Versions
334
+
335
+ You may distribute the Covered Software under the terms of the version
336
+ of the License under which You originally received the Covered Software,
337
+ or under the terms of any subsequent version published by the license
338
+ steward.
339
+
340
+ 10.3. Modified Versions
341
+
342
+ If you create software not governed by this License, and you want to
343
+ create a new license for such software, you may create and use a
344
+ modified version of this License if you rename the license and remove
345
+ any references to the name of the license steward (except to note that
346
+ such modified license differs from this License).
347
+
348
+ 10.4. Distributing Source Code Form that is Incompatible With Secondary
349
+ Licenses
350
+
351
+ If You choose to distribute Source Code Form that is Incompatible With
352
+ Secondary Licenses under the terms of this version of the License, the
353
+ notice described in Exhibit B of this License must be attached.
354
+
355
+ Exhibit A - Source Code Form License Notice
356
+ -------------------------------------------
357
+
358
+ This Source Code Form is subject to the terms of the Mozilla Public
359
+ License, v. 2.0. If a copy of the MPL was not distributed with this
360
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
361
+
362
+ If it is not possible or desirable to put the notice in a particular
363
+ file, then You may include the notice in a location (such as a LICENSE
364
+ file in a relevant directory) where a recipient would be likely to look
365
+ for such a notice.
366
+
367
+ You may add additional accurate notices of copyright ownership.
368
+
369
+ Exhibit B - "Incompatible With Secondary Licenses" Notice
370
+ ---------------------------------------------------------
371
+
372
+ This Source Code Form is "Incompatible With Secondary Licenses", as
373
+ defined by the Mozilla Public License, v. 2.0.
@@ -0,0 +1 @@
1
+ {"name":"webpack-chain","author":"Eli Perelman <eli@eliperelman.com>","version":"6.5.1","license":"MPL-2.0","typings":"types/index.d.ts"}
@@ -0,0 +1,388 @@
1
+ import { Tapable } from 'tapable';
2
+ import * as webpack from 'webpack';
3
+ import * as https from 'https';
4
+
5
+ export = Config;
6
+
7
+ declare namespace __Config {
8
+ class Chained<Parent> {
9
+ end(): Parent;
10
+ }
11
+
12
+ class TypedChainedMap<Parent, Value> extends Chained<Parent> {
13
+ clear(): this;
14
+ delete(key: string): this;
15
+ has(key: string): boolean;
16
+ get(key: string): Value;
17
+ getOrCompute(key: string, compute: () => Value): Value;
18
+ set(key: string, value: Value): this;
19
+ merge(obj: { [key: string]: Value }): this;
20
+ entries(): { [key: string]: Value };
21
+ values(): Value[];
22
+ when(
23
+ condition: boolean,
24
+ trueBrancher: (obj: this) => void,
25
+ falseBrancher?: (obj: this) => void,
26
+ ): this;
27
+ }
28
+
29
+ class ChainedMap<Parent> extends TypedChainedMap<Parent, any> {}
30
+
31
+ class TypedChainedSet<Parent, Value> extends Chained<Parent> {
32
+ add(value: Value): this;
33
+ prepend(value: Value): this;
34
+ clear(): this;
35
+ delete(key: string): this;
36
+ has(key: string): boolean;
37
+ merge(arr: Value[]): this;
38
+ values(): Value[];
39
+ when(
40
+ condition: boolean,
41
+ trueBrancher: (obj: this) => void,
42
+ falseBrancher?: (obj: this) => void,
43
+ ): this;
44
+ }
45
+
46
+ class ChainedSet<Parent> extends TypedChainedSet<Parent, any> {}
47
+ }
48
+
49
+ declare class Config extends __Config.ChainedMap<void> {
50
+ devServer: Config.DevServer;
51
+ entryPoints: Config.TypedChainedMap<Config, Config.EntryPoint>;
52
+ module: Config.Module;
53
+ node: Config.ChainedMap<this>;
54
+ output: Config.Output;
55
+ optimization: Config.Optimization;
56
+ performance: Config.Performance;
57
+ plugins: Config.Plugins<this, webpack.Plugin>;
58
+ resolve: Config.Resolve;
59
+ resolveLoader: Config.ResolveLoader;
60
+
61
+ amd(value: { [moduleName: string]: boolean }): this;
62
+ bail(value: boolean): this;
63
+ cache(value: boolean | any): this;
64
+ devtool(value: Config.DevTool): this;
65
+ context(value: string): this;
66
+ externals(value: webpack.ExternalsElement | webpack.ExternalsElement[]): this;
67
+ loader(value: any): this;
68
+ name(value: string): this;
69
+ mode(value: 'none' | 'development' | 'production'): this;
70
+ parallelism(value: number): this;
71
+ profile(value: boolean): this;
72
+ recordsPath(value: string): this;
73
+ recordsInputPath(value: string): this;
74
+ recordsOutputPath(value: string): this;
75
+ stats(value: webpack.Options.Stats): this;
76
+ target(value: string): this;
77
+ watch(value: boolean): this;
78
+ watchOptions(value: webpack.Options.WatchOptions): this;
79
+
80
+ entry(name: string): Config.EntryPoint;
81
+ plugin(name: string): Config.Plugin<this, webpack.Plugin>;
82
+
83
+ toConfig(): webpack.Configuration;
84
+ }
85
+
86
+ declare namespace Config {
87
+ class Chained<Parent> extends __Config.Chained<Parent> {}
88
+ class TypedChainedMap<Parent, Value> extends __Config.TypedChainedMap<
89
+ Parent,
90
+ Value
91
+ > {}
92
+ class ChainedMap<Parent> extends __Config.TypedChainedMap<Parent, any> {}
93
+ class TypedChainedSet<Parent, Value> extends __Config.TypedChainedSet<
94
+ Parent,
95
+ Value
96
+ > {}
97
+ class ChainedSet<Parent> extends __Config.TypedChainedSet<Parent, any> {}
98
+
99
+ class Plugins<
100
+ Parent,
101
+ PluginType extends Tapable.Plugin = webpack.Plugin
102
+ > extends TypedChainedMap<Parent, Plugin<Parent, PluginType>> {}
103
+
104
+ class Plugin<Parent, PluginType extends Tapable.Plugin = webpack.Plugin>
105
+ extends ChainedMap<Parent>
106
+ implements Orderable {
107
+ init<P extends PluginType | PluginClass<PluginType>>(
108
+ value: (
109
+ plugin: P,
110
+ args: P extends PluginClass ? ConstructorParameters<P> : any[],
111
+ ) => PluginType,
112
+ ): this;
113
+ use<P extends string | PluginType | PluginClass<PluginType>>(
114
+ plugin: P,
115
+ args?: P extends PluginClass ? ConstructorParameters<P> : any[],
116
+ ): this;
117
+ tap<P extends PluginClass<PluginType>>(
118
+ f: (args: ConstructorParameters<P>) => ConstructorParameters<P>,
119
+ ): this;
120
+
121
+ // Orderable
122
+ before(name: string): this;
123
+ after(name: string): this;
124
+ }
125
+
126
+ class Module extends ChainedMap<Config> {
127
+ rules: TypedChainedMap<this, Rule>;
128
+ rule(name: string): Rule;
129
+ noParse(
130
+ noParse: RegExp | RegExp[] | ((contentPath: string) => boolean),
131
+ ): this;
132
+ strictExportPresence(value: boolean): this;
133
+ }
134
+
135
+ class Output extends ChainedMap<Config> {
136
+ auxiliaryComment(value: string | { [comment: string]: string }): this;
137
+ chunkFilename(value: string): this;
138
+ chunkLoadTimeout(value: number): this;
139
+ crossOriginLoading(value: boolean | string): this;
140
+ filename(value: string): this;
141
+ library(value: string): this;
142
+ libraryExport(value: string | string[]): this;
143
+ libraryTarget(value: string): this;
144
+ devtoolFallbackModuleFilenameTemplate(value: any): this;
145
+ devtoolLineToLine(value: any): this;
146
+ devtoolModuleFilenameTemplate(value: any): this;
147
+ devtoolNamespace(value: string): this;
148
+ globalObject(value: string): this;
149
+ hashFunction(value: string): this;
150
+ hashDigest(value: string): this;
151
+ hashDigestLength(value: number): this;
152
+ hashSalt(value: any): this;
153
+ hotUpdateChunkFilename(value: string): this;
154
+ hotUpdateFunction(value: any): this;
155
+ hotUpdateMainFilename(value: string): this;
156
+ jsonpFunction(value: string): this;
157
+ path(value: string): this;
158
+ pathinfo(value: boolean): this;
159
+ publicPath(value: string): this;
160
+ sourceMapFilename(value: string): this;
161
+ sourcePrefix(value: string): this;
162
+ strictModuleExceptionHandling(value: boolean): this;
163
+ umdNamedDefine(value: boolean): this;
164
+ futureEmitAssets(value: boolean): this;
165
+ }
166
+
167
+ class DevServer extends ChainedMap<Config> {
168
+ allowedHosts: TypedChainedSet<this, string>;
169
+
170
+ after(
171
+ value: (app: any, server: any, compiler: webpack.Compiler) => void,
172
+ ): this;
173
+ before(
174
+ value: (app: any, server: any, compiler: webpack.Compiler) => void,
175
+ ): this;
176
+ bonjour(value: boolean): this;
177
+ clientLogLevel(value: 'none' | 'error' | 'warning' | 'info'): this;
178
+ color(value: boolean): this;
179
+ compress(value: boolean): this;
180
+ contentBase(value: boolean | string | string[]): this;
181
+ disableHostCheck(value: boolean): this;
182
+ filename(value: string): this;
183
+ headers(value: { [header: string]: string }): this;
184
+ historyApiFallback(value: boolean | any): this;
185
+ host(value: string): this;
186
+ hot(value: boolean): this;
187
+ hotOnly(value: boolean): this;
188
+ http2(value: boolean): this;
189
+ https(value: boolean | https.ServerOptions): this;
190
+ index(value: string): this;
191
+ info(value: boolean): this;
192
+ inline(value: boolean): this;
193
+ lazy(value: boolean): this;
194
+ mimeTypes(value: Object): this;
195
+ noInfo(value: boolean): this;
196
+ open(value: boolean): this;
197
+ openPage(value: string | string[]): this;
198
+ overlay(value: boolean | { warnings?: boolean; errors?: boolean }): this;
199
+ pfx(value: string): this;
200
+ pfxPassphrase(value: string): this;
201
+ port(value: number): this;
202
+ progress(value: boolean): this;
203
+ proxy(value: any): this;
204
+ public(value: string): this;
205
+ publicPath(publicPath: string): this;
206
+ quiet(value: boolean): this;
207
+ setup(value: (expressApp: any) => void): this;
208
+ socket(value: string): this;
209
+ sockHost(value: string): this;
210
+ sockPath(value: string): this;
211
+ sockPort(value: number): this;
212
+ staticOptions(value: any): this;
213
+ stats(value: webpack.Options.Stats): this;
214
+ stdin(value: boolean): this;
215
+ useLocalIp(value: boolean): this;
216
+ watchContentBase(value: boolean): this;
217
+ watchOptions(value: any): this;
218
+ writeToDisk(value: boolean): this;
219
+ }
220
+
221
+ class Performance extends ChainedMap<Config> {
222
+ hints(value: boolean | 'error' | 'warning'): this;
223
+ maxEntrypointSize(value: number): this;
224
+ maxAssetSize(value: number): this;
225
+ assetFilter(value: (assetFilename: string) => boolean): this;
226
+ }
227
+
228
+ class EntryPoint extends TypedChainedSet<Config, string> {}
229
+
230
+ class Resolve<T = Config> extends ChainedMap<T> {
231
+ alias: TypedChainedMap<this, string>;
232
+ aliasFields: TypedChainedSet<this, string>;
233
+ descriptionFiles: TypedChainedSet<this, string>;
234
+ extensions: TypedChainedSet<this, string>;
235
+ mainFields: TypedChainedSet<this, string>;
236
+ mainFiles: TypedChainedSet<this, string>;
237
+ modules: TypedChainedSet<this, string>;
238
+ plugins: TypedChainedMap<this, Plugin<this, webpack.ResolvePlugin>>;
239
+
240
+ enforceExtension(value: boolean): this;
241
+ enforceModuleExtension(value: boolean): this;
242
+ unsafeCache(value: boolean | RegExp | RegExp[]): this;
243
+ symlinks(value: boolean): this;
244
+ cachePredicate(
245
+ value: (data: { path: string; request: string }) => boolean,
246
+ ): this;
247
+ cacheWithContext(value: boolean): this;
248
+
249
+ plugin(name: string): Plugin<this, webpack.ResolvePlugin>;
250
+ }
251
+
252
+ class ResolveLoader extends Resolve {
253
+ moduleExtensions: ChainedSet<this>;
254
+ packageMains: ChainedSet<this>;
255
+ }
256
+
257
+ class Rule<T = Module> extends ChainedMap<T> implements Orderable {
258
+ rules: TypedChainedMap<this, Rule<Rule>>;
259
+ oneOfs: TypedChainedMap<this, Rule<Rule>>;
260
+ uses: TypedChainedMap<this, Use>;
261
+ include: TypedChainedSet<this, webpack.Condition>;
262
+ exclude: TypedChainedSet<this, webpack.Condition>;
263
+ resolve: Resolve<Rule<T>>;
264
+
265
+ parser(value: { [optName: string]: any }): this;
266
+ test(value: webpack.Condition | webpack.Condition[]): this;
267
+ type(
268
+ value:
269
+ | 'javascript/auto'
270
+ | 'javascript/dynamic'
271
+ | 'javascript/esm'
272
+ | 'json'
273
+ | 'webassembly/experimental',
274
+ ): this;
275
+ enforce(value: 'pre' | 'post'): this;
276
+
277
+ use(name: string): Use<this>;
278
+ rule(name: string): Rule<Rule>;
279
+ oneOf(name: string): Rule<Rule>;
280
+ pre(): this;
281
+ post(): this;
282
+ before(name: string): this;
283
+ after(name: string): this;
284
+ resourceQuery(value: webpack.Condition | webpack.Condition[]): this;
285
+ }
286
+
287
+ class Optimization extends ChainedMap<Config> {
288
+ concatenateModules(value: boolean): this;
289
+ flagIncludedChunks(value: boolean): this;
290
+ mergeDuplicateChunks(value: boolean): this;
291
+ minimize(value: boolean): this;
292
+ minimizer(name: string): Config.Plugin<this, webpack.Plugin>;
293
+ namedChunks(value: boolean): this;
294
+ namedModules(value: boolean): this;
295
+ nodeEnv(value: boolean | string): this;
296
+ noEmitOnErrors(value: boolean): this;
297
+ occurrenceOrder(value: boolean): this;
298
+ portableRecords(value: boolean): this;
299
+ providedExports(value: boolean): this;
300
+ removeAvailableModules(value: boolean): this;
301
+ removeEmptyChunks(value: boolean): this;
302
+ runtimeChunk(value: boolean | 'single' | 'multiple' | RuntimeChunk): this;
303
+ sideEffects(value: boolean): this;
304
+ splitChunks(value: SplitChunksOptions): this;
305
+ usedExports(value: boolean): this;
306
+ }
307
+
308
+ interface RuntimeChunk {
309
+ name: string | RuntimeChunkFunction;
310
+ }
311
+
312
+ type RuntimeChunkFunction = (entryPoint: EntryPoint) => string;
313
+
314
+ interface SplitChunksOptions {
315
+ [name: string]: any;
316
+ }
317
+
318
+ interface LoaderOptions {
319
+ [name: string]: any;
320
+ }
321
+
322
+ class Use<Parent = Rule> extends ChainedMap<Parent> implements Orderable {
323
+ loader(value: string): this;
324
+ options(value: LoaderOptions): this;
325
+
326
+ tap(f: (options: LoaderOptions) => LoaderOptions): this;
327
+
328
+ // Orderable
329
+ before(name: string): this;
330
+ after(name: string): this;
331
+ }
332
+
333
+ type DevTool =
334
+ | 'eval'
335
+ | 'inline-source-map'
336
+ | 'cheap-eval-source-map'
337
+ | 'cheap-source-map'
338
+ | 'cheap-module-eval-source-map'
339
+ | 'cheap-module-source-map'
340
+ | 'eval-source-map'
341
+ | 'source-map'
342
+ | 'nosources-source-map'
343
+ | 'hidden-source-map'
344
+ | 'nosources-source-map'
345
+ | '@eval'
346
+ | '@inline-source-map'
347
+ | '@cheap-eval-source-map'
348
+ | '@cheap-source-map'
349
+ | '@cheap-module-eval-source-map'
350
+ | '@cheap-module-source-map'
351
+ | '@eval-source-map'
352
+ | '@source-map'
353
+ | '@nosources-source-map'
354
+ | '@hidden-source-map'
355
+ | '@nosources-source-map'
356
+ | '#eval'
357
+ | '#inline-source-map'
358
+ | '#cheap-eval-source-map'
359
+ | '#cheap-source-map'
360
+ | '#cheap-module-eval-source-map'
361
+ | '#cheap-module-source-map'
362
+ | '#eval-source-map'
363
+ | '#source-map'
364
+ | '#nosources-source-map'
365
+ | '#hidden-source-map'
366
+ | '#nosources-source-map'
367
+ | '#@eval'
368
+ | '#@inline-source-map'
369
+ | '#@cheap-eval-source-map'
370
+ | '#@cheap-source-map'
371
+ | '#@cheap-module-eval-source-map'
372
+ | '#@cheap-module-source-map'
373
+ | '#@eval-source-map'
374
+ | '#@source-map'
375
+ | '#@nosources-source-map'
376
+ | '#@hidden-source-map'
377
+ | '#@nosources-source-map'
378
+ | boolean;
379
+
380
+ interface PluginClass<PluginType extends Tapable.Plugin = webpack.Plugin> {
381
+ new (...opts: any[]): PluginType;
382
+ }
383
+
384
+ interface Orderable {
385
+ before(name: string): this;
386
+ after(name: string): this;
387
+ }
388
+ }
@@ -0,0 +1,116 @@
1
+ export declare const CHAIN_ID: {
2
+ /** Predefined rules */
3
+ readonly RULE: {
4
+ /** Rule for .mjs */
5
+ readonly MJS: "mjs";
6
+ /** Rule for predefined loaders */
7
+ readonly LOADERS: "loaders";
8
+ };
9
+ /** Predefined rule groups */
10
+ readonly ONE_OF: {
11
+ readonly JS: "js";
12
+ readonly TS: "ts";
13
+ readonly CSS: "css";
14
+ readonly LESS: "less";
15
+ readonly SASS: "sass";
16
+ readonly YAML: "yml";
17
+ readonly TOML: "toml";
18
+ readonly FALLBACK: "fallback";
19
+ readonly MARKDOWN: "markdown";
20
+ readonly BFF_CLIENT: "bff-client";
21
+ readonly CSS_MODULES: "css-modules";
22
+ readonly LESS_MODULES: "less-modules";
23
+ readonly SASS_MODULES: "sass-modules";
24
+ readonly SVG: "svg";
25
+ readonly SVG_URL: "svg-url";
26
+ readonly SVG_INLINE: "svg-inline";
27
+ readonly ASSETS: "assets";
28
+ readonly ASSETS_URL: "assets-url";
29
+ readonly ASSETS_INLINE: "assets-inline";
30
+ };
31
+ /** Predefined loaders */
32
+ readonly USE: {
33
+ /** ts-loader */
34
+ readonly TS: "ts";
35
+ /** css-loader */
36
+ readonly CSS: "css";
37
+ /** url-loader */
38
+ readonly URL: "url";
39
+ /** file-loader */
40
+ readonly FILE: "file";
41
+ /** @svgr/webpack */
42
+ readonly SVGR: "svgr";
43
+ /** yaml-loader */
44
+ readonly YAML: "yaml";
45
+ /** toml-loader */
46
+ readonly TOML: "toml";
47
+ /** html-loader */
48
+ readonly HTML: "html";
49
+ /** babel-loader */
50
+ readonly BABEL: "babel";
51
+ /** style-loader */
52
+ readonly STYLE: "style-loader";
53
+ /** postcss-loader */
54
+ readonly POSTCSS: "postcss";
55
+ /** markdown-loader */
56
+ readonly MARKDOWN: "markdown";
57
+ /** css-modules-typescript-loader */
58
+ readonly CSS_MODULES_TS: "css-modules-typescript";
59
+ /** mini-css-extract-plugin.loader */
60
+ readonly MINI_CSS_EXTRACT: "mini-css-extract";
61
+ };
62
+ /** Predefined plugins */
63
+ readonly PLUGIN: {
64
+ /** HotModuleReplacementPlugin */
65
+ readonly HMR: "hmr";
66
+ /** CopyWebpackPlugin */
67
+ readonly COPY: "copy";
68
+ /** HtmlWebpackPlugin */
69
+ readonly HTML: "html";
70
+ /** DefinePlugin */
71
+ readonly DEFINE: "define";
72
+ /** IgnorePlugin */
73
+ readonly IGNORE: "ignore";
74
+ /** BannerPlugin */
75
+ readonly BANNER: "banner";
76
+ /** Webpackbar */
77
+ readonly PROGRESS: "progress";
78
+ /** AppIconPlugin */
79
+ readonly APP_ICON: "app-icon";
80
+ /** LoadableWebpackPlugin */
81
+ readonly LOADABLE: "loadable";
82
+ /** WebpackManifestPlugin */
83
+ readonly MANIFEST: "webpack-manifest";
84
+ /** ForkTsCheckerWebpackPlugin */
85
+ readonly TS_CHECKER: "ts-checker";
86
+ /** InlineChunkHtmlPlugin */
87
+ readonly INLINE_HTML: "inline-html";
88
+ /** WebpackBundleAnalyzer */
89
+ readonly BUNDLE_ANALYZER: "bundle-analyze";
90
+ /** BottomTemplatePlugin */
91
+ readonly BOTTOM_TEMPLATE: "bottom-template";
92
+ /** MiniCssExtractPlugin */
93
+ readonly MINI_CSS_EXTRACT: "mini-css-extract";
94
+ /** ReactFastRefreshPlugin */
95
+ readonly REACT_FAST_REFRESH: "react-fast-refresh";
96
+ /** ProvidePlugin for node polyfill */
97
+ readonly NODE_POLYFILL_PROVIDE: "node-polyfill-provide";
98
+ };
99
+ /** Predefined minimizers */
100
+ readonly MINIMIZER: {
101
+ /** TerserWebpackPlugin */
102
+ readonly JS: "js";
103
+ /** CssMinimizerWebpackPlugin */
104
+ readonly CSS: "css";
105
+ /** ESBuildPlugin */
106
+ readonly ESBUILD: "js-css";
107
+ };
108
+ /** Predefined resolve plugins */
109
+ readonly RESOLVE_PLUGIN: {
110
+ /** ModuleScopePlugin */
111
+ readonly MODULE_SCOPE: "module-scope";
112
+ /** TsConfigPathsPlugin */
113
+ readonly TS_CONFIG_PATHS: "ts-config-paths";
114
+ };
115
+ };
116
+ export declare type ChainIdentifier = typeof CHAIN_ID;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CHAIN_ID = void 0;
4
+ exports.CHAIN_ID = {
5
+ /** Predefined rules */
6
+ RULE: {
7
+ /** Rule for .mjs */
8
+ MJS: 'mjs',
9
+ /** Rule for predefined loaders */
10
+ LOADERS: 'loaders',
11
+ },
12
+ /** Predefined rule groups */
13
+ ONE_OF: {
14
+ JS: 'js',
15
+ TS: 'ts',
16
+ CSS: 'css',
17
+ LESS: 'less',
18
+ SASS: 'sass',
19
+ YAML: 'yml',
20
+ TOML: 'toml',
21
+ FALLBACK: 'fallback',
22
+ MARKDOWN: 'markdown',
23
+ BFF_CLIENT: 'bff-client',
24
+ CSS_MODULES: 'css-modules',
25
+ LESS_MODULES: 'less-modules',
26
+ SASS_MODULES: 'sass-modules',
27
+ SVG: 'svg',
28
+ SVG_URL: 'svg-url',
29
+ SVG_INLINE: 'svg-inline',
30
+ ASSETS: 'assets',
31
+ ASSETS_URL: 'assets-url',
32
+ ASSETS_INLINE: 'assets-inline',
33
+ },
34
+ /** Predefined loaders */
35
+ USE: {
36
+ /** ts-loader */
37
+ TS: 'ts',
38
+ /** css-loader */
39
+ CSS: 'css',
40
+ /** url-loader */
41
+ URL: 'url',
42
+ /** file-loader */
43
+ FILE: 'file',
44
+ /** @svgr/webpack */
45
+ SVGR: 'svgr',
46
+ /** yaml-loader */
47
+ YAML: 'yaml',
48
+ /** toml-loader */
49
+ TOML: 'toml',
50
+ /** html-loader */
51
+ HTML: 'html',
52
+ /** babel-loader */
53
+ BABEL: 'babel',
54
+ /** style-loader */
55
+ STYLE: 'style-loader',
56
+ /** postcss-loader */
57
+ POSTCSS: 'postcss',
58
+ /** markdown-loader */
59
+ MARKDOWN: 'markdown',
60
+ /** css-modules-typescript-loader */
61
+ CSS_MODULES_TS: 'css-modules-typescript',
62
+ /** mini-css-extract-plugin.loader */
63
+ MINI_CSS_EXTRACT: 'mini-css-extract',
64
+ },
65
+ /** Predefined plugins */
66
+ PLUGIN: {
67
+ /** HotModuleReplacementPlugin */
68
+ HMR: 'hmr',
69
+ /** CopyWebpackPlugin */
70
+ COPY: 'copy',
71
+ /** HtmlWebpackPlugin */
72
+ HTML: 'html',
73
+ /** DefinePlugin */
74
+ DEFINE: 'define',
75
+ /** IgnorePlugin */
76
+ IGNORE: 'ignore',
77
+ /** BannerPlugin */
78
+ BANNER: 'banner',
79
+ /** Webpackbar */
80
+ PROGRESS: 'progress',
81
+ /** AppIconPlugin */
82
+ APP_ICON: 'app-icon',
83
+ /** LoadableWebpackPlugin */
84
+ LOADABLE: 'loadable',
85
+ /** WebpackManifestPlugin */
86
+ MANIFEST: 'webpack-manifest',
87
+ /** ForkTsCheckerWebpackPlugin */
88
+ TS_CHECKER: 'ts-checker',
89
+ /** InlineChunkHtmlPlugin */
90
+ INLINE_HTML: 'inline-html',
91
+ /** WebpackBundleAnalyzer */
92
+ BUNDLE_ANALYZER: 'bundle-analyze',
93
+ /** BottomTemplatePlugin */
94
+ BOTTOM_TEMPLATE: 'bottom-template',
95
+ /** MiniCssExtractPlugin */
96
+ MINI_CSS_EXTRACT: 'mini-css-extract',
97
+ /** ReactFastRefreshPlugin */
98
+ REACT_FAST_REFRESH: 'react-fast-refresh',
99
+ /** ProvidePlugin for node polyfill */
100
+ NODE_POLYFILL_PROVIDE: 'node-polyfill-provide',
101
+ },
102
+ /** Predefined minimizers */
103
+ MINIMIZER: {
104
+ /** TerserWebpackPlugin */
105
+ JS: 'js',
106
+ /** CssMinimizerWebpackPlugin */
107
+ CSS: 'css',
108
+ /** ESBuildPlugin */
109
+ ESBUILD: 'js-css',
110
+ },
111
+ /** Predefined resolve plugins */
112
+ RESOLVE_PLUGIN: {
113
+ /** ModuleScopePlugin */
114
+ MODULE_SCOPE: 'module-scope',
115
+ /** TsConfigPathsPlugin */
116
+ TS_CONFIG_PATHS: 'ts-config-paths',
117
+ },
118
+ };
package/dist/index.d.ts CHANGED
@@ -31,3 +31,4 @@ export * from './emptyDir';
31
31
  export * from './getServerConfig';
32
32
  export * from './ssr';
33
33
  export * from './analyzeProject';
34
+ export * from './chainId';
package/dist/index.js CHANGED
@@ -43,3 +43,4 @@ __exportStar(require("./emptyDir"), exports);
43
43
  __exportStar(require("./getServerConfig"), exports);
44
44
  __exportStar(require("./ssr"), exports);
45
45
  __exportStar(require("./analyzeProject"), exports);
46
+ __exportStar(require("./chainId"), exports);
package/dist/monorepo.js CHANGED
@@ -30,7 +30,11 @@ exports.isPnpmWorkspaces = isPnpmWorkspaces;
30
30
  const isMonorepo = (root) => (0, exports.isLerna)(root) || (0, exports.isYarnWorkspaces)(root) || (0, exports.isPnpmWorkspaces)(root);
31
31
  exports.isMonorepo = isMonorepo;
32
32
  const isModernjsMonorepo = (root) => {
33
- const json = JSON.parse(fs_1.default.readFileSync(path_1.default.join(root, 'package.json'), 'utf8'));
33
+ const pkgJsonPath = path_1.default.join(root, 'package.json');
34
+ if (!fs_1.default.existsSync(pkgJsonPath)) {
35
+ return false;
36
+ }
37
+ const json = JSON.parse(fs_1.default.readFileSync(pkgJsonPath, 'utf8'));
34
38
  const deps = {
35
39
  ...(json.dependencies || {}),
36
40
  ...(json.devDependencies || {}),
@@ -1,6 +1,9 @@
1
+ /// <reference types="node" />
2
+ import os from 'os';
1
3
  interface EntryPoint {
2
4
  entryName: string;
3
5
  }
4
6
  export declare const isSingleEntry: (entrypoints: EntryPoint[]) => boolean;
7
+ export declare const getIpv4Interfaces: () => os.NetworkInterfaceInfo[];
5
8
  export declare const prettyInstructions: (appContext: any, config: any) => string;
6
9
  export {};
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.prettyInstructions = exports.isSingleEntry = void 0;
6
+ exports.prettyInstructions = exports.getIpv4Interfaces = exports.isSingleEntry = void 0;
7
7
  const os_1 = __importDefault(require("os"));
8
8
  const compiled_1 = require("./compiled");
9
9
  const is_1 = require("./is");
@@ -11,20 +11,27 @@ const is_1 = require("./is");
11
11
  const isSingleEntry = (entrypoints) => entrypoints.length === 1 && entrypoints[0].entryName === 'main';
12
12
  exports.isSingleEntry = isSingleEntry;
13
13
  const normalizeUrl = (url) => url.replace(/([^:]\/)\/+/g, '$1');
14
- const getAddressUrls = (protocol = 'http', port) => {
14
+ const getIpv4Interfaces = () => {
15
15
  const interfaces = os_1.default.networkInterfaces();
16
16
  const ipv4Interfaces = [];
17
17
  Object.keys(interfaces).forEach(key => {
18
18
  interfaces[key].forEach(detail => {
19
- if (detail.family === 'IPv4') {
19
+ // 'IPv4' is in Node <= 17, from 18 it's a number 4 or 6
20
+ const familyV4Value = typeof detail.family === 'string' ? 'IPv4' : 4;
21
+ if (detail.family === familyV4Value) {
20
22
  ipv4Interfaces.push(detail);
21
23
  }
22
24
  });
23
25
  });
26
+ return ipv4Interfaces;
27
+ };
28
+ exports.getIpv4Interfaces = getIpv4Interfaces;
29
+ const getAddressUrls = (protocol = 'http', port) => {
30
+ const ipv4Interfaces = (0, exports.getIpv4Interfaces)();
24
31
  return ipv4Interfaces.reduce((memo, detail) => {
25
32
  let type = 'Network: ';
26
33
  let url = `${protocol}://${detail.address}:${port}`;
27
- if (detail.address.includes(`localhost`)) {
34
+ if (detail.address.includes(`localhost`) || detail.internal) {
28
35
  type = 'Local: ';
29
36
  url = `${protocol}://localhost:${port}`;
30
37
  }
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "1.7.5",
14
+ "version": "1.7.6",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/index.d.ts",
17
17
  "main": "./dist/index.js",
@@ -33,6 +33,7 @@
33
33
  "./mime-types": "./compiled/mime-types/index.js",
34
34
  "./strip-ansi": "./compiled/strip-ansi/index.js",
35
35
  "./browserslist": "./compiled/browserslist/index.js",
36
+ "./webpack-chain": "./compiled/webpack-chain/index.js",
36
37
  "./tsconfig-paths": "./compiled/tsconfig-paths/index.js"
37
38
  },
38
39
  "publishConfig": {
@@ -80,6 +81,9 @@
80
81
  "browserslist": [
81
82
  "./compiled/browserslist/index.d.ts"
82
83
  ],
84
+ "webpack-chain": [
85
+ "./compiled/webpack-chain/types/index.d.ts"
86
+ ],
83
87
  "tsconfig-paths": [
84
88
  "./compiled/tsconfig-paths/lib/index.d.ts"
85
89
  ]
@@ -90,7 +94,7 @@
90
94
  "lodash": "^4.17.21"
91
95
  },
92
96
  "devDependencies": {
93
- "@modern-js/types": "1.5.3",
97
+ "@modern-js/types": "1.5.4",
94
98
  "@scripts/build": "0.0.0",
95
99
  "@scripts/jest-config": "0.0.0",
96
100
  "@types/jest": "^27",