@js-toolkit/configs 3.100.0 → 3.100.1

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.
@@ -44,7 +44,7 @@ export declare function getWebAppConfig(root?: string): {
44
44
  };
45
45
  export declare function getNodeAppConfig(root?: string): {
46
46
  root: string;
47
- sources: string;
47
+ sources: string[];
48
48
  /** Used by webpack loaders and plugins. */
49
49
  tsconfig: string;
50
50
  output: {
@@ -54,7 +54,7 @@ export declare function getNodeAppConfig(root?: string): {
54
54
  };
55
55
  export declare function getSharedConfig(root?: string): {
56
56
  root: string;
57
- sources: string;
57
+ sources: string[];
58
58
  tsconfig: string;
59
59
  };
60
60
  export type BuildConfigDefaults = {
@@ -1 +1 @@
1
- "use strict";function getWebAppConfig(e="web"){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:void 0,filterTemplate:void 0},sw:{swDest:void 0,swSrc:void 0}}}}function getNodeAppConfig(e="node"){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.getWebAppConfig=getWebAppConfig,exports.getNodeAppConfig=getNodeAppConfig,exports.getSharedConfig=getSharedConfig;const buildConfigDefaults={output:{root:"build"},nodeModules:{root:"node_modules"},web:getWebAppConfig(),node:getNodeAppConfig(),shared:getSharedConfig()};exports.default=Object.freeze(buildConfigDefaults);
1
+ "use strict";function getWebAppConfig(e="web"){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:void 0,filterTemplate:void 0},sw:{swDest:void 0,swSrc:void 0}}}}function getNodeAppConfig(e="node"){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.getWebAppConfig=getWebAppConfig,exports.getNodeAppConfig=getNodeAppConfig,exports.getSharedConfig=getSharedConfig;const buildConfigDefaults={output:{root:"build"},nodeModules:{root:"node_modules"},web:getWebAppConfig(),node:getNodeAppConfig(),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,r,s){void 0===s&&(s=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,s,n)}: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(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(null!=t)for(var s=e(t),n=0;n<s.length;n++)"default"!==s[n]&&__createBinding(r,t,s[n]);return __setModuleDefault(r,t),r}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTypeScriptImportResolver=createTypeScriptImportResolver,exports.create=create;const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),globals_1=__importDefault(require("globals")),config_1=require("eslint/config"),js_1=__importDefault(require("@eslint/js")),compat_1=require("@eslint/compat"),paths_1=__importStar(require("../paths")),getInstalledPackage_1=require("../getInstalledPackage"),consts_1=require("./consts"),utils_1=require("./utils"),hasBabelParser=!!(0,getInstalledPackage_1.getInstalledPackage)("@babel/eslint-parser"),hasPromisePlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-promise"),hasImportXPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import-x"),hasImportPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import"),hasConfigStandard=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-standard"),hasConfigAirbnbBase=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-airbnb-base"),hasJsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-jsdoc"),hasTsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-tsdoc"),hasPrettierEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-prettier/recommended"),hasTypescriptEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("typescript-eslint"),hasImportResolverTypescript=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-import-resolver-typescript"),withFilteredStandardRules=()=>{const e=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-n");return{rules:Object.entries(require("eslint-config-standard").rules).reduce((t,[r,s])=>(r.startsWith("import/")?hasImportPlugin&&!hasImportXPlugin?t[r]=s:hasImportXPlugin&&(t[r.replace("import/","import-x/")]=s):r.startsWith("n/")?e&&(t[r]=s):r.startsWith("promise/")?hasPromisePlugin&&(t[r]=s):t[r]=s,t),{})}},filterAirbnbRules=()=>{const e=require("eslint-config-airbnb-base").extends.map(e=>({rules:e.endsWith("imports.js")?hasImportXPlugin&&Object.entries(require(e).rules).reduce((e,[t,r])=>(e[t.replace("import/","import-x/")]=r,e),{})||hasImportPlugin&&require(e).rules||{}:require(e).rules}));return(0,compat_1.fixupConfigRules)(e)};function createTypeScriptImportResolver(e){return require("eslint-import-resolver-typescript").createTypeScriptImportResolver({extensions:paths_1.moduleExtensions,...e})}function create(e){const t=hasTypescriptEslintPlugin&&path_1.default.resolve(e,consts_1.eslintTsProject),r=t&&fs_1.default.existsSync(t)?t:path_1.default.resolve(e,"tsconfig.json");return[js_1.default.configs.recommended,...hasPromisePlugin?[require("eslint-plugin-promise").configs["flat/recommended"]]:[],...hasImportPlugin&&!hasImportXPlugin?(0,compat_1.fixupConfigRules)(utils_1.compat.extends("plugin:import/recommended")):[],...hasImportXPlugin?[require("eslint-plugin-import-x").flatConfigs.recommended]:[],...hasConfigStandard?[withFilteredStandardRules()]:[],...hasJsDocPlugin?[{...require("eslint-plugin-jsdoc").configs["flat/recommended"],files:[(0,paths_1.getFilesGlob)((0,paths_1.getJSExtensions)())]}]:[],...hasConfigAirbnbBase?filterAirbnbRules():[],{languageOptions:{ecmaVersion:"latest",parserOptions:{ecmaVersion:"latest"},globals:{...globals_1.default.node},...hasBabelParser&&{parser:require("@babel/eslint-parser"),parserOptions:{requireConfigFile:!1}}},linterOptions:{reportUnusedDisableDirectives:!0},settings:{...hasImportPlugin&&!hasImportXPlugin&&{"import/extensions":(0,paths_1.getJSExtensions)(),"import-x/extensions":(0,paths_1.getJSExtensions)(),"import/resolver":{node:{extensions:(0,paths_1.getJSExtensions)(),moduleDirectory:["node_modules",paths_1.default.web.sources,paths_1.default.node.sources,paths_1.default.shared.sources].filter(e=>!!e)}},...hasBabelParser&&{"import/parsers":{"@babel/eslint-parser":(0,paths_1.getJSExtensions)()}}},...hasImportXPlugin&&{"import-x/resolver-next":[require("eslint-plugin-import-x").createNodeResolver({extensions:(0,paths_1.getJSExtensions)(),modules:["node_modules",paths_1.default.web.sources,paths_1.default.node.sources,paths_1.default.shared.sources].filter(e=>!!e)})],...hasBabelParser&&{"import-x/parsers":{"@babel/eslint-parser":(0,paths_1.getJSExtensions)()}}}},rules:{"lines-between-class-members":["error","always",{exceptAfterSingleLine:!0}],"func-names":["warn","as-needed",{generators:"as-needed"}],"no-console":"off","no-unused-expressions":["error",{allowShortCircuit:!0}],"no-plusplus":["error",{allowForLoopAfterthoughts:!0}],"no-param-reassign":["error",{props:!1}],"no-promise-executor-return":["error",{allowVoid:!0}],"no-restricted-exports":["error",{restrictedNamedExports:["then"],restrictDefaultExports:{named:!0,namedFrom:!0,namespaceFrom:!0,defaultFrom:!1}}],"no-restricted-syntax":["error","ForInStatement","LabeledStatement","WithStatement","CallExpression[callee.name='setTimeout'][arguments.length!=2]","CallExpression[arguments.length!=2] > MemberExpression[object.name='window'][property.name='setTimeout']"],...(hasImportPlugin||hasImportXPlugin)&&Object.entries({"import/no-extraneous-dependencies":["error",{devDependencies:!0}],"import/extensions":["error","ignorePackages",paths_1.moduleExtensions.reduce((e,t)=>({...e,[t.substring(1)]:"never"}),{"":"never"})],"import/order":["error",{groups:["builtin","external","internal","parent","sibling","index","object"]}],"import/prefer-default-export":"off"}).reduce((e,[t,r])=>(hasImportXPlugin?e[t.replace("import/","import-x/")]=r:e[t]=r,e),{}),...hasPromisePlugin&&{"promise/always-return":"off","promise/catch-or-return":["error",{allowFinally:!0}]}}},...hasTypescriptEslintPlugin?(()=>{const t=require("typescript-eslint");return(0,config_1.defineConfig)({extends:[...t.configs.recommendedTypeChecked,...t.configs.stylisticTypeChecked,...hasImportPlugin&&!hasImportXPlugin?(0,compat_1.fixupConfigRules)(utils_1.compat.extends("plugin:import/typescript")):[],...hasImportXPlugin?[require("eslint-plugin-import-x").flatConfigs.typescript]:[]],files:[(0,paths_1.getFilesGlob)((0,paths_1.getTSExtensions)())],plugins:{...hasTsDocPlugin&&{tsdoc:require("eslint-plugin-tsdoc")}},languageOptions:{parserOptions:{tsconfigRootDir:e,projectService:{defaultProject:r,allowDefaultProject:["*.config.ts","*.config.mts","packages/*/*.config.ts","packages/*/*.config.mts"]}}},settings:{...hasImportPlugin&&!hasImportXPlugin&&{"import/extensions":paths_1.moduleExtensions,"import/resolver":{node:{extensions:paths_1.moduleExtensions},typescript:{project:r}},"import/parsers":{"@typescript-eslint/parser":paths_1.moduleExtensions,...hasBabelParser&&{"@babel/eslint-parser":[]}}},...hasImportXPlugin&&{"import-x/extensions":paths_1.moduleExtensions,"import-x/external-module-folders":["node_modules","node_modules/@types"],"import-x/parsers":{"@typescript-eslint/parser":paths_1.moduleExtensions,...hasBabelParser&&{"@babel/eslint-parser":[]}},"import-x/resolver-next":[hasImportResolverTypescript?createTypeScriptImportResolver({project:r}):[],require("eslint-plugin-import-x").createNodeResolver({extensions:paths_1.moduleExtensions,tsconfig:{configFile:r}})]}},rules:{"no-useless-constructor":"off","no-void":["error",{allowAsStatement:!0}],"@typescript-eslint/explicit-member-accessibility":"off","@typescript-eslint/explicit-function-return-type":["warn",{allowExpressions:!0,allowTypedFunctionExpressions:!0,allowHigherOrderFunctions:!0,allowDirectConstAssertionInArrowFunctions:!0,allowConciseArrowFunctionExpressionsStartingWithVoid:!0}],"no-use-before-define":"off","@typescript-eslint/no-use-before-define":"error","no-shadow":"off","@typescript-eslint/no-shadow":["error",{ignoreTypeValueShadow:!0}],"no-empty-function":"off","@typescript-eslint/no-empty-function":["error",{allow:["private-constructors","protected-constructors","decoratedFunctions"]}],"@typescript-eslint/no-unused-expressions":["error",{allowShortCircuit:!0}],"@typescript-eslint/prefer-nullish-coalescing":["error",{ignorePrimitives:{string:!0},ignoreMixedLogicalExpressions:!0}],...hasImportXPlugin&&{"import-x/named":"off"},...hasTsDocPlugin&&{"tsdoc/syntax":"warn"}}})})():[],...hasPrettierEslintPlugin?[require("eslint-plugin-prettier/recommended")]:[],{files:[(0,paths_1.getFilesGlob)([".d.ts"])],rules:{"max-classes-per-file":"off"}},{ignores:["node_modules","dist","build",".yarn"]}]}const config=create(process.cwd());module.exports=config,module.exports.create=create,module.exports.createTypeScriptImportResolver=createTypeScriptImportResolver,exports.default=config;
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,s){void 0===s&&(s=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,s,n)}: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(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(null!=t)for(var s=e(t),n=0;n<s.length;n++)"default"!==s[n]&&__createBinding(r,t,s[n]);return __setModuleDefault(r,t),r}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTypeScriptImportResolver=createTypeScriptImportResolver,exports.create=create;const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),globals_1=__importDefault(require("globals")),config_1=require("eslint/config"),js_1=__importDefault(require("@eslint/js")),compat_1=require("@eslint/compat"),paths_1=__importStar(require("../paths")),getInstalledPackage_1=require("../getInstalledPackage"),consts_1=require("./consts"),utils_1=require("./utils"),hasBabelParser=!!(0,getInstalledPackage_1.getInstalledPackage)("@babel/eslint-parser"),hasPromisePlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-promise"),hasImportXPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import-x"),hasImportPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import"),hasConfigStandard=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-standard"),hasConfigAirbnbBase=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-airbnb-base"),hasJsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-jsdoc"),hasTsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-tsdoc"),hasPrettierEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-prettier/recommended"),hasTypescriptEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("typescript-eslint"),hasImportResolverTypescript=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-import-resolver-typescript"),withFilteredStandardRules=()=>{const e=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-n");return{rules:Object.entries(require("eslint-config-standard").rules).reduce((t,[r,s])=>(r.startsWith("import/")?hasImportPlugin&&!hasImportXPlugin?t[r]=s:hasImportXPlugin&&(t[r.replace("import/","import-x/")]=s):r.startsWith("n/")?e&&(t[r]=s):r.startsWith("promise/")?hasPromisePlugin&&(t[r]=s):t[r]=s,t),{})}},filterAirbnbRules=()=>{const e=require("eslint-config-airbnb-base").extends.map(e=>({rules:e.endsWith("imports.js")?hasImportXPlugin&&Object.entries(require(e).rules).reduce((e,[t,r])=>(e[t.replace("import/","import-x/")]=r,e),{})||hasImportPlugin&&require(e).rules||{}:require(e).rules}));return(0,compat_1.fixupConfigRules)(e)};function createTypeScriptImportResolver(e){return require("eslint-import-resolver-typescript").createTypeScriptImportResolver({extensions:paths_1.moduleExtensions,...e})}function create(e){const t=hasTypescriptEslintPlugin&&path_1.default.resolve(e,consts_1.eslintTsProject),r=t&&fs_1.default.existsSync(t)?t:path_1.default.resolve(e,"tsconfig.json");return[js_1.default.configs.recommended,...hasPromisePlugin?[require("eslint-plugin-promise").configs["flat/recommended"]]:[],...hasImportPlugin&&!hasImportXPlugin?(0,compat_1.fixupConfigRules)(utils_1.compat.extends("plugin:import/recommended")):[],...hasImportXPlugin?[require("eslint-plugin-import-x").flatConfigs.recommended]:[],...hasConfigStandard?[withFilteredStandardRules()]:[],...hasJsDocPlugin?[{...require("eslint-plugin-jsdoc").configs["flat/recommended"],files:[(0,paths_1.getFilesGlob)((0,paths_1.getJSExtensions)())]}]:[],...hasConfigAirbnbBase?filterAirbnbRules():[],{languageOptions:{ecmaVersion:"latest",parserOptions:{ecmaVersion:"latest"},globals:{...globals_1.default.node},...hasBabelParser&&{parser:require("@babel/eslint-parser"),parserOptions:{requireConfigFile:!1}}},linterOptions:{reportUnusedDisableDirectives:!0},settings:{...hasImportPlugin&&!hasImportXPlugin&&{"import/extensions":(0,paths_1.getJSExtensions)(),"import-x/extensions":(0,paths_1.getJSExtensions)(),"import/resolver":{node:{extensions:(0,paths_1.getJSExtensions)(),moduleDirectory:["node_modules",...paths_1.default.web.sources,...paths_1.default.node.sources,...paths_1.default.shared.sources].filter(e=>!!e)}},...hasBabelParser&&{"import/parsers":{"@babel/eslint-parser":(0,paths_1.getJSExtensions)()}}},...hasImportXPlugin&&{"import-x/resolver-next":[require("eslint-plugin-import-x").createNodeResolver({extensions:(0,paths_1.getJSExtensions)(),modules:["node_modules",...paths_1.default.web.sources,...paths_1.default.node.sources,...paths_1.default.shared.sources].filter(e=>!!e)})],...hasBabelParser&&{"import-x/parsers":{"@babel/eslint-parser":(0,paths_1.getJSExtensions)()}}}},rules:{"lines-between-class-members":["error","always",{exceptAfterSingleLine:!0}],"func-names":["warn","as-needed",{generators:"as-needed"}],"no-console":"off","no-unused-expressions":["error",{allowShortCircuit:!0}],"no-plusplus":["error",{allowForLoopAfterthoughts:!0}],"no-param-reassign":["error",{props:!1}],"no-promise-executor-return":["error",{allowVoid:!0}],"no-restricted-exports":["error",{restrictedNamedExports:["then"],restrictDefaultExports:{named:!0,namedFrom:!0,namespaceFrom:!0,defaultFrom:!1}}],"no-restricted-syntax":["error","ForInStatement","LabeledStatement","WithStatement","CallExpression[callee.name='setTimeout'][arguments.length!=2]","CallExpression[arguments.length!=2] > MemberExpression[object.name='window'][property.name='setTimeout']"],...(hasImportPlugin||hasImportXPlugin)&&Object.entries({"import/no-extraneous-dependencies":["error",{devDependencies:!0}],"import/extensions":["error","ignorePackages",paths_1.moduleExtensions.reduce((e,t)=>({...e,[t.substring(1)]:"never"}),{"":"never"})],"import/order":["error",{groups:["builtin","external","internal","parent","sibling","index","object"]}],"import/prefer-default-export":"off"}).reduce((e,[t,r])=>(hasImportXPlugin?e[t.replace("import/","import-x/")]=r:e[t]=r,e),{}),...hasPromisePlugin&&{"promise/always-return":"off","promise/catch-or-return":["error",{allowFinally:!0}]}}},...hasTypescriptEslintPlugin?(()=>{const t=require("typescript-eslint");return(0,config_1.defineConfig)({extends:[...t.configs.recommendedTypeChecked,...t.configs.stylisticTypeChecked,...hasImportPlugin&&!hasImportXPlugin?(0,compat_1.fixupConfigRules)(utils_1.compat.extends("plugin:import/typescript")):[],...hasImportXPlugin?[require("eslint-plugin-import-x").flatConfigs.typescript]:[]],files:[(0,paths_1.getFilesGlob)((0,paths_1.getTSExtensions)())],plugins:{...hasTsDocPlugin&&{tsdoc:require("eslint-plugin-tsdoc")}},languageOptions:{parserOptions:{tsconfigRootDir:e,projectService:{defaultProject:r,allowDefaultProject:["*.config.ts","*.config.mts","packages/*/*.config.ts","packages/*/*.config.mts"]}}},settings:{...hasImportPlugin&&!hasImportXPlugin&&{"import/extensions":paths_1.moduleExtensions,"import/resolver":{node:{extensions:paths_1.moduleExtensions},typescript:{project:r}},"import/parsers":{"@typescript-eslint/parser":paths_1.moduleExtensions,...hasBabelParser&&{"@babel/eslint-parser":[]}}},...hasImportXPlugin&&{"import-x/extensions":paths_1.moduleExtensions,"import-x/external-module-folders":["node_modules","node_modules/@types"],"import-x/parsers":{"@typescript-eslint/parser":paths_1.moduleExtensions,...hasBabelParser&&{"@babel/eslint-parser":[]}},"import-x/resolver-next":[hasImportResolverTypescript?createTypeScriptImportResolver({project:r}):[],require("eslint-plugin-import-x").createNodeResolver({extensions:paths_1.moduleExtensions,tsconfig:{configFile:r}})]}},rules:{"no-useless-constructor":"off","no-void":["error",{allowAsStatement:!0}],"@typescript-eslint/explicit-member-accessibility":"off","@typescript-eslint/explicit-function-return-type":["warn",{allowExpressions:!0,allowTypedFunctionExpressions:!0,allowHigherOrderFunctions:!0,allowDirectConstAssertionInArrowFunctions:!0,allowConciseArrowFunctionExpressionsStartingWithVoid:!0}],"no-use-before-define":"off","@typescript-eslint/no-use-before-define":"error","no-shadow":"off","@typescript-eslint/no-shadow":["error",{ignoreTypeValueShadow:!0}],"no-empty-function":"off","@typescript-eslint/no-empty-function":["error",{allow:["private-constructors","protected-constructors","decoratedFunctions"]}],"@typescript-eslint/no-unused-expressions":["error",{allowShortCircuit:!0}],"@typescript-eslint/prefer-nullish-coalescing":["error",{ignorePrimitives:{string:!0},ignoreMixedLogicalExpressions:!0}],...hasImportXPlugin&&{"import-x/named":"off"},...hasTsDocPlugin&&{"tsdoc/syntax":"warn"}}})})():[],...hasPrettierEslintPlugin?[require("eslint-plugin-prettier/recommended")]:[],{files:[(0,paths_1.getFilesGlob)([".d.ts"])],rules:{"max-classes-per-file":"off"}},{ignores:["node_modules","dist","build",".yarn"]}]}const config=create(process.cwd());module.exports=config,module.exports.create=create,module.exports.createTypeScriptImportResolver=createTypeScriptImportResolver,exports.default=config;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@js-toolkit/configs",
3
- "version": "3.100.0",
3
+ "version": "3.100.1",
4
4
  "description": "Preconfigured configurations",
