@moneko/core 2.0.7 → 2.0.9

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/build/swcrc.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{swcMinifyOption:function(){return swcMinifyOption},default:function(){return _default}});var _webpackMerge=require("webpack-merge");var _common=require("./common");var _envFlags=_interopRequireDefault(require("./envFlags"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var swcPolyfill={env:{targets:["last 2 version","> 0.5%","ie 11","not dead"],mode:"entry",coreJs:"3"}};var swcMinifyOption={compress:{top_retain:[],keep_infinity:true,global_defs:{"@alert":"console.log"},pure_funcs:["console.log","console.warn","console.error","console.info"],toplevel:false,drop_console:true,drop_debugger:true,module:false,ecma:2015,ie8:false,keep_classnames:undefined,keep_fnames:false},mangle:true};var _default=function(){var isDev=arguments.length>0&&arguments[0]!==void 0?arguments[0]:false;var swcOption={module:{type:"es6",ignoreDynamic:true,strict:true,strictMode:true,lazy:true,noInterop:true},jsc:{parser:{syntax:"typescript",decorators:true,dynamicImport:true,tsx:true},loose:true,target:"es2022",externalHelpers:true,transform:{legacyDecorator:true,decoratorMetadata:true,react:{runtime:"automatic",throwIfNamespace:true,useBuiltins:true,refresh:isDev,development:isDev},constModules:{globals:{"env-flags":_envFlags.default}},optimizer:{simplify:false}}},sourceMaps:true};var swcrc=Object.assign(swcOption,!isDev&&swcPolyfill);if(_common.CONFIG.swcrc){swcrc=(0,_webpackMerge.merge)(swcrc,typeof _common.CONFIG.swcrc==="function"?_common.CONFIG.swcrc(isDev):_common.CONFIG.swcrc)}return swcrc};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{swcMinifyOption:function(){return swcMinifyOption},default:function(){return _default}});var _webpackMerge=require("webpack-merge");var _common=require("./common");var _envFlags=_interopRequireDefault(require("./envFlags"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var swcPolyfill={env:{targets:["last 2 version","> 0.5%","ie 11","not dead"],mode:"entry",coreJs:"3"}};var swcMinifyOption={compress:{top_retain:[],keep_infinity:true,global_defs:{"@alert":"console.log"},pure_funcs:["console.log","console.warn","console.error","console.info"],toplevel:false,drop_console:true,drop_debugger:true,module:false,ecma:2015,ie8:false,keep_classnames:undefined,keep_fnames:false},mangle:true};var _default=function(){var isDev=arguments.length>0&&arguments[0]!==void 0?arguments[0]:false;var swcOption={module:{type:"es6",ignoreDynamic:true,strict:true,strictMode:true,lazy:true,noInterop:true},jsc:{parser:{syntax:"typescript",decorators:true,dynamicImport:true,tsx:true},loose:true,target:"es2022",externalHelpers:true,transform:{legacyDecorator:true,decoratorMetadata:true,react:{runtime:"automatic",throwIfNamespace:true,useBuiltins:true,refresh:isDev,development:isDev},constModules:{globals:{"env-flags":_envFlags.default}},optimizer:{simplify:false}},experimental:{plugins:[["swc-plugin-another-transform-imports",_common.CONFIG.importOnDemand||{}]]}},sourceMaps:true};var swcrc=Object.assign(swcOption,!isDev&&swcPolyfill);if(_common.CONFIG.swcrc){swcrc=(0,_webpackMerge.merge)(swcrc,typeof _common.CONFIG.swcrc==="function"?_common.CONFIG.swcrc(isDev):_common.CONFIG.swcrc)}return swcrc};
@@ -33,8 +33,8 @@
33
33
  &&-inline-collapsed > &-submenu > &-submenu-title {
34
34
  .@{ant-prefix}-menu-item-icon,
35
35
  .@{iconfont-css-prefix} {
36
- font-size: 20px !important;
37
36
  margin: 0 2px !important;
37
+ font-size: 20px !important;
38
38
  }
39
39
  }
40
40
  }
package/lib/index.d.ts CHANGED
@@ -5,7 +5,7 @@ export * from './prefix/mini-idc.js';
5
5
  export * from './utils';
6
6
  export { matchUtil, router, onlyLoginRouter, myPkgs, myDemoKv, mdxComponents, type ExampleModule, type RouterProps, type MyPkg, } from './router';
7
7
  export declare const LayoutMenu: any;
8
- export type { ConfigType, AppType, CommomType, ProgramInfoType } from '../typings/global';
8
+ export type { ConfigType, AppType, CommomType, ProgramInfoType, MemberTransformer, CoverageType, TerserOptions, MinifierType, SourceMapDevToolPluginOptions, ProjectCoverageType, SharedConfig, SwcOptions, OptimizationSplitChunksOptions, SwcImportOnDemandTransform, } from '../typings/global';
9
9
  import type { ConfigType, CommomType, CoverageType, ProjectCoverageType } from '../typings/global';
10
10
  export type PartialConfigType<T = 'swc'> = Partial<ConfigType<T>>;
11
11
  export type PartialCommomType<T = 'swc'> = Partial<CommomType<T>>;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './prefix/react-router-dom.js';\nexport * from './prefix/i18n-hooks.js';\nexport * from './prefix/mini-idc.js';\nexport * from './utils';\nexport {\n matchUtil,\n router,\n onlyLoginRouter,\n myPkgs,\n myDemoKv,\n mdxComponents,\n type ExampleModule,\n type RouterProps,\n type MyPkg,\n} from './router';\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nexport const LayoutMenu = hasAntd ? require('./components/layout-menu').default : null;\nexport type { ConfigType, AppType, CommomType, ProgramInfoType } from '../typings/global';\nimport type { ConfigType, CommomType, CoverageType, ProjectCoverageType } from '../typings/global';\nexport type PartialConfigType<T = 'swc'> = Partial<ConfigType<T>>;\nexport type PartialCommomType<T = 'swc'> = Partial<CommomType<T>>;\n\ndeclare const projectCoverage: Record<string, CoverageType & Partial<ProjectCoverageType>>;\n\n/** 一些项目基本信息 */\nexport const projectBasicInfo = {\n projectName,\n providerConfig,\n programInfo,\n coverage: projectCoverage,\n};\n"],"names":["matchUtil","router","onlyLoginRouter","myPkgs","myDemoKv","mdxComponents","LayoutMenu","hasAntd","require","default","projectBasicInfo","projectName","providerConfig","programInfo","coverage","projectCoverage"],"mappings":"AAAA,WAAc,8BAA+B,AAC7C,YAAc,wBAAyB,AACvC,YAAc,sBAAuB,AACrC,YAAc,SAAU,AACxB,QACEA,SAAS,CACTC,MAAM,CACNC,eAAe,CACfC,MAAM,CACNC,QAAQ,CACRC,aAAa,KAIR,UAAW,AAElB,QAAO,IAAMC,WAAaC,QAAUC,QAAQ,4BAA4BC,OAAO,CAAG,IAAI,AAAC,AASvF,QAAO,IAAMC,iBAAmB,CAC9BC,YAAAA,YACAC,eAAAA,eACAC,YAAAA,YACAC,SAAUC,eACZ,CAAE"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './prefix/react-router-dom.js';\nexport * from './prefix/i18n-hooks.js';\nexport * from './prefix/mini-idc.js';\nexport * from './utils';\nexport {\n matchUtil,\n router,\n onlyLoginRouter,\n myPkgs,\n myDemoKv,\n mdxComponents,\n type ExampleModule,\n type RouterProps,\n type MyPkg,\n} from './router';\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nexport const LayoutMenu = hasAntd ? require('./components/layout-menu').default : null;\nexport type {\n ConfigType,\n AppType,\n CommomType,\n ProgramInfoType,\n MemberTransformer,\n CoverageType,\n TerserOptions,\n MinifierType,\n SourceMapDevToolPluginOptions,\n ProjectCoverageType,\n SharedConfig,\n SwcOptions,\n OptimizationSplitChunksOptions,\n SwcImportOnDemandTransform,\n} from '../typings/global';\nimport type { ConfigType, CommomType, CoverageType, ProjectCoverageType } from '../typings/global';\nexport type PartialConfigType<T = 'swc'> = Partial<ConfigType<T>>;\nexport type PartialCommomType<T = 'swc'> = Partial<CommomType<T>>;\n\ndeclare const projectCoverage: Record<string, CoverageType & Partial<ProjectCoverageType>>;\n\n/** 一些项目基本信息 */\nexport const projectBasicInfo = {\n projectName,\n providerConfig,\n programInfo,\n coverage: projectCoverage,\n};\n"],"names":["matchUtil","router","onlyLoginRouter","myPkgs","myDemoKv","mdxComponents","LayoutMenu","hasAntd","require","default","projectBasicInfo","projectName","providerConfig","programInfo","coverage","projectCoverage"],"mappings":"AAAA,WAAc,8BAA+B,AAC7C,YAAc,wBAAyB,AACvC,YAAc,sBAAuB,AACrC,YAAc,SAAU,AACxB,QACEA,SAAS,CACTC,MAAM,CACNC,eAAe,CACfC,MAAM,CACNC,QAAQ,CACRC,aAAa,KAIR,UAAW,AAElB,QAAO,IAAMC,WAAaC,QAAUC,QAAQ,4BAA4BC,OAAO,CAAG,IAAI,AAAC,AAwBvF,QAAO,IAAMC,iBAAmB,CAC9BC,YAAAA,YACAC,eAAAA,eACAC,YAAAA,YACAC,SAAUC,eACZ,CAAE"}
