@js-toolkit/configs 3.89.0 → 3.90.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/appEnv.d.ts CHANGED
@@ -4,12 +4,16 @@ export type EnvVarType = string | number | boolean | undefined;
4
4
  export interface AppEnvVars {
5
5
  NODE_ENV: NodeEnv;
6
6
  APP_SSR: boolean;
7
+ APP_TEST: boolean;
7
8
  }
9
+ type CustomAppEnvVars = {
10
+ [P in string as `APP_${P}`]: EnvVarType;
11
+ };
8
12
  type ValueGetter<T> = () => T;
9
13
  type ValueOrGetter<T> = T | ValueGetter<T>;
10
14
  export interface AppEnvironment {
11
15
  /** Object with keys and their default values so we can feed into Webpack EnvironmentPlugin. */
12
- raw: AppEnvVars & AnyObject;
16
+ raw: AppEnvVars & CustomAppEnvVars;
13
17
  /** Stringify all values that we can feed into Webpack DefinePlugin. */
14
18
  envStringify(): {
15
19
  'process.env': Record<string, string>;
@@ -20,13 +24,13 @@ export interface AppEnvironment {
20
24
  ssr: boolean;
21
25
  /** Use NODE_ENV environment variable. */
22
26
  dev: boolean;
23
- /** Use NODE_ENV environment variable. */
27
+ /** Use NODE_ENV environment variable and `APP_TEST`. */
24
28
  test: boolean;
25
29
  /** Use NODE_ENV environment variable. */
26
30
  prod: boolean;
27
31
  /** Use NODE_ENV environment variable. */
28
32
  ifDev<T>(devModeValue: ValueOrGetter<T>, elseValue: ValueOrGetter<T>): T;
29
- /** Use NODE_ENV environment variable. */
33
+ /** Use NODE_ENV environment variable and `APP_TEST`. */
30
34
  ifTest<T>(testModeValue: ValueOrGetter<T>, elseValue: ValueOrGetter<T>): T;
31
35
  /** Use NODE_ENV environment variable. */
32
36
  ifProd<T>(prodModeValue: ValueOrGetter<T>, elseValue: ValueOrGetter<T>): T;
package/appEnv.js CHANGED
@@ -1 +1 @@
1
- "use strict";function parseJson(e){if(null==e)return e;try{return JSON.parse(e)}catch(t){return e}}function getAppEnvironment(){const e=/^APP_/i,t=process.env,n=Object.keys(t).filter((t=>e.test(t))).reduce(((e,n)=>(e[n]=parseJson(t[n]),e)),{NODE_ENV:parseJson(t.NODE_ENV||"development"),APP_SSR:!1}),r={raw:n,envStringify(){return{"process.env":Object.keys(this.raw).reduce(((e,t)=>(e[t]=JSON.stringify(this.raw[t]),e)),{})}},has:e=>e in n,get:e=>n[e],get ssr(){return!0===this.raw.APP_SSR},get dev(){return"development"===this.raw.NODE_ENV},get test(){return"test"===this.raw.NODE_ENV},get prod(){return"production"===this.raw.NODE_ENV},ifDev(e,t){return this.dev?"function"==typeof e?e():e:"function"==typeof t?t():t},ifTest(e,t){return this.test?"function"==typeof e?e():e:"function"==typeof t?t():t},ifProd(e,t){return this.prod?"function"==typeof e?e():e:"function"==typeof t?t():t}};return("undefined"==typeof window?global:window).Proxy?new Proxy(r,{get:(e,t)=>"string"!=typeof t||t in e?e[t]:e.raw[t],has:(e,t)=>t in e||t in e.raw}):r}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAppEnvironment=void 0,exports.getAppEnvironment=getAppEnvironment;const appEnv=getAppEnvironment();exports.default=appEnv;
1
+ "use strict";function parseJson(t){if(null==t)return t;try{return JSON.parse(t)}catch(e){return t}}function getAppEnvironment(){const t=/^APP_/i,e=process.env,n=Object.keys(e).filter((e=>t.test(e))).reduce(((t,n)=>(t[n]=parseJson(e[n]),t)),{NODE_ENV:parseJson(e.NODE_ENV||"development"),APP_SSR:!1,APP_TEST:!1}),r={raw:n,envStringify(){return{"process.env":Object.keys(this.raw).reduce(((t,e)=>{const n=e;return t[e]=JSON.stringify(this.raw[n]),t}),{})}},has:t=>t in n,get:t=>n[t],get ssr(){return!0===this.raw.APP_SSR},get dev(){return"development"===this.raw.NODE_ENV},get test(){return"test"===this.raw.NODE_ENV||!0===this.raw.APP_TEST},get prod(){return"production"===this.raw.NODE_ENV},ifDev(t,e){return this.dev?"function"==typeof t?t():t:"function"==typeof e?e():e},ifTest(t,e){return this.test?"function"==typeof t?t():t:"function"==typeof e?e():e},ifProd(t,e){return this.prod?"function"==typeof t?t():t:"function"==typeof e?e():e}};return("undefined"==typeof window?global:window).Proxy?new Proxy(r,{get:(t,e)=>"string"!=typeof e||e in t?t[e]:t.raw[e],has:(t,e)=>e in t||e in t.raw}):r}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAppEnvironment=void 0,exports.getAppEnvironment=getAppEnvironment;const appEnv=getAppEnvironment();exports.default=appEnv;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const getInstalledPlugin_1=require("./getInstalledPlugin");module.exports={presets:[["@babel/preset-env",{loose:!0}]],plugins:[(0,getInstalledPlugin_1.getInstalledPlugin)("@babel/plugin-transform-runtime"),(0,getInstalledPlugin_1.getInstalledPlugin)("@babel/plugin-proposal-decorators",{version:"2023-05"})].filter((e=>!!e))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const getInstalledPlugin_1=require("./getInstalledPlugin");module.exports={presets:[(0,getInstalledPlugin_1.getInstalledPlugin)("@babel/preset-env",{loose:!0})].filter((e=>!!e)),plugins:[(0,getInstalledPlugin_1.getInstalledPlugin)("@babel/plugin-transform-runtime"),(0,getInstalledPlugin_1.getInstalledPlugin)("@babel/plugin-proposal-decorators",{version:"2023-05"})].filter((e=>!!e))};
package/buildConfig.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { type BuildConfigDefaults } from './buildConfigDefaults';
2
2
  export interface BuildConfig extends Omit<BuildConfigDefaults, 'client' | 'server' | 'shared'> {
3
- client: BuildConfigDefaults['client'] | false | undefined;
4
- server: BuildConfigDefaults['server'] | false | undefined;
5
- shared: BuildConfigDefaults['shared'] | false | undefined;
3
+ client: BuildConfigDefaults['client'] | undefined;
4
+ server: BuildConfigDefaults['server'] | undefined;
5
+ shared: BuildConfigDefaults['shared'] | undefined;
6
6
  default: BuildConfigDefaults;
7
7
  envStringify(): {
8
8
  'process.env.buildConfig': string;
package/buildConfig.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBuildConfig=exports.resolveConfigPath=void 0;const buildConfigDefaults_1=__importDefault(require("./buildConfigDefaults"));function resolveConfigPath(e=["build.config"],t=[process.cwd()]){let r="";for(let i=0,o=e[i];i<e.length;i+=1)try{if(r=require.resolve(`./${o}`,{paths:t}),r)return r}catch(e){}return r}function merge(e,t){return Array.from(new Set([...Object.getOwnPropertyNames(e),...Object.getOwnPropertyNames(t)])).reduce(((r,i)=>{var o,n;const u=i;return Array.isArray(e[u])||Array.isArray(t[u])?r[u]=null!==(o=t[u])&&void 0!==o?o:e[u]:"object"==typeof e[u]&&"object"==typeof t[u]?r[u]=merge(e[u],null!==(n=t[u])&&void 0!==n?n:{}):r[u]=u in t?t[u]:e[u],r}),{})}function getBuildConfig(e=resolveConfigPath()){const t=process.env.buildConfig||(e?merge(buildConfigDefaults_1.default,require(e)):{output:buildConfigDefaults_1.default.output,client:!1,server:!1,shared:!1});return Object.assign(Object.assign({},t),{default:buildConfigDefaults_1.default,envStringify(){return{"process.env.buildConfig":JSON.stringify(this)}}})}exports.resolveConfigPath=resolveConfigPath,exports.getBuildConfig=getBuildConfig;const buildConfig=getBuildConfig();exports.default=buildConfig;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBuildConfig=exports.resolveConfigPath=void 0;const buildConfigDefaults_1=__importDefault(require("./buildConfigDefaults"));function resolveConfigPath(e=["build.config"],t=[process.cwd()]){let i="";for(let r=0,o=e[r];r<e.length;r+=1)try{if(i=require.resolve(`./${o}`,{paths:t}),i)return i}catch(e){}return i}function merge(e,t){return Array.from(new Set([...Object.getOwnPropertyNames(e),...Object.getOwnPropertyNames(t)])).reduce(((i,r)=>{var o,n;const s=r;return Array.isArray(e[s])||Array.isArray(t[s])?i[s]=null!==(o=t[s])&&void 0!==o?o:e[s]:"object"==typeof e[s]&&"object"==typeof t[s]?i[s]=merge(e[s],null!==(n=t[s])&&void 0!==n?n:{}):i[s]=s in t?t[s]:e[s],i}),{})}function getBuildConfig(e=resolveConfigPath()){const t=process.env.buildConfig||(e?merge(buildConfigDefaults_1.default,require(e)):Object.assign(Object.assign({},buildConfigDefaults_1.default),{client:void 0,server:void 0,shared:void 0}));return Object.assign(Object.assign({},t),{default:buildConfigDefaults_1.default,envStringify(){return{"process.env.buildConfig":JSON.stringify(this)}}})}exports.resolveConfigPath=resolveConfigPath,exports.getBuildConfig=getBuildConfig;const buildConfig=getBuildConfig();exports.default=buildConfig;
@@ -12,8 +12,6 @@ export declare function getClientConfig(root?: string): {
12
12
  staticContent: StaticContentOptions;
13
13
  /** Generating html options. */
14
14
  html: HtmlOptions | HtmlOptions[];
15
- /** Used by eslint webpack resolver. */
16
- webpackConfig: string;
17
15
  /** Used by webpack loaders and plugins. */
18
16
  tsconfig: string;
19
17
  /** Plug'n'Play resolver for Webpack. */
@@ -41,8 +39,6 @@ export declare function getClientConfig(root?: string): {
41
39
  export declare function getServerConfig(root?: string): {
42
40
  root: string;
43
41
  sources: string;
44
- /** Used by eslint webpack resolver. */
45
- webpackConfig: string;
46
42
  /** Used by webpack loaders and plugins. */
47
43
  tsconfig: string;
48
44
  output: {
@@ -59,6 +55,9 @@ export type BuildConfigDefaults = {
59
55
  output: {
60
56
  root: string;
61
57
  };
58
+ nodeModules: {
59
+ root: string;
60
+ };
62
61
  client: ReturnType<typeof getClientConfig>;
63
62
  server: ReturnType<typeof getServerConfig>;
64
63
  shared: ReturnType<typeof getSharedConfig>;
@@ -1 +1 @@
1
- "use strict";function getClientConfig(e="client"){return{root:e,sources:"src",assets:"src/assets",staticContent:["public"],html:[],webpackConfig:"",tsconfig:"tsconfig.json",webpackPnpEnabled:!1,output:{root:e,js:"js",styles:"styles",assets:"assets",external:"lib",publicPath:"/",assetManifest:{fileName:"",filterTemplate:{}},sw:{swDest:""}}}}function getServerConfig(e="server"){return{root:e,sources:"src",webpackConfig:"",tsconfig:"tsconfig.json",output:{root:e,publicPath:"/"}}}function getSharedConfig(e="shared"){return{root:e,sources:"src",tsconfig:"tsconfig.json"}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSharedConfig=exports.getServerConfig=exports.getClientConfig=void 0,exports.getClientConfig=getClientConfig,exports.getServerConfig=getServerConfig,exports.getSharedConfig=getSharedConfig;const buildConfigDefaults={output:{root:"dist"},client:getClientConfig(),server:getServerConfig(),shared:getSharedConfig()};exports.default=Object.freeze(buildConfigDefaults);
1
+ "use strict";function getClientConfig(e="client"){return{root:e,sources:"src",assets:"src/assets",staticContent:["public"],html:[],tsconfig:"tsconfig.json",webpackPnpEnabled:!1,output:{root:e,js:"js",styles:"styles",assets:"assets",external:"lib",publicPath:"/",assetManifest:{fileName:"",filterTemplate:{}},sw:{swDest:""}}}}function getServerConfig(e="server"){return{root:e,sources:"src",tsconfig:"tsconfig.json",output:{root:e,publicPath:"/"}}}function getSharedConfig(e="shared"){return{root:e,sources:"src",tsconfig:"tsconfig.json"}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSharedConfig=exports.getServerConfig=exports.getClientConfig=void 0,exports.getClientConfig=getClientConfig,exports.getServerConfig=getServerConfig,exports.getSharedConfig=getSharedConfig;const buildConfigDefaults={output:{root:"build"},nodeModules:{root:"node_modules"},client:getClientConfig(),server:getServerConfig(),shared:getSharedConfig()};exports.default=Object.freeze(buildConfigDefaults);
package/eslint/common.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,s,r){void 0===r&&(r=s);var n=Object.getOwnPropertyDescriptor(t,s);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,r,n)}:function(e,t,s,r){void 0===r&&(r=s),e[r]=t[s]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&__createBinding(t,e,s);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const fs_1=__importDefault(require("fs")),eslint_config_airbnb_base_1=__importDefault(require("eslint-config-airbnb-base")),style_1=__importDefault(require("eslint-config-airbnb-base/rules/style")),paths_1=__importStar(require("../paths")),getInstalledPackage_1=require("../getInstalledPackage"),consts_1=require("./consts"),hasImportPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import"),hasTsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-tsdoc"),airbnbExtends=hasImportPlugin?eslint_config_airbnb_base_1.default.extends:eslint_config_airbnb_base_1.default.extends.filter((e=>!e.includes("rules/imports.js"))),config={extends:[...airbnbExtends,"plugin:prettier/recommended"],env:{es2020:!0},parser:"@babel/eslint-parser",parserOptions:{ecmaVersion:2020},reportUnusedDisableDirectives:!0,settings:{"import/resolver":{node:{extensions:paths_1.moduleExtensions.filter((e=>!e.includes("ts"))),moduleDirectory:["node_modules",paths_1.default.client.sources,paths_1.default.server.sources,paths_1.default.shared.sources].filter((e=>!!e))},typescript:{}},"import/extensions":paths_1.moduleExtensions.filter((e=>!e.includes("ts")))},rules:Object.assign({"no-console":"off","no-unused-expressions":["error",{allowShortCircuit:!0}],"lines-between-class-members":["error","always",{exceptAfterSingleLine:!0}],"func-names":["warn","as-needed",{generators:"as-needed"}],"no-restricted-exports":["error",{restrictedNamedExports:["then"],restrictDefaultExports:{named:!0,namedFrom:!0,namespaceFrom:!0,defaultFrom:!1}}]},hasImportPlugin&&{"import/no-extraneous-dependencies":["error",{devDependencies:!0}],"import/extensions":["error","ignorePackages",paths_1.moduleExtensions.reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.substring(1)]:"never"})),{"":"never"})],"import/order":["error",{groups:["builtin","external","internal","parent","sibling","index","object"]}],"import/prefer-default-export":"off"}),overrides:[{files:paths_1.moduleExtensions.filter((e=>e.includes("ts"))).map((e=>`*${e}`)),extends:["plugin:@typescript-eslint/recommended","plugin:@typescript-eslint/recommended-requiring-type-checking"],parser:"@typescript-eslint/parser",parserOptions:{project:fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"},plugins:["@typescript-eslint",...hasTsDocPlugin?["eslint-plugin-tsdoc"]:[]],settings:{"import/parsers":{"@typescript-eslint/parser":paths_1.moduleExtensions},"import/resolver":{node:{extensions:paths_1.moduleExtensions},typescript:{project:fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"}},"import/extensions":paths_1.moduleExtensions,"import/external-module-folders":["node_modules","node_modules/@types"]},rules:Object.assign(Object.assign(Object.assign({"no-restricted-syntax":Array.isArray(style_1.default.rules["no-restricted-syntax"])?style_1.default.rules["no-restricted-syntax"].filter((e=>"object"!=typeof e||"ForOfStatement"!==e.selector)):style_1.default.rules["no-restricted-syntax"],"no-useless-constructor":"off","no-void":["error",{allowAsStatement:!0}]},hasImportPlugin&&{"import/export":"off","import/named":"off"}),{"@typescript-eslint/explicit-member-accessibility":"off","@typescript-eslint/explicit-function-return-type":["warn",{allowExpressions:!0,allowTypedFunctionExpressions:!0,allowHigherOrderFunctions:!0,allowDirectConstAssertionInArrowFunctions:!0,allowConciseArrowFunctionExpressionsStartingWithVoid:!0}]}),hasTsDocPlugin&&{"tsdoc/syntax":"warn"}),overrides:[{files:["*.d.ts"],rules:{"max-classes-per-file":"off"}}]}]};module.exports=config;
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,s,r){void 0===r&&(r=s);var n=Object.getOwnPropertyDescriptor(t,s);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,r,n)}:function(e,t,s,r){void 0===r&&(r=s),e[r]=t[s]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&__createBinding(t,e,s);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const fs_1=__importDefault(require("fs")),eslint_config_airbnb_base_1=__importDefault(require("eslint-config-airbnb-base")),style_1=__importDefault(require("eslint-config-airbnb-base/rules/style")),paths_1=__importStar(require("../paths")),getInstalledPackage_1=require("../getInstalledPackage"),consts_1=require("./consts"),hasImportPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import"),hasTsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-tsdoc"),airbnbExtends=hasImportPlugin?eslint_config_airbnb_base_1.default.extends:eslint_config_airbnb_base_1.default.extends.filter((e=>!e.includes("rules/imports.js"))),config={extends:[...airbnbExtends,"plugin:prettier/recommended"],env:{es2020:!0},parser:"@babel/eslint-parser",parserOptions:{ecmaVersion:2020},reportUnusedDisableDirectives:!0,settings:{"import/resolver":{node:{extensions:(0,paths_1.getJSExtensions)(),moduleDirectory:["node_modules",paths_1.default.nodeModules.root,paths_1.default.client.sources,paths_1.default.server.sources,paths_1.default.shared.sources].filter((e=>!!e))},typescript:{}},"import/extensions":(0,paths_1.getJSExtensions)()},rules:Object.assign({"no-console":"off","no-unused-expressions":["error",{allowShortCircuit:!0}],"lines-between-class-members":["error","always",{exceptAfterSingleLine:!0}],"func-names":["warn","as-needed",{generators:"as-needed"}],"no-restricted-exports":["error",{restrictedNamedExports:["then"],restrictDefaultExports:{named:!0,namedFrom:!0,namespaceFrom:!0,defaultFrom:!1}}]},hasImportPlugin&&{"import/no-extraneous-dependencies":["error",{devDependencies:!0}],"import/extensions":["error","ignorePackages",paths_1.moduleExtensions.reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.substring(1)]:"never"})),{"":"never"})],"import/order":["error",{groups:["builtin","external","internal","parent","sibling","index","object"]}],"import/prefer-default-export":"off"}),overrides:[{files:(0,paths_1.getTSExtensions)().map((e=>`*${e}`)),extends:["plugin:@typescript-eslint/recommended","plugin:@typescript-eslint/recommended-requiring-type-checking"],parser:"@typescript-eslint/parser",parserOptions:{project:fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"},plugins:["@typescript-eslint",...hasTsDocPlugin?["eslint-plugin-tsdoc"]:[]],settings:{"import/parsers":{"@typescript-eslint/parser":paths_1.moduleExtensions},"import/resolver":{node:{extensions:paths_1.moduleExtensions},typescript:{project:fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"}},"import/extensions":paths_1.moduleExtensions,"import/external-module-folders":["node_modules","node_modules/@types"]},rules:Object.assign(Object.assign(Object.assign({"no-restricted-syntax":Array.isArray(style_1.default.rules["no-restricted-syntax"])?style_1.default.rules["no-restricted-syntax"].filter((e=>"object"!=typeof e||"ForOfStatement"!==e.selector)):style_1.default.rules["no-restricted-syntax"],"no-useless-constructor":"off","no-void":["error",{allowAsStatement:!0}]},hasImportPlugin&&{"import/export":"off","import/named":"off"}),{"@typescript-eslint/explicit-member-accessibility":"off","@typescript-eslint/explicit-function-return-type":["warn",{allowExpressions:!0,allowTypedFunctionExpressions:!0,allowHigherOrderFunctions:!0,allowDirectConstAssertionInArrowFunctions:!0,allowConciseArrowFunctionExpressionsStartingWithVoid:!0}]}),hasTsDocPlugin&&{"tsdoc/syntax":"warn"}),overrides:[{files:["*.d.ts"],rules:{"max-classes-per-file":"off"}}]}]};module.exports=config;
package/eslint/node.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,s)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),consts_1=require("./consts"),enabled=buildConfig_1.default.server&&fs_1.default.existsSync(paths_1.default.server.root),config={extends:[require.resolve("./common")],env:{node:!0},settings:{"import/resolver":Object.assign({node:{}},enabled&&buildConfig_1.default.server&&buildConfig_1.default.server.webpackConfig?{webpack:{config:buildConfig_1.default.server.webpackConfig}}:void 0)},overrides:[{files:paths_1.moduleExtensions.filter((e=>e.includes("ts"))).map((e=>`*${e}`)),parserOptions:{project:(()=>{if(enabled){const e=path_1.default.join(paths_1.default.server.root,consts_1.eslintTsProject);if(fs_1.default.existsSync(e))return e;if(fs_1.default.existsSync(paths_1.default.server.tsconfig))return paths_1.default.server.tsconfig}return fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"})()}}]};module.exports=config;
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,s){void 0===s&&(s=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,s,i)}:function(e,t,r,s){void 0===s&&(s=r),e[s]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),consts_1=require("./consts"),enabled=buildConfig_1.default.server&&fs_1.default.existsSync(paths_1.default.server.root),config={extends:[require.resolve("./common")],env:{node:!0},overrides:[{files:(0,paths_1.getTSExtensions)().map((e=>`*${e}`)),parserOptions:{project:(()=>{if(enabled){const e=path_1.default.join(paths_1.default.server.root,consts_1.eslintTsProject);if(fs_1.default.existsSync(e))return e;if(fs_1.default.existsSync(paths_1.default.server.tsconfig))return paths_1.default.server.tsconfig}return fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"})()}}]};module.exports=config;
package/eslint/react.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,s){void 0===s&&(s=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,s,i)}:function(e,t,n,s){void 0===s&&(s=n),e[s]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),eslint_config_airbnb_1=__importDefault(require("eslint-config-airbnb")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),getInstalledPackage_1=require("../getInstalledPackage"),consts_1=require("./consts"),enabled=buildConfig_1.default.client&&fs_1.default.existsSync(paths_1.default.client.root),hasReactPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-react"),hasA11yPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-jsx-a11y"),hasReactHooksPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-react-hooks"),hasMobxPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-mobx"),airbnbExtends=eslint_config_airbnb_1.default.extends.filter((e=>!(e.includes("eslint-config-airbnb-base")||!hasReactPlugin&&e.includes("rules/react.js")||!hasA11yPlugin&&e.includes("rules/react-a11y.js")))),config={extends:[...airbnbExtends,require.resolve("./common"),...hasReactHooksPlugin?["plugin:react-hooks/recommended"]:[],...hasMobxPlugin?["plugin:mobx/recommended"]:[]],env:{browser:!0},settings:{"import/resolver":Object.assign({node:{}},enabled&&buildConfig_1.default.client&&buildConfig_1.default.client.webpackConfig?{webpack:{config:buildConfig_1.default.client.webpackConfig}}:void 0)},rules:Object.assign(Object.assign(Object.assign({},hasReactPlugin&&{"react/prop-types":"off","react/sort-comp":"off","react/destructuring-assignment":["error","always",{ignoreClassFields:!0}],"react/jsx-filename-extension":["error",{extensions:[".jsx"]}],"react/jsx-wrap-multilines":"off","react/jsx-props-no-spreading":"off","react/function-component-definition":["error",{namedComponents:"function-declaration",unnamedComponents:"arrow-function"}]}),hasA11yPlugin&&{"jsx-a11y/anchor-is-valid":["error",{specialLink:["to"]}],"jsx-a11y/label-has-for":["error",{allowChildren:!0}]}),hasReactHooksPlugin&&{"react-hooks/exhaustive-deps":"error"}),overrides:[{files:paths_1.moduleExtensions.filter((e=>e.includes("ts"))).map((e=>`*${e}`)),parserOptions:{project:(()=>{if(enabled){const e=path_1.default.join(paths_1.default.client.root,consts_1.eslintTsProject);if(fs_1.default.existsSync(e))return e;if(fs_1.default.existsSync(paths_1.default.client.tsconfig))return paths_1.default.client.tsconfig}return fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"})()},rules:Object.assign({},hasReactPlugin&&{"react/jsx-filename-extension":["error",{extensions:paths_1.moduleExtensions.filter((e=>e.includes("sx")))}]})}]};module.exports=config;
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,s){void 0===s&&(s=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,s,a)}:function(e,t,n,s){void 0===s&&(s=n),e[s]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),eslint_config_airbnb_1=__importDefault(require("eslint-config-airbnb")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),getInstalledPackage_1=require("../getInstalledPackage"),consts_1=require("./consts"),enabled=buildConfig_1.default.client&&fs_1.default.existsSync(paths_1.default.client.root),hasReactPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-react"),hasA11yPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-jsx-a11y"),hasReactHooksPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-react-hooks"),hasMobxPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-mobx"),airbnbExtends=eslint_config_airbnb_1.default.extends.filter((e=>!(e.includes("eslint-config-airbnb-base")||!hasReactPlugin&&e.includes("rules/react.js")||!hasA11yPlugin&&e.includes("rules/react-a11y.js")))),config={extends:[...airbnbExtends,require.resolve("./common"),...hasReactHooksPlugin?["plugin:react-hooks/recommended"]:[],...hasMobxPlugin?["plugin:mobx/recommended"]:[]],env:{browser:!0},rules:Object.assign(Object.assign(Object.assign({},hasReactPlugin&&{"react/prop-types":"off","react/sort-comp":"off","react/destructuring-assignment":["error","always",{ignoreClassFields:!0}],"react/jsx-filename-extension":["error",{extensions:[".jsx"]}],"react/jsx-wrap-multilines":"off","react/jsx-props-no-spreading":"off","react/function-component-definition":["error",{namedComponents:"function-declaration",unnamedComponents:"arrow-function"}]}),hasA11yPlugin&&{"jsx-a11y/anchor-is-valid":["error",{specialLink:["to"]}],"jsx-a11y/label-has-for":["error",{allowChildren:!0}]}),hasReactHooksPlugin&&{"react-hooks/exhaustive-deps":"error"}),overrides:[{files:(0,paths_1.getTSExtensions)().map((e=>`*${e}`)),parserOptions:{project:(()=>{if(enabled){const e=path_1.default.join(paths_1.default.client.root,consts_1.eslintTsProject);if(fs_1.default.existsSync(e))return e;if(fs_1.default.existsSync(paths_1.default.client.tsconfig))return paths_1.default.client.tsconfig}return fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"})()},rules:Object.assign({},hasReactPlugin&&{"react/jsx-filename-extension":["error",{extensions:(0,paths_1.getReactExtensions)()}]})}]};module.exports=config;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@js-toolkit/configs",
3
- "version": "3.89.0",
3
+ "version": "3.90.0",
4
4
  "description": "Preconfigured configurations",
5
5
  "author": "VZH",
6
6
  "license": "MIT",
@@ -19,11 +19,11 @@
19
19
  "minor-publish": "yarn run build && yarn run minify && npm version minor --no-workspaces-update -m 'v%s' && yarn run copy && cd ./dist && npm publish --access public && git push --follow-tags"
20
20
  },
21
21
  "devDependencies": {
22
- "@types/eslint": "^8.56.1",
22
+ "@types/eslint": "^8.56.2",
23
23
  "@types/webpack-node-externals": "^3.0.4",
24
- "@typescript-eslint/eslint-plugin": "^6.18.1",
25
- "@typescript-eslint/parser": "^6.18.1",
26
- "copy-webpack-plugin": "^11.0.0",
24
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
25
+ "@typescript-eslint/parser": "^6.19.0",
26
+ "copy-webpack-plugin": "^12.0.2",
27
27
  "copyfiles": "^2.4.1",
28
28
  "eslint": "^8.56.0",
29
29
  "eslint-config-airbnb": "^19.0.4",
@@ -31,11 +31,11 @@
31
31
  "eslint-config-prettier": "^9.1.0",
32
32
  "eslint-plugin-import": "^2.29.1",
33
33
  "eslint-plugin-jsx-a11y": "^6.8.0",
34
- "eslint-plugin-prettier": "^5.1.2",
34
+ "eslint-plugin-prettier": "^5.1.3",
35
35
  "eslint-plugin-react": "^7.33.2",
36
36
  "eslint-plugin-react-hooks": "^4.6.0",
37
37
  "html-webpack-plugin": "^5.6.0",
38
- "prettier": "^3.1.1",
38
+ "prettier": "^3.2.4",
39
39
  "rimraf": "^5.0.5",
40
40
  "typescript": "^5.3.3",
41
41
  "webpack": "^5.89.0",
package/paths.d.ts CHANGED
@@ -1,9 +1,14 @@
1
1
  export declare const moduleExtensions: string[];
2
+ export declare function getTSExtensions(): string[];
3
+ export declare function getJSExtensions(): string[];
4
+ export declare function getReactExtensions(): string[];
2
5
  export declare function getPaths(baseDir?: string, buildConfig?: import("./buildConfig").BuildConfig): Readonly<{
3
6
  root: string;
4
7
  nodeModules: {
5
8
  root: string;
6
9
  };
10
+ /** Any installed package. */
11
+ getNodeModulesRoot(packageName: string): string;
7
12
  output: {
8
13
  root: string;
9
14
  };
@@ -41,6 +46,8 @@ declare const paths: Readonly<{
41
46
  nodeModules: {
42
47
  root: string;
43
48
  };
49
+ /** Any installed package. */
50
+ getNodeModulesRoot(packageName: string): string;
44
51
  output: {
45
52
  root: string;
46
53
  };
package/paths.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPaths=exports.moduleExtensions=void 0;const path_1=__importDefault(require("path")),buildConfig_1=require("./buildConfig");function getPaths(t=process.cwd(),o=(0,buildConfig_1.getBuildConfig)()){return Object.freeze({root:t,nodeModules:{root:(()=>{const o="node_modules";try{const e=__dirname.indexOf(o);return e>=0?__dirname.substring(0,e+12):path_1.default.resolve(t,o)}catch(e){return path_1.default.resolve(t,o)}})()},output:{root:path_1.default.resolve(t,o.output.root)},client:(()=>{const{client:e}=o;return e?{root:path_1.default.resolve(t,e.root),sources:path_1.default.resolve(t,e.root,e.sources),assets:path_1.default.resolve(t,e.root,e.assets),staticContent:e.staticContent.map((o=>{const s="string"==typeof o?{path:o}:o;return path_1.default.isAbsolute(s.path)?s:Object.assign(Object.assign({},s),{path:path_1.default.resolve(t,e.root,s.path)})})),tsconfig:path_1.default.resolve(t,e.root,e.tsconfig),output:{path:path_1.default.resolve(t,o.output.root,e.output.root),jsPath:path_1.default.resolve(t,o.output.root,e.output.root,e.output.js)}}:{root:"",sources:"",assets:"",staticContent:[],tsconfig:"",output:{path:"",jsPath:""}}})(),server:(()=>{const{server:e}=o;return e?{root:path_1.default.resolve(t,e.root),sources:path_1.default.resolve(t,e.root,e.sources),tsconfig:path_1.default.resolve(t,e.root,e.tsconfig),output:{path:path_1.default.resolve(t,o.output.root,e.output.root)}}:{root:"",sources:"",tsconfig:"",output:{path:""}}})(),shared:(()=>{const{shared:e}=o;return e?{root:path_1.default.resolve(t,e.root),sources:path_1.default.resolve(t,e.root,e.sources),tsconfig:path_1.default.resolve(t,e.root,e.tsconfig)}:{root:"",sources:"",tsconfig:""}})()})}exports.moduleExtensions=[".js",".mjs",".cjs",".jsx",".ts",".tsx",".d.ts"],exports.getPaths=getPaths;const paths=getPaths();exports.default=paths;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPaths=exports.getReactExtensions=exports.getJSExtensions=exports.getTSExtensions=exports.moduleExtensions=void 0;const path_1=__importDefault(require("path")),buildConfig_1=require("./buildConfig");function getTSExtensions(){return exports.moduleExtensions.filter((t=>t.includes("ts")))}function getJSExtensions(){return exports.moduleExtensions.filter((t=>t.includes("js")))}function getReactExtensions(){return exports.moduleExtensions.filter((t=>t.includes("sx")))}function getPaths(t=process.cwd(),e=(0,buildConfig_1.getBuildConfig)()){return Object.freeze({root:t,nodeModules:{root:(()=>{const o=e.nodeModules.root;try{const e=__dirname.indexOf(o);return e>=0?__dirname.substring(0,e+o.length):path_1.default.resolve(t,o)}catch(e){return path_1.default.resolve(t,o)}})()},getNodeModulesRoot(t){const e=require.resolve(t),o="node_modules";return e.substring(0,e.indexOf(o)+12)},output:{root:path_1.default.resolve(t,e.output.root)},client:(()=>{const{client:o}=e;return o?{root:path_1.default.resolve(t,o.root),sources:path_1.default.resolve(t,o.root,o.sources),assets:path_1.default.resolve(t,o.root,o.assets),staticContent:o.staticContent.map((e=>{const s="string"==typeof e?{path:e}:e;return path_1.default.isAbsolute(s.path)?s:Object.assign(Object.assign({},s),{path:path_1.default.resolve(t,o.root,s.path)})})),tsconfig:path_1.default.resolve(t,o.root,o.tsconfig),output:{path:path_1.default.resolve(t,e.output.root,o.output.root),jsPath:path_1.default.resolve(t,e.output.root,o.output.root,o.output.js)}}:{root:"",sources:"",assets:"",staticContent:[],tsconfig:"",output:{path:"",jsPath:""}}})(),server:(()=>{const{server:o}=e;return o?{root:path_1.default.resolve(t,o.root),sources:path_1.default.resolve(t,o.root,o.sources),tsconfig:path_1.default.resolve(t,o.root,o.tsconfig),output:{path:path_1.default.resolve(t,e.output.root,o.output.root)}}:{root:"",sources:"",tsconfig:"",output:{path:""}}})(),shared:(()=>{const{shared:o}=e;return o?{root:path_1.default.resolve(t,o.root),sources:path_1.default.resolve(t,o.root,o.sources),tsconfig:path_1.default.resolve(t,o.root,o.tsconfig)}:{root:"",sources:"",tsconfig:""}})()})}exports.moduleExtensions=[".js",".mjs",".cjs",".jsx",".ts",".tsx",".d.ts"],exports.getTSExtensions=getTSExtensions,exports.getJSExtensions=getJSExtensions,exports.getReactExtensions=getReactExtensions,exports.getPaths=getPaths;const paths=getPaths();exports.default=paths;
@@ -1 +1 @@
1
- "use strict";var __rest=this&&this.__rest||function(e,t){var s={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(s[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a<o.length;a++)t.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(s[o[a]]=e[o[a]])}return s},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.prepareRules=exports.clientDefaultRules=void 0;const path_1=__importDefault(require("path")),appEnv_1=__importDefault(require("../appEnv")),paths_1=__importDefault(require("../paths")),buildConfig_1=__importDefault(require("../buildConfig")),common_config_1=__importDefault(require("./common.config")),loaders_1=require("./loaders"),nodeRequire_1=__importDefault(require("./nodeRequire"));function containsLoader(e,t){const s=e=>"string"==typeof e?e.includes(t):Array.isArray(e)?e.some(s):!("function"==typeof e||!e||!e.loader)&&e.loader.includes(t);return Object.getOwnPropertyNames(e).some((t=>{const o=e[t];return o&&s(o.loader||o.use)}))}function prepareRules(e,t){return Object.entries(e).reduce(((e,[s,o])=>("function"==typeof o&&s in t&&t[s]?e[s]=o(t[s]):e[s]=o,e)),{})}function getPnpWebpackPlugin(){return(0,nodeRequire_1.default)("pnp-webpack-plugin")}function normalizeHtml(e){return Array.isArray(e)?e:[e]}exports.clientDefaultRules={jsRule:{test:/\.m?jsx?$/,include:[paths_1.default.client.sources,paths_1.default.shared.sources].filter((e=>!!e)),use:(0,loaders_1.babelLoader)()},tsBaseRule:{test:/\.tsx?$/,include:[paths_1.default.client.sources,paths_1.default.shared.sources].filter((e=>!!e))},cssRule:{test:/\.css$/,include:[paths_1.default.client.sources,path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"@js-toolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@js-toolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"reflexy")],use:(0,loaders_1.css)()},cssNodeModulesRule:{test:/\.css$/,include:[paths_1.default.nodeModules.root],exclude:[path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"@js-toolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@js-toolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"reflexy")],use:(0,loaders_1.cssNodeModules)()},svgRule:{test:/\.svg$/,include:[paths_1.default.client.sources,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)({limit:void 0})},fontRule:{test:/\.(eot|ttf|woff|woff2|otf)$/,include:[paths_1.default.client.assets,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)()},assetsRule:{test:/\.(png|jpg|gif|ico)$/,include:[paths_1.default.client.assets,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)()}},exports.prepareRules=prepareRules;const clientBuildConfig=buildConfig_1.default.client||buildConfig_1.default.default.client;exports.default=e=>{var t,s,o,{outputPath:a=paths_1.default.client.output.path,outputPublicPath:l=clientBuildConfig.output.publicPath,outputJsDir:n=clientBuildConfig.output.js,hash:i=!0,chunkSuffix:u=".chunk",typescript:r}=e,d=e.rules,c=void 0===d?{}:d,{tsBaseRule:p}=c,f=__rest(c,["tsBaseRule"]),h=__rest(e,["outputPath","outputPublicPath","outputJsDir","hash","chunkSuffix","typescript","rules"]);const _=Object.assign({configFile:paths_1.default.client.tsconfig,loader:loaders_1.TsLoaderType.Default,loaderOptions:{},forkedChecks:!1,checkerOptions:{},threadLoader:!1,threadLoaderOptions:{}},"object"==typeof r?r:void 0),{tsBaseRule:g}=exports.clientDefaultRules,m=__rest(exports.clientDefaultRules,["tsBaseRule"]),b=Object.assign({tsRule:Object.assign(Object.assign(Object.assign({},g),p),{use:(0,loaders_1.getTsLoader)(Object.assign(Object.assign({tsconfig:_.configFile,forkedChecks:_.forkedChecks,useThreadLoader:_.threadLoader,threadLoaderOptions:_.threadLoaderOptions},_.loaderOptions),{loaderType:_.loader}))})},m),j=prepareRules(f,b),O=Object.assign(Object.assign({},b),j);return(0,common_config_1.default)(Object.assign(Object.assign({outputPath:a,outputPublicPath:l,outputJsDir:n,hash:i,chunkSuffix:u,typescript:r?Object.assign(Object.assign({},_),{checkerOptions:Object.assign(Object.assign({},_.checkerOptions),{typescript:Object.assign(Object.assign({},_.checkerOptions.typescript),{diagnosticsOptions:Object.assign({syntactic:_.threadLoader},null===(t=_.checkerOptions.typescript)||void 0===t?void 0:t.diagnosticsOptions)})})}):void 0,name:clientBuildConfig.root,target:"web",context:paths_1.default.client.sources,stats:appEnv_1.default.ifDev("minimal",void 0)},h),{resolve:Object.assign(Object.assign({},h.resolve),{modules:[paths_1.default.client.sources,...h.resolve&&h.resolve.modules||[]],alias:Object.assign(Object.assign({},paths_1.default.shared.sources?{shared:paths_1.default.shared.sources}:void 0),h.resolve&&h.resolve.alias||void 0),plugins:[...clientBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin()]:[],...h.resolve&&h.resolve.plugins||[]]}),resolveLoader:Object.assign(Object.assign({},h.resolveLoader),{plugins:[...clientBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin().moduleLoader(module)]:[],...h.resolveLoader&&h.resolveLoader.plugins||[]]}),module:Object.assign(Object.assign({},h.module),{rules:[...Object.getOwnPropertyNames(O).map((e=>O[e]||{})),...normalizeHtml(clientBuildConfig.html).some((({template:e})=>e&&e.endsWith(".pug")))?[{test:/\.pug$/,use:{loader:"pug-loader"}}]:[],...h.module&&h.module.rules||[]]}),plugins:[...(()=>{const e=normalizeHtml(clientBuildConfig.html);return e.filter((e=>!!e.template)).map((e=>{var{inject:t,template:s}=e,o=__rest(e,["inject","template"]);return new((0,nodeRequire_1.default)("html-webpack-plugin"))(Object.assign({inject:null!=t&&t,template:path_1.default.join(paths_1.default.client.sources,s)},o))}))})(),containsLoader(O,loaders_1.cssExtractLoader)&&(()=>{const e=(0,nodeRequire_1.default)("extract-css-chunks-webpack-plugin"),t=!0===i||"object"==typeof i&&i.entry,s=!0===i||"object"==typeof i&&i.chunk,o=appEnv_1.default.prod&&t?".[contenthash:8]":"",a=appEnv_1.default.prod&&s?".[contenthash:8]":"",l=clientBuildConfig.output.styles;return new e({filename:`${l}/[name]${o}.css`,chunkFilename:`${l}/[name]${a}${null!=u?u:""}.css`})})(),(null===(o=null===(s=h.optimization)||void 0===s?void 0:s.minimize)||void 0===o||o)&&containsLoader(O,loaders_1.cssExtractLoader)&&new((0,nodeRequire_1.default)("optimize-css-assets-webpack-plugin"))({cssProcessorPluginOptions:{preset:["default",{discardComments:{removeAll:!0}}]}}),clientBuildConfig.output.assetManifest.fileName&&(()=>{const{fileName:e,filterTemplate:t}=clientBuildConfig.output.assetManifest,s=!!t&&!!Object.getOwnPropertyNames(t).length;return new((0,nodeRequire_1.default)("webpack-manifest-plugin"))({fileName:e,filter:s?e=>Object.getOwnPropertyNames(t).every((s=>!(s in e)||e[s]===t[s])):void 0})})(),appEnv_1.default.prod&&clientBuildConfig.output.sw.swDest&&(()=>{var e;const{GenerateSW:t}=(0,nodeRequire_1.default)("workbox-webpack-plugin"),s=normalizeHtml(clientBuildConfig.html),o=1===s.length?s[0].filename:null===(e=s.find((({main:e})=>!!e)))||void 0===e?void 0:e.filename;return new t(Object.assign({clientsClaim:!0,importWorkboxFrom:"cdn",exclude:[/\.map$/,new RegExp(`${clientBuildConfig.output.assetManifest.fileName}$`)],navigateFallback:o&&"string"==typeof o?`${clientBuildConfig.output.publicPath}${o}`:void 0,navigateFallbackBlacklist:[/^\/_/,/\/[^/]+\.[^/]+$/]},clientBuildConfig.output.sw))})(),appEnv_1.default.prod&&paths_1.default.client.staticContent.length>0&&(()=>{const e=paths_1.default.client.staticContent.filter((e=>e.path!==paths_1.default.client.root&&e.path!==paths_1.default.client.sources));if(0===e.length)return;return new((0,nodeRequire_1.default)("copy-webpack-plugin"))({patterns:e.map((e=>{var{path:t,ignore:s}=e,o=__rest(e,["path","ignore"]);return Object.assign(Object.assign({from:t},s&&{globOptions:{ignore:s}}),o)}))})})(),...h.plugins||[]].filter(Boolean),devServer:Object.assign({static:paths_1.default.client.staticContent.map((({path:e,ignore:t})=>Object.assign({directory:e},t&&{watch:{ignored:t}}))),historyApiFallback:!0,host:"0.0.0.0",port:9e3,hot:"only"},h.devServer)}))};
1
+ "use strict";var __rest=this&&this.__rest||function(e,t){var s={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(s[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a<o.length;a++)t.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(s[o[a]]=e[o[a]])}return s},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.prepareRules=exports.clientDefaultRules=void 0;const path_1=__importDefault(require("path")),appEnv_1=__importDefault(require("../appEnv")),paths_1=__importDefault(require("../paths")),buildConfig_1=__importDefault(require("../buildConfig")),common_config_1=__importDefault(require("./common.config")),loaders_1=require("./loaders"),nodeRequire_1=__importDefault(require("./nodeRequire"));function containsLoader(e,t){const s=e=>"string"==typeof e?e.includes(t):Array.isArray(e)?e.some(s):!("function"==typeof e||!e||!e.loader)&&e.loader.includes(t);return Object.getOwnPropertyNames(e).some((t=>{const o=e[t];return o&&s(o.loader||o.use)}))}function prepareRules(e,t){return Object.entries(e).reduce(((e,[s,o])=>("function"==typeof o&&s in t&&t[s]?e[s]=o(t[s]):e[s]=o,e)),{})}function getPnpWebpackPlugin(){return(0,nodeRequire_1.default)("pnp-webpack-plugin")}function normalizeHtml(e){return Array.isArray(e)?e:[e]}exports.clientDefaultRules={jsRule:{test:/\.m?jsx?$/,include:[paths_1.default.client.sources,paths_1.default.shared.sources].filter((e=>!!e)),use:(0,loaders_1.babelLoader)()},tsBaseRule:{test:/\.tsx?$/,include:[paths_1.default.client.sources,paths_1.default.shared.sources].filter((e=>!!e))},cssRule:{test:/\.css$/,include:[paths_1.default.client.sources,path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"@js-toolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@js-toolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"reflexy")],use:(0,loaders_1.css)()},cssNodeModulesRule:{test:/\.css$/,include:[paths_1.default.nodeModules.root],exclude:[path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"@js-toolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@js-toolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"reflexy")],use:(0,loaders_1.cssNodeModules)()},svgRule:{test:/\.svg$/,include:[paths_1.default.client.sources,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)({limit:void 0})},fontRule:{test:/\.(eot|ttf|woff|woff2|otf)$/,include:[paths_1.default.client.assets,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)()},assetsRule:{test:/\.(png|jpg|gif|ico)$/,include:[paths_1.default.client.assets,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)()}},exports.prepareRules=prepareRules;const clientBuildConfig=buildConfig_1.default.client||buildConfig_1.default.default.client;exports.default=e=>{var t,s,o,a,l,n,i,u,{outputPath:r=paths_1.default.client.output.path,outputPublicPath:d=clientBuildConfig.output.publicPath,outputJsDir:c=clientBuildConfig.output.js,hash:p=!0,chunkSuffix:f=".chunk",typescript:h}=e,_=e.rules,g=void 0===_?{}:_,{tsBaseRule:m}=g,b=__rest(g,["tsBaseRule"]),j=__rest(e,["outputPath","outputPublicPath","outputJsDir","hash","chunkSuffix","typescript","rules"]);const O=Object.assign({configFile:paths_1.default.client.tsconfig,loader:loaders_1.TsLoaderType.Default,loaderOptions:{},forkedChecks:!1,checkerOptions:{},threadLoader:!1,threadLoaderOptions:{}},"object"==typeof h&&h),{tsBaseRule:v}=exports.clientDefaultRules,k=__rest(exports.clientDefaultRules,["tsBaseRule"]),y=Object.assign({tsRule:Object.assign(Object.assign(Object.assign({},v),m),{use:(0,loaders_1.getTsLoader)(Object.assign(Object.assign({tsconfig:O.configFile,forkedChecks:O.forkedChecks,useThreadLoader:O.threadLoader,threadLoaderOptions:O.threadLoaderOptions},O.loaderOptions),{loaderType:O.loader}))})},k),w=prepareRules(b,y),R=Object.assign(Object.assign({},y),w);return(0,common_config_1.default)(Object.assign(Object.assign({outputPath:r,outputPublicPath:d,outputJsDir:c,hash:p,chunkSuffix:f,typescript:h?Object.assign(Object.assign({},O),{checkerOptions:Object.assign(Object.assign({},O.checkerOptions),{typescript:Object.assign(Object.assign({},O.checkerOptions.typescript),{diagnosticsOptions:Object.assign({syntactic:O.threadLoader},null===(t=O.checkerOptions.typescript)||void 0===t?void 0:t.diagnosticsOptions)})})}):void 0,name:clientBuildConfig.root,target:"web",context:paths_1.default.client.sources,stats:appEnv_1.default.ifDev("minimal",void 0)},j),{resolve:Object.assign(Object.assign({},j.resolve),{modules:[paths_1.default.client.sources,...(null===(s=j.resolve)||void 0===s?void 0:s.modules)||[]],alias:Object.assign(Object.assign({},paths_1.default.shared.sources&&{shared:paths_1.default.shared.sources}),(null===(o=j.resolve)||void 0===o?void 0:o.alias)||void 0),plugins:[...clientBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin()]:[],...(null===(a=j.resolve)||void 0===a?void 0:a.plugins)||[]]}),resolveLoader:Object.assign(Object.assign({},j.resolveLoader),{plugins:[...clientBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin().moduleLoader(module)]:[],...(null===(l=j.resolveLoader)||void 0===l?void 0:l.plugins)||[]]}),module:Object.assign(Object.assign({},j.module),{rules:[...Object.getOwnPropertyNames(R).map((e=>R[e]||{})),...normalizeHtml(clientBuildConfig.html).some((({template:e})=>e&&e.endsWith(".pug")))?[{test:/\.pug$/,use:{loader:"pug-loader"}}]:[],...(null===(n=j.module)||void 0===n?void 0:n.rules)||[]]}),plugins:[...(()=>{const e=normalizeHtml(clientBuildConfig.html);return e.filter((e=>!!e.template)).map((e=>{var{inject:t,template:s}=e,o=__rest(e,["inject","template"]);return new((0,nodeRequire_1.default)("html-webpack-plugin"))(Object.assign({inject:null!=t&&t,template:path_1.default.join(paths_1.default.client.sources,s)},o))}))})(),containsLoader(R,loaders_1.cssExtractLoader)&&(()=>{const e=(0,nodeRequire_1.default)("extract-css-chunks-webpack-plugin"),t=!0===p||"object"==typeof p&&p.entry,s=!0===p||"object"==typeof p&&p.chunk,o=appEnv_1.default.prod&&t?".[contenthash:8]":"",a=appEnv_1.default.prod&&s?".[contenthash:8]":"",l=clientBuildConfig.output.styles;return new e({filename:`${l}/[name]${o}.css`,chunkFilename:`${l}/[name]${a}${null!=f?f:""}.css`})})(),(null===(u=null===(i=j.optimization)||void 0===i?void 0:i.minimize)||void 0===u||u)&&containsLoader(R,loaders_1.cssExtractLoader)&&new((0,nodeRequire_1.default)("optimize-css-assets-webpack-plugin"))({cssProcessorPluginOptions:{preset:["default",{discardComments:{removeAll:!0}}]}}),clientBuildConfig.output.assetManifest.fileName&&(()=>{const{fileName:e,filterTemplate:t}=clientBuildConfig.output.assetManifest,s=!!t&&!!Object.getOwnPropertyNames(t).length;return new((0,nodeRequire_1.default)("webpack-manifest-plugin"))({fileName:e,filter:s?e=>Object.getOwnPropertyNames(t).every((s=>!(s in e)||e[s]===t[s])):void 0})})(),appEnv_1.default.prod&&clientBuildConfig.output.sw.swDest&&(()=>{var e;const{GenerateSW:t}=(0,nodeRequire_1.default)("workbox-webpack-plugin"),s=normalizeHtml(clientBuildConfig.html),o=1===s.length?s[0].filename:null===(e=s.find((({main:e})=>!!e)))||void 0===e?void 0:e.filename;return new t(Object.assign({clientsClaim:!0,importWorkboxFrom:"cdn",exclude:[/\.map$/,new RegExp(`${clientBuildConfig.output.assetManifest.fileName}$`)],navigateFallback:o&&"string"==typeof o?`${clientBuildConfig.output.publicPath}${o}`:void 0,navigateFallbackBlacklist:[/^\/_/,/\/[^/]+\.[^/]+$/]},clientBuildConfig.output.sw))})(),appEnv_1.default.prod&&paths_1.default.client.staticContent.length>0&&(()=>{const e=paths_1.default.client.staticContent.filter((e=>e.path!==paths_1.default.client.root&&e.path!==paths_1.default.client.sources));if(0===e.length)return;return new((0,nodeRequire_1.default)("copy-webpack-plugin"))({patterns:e.map((e=>{var{path:t,ignore:s}=e,o=__rest(e,["path","ignore"]);return Object.assign(Object.assign({from:t},s&&{globOptions:{ignore:s}}),o)}))})})(),...j.plugins||[]].filter(Boolean),devServer:Object.assign({static:paths_1.default.client.staticContent.map((({path:e,ignore:t})=>Object.assign({directory:e},t&&{watch:{ignored:t}}))),historyApiFallback:!0,host:"0.0.0.0",port:9e3,hot:"only"},j.devServer)}))};
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var o=Object.getOwnPropertyDescriptor(t,i);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,o)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&__createBinding(t,e,i);return __setModuleDefault(t,e),t},__rest=this&&this.__rest||function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(i[n[o]]=e[n[o]])}return i},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const webpack_1=__importDefault(require("webpack")),path_1=__importDefault(require("path")),appEnv_1=__importDefault(require("../appEnv")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),loaders_1=require("./loaders"),nodeRequire_1=__importDefault(require("./nodeRequire"));exports.default=e=>{var t,i,n,o,{outputPath:r,outputPublicPath:s,outputJsDir:u,hash:a,chunkSuffix:l=".chunk",typescript:p,minimizerPlugin:c="terser",minimizerPluginOptions:d}=e,f=__rest(e,["outputPath","outputPublicPath","outputJsDir","hash","chunkSuffix","typescript","minimizerPlugin","minimizerPluginOptions"]);const _=!0===a||"object"==typeof a&&a.entry,g=!0===a||"object"==typeof a&&a.chunk;return Object.assign(Object.assign({context:paths_1.default.root,mode:appEnv_1.default.raw.NODE_ENV,bail:appEnv_1.default.prod,devtool:appEnv_1.default.ifDev("eval-cheap-module-source-map",!1)},f),{output:Object.assign({path:r,publicPath:s,pathinfo:!1,filename:path_1.default.join(u,`[name]${appEnv_1.default.prod&&_?".[contenthash:8]":""}.js`),chunkFilename:path_1.default.join(u,`[name]${appEnv_1.default.prod&&g?".[contenthash:8]":""}${null!=l?l:""}.js`)},f.output),optimization:Object.assign(Object.assign({},appEnv_1.default.ifProd((()=>{var e;return{minimizer:["terser"===c&&(()=>{var e;const t=Array.isArray(d)?d.reduce(((e,t)=>Object.assign(Object.assign({},e),t)),{}):d;return new((0,nodeRequire_1.default)("terser-webpack-plugin"))(Object.assign(Object.assign({extractComments:!1},t),{terserOptions:Object.assign(Object.assign({},null==t?void 0:t.terserOptions),{output:Object.assign({comments:!1},null===(e=null==t?void 0:t.terserOptions)||void 0===e?void 0:e.output)})}))})(),"closure"===c&&(()=>{const[e,t]=Array.isArray(d)?null!=d?d:[]:[d,void 0];return new((0,nodeRequire_1.default)("closure-webpack-plugin"))(Object.assign({mode:"STANDARD"},e),Object.assign(Object.assign({},appEnv_1.default.ifDev({formatting:"PRETTY_PRINT",debug:!0,renaming:!1},void 0)),t))})(),...(null===(e=f.optimization)||void 0===e?void 0:e.minimizer)||[]]}}),void 0)),f.optimization),plugins:[new webpack_1.default.DefinePlugin(Object.assign(Object.assign({},appEnv_1.default.envStringify()),buildConfig_1.default.envStringify())),...(null==p?void 0:p.forkedChecks)&&p.configFile?[(0,loaders_1.getTsCheckerPlugin)(Object.assign(Object.assign({loaderType:null!==(t=p.loader)&&void 0!==t?t:loaders_1.TsLoaderType.Default},p.checkerOptions),{typescript:Object.assign({configFile:p.configFile},null===(i=p.checkerOptions)||void 0===i?void 0:i.typescript)}))]:[],...f.plugins||[]],resolve:(()=>{var e,t,i;const n=[...p?paths_1.moduleExtensions:paths_1.moduleExtensions.filter((e=>!e.includes("ts"))),...(null===(e=f.resolve)||void 0===e?void 0:e.extensions)||[]];return Object.assign(Object.assign({},f.resolve),{extensions:n,modules:["node_modules",paths_1.default.root,...(null===(t=f.resolve)||void 0===t?void 0:t.modules)||[]],plugins:[...p?[new((0,nodeRequire_1.default)("tsconfig-paths-webpack-plugin"))({configFile:p.configFile,extensions:n})]:[],...(null===(i=f.resolve)||void 0===i?void 0:i.plugins)||[]]})})(),ignoreWarnings:[...p?[/export .* was not found in/]:[],...null!==(n=f.ignoreWarnings)&&void 0!==n?n:[]],module:Object.assign(Object.assign({exprContextCritical:!1,unknownContextCritical:!1},f.module),{rules:(null===(o=f.module)||void 0===o?void 0:o.rules)||[]})})};
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var o=Object.getOwnPropertyDescriptor(t,i);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,o)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&__createBinding(t,e,i);return __setModuleDefault(t,e),t},__rest=this&&this.__rest||function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(i[n[o]]=e[n[o]])}return i},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const webpack_1=__importDefault(require("webpack")),path_1=__importDefault(require("path")),appEnv_1=__importDefault(require("../appEnv")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),loaders_1=require("./loaders"),nodeRequire_1=__importDefault(require("./nodeRequire"));exports.default=e=>{var t,i,n,o,{outputPath:r,outputPublicPath:a,outputJsDir:s,hash:u,chunkSuffix:l=".chunk",typescript:p,minimizerPlugin:c="terser",minimizerPluginOptions:d}=e,f=__rest(e,["outputPath","outputPublicPath","outputJsDir","hash","chunkSuffix","typescript","minimizerPlugin","minimizerPluginOptions"]);const _=!0===u||"object"==typeof u&&u.entry,g=!0===u||"object"==typeof u&&u.chunk;return Object.assign(Object.assign({context:paths_1.default.root,mode:appEnv_1.default.raw.NODE_ENV,bail:appEnv_1.default.prod,devtool:appEnv_1.default.ifDev("eval-cheap-module-source-map",!1)},f),{output:Object.assign({path:r,publicPath:a,pathinfo:!1,filename:path_1.default.join(s,`[name]${appEnv_1.default.prod&&_?".[contenthash:8]":""}.js`),chunkFilename:path_1.default.join(s,`[name]${appEnv_1.default.prod&&g?".[contenthash:8]":""}${null!=l?l:""}.js`)},f.output),optimization:Object.assign(Object.assign({},appEnv_1.default.ifProd((()=>{var e;return{minimizer:["terser"===c&&(()=>{var e;const t=Array.isArray(d)?d.reduce(((e,t)=>Object.assign(Object.assign({},e),t)),{}):d;return new((0,nodeRequire_1.default)("terser-webpack-plugin"))(Object.assign(Object.assign({extractComments:!1},t),{terserOptions:Object.assign(Object.assign({},null==t?void 0:t.terserOptions),{output:Object.assign({comments:!1},null===(e=null==t?void 0:t.terserOptions)||void 0===e?void 0:e.output)})}))})(),"closure"===c&&(()=>{const[e,t]=Array.isArray(d)?null!=d?d:[]:[d,void 0];return new((0,nodeRequire_1.default)("closure-webpack-plugin"))(Object.assign({mode:"STANDARD"},e),Object.assign(Object.assign({},appEnv_1.default.ifDev({formatting:"PRETTY_PRINT",debug:!0,renaming:!1},void 0)),t))})(),...(null===(e=f.optimization)||void 0===e?void 0:e.minimizer)||[]]}}),void 0)),f.optimization),plugins:[new webpack_1.default.DefinePlugin(Object.assign(Object.assign({},appEnv_1.default.envStringify()),buildConfig_1.default.envStringify())),...(null==p?void 0:p.forkedChecks)&&p.configFile?[(0,loaders_1.getTsCheckerPlugin)(Object.assign(Object.assign({loaderType:null!==(t=p.loader)&&void 0!==t?t:loaders_1.TsLoaderType.Default},p.checkerOptions),{typescript:Object.assign({configFile:p.configFile},null===(i=p.checkerOptions)||void 0===i?void 0:i.typescript)}))]:[],...f.plugins||[]],resolve:(()=>{var e,t,i;const n=[...p?paths_1.moduleExtensions:(0,paths_1.getJSExtensions)(),...(null===(e=f.resolve)||void 0===e?void 0:e.extensions)||[]];return Object.assign(Object.assign({},f.resolve),{extensions:n,modules:["node_modules",paths_1.default.nodeModules.root,paths_1.default.root,...(null===(t=f.resolve)||void 0===t?void 0:t.modules)||[]],plugins:[...p?[new((0,nodeRequire_1.default)("tsconfig-paths-webpack-plugin"))({configFile:p.configFile,extensions:n})]:[],...(null===(i=f.resolve)||void 0===i?void 0:i.plugins)||[]]})})(),ignoreWarnings:[...p?[/export .* was not found in/]:[],...null!==(n=f.ignoreWarnings)&&void 0!==n?n:[]],module:Object.assign(Object.assign({exprContextCritical:!1,unknownContextCritical:!1},f.module),{rules:(null===(o=f.module)||void 0===o?void 0:o.rules)||[]})})};