@moneko/core 3.28.7 → 3.28.9-beta.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.
@@ -1 +1 @@
1
- "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return a}});const t=require("@babel/core"),r=(e=require("babel-plugin-react-compiler"))&&e.__esModule?e:{default:e};async function a(e){let a=this.async();this.cacheable&&this.cacheable();let s=(0,t.transformSync)(e,{filename:this.resourcePath,sourceMaps:this.sourceMap,plugins:[[r.default,this.getOptions()]]});if(null===s){a(Error(`Failed to transform "${this.resourcePath}"`));return}a(null,s.code||"",null===s.map?void 0:s.map)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return o}});const e=require("@babel/core"),r=u(require("babel-plugin-react-compiler")),t=u(require("../commom/log.mjs"));function u(e){return e&&e.__esModule?e:{default:e}}async function o(u){let o=this.async();this.cacheable&&this.cacheable(),(0,e.transform)(u,{filename:this.resourcePath,sourceMaps:this.sourceMap,plugins:[[r.default,this.getOptions()]]},(e,r)=>{if(e){(0,t.default)(e),o(e,u);return}if(null===r){o(Error(`Failed to transform "${this.resourcePath}"`));return}o(null,r.code||"",null===r.map?void 0:r.map)})}
@@ -1,7 +1,21 @@
1
- import { transformSync } from '@babel/core';
1
+ import { transform } from '@babel/core';
2
2
  import BabelPluginReactCompiler from 'babel-plugin-react-compiler';
3
3
  import type { LoaderContext } from 'webpack';
4
+ import log from '../commom/log.mjs';
4
5
  export interface ReactCompilerOption {
5
- filename?: string;
6
+ target?: '17' | '18' | '19';
7
+ sources?(filename: string): boolean;
8
+ compilationMode?: 'annotation' | 'infer' | 'syntax' | 'all';
9
+ logger?: {
10
+ logEvent?: (fileName: string, event: MessageEvent) => void;
11
+ };
12
+ noEmit?: boolean;
13
+ flowSuppressions?: boolean;
14
+ ignoreUseNoForget?: boolean;
15
+ enableReanimatedCheck?: boolean;
16
+ panicThreshold?: string;
17
+ environment?: unknown;
18
+ gating?: null;
19
+ eslintSuppressionRules?: Record<string, string | boolean | number>;
6
20
  }
7
21
  export default async function reactCompilerLoader(this: LoaderContext<ReactCompilerOption>, sourceCode: string);
@@ -1,2 +1,2 @@
1
- let e;import{join as o,sep as s}from"node:path";import{saveFileSync as t}from"@moneko/utils";import r,{CUSTOMCONFIG as a}from"./commom/paths.mjs";import m from"./commom/reactive-object.mjs";import n from"./commom/require.mjs";import i from"./commom/rule.mjs";import l from"./options/css-extract.mjs";import c from"./options/modify-vars.mjs";import d from"./options/reslove.mjs";import p from"./options/swcrc.mjs";import{getLightningCssTargets as u}from"./polyfills/targets.mjs";import{node_modules as f,resolveProgram as h,toCamelCase as j}from"./utils/index.mjs";import v from"./utils/svg-to-data-uri.mjs";import{comment as y,getCommentPath as g}from"./vm/docs.mjs";import x from"./vm/generate-doc.mjs";import{outputConfig as w}from"./common.mjs";import{CONFIG as L}from"./config.mjs";import{FRAMEWORK as P,isDev as M,isLibrary as _}from"./process-env.mjs";let k={loader:o(r.corePath,"/loader/lightning-css/loader.cjs"),options:{sourceMap:!!L.sourceMap,targets:u(),rem:!!L.rem,esModule:!0,modules:{auto(e){if(e){if(e.endsWith(".css")&&!e.endsWith("module.css"))return!1;for(let o=0,s=I.length;o<s;o++)if(e.includes(I[o]))return i.css_module.test(e)}return i.node_modules_css_module.test(e)},localIdentName:"[name][hash]_[local]",namedExport:!0,exportLocalsConvention:"dashesOnly",exportOnlyLocals:!1,getJSON:L.cssModuleDefinition?function(e){q.setData(`${e.resourcePath}.d.ts`,`${e.exports.map(({name:e,value:o})=>`export const ${j(e)}: '${o}';`).join("\n")}
2
- `)}:void 0},importLoaders:2}},C={loader:d.lessLoader,options:{sourceMap:!!L.sourceMap,lessOptions:{modifyVars:c,javascriptEnabled:!0}}},O=new Map;function b(e){if(O.has(e))return O.get(e);try{let o;let t=n.resolve(e).split(s),r=t.lastIndexOf("node_modules");return o=-1!==r?t.slice(0,r).join(s):t.join(s),O.set(e,o),o}catch{let o=f(e);return O.set(e,o),o}}let I=[...L.cssModules,`@moneko/${P}`,"neko-ui"].map(b),W=["components","example","mock","site","src","server"].map(h);function $(e){return new Promise(o=>{o([...W,r.corePath,...L.rulesInclude?.[e]?.map(b)||[]])})}a&&W.push(h(a)),L.overrideResolve&&L.overrideResolve.override&&W.push(L.overrideResolve.override);let R=await Promise.all([$("css"),$("js"),$("media"),$("wasm"),$("font")]),B=R[0],S=R[1],z=R[2],D=R[3],E=R[4];d.sassLoader&&(e={loader:d.sassLoader,options:{implementation:await import("sass"),sassOptions:{}}});let J=_&&M&&{test:i.tsdoc,include:L.alias["@pkg"],exclude:[/node_modules\/(?!(@app|@moneko)).+/,i.__tests__],enforce:"pre",loader:o(r.corePath,"/loader/ts-doc.cjs"),options:{comment:y,generateDoc:x,getCommentPath:g}},N=w.library?.type==="umd"&&!1===L.htmlPluginOption,Q=[{resourceQuery:/raw/i,type:"asset/source"},{resourceQuery:/url/i,type:"asset/resource",generator:{filename(e){let o=e.filename;return o&&o.toLocaleLowerCase().endsWith("wasm?url")?"wasm/[name][ext]":"assets/[name][ext]"}}},{test:i.wasm,type:"webassembly/async",include:D},{test:i.txt,type:"asset/source"},{test:i.image,type:"asset",dependency:{not:["url"]},parser:{dataUrlCondition:N?()=>!0:{maxSize:4096}},generator:{filename:e=>e.filename?.toLocaleLowerCase().endsWith(".svg")?"assets/svg/[name][ext]":"assets/images/[name][ext]",dataUrl:(e,o)=>o.filename.toLocaleLowerCase().endsWith(".svg")?v(e.toString()):e},include:z},{test:i.video,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/video/[name][ext]"},include:z},{test:i.font,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/fonts/[name][ext]"},include:E}],U=L.prefixJsLoader.filter(Boolean)||[];switch(P){case"react":L.reactCompiler&&U.unshift({loader:o(r.corePath,"/loader/react-compiler.cjs"),options:L.reactCompiler});break;case"solid":L.refresh=!1}let q=new m({});q.on("change",(e,o)=>{t(e,o)});export default(s=>{let t={loader:d.swcLoader,options:p(s)};return{parser:{javascript:{commonjsMagicComments:!0,dynamicImportMode:"lazy",dynamicImportPrefetch:!1,dynamicImportPreload:!1,importMeta:!0,importMetaContext:!0}},noParse:L.noParse,rules:[!1!==L.htmlPluginOption&&J,{oneOf:[...Q,{test:i.js,use:[...U,t],include:S},{test:i.css,use:[l,k],include:B},e&&{test:i.scss,use:[l,k,e],include:B},{test:i.less,use:[l,k,C],include:B},{test:i.markdown,use:[...U,{loader:o(r.corePath,"/loader/mdx.cjs"),options:L.mdx}],exclude:[/node_modules\/(?!(@app|@moneko)).+/]}].filter(Boolean)},...L.moduleRules].filter(Boolean)}});
1
+ let e;import{join as s,sep as o}from"node:path";import{saveFileSync as t}from"@moneko/utils";import r,{CUSTOMCONFIG as a}from"./commom/paths.mjs";import n from"./commom/reactive-object.mjs";import m from"./commom/require.mjs";import i from"./commom/rule.mjs";import l from"./options/css-extract.mjs";import c from"./options/modify-vars.mjs";import d from"./options/reslove.mjs";import p from"./options/swcrc.mjs";import{getLightningCssTargets as u}from"./polyfills/targets.mjs";import{node_modules as f,resolveProgram as j,toCamelCase as h}from"./utils/index.mjs";import y from"./utils/svg-to-data-uri.mjs";import{comment as g,getCommentPath as v}from"./vm/docs.mjs";import x from"./vm/generate-doc.mjs";import{outputConfig as w}from"./common.mjs";import{CONFIG as P}from"./config.mjs";import{FRAMEWORK as L,isDev as M,isLibrary as _}from"./process-env.mjs";let k={loader:s(r.corePath,"/loader/lightning-css/loader.cjs"),options:{sourceMap:!!P.sourceMap,targets:u(),rem:!!P.rem,esModule:!0,modules:{auto(e){if(e){if(e.endsWith(".css")&&!e.endsWith("module.css"))return!1;for(let s=0,o=I.length;s<o;s++)if(e.includes(I[s]))return i.css_module.test(e)}return i.node_modules_css_module.test(e)},localIdentName:"[name][hash]_[local]",namedExport:!0,exportLocalsConvention:"dashesOnly",exportOnlyLocals:!1,getJSON:P.cssModuleDefinition?function(e){q.setData(`${e.resourcePath}.d.ts`,`${e.exports.map(({name:e,value:s})=>`export const ${h(e)}: '${s}';`).join("\n")}
2
+ `)}:void 0},importLoaders:2}},O={loader:d.lessLoader,options:{sourceMap:!!P.sourceMap,lessOptions:{modifyVars:c,javascriptEnabled:!0}}},b=new Map;function C(e){if(b.has(e))return b.get(e);try{let s;let t=m.resolve(e).split(o),r=t.lastIndexOf("node_modules");return s=-1!==r?t.slice(0,r).join(o):t.join(o),b.set(e,s),s}catch{let s=f(e);return b.set(e,s),s}}let I=[...P.cssModules,`@moneko/${L}`,"neko-ui"].map(C),J=["components","example","mock","site","src","server"].map(j);function W(e){return new Promise(s=>{s([...J,r.corePath,...P.rulesInclude?.[e]?.map(C)||[]])})}a&&J.push(j(a)),P.overrideResolve&&P.overrideResolve.override&&J.push(P.overrideResolve.override);let $=await Promise.all([W("css"),W("js"),W("media"),W("wasm"),W("font")]),R=$[0],B=$[1],N=$[2],S=$[3],z=$[4];d.sassLoader&&(e={loader:d.sassLoader,options:{implementation:await import("sass"),sassOptions:{}}});let D=_&&M&&{test:i.tsdoc,include:P.alias["@pkg"],exclude:[/node_modules\/(?!(@app|@moneko)).+/,i.__tests__],enforce:"pre",loader:s(r.corePath,"/loader/ts-doc.cjs"),options:{comment:g,generateDoc:x,getCommentPath:v}},E=w.library?.type==="umd"&&!1===P.htmlPluginOption,Q=[{resourceQuery:/raw/i,type:"asset/source"},{resourceQuery:/url/i,type:"asset/resource",generator:{filename(e){let s=e.filename;return s&&s.toLocaleLowerCase().endsWith("wasm?url")?"wasm/[name][ext]":"assets/[name][ext]"}}},{test:i.wasm,type:"webassembly/async",include:S},{test:i.txt,type:"asset/source"},{test:i.image,type:"asset",dependency:{not:["url"]},parser:{dataUrlCondition:E?()=>!0:{maxSize:4096}},generator:{filename:e=>e.filename?.toLocaleLowerCase().endsWith(".svg")?"assets/svg/[name][ext]":"assets/images/[name][ext]",dataUrl:(e,s)=>s.filename.toLocaleLowerCase().endsWith(".svg")?y(e.toString()):e},include:N},{test:i.video,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/video/[name][ext]"},include:N},{test:i.font,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/fonts/[name][ext]"},include:z}],U=P.prefixJsLoader.filter(Boolean)||[];switch(L){case"react":P.reactCompiler&&U.unshift({loader:s(r.corePath,"/loader/react-compiler.cjs"),options:P.reactCompiler});break;case"solid":P.refresh=!1}P.cssInJs&&"object"==typeof P.cssInJs.minify&&U.unshift({loader:s(r.corePath,"/loader/css-in-js-minify.cjs"),options:Object.assign({moduleName:"@moneko/css",allowFuncs:["css","injectGlobal"]},P.cssInJs.minify)});let q=new n({});q.on("change",(e,s)=>{t(e,s)});export default(o=>{let t={loader:d.swcLoader,options:p(o)};return{parser:{javascript:{commonjsMagicComments:!0,dynamicImportMode:"lazy",dynamicImportPrefetch:!1,dynamicImportPreload:!1,importMeta:!0,importMetaContext:!0}},noParse:P.noParse,rules:[!1!==P.htmlPluginOption&&D,{oneOf:[...Q,{test:i.js,use:[...U,t],include:B},{test:i.css,use:[l,k],include:R},e&&{test:i.scss,use:[l,k,e],include:R},{test:i.less,use:[l,k,O],include:R},{test:i.markdown,use:[...U,{loader:s(r.corePath,"/loader/mdx.cjs"),options:P.mdx}],exclude:[/node_modules\/(?!(@app|@moneko)).+/]}].filter(Boolean)},...P.moduleRules].filter(Boolean)}});
@@ -7,6 +7,7 @@ declare const reslove: {
7
7
  readonly swcLoader;
8
8
  readonly transformImports;
9
9
  readonly jsxDomExpressions;
10
+ readonly rawImport;
10
11
  readonly hotMiddlewareClient;
11
12
  };
12
13
  export default reslove;
@@ -1 +1 @@
1
- import e from"../commom/has-pkg.mjs";import o from"../commom/require.mjs";let s={styleLoader:o.resolve("style-loader"),sassLoader:e("sass-loader"),lessLoader:o.resolve("less-loader"),swcLoader:o.resolve("swc-loader"),transformImports:e("@moneko/transform-imports"),jsxDomExpressions:e("@moneko/jsx-dom-expressions"),hotMiddlewareClient:o.resolve("webpack-hot-middleware/client.js")};export default s;
1
+ import o from"../commom/has-pkg.mjs";import e from"../commom/require.mjs";let s={styleLoader:e.resolve("style-loader"),sassLoader:o("sass-loader"),lessLoader:e.resolve("less-loader"),swcLoader:e.resolve("swc-loader"),transformImports:o("@moneko/transform-imports"),jsxDomExpressions:o("@moneko/jsx-dom-expressions"),rawImport:o("@moneko/raw-import"),hotMiddlewareClient:e.resolve("webpack-hot-middleware/client.js")};export default s;
@@ -1 +1 @@
1
- import{merge as e}from"webpack-merge";import r from"../commom/paths.mjs";import{CONFIG as o}from"../config.mjs";import t,{coreJsVersion as s}from"../polyfills/polyfills.mjs";import{isDev as m,isReact as a,isSolid as l,jsxImportSource as p}from"../process-env.mjs";import i from"./reslove.mjs";let c=function(e){for(let r=0,o=Object.keys(e),t=o.length;r<t;r++)e[o[r]].transform=`${o[r]}/${e[o[r]].transform}`,e[o[r]].style&&(e[o[r]].style=`${o[r]}/${e[o[r]].style}`);return e}(o.importOnDemand||{}),n={include:t(),mode:"entry",coreJs:s};export default((t,s={})=>e({module:{type:"es6",resolveFully:!0},sync:!0,jsc:{parser:{syntax:"typescript",tsx:!0,decorators:!0,dynamicImport:!0},loose:!0,target:o.polyfill?void 0:"es2017",externalHelpers:!1,transform:{legacyDecorator:!0,decoratorMetadata:!0,react:{runtime:"automatic",throwIfNamespace:!0,refresh:a&&m,development:m,importSource:p},optimizer:{simplify:!1}},experimental:{emitAssertForImportAttributes:!0,cacheRoot:r.swcCachePath,plugins:[[i.transformImports,c],l&&[i.jsxDomExpressions,{...o.jsxDomExpressions,generate:t?"ssr":"dom",hydratable:t}]].filter(Boolean)}},env:o.polyfill?n:void 0,sourceMaps:!0,parseMap:!0},"function"==typeof o.swcrc?o.swcrc(m):o.swcrc||{},s));
1
+ import{merge as r}from"webpack-merge";import e from"../commom/paths.mjs";import{CONFIG as o}from"../config.mjs";import t,{coreJsVersion as s}from"../polyfills/polyfills.mjs";import{isDev as m,isReact as a,isSolid as p,jsxImportSource as l}from"../process-env.mjs";import i from"./reslove.mjs";let c=function(r){for(let e=0,o=Object.keys(r),t=o.length;e<t;e++)r[o[e]].transform=`${o[e]}/${r[o[e]].transform}`,r[o[e]].style&&(r[o[e]].style=`${o[e]}/${r[o[e]].style}`);return r}(o.importOnDemand||{}),n={include:t(),mode:"entry",coreJs:s};export default((t,s={})=>r({module:{type:"es6",resolveFully:!0},sync:!0,jsc:{parser:{syntax:"typescript",tsx:!0,decorators:!0,dynamicImport:!0},loose:!0,target:o.polyfill?void 0:"es2017",externalHelpers:!1,transform:{legacyDecorator:!0,decoratorMetadata:!0,react:{runtime:"automatic",throwIfNamespace:!0,refresh:a&&m,development:m,importSource:l},optimizer:{simplify:!1}},experimental:{emitAssertForImportAttributes:!0,cacheRoot:e.swcCachePath,plugins:[["@moneko/raw-import",{rootDir:e.programPath}],[i.transformImports,c],p&&[i.jsxDomExpressions,{...o.jsxDomExpressions,generate:t?"ssr":"dom",hydratable:t}]].filter(Boolean)}},env:o.polyfill?n:void 0,sourceMaps:!0,parseMap:!0},"function"==typeof o.swcrc?o.swcrc(m):o.swcrc||{},s));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "3.28.7",
3
+ "version": "3.28.9-beta.0",
4
4
  "description": "core",
5
5
  "main": "lib/index.mjs",
6
6
  "type": "module",
@@ -20,6 +20,7 @@
20
20
  "@fastify/middie": "8.3.3",
21
21
  "@moneko/convert": "1.0.0",
22
22
  "@moneko/mdx": "0.1.43",
23
+ "@moneko/raw-import": "0.0.2",
23
24
  "@moneko/stylelint": "1.0.2",
24
25
  "@moneko/transform-imports": "0.6.1",
25
26
  "@moneko/utils": "0.1.22",
@@ -29,7 +30,7 @@
29
30
  "core-js": "3.40.0",
30
31
  "core-js-compat": "3.40.0",
31
32
  "fastify": "4.29.0",
32
- "less": "4.2.1",
33
+ "less": "4.2.2",
33
34
  "less-loader": "12.2.0",
34
35
  "lightningcss": "1.29.1",
35
36
  "marked-completed": "1.2.14",
@@ -49,11 +50,12 @@
49
50
  "@types/stylis": "4.2.7",
50
51
  "@types/webpack-bundle-analyzer": "4.7.0",
51
52
  "@types/webpack-hot-middleware": "2.25.9",
52
- "eslint-config-neko": "3.0.3",
53
- "sass": "1.83.1",
53
+ "babel-plugin-react-compiler": "19.0.0-beta-714736e-20250131",
54
+ "eslint-config-neko": "3.0.4",
55
+ "sass": "1.83.4",
54
56
  "sass-loader": "16.0.4",
55
57
  "solid-refresh": "0.7.5",
56
- "stylis": "4.3.4",
58
+ "stylis": "4.3.5",
57
59
  "webpack-bundle-analyzer": "4.10.2"
58
60
  },
59
61
  "files": [
@@ -14,11 +14,13 @@ import type {
14
14
  } from 'webpack';
15
15
 
16
16
  import type {
17
+ CssInJsMinifyOption,
17
18
  HtmlPluginOption,
18
19
  JsxDomExpressions,
19
20
  OptimizationSplitChunksOptions,
20
21
  OverrideResolverOption,
21
22
  ProxyConfig,
23
+ ReactCompilerOption,
22
24
  VirtualModulePluginOption,
23
25
  } from '../lib/index.mjs';
24
26
  import type { CopyPluginOption } from '../lib/plugin/copy.mjs';
@@ -472,7 +474,7 @@ export declare type ConfigType = {
472
474
  * @description 需要 react 19+
473
475
  * @default false
474
476
  */
475
- reactCompiler?: false | ReactCompilerConfig;
477
+ reactCompiler?: false | ReactCompilerOption;
476
478
  /** stylelint 配置
477
479
  * @description 为 false 时关闭
478
480
  */
@@ -485,15 +487,14 @@ export declare type ConfigType = {
485
487
  * @default 'tsc'
486
488
  */
487
489
  dts?: 'tsc' | 'swc';
490
+ cssInJs?: {
491
+ /**
492
+ * 压缩 css 模版字符串
493
+ */
494
+ minify?: CssInJsMinifyOption | false;
495
+ };
488
496
  };
489
497
 
490
- export interface ReactCompilerConfig {
491
- /** 指定启用 React Compiler 的范围 */
492
- sources?(filename: string): boolean;
493
- /** 编译模式 */
494
- compilationMode?: 'annotation';
495
- }
496
-
497
498
  /**
498
499
  * 用于构建 http 资源的选项
499
500
  */