@@ -1,6 +1,6 @@
1
1
  .tabs {
2
- margin: 16px 16px 0 !important;
3
2
  overflow: initial !important;
3
+ margin: 16px 16px 0 !important;
4
4
 
5
5
  > :global(.@{ant-prefix}-tabs-nav) {
6
6
  margin-bottom: 0 !important;
@@ -19,9 +19,9 @@
19
19
 
20
20
  .layout-content {
21
21
  display: flex;
22
- flex-direction: column;
23
- margin: 0 16px;
24
22
  overflow-y: auto;
23
+ margin: 0 16px;
24
+ flex-direction: column;
25
25
  }
26
26
 
27
27
  .content {
@@ -38,26 +38,32 @@
38
38
  position: sticky;
39
39
  top: 0;
40
40
  z-index: 1;
41
- height: 68px;
42
- padding: 14px;
43
41
  overflow: hidden;
44
- color: #de4553;
45
- text-align: center;
46
- background-color: var(--sider-logo-bg, #fff) !important;
47
42
  border-color: var(--sider-logo-bg, #fff);
48
43
  border-right: 16px solid var(--sider-logo-bg, #fff);
49
44
  border-bottom: 1px solid var(--border-color);
50
45
  border-bottom-color: var(--border-color);
51
46
  border-left: 16px solid var(--sider-logo-bg, #fff);
47
+ padding: 14px;
48
+ height: 68px;
49
+ text-align: center;
50
+ color: #de4553;
51
+ background-color: var(--sider-logo-bg, #fff) !important;
52
+ transition-property: background-color, border-color;
53
+ transition-duration: @transition-duration;
54
+ transition-timing-function: @transition-timing-function;
52
55
  cursor: pointer;
53
- transition: border-color @transition-duration @transition-timing-function,
54
- background-color @transition-duration @transition-timing-function;
55
56
  user-select: none;
56
57
 
58
+ > svg,&::before {
59
+ transition-property: opacity;
60
+ transition-duration: @transition-duration;
61
+ transition-timing-function: @transition-timing-function;
62
+ }
63
+
57
64
  > svg {
58
65
  height: 32px;
59
66
  opacity: 0;
60
- transition: opacity @transition-duration @transition-timing-function;
61
67
  }
62
68
 
63
69
  &::before {
@@ -66,12 +72,11 @@
66
72
  bottom: 0;
67
73
  left: 0;
68
74
  display: block;
75
+ margin: auto;
69
76
  width: 22px;
70
77
  height: 32px;
71
- margin: auto;
72
78
  background: url('@{favicon}') no-repeat center center / contain;
73
79
  opacity: 1;
74
- transition: opacity @transition-duration @transition-timing-function;
75
80
  content: '';
76
81
  }
77
82
  }
@@ -40,7 +40,7 @@ main {
40
40
 
41
41
  input,
42
42
  textarea {
43
- caret-color: var(--primary-color-deprecated-bg);;
43
+ caret-color: var(--primary-color-bg);;
44
44
  }
45
45
 
46
46
  h1 {
@@ -245,7 +245,7 @@ template {
245
245
  }
246
246
 
247
247
  :hover::-webkit-scrollbar-thumb {
248
- background-color: var(--primary-color-deprecated-bg);
248
+ background-color: var(--primary-color-bg);
249
249
  }
250
250
 
251
251
  ::-webkit-scrollbar-thumb:hover {
@@ -1,37 +1,35 @@
1
1
  :root {
2
- --text-shadow-color: rgb(0 0 0 / 10%);
3
2
  --font-size: 14px;
4
- --border-color-base: #d9d9d9;
5
- --border-radius-base: 8px;
3
+ --font-size-sm: 12px;
4
+ --font-size-xs: 10px;
5
+ --font-size-lg: 16px;
6
+ --border-base: 1px solid var(--border-color);
7
+ --border-color: #d9d9d9;
8
+ --border-radius: 8px;
6
9
  --body-background: #f8f8f8;
7
10
  --component-background: rgb(255 255 255 / 80%);
8
11
  --table-header-bg: rgb(0 0 0 / 2%);
9
12
  --text-color: rgb(0 0 0 / 65%);
10
- --text-color-secondary: rgb(0 0 0 / 45%);
11
- --heading-color: rgb(0 0 0 / 85%);
12
- --text-selection-bg: var(--primary-color-deprecated-bg);
13
- --box-shadow-small: 0 0 12px rgb(0 0 0 / 10%);
13
+ --text-secondary: #4e4e4e;
14
+ --text-heading: #1b1b1b;
15
+ --text-selection-bg: var(--primary-color-bg);
16
+ --text-shadow-color: rgb(0 0 0 / 10%);
14
17
  --box-shadow-base: 0 3px 6px -4px rgb(0 0 0 / 12%), 0 6px 16px 0 rgb(0 0 0 / 8%),
15
- 0 9px 28px 8px rgb(0 0 0 / 5%);
16
- --font-family: -apple-system, 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Arial',
17
- 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
18
- 'Noto Color Emoji', 'Helvetica', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans';
18
+ 0 9px 28px 8px rgb(0 0 0 / 5%);
19
+ --font-family: -apple-system, 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Helvetica Neue',
20
+ 'Arial', 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
21
+ 'Noto Color Emoji', 'Helvetica', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans';
19
22
  --transition-duration: 0.3s;
20
23
  --transition-timing-function: cubic-bezier(0.94, -0.1, 0.1, 1.2);
21
- --disable-color: rgb(0 0 0 / 25%);
22
- --btn-disable-bg: var(--disable-color);
23
- --btn-disable-border: var(--disable-color);
24
- }
24
+ }
25
25
 
26
- [data-theme='dark'] {
27
- --text-color-secondary: rgb(255 255 255 / 25%);
26
+ [data-theme='dark'] {
27
+ --text-color: #ffffffd9;
28
+ --text-secondary: #cdcdcd;
29
+ --text-heading: rgb(255 255 255 / 85%);
28
30
  --text-shadow-color: rgb(255 255 255 / 10%);
29
- --header-shadow: rgb(255 255 255 / 5%);
30
31
  --body-background: #000;
31
32
  --component-background: rgb(20 20 20 / 80%);
32
33
  --header-bg: rgb(20 20 20 / 90%);
33
- --text-color: #ffffffd9;
34
- --border-color-base: #303030;
35
- --heading-color: rgb(255 255 255 / 85%);
36
- --disabled-color: rgb(255 255 255 / 30%);
37
- }
34
+ --border-color: #303030;
35
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "2.0.7",
3
+ "version": "2.0.9",
4
4
  "description": "core",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -24,7 +24,6 @@
24
24
  "@soda/friendly-errors-webpack-plugin": "1.8.1",
25
25
  "@swc/core": "1.3.35",
26
26
  "@swc/helpers": "0.4.14",
27
- "@swc/plugin-transform-imports": "1.5.41",
28
27
  "add-asset-html-webpack-plugin": "5.0.2",
29
28
  "core-js": "3.28.0",
30
29
  "cross-env": "7.0.3",
@@ -51,6 +50,7 @@
51
50
  "rehype-figure": "1.0.1",
52
51
  "style-loader": "3.3.1",
53
52
  "style-resources-loader": "1.5.0",
53
+ "swc-plugin-another-transform-imports": "0.2.1",
54
54
  "swc-loader": "0.2.3",
55
55
  "ts-import-plugin": "2.0.0",
56
56
  "ts-loader": "9.4.2",
@@ -111,9 +111,7 @@ export declare type ConfigType<T = 'tsc'> = {
111
111
  /** node_modules中, 需要开启 cssModules 的模块 */
112
112
  cssModules: string[];
113
113
  /** 按需引入 */
114
- importOnDemand: T extends 'tsc'
115
- ? Partial<Options>[]
116
- : Record<string, SwcImportOnDemandTransform | SwcImportOnDemandConfig>;
114
+ importOnDemand: T extends 'tsc' ? Partial<Options>[] : SwcImportOnDemandTransform;
117
115
  /** 开发服务器代理 */
118
116
  proxy: ProxyArray | ProxyConfigArray | ProxyConfigMap;
119
117
  /** 自定义缓存目录,为 false 时,不使用缓存 */
@@ -360,7 +358,7 @@ export type ProjectCoverageType = {
360
358
  classes: string;
361
359
  };
362
360
 
363
- declare interface OptimizationSplitChunksOptions {
361
+ export declare interface OptimizationSplitChunksOptions {
364
362
  /**
365
363
  * Sets the name delimiter for created chunks.
366
364
  */
@@ -490,22 +488,76 @@ declare interface OptimizationSplitChunksOptions {
490
488
  usedExports?: boolean;
491
489
  }
492
490
 
493
- export interface SwcImportOnDemandTransformCtx {
494
- source: string;
495
- name: string;
496
- }
497
-
498
- export type SwcImportOnDemandTransformFn = (
499
- ctx: SwcImportOnDemandTransformCtx
500
- ) => string | string[] | undefined | null | false;
501
-
502
- export type SwcImportOnDemandTransform = string | string[] | SwcImportOnDemandTransformFn;
503
-
504
- export interface SwcImportOnDemandConfig {
505
- transform: SwcImportOnDemandTransform;
506
- style?: boolean | string;
507
- }
491
+ export type MemberTransformer =
492
+ /** 帕斯卡拼写法(大驼峰): 所有单词的首字母大写,然后直接连接起来,单词之间没有连接符 */
493
+ | 'pascal_case'
494
+ /** 骆驼拼写法(小驼峰): 第一个单词的首字母小写, 后续所有单词的首字母大写,然后直接连接起来,单词之间没有连接符 */
495
+ | 'camel_case'
496
+ /** 连字符拼写法: 各个单词或缩写之间以`-`做间隔 */
497
+ | 'kebab_case'
498
+ /** 破折号式: 每个单词全小写或全大写,多单词使用`-`隔开 */
499
+ | 'dashed_case'
500
+ /** 蛇形命名: 每个单词全小写或全大写,多单词使用`_`隔开 */
501
+ | 'snake_case'
502
+ /** 大写 */
503
+ | 'upper_case'
504
+ /** 最后大写 */
505
+ | 'upper_first'
506
+ /** 小写 */
507
+ | 'lower_case'
508
+ /** 最后小写 */
509
+ | 'lower_first';
508
510
 
511
+ export type SwcImportOnDemandTransform = Record<
512
+ /** 库名 */
513
+ string,
514
+ {
515
+ /** 要使用的库名称,而不是导入语句中指定的库名称。`${member}` 是替换的成员
516
+ * @example
517
+ * ```javascript
518
+ * const conf = {
519
+ * importOnDemand: {
520
+ * 'neko-ui': {
521
+ * transform: 'neko-ui/es/${member}',
522
+ * memberTransformers: ['dashed_case']
523
+ * }
524
+ * }
525
+ * }
526
+ * // 以下代码将会按照预期进行转换
527
+ * import { Button } from 'neko-ui';
528
+ * // to
529
+ * import Button from 'neko-ui/es/button'
530
+ * ```
531
+ */
532
+ transform: string;
533
+ /** 默认值:`false`, 设置转换时需要单独导入的样式,`${member}` 是替换的成员
534
+ * @example
535
+ * ```javascript
536
+ * const conf = {
537
+ * importOnDemand: {
538
+ * antd: {
539
+ * transform: 'antd/es/${member}',
540
+ * style: 'antd/es/${member}/style',
541
+ * memberTransformers: ['dashed_case']
542
+ * }
543
+ * }
544
+ * }
545
+ * // 以下代码将会按照预期进行转换
546
+ * import { BackTop } from 'antd';
547
+ * // to
548
+ * import BackTop from 'antd/es/back-top';
549
+ * import 'antd/es/back-top/style';
550
+ * ```
551
+ */
552
+ style?: string;
553
+ /** 默认值:`false`, 当设置为true时,将保留 `import { Button }` 语法,而不是转换为 `import Button` */
554
+ skipDefaultConversion?: boolean;
555
+ /** 默认值:`true`, 当遇到会导致导入整个模块时,是否抛出 */
556
+ preventFullImport?: boolean;
557
+ /** 默认值:`[]`, 成员转换规则 */
558
+ memberTransformers?: MemberTransformer[];
559
+ }
560
+ >;
509
561
  declare global {
510
562
  // eslint-disable-next-line vars-on-top,no-var
511
563
  var NEKOCLICONFIG: CommomType;