@js-toolkit/configs 3.88.2 → 3.89.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
@@ -1,6 +1,6 @@
1
- export type NodeEnv = 'development' | 'production';
1
+ export type NodeEnv = 'development' | 'test' | 'production';
2
2
  export type EnvVarType = string | number | boolean | undefined;
3
- /** Useful with module augmentation */
3
+ /** Useful with module augmentation. */
4
4
  export interface AppEnvVars {
5
5
  NODE_ENV: NodeEnv;
6
6
  APP_SSR: boolean;
@@ -16,15 +16,19 @@ export interface AppEnvironment {
16
16
  };
17
17
  has<T extends keyof AppEnvVars>(envVarName: T): boolean;
18
18
  get<T extends keyof AppEnvVars>(envVarName: T): AppEnvVars[T];
19
- /** Use APP_SSR environment variable */
19
+ /** Use APP_SSR environment variable. */
20
20
  ssr: boolean;
21
- /** Use NODE_ENV environment variable */
21
+ /** Use NODE_ENV environment variable. */
22
22
  dev: boolean;
23
- /** Use NODE_ENV environment variable */
23
+ /** Use NODE_ENV environment variable. */
24
+ test: boolean;
25
+ /** Use NODE_ENV environment variable. */
24
26
  prod: boolean;
25
- /** Use NODE_ENV environment variable */
27
+ /** Use NODE_ENV environment variable. */
26
28
  ifDev<T>(devModeValue: ValueOrGetter<T>, elseValue: ValueOrGetter<T>): T;
27
- /** Use NODE_ENV environment variable */
29
+ /** Use NODE_ENV environment variable. */
30
+ ifTest<T>(testModeValue: ValueOrGetter<T>, elseValue: ValueOrGetter<T>): T;
31
+ /** Use NODE_ENV environment variable. */
28
32
  ifProd<T>(prodModeValue: ValueOrGetter<T>, elseValue: ValueOrGetter<T>): T;
29
33
  }
30
34
  /**
@@ -34,6 +38,8 @@ export interface AppEnvironment {
34
38
  export declare function getAppEnvironment(): AppEnvironment;
35
39
  /**
36
40
  * App environment variables.
41
+ * Grabed NODE_ENV and APP_* environment variables and prepared them to be
42
+ * injected into the application via DefinePlugin in Webpack configuration.
37
43
  * User defined environment variables must start with APP_.
38
44
  */
39
45
  declare const appEnv: AppEnvironment;
