@moneko/core 3.28.8 → 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.
- package/lib/index.d.mts +2 -0
- package/lib/loader/css-in-js-minify.cjs +1 -1
- package/lib/loader/css-in-js-minify.d.cts +2 -3
- package/lib/loader/react-compiler.cjs +1 -1
- package/lib/loader/react-compiler.d.cts +16 -2
- package/lib/module.config.mjs +2 -2
- package/lib/options/reslove.d.mts +1 -0
- package/lib/options/reslove.mjs +1 -1
- package/lib/options/swcrc.mjs +1 -1
- package/package.json +7 -5
- package/typings/global.d.ts +9 -8
package/lib/index.d.mts
CHANGED
|
@@ -6,6 +6,8 @@ export { default as require } from './commom/require.mjs';
|
|
|
6
6
|
export { default as Rule } from './commom/rule.mjs';
|
|
7
7
|
export { type MockConfiguration, type ProxyFuncType, type RequestFormData, yApiMock, type YApiOption, type YApiOptionBySchema, yApiSchemaMock } from './dev/mock.mjs';
|
|
8
8
|
export type { ProxyConfig } from './dev/proxy.mjs';
|
|
9
|
+
export type { CssInJsMinifyOption } from './loader/css-in-js-minify.cjs';
|
|
10
|
+
export type { ReactCompilerOption } from './loader/react-compiler.cjs';
|
|
9
11
|
export { type JsxDomExpressions, default as jsxDomExpressions } from './options/jsx-dom-expressions.mjs';
|
|
10
12
|
export { type OptimizationSplitChunksOptions, default as splitChunk } from './options/split-chunk.mjs';
|
|
11
13
|
export type { HtmlMeta, HtmlPluginOption } from './plugin/html-plugin.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return
|
|
1
|
+
"use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return i}});const t=require("@swc/core"),r=require("stylis"),n=(e=require("../commom/log.mjs"))&&e.__esModule?e:{default:e};function l(e){return{type:"iTemplateElement",span:{start:0,end:0,ctxt:0},tail:!1,cooked:e,raw:e}}function a(e,t){if("Identifier"===e.tag.type&&t.includes(e.tag.value)){let t=e.template,n=function(e){let t=e.quasis.map(e=>e.cooked);return t.reduce((e,r,n)=>(e.push(r),n!==t.length-1&&e.push(`xxx${n}:xxx`),e),[]).join("").trim()}(t),a=function e(t){return t.map(t=>{switch(t.type){case"import":case"decl":return t.value;case"comm":return"/"===t.props&&t.value.includes("@")?t.value:"";case"rule":return`${t.value.replace(/&\f/g,"&")}{${e(t.children)}}`;default:return`${t.value}{${e(t.children)}}`}}).join("")}(function e(t,r){for(let n=0;n<t.length;n++){let l=t[n],a=l.parent,i=l.children;a?!function(e){var t;return"rule"===e.type&&e.parent&&(t=e.parent,e.line===t.line&&e.column===t.column)}(l)&&a.children.push(l):r.push(l),Array.isArray(i)&&(l.children=[],e(i,r))}return r}((0,r.compile)(n),[])),i=function(e,t){let r=function(e){let t;let r=/xxx(\d+):xxx/gm,n=[];for(;null!==(t=r.exec(e));)n.push({value:t[0],p1:parseInt(t[1],10),index:t.index});return n}(e);if(0===r.length)return""===e?[]:[l(e)];let n=[],a=[],i=0;return r.forEach(({value:s,p1:u,index:p},o)=>{let c=e.substring(i,p);i=i+c.length+s.length,c||0!==o?n.push(l(c)):n.push(l("")),a.push(t[u]),o===r.length-1&&n.push(l(e.substring(p+s.length)))}),a.reduce((e,t,r)=>e.concat([t],n[r+1]),[n[0]]).filter(e=>""!==e.raw)}(a,t.expressions);if(a.length>1){let e=[],r=[];i.forEach((t,n)=>{"iTemplateElement"===t.type?e.push({...t,type:"TemplateElement",tail:n===i.length-1}):r.push(t)}),t.quasis=e,t.expressions=r}}}async function i(e){let r=this.async(),{moduleName:l,allowFuncs:i}=this.getOptions()||{};this.cacheable&&this.cacheable();try{let n=await (0,t.parse)(e,{syntax:"ecmascript"}),s=[];n.body.forEach(e=>{"ImportDeclaration"===e.type&&e.source.value===l&&e.specifiers.forEach(e=>{"ImportSpecifier"===e.type&&(e.imported&&i.includes(e.imported.value)?s.push(e.local.value):i.includes(e.local.value)&&s.push(e.local.value))})}),n.body.forEach(e=>{!function(e){if("ExportDeclaration"===e.type||"ExpressionStatement"===e.type){let t="declaration"in e?e.declaration:e.expression;t&&"CallExpression"===t.type&&t.arguments.forEach(e=>{e.expression&&"TaggedTemplateExpression"===e.expression.type&&a(e.expression,s)}),t&&"VariableDeclaration"===t.type&&t.declarations.forEach(e=>{e.init?.type==="TaggedTemplateExpression"&&a(e.init,s)})}else"CallExpression"===e.type&&e.arguments.forEach(e=>{e.expression&&"TaggedTemplateExpression"===e.expression.type&&a(e.expression,s)})}(e)});let{code:u}=await (0,t.print)(n);r(null,u)}catch(e){r(e),(0,n.default)(e)}}
|
|
@@ -3,9 +3,8 @@ import { compile, type Element } from 'stylis';
|
|
|
3
3
|
import type { LoaderContext } from 'webpack';
|
|
4
4
|
import log from '../commom/log.mjs';
|
|
5
5
|
export interface CssInJsMinifyOption {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
allowFuncs?: string[];
|
|
6
|
+
moduleName: string;
|
|
7
|
+
allowFuncs: string[];
|
|
9
8
|
}
|
|
10
9
|
declare function haveSameLocation(element1: Element, element2: Element);
|
|
11
10
|
declare function isAutoInsertedRule(element: Element);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
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 {
|
|
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
|
-
|
|
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);
|
package/lib/module.config.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let e;import{join as
|
|
2
|
-
`)}:void 0},importLoaders:2}},
|
|
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)}});
|
package/lib/options/reslove.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
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;
|
package/lib/options/swcrc.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{merge as
|
|
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.
|
|
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.
|
|
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
|
-
"
|
|
53
|
-
"
|
|
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.
|
|
58
|
+
"stylis": "4.3.5",
|
|
57
59
|
"webpack-bundle-analyzer": "4.10.2"
|
|
58
60
|
},
|
|
59
61
|
"files": [
|
package/typings/global.d.ts
CHANGED
|
@@ -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 |
|
|
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
|
*/
|