5
5
  "author": "VZH",
6
6
  "license": "MIT",
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "devDependencies": {
21
21
  "@babel/eslint-parser": "7.28.6",
22
- "@eslint/compat": "2.0.1",
22
+ "@eslint/compat": "2.0.2",
23
23
  "@eslint/eslintrc": "3.3.3",
24
24
  "@eslint/js": "9.39.2",
25
25
  "@types/eslint": "9.6.1",
@@ -37,13 +37,13 @@
37
37
  "eslint-plugin-promise": "7.2.1",
38
38
  "eslint-plugin-react": "7.37.5",
39
39
  "eslint-plugin-react-hooks": "7.0.1",
40
- "globals": "17.2.0",
40
+ "globals": "17.3.0",
41
41
  "html-webpack-plugin": "5.6.6",
42
42
  "prettier": "3.8.1",
43
43
  "rimraf": "6.1.2",
44
44
  "typescript": "5.9.3",
45
45
  "typescript-eslint": "8.54.0",
46
- "webpack": "5.104.1",
46
+ "webpack": "5.105.0",
47
47
  "webpack-dev-server": "5.2.3",
48
48
  "webpack-node-externals": "3.0.0"
49
49
  }
package/paths.d.ts CHANGED
@@ -31,7 +31,7 @@ export declare function getPaths(baseDir?: string, buildConfig?: import("./build
31
31
  };
32
32
  node: {
33
33
  root: string;
34
- sources: string;
34
+ sources: string[];
35
35
  tsconfig: string;
36
36
  output: {
37
37
  path: string;
@@ -39,7 +39,7 @@ export declare function getPaths(baseDir?: string, buildConfig?: import("./build
39
39
  };
40
40
  shared: {
41
41
  root: string;
42
- sources: string;
42
+ sources: string[];
43
43
  tsconfig: string;
44
44
  };
45
45
  }>;
@@ -70,7 +70,7 @@ declare const paths: Readonly<{
70
70
  };
71
71
  node: {
72
72
  root: string;
73
- sources: string;
73
+ sources: string[];
74
74
  tsconfig: string;
75
75
  output: {
76
76
  path: string;
@@ -78,7 +78,7 @@ declare const paths: Readonly<{
78
78
  };
79
79
  shared: {
80
80
  root: string;
81
- sources: string;
81
+ sources: string[];
82
82
  tsconfig: string;
83
83
  };
84
84
  }>;
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.moduleExtensions=void 0,exports.getFilesGlob=getFilesGlob,exports.getTSExtensions=getTSExtensions,exports.getJSExtensions=getJSExtensions,exports.getSXExtensions=getSXExtensions,exports.getTSXExtensions=getTSXExtensions,exports.getNonSXExtensions=getNonSXExtensions,exports.getPaths=getPaths;const path_1=__importDefault(require("path")),buildConfig_1=require("./buildConfig");function addStar(t){return t.map(t=>`*${t}`)}function getFilesGlob(t,e){return path_1.default.join(e||"","**/*.{")+t.map(t=>t.substring(1)).join(",")+"}"}function getTSExtensions(t=!1){const e=exports.moduleExtensions.filter(t=>t.includes("ts"));return t?addStar(e):e}function getJSExtensions(t=!1){const e=exports.moduleExtensions.filter(t=>t.includes("js"));return t?addStar(e):e}function getSXExtensions(t=!1){const e=exports.moduleExtensions.filter(t=>t.endsWith("sx"));return t?addStar(e):e}function getTSXExtensions(t=!1){const e=exports.moduleExtensions.filter(t=>t.endsWith("tsx"));return t?addStar(e):e}function getNonSXExtensions(t=!1){const e=exports.moduleExtensions.filter(t=>!t.endsWith("sx"));return t?addStar(e):e}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{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)},web:(()=>{const{web:o}=e;return o?{root:path_1.default.resolve(t,o.root),sources:o.sources.map(e=>path_1.default.resolve(t,o.root,e)),assets:o.assets.map(e=>path_1.default.resolve(t,o.root,e)),staticContent:o.staticContent.map(e=>{const s="string"==typeof e?{path:e}:e;return path_1.default.isAbsolute(s.path)?s:{...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:""}}})(),node:(()=>{const{node: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",".mjsx",".cjsx",".ts",".mts",".cts",".tsx",".mtsx",".ctsx",".d.ts"];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.moduleExtensions=void 0,exports.getFilesGlob=getFilesGlob,exports.getTSExtensions=getTSExtensions,exports.getJSExtensions=getJSExtensions,exports.getSXExtensions=getSXExtensions,exports.getTSXExtensions=getTSXExtensions,exports.getNonSXExtensions=getNonSXExtensions,exports.getPaths=getPaths;const path_1=__importDefault(require("path")),buildConfig_1=require("./buildConfig");function addStar(t){return t.map(t=>`*${t}`)}function getFilesGlob(t,e){return path_1.default.join(e||"","**/*.{")+t.map(t=>t.substring(1)).join(",")+"}"}function getTSExtensions(t=!1){const e=exports.moduleExtensions.filter(t=>t.includes("ts"));return t?addStar(e):e}function getJSExtensions(t=!1){const e=exports.moduleExtensions.filter(t=>t.includes("js"));return t?addStar(e):e}function getSXExtensions(t=!1){const e=exports.moduleExtensions.filter(t=>t.endsWith("sx"));return t?addStar(e):e}function getTSXExtensions(t=!1){const e=exports.moduleExtensions.filter(t=>t.endsWith("tsx"));return t?addStar(e):e}function getNonSXExtensions(t=!1){const e=exports.moduleExtensions.filter(t=>!t.endsWith("sx"));return t?addStar(e):e}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{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)},web:(()=>{const{web:o}=e;return o?{root:path_1.default.resolve(t,o.root),sources:o.sources.map(e=>path_1.default.resolve(t,o.root,e)),assets:o.assets.map(e=>path_1.default.resolve(t,o.root,e)),staticContent:o.staticContent.map(e=>{const s="string"==typeof e?{path:e}:e;return path_1.default.isAbsolute(s.path)?s:{...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:""}}})(),node:(()=>{const{node:o}=e;return o?{root:path_1.default.resolve(t,o.root),sources:o.sources.map(e=>path_1.default.resolve(t,o.root,e)),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:o.sources.map(e=>path_1.default.resolve(t,o.root,e)),tsconfig:path_1.default.resolve(t,o.root,o.tsconfig)}:{root:"",sources:[],tsconfig:""}})()})}exports.moduleExtensions=[".js",".mjs",".cjs",".jsx",".mjsx",".cjsx",".ts",".mts",".cts",".tsx",".mtsx",".ctsx",".d.ts"];const paths=getPaths();exports.default=paths;
@@ -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.universalDefaultRules=exports.nodeDefaultRules=void 0;const webpack_node_externals_1=__importDefault(require("webpack-node-externals")),appEnv_1=__importDefault(require("../appEnv")),paths_1=__importDefault(require("../paths")),buildConfig_1=__importDefault(require("../buildConfig")),common_config_1=__importDefault(require("./common.config")),web_config_1=require("./web.config"),loaders_1=require("./loaders");exports.nodeDefaultRules={jsRule:{...web_config_1.webDefaultRules.jsRule,include:[paths_1.default.node.sources,paths_1.default.shared.sources].filter(e=>!!e)},tsBaseRule:{...web_config_1.webDefaultRules.tsBaseRule,include:[paths_1.default.node.sources,paths_1.default.shared.sources].filter(e=>!!e)}},exports.universalDefaultRules={jsRule:{...web_config_1.webDefaultRules.jsRule,include:[...web_config_1.webDefaultRules.jsRule.include,paths_1.default.node.sources]},tsBaseRule:{...exports.nodeDefaultRules.tsBaseRule,include:[...web_config_1.webDefaultRules.jsRule.include,paths_1.default.node.sources]},cssRule:{...web_config_1.webDefaultRules.cssRule,use:(0,loaders_1.css)({ssr:!0,extractor:!appEnv_1.default.dev})},cssNodeModulesRule:{...web_config_1.webDefaultRules.cssNodeModulesRule,use:(0,loaders_1.cssNodeModules)({ssr:!0,extractor:!appEnv_1.default.dev})},svgRule:{...web_config_1.webDefaultRules.svgRule,generator:{emit:!1}},fontRule:{...web_config_1.webDefaultRules.fontRule,generator:{emit:!1}},assetsRule:{...web_config_1.webDefaultRules.assetsRule,generator:{emit:!1}}};const nodeBuildConfig=buildConfig_1.default.node||buildConfig_1.default.default.node;exports.default=({outputPath:e=paths_1.default.node.output.path,outputPublicPath:s=nodeBuildConfig.output.publicPath,outputJsDir:t="",hash:o=!1,chunkSuffix:u=".chunk",typescript:a,rules:{tsBaseRule:l,...r}={},nodeExternalsOptions:d,isUniversal:n,...i})=>{const f={configFile:paths_1.default.node.tsconfig,loader:loaders_1.TsLoaderType.Default,loaderOptions:{},forkedChecks:!1,checkerOptions:{},threadLoader:!1,threadLoaderOptions:{},..."object"==typeof a?a:void 0},{tsBaseRule:p,...c}=n?exports.universalDefaultRules:exports.nodeDefaultRules,_={tsRule:{...p,...l,use:(0,loaders_1.getTsLoader)({tsconfig:f.configFile,forkedChecks:f.forkedChecks,useThreadLoader:f.threadLoader,threadLoaderOptions:f.threadLoaderOptions,...f.loaderOptions,loaderType:f.loader})},...c},h=(0,web_config_1.prepareRules)(r,_),b={..._,...h};return(0,common_config_1.default)({outputPath:e,outputPublicPath:s,outputJsDir:t,hash:o,chunkSuffix:u,typescript:a?{...f,checkerOptions:{...f.checkerOptions,typescript:{...f.checkerOptions.typescript,diagnosticsOptions:{syntactic:f.threadLoader,...f.checkerOptions.typescript?.diagnosticsOptions}}}}:void 0,name:nodeBuildConfig.root,target:"node",context:n?paths_1.default.root:paths_1.default.node.sources,...i,stats:!1===i.stats||i.stats&&"object"!=typeof i.stats?i.stats:{all:!1,errors:!0,errorDetails:!0,warnings:!0,version:!0,timings:!0,builtAt:!0,entrypoints:!0,...i.stats},externals:[(0,webpack_node_externals_1.default)(d),...i.externals&&(Array.isArray(i.externals)?i.externals:[i.externals])||[]],resolve:{...i.resolve,modules:[...n?paths_1.default.web.sources:[paths_1.default.node.sources],...i.resolve&&i.resolve.modules||[]],alias:{...n?{node:paths_1.default.node.sources,web:paths_1.default.web.sources}:void 0,...paths_1.default.shared.sources?{shared:paths_1.default.shared.sources}:void 0,...i.resolve&&i.resolve.alias||void 0}},module:{...i.module,rules:[...Object.getOwnPropertyNames(b).map(e=>b[e]||{}),...i.module&&i.module.rules||[]]},watchOptions:{ignored:[paths_1.default.nodeModules.root,...n&&!appEnv_1.default.ssr?[paths_1.default.web.root]:[]],...i.watchOptions}})};
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.universalDefaultRules=exports.nodeDefaultRules=void 0;const webpack_node_externals_1=__importDefault(require("webpack-node-externals")),appEnv_1=__importDefault(require("../appEnv")),paths_1=__importDefault(require("../paths")),buildConfig_1=__importDefault(require("../buildConfig")),common_config_1=__importDefault(require("./common.config")),web_config_1=require("./web.config"),loaders_1=require("./loaders");exports.nodeDefaultRules={jsRule:{...web_config_1.webDefaultRules.jsRule,include:[...paths_1.default.node.sources,...paths_1.default.shared.sources].filter(e=>!!e)},tsBaseRule:{...web_config_1.webDefaultRules.tsBaseRule,include:[...paths_1.default.node.sources,...paths_1.default.shared.sources].filter(e=>!!e)}},exports.universalDefaultRules={jsRule:{...web_config_1.webDefaultRules.jsRule,include:[...web_config_1.webDefaultRules.jsRule.include,...paths_1.default.node.sources]},tsBaseRule:{...exports.nodeDefaultRules.tsBaseRule,include:[...web_config_1.webDefaultRules.jsRule.include,...paths_1.default.node.sources]},cssRule:{...web_config_1.webDefaultRules.cssRule,use:(0,loaders_1.css)({ssr:!0,extractor:!appEnv_1.default.dev})},cssNodeModulesRule:{...web_config_1.webDefaultRules.cssNodeModulesRule,use:(0,loaders_1.cssNodeModules)({ssr:!0,extractor:!appEnv_1.default.dev})},svgRule:{...web_config_1.webDefaultRules.svgRule,generator:{emit:!1}},fontRule:{...web_config_1.webDefaultRules.fontRule,generator:{emit:!1}},assetsRule:{...web_config_1.webDefaultRules.assetsRule,generator:{emit:!1}}};const nodeBuildConfig=buildConfig_1.default.node||buildConfig_1.default.default.node;exports.default=({outputPath:e=paths_1.default.node.output.path,outputPublicPath:t=nodeBuildConfig.output.publicPath,outputJsDir:s="",hash:o=!1,chunkSuffix:u=".chunk",typescript:a,rules:{tsBaseRule:l,...r}={},nodeExternalsOptions:d,isUniversal:n,...i})=>{const f={configFile:paths_1.default.node.tsconfig,loader:loaders_1.TsLoaderType.Default,loaderOptions:{},forkedChecks:!1,checkerOptions:{},threadLoader:!1,threadLoaderOptions:{},..."object"==typeof a?a:void 0},{tsBaseRule:p,...c}=n?exports.universalDefaultRules:exports.nodeDefaultRules,_={tsRule:{...p,...l,use:(0,loaders_1.getTsLoader)({tsconfig:f.configFile,forkedChecks:f.forkedChecks,useThreadLoader:f.threadLoader,threadLoaderOptions:f.threadLoaderOptions,...f.loaderOptions,loaderType:f.loader})},...c},h=(0,web_config_1.prepareRules)(r,_),b={..._,...h};return(0,common_config_1.default)({outputPath:e,outputPublicPath:t,outputJsDir:s,hash:o,chunkSuffix:u,typescript:a?{...f,checkerOptions:{...f.checkerOptions,typescript:{...f.checkerOptions.typescript,diagnosticsOptions:{syntactic:f.threadLoader,...f.checkerOptions.typescript?.diagnosticsOptions}}}}:void 0,name:nodeBuildConfig.root,target:"node",context:n?paths_1.default.root:paths_1.default.node.root,...i,stats:!1===i.stats||i.stats&&"object"!=typeof i.stats?i.stats:{all:!1,errors:!0,errorDetails:!0,warnings:!0,version:!0,timings:!0,builtAt:!0,entrypoints:!0,...i.stats},externals:[(0,webpack_node_externals_1.default)(d),...i.externals&&(Array.isArray(i.externals)?i.externals:[i.externals])||[]],resolve:{...i.resolve,modules:[...n?paths_1.default.web.sources:paths_1.default.node.sources,...i.resolve&&i.resolve.modules||[]],alias:{...n?{node:paths_1.default.node.sources,web:paths_1.default.web.sources}:void 0,...paths_1.default.shared.sources.length>0?{shared:paths_1.default.shared.sources}:void 0,...i.resolve&&i.resolve.alias||void 0}},module:{...i.module,rules:[...Object.getOwnPropertyNames(b).map(e=>b[e]||{}),...i.module&&i.module.rules||[]]},watchOptions:{ignored:[paths_1.default.nodeModules.root,...n&&!appEnv_1.default.ssr?[paths_1.default.web.root]:[]],...i.watchOptions}})};
@@ -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.webDefaultRules=void 0,exports.prepareRules=prepareRules;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")),getInstalledPackage_1=require("../getInstalledPackage");function containsLoader(e,t){const o=e=>"string"==typeof e?e.includes(t):Array.isArray(e)?e.some(o):!("function"==typeof e||!e||!e.loader)&&e.loader.includes(t);return Object.getOwnPropertyNames(e).some(t=>{const a=e[t];return a&&o(a.loader||a.use)})}function prepareRules(e,t){return Object.entries(e).reduce((e,[o,a])=>("function"==typeof a&&o in t&&t[o]?e[o]=a(t[o]):e[o]=a,e),{})}function getPnpWebpackPlugin(){return(0,nodeRequire_1.default)("pnp-webpack-plugin")}function normalizeHtml(e){return Array.isArray(e)?e:[e]}exports.webDefaultRules={jsRule:{test:/\.m?jsx?$/,include:[...paths_1.default.web.sources,paths_1.default.shared.sources].filter(e=>!!e),use:(0,loaders_1.babelLoader)()},tsBaseRule:{test:/\.tsx?$/,include:[...paths_1.default.web.sources,paths_1.default.shared.sources].filter(e=>!!e)},cssRule:{test:/\.css$/,include:[...paths_1.default.web.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)({extractor:!appEnv_1.default.dev})},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)({extractor:!appEnv_1.default.dev})},svgRule:{test:/\.svg$/,include:[...paths_1.default.web.sources,paths_1.default.nodeModules.root],type:"asset/inline"},fontRule:{test:/\.(eot|ttf|woff|woff2|otf)$/,include:[paths_1.default.web.assets,paths_1.default.nodeModules.root],type:"asset",parser:{dataUrlCondition:{maxSize:4096}},generator:{filename:`${(buildConfig_1.default.web||buildConfig_1.default.default.web).output.assets}/[name].[hash:8].[ext][query]`}},assetsRule:{test:/\.(png|jpg|gif|ico)$/,include:[paths_1.default.web.assets,paths_1.default.nodeModules.root],type:"asset",parser:{dataUrlCondition:{maxSize:8192}},generator:{filename:`${(buildConfig_1.default.web||buildConfig_1.default.default.web).output.assets}/[name].[hash:8].[ext][query]`}}};const webBuildConfig=buildConfig_1.default.web||buildConfig_1.default.default.web;exports.default=({outputPath:e=paths_1.default.web.output.path,outputPublicPath:t=webBuildConfig.output.publicPath,outputJsDir:o=webBuildConfig.output.js,hash:a=!0,chunkSuffix:s=".chunk",typescript:u,rules:{tsBaseRule:l,...i}={},...n})=>{const r={configFile:paths_1.default.web.tsconfig,loader:loaders_1.TsLoaderType.Default,loaderOptions:{},forkedChecks:!1,checkerOptions:{},threadLoader:!1,threadLoaderOptions:{},..."object"==typeof u&&u},{tsBaseRule:d,...p}=exports.webDefaultRules,f={tsRule:{...d,...l,use:(0,loaders_1.getTsLoader)({tsconfig:r.configFile,forkedChecks:r.forkedChecks,useThreadLoader:r.threadLoader,threadLoaderOptions:r.threadLoaderOptions,...r.loaderOptions,loaderType:r.loader})},...p},c=prepareRules(i,f),h={...f,...c};return(0,common_config_1.default)({outputPath:e,outputPublicPath:t,outputJsDir:o,hash:a,chunkSuffix:s,typescript:u?{...r,checkerOptions:{...r.checkerOptions,typescript:{...r.checkerOptions.typescript,diagnosticsOptions:{syntactic:r.threadLoader,...r.checkerOptions.typescript?.diagnosticsOptions}}}}:void 0,name:webBuildConfig.root,target:"web",context:paths_1.default.web.root,stats:appEnv_1.default.ifDev("minimal",void 0),...n,optimization:{...n.optimization,...appEnv_1.default.ifProd({minimizer:[(0,getInstalledPackage_1.getInstalledPackage)("css-minimizer-webpack-plugin")&&new((0,nodeRequire_1.default)("css-minimizer-webpack-plugin"))({minimizerOptions:{preset:"default"}}),...n.optimization?.minimizer||[]]},void 0)},resolve:{...n.resolve,modules:[...paths_1.default.web.sources,...n.resolve?.modules||[]],alias:{...paths_1.default.shared.sources&&{shared:paths_1.default.shared.sources},...n.resolve?.alias||void 0},plugins:[...webBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin()]:[],...n.resolve?.plugins||[]]},resolveLoader:{...n.resolveLoader,plugins:[...webBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin().moduleLoader(module)]:[],...n.resolveLoader?.plugins||[]]},module:{...n.module,rules:[...Object.getOwnPropertyNames(h).map(e=>h[e]||{}),...normalizeHtml(webBuildConfig.html).some(({template:e})=>e&&e.endsWith(".pug"))?[{test:/\.pug$/,use:{loader:"pug-loader"}}]:[],...n.module?.rules||[]]},plugins:[...(()=>{const e=normalizeHtml(webBuildConfig.html);return e.filter(e=>!!e.template).map(({inject:e,template:t,...o})=>new((0,nodeRequire_1.default)("html-webpack-plugin"))({inject:e??!1,template:path_1.default.join(paths_1.default.web.root,t),...o}))})(),containsLoader(h,loaders_1.cssExtractLoader)&&(()=>{const e=(0,nodeRequire_1.default)("mini-css-extract-plugin"),t=!0===a||"object"==typeof a&&a.entry,o=!0===a||"object"==typeof a&&a.chunk,u=appEnv_1.default.prod&&t?".[contenthash:8]":"",l=appEnv_1.default.prod&&o?".[contenthash:8]":"",{styles:i}=webBuildConfig.output,n=("string"==typeof i?i:i?.dir)||".";return new e({filename:`${n}/[name]${u}.css`,chunkFilename:`${n}/[name]${l}${s??""}.css`,..."object"==typeof i&&i})})(),webBuildConfig.output.assetManifest.fileName&&(()=>{const{fileName:e,filterTemplate:t}=webBuildConfig.output.assetManifest,o=!!t&&!!Object.getOwnPropertyNames(t).length;return new((0,nodeRequire_1.default)("webpack-manifest-plugin"))({fileName:e,filter:o?e=>Object.getOwnPropertyNames(t).every(o=>!(o in e)||e[o]===t[o]):void 0})})(),(webBuildConfig.output.sw.swDest||webBuildConfig.output.sw.swSrc)&&(()=>{const{GenerateSW:e,InjectManifest:t}=(0,nodeRequire_1.default)("workbox-webpack-plugin"),o=[/\.map$/,/^manifest.*\.js$/,webBuildConfig.output.assetManifest.fileName&&new RegExp(`${webBuildConfig.output.assetManifest.fileName}$`)].filter(Boolean),{swSrc:a,swDest:s,...u}=webBuildConfig.output.sw;return a?new t({swSrc:a,...s&&{swDest:s},exclude:o,...u}):new e({...s&&{swDest:s},clientsClaim:!0,exclude:o,...u})})(),appEnv_1.default.prod&&paths_1.default.web.staticContent.length>0&&(()=>{const e=paths_1.default.web.staticContent.filter(e=>e.path!==paths_1.default.web.root&&!paths_1.default.web.sources.includes(e.path));if(0===e.length)return;return new((0,nodeRequire_1.default)("copy-webpack-plugin"))({patterns:e.map(({path:e,ignore:t,...o})=>({from:e,...t&&{globOptions:{ignore:t}},...o}))})})(),...n.plugins||[]].filter(Boolean),devServer:{static:paths_1.default.web.staticContent.map(({path:e,ignore:t})=>({directory:e,...t&&{watch:{ignored:t}}})),historyApiFallback:!0,host:"0.0.0.0",port:9e3,hot:"only",...n.devServer}})};
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.webDefaultRules=void 0,exports.prepareRules=prepareRules;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")),getInstalledPackage_1=require("../getInstalledPackage");function containsLoader(e,t){const o=e=>"string"==typeof e?e.includes(t):Array.isArray(e)?e.some(o):!("function"==typeof e||!e||!e.loader)&&e.loader.includes(t);return Object.getOwnPropertyNames(e).some(t=>{const a=e[t];return a&&o(a.loader||a.use)})}function prepareRules(e,t){return Object.entries(e).reduce((e,[o,a])=>("function"==typeof a&&o in t&&t[o]?e[o]=a(t[o]):e[o]=a,e),{})}function getPnpWebpackPlugin(){return(0,nodeRequire_1.default)("pnp-webpack-plugin")}function normalizeHtml(e){return Array.isArray(e)?e:[e]}exports.webDefaultRules={jsRule:{test:/\.m?jsx?$/,include:[...paths_1.default.web.sources,...paths_1.default.shared.sources].filter(e=>!!e),use:(0,loaders_1.babelLoader)()},tsBaseRule:{test:/\.tsx?$/,include:[...paths_1.default.web.sources,...paths_1.default.shared.sources].filter(e=>!!e)},cssRule:{test:/\.css$/,include:[...paths_1.default.web.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)({extractor:!appEnv_1.default.dev})},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)({extractor:!appEnv_1.default.dev})},svgRule:{test:/\.svg$/,include:[...paths_1.default.web.sources,paths_1.default.nodeModules.root],type:"asset/inline"},fontRule:{test:/\.(eot|ttf|woff|woff2|otf)$/,include:[...paths_1.default.web.assets,paths_1.default.nodeModules.root],type:"asset",parser:{dataUrlCondition:{maxSize:4096}},generator:{filename:`${(buildConfig_1.default.web||buildConfig_1.default.default.web).output.assets}/[name].[hash:8].[ext][query]`}},assetsRule:{test:/\.(png|jpg|gif|ico)$/,include:[...paths_1.default.web.assets,paths_1.default.nodeModules.root],type:"asset",parser:{dataUrlCondition:{maxSize:8192}},generator:{filename:`${(buildConfig_1.default.web||buildConfig_1.default.default.web).output.assets}/[name].[hash:8].[ext][query]`}}};const webBuildConfig=buildConfig_1.default.web||buildConfig_1.default.default.web;exports.default=({outputPath:e=paths_1.default.web.output.path,outputPublicPath:t=webBuildConfig.output.publicPath,outputJsDir:o=webBuildConfig.output.js,hash:a=!0,chunkSuffix:s=".chunk",typescript:u,rules:{tsBaseRule:l,...i}={},...n})=>{const r={configFile:paths_1.default.web.tsconfig,loader:loaders_1.TsLoaderType.Default,loaderOptions:{},forkedChecks:!1,checkerOptions:{},threadLoader:!1,threadLoaderOptions:{},..."object"==typeof u&&u},{tsBaseRule:d,...p}=exports.webDefaultRules,f={tsRule:{...d,...l,use:(0,loaders_1.getTsLoader)({tsconfig:r.configFile,forkedChecks:r.forkedChecks,useThreadLoader:r.threadLoader,threadLoaderOptions:r.threadLoaderOptions,...r.loaderOptions,loaderType:r.loader})},...p},c=prepareRules(i,f),h={...f,...c};return(0,common_config_1.default)({outputPath:e,outputPublicPath:t,outputJsDir:o,hash:a,chunkSuffix:s,typescript:u?{...r,checkerOptions:{...r.checkerOptions,typescript:{...r.checkerOptions.typescript,diagnosticsOptions:{syntactic:r.threadLoader,...r.checkerOptions.typescript?.diagnosticsOptions}}}}:void 0,name:webBuildConfig.root,target:"web",context:paths_1.default.web.root,stats:appEnv_1.default.ifDev("minimal",void 0),...n,optimization:{...n.optimization,...appEnv_1.default.ifProd({minimizer:[(0,getInstalledPackage_1.getInstalledPackage)("css-minimizer-webpack-plugin")&&new((0,nodeRequire_1.default)("css-minimizer-webpack-plugin"))({minimizerOptions:{preset:"default"}}),...n.optimization?.minimizer||[]]},void 0)},resolve:{...n.resolve,modules:[...paths_1.default.web.sources,...n.resolve?.modules||[]],alias:{...paths_1.default.shared.sources.length>0&&{shared:paths_1.default.shared.sources},...n.resolve?.alias||void 0},plugins:[...webBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin()]:[],...n.resolve?.plugins||[]]},resolveLoader:{...n.resolveLoader,plugins:[...webBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin().moduleLoader(module)]:[],...n.resolveLoader?.plugins||[]]},module:{...n.module,rules:[...Object.getOwnPropertyNames(h).map(e=>h[e]||{}),...normalizeHtml(webBuildConfig.html).some(({template:e})=>e&&e.endsWith(".pug"))?[{test:/\.pug$/,use:{loader:"pug-loader"}}]:[],...n.module?.rules||[]]},plugins:[...(()=>{const e=normalizeHtml(webBuildConfig.html);return e.filter(e=>!!e.template).map(({inject:e,template:t,...o})=>new((0,nodeRequire_1.default)("html-webpack-plugin"))({inject:e??!1,template:path_1.default.join(paths_1.default.web.root,t),...o}))})(),containsLoader(h,loaders_1.cssExtractLoader)&&(()=>{const e=(0,nodeRequire_1.default)("mini-css-extract-plugin"),t=!0===a||"object"==typeof a&&a.entry,o=!0===a||"object"==typeof a&&a.chunk,u=appEnv_1.default.prod&&t?".[contenthash:8]":"",l=appEnv_1.default.prod&&o?".[contenthash:8]":"",{styles:i}=webBuildConfig.output,n=("string"==typeof i?i:i?.dir)||".";return new e({filename:`${n}/[name]${u}.css`,chunkFilename:`${n}/[name]${l}${s??""}.css`,..."object"==typeof i&&i})})(),webBuildConfig.output.assetManifest.fileName&&(()=>{const{fileName:e,filterTemplate:t}=webBuildConfig.output.assetManifest,o=!!t&&!!Object.getOwnPropertyNames(t).length;return new((0,nodeRequire_1.default)("webpack-manifest-plugin"))({fileName:e,filter:o?e=>Object.getOwnPropertyNames(t).every(o=>!(o in e)||e[o]===t[o]):void 0})})(),(webBuildConfig.output.sw.swDest||webBuildConfig.output.sw.swSrc)&&(()=>{const{GenerateSW:e,InjectManifest:t}=(0,nodeRequire_1.default)("workbox-webpack-plugin"),o=[/\.map$/,/^manifest.*\.js$/,webBuildConfig.output.assetManifest.fileName&&new RegExp(`${webBuildConfig.output.assetManifest.fileName}$`)].filter(Boolean),{swSrc:a,swDest:s,...u}=webBuildConfig.output.sw;return a?new t({swSrc:a,...s&&{swDest:s},exclude:o,...u}):new e({...s&&{swDest:s},clientsClaim:!0,exclude:o,...u})})(),appEnv_1.default.prod&&paths_1.default.web.staticContent.length>0&&(()=>{const e=paths_1.default.web.staticContent.filter(e=>e.path!==paths_1.default.web.root&&!paths_1.default.web.sources.includes(e.path));if(0===e.length)return;return new((0,nodeRequire_1.default)("copy-webpack-plugin"))({patterns:e.map(({path:e,ignore:t,...o})=>({from:e,...t&&{globOptions:{ignore:t}},...o}))})})(),...n.plugins||[]].filter(Boolean),devServer:{static:paths_1.default.web.staticContent.map(({path:e,ignore:t})=>({directory:e,...t&&{watch:{ignored:t}}})),historyApiFallback:!0,host:"0.0.0.0",port:9e3,hot:"only",...n.devServer}})};