package/appEnv.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAppEnvironment=void 0;const APP=/^APP_/i;function tryParse(e){if(null==e)return e;try{return JSON.parse(e)}catch(t){return e}}function getAppEnvironment(){const e=process.env,t=Object.keys(e).filter((e=>APP.test(e))).reduce(((t,r)=>(t[r]=tryParse(e[r]),t)),{NODE_ENV:tryParse(e.NODE_ENV||"development"),APP_SSR:!1}),r={raw:t,envStringify(){return{"process.env":Object.keys(this.raw).reduce(((e,t)=>(e[t]=JSON.stringify(this.raw[t]),e)),{})}},has:e=>e in t,get:e=>t[e],get ssr(){return!0===this.raw.APP_SSR},get dev(){return"development"===this.raw.NODE_ENV},get prod(){return"production"===this.raw.NODE_ENV},ifDev(e,t){return this.dev?"function"==typeof e?e():e:"function"==typeof t?t():t},ifProd(e,t){return this.prod?"function"==typeof e?e():e:"function"==typeof t?t():t}};return("undefined"==typeof window?global:window).Proxy?new Proxy(r,{get:(e,t)=>"string"!=typeof t||t in e?e[t]:e.raw[t],has:(e,t)=>t in e||t in e.raw}):r}exports.getAppEnvironment=getAppEnvironment;const appEnv=getAppEnvironment();exports.default=appEnv;
1
+ "use strict";function parseJson(e){if(null==e)return e;try{return JSON.parse(e)}catch(t){return e}}function getAppEnvironment(){const e=/^APP_/i,t=process.env,n=Object.keys(t).filter((t=>e.test(t))).reduce(((e,n)=>(e[n]=parseJson(t[n]),e)),{NODE_ENV:parseJson(t.NODE_ENV||"development"),APP_SSR:!1}),r={raw:n,envStringify(){return{"process.env":Object.keys(this.raw).reduce(((e,t)=>(e[t]=JSON.stringify(this.raw[t]),e)),{})}},has:e=>e in n,get:e=>n[e],get ssr(){return!0===this.raw.APP_SSR},get dev(){return"development"===this.raw.NODE_ENV},get test(){return"test"===this.raw.NODE_ENV},get prod(){return"production"===this.raw.NODE_ENV},ifDev(e,t){return this.dev?"function"==typeof e?e():e:"function"==typeof t?t():t},ifTest(e,t){return this.test?"function"==typeof e?e():e:"function"==typeof t?t():t},ifProd(e,t){return this.prod?"function"==typeof e?e():e:"function"==typeof t?t():t}};return("undefined"==typeof window?global:window).Proxy?new Proxy(r,{get:(e,t)=>"string"!=typeof t||t in e?e[t]:e.raw[t],has:(e,t)=>t in e||t in e.raw}):r}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAppEnvironment=void 0,exports.getAppEnvironment=getAppEnvironment;const appEnv=getAppEnvironment();exports.default=appEnv;
package/buildConfig.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBuildConfig=exports.resolveConfigPath=void 0;const buildConfigDefaults_1=__importDefault(require("./buildConfigDefaults"));function resolveConfigPath(e=["build.config","apprc"],t=[process.cwd()]){let r="";for(let o=0,i=e[o];o<e.length;o+=1)try{if(r=require.resolve(`./${i}`,{paths:t}),r)return r}catch(e){}return r}function merge(e,t){return Array.from(new Set([...Object.getOwnPropertyNames(e),...Object.getOwnPropertyNames(t)])).reduce(((r,o)=>{var i,n;const s=o;return Array.isArray(e[s])||Array.isArray(t[s])?r[s]=null!==(i=t[s])&&void 0!==i?i:e[s]:"object"==typeof e[s]&&"object"==typeof t[s]?r[s]=merge(e[s],null!==(n=t[s])&&void 0!==n?n:{}):r[s]=s in t?t[s]:e[s],r}),{})}function getBuildConfig(e=resolveConfigPath()){const t=process.env.buildConfig||process.env.apprc||process.env.appConfig||(e?merge(buildConfigDefaults_1.default,require(e)):{output:buildConfigDefaults_1.default.output,client:!1,server:!1,shared:!1});return Object.assign(Object.assign({},t),{default:buildConfigDefaults_1.default,envStringify(){const e=JSON.stringify(this);return{"process.env.buildConfig":e,"process.env.apprc":e,"process.env.appConfig":e}}})}exports.resolveConfigPath=resolveConfigPath,exports.getBuildConfig=getBuildConfig;const buildConfig=getBuildConfig();exports.default=buildConfig;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBuildConfig=exports.resolveConfigPath=void 0;const buildConfigDefaults_1=__importDefault(require("./buildConfigDefaults"));function resolveConfigPath(e=["build.config"],t=[process.cwd()]){let r="";for(let i=0,o=e[i];i<e.length;i+=1)try{if(r=require.resolve(`./${o}`,{paths:t}),r)return r}catch(e){}return r}function merge(e,t){return Array.from(new Set([...Object.getOwnPropertyNames(e),...Object.getOwnPropertyNames(t)])).reduce(((r,i)=>{var o,n;const u=i;return Array.isArray(e[u])||Array.isArray(t[u])?r[u]=null!==(o=t[u])&&void 0!==o?o:e[u]:"object"==typeof e[u]&&"object"==typeof t[u]?r[u]=merge(e[u],null!==(n=t[u])&&void 0!==n?n:{}):r[u]=u in t?t[u]:e[u],r}),{})}function getBuildConfig(e=resolveConfigPath()){const t=process.env.buildConfig||(e?merge(buildConfigDefaults_1.default,require(e)):{output:buildConfigDefaults_1.default.output,client:!1,server:!1,shared:!1});return Object.assign(Object.assign({},t),{default:buildConfigDefaults_1.default,envStringify(){return{"process.env.buildConfig":JSON.stringify(this)}}})}exports.resolveConfigPath=resolveConfigPath,exports.getBuildConfig=getBuildConfig;const buildConfig=getBuildConfig();exports.default=buildConfig;
@@ -10,13 +10,13 @@ export declare function getClientConfig(root?: string): {
10
10
  sources: string;
11
11
  assets: string;
12
12
  staticContent: StaticContentOptions;
13
- /** Generating html options */
13
+ /** Generating html options. */
14
14
  html: HtmlOptions | HtmlOptions[];
15
- /** Used by eslint webpack resolver */
15
+ /** Used by eslint webpack resolver. */
16
16
  webpackConfig: string;
17
- /** Used by webpack loaders and plugins */
17
+ /** Used by webpack loaders and plugins. */
18
18
  tsconfig: string;
19
- /** Plug'n'Play resolver for Webpack */
19
+ /** Plug'n'Play resolver for Webpack. */
20
20
  webpackPnpEnabled: boolean;
21
21
  output: {
22
22
  root: string;
@@ -25,15 +25,15 @@ export declare function getClientConfig(root?: string): {
25
25
  assets: string;
26
26
  external: string;
27
27
  publicPath: string;
28
- /** Generated asset manifest */
28
+ /** Generated asset manifest. */
29
29
  assetManifest: {
30
- /** For example: `asset-manifest.json` */
30
+ /** For example: `asset-manifest.json`. */
31
31
  fileName: string;
32
32
  filterTemplate: {};
33
33
  };
34
- /** Generating service worker options (workbox-webpack-plugin) */
34
+ /** Generating service worker options (workbox-webpack-plugin). */
35
35
  sw: {
36
- /** For example: `service-worker.js` */
36
+ /** For example: `service-worker.js`. */
37
37
  swDest: string;
38
38
  };
39
39
  };
@@ -41,9 +41,9 @@ export declare function getClientConfig(root?: string): {
41
41
  export declare function getServerConfig(root?: string): {
42
42
  root: string;
43
43
  sources: string;
44
- /** Used by eslint webpack resolver */
44
+ /** Used by eslint webpack resolver. */
45
45
  webpackConfig: string;
46
- /** Used by webpack loaders and plugins */
46
+ /** Used by webpack loaders and plugins. */
47
47
  tsconfig: string;
48
48
  output: {
49
49
  root: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@js-toolkit/configs",
3
- "version": "3.88.2",
3
+ "version": "3.89.0",
4
4
  "description": "Preconfigured configurations",
5
5
  "author": "VZH",
6
6
  "license": "MIT",
@@ -19,25 +19,25 @@
19
19
  "minor-publish": "yarn run build && yarn run minify && npm version minor --no-workspaces-update -m 'v%s' && yarn run copy && cd ./dist && npm publish --access public && git push --follow-tags"
20
20
  },
21
21
  "devDependencies": {
22
- "@types/eslint": "^8.44.7",
22
+ "@types/eslint": "^8.56.1",
23
23
  "@types/webpack-node-externals": "^3.0.4",
24
- "@typescript-eslint/eslint-plugin": "^6.11.0",
25
- "@typescript-eslint/parser": "^6.11.0",
24
+ "@typescript-eslint/eslint-plugin": "^6.18.1",
25
+ "@typescript-eslint/parser": "^6.18.1",
26
26
  "copy-webpack-plugin": "^11.0.0",
27
27
  "copyfiles": "^2.4.1",
28
- "eslint": "^8.54.0",
28
+ "eslint": "^8.56.0",
29
29
  "eslint-config-airbnb": "^19.0.4",
30
30
  "eslint-config-airbnb-base": "^15.0.0",
31
- "eslint-config-prettier": "^9.0.0",
32
- "eslint-plugin-import": "^2.29.0",
31
+ "eslint-config-prettier": "^9.1.0",
32
+ "eslint-plugin-import": "^2.29.1",
33
33
  "eslint-plugin-jsx-a11y": "^6.8.0",
34
- "eslint-plugin-prettier": "^5.0.1",
34
+ "eslint-plugin-prettier": "^5.1.2",
35
35
  "eslint-plugin-react": "^7.33.2",
36
36
  "eslint-plugin-react-hooks": "^4.6.0",
37
- "html-webpack-plugin": "^5.5.3",
38
- "prettier": "^3.1.0",
37
+ "html-webpack-plugin": "^5.6.0",
38
+ "prettier": "^3.1.1",
39
39
  "rimraf": "^5.0.5",
40
- "typescript": "^5.2.2",
40
+ "typescript": "^5.3.3",
41
41
  "webpack": "^5.89.0",
42
42
  "webpack-dev-server": "^4.15.1",
43
43
  "webpack-node-externals": "^3.0.0"
@@ -1 +1 @@
1
- "use strict";var __rest=this&&this.__rest||function(e,t){var s={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(s[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a<o.length;a++)t.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(s[o[a]]=e[o[a]])}return s},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.prepareRules=exports.clientDefaultRules=void 0;const path_1=__importDefault(require("path")),appEnv_1=__importDefault(require("../appEnv")),paths_1=__importDefault(require("../paths")),buildConfig_1=__importDefault(require("../buildConfig")),common_config_1=__importDefault(require("./common.config")),loaders_1=require("./loaders"),nodeRequire_1=__importDefault(require("./nodeRequire"));function containsLoader(e,t){const s=e=>"string"==typeof e?e.includes(t):Array.isArray(e)?e.some(s):!("function"==typeof e||!e||!e.loader)&&e.loader.includes(t);return Object.getOwnPropertyNames(e).some((t=>{const o=e[t];return o&&s(o.loader||o.use)}))}function prepareRules(e,t){return Object.entries(e).reduce(((e,[s,o])=>("function"==typeof o&&s in t&&t[s]?e[s]=o(t[s]):e[s]=o,e)),{})}function getPnpWebpackPlugin(){return(0,nodeRequire_1.default)("pnp-webpack-plugin")}function normalizeHtml(e){return Array.isArray(e)?e:[e]}exports.clientDefaultRules={jsRule:{test:/\.m?jsx?$/,include:[paths_1.default.client.sources,paths_1.default.shared.sources].filter((e=>!!e)),use:(0,loaders_1.babelLoader)()},tsBaseRule:{test:/\.tsx?$/,include:[paths_1.default.client.sources,paths_1.default.shared.sources].filter((e=>!!e))},cssRule:{test:/\.css$/,include:[paths_1.default.client.sources,path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"reflexy")],use:(0,loaders_1.css)()},cssNodeModulesRule:{test:/\.css$/,include:[paths_1.default.nodeModules.root],exclude:[path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"reflexy")],use:(0,loaders_1.cssNodeModules)()},svgRule:{test:/\.svg$/,include:[paths_1.default.client.sources,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)({limit:void 0})},fontRule:{test:/\.(eot|ttf|woff|woff2|otf)$/,include:[paths_1.default.client.assets,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)()},assetsRule:{test:/\.(png|jpg|gif|ico)$/,include:[paths_1.default.client.assets,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)()}},exports.prepareRules=prepareRules;const clientBuildConfig=buildConfig_1.default.client||buildConfig_1.default.default.client;exports.default=e=>{var t,s,o,{outputPath:a=paths_1.default.client.output.path,outputPublicPath:n=clientBuildConfig.output.publicPath,outputJsDir:l=clientBuildConfig.output.js,hash:i=!0,chunkSuffix:r=".chunk",typescript:u}=e,c=e.rules,d=void 0===c?{}:c,{tsBaseRule:p}=d,f=__rest(d,["tsBaseRule"]),g=__rest(e,["outputPath","outputPublicPath","outputJsDir","hash","chunkSuffix","typescript","rules"]);const h=Object.assign({configFile:paths_1.default.client.tsconfig,loader:loaders_1.TsLoaderType.Default,loaderOptions:{},forkedChecks:!1,checkerOptions:{},threadLoader:!1,threadLoaderOptions:{}},"object"==typeof u?u:void 0),{tsBaseRule:_}=exports.clientDefaultRules,m=__rest(exports.clientDefaultRules,["tsBaseRule"]),b=Object.assign({tsRule:Object.assign(Object.assign(Object.assign({},_),p),{use:(0,loaders_1.getTsLoader)(Object.assign(Object.assign({tsconfig:h.configFile,forkedChecks:h.forkedChecks,useThreadLoader:h.threadLoader,threadLoaderOptions:h.threadLoaderOptions},h.loaderOptions),{loaderType:h.loader}))})},m),O=prepareRules(f,b),j=Object.assign(Object.assign({},b),O);return(0,common_config_1.default)(Object.assign(Object.assign({outputPath:a,outputPublicPath:n,outputJsDir:l,hash:i,chunkSuffix:r,typescript:u?Object.assign(Object.assign({},h),{checkerOptions:Object.assign(Object.assign({},h.checkerOptions),{typescript:Object.assign(Object.assign({},h.checkerOptions.typescript),{diagnosticsOptions:Object.assign({syntactic:h.threadLoader},null===(t=h.checkerOptions.typescript)||void 0===t?void 0:t.diagnosticsOptions)})})}):void 0,name:clientBuildConfig.root,target:"web",context:paths_1.default.client.sources,stats:appEnv_1.default.ifDev("minimal",void 0)},g),{resolve:Object.assign(Object.assign({},g.resolve),{modules:[paths_1.default.client.sources,...g.resolve&&g.resolve.modules||[]],alias:Object.assign(Object.assign({},paths_1.default.shared.sources?{shared:paths_1.default.shared.sources}:void 0),g.resolve&&g.resolve.alias||void 0),plugins:[...clientBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin()]:[],...g.resolve&&g.resolve.plugins||[]]}),resolveLoader:Object.assign(Object.assign({},g.resolveLoader),{plugins:[...clientBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin().moduleLoader(module)]:[],...g.resolveLoader&&g.resolveLoader.plugins||[]]}),module:Object.assign(Object.assign({},g.module),{rules:[...Object.getOwnPropertyNames(j).map((e=>j[e]||{})),...normalizeHtml(clientBuildConfig.html).some((({template:e})=>e&&e.endsWith(".pug")))?[{test:/\.pug$/,use:{loader:"pug-loader"}}]:[],...g.module&&g.module.rules||[]]}),plugins:[...(()=>{const e=normalizeHtml(clientBuildConfig.html);return e.filter((e=>!!e.template)).map((e=>{var{inject:t,template:s}=e,o=__rest(e,["inject","template"]);return new((0,nodeRequire_1.default)("html-webpack-plugin"))(Object.assign({inject:null!=t&&t,template:path_1.default.join(paths_1.default.client.sources,s)},o))}))})(),containsLoader(j,loaders_1.cssExtractLoader)&&(()=>{const e=(0,nodeRequire_1.default)("extract-css-chunks-webpack-plugin"),t=!0===i||"object"==typeof i&&i.entry,s=!0===i||"object"==typeof i&&i.chunk,o=appEnv_1.default.prod&&t?".[contenthash:8]":"",a=appEnv_1.default.prod&&s?".[contenthash:8]":"",n=clientBuildConfig.output.styles;return new e({filename:`${n}/[name]${o}.css`,chunkFilename:`${n}/[name]${a}${null!=r?r:""}.css`})})(),(null===(o=null===(s=g.optimization)||void 0===s?void 0:s.minimize)||void 0===o||o)&&containsLoader(j,loaders_1.cssExtractLoader)&&new((0,nodeRequire_1.default)("optimize-css-assets-webpack-plugin"))({cssProcessorPluginOptions:{preset:["default",{discardComments:{removeAll:!0}}]}}),clientBuildConfig.output.assetManifest.fileName&&(()=>{const{fileName:e,filterTemplate:t}=clientBuildConfig.output.assetManifest,s=!!t&&!!Object.getOwnPropertyNames(t).length;return new((0,nodeRequire_1.default)("webpack-manifest-plugin"))({fileName:e,filter:s?e=>Object.getOwnPropertyNames(t).every((s=>!(s in e)||e[s]===t[s])):void 0})})(),appEnv_1.default.prod&&clientBuildConfig.output.sw.swDest&&(()=>{var e;const{GenerateSW:t}=(0,nodeRequire_1.default)("workbox-webpack-plugin"),s=normalizeHtml(clientBuildConfig.html),o=1===s.length?s[0].filename:null===(e=s.find((({main:e})=>!!e)))||void 0===e?void 0:e.filename;return new t(Object.assign({clientsClaim:!0,importWorkboxFrom:"cdn",exclude:[/\.map$/,new RegExp(`${clientBuildConfig.output.assetManifest.fileName}$`)],navigateFallback:o&&"string"==typeof o?`${clientBuildConfig.output.publicPath}${o}`:void 0,navigateFallbackBlacklist:[/^\/_/,/\/[^/]+\.[^/]+$/]},clientBuildConfig.output.sw))})(),appEnv_1.default.prod&&paths_1.default.client.staticContent.length>0&&(()=>{const e=paths_1.default.client.staticContent.filter((e=>e.path!==paths_1.default.client.root&&e.path!==paths_1.default.client.sources));if(0===e.length)return;return new((0,nodeRequire_1.default)("copy-webpack-plugin"))({patterns:e.map((e=>{var{path:t,ignore:s}=e,o=__rest(e,["path","ignore"]);return Object.assign(Object.assign({from:t},s&&{globOptions:{ignore:s}}),o)}))})})(),...g.plugins||[]].filter(Boolean),devServer:Object.assign({static:paths_1.default.client.staticContent.map((({path:e,ignore:t})=>Object.assign({directory:e},t&&{watch:{ignored:t}}))),historyApiFallback:!0,host:"0.0.0.0",port:9e3,hot:"only"},g.devServer)}))};
1
+ "use strict";var __rest=this&&this.__rest||function(e,t){var s={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(s[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a<o.length;a++)t.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(s[o[a]]=e[o[a]])}return s},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.prepareRules=exports.clientDefaultRules=void 0;const path_1=__importDefault(require("path")),appEnv_1=__importDefault(require("../appEnv")),paths_1=__importDefault(require("../paths")),buildConfig_1=__importDefault(require("../buildConfig")),common_config_1=__importDefault(require("./common.config")),loaders_1=require("./loaders"),nodeRequire_1=__importDefault(require("./nodeRequire"));function containsLoader(e,t){const s=e=>"string"==typeof e?e.includes(t):Array.isArray(e)?e.some(s):!("function"==typeof e||!e||!e.loader)&&e.loader.includes(t);return Object.getOwnPropertyNames(e).some((t=>{const o=e[t];return o&&s(o.loader||o.use)}))}function prepareRules(e,t){return Object.entries(e).reduce(((e,[s,o])=>("function"==typeof o&&s in t&&t[s]?e[s]=o(t[s]):e[s]=o,e)),{})}function getPnpWebpackPlugin(){return(0,nodeRequire_1.default)("pnp-webpack-plugin")}function normalizeHtml(e){return Array.isArray(e)?e:[e]}exports.clientDefaultRules={jsRule:{test:/\.m?jsx?$/,include:[paths_1.default.client.sources,paths_1.default.shared.sources].filter((e=>!!e)),use:(0,loaders_1.babelLoader)()},tsBaseRule:{test:/\.tsx?$/,include:[paths_1.default.client.sources,paths_1.default.shared.sources].filter((e=>!!e))},cssRule:{test:/\.css$/,include:[paths_1.default.client.sources,path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"@js-toolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@js-toolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"reflexy")],use:(0,loaders_1.css)()},cssNodeModulesRule:{test:/\.css$/,include:[paths_1.default.nodeModules.root],exclude:[path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"@js-toolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@js-toolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"reflexy")],use:(0,loaders_1.cssNodeModules)()},svgRule:{test:/\.svg$/,include:[paths_1.default.client.sources,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)({limit:void 0})},fontRule:{test:/\.(eot|ttf|woff|woff2|otf)$/,include:[paths_1.default.client.assets,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)()},assetsRule:{test:/\.(png|jpg|gif|ico)$/,include:[paths_1.default.client.assets,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)()}},exports.prepareRules=prepareRules;const clientBuildConfig=buildConfig_1.default.client||buildConfig_1.default.default.client;exports.default=e=>{var t,s,o,{outputPath:a=paths_1.default.client.output.path,outputPublicPath:l=clientBuildConfig.output.publicPath,outputJsDir:n=clientBuildConfig.output.js,hash:i=!0,chunkSuffix:u=".chunk",typescript:r}=e,d=e.rules,c=void 0===d?{}:d,{tsBaseRule:p}=c,f=__rest(c,["tsBaseRule"]),h=__rest(e,["outputPath","outputPublicPath","outputJsDir","hash","chunkSuffix","typescript","rules"]);const _=Object.assign({configFile:paths_1.default.client.tsconfig,loader:loaders_1.TsLoaderType.Default,loaderOptions:{},forkedChecks:!1,checkerOptions:{},threadLoader:!1,threadLoaderOptions:{}},"object"==typeof r?r:void 0),{tsBaseRule:g}=exports.clientDefaultRules,m=__rest(exports.clientDefaultRules,["tsBaseRule"]),b=Object.assign({tsRule:Object.assign(Object.assign(Object.assign({},g),p),{use:(0,loaders_1.getTsLoader)(Object.assign(Object.assign({tsconfig:_.configFile,forkedChecks:_.forkedChecks,useThreadLoader:_.threadLoader,threadLoaderOptions:_.threadLoaderOptions},_.loaderOptions),{loaderType:_.loader}))})},m),j=prepareRules(f,b),O=Object.assign(Object.assign({},b),j);return(0,common_config_1.default)(Object.assign(Object.assign({outputPath:a,outputPublicPath:l,outputJsDir:n,hash:i,chunkSuffix:u,typescript:r?Object.assign(Object.assign({},_),{checkerOptions:Object.assign(Object.assign({},_.checkerOptions),{typescript:Object.assign(Object.assign({},_.checkerOptions.typescript),{diagnosticsOptions:Object.assign({syntactic:_.threadLoader},null===(t=_.checkerOptions.typescript)||void 0===t?void 0:t.diagnosticsOptions)})})}):void 0,name:clientBuildConfig.root,target:"web",context:paths_1.default.client.sources,stats:appEnv_1.default.ifDev("minimal",void 0)},h),{resolve:Object.assign(Object.assign({},h.resolve),{modules:[paths_1.default.client.sources,...h.resolve&&h.resolve.modules||[]],alias:Object.assign(Object.assign({},paths_1.default.shared.sources?{shared:paths_1.default.shared.sources}:void 0),h.resolve&&h.resolve.alias||void 0),plugins:[...clientBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin()]:[],...h.resolve&&h.resolve.plugins||[]]}),resolveLoader:Object.assign(Object.assign({},h.resolveLoader),{plugins:[...clientBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin().moduleLoader(module)]:[],...h.resolveLoader&&h.resolveLoader.plugins||[]]}),module:Object.assign(Object.assign({},h.module),{rules:[...Object.getOwnPropertyNames(O).map((e=>O[e]||{})),...normalizeHtml(clientBuildConfig.html).some((({template:e})=>e&&e.endsWith(".pug")))?[{test:/\.pug$/,use:{loader:"pug-loader"}}]:[],...h.module&&h.module.rules||[]]}),plugins:[...(()=>{const e=normalizeHtml(clientBuildConfig.html);return e.filter((e=>!!e.template)).map((e=>{var{inject:t,template:s}=e,o=__rest(e,["inject","template"]);return new((0,nodeRequire_1.default)("html-webpack-plugin"))(Object.assign({inject:null!=t&&t,template:path_1.default.join(paths_1.default.client.sources,s)},o))}))})(),containsLoader(O,loaders_1.cssExtractLoader)&&(()=>{const e=(0,nodeRequire_1.default)("extract-css-chunks-webpack-plugin"),t=!0===i||"object"==typeof i&&i.entry,s=!0===i||"object"==typeof i&&i.chunk,o=appEnv_1.default.prod&&t?".[contenthash:8]":"",a=appEnv_1.default.prod&&s?".[contenthash:8]":"",l=clientBuildConfig.output.styles;return new e({filename:`${l}/[name]${o}.css`,chunkFilename:`${l}/[name]${a}${null!=u?u:""}.css`})})(),(null===(o=null===(s=h.optimization)||void 0===s?void 0:s.minimize)||void 0===o||o)&&containsLoader(O,loaders_1.cssExtractLoader)&&new((0,nodeRequire_1.default)("optimize-css-assets-webpack-plugin"))({cssProcessorPluginOptions:{preset:["default",{discardComments:{removeAll:!0}}]}}),clientBuildConfig.output.assetManifest.fileName&&(()=>{const{fileName:e,filterTemplate:t}=clientBuildConfig.output.assetManifest,s=!!t&&!!Object.getOwnPropertyNames(t).length;return new((0,nodeRequire_1.default)("webpack-manifest-plugin"))({fileName:e,filter:s?e=>Object.getOwnPropertyNames(t).every((s=>!(s in e)||e[s]===t[s])):void 0})})(),appEnv_1.default.prod&&clientBuildConfig.output.sw.swDest&&(()=>{var e;const{GenerateSW:t}=(0,nodeRequire_1.default)("workbox-webpack-plugin"),s=normalizeHtml(clientBuildConfig.html),o=1===s.length?s[0].filename:null===(e=s.find((({main:e})=>!!e)))||void 0===e?void 0:e.filename;return new t(Object.assign({clientsClaim:!0,importWorkboxFrom:"cdn",exclude:[/\.map$/,new RegExp(`${clientBuildConfig.output.assetManifest.fileName}$`)],navigateFallback:o&&"string"==typeof o?`${clientBuildConfig.output.publicPath}${o}`:void 0,navigateFallbackBlacklist:[/^\/_/,/\/[^/]+\.[^/]+$/]},clientBuildConfig.output.sw))})(),appEnv_1.default.prod&&paths_1.default.client.staticContent.length>0&&(()=>{const e=paths_1.default.client.staticContent.filter((e=>e.path!==paths_1.default.client.root&&e.path!==paths_1.default.client.sources));if(0===e.length)return;return new((0,nodeRequire_1.default)("copy-webpack-plugin"))({patterns:e.map((e=>{var{path:t,ignore:s}=e,o=__rest(e,["path","ignore"]);return Object.assign(Object.assign({from:t},s&&{globOptions:{ignore:s}}),o)}))})})(),...h.plugins||[]].filter(Boolean),devServer:Object.assign({static:paths_1.default.client.staticContent.map((({path:e,ignore:t})=>Object.assign({directory:e},t&&{watch:{ignored:t}}))),historyApiFallback:!0,host:"0.0.0.0",port:9e3,hot:"only"},h.devServer)}))};
@@ -16,7 +16,9 @@ export interface CommonConfigOptions extends OptionalToUndefined<webpack.Configu
16
16
  /** Forked checks webpack plugin options */
17
17
  checkerOptions?: Record<string, any> | undefined;
18
18
  } | undefined;
19
- terserPluginOptions?: Record<string, any> | undefined;
19
+ /** Default `terser`. */
20
+ minimizerPlugin?: 'terser' | 'closure';
21
+ minimizerPluginOptions?: Record<string, any> | readonly Record<string, any>[] | undefined;
20
22
  }
21
- declare const _default: ({ outputPath, outputPublicPath, outputJsDir, hash, chunkSuffix, typescript, terserPluginOptions, ...restOptions }: CommonConfigOptions) => webpack.Configuration;
23
+ declare const _default: ({ outputPath, outputPublicPath, outputJsDir, hash, chunkSuffix, typescript, minimizerPlugin, minimizerPluginOptions, ...restOptions }: CommonConfigOptions) => webpack.Configuration;
22
24
  export default _default;
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t},__rest=this&&this.__rest||function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(i=Object.getOwnPropertySymbols(e);o<i.length;o++)t.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(e,i[o])&&(n[i[o]]=e[i[o]])}return n},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const webpack_1=__importDefault(require("webpack")),path_1=__importDefault(require("path")),appEnv_1=__importDefault(require("../appEnv")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),loaders_1=require("./loaders"),nodeRequire_1=__importDefault(require("./nodeRequire"));exports.default=e=>{var t,n,i,{outputPath:o,outputPublicPath:r,outputJsDir:s,hash:u,chunkSuffix:a=".chunk",typescript:l,terserPluginOptions:p}=e,c=__rest(e,["outputPath","outputPublicPath","outputJsDir","hash","chunkSuffix","typescript","terserPluginOptions"]);const d=!0===u||"object"==typeof u&&u.entry,f=!0===u||"object"==typeof u&&u.chunk;return Object.assign(Object.assign({context:paths_1.default.root,mode:appEnv_1.default.raw.NODE_ENV,bail:appEnv_1.default.prod,devtool:appEnv_1.default.ifDev("eval-cheap-module-source-map",!1)},c),{output:Object.assign({path:o,publicPath:r,pathinfo:!1,filename:path_1.default.join(s,`[name]${appEnv_1.default.prod&&d?".[contenthash:8]":""}.js`),chunkFilename:path_1.default.join(s,`[name]${appEnv_1.default.prod&&f?".[contenthash:8]":""}${null!=a?a:""}.js`)},c.output),optimization:Object.assign(Object.assign({},c.optimization),appEnv_1.default.ifProd((()=>{var e,t;return{minimizer:[new((0,nodeRequire_1.default)("terser-webpack-plugin"))(Object.assign(Object.assign({extractComments:!1},p),{terserOptions:Object.assign(Object.assign({},null==p?void 0:p.terserOptions),{output:Object.assign({comments:!1},null===(e=null==p?void 0:p.terserOptions)||void 0===e?void 0:e.output)})})),...(null===(t=c.optimization)||void 0===t?void 0:t.minimizer)||[]]}}),void 0)),plugins:[new webpack_1.default.DefinePlugin(Object.assign(Object.assign({},appEnv_1.default.envStringify()),buildConfig_1.default.envStringify())),...l&&l.forkedChecks&&l.configFile?[(0,loaders_1.getTsCheckerPlugin)(Object.assign(Object.assign({loaderType:null!==(t=l.loader)&&void 0!==t?t:loaders_1.TsLoaderType.Default},l.checkerOptions),{typescript:Object.assign({configFile:l.configFile},null===(n=l.checkerOptions)||void 0===n?void 0:n.typescript)}))]:[],new webpack_1.default.IgnorePlugin({contextRegExp:/moment$/,resourceRegExp:/^\.\/locale$/}),...c.plugins||[]],resolve:(()=>{const e=[...l?paths_1.moduleExtensions:paths_1.moduleExtensions.filter((e=>!e.includes("ts"))),...c.resolve&&c.resolve.extensions||[]];return Object.assign(Object.assign({},c.resolve),{extensions:e,modules:["node_modules",paths_1.default.root,...c.resolve&&c.resolve.modules||[]],plugins:[...l?[new((0,nodeRequire_1.default)("tsconfig-paths-webpack-plugin"))({configFile:l.configFile,extensions:e})]:[],...c.resolve&&c.resolve.plugins||[]]})})(),ignoreWarnings:[...l?[/export .* was not found in/]:[],...null!==(i=c.ignoreWarnings)&&void 0!==i?i:[]],module:Object.assign(Object.assign({exprContextCritical:!1,unknownContextCritical:!1},c.module),{rules:c.module&&c.module.rules||[]})})};
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var o=Object.getOwnPropertyDescriptor(t,i);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,o)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&__createBinding(t,e,i);return __setModuleDefault(t,e),t},__rest=this&&this.__rest||function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(i[n[o]]=e[n[o]])}return i},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const webpack_1=__importDefault(require("webpack")),path_1=__importDefault(require("path")),appEnv_1=__importDefault(require("../appEnv")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),loaders_1=require("./loaders"),nodeRequire_1=__importDefault(require("./nodeRequire"));exports.default=e=>{var t,i,n,o,{outputPath:r,outputPublicPath:s,outputJsDir:u,hash:a,chunkSuffix:l=".chunk",typescript:p,minimizerPlugin:c="terser",minimizerPluginOptions:d}=e,f=__rest(e,["outputPath","outputPublicPath","outputJsDir","hash","chunkSuffix","typescript","minimizerPlugin","minimizerPluginOptions"]);const _=!0===a||"object"==typeof a&&a.entry,g=!0===a||"object"==typeof a&&a.chunk;return Object.assign(Object.assign({context:paths_1.default.root,mode:appEnv_1.default.raw.NODE_ENV,bail:appEnv_1.default.prod,devtool:appEnv_1.default.ifDev("eval-cheap-module-source-map",!1)},f),{output:Object.assign({path:r,publicPath:s,pathinfo:!1,filename:path_1.default.join(u,`[name]${appEnv_1.default.prod&&_?".[contenthash:8]":""}.js`),chunkFilename:path_1.default.join(u,`[name]${appEnv_1.default.prod&&g?".[contenthash:8]":""}${null!=l?l:""}.js`)},f.output),optimization:Object.assign(Object.assign({},appEnv_1.default.ifProd((()=>{var e;return{minimizer:["terser"===c&&(()=>{var e;const t=Array.isArray(d)?d.reduce(((e,t)=>Object.assign(Object.assign({},e),t)),{}):d;return new((0,nodeRequire_1.default)("terser-webpack-plugin"))(Object.assign(Object.assign({extractComments:!1},t),{terserOptions:Object.assign(Object.assign({},null==t?void 0:t.terserOptions),{output:Object.assign({comments:!1},null===(e=null==t?void 0:t.terserOptions)||void 0===e?void 0:e.output)})}))})(),"closure"===c&&(()=>{const[e,t]=Array.isArray(d)?null!=d?d:[]:[d,void 0];return new((0,nodeRequire_1.default)("closure-webpack-plugin"))(Object.assign({mode:"STANDARD"},e),Object.assign(Object.assign({},appEnv_1.default.ifDev({formatting:"PRETTY_PRINT",debug:!0,renaming:!1},void 0)),t))})(),...(null===(e=f.optimization)||void 0===e?void 0:e.minimizer)||[]]}}),void 0)),f.optimization),plugins:[new webpack_1.default.DefinePlugin(Object.assign(Object.assign({},appEnv_1.default.envStringify()),buildConfig_1.default.envStringify())),...(null==p?void 0:p.forkedChecks)&&p.configFile?[(0,loaders_1.getTsCheckerPlugin)(Object.assign(Object.assign({loaderType:null!==(t=p.loader)&&void 0!==t?t:loaders_1.TsLoaderType.Default},p.checkerOptions),{typescript:Object.assign({configFile:p.configFile},null===(i=p.checkerOptions)||void 0===i?void 0:i.typescript)}))]:[],...f.plugins||[]],resolve:(()=>{var e,t,i;const n=[...p?paths_1.moduleExtensions:paths_1.moduleExtensions.filter((e=>!e.includes("ts"))),...(null===(e=f.resolve)||void 0===e?void 0:e.extensions)||[]];return Object.assign(Object.assign({},f.resolve),{extensions:n,modules:["node_modules",paths_1.default.root,...(null===(t=f.resolve)||void 0===t?void 0:t.modules)||[]],plugins:[...p?[new((0,nodeRequire_1.default)("tsconfig-paths-webpack-plugin"))({configFile:p.configFile,extensions:n})]:[],...(null===(i=f.resolve)||void 0===i?void 0:i.plugins)||[]]})})(),ignoreWarnings:[...p?[/export .* was not found in/]:[],...null!==(n=f.ignoreWarnings)&&void 0!==n?n:[]],module:Object.assign(Object.assign({exprContextCritical:!1,unknownContextCritical:!1},f.module),{rules:(null===(o=f.module)||void 0===o?void 0:o.rules)||[]})})};
package/apprc.d.ts DELETED
@@ -1,3 +0,0 @@
1
- /** This file for backward compatibilities. */
2
- export { default } from './buildConfig';
3
- export * from './buildConfig';
package/apprc.js DELETED
@@ -1 +0,0 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=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,i,o)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),__exportStar=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var buildConfig_1=require("./buildConfig");Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return __importDefault(buildConfig_1).default}}),__exportStar(require("./buildConfig"),exports);
package/index.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export { default as appEnv } from './appEnv';
2
- export { default as buildConfig } from './buildConfig';
3
- export { default as apprc } from './apprc'; /** For backward compatibilities. */
4
- export { default as paths } from './paths';
package/index.js DELETED
@@ -1 +0,0 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.paths=exports.apprc=exports.buildConfig=exports.appEnv=void 0;var appEnv_1=require("./appEnv");Object.defineProperty(exports,"appEnv",{enumerable:!0,get:function(){return __importDefault(appEnv_1).default}});var buildConfig_1=require("./buildConfig");Object.defineProperty(exports,"buildConfig",{enumerable:!0,get:function(){return __importDefault(buildConfig_1).default}});var apprc_1=require("./apprc");Object.defineProperty(exports,"apprc",{enumerable:!0,get:function(){return __importDefault(apprc_1).default}});var paths_1=require("./paths");Object.defineProperty(exports,"paths",{enumerable:!0,get:function(){return __importDefault(paths_1).default}});