@js-toolkit/configs 3.101.4 → 3.102.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
@@ -18,7 +18,7 @@ export interface AppEnvironment {
18
18
  envStringify(): {
19
19
  'process.env': Record<string, string>;
20
20
  };
21
- has<T extends keyof AppEnvVars>(envVarName: T): boolean;
21
+ has(envVarName: keyof AppEnvVars): boolean;
22
22
  get<T extends keyof AppEnvVars>(envVarName: T): AppEnvVars[T];
23
23
  /** Use APP_SSR environment variable. */
24
24
  ssr: boolean;
package/appEnv.js CHANGED
@@ -1 +1 @@
1
- "use strict";function parseJson(t){if(null==t)return t;try{return JSON.parse(t)}catch{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=getAppEnvironment;const appEnv=getAppEnvironment();exports.default=appEnv;
1
+ "use strict";function parseJson(t){if(null==t)return t;try{return JSON.parse(t)}catch{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 this.raw.APP_SSR},get dev(){return"development"===this.raw.NODE_ENV},get test(){return"test"===this.raw.NODE_ENV||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=getAppEnvironment;const appEnv=getAppEnvironment();exports.default=appEnv;
@@ -1,5 +1,5 @@
1
1
  declare const config: {
2
- presets: (string | [string, import("../types").AnyObject] | undefined)[];
3
- plugins: (string | [string, import("../types").AnyObject] | undefined)[];
2
+ presets: (string | [string, import("../types/index.ts").AnyObject] | undefined)[];
3
+ plugins: (string | [string, import("../types/index.ts").AnyObject] | undefined)[];
4
4
  };
5
5
  export default config;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const getInstalledPlugin_1=require("./getInstalledPlugin"),config={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)};module.exports=config,exports.default=config;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const getInstalledPlugin_ts_1=require("./getInstalledPlugin.js"),config={presets:[(0,getInstalledPlugin_ts_1.getInstalledPlugin)("@babel/preset-env",{loose:!0})].filter(e=>!!e),plugins:[(0,getInstalledPlugin_ts_1.getInstalledPlugin)("@babel/plugin-transform-runtime"),(0,getInstalledPlugin_ts_1.getInstalledPlugin)("@babel/plugin-proposal-decorators",{version:"2023-05"})].filter(e=>!!e)};module.exports=config,exports.default=config;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getInstalledPlugin=getInstalledPlugin;const getInstalledPackage_1=require("../getInstalledPackage");function getInstalledPlugin(e,t){const l=(0,getInstalledPackage_1.getInstalledPackage)(e);if(l)return t?[l,t]:l}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getInstalledPlugin=getInstalledPlugin;const getInstalledPackage_ts_1=require("../getInstalledPackage.js");function getInstalledPlugin(e,t){const l=(0,getInstalledPackage_ts_1.getInstalledPackage)(e);if(l)return t?[l,t]:l}
package/buildConfig.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type BuildConfigDefaults } from './buildConfigDefaults';
1
+ import { type BuildConfigDefaults } from './buildConfigDefaults.ts';
2
2
  export interface BuildConfig extends Pick<BuildConfigDefaults, 'output' | 'nodeModules'> {
3
3
  web?: BuildConfigDefaults['web'] | undefined;
4
4
  node?: BuildConfigDefaults['node'] | undefined;
@@ -9,6 +9,13 @@ export interface BuildConfig extends Pick<BuildConfigDefaults, 'output' | 'nodeM
9
9
  };
10
10
  }
11
11
  export declare function resolveConfigPath(moduleNames?: string[], paths?: string[]): string;
12
+ declare global {
13
+ namespace NodeJS {
14
+ interface ProcessEnv {
15
+ buildConfig?: string | undefined;
16
+ }
17
+ }
18
+ }
12
19
  export declare function getBuildConfig(configPath?: string): BuildConfig;
13
20
  /** Use in runtime in browser environment only JSON convertable values, not functions! */
14
21
  declare const buildConfig: BuildConfig;
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.resolveConfigPath=resolveConfigPath,exports.getBuildConfig=getBuildConfig;const buildConfigDefaults_1=__importDefault(require("./buildConfigDefaults"));function resolveConfigPath(e=["build.config"],t=[process.cwd()]){let r="";const{length:i}=e;for(let o=0,n=e[o];o<i;o+=1)try{if(r=require.resolve(`./${n}`,{paths:t}),r)return r}catch{}return r}function merge(e,t){return Array.from(new Set([...Object.getOwnPropertyNames(e),...Object.getOwnPropertyNames(t)])).reduce((r,i)=>{const o=i;return Array.isArray(e[o])||Array.isArray(t[o])?r[o]=t[o]??e[o]:"object"==typeof e[o]&&"object"==typeof t[o]?r[o]=merge(e[o],t[o]??{}):r[o]=o in t?t[o]:e[o],r},{})}function getBuildConfig(e=resolveConfigPath()){return{...process.env.buildConfig||(e?merge(buildConfigDefaults_1.default,require(e)):{...buildConfigDefaults_1.default,web:void 0,node:void 0,shared:void 0}),default:buildConfigDefaults_1.default,envStringify(){return{"process.env.buildConfig":JSON.stringify(this)}}}}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.resolveConfigPath=resolveConfigPath,exports.getBuildConfig=getBuildConfig;const buildConfigDefaults_ts_1=__importDefault(require("./buildConfigDefaults.js")),defaultRequire_ts_1=require("./defaultRequire.js");function resolveConfigPath(e=["build.config"],t=[process.cwd()]){let r="";const{length:i}=e;for(let o=0,u=e[o];o<i;o+=1)try{if(r=require.resolve(`./${u}`,{paths:t}),r)return r}catch{}return r}function merge(e,t){return Array.from(new Set([...Object.getOwnPropertyNames(e),...Object.getOwnPropertyNames(t)])).reduce((r,i)=>{const o=i;return Array.isArray(e[o])||Array.isArray(t[o])?r[o]=t[o]??e[o]:"object"==typeof e[o]&&"object"==typeof t[o]?r[o]=merge(e[o],t[o]??{}):r[o]=o in t?t[o]:e[o],r},{})}function getBuildConfig(e=resolveConfigPath()){return{...(process.env.buildConfig?JSON.parse(process.env.buildConfig):void 0)??(e?merge(buildConfigDefaults_ts_1.default,(0,defaultRequire_ts_1.defaultRequire)(e)):{...buildConfigDefaults_ts_1.default,web:void 0,node:void 0,shared:void 0}),default:buildConfigDefaults_ts_1.default,envStringify(){return{"process.env.buildConfig":JSON.stringify(this)}}}}const buildConfig=getBuildConfig();exports.default=buildConfig;
@@ -56,7 +56,7 @@ export declare function getSharedConfig(root?: string): {
56
56
  sources: string[];
57
57
  tsconfig: string;
58
58
  };
59
- export type BuildConfigDefaults = {
59
+ export interface BuildConfigDefaults {
60
60
  output: {
61
61
  root: string;
62
62
  };
@@ -66,6 +66,6 @@ export type BuildConfigDefaults = {
66
66
  web: ReturnType<typeof getWebAppConfig>;
67
67
  node: ReturnType<typeof getNodeAppConfig>;
68
68
  shared: ReturnType<typeof getSharedConfig>;
69
- };
69
+ }
70
70
  declare const _default: Readonly<BuildConfigDefaults>;
71
71
  export default _default;
@@ -0,0 +1,2 @@
1
+ /** Универсальный require, работает и в CJS и в ESM */
2
+ export declare const defaultRequire: NodeRequire;
@@ -0,0 +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.defaultRequire=void 0;const module_1=require("module"),path_1=__importDefault(require("path"));exports.defaultRequire=(0,module_1.createRequire)("undefined"!=typeof __dirname?path_1.default.join(__dirname,"index.js"):import.meta.url);
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 o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,s,o)}: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),o=0;o<s.length;o++)"default"!==s[o]&&__createBinding(r,t,s[o]);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"),hasBabelParser=!!(0,getInstalledPackage_1.getInstalledPackage)("@babel/eslint-parser",{resolveFromCwd:!0}),hasPromisePlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-promise",{resolveFromCwd:!0}),hasImportXPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import-x",{resolveFromCwd:!0}),hasImportPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import",{resolveFromCwd:!0}),hasConfigStandard=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-standard",{resolveFromCwd:!0}),hasConfigAirbnbBase=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-airbnb-base",{resolveFromCwd:!0}),hasJsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-jsdoc",{resolveFromCwd:!0}),hasTsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-tsdoc",{resolveFromCwd:!0}),hasPrettierEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-prettier/recommended",{resolveFromCwd:!0}),hasTypescriptEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("typescript-eslint",{resolveFromCwd:!0}),hasImportResolverTypescript=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-import-resolver-typescript",{resolveFromCwd:!0}),withFilteredStandardRules=()=>{const e=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-n",{resolveFromCwd:!0});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?require("eslint-plugin-import").flatConfigs.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,allowThenStrict:!0}]}}},...hasTypescriptEslintPlugin?(()=>{const t=require("typescript-eslint");return(0,config_1.defineConfig)({extends:[...t.configs.strictTypeChecked,...t.configs.stylisticTypeChecked,...hasImportPlugin&&!hasImportXPlugin?require("eslint-plugin-import").flatConfigs.recommended:[],...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,number:!0},ignoreMixedLogicalExpressions:!0}],"@typescript-eslint/no-unnecessary-condition":["error",{checkTypePredicates:!1,allowConstantLoopConditions:"only-allowed-literals"}],"@typescript-eslint/no-confusing-void-expression":["error",{ignoreVoidReturningFunctions:!0}],"@typescript-eslint/restrict-template-expressions":["error",{allowNumber:!0,allowBoolean:!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,s,r){void 0===r&&(r=s);var i=Object.getOwnPropertyDescriptor(t,s);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,r,i)}: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(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(t[t.length]=s);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var s={};if(null!=t)for(var r=e(t),i=0;i<r.length;i++)"default"!==r[i]&&__createBinding(s,t,r[i]);return __setModuleDefault(s,t),s}}(),__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_ts_1=__importStar(require("../paths.js")),getInstalledPackage_ts_1=require("../getInstalledPackage.js"),defaultRequire_ts_1=require("../defaultRequire.js"),consts_ts_1=require("./consts.js"),hasBabelParser=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("@babel/eslint-parser",{resolveFromCwd:!0}),hasPromisePlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-promise",{resolveFromCwd:!0}),hasImportXPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-import-x",{resolveFromCwd:!0}),hasImportPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-import",{resolveFromCwd:!0}),hasConfigStandard=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-config-standard",{resolveFromCwd:!0}),hasConfigAirbnbBase=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-config-airbnb-base",{resolveFromCwd:!0}),hasJsDocPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-jsdoc",{resolveFromCwd:!0}),hasTsDocPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-tsdoc",{resolveFromCwd:!0}),hasPrettierEslintPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-prettier/recommended",{resolveFromCwd:!0}),hasTypescriptEslintPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("typescript-eslint",{resolveFromCwd:!0}),hasImportResolverTypescript=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-import-resolver-typescript",{resolveFromCwd:!0}),withFilteredStandardRules=()=>{const e=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-n",{resolveFromCwd:!0});return{rules:Object.entries((0,defaultRequire_ts_1.defaultRequire)("eslint-config-standard").rules??{}).reduce((t,[s,r])=>(s.startsWith("import/")?hasImportPlugin&&!hasImportXPlugin?t[s]=r:hasImportXPlugin&&(t[s.replace("import/","import-x/")]=r):s.startsWith("n/")?e&&(t[s]=r):s.startsWith("promise/")?hasPromisePlugin&&(t[s]=r):t[s]=r,t),{})}},filterAirbnbRules=()=>{const e=(0,defaultRequire_ts_1.defaultRequire)("eslint-config-airbnb-base").extends.map(e=>({rules:e.endsWith("imports.js")?hasImportXPlugin&&Object.entries((0,defaultRequire_ts_1.defaultRequire)(e).rules).reduce((e,[t,s])=>(e[t.replace("import/","import-x/")]=s,e),{})||hasImportPlugin&&(0,defaultRequire_ts_1.defaultRequire)(e).rules||{}:(0,defaultRequire_ts_1.defaultRequire)(e).rules}));return(0,compat_1.fixupConfigRules)(e)};function createTypeScriptImportResolver(e){return(0,defaultRequire_ts_1.defaultRequire)("eslint-import-resolver-typescript").createTypeScriptImportResolver({extensions:paths_ts_1.moduleExtensions,...e})}function create(e){const t=hasTypescriptEslintPlugin?path_1.default.resolve(e,consts_ts_1.eslintTsProject):void 0,s=t&&fs_1.default.existsSync(t)?t:path_1.default.resolve(e,"tsconfig.json");return[js_1.default.configs.recommended,...hasPromisePlugin?[(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-promise").configs["flat/recommended"]]:[],...hasImportPlugin&&!hasImportXPlugin?(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-import").flatConfigs.recommended:[],...hasImportXPlugin?[(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-import-x").flatConfigs.recommended]:[],...hasConfigStandard?[withFilteredStandardRules()]:[],...hasJsDocPlugin?[{...(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-jsdoc").configs["flat/recommended"],files:[(0,paths_ts_1.getFilesGlob)((0,paths_ts_1.getJSExtensions)())]}]:[],...hasConfigAirbnbBase?filterAirbnbRules():[],{languageOptions:{ecmaVersion:"latest",parserOptions:{ecmaVersion:"latest"},globals:{...globals_1.default.node},...hasBabelParser&&{parser:(0,defaultRequire_ts_1.defaultRequire)("@babel/eslint-parser"),parserOptions:{requireConfigFile:!1}}},linterOptions:{reportUnusedDisableDirectives:!0},settings:{...hasImportPlugin&&!hasImportXPlugin&&{"import/extensions":(0,paths_ts_1.getJSExtensions)(),"import-x/extensions":(0,paths_ts_1.getJSExtensions)(),"import/resolver":{node:{extensions:(0,paths_ts_1.getJSExtensions)(),moduleDirectory:["node_modules",...paths_ts_1.default.web.sources,...paths_ts_1.default.node.sources,...paths_ts_1.default.shared.sources].filter(e=>!!e)}},...hasBabelParser&&{"import/parsers":{"@babel/eslint-parser":(0,paths_ts_1.getJSExtensions)()}}},...hasImportXPlugin&&{"import-x/resolver-next":[(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-import-x").createNodeResolver({extensions:(0,paths_ts_1.getJSExtensions)(),modules:["node_modules",...paths_ts_1.default.web.sources,...paths_ts_1.default.node.sources,...paths_ts_1.default.shared.sources].filter(e=>!!e)})],...hasBabelParser&&{"import-x/parsers":{"@babel/eslint-parser":(0,paths_ts_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_ts_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,s])=>(hasImportXPlugin?e[t.replace("import/","import-x/")]=s:e[t]=s,e),{}),...hasPromisePlugin&&{"promise/always-return":"off","promise/catch-or-return":["error",{allowFinally:!0,allowThenStrict:!0}]}}},...hasTypescriptEslintPlugin?(()=>{const t=(0,defaultRequire_ts_1.defaultRequire)("typescript-eslint");return(0,config_1.defineConfig)({extends:[...t.configs.strictTypeChecked,...t.configs.stylisticTypeChecked,...hasImportPlugin&&!hasImportXPlugin?(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-import").flatConfigs.recommended:[],...hasImportXPlugin?[(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-import-x").flatConfigs.typescript]:[]],files:[(0,paths_ts_1.getFilesGlob)((0,paths_ts_1.getTSExtensions)())],plugins:{...hasTsDocPlugin&&{tsdoc:(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-tsdoc")}},languageOptions:{parserOptions:{tsconfigRootDir:e,projectService:{defaultProject:s,allowDefaultProject:["*.config.ts","*.config.mts","packages/*/*.config.ts","packages/*/*.config.mts"]}}},settings:{...hasImportPlugin&&!hasImportXPlugin&&{"import/extensions":paths_ts_1.moduleExtensions,"import/resolver":{node:{extensions:paths_ts_1.moduleExtensions},typescript:{project:s}},"import/parsers":{"@typescript-eslint/parser":paths_ts_1.moduleExtensions,...hasBabelParser&&{"@babel/eslint-parser":[]}}},...hasImportXPlugin&&{"import-x/extensions":paths_ts_1.moduleExtensions,"import-x/external-module-folders":["node_modules","node_modules/@types"],"import-x/parsers":{"@typescript-eslint/parser":paths_ts_1.moduleExtensions,...hasBabelParser&&{"@babel/eslint-parser":[]}},"import-x/resolver-next":[hasImportResolverTypescript?createTypeScriptImportResolver({project:s}):[],(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-import-x").createNodeResolver({extensions:paths_ts_1.moduleExtensions,tsconfig:{configFile:s}})]}},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,number:!0},ignoreMixedLogicalExpressions:!0}],"@typescript-eslint/strict-boolean-expressions":["error",{allowAny:!1,allowNullableEnum:!1,allowNullableNumber:!1,allowNullableBoolean:!0,allowNullableObject:!0,allowNullableString:!0,allowNumber:!1,allowString:!0}],"@typescript-eslint/no-unnecessary-condition":"off","@typescript-eslint/no-confusing-void-expression":["error",{ignoreVoidReturningFunctions:!0}],"@typescript-eslint/restrict-template-expressions":["error",{allowNumber:!0,allowBoolean:!0}],...hasImportXPlugin&&{"import-x/named":"off"},...hasTsDocPlugin&&{"tsdoc/syntax":"warn"}}})})():[],...hasPrettierEslintPlugin?[(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-prettier/recommended")]:[],{files:[(0,paths_ts_1.getFilesGlob)([".d.ts"])],rules:{"max-classes-per-file":"off"}},{ignores:["node_modules","dist","build",".yarn"]}]}const config=create(process.cwd());"undefined"!=typeof module&&(module.exports=config,module.exports.create=create,module.exports.createTypeScriptImportResolver=createTypeScriptImportResolver),exports.default=config;
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,l){void 0===l&&(l=o);var i=Object.getOwnPropertyDescriptor(t,o);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,l,i)}:function(e,t,o,l){void 0===l&&(l=o),e[l]=t[o]}),__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 o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[t.length]=o);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var o={};if(null!=t)for(var l=e(t),i=0;i<l.length;i++)"default"!==l[i]&&__createBinding(o,t,l[i]);return __setModuleDefault(o,t),o}}(),__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")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),filesGlobs={web:buildConfig_1.default.web&&fs_1.default.existsSync(paths_1.default.web.root)?[(0,paths_1.getFilesGlob)(paths_1.moduleExtensions,buildConfig_1.default.web.root)]:[],node:buildConfig_1.default.node&&fs_1.default.existsSync(paths_1.default.node.root)?[(0,paths_1.getFilesGlob)(paths_1.moduleExtensions,buildConfig_1.default.node.root)]:[],shared:buildConfig_1.default.shared&&fs_1.default.existsSync(paths_1.default.shared.root)?[(0,paths_1.getFilesGlob)(paths_1.moduleExtensions,buildConfig_1.default.shared.root)]:[],other:paths_1.moduleExtensions.map(e=>`*${e}`)},config=[{settings:{filesGlobs:filesGlobs,getFilesGlob:paths_1.getFilesGlob}},...filesGlobs.web.length>0?[{files:filesGlobs.web,rules:{}},...require("./web")]:[],...filesGlobs.node.length>0?[{files:filesGlobs.node,rules:{}},...require("./web"),...require("./node")]:[],...filesGlobs.shared.length>0?[...require("./common")]:[],...filesGlobs.other.length>0?[{files:filesGlobs.other,ignores:[...filesGlobs.web,...filesGlobs.node,...filesGlobs.shared].filter(Boolean),rules:{}},...require("./common")]:[]];module.exports=config,exports.default=config;
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,s,l){void 0===l&&(l=s);var o=Object.getOwnPropertyDescriptor(t,s);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,l,o)}:function(e,t,s,l){void 0===l&&(l=s),e[l]=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(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(t[t.length]=s);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var s={};if(null!=t)for(var l=e(t),o=0;o<l.length;o++)"default"!==l[o]&&__createBinding(s,t,l[o]);return __setModuleDefault(s,t),s}}(),__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")),defaultRequire_ts_1=require("../defaultRequire.js"),buildConfig_ts_1=__importDefault(require("../buildConfig.js")),paths_ts_1=__importStar(require("../paths.js")),filesGlobs={web:buildConfig_ts_1.default.web&&fs_1.default.existsSync(paths_ts_1.default.web.root)?[(0,paths_ts_1.getFilesGlob)(paths_ts_1.moduleExtensions,buildConfig_ts_1.default.web.root)]:[],node:buildConfig_ts_1.default.node&&fs_1.default.existsSync(paths_ts_1.default.node.root)?[(0,paths_ts_1.getFilesGlob)(paths_ts_1.moduleExtensions,buildConfig_ts_1.default.node.root)]:[],shared:buildConfig_ts_1.default.shared&&fs_1.default.existsSync(paths_ts_1.default.shared.root)?[(0,paths_ts_1.getFilesGlob)(paths_ts_1.moduleExtensions,buildConfig_ts_1.default.shared.root)]:[],other:paths_ts_1.moduleExtensions.map(e=>`*${e}`)},config=[{settings:{filesGlobs:filesGlobs,getFilesGlob:paths_ts_1.getFilesGlob}},...filesGlobs.web.length>0?[{files:filesGlobs.web,rules:{}},...(0,defaultRequire_ts_1.defaultRequire)("./web.ts")]:[],...filesGlobs.node.length>0?[{files:filesGlobs.node,rules:{}},...(0,defaultRequire_ts_1.defaultRequire)("./web.ts"),...(0,defaultRequire_ts_1.defaultRequire)("./node.ts")]:[],...filesGlobs.shared.length>0?[...(0,defaultRequire_ts_1.defaultRequire)("./common.ts")]:[],...filesGlobs.other.length>0?[{files:filesGlobs.other,ignores:[...filesGlobs.web,...filesGlobs.node,...filesGlobs.shared].filter(Boolean),rules:{}},...(0,defaultRequire_ts_1.defaultRequire)("./common.ts")]:[]];"undefined"!=typeof module&&(module.exports=config),exports.default=config;
package/eslint/web.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});const globals_1=__importDefault(require("globals")),compat_1=require("@eslint/compat"),paths_1=require("../paths"),getInstalledPackage_1=require("../getInstalledPackage"),hasReactPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-react",{resolveFromCwd:!0}),hasReactA11yPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-jsx-a11y",{resolveFromCwd:!0}),hasReactHooksPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-react-hooks",{resolveFromCwd:!0}),hasWCPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-wc",{resolveFromCwd:!0}),hasLitPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-lit",{resolveFromCwd:!0}),hasMobxPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-mobx",{resolveFromCwd:!0}),hasConfigAirbnb=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-airbnb",{resolveFromCwd:!0}),hasTypescriptEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("typescript-eslint",{resolveFromCwd:!0}),hasPrettierEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-prettier/recommended",{resolveFromCwd:!0}),filterAirbnbRules=e=>(0,compat_1.fixupConfigRules)({rules:require(require("eslint-config-airbnb").extends.find(t=>t.endsWith(`${e}.js`))).rules}),config=[...(hasReactPlugin?(()=>{const e=require("eslint-plugin-react");return[e.configs.flat.recommended,e.configs.flat["jsx-runtime"],{languageOptions:{...e.configs.flat.recommended.languageOptions,globals:{...globals_1.default.browser}}},...hasConfigAirbnb?filterAirbnbRules("react"):[],{settings:{react:{version:"19"}},rules:{"react/jsx-props-no-spreading":"off","react/function-component-definition":["error",{namedComponents:"function-declaration",unnamedComponents:["arrow-function","function-expression"]}]}}]})():[{languageOptions:{globals:{...globals_1.default.browser}}}]).map(e=>({...e,files:[...e.files??[],(0,paths_1.getFilesGlob)((0,paths_1.getSXExtensions)())]})),...(hasReactA11yPlugin?[require("eslint-plugin-jsx-a11y").flatConfigs.recommended,...hasConfigAirbnb?filterAirbnbRules("react-a11y"):[],{rules:{"jsx-a11y/anchor-is-valid":["error",{specialLink:["to"]}],"jsx-a11y/label-has-for":["error",{allowChildren:!0}]}}]:[]).map(e=>({...e,files:[...e.files??[],(0,paths_1.getFilesGlob)((0,paths_1.getSXExtensions)())]})),...hasReactPlugin&&hasTypescriptEslintPlugin?[{files:[(0,paths_1.getFilesGlob)((0,paths_1.getTSXExtensions)())],rules:{"react/require-default-props":"off"}}]:[],...hasReactHooksPlugin?[require("eslint-plugin-react-hooks").configs.flat["recommended-latest"],{rules:{"react-hooks/exhaustive-deps":"error"}}]:[],...[hasWCPlugin&&require("eslint-plugin-wc").configs["flat/best-practice"],hasWCPlugin&&{settings:{wc:{elementBaseClasses:["HTMLElement"]}}},hasLitPlugin&&require("eslint-plugin-lit").configs["flat/recommended"],hasLitPlugin&&{settings:{lit:{elementBaseClasses:["LitElement"]}}}].filter(Boolean).map(e=>({...e,files:[...e.files??[],(0,paths_1.getFilesGlob)((0,paths_1.getNonSXExtensions)())]})),...hasPrettierEslintPlugin?[require("eslint-plugin-prettier/recommended")]:[],...hasMobxPlugin?[require("eslint-plugin-mobx").flatConfigs.recommended]:[]];module.exports=config,exports.default=config;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const globals_1=__importDefault(require("globals")),compat_1=require("@eslint/compat"),paths_ts_1=require("../paths.js"),getInstalledPackage_ts_1=require("../getInstalledPackage.js"),defaultRequire_ts_1=require("../defaultRequire.js"),hasReactPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-react",{resolveFromCwd:!0}),hasReactA11yPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-jsx-a11y",{resolveFromCwd:!0}),hasReactHooksPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-react-hooks",{resolveFromCwd:!0}),hasWCPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-wc",{resolveFromCwd:!0}),hasLitPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-lit",{resolveFromCwd:!0}),hasMobxPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-mobx",{resolveFromCwd:!0}),hasConfigAirbnb=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-config-airbnb",{resolveFromCwd:!0}),hasTypescriptEslintPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("typescript-eslint",{resolveFromCwd:!0}),hasPrettierEslintPlugin=!!(0,getInstalledPackage_ts_1.getInstalledPackage)("eslint-plugin-prettier/recommended",{resolveFromCwd:!0}),filterAirbnbRules=e=>(0,compat_1.fixupConfigRules)({rules:(0,defaultRequire_ts_1.defaultRequire)((0,defaultRequire_ts_1.defaultRequire)("eslint-config-airbnb").extends.find(t=>t.endsWith(`${e}.js`))).rules}),config=[...(hasReactPlugin?(()=>{const e=(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-react");return[e.configs.flat.recommended,e.configs.flat["jsx-runtime"],{languageOptions:{...e.configs.flat.recommended.languageOptions,globals:{...globals_1.default.browser}}},...hasConfigAirbnb?filterAirbnbRules("react"):[],{settings:{react:{version:"19"}},rules:{"react/jsx-props-no-spreading":"off","react/function-component-definition":["error",{namedComponents:"function-declaration",unnamedComponents:["arrow-function","function-expression"]}]}}]})():[{languageOptions:{globals:{...globals_1.default.browser}}}]).map(e=>({...e,files:[...e.files??[],(0,paths_ts_1.getFilesGlob)((0,paths_ts_1.getSXExtensions)())]})),...(hasReactA11yPlugin?[(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-jsx-a11y").flatConfigs.recommended,...hasConfigAirbnb?filterAirbnbRules("react-a11y"):[],{rules:{"jsx-a11y/anchor-is-valid":["error",{specialLink:["to"]}],"jsx-a11y/label-has-for":["error",{allowChildren:!0}]}}]:[]).map(e=>({...e,files:[...e.files??[],(0,paths_ts_1.getFilesGlob)((0,paths_ts_1.getSXExtensions)())]})),...hasReactPlugin&&hasTypescriptEslintPlugin?[{files:[(0,paths_ts_1.getFilesGlob)((0,paths_ts_1.getTSXExtensions)())],rules:{"react/require-default-props":"off"}}]:[],...hasReactHooksPlugin?[(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-react-hooks").configs.flat["recommended-latest"],{rules:{"react-hooks/exhaustive-deps":"error"}}]:[],...[hasWCPlugin&&(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-wc").configs["flat/best-practice"],hasWCPlugin&&{settings:{wc:{elementBaseClasses:["HTMLElement"]}}},hasLitPlugin&&(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-lit").configs["flat/recommended"],hasLitPlugin&&{settings:{lit:{elementBaseClasses:["LitElement"]}}}].filter(Boolean).map(e=>({...e,files:[...e.files??[],(0,paths_ts_1.getFilesGlob)((0,paths_ts_1.getNonSXExtensions)())]})),...hasPrettierEslintPlugin?[(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-prettier/recommended")]:[],...hasMobxPlugin?[(0,defaultRequire_ts_1.defaultRequire)("eslint-plugin-mobx").flatConfigs.recommended]:[]];"undefined"!=typeof module&&(module.exports=config),exports.default=config;
@@ -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.getInstalledPackage=getInstalledPackage;const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path"));function getInstalledPackage(e,t={}){const{requireFn:r=require,resolveFromCwd:s=!1}=t;try{if(!s)return r(e),e;const t=r.resolve(e,{paths:[process.cwd()]}),a=path_1.default.resolve(process.cwd(),"node_modules");if(!fs_1.default.existsSync(a))return e;return!path_1.default.relative(a,t).startsWith("..")?e:void 0}catch{return}}
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getInstalledPackage=getInstalledPackage;const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),defaultRequire_ts_1=require("./defaultRequire.js");function getInstalledPackage(e,t={}){const{requireFn:r=defaultRequire_ts_1.defaultRequire,resolveFromCwd:s=!1}=t;try{if(!s)return r(e),e;const t=r.resolve(e,{paths:[process.cwd()]}),u=path_1.default.resolve(process.cwd(),"node_modules");if(!fs_1.default.existsSync(u))return e;return!path_1.default.relative(u,t).startsWith("..")?e:void 0}catch{return}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@js-toolkit/configs",
3
- "version": "3.101.4",
3
+ "version": "3.102.0",
4
4
  "description": "Preconfigured configurations",
5
5
  "author": "VZH",
6
6
  "license": "MIT",
@@ -18,14 +18,13 @@
18
18
  "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"
19
19
  },
20
20
  "devDependencies": {
21
- "@babel/eslint-parser": "7.28.6",
22
21
  "@eslint/compat": "2.0.2",
23
22
  "@eslint/js": "10.0.1",
24
23
  "@types/eslint": "9.6.1",
25
24
  "@types/webpack-node-externals": "3.0.4",
26
25
  "copy-webpack-plugin": "13.0.1",
27
26
  "copyfiles": "2.4.1",
28
- "eslint": "10.0.1",
27
+ "eslint": "10.0.2",
29
28
  "eslint-config-airbnb-base": "15.0.0",
30
29
  "eslint-config-prettier": "10.1.8",
31
30
  "eslint-config-standard": "17.1.0",
@@ -36,13 +35,13 @@
36
35
  "eslint-plugin-promise": "7.2.1",
37
36
  "eslint-plugin-react": "7.37.5",
38
37
  "eslint-plugin-react-hooks": "7.0.1",
39
- "globals": "17.3.0",
38
+ "globals": "17.4.0",
40
39
  "html-webpack-plugin": "5.6.6",
41
40
  "prettier": "3.8.1",
42
41
  "rimraf": "6.1.3",
43
42
  "typescript": "5.9.3",
44
- "typescript-eslint": "8.56.0",
45
- "webpack": "5.105.2",
43
+ "typescript-eslint": "8.56.1",
44
+ "webpack": "5.105.3",
46
45
  "webpack-dev-server": "5.2.3",
47
46
  "webpack-node-externals": "3.0.0"
48
47
  }
package/paths.d.ts CHANGED
@@ -5,7 +5,7 @@ export declare function getJSExtensions(withStar?: boolean): string[];
5
5
  export declare function getSXExtensions(withStar?: boolean): string[];
6
6
  export declare function getTSXExtensions(withStar?: boolean): string[];
7
7
  export declare function getNonSXExtensions(withStar?: boolean): string[];
8
- export declare function getPaths(baseDir?: string, buildConfig?: import("./buildConfig").BuildConfig): Readonly<{
8
+ export declare function getPaths(baseDir?: string, buildConfig?: import("./buildConfig.ts").BuildConfig): Readonly<{
9
9
  root: string;
10
10
  nodeModules: {
11
11
  root: string;
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: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
+ "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_ts_1=require("./buildConfig.js");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_ts_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;
@@ -2,24 +2,34 @@
2
2
  "compilerOptions": {
3
3
  "target": "ESNext",
4
4
  "module": "ESNext",
5
- "moduleResolution": "node",
5
+ "moduleResolution": "nodenext",
6
6
  "lib": ["DOM", "DOM.Iterable", "ESNext"],
7
7
  "jsx": "react-jsx",
8
+ "types": [],
9
+
8
10
  "allowJs": false,
9
- "sourceMap": true,
10
- "verbatimModuleSyntax": true,
11
11
  "esModuleInterop": true,
12
12
  "resolveJsonModule": true,
13
+ "resolvePackageJsonImports": true,
14
+ "importHelpers": true,
15
+ "verbatimModuleSyntax": true,
16
+ "rewriteRelativeImportExtensions": true,
17
+ "forceConsistentCasingInFileNames": true,
18
+
13
19
  "strict": true,
14
20
  "noUnusedLocals": true,
15
21
  "noUnusedParameters": true,
16
22
  "noImplicitReturns": true,
17
- "noFallthroughCasesInSwitch": true,
18
23
  "noImplicitOverride": true,
19
- "noUncheckedIndexedAccess": true,
24
+ "noFallthroughCasesInSwitch": true,
25
+ "noUncheckedSideEffectImports": true,
26
+ "noUncheckedIndexedAccess": false,
20
27
  "exactOptionalPropertyTypes": true,
28
+
29
+ "libReplacement": false,
21
30
  "skipLibCheck": true,
22
- "importHelpers": true,
23
- "incremental": true
31
+ "sourceMap": true,
32
+ "incremental": true,
33
+ "outDir": "dist"
24
34
  }
25
35
  }
@@ -1,6 +1,6 @@
1
1
  import webpack from 'webpack';
2
2
  import type { OptionalToUndefined } from '../types';
3
- import { TsLoaderType } from './loaders';
3
+ import { TsLoaderType } from './loaders.ts';
4
4
  export interface CommonConfigOptions extends OptionalToUndefined<webpack.Configuration> {
5
5
  outputPath: string;
6
6
  outputPublicPath: string;
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=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,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=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 n=e(t),i=0;i<n.length;i++)"default"!==n[i]&&__createBinding(r,t,n[i]);return __setModuleDefault(r,t),r}}(),__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=({outputPath:e,outputPublicPath:t,outputJsDir:r,hash:n,chunkSuffix:i=".chunk",typescript:o,minimizerPlugin:u="terser",minimizerPluginOptions:a,...l})=>{const p=!0===n||"object"==typeof n&&n.entry,s=!0===n||"object"==typeof n&&n.chunk;return{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),...l,output:{path:e,publicPath:t,pathinfo:!1,filename:path_1.default.join(r,`[name]${appEnv_1.default.prod&&p?".[contenthash:8]":""}.js`),chunkFilename:path_1.default.join(r,`[name]${appEnv_1.default.prod&&s?".[contenthash:8]":""}${i??""}.js`),...l.output},optimization:{...l.optimization,...appEnv_1.default.ifProd({minimizer:["terser"===u&&(()=>{const e=Array.isArray(a)?a.reduce((e,t)=>({...e,...t}),{}):a;return new((0,nodeRequire_1.default)("terser-webpack-plugin"))({extractComments:!1,...e,terserOptions:{...e?.terserOptions,output:{comments:!1,...e?.terserOptions?.output}}})})(),"closure"===u&&(()=>{const[e,t]=Array.isArray(a)?a??[]:[a,void 0];return new((0,nodeRequire_1.default)("closure-webpack-plugin"))({mode:"STANDARD",...e},{...appEnv_1.default.ifDev({formatting:"PRETTY_PRINT",debug:!0,renaming:!1},void 0),...t})})(),...l.optimization?.minimizer||[]]},void 0)},plugins:[new webpack_1.default.DefinePlugin({...appEnv_1.default.envStringify(),...buildConfig_1.default.envStringify()}),...o?.forkedChecks&&o.configFile?[(0,loaders_1.getTsCheckerPlugin)({loaderType:o.loader??loaders_1.TsLoaderType.Default,...o.checkerOptions,typescript:{configFile:o.configFile,...o.checkerOptions?.typescript}})]:[],...l.plugins||[]],resolve:(()=>{const e=[...o?paths_1.moduleExtensions:(0,paths_1.getJSExtensions)(),...l.resolve?.extensions||[]];return{...l.resolve,extensions:e,modules:["node_modules",paths_1.default.nodeModules.root,paths_1.default.root,...l.resolve?.modules||[]],plugins:[...o?[new((0,nodeRequire_1.default)("tsconfig-paths-webpack-plugin"))({configFile:o.configFile,extensions:e})]:[],...l.resolve?.plugins||[]]}})(),ignoreWarnings:[...o?[/export .* was not found in/]:[],...l.ignoreWarnings??[]],module:{exprContextCritical:!1,unknownContextCritical:!1,...l.module,rules:l.module?.rules||[]}}};
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=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,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=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 n=e(t),i=0;i<n.length;i++)"default"!==n[i]&&__createBinding(r,t,n[i]);return __setModuleDefault(r,t),r}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const path_1=__importDefault(require("path")),webpack_1=__importDefault(require("webpack")),appEnv_ts_1=__importDefault(require("../appEnv.js")),buildConfig_ts_1=__importDefault(require("../buildConfig.js")),paths_ts_1=__importStar(require("../paths.js")),loaders_ts_1=require("./loaders.js"),nodeRequire_ts_1=__importDefault(require("./nodeRequire.js"));exports.default=({outputPath:e,outputPublicPath:t,outputJsDir:r,hash:n,chunkSuffix:i=".chunk",typescript:o,minimizerPlugin:u="terser",minimizerPluginOptions:s,...a})=>{const l=!0===n||"object"==typeof n&&n.entry,p=!0===n||"object"==typeof n&&n.chunk;return{context:paths_ts_1.default.root,mode:appEnv_ts_1.default.raw.NODE_ENV,bail:appEnv_ts_1.default.prod,devtool:appEnv_ts_1.default.ifDev("eval-cheap-module-source-map",!1),...a,output:{path:e,publicPath:t,pathinfo:!1,filename:path_1.default.join(r,`[name]${appEnv_ts_1.default.prod&&l?".[contenthash:8]":""}.js`),chunkFilename:path_1.default.join(r,`[name]${appEnv_ts_1.default.prod&&p?".[contenthash:8]":""}${i??""}.js`),...a.output},optimization:{...a.optimization,...appEnv_ts_1.default.ifProd({minimizer:["terser"===u&&(()=>{const e=Array.isArray(s)?s.reduce((e,t)=>({...e,...t}),{}):s;return new((0,nodeRequire_ts_1.default)("terser-webpack-plugin"))({extractComments:!1,...e,terserOptions:{...e?.terserOptions,output:{comments:!1,...e?.terserOptions?.output}}})})(),"closure"===u&&(()=>{const[e,t]=Array.isArray(s)?s??[]:[s,void 0];return new((0,nodeRequire_ts_1.default)("closure-webpack-plugin"))({mode:"STANDARD",...e},{...appEnv_ts_1.default.ifDev({formatting:"PRETTY_PRINT",debug:!0,renaming:!1},void 0),...t})})(),...a.optimization?.minimizer??[]]},void 0)},plugins:[new webpack_1.default.DefinePlugin({...appEnv_ts_1.default.envStringify(),...buildConfig_ts_1.default.envStringify()}),...o?.forkedChecks&&o.configFile?[(0,loaders_ts_1.getTsCheckerPlugin)({loaderType:o.loader??loaders_ts_1.TsLoaderType.Default,...o.checkerOptions,typescript:{configFile:o.configFile,...o.checkerOptions?.typescript}})]:[],...a.plugins??[]],resolve:(()=>{const e=[...o?paths_ts_1.moduleExtensions:(0,paths_ts_1.getJSExtensions)(),...a.resolve?.extensions??[]];return{...a.resolve,extensions:e,modules:["node_modules",paths_ts_1.default.nodeModules.root,paths_ts_1.default.root,...a.resolve?.modules??[]],plugins:[...o?[new((0,nodeRequire_ts_1.default)("tsconfig-paths-webpack-plugin"))({configFile:o.configFile,extensions:e})]:[],...a.resolve?.plugins??[]]}})(),ignoreWarnings:[...o?[/export .* was not found in/]:[],...a.ignoreWarnings??[]],module:{exprContextCritical:!1,unknownContextCritical:!1,...a.module,rules:a.module?.rules??[]}}};
@@ -43,6 +43,13 @@ export declare function ts({ tsconfig, forkedChecks, useThreadLoader, threadLoad
43
43
  projectReferences: boolean;
44
44
  };
45
45
  })[];
46
+ export declare function babelLoader(options?: Record<PropertyKey, any>): {
47
+ loader: string;
48
+ options: {
49
+ cacheDirectory: boolean;
50
+ cacheCompression: boolean;
51
+ };
52
+ };
46
53
  export declare function getTsLoader({ loaderType, ...rest }: GetTsLoaderOptions): (string | {
47
54
  ident?: string;
48
55
  loader?: string;
@@ -95,13 +102,6 @@ export declare function tsRHL({ afterLoaders, ...rest }: TsDefaultLoaderOptions)
95
102
  projectReferences: boolean;
96
103
  };
97
104
  })[];
98
- export declare function babelLoader(options?: Record<PropertyKey, any>): {
99
- loader: string;
100
- options: {
101
- cacheDirectory: boolean;
102
- cacheCompression: boolean;
103
- };
104
- };
105
105
  export declare const cssExtractLoader = "mini-css-extract-plugin/dist/loader";
106
106
  /**
107
107
  * Problem of duplication css classes when use composes with css file from node_modules directory.
@@ -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.cssExtractLoader=exports.TsLoaderType=void 0,exports.ts=ts,exports.getTsLoader=getTsLoader,exports.getTsCheckerPlugin=getTsCheckerPlugin,exports.tsRHL=tsRHL,exports.babelLoader=babelLoader,exports.css=css,exports.cssNodeModules=cssNodeModules;const appEnv_1=__importDefault(require("../appEnv")),paths_1=__importDefault(require("../paths")),nodeRequire_1=__importDefault(require("./nodeRequire"));var TsLoaderType;function ts({tsconfig:e,forkedChecks:o,useThreadLoader:t,threadLoaderOptions:r,afterLoaders:s,...a}){return[...t?[{loader:"thread-loader",options:{workers:1,poolTimeout:appEnv_1.default.ifDev(1/0,void 0),...r}}]:[],...s||[],{loader:"ts-loader",options:{configFile:e,transpileOnly:o,happyPackMode:t,projectReferences:!0,...a,compilerOptions:{...appEnv_1.default.ifProd(()=>({sourceMap:!1}),void 0),...a.compilerOptions}}}]}function getTsLoader({loaderType:e,...o}){return e===TsLoaderType.Babel?babelLoader():ts(o)}function getTsCheckerPlugin(e={}){return new((0,nodeRequire_1.default)("fork-ts-checker-webpack-plugin"))({...e,typescript:{memoryLimit:1024,...e.typescript,diagnosticsOptions:{syntactic:!1,semantic:!0,declaration:!1,global:!1,...e.typescript?.diagnosticsOptions}}})}function tsRHL({afterLoaders:e,...o}){return ts({afterLoaders:[...e||[],...appEnv_1.default.ifDev(()=>[{loader:"babel-loader"}],[])],...o})}function babelLoader(e){return{loader:"babel-loader",options:{cacheDirectory:!0,cacheCompression:!1,...e}}}function css({ssr:e=!1,pattern:o="[name]__[local]--[hash:5]",prodPattern:t="[hash:5]",postcss:r=!0,extractor:s=!1,modules:a,styleLoaderOptions:p,postcssLoaderOptions:d,...l}={}){return[...e?[]:[s?exports.cssExtractLoader:{loader:"style-loader",options:p}],{loader:"css-loader",options:{modules:null!=a&&"object"!=typeof a?a:{mode:"local",localIdentName:appEnv_1.default.ifDev(o,t),localIdentContext:paths_1.default.root,exportOnlyLocals:e,...a},importLoaders:r?1:void 0,...l}},...r?[{loader:"postcss-loader",options:d}]:[]]}function cssNodeModules(e={}){return css({pattern:"[local]",prodPattern:"[local]",modules:!1,...e})}!function(e){e.Default="ts",e.Babel="babel"}(TsLoaderType||(exports.TsLoaderType=TsLoaderType={})),exports.cssExtractLoader="mini-css-extract-plugin/dist/loader";
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.cssExtractLoader=exports.TsLoaderType=void 0,exports.ts=ts,exports.babelLoader=babelLoader,exports.getTsLoader=getTsLoader,exports.getTsCheckerPlugin=getTsCheckerPlugin,exports.tsRHL=tsRHL,exports.css=css,exports.cssNodeModules=cssNodeModules;const appEnv_ts_1=__importDefault(require("../appEnv.js")),paths_ts_1=__importDefault(require("../paths.js")),nodeRequire_ts_1=__importDefault(require("./nodeRequire.js"));var TsLoaderType;function ts({tsconfig:e,forkedChecks:t,useThreadLoader:o,threadLoaderOptions:s,afterLoaders:r,...a}){return[...o?[{loader:"thread-loader",options:{workers:1,poolTimeout:appEnv_ts_1.default.ifDev(1/0,void 0),...s}}]:[],...r??[],{loader:"ts-loader",options:{configFile:e,transpileOnly:t,happyPackMode:o,projectReferences:!0,...a,compilerOptions:{...appEnv_ts_1.default.ifProd(()=>({sourceMap:!1}),void 0),...a.compilerOptions}}}]}function babelLoader(e){return{loader:"babel-loader",options:{cacheDirectory:!0,cacheCompression:!1,...e}}}function getTsLoader({loaderType:e,...t}){return e===TsLoaderType.Babel?babelLoader():ts(t)}function getTsCheckerPlugin(e={}){return new((0,nodeRequire_ts_1.default)("fork-ts-checker-webpack-plugin"))({...e,typescript:{memoryLimit:1024,...e.typescript,diagnosticsOptions:{syntactic:!1,semantic:!0,declaration:!1,global:!1,...e.typescript?.diagnosticsOptions}}})}function tsRHL({afterLoaders:e,...t}){return ts({afterLoaders:[...e??[],...appEnv_ts_1.default.ifDev(()=>[{loader:"babel-loader"}],[])],...t})}function css({ssr:e=!1,pattern:t="[name]__[local]--[hash:5]",prodPattern:o="[hash:5]",postcss:s=!0,extractor:r=!1,modules:a,styleLoaderOptions:p,postcssLoaderOptions:d,...l}={}){return[...e?[]:[r?exports.cssExtractLoader:{loader:"style-loader",options:p}],{loader:"css-loader",options:{modules:null!=a&&"object"!=typeof a?a:{mode:"local",localIdentName:appEnv_ts_1.default.ifDev(t,o),localIdentContext:paths_ts_1.default.root,exportOnlyLocals:e,...a},importLoaders:s?1:void 0,...l}},...s?[{loader:"postcss-loader",options:d}]:[]]}function cssNodeModules(e={}){return css({pattern:"[local]",prodPattern:"[local]",modules:!1,...e})}!function(e){e.Default="ts",e.Babel="babel"}(TsLoaderType||(exports.TsLoaderType=TsLoaderType={})),exports.cssExtractLoader="mini-css-extract-plugin/dist/loader";
@@ -1,6 +1,6 @@
1
1
  import type { Configuration } from 'webpack';
2
2
  import webpackNodeExternals from 'webpack-node-externals';
3
- import { webDefaultRules, type WebConfigOptions } from './web.config';
3
+ import { webDefaultRules, type WebConfigOptions } from './web.config.ts';
4
4
  export declare const nodeDefaultRules: Pick<typeof webDefaultRules, 'jsRule' | 'tsBaseRule'>;
5
5
  export declare const universalDefaultRules: typeof webDefaultRules;
6
6
  export interface NodeConfigOptions extends WebConfigOptions {
@@ -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: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
+ "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_ts_1=__importDefault(require("../appEnv.js")),paths_ts_1=__importDefault(require("../paths.js")),buildConfig_ts_1=__importDefault(require("../buildConfig.js")),common_config_ts_1=__importDefault(require("./common.config.js")),web_config_ts_1=require("./web.config.js"),loaders_ts_1=require("./loaders.js");exports.nodeDefaultRules={jsRule:{...web_config_ts_1.webDefaultRules.jsRule,include:[...paths_ts_1.default.node.sources,...paths_ts_1.default.shared.sources].filter(e=>!!e)},tsBaseRule:{...web_config_ts_1.webDefaultRules.tsBaseRule,include:[...paths_ts_1.default.node.sources,...paths_ts_1.default.shared.sources].filter(e=>!!e)}},exports.universalDefaultRules={jsRule:{...web_config_ts_1.webDefaultRules.jsRule,include:[...web_config_ts_1.webDefaultRules.jsRule.include,...paths_ts_1.default.node.sources]},tsBaseRule:{...exports.nodeDefaultRules.tsBaseRule,include:[...web_config_ts_1.webDefaultRules.jsRule.include,...paths_ts_1.default.node.sources]},cssRule:{...web_config_ts_1.webDefaultRules.cssRule,use:(0,loaders_ts_1.css)({ssr:!0,extractor:!appEnv_ts_1.default.dev})},cssNodeModulesRule:{...web_config_ts_1.webDefaultRules.cssNodeModulesRule,use:(0,loaders_ts_1.cssNodeModules)({ssr:!0,extractor:!appEnv_ts_1.default.dev})},svgRule:{...web_config_ts_1.webDefaultRules.svgRule,generator:{emit:!1}},fontRule:{...web_config_ts_1.webDefaultRules.fontRule,generator:{emit:!1}},assetsRule:{...web_config_ts_1.webDefaultRules.assetsRule,generator:{emit:!1}}};const nodeBuildConfig=buildConfig_ts_1.default.node??buildConfig_ts_1.default.default.node;exports.default=({outputPath:e,outputPublicPath:s,outputJsDir:t,hash:o=!1,chunkSuffix:a=".chunk",typescript:u,rules:{tsBaseRule:l,...r}={},nodeExternalsOptions:_,isUniversal:d,...n})=>{const i={configFile:paths_ts_1.default.node.tsconfig,loader:loaders_ts_1.TsLoaderType.Default,loaderOptions:{},forkedChecks:!1,checkerOptions:{},threadLoader:!1,threadLoaderOptions:{},..."object"==typeof u?u:void 0},{tsBaseRule:f,...c}=d?exports.universalDefaultRules:exports.nodeDefaultRules,p={tsRule:{...f,...l,use:(0,loaders_ts_1.getTsLoader)({tsconfig:i.configFile,forkedChecks:i.forkedChecks,useThreadLoader:i.threadLoader,threadLoaderOptions:i.threadLoaderOptions,...i.loaderOptions,loaderType:i.loader})},...c},h=(0,web_config_ts_1.prepareRules)(r,p),b={...p,...h};return(0,common_config_ts_1.default)({outputPath:e,outputPublicPath:s,outputJsDir:t,hash:o,chunkSuffix:a,typescript:u?{...i,checkerOptions:{...i.checkerOptions,typescript:{...i.checkerOptions.typescript,diagnosticsOptions:{syntactic:i.threadLoader,...i.checkerOptions.typescript?.diagnosticsOptions}}}}:void 0,name:nodeBuildConfig.root,target:"node",context:d?paths_ts_1.default.root:paths_ts_1.default.node.root,...n,stats:!1===n.stats||n.stats&&"object"!=typeof n.stats?n.stats:{all:!1,errors:!0,errorDetails:!0,warnings:!0,version:!0,timings:!0,builtAt:!0,entrypoints:!0,...n.stats},externals:[(0,webpack_node_externals_1.default)(_),...n.externals&&(Array.isArray(n.externals)?n.externals:[n.externals])||[]],resolve:{...n.resolve,modules:[...d?paths_ts_1.default.web.sources:paths_ts_1.default.node.sources,...n.resolve?.modules??[]],alias:{...d?{node:paths_ts_1.default.node.sources,web:paths_ts_1.default.web.sources}:void 0,...paths_ts_1.default.shared.sources.length>0?{shared:paths_ts_1.default.shared.sources}:void 0,...n.resolve?.alias}},module:{...n.module,rules:[...Object.getOwnPropertyNames(b).map(e=>b[e]||{}),...n.module?.rules??[]]},watchOptions:{ignored:[paths_ts_1.default.nodeModules.root,...d&&!appEnv_ts_1.default.ssr?[paths_ts_1.default.web.root]:[]],...n.watchOptions}})};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default="function"==typeof __webpack_require__?__non_webpack_require__:require;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const defaultRequire_ts_1=require("../defaultRequire.js");exports.default="function"==typeof __webpack_require__?__non_webpack_require__:defaultRequire_ts_1.defaultRequire;
@@ -1,5 +1,5 @@
1
1
  import type { Configuration, RuleSetRule } from 'webpack';
2
- import { type CommonConfigOptions } from './common.config';
2
+ import { type CommonConfigOptions } from './common.config.ts';
3
3
  export declare const webDefaultRules: Record<'jsRule' | 'tsBaseRule' | 'cssRule' | 'cssNodeModulesRule' | 'svgRule' | 'fontRule' | 'assetsRule', RuleSetRule>;
4
4
  type DefaultRuleValue = RuleSetRule | ((defaults: RuleSetRule) => RuleSetRule);
5
5
  type WebDefaultRules = Record<Exclude<keyof typeof webDefaultRules, 'tsBaseRule'>, DefaultRuleValue> & {
@@ -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 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}={},...r})=>{const n={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:n.configFile,forkedChecks:n.forkedChecks,useThreadLoader:n.threadLoader,threadLoaderOptions:n.threadLoaderOptions,...n.loaderOptions,loaderType:n.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?{...n,checkerOptions:{...n.checkerOptions,typescript:{...n.checkerOptions.typescript,diagnosticsOptions:{syntactic:n.threadLoader,...n.checkerOptions.typescript?.diagnosticsOptions}}}}:void 0,name:webBuildConfig.root,target:"web",context:paths_1.default.web.root,stats:appEnv_1.default.ifDev("minimal",void 0),...r,optimization:{...r.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"}}),...r.optimization?.minimizer||[]]},void 0)},resolve:{...r.resolve,modules:[...paths_1.default.web.sources,...r.resolve?.modules||[]],alias:{...paths_1.default.shared.sources.length>0&&{shared:paths_1.default.shared.sources},...r.resolve?.alias||void 0}},module:{...r.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"}}]:[],...r.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,r=("string"==typeof i?i:i?.dir)||".";return new e({filename:`${r}/[name]${u}.css`,chunkFilename:`${r}/[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}))})})(),...r.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",...r.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_ts_1=__importDefault(require("../appEnv.js")),paths_ts_1=__importDefault(require("../paths.js")),buildConfig_ts_1=__importDefault(require("../buildConfig.js")),getInstalledPackage_ts_1=require("../getInstalledPackage.js"),common_config_ts_1=__importDefault(require("./common.config.js")),loaders_ts_1=require("./loaders.js"),nodeRequire_ts_1=__importDefault(require("./nodeRequire.js"));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 normalizeHtml(e){return Array.isArray(e)?e:[e]}exports.webDefaultRules={jsRule:{test:/\.m?jsx?$/,include:[...paths_ts_1.default.web.sources,...paths_ts_1.default.shared.sources].filter(e=>!!e),use:(0,loaders_ts_1.babelLoader)()},tsBaseRule:{test:/\.tsx?$/,include:[...paths_ts_1.default.web.sources,...paths_ts_1.default.shared.sources].filter(e=>!!e)},cssRule:{test:/\.css$/,include:[...paths_ts_1.default.web.sources,path_1.default.join(paths_ts_1.default.nodeModules.root,"@jstoolkit/react-components"),path_1.default.join(paths_ts_1.default.nodeModules.root,"@jstoolkit/editors"),path_1.default.join(paths_ts_1.default.nodeModules.root,"@js-toolkit/react-components"),path_1.default.join(paths_ts_1.default.nodeModules.root,"@js-toolkit/editors"),path_1.default.join(paths_ts_1.default.nodeModules.root,"reflexy")],use:(0,loaders_ts_1.css)({extractor:!appEnv_ts_1.default.dev})},cssNodeModulesRule:{test:/\.css$/,include:[paths_ts_1.default.nodeModules.root],exclude:[path_1.default.join(paths_ts_1.default.nodeModules.root,"@jstoolkit/react-components"),path_1.default.join(paths_ts_1.default.nodeModules.root,"@jstoolkit/editors"),path_1.default.join(paths_ts_1.default.nodeModules.root,"@js-toolkit/react-components"),path_1.default.join(paths_ts_1.default.nodeModules.root,"@js-toolkit/editors"),path_1.default.join(paths_ts_1.default.nodeModules.root,"reflexy")],use:(0,loaders_ts_1.cssNodeModules)({extractor:!appEnv_ts_1.default.dev})},svgRule:{test:/\.svg$/,include:[...paths_ts_1.default.web.sources,paths_ts_1.default.nodeModules.root],type:"asset/inline"},fontRule:{test:/\.(eot|ttf|woff|woff2|otf)$/,include:[...paths_ts_1.default.web.assets,paths_ts_1.default.nodeModules.root],type:"asset",parser:{dataUrlCondition:{maxSize:4096}},generator:{filename:`${(buildConfig_ts_1.default.web??buildConfig_ts_1.default.default.web).output.assets}/[name].[hash:8].[ext][query]`}},assetsRule:{test:/\.(png|jpg|gif|ico)$/,include:[...paths_ts_1.default.web.assets,paths_ts_1.default.nodeModules.root],type:"asset",parser:{dataUrlCondition:{maxSize:8192}},generator:{filename:`${(buildConfig_ts_1.default.web??buildConfig_ts_1.default.default.web).output.assets}/[name].[hash:8].[ext][query]`}}};const webBuildConfig=buildConfig_ts_1.default.web??buildConfig_ts_1.default.default.web;exports.default=({outputPath:e,outputPublicPath:t,outputJsDir:s,hash:o=!0,chunkSuffix:a=".chunk",typescript:u,rules:{tsBaseRule:l,...r}={},...i})=>{const n={configFile:paths_ts_1.default.web.tsconfig,loader:loaders_ts_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_ts_1.getTsLoader)({tsconfig:n.configFile,forkedChecks:n.forkedChecks,useThreadLoader:n.threadLoader,threadLoaderOptions:n.threadLoaderOptions,...n.loaderOptions,loaderType:n.loader})},...p},_=prepareRules(r,f),c={...f,..._};return(0,common_config_ts_1.default)({outputPath:e,outputPublicPath:t,outputJsDir:s,hash:o,chunkSuffix:a,typescript:u?{...n,checkerOptions:{...n.checkerOptions,typescript:{...n.checkerOptions.typescript,diagnosticsOptions:{syntactic:n.threadLoader,...n.checkerOptions.typescript?.diagnosticsOptions}}}}:void 0,name:webBuildConfig.root,target:"web",context:paths_ts_1.default.web.root,stats:appEnv_ts_1.default.ifDev("minimal",void 0),...i,optimization:{...i.optimization,...appEnv_ts_1.default.ifProd({minimizer:[(0,getInstalledPackage_ts_1.getInstalledPackage)("css-minimizer-webpack-plugin")&&new((0,nodeRequire_ts_1.default)("css-minimizer-webpack-plugin"))({minimizerOptions:{preset:"default"}}),...i.optimization?.minimizer??[]]},void 0)},resolve:{...i.resolve,modules:[...paths_ts_1.default.web.sources,...i.resolve?.modules??[]],alias:{...paths_ts_1.default.shared.sources.length>0&&{shared:paths_ts_1.default.shared.sources},...i.resolve?.alias}},module:{...i.module,rules:[...Object.getOwnPropertyNames(c).map(e=>c[e]||{}),...normalizeHtml(webBuildConfig.html).some(({template:e})=>e?.endsWith(".pug"))?[{test:/\.pug$/,use:{loader:"pug-loader"}}]:[],...i.module?.rules??[]]},plugins:[...(()=>{const e=normalizeHtml(webBuildConfig.html);return e.filter(e=>!!e.template).map(({inject:e,template:t,...s})=>new((0,nodeRequire_ts_1.default)("html-webpack-plugin"))({inject:e??!1,template:path_1.default.join(paths_ts_1.default.web.root,t),...s}))})(),containsLoader(c,loaders_ts_1.cssExtractLoader)&&(()=>{const e=(0,nodeRequire_ts_1.default)("mini-css-extract-plugin"),t=!0===o||"object"==typeof o&&o.entry,s=!0===o||"object"==typeof o&&o.chunk,u=appEnv_ts_1.default.prod&&t?".[contenthash:8]":"",l=appEnv_ts_1.default.prod&&s?".[contenthash:8]":"",{styles:r}=webBuildConfig.output,i=("string"==typeof r?r:r?.dir)||".";return new e({filename:`${i}/[name]${u}.css`,chunkFilename:`${i}/[name]${l}${a??""}.css`,..."object"==typeof r&&r})})(),webBuildConfig.output.assetManifest.fileName&&(()=>{const{fileName:e,filterTemplate:t}=webBuildConfig.output.assetManifest,s=!!t&&!!Object.getOwnPropertyNames(t).length;return new((0,nodeRequire_ts_1.default)("webpack-manifest-plugin"))({fileName:e,filter:s?e=>Object.getOwnPropertyNames(t).every(s=>!(s in e)||e[s]===t[s]):void 0})})(),(webBuildConfig.output.sw.swDest||webBuildConfig.output.sw.swSrc)&&(()=>{const{GenerateSW:e,InjectManifest:t}=(0,nodeRequire_ts_1.default)("workbox-webpack-plugin"),s=[/\.map$/,/^manifest.*\.js$/,webBuildConfig.output.assetManifest.fileName&&new RegExp(`${webBuildConfig.output.assetManifest.fileName}$`)].filter(Boolean),{swSrc:o,swDest:a,...u}=webBuildConfig.output.sw;return o?new t({swSrc:o,...a&&{swDest:a},exclude:s,...u}):new e({...a&&{swDest:a},clientsClaim:!0,exclude:s,...u})})(),appEnv_ts_1.default.prod&&paths_ts_1.default.web.staticContent.length>0&&(()=>{const e=paths_ts_1.default.web.staticContent.filter(e=>e.path!==paths_ts_1.default.web.root&&!paths_ts_1.default.web.sources.includes(e.path));if(0===e.length)return;return new((0,nodeRequire_ts_1.default)("copy-webpack-plugin"))({patterns:e.map(({path:e,ignore:t,...s})=>({from:e,...t&&{globOptions:{ignore:t}},...s}))})})(),...i.plugins??[]].filter(Boolean),devServer:{static:paths_ts_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",...i.devServer}})};
@@ -1,8 +0,0 @@
1
- {
2
- "extends": "./common.tsconfig.json",
3
- "compilerOptions": {
4
- "target": "ES2015",
5
- "module": "Preserve",
6
- "moduleResolution": "bundler"
7
- }
8
- }