@moneko/core 3.26.6 → 3.26.8

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.
Files changed (123) hide show
  1. package/lib/bin/build-app.d.mts +11 -16
  2. package/lib/bin/build.d.mts +13 -1
  3. package/lib/bin/build.mjs +1 -1
  4. package/lib/bin/changelog.d.mts +12 -1
  5. package/lib/bin/convert.d.mts +14 -0
  6. package/lib/bin/convert.mjs +1 -0
  7. package/lib/bin/eslint.d.mts +6 -1
  8. package/lib/bin/eslint.mjs +2 -1
  9. package/lib/bin/file.d.mts +2 -0
  10. package/lib/bin/git-hooks.d.mts +4 -1
  11. package/lib/bin/git-hooks.mjs +2 -1
  12. package/lib/bin/help.d.mts +2 -1
  13. package/lib/bin/index.d.mts +5 -1
  14. package/lib/bin/lessc.d.mts +10 -1
  15. package/lib/bin/start.d.mts +4 -1
  16. package/lib/bin/start.mjs +1 -1
  17. package/lib/bin/stylelint.d.mts +6 -1
  18. package/lib/bin/stylelint.mjs +2 -1
  19. package/lib/bin/utils/bundle-app.d.mts +6 -2
  20. package/lib/bin/utils/config.d.mts +8 -1
  21. package/lib/bin/utils/config.mjs +1 -1
  22. package/lib/bin/utils/setup-swcrc.d.mts +3 -2
  23. package/lib/bin/utils/setup-swcrc.mjs +1 -1
  24. package/lib/build/common.d.mts +13 -2
  25. package/lib/build/common.mjs +1 -1
  26. package/lib/build/server.d.mts +4 -0
  27. package/lib/build.d.mts +21 -1
  28. package/lib/build.mjs +1 -1
  29. package/lib/commom/diff-object.d.mts +1 -1
  30. package/lib/commom/esm.d.mts +1 -1
  31. package/lib/commom/has-pkg.d.mts +1 -0
  32. package/lib/commom/log.d.mts +4 -0
  33. package/lib/commom/log.mjs +3 -3
  34. package/lib/commom/match-path.d.mts +0 -16
  35. package/lib/commom/net.d.mts +4 -2
  36. package/lib/commom/os-tmp-dir.d.mts +0 -3
  37. package/lib/commom/parse-module-meta.d.mts +4 -1
  38. package/lib/commom/paths.d.mts +21 -39
  39. package/lib/commom/reactive-object.d.mts +4 -4
  40. package/lib/commom/require.d.mts +6 -0
  41. package/lib/commom/rule.d.mts +17 -23
  42. package/lib/commom/setup-env.d.mts +2 -5
  43. package/lib/commom/sigint-exit.d.mts +1 -1
  44. package/lib/common.d.mts +16 -1
  45. package/lib/config.d.mts +21 -0
  46. package/lib/config.mjs +1 -1
  47. package/lib/dev/config.d.mts +11 -1
  48. package/lib/dev/json-schema.d.mts +72 -3
  49. package/lib/dev/mock.d.mts +12 -21
  50. package/lib/dev/proxy.d.mts +4 -4
  51. package/lib/dev.d.mts +57 -1
  52. package/lib/dev.mjs +1 -1
  53. package/lib/index.d.mts +4 -4
  54. package/lib/loader/css-in-js-minify.d.cts +4 -1
  55. package/lib/loader/lightning-css/codegen.d.cts +4 -3
  56. package/lib/loader/lightning-css/loader.cjs +1 -1
  57. package/lib/loader/lightning-css/loader.d.cts +22 -3
  58. package/lib/loader/lightning-css/runtime/api.d.cts +3 -1
  59. package/lib/loader/lightning-css/runtime/get-url.d.cts +4 -1
  60. package/lib/loader/lightning-css/utils.d.cts +21 -11
  61. package/lib/loader/mdx.d.cts +3 -2
  62. package/lib/loader/react-compiler.d.cts +3 -1
  63. package/lib/loader/solid.d.cts +5 -4
  64. package/lib/loader/ts-doc.d.cts +6 -2
  65. package/lib/module.config.d.mts +48 -3
  66. package/lib/module.config.mjs +2 -2
  67. package/lib/options/css-extract.d.mts +6 -0
  68. package/lib/options/html-plugin-option.d.mts +9 -0
  69. package/lib/options/html-plugin-option.mjs +1 -1
  70. package/lib/options/js-minify.d.mts +12 -11
  71. package/lib/options/md-to-html.d.mts +3 -1
  72. package/lib/options/modify-vars.d.mts +7 -4
  73. package/lib/options/reslove.d.mts +9 -7
  74. package/lib/options/split-chunk.d.mts +2 -0
  75. package/lib/options/swcrc.d.mts +14 -3
  76. package/lib/plugin/add-entry-attribute.d.mts +3 -11
  77. package/lib/plugin/copy.d.mts +10 -21
  78. package/lib/plugin/copy.mjs +1 -1
  79. package/lib/plugin/done.d.mts +2 -1
  80. package/lib/plugin/exposes-declararion.d.mts +8 -4
  81. package/lib/plugin/external-remotes.d.mts +6 -2
  82. package/lib/plugin/external-remotes.mjs +1 -1
  83. package/lib/plugin/lightningcss-plugin.d.mts +14 -8
  84. package/lib/plugin/lightningcss-plugin.mjs +1 -1
  85. package/lib/plugin/module-federation.d.mts +19 -1
  86. package/lib/plugin/module-federation.mjs +1 -1
  87. package/lib/plugin/override-resolve.d.mts +6 -17
  88. package/lib/plugin/virtual-module.d.mts +18 -6
  89. package/lib/plugins.config.d.mts +20 -1
  90. package/lib/plugins.config.mjs +1 -1
  91. package/lib/polyfills/polyfills.d.mts +6 -2
  92. package/lib/polyfills/replace-children.d.mts +1 -0
  93. package/lib/polyfills/targets.d.mts +7 -3
  94. package/lib/process-env.d.mts +9 -9
  95. package/lib/process-env.mjs +1 -1
  96. package/lib/utils/create-types.d.mts +4 -1
  97. package/lib/utils/dts.d.mts +10 -12
  98. package/lib/utils/fetch-module-federation-dts.d.mts +4 -1
  99. package/lib/utils/index.d.mts +3 -26
  100. package/lib/utils/run.d.mts +2 -1
  101. package/lib/utils/seo.d.mts +9 -1
  102. package/lib/utils/svg-to-data-uri.d.mts +58 -1
  103. package/lib/utils/vts.d.mts +5 -13
  104. package/lib/vm/coverage.d.mts +38 -1
  105. package/lib/vm/docs.d.mts +12 -0
  106. package/lib/vm/docs.mjs +1 -1
  107. package/lib/vm/example.d.mts +10 -2
  108. package/lib/vm/generate-doc.d.mts +35 -1
  109. package/lib/vm/generate-doc.mjs +1 -1
  110. package/lib/vm/info.d.mts +20 -13
  111. package/lib/vm/locales.d.mts +24 -0
  112. package/lib/vm/locales.mjs +2 -2
  113. package/lib/vm/modules.d.mts +23 -0
  114. package/lib/vm/routes.d.mts +10 -1
  115. package/lib/vm/routes.mjs +1 -1
  116. package/lib/vm/utils.d.mts +5 -1
  117. package/package.json +11 -13
  118. package/typings/global.d.ts +4 -0
  119. package/lib/bin/runlint.d.mts +0 -2
  120. package/lib/bin/runlint.mjs +0 -2
  121. package/lib/commom/get-current-time.d.mts +0 -2
  122. package/lib/commom/get-current-time.mjs +0 -1
  123. package/lib/polyfills/replace-children.d.ts +0 -1
package/lib/config.d.mts CHANGED
@@ -1,4 +1,25 @@
1
+ import { fileExists } from '@moneko/utils';
2
+ import { merge } from 'webpack-merge';
3
+ import paths from './commom/paths.mjs';
4
+ import require from './commom/require.mjs';
5
+ import setupEnv from './commom/setup-env.mjs';
6
+ import jsxDomExpressions from './options/jsx-dom-expressions.mjs';
7
+ import splitChunk from './options/split-chunk.mjs';
8
+ import { isFunction, resolveProgram } from './utils/index.mjs';
1
9
  import type { ConfigType } from './index.mjs';
10
+ import { APPTYPE, FRAMEWORK, isDev, isLibrary, isMobile, jsxImportSource, mainDirectory, NODE_ENV, PACKAGENAME } from './process-env.mjs';
11
+ declare const includeModule: readonly [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string];
2
12
  export declare function getConfig(path: string): Promise<ConfigType>;
13
+ type EnvType = {
14
+ NODE_ENV: string;
15
+ APPTYPE: string;
16
+ FRAMEWORK: string;
17
+ };
18
+ declare const resp: [EnvType, ConfigType, ConfigType];
19
+ declare const env: EnvType;
20
+ declare const normalConf: ConfigType;
21
+ declare const envConf: ConfigType;
22
+ declare const defaultConfig: ConfigType;
23
+ declare let customConf: ConfigType;
3
24
  export declare const CONFIG: ConfigType;
4
25
  export declare const PUBLICPATH: string;
package/lib/config.mjs CHANGED
@@ -1 +1 @@
1
- import{fileExists as e}from"@moneko/utils";import{merge as o}from"webpack-merge";import t from"./commom/paths.mjs";import n from"./commom/require.mjs";import s from"./commom/setup-env.mjs";import i from"./options/jsx-dom-expressions.mjs";import r from"./options/split-chunk.mjs";import{isFunction as l,resolveProgram as a}from"./utils/index.mjs";import{APPTYPE as m,FRAMEWORK as p,isDev as c,isLibrary as u,isMobile as d,jsxImportSource as f,mainDirectory as h,NODE_ENV as g,PACKAGENAME as x}from"./process-env.mjs";let v=["@app","@moneko","neko-ui",".cache/http/data","@ant-design","@antv","@antv/x6","@antv/x6-react-components","@element-plus","ant-design-vue","antd","antd-mini","antd-mobile","antd-mobile-icons","element-plus","element-ui","ng-zorro-antd","@antv","@mui","@du","ahooks","rc-queue-anim","umi","@fontsource","@fortawesome","font-pingfang-sc","font-pingfang-tc","katex","react-markdown-editor-lite","react-photo-view","schema-design"];export function getConfig(o){return delete n.cache[o],new Promise(t=>{if(e(o)){let e=n(o).default;return t(l(e)?e(process):e)}return t({})})}let[P,b,w]=await Promise.all([s(g,m,p,[]),getConfig(t.configPath),getConfig(t.customConfigPath)]),C={devtool:c?"eval-cheap-module-source-map":"cheap-module-source-map",seo:!1,mode:"csr",bundleAnalyzer:!1,polyfill:!1,entry:{},minifier:{},sourceMap:{filename:"[file].map",publicPath:""},env:P,basename:"/",publicPath:"/",rem:{designSize:d?375:1920},fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:{"@":a(h)},moduleRules:[],prefixJsLoader:[],cssModules:[],cssModuleDefinition:!0,importOnDemand:{},proxy:{},devServer:{host:"localhost",port:3e3},htmlPluginOption:{},copy:{},routerMode:"browser",fixBrowserRouter:!1,plugins:[],resolvePlugins:[],overrideResolve:!1,splitChunk:r,runtimeChunk:"single",moduleFederation:[],rulesInclude:{css:v,js:v,media:v,font:v,wasm:[]},mdx:{jsx:!1,development:c,jsxImportSource:f,providerImportSource:`@moneko/${p}/mdx`},jsxDomExpressions:i,bar:{name:"Client",color:"#6f42c1"},normalizeCss:!0,externalsPresets:{},buildHttp:void 0,virtualModule:{},cssExtract:{},externals:["@swc/core"],lazyCompilation:!1,performance:!1,refresh:"solid"!==p,bundleId:"com.moneko.bid",bundles:[]};u&&(C.alias=Object.assign(C.alias,{"@pkg":t.componentsPath,[x]:t.componentsPath}));let j=C;(!1===(j=o(j,b,w)).devtool||!1===j.sourceMap)&&(j.sourceMap=!1,j.devtool=!1),j.fixBrowserRouter&&j.htmlPluginOption&&(j.htmlPluginOption.tags||(j.htmlPluginOption.tags=[]),j.htmlPluginOption.tags.push({textContent:"(function(l) {if (l.search[1] === '/' ) {var decoded = l.search.slice(1).split('&').map(function(s) {return s.replace(/~and~/g, '&')}).join('?');window.history.replaceState(null, null,l.pathname.slice(0, -1) + decoded + l.hash);}}(window.location))"}));export const CONFIG=j;export const PUBLICPATH=CONFIG.publicPath;
1
+ import{fileExists as e}from"@moneko/utils";import{merge as o}from"webpack-merge";import t from"./commom/paths.mjs";import n from"./commom/require.mjs";import s from"./commom/setup-env.mjs";import i from"./options/jsx-dom-expressions.mjs";import r from"./options/split-chunk.mjs";import{isFunction as l,resolveProgram as a}from"./utils/index.mjs";import{APPTYPE as m,FRAMEWORK as p,isDev as c,isLibrary as u,isMobile as d,jsxImportSource as f,mainDirectory as h,NODE_ENV as g,PACKAGENAME as x}from"./process-env.mjs";let v=["@app","@moneko","neko-ui",".cache/http/data","@ant-design","@antv","@antv/x6","@antv/x6-react-components","@element-plus","ant-design-vue","antd","antd-mini","antd-mobile","antd-mobile-icons","element-plus","element-ui","ng-zorro-antd","@antv","@mui","@du","ahooks","rc-queue-anim","umi","@fontsource","@fortawesome","font-pingfang-sc","font-pingfang-tc","katex","react-markdown-editor-lite","react-photo-view","schema-design"];export function getConfig(o){return delete n.cache[o],new Promise(t=>{if(e(o)){let e=n(o).default;return t(l(e)?e(process):e)}return t({})})}let P=await Promise.all([s(g,m,p,[]),getConfig(t.configPath),getConfig(t.customConfigPath)]),b=P[0],w=P[1],C=P[2],j={devtool:c?"eval-cheap-module-source-map":"cheap-module-source-map",seo:!1,mode:"csr",bundleAnalyzer:!1,polyfill:!1,entry:{},minifier:{},sourceMap:{filename:"[file].map",publicPath:""},env:b,basename:"/",publicPath:"/",rem:{designSize:d?375:1920},fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:{"@":a(h)},moduleRules:[],prefixJsLoader:[],cssModules:[],cssModuleDefinition:!0,importOnDemand:{},proxy:{},devServer:{host:"localhost",port:3e3},htmlPluginOption:{},copy:{},routerMode:"browser",fixBrowserRouter:!1,plugins:[],resolvePlugins:[],overrideResolve:!1,splitChunk:r,runtimeChunk:"single",moduleFederation:[],rulesInclude:{css:v,js:v,media:v,font:v,wasm:[]},mdx:{jsx:!1,development:c,jsxImportSource:f,providerImportSource:`@moneko/${p}/mdx`},jsxDomExpressions:i,bar:{name:"Client",color:"#6f42c1"},normalizeCss:!0,externalsPresets:{},buildHttp:void 0,virtualModule:{},cssExtract:{},externals:["@swc/core"],lazyCompilation:!1,performance:!1,refresh:"solid"!==p,bundleId:"com.moneko.bid",bundles:[]};u&&(j.alias=Object.assign(j.alias,{"@pkg":t.componentsPath,[x]:t.componentsPath}));let k=j;(!1===(k=o(k,w,C)).devtool||!1===k.sourceMap)&&(k.sourceMap=!1,k.devtool=!1),k.fixBrowserRouter&&k.htmlPluginOption&&(k.htmlPluginOption.tags||(k.htmlPluginOption.tags=[]),k.htmlPluginOption.tags.push({textContent:"(function(l) {if (l.search[1] === '/' ) {var decoded = l.search.slice(1).split('&').map(function(s) {return s.replace(/~and~/g, '&')}).join('?');window.history.replaceState(null, null,l.pathname.slice(0, -1) + decoded + l.hash);}}(window.location))"}));export const CONFIG=k;export const PUBLICPATH=CONFIG.publicPath;
@@ -1,3 +1,13 @@
1
+ import { ink, print, println, termClear } from '@moneko/utils';
1
2
  import webpack from 'webpack';
3
+ import { getIPv4, getPort } from '../commom/net.mjs';
4
+ import { CONFIG } from '../config.mjs';
5
+ declare const oldPord: number;
2
6
  export declare const PORT: number;
3
- export declare function devLog(err?: Error | null, stats?: webpack.Stats): void;
7
+ declare const initRouteBase: boolean;
8
+ declare const routeBase: string;
9
+ declare const skipPortMsg: string | false;
10
+ declare function getServerAddress(type: 'local' | 'net');
11
+ declare const welcomeMsg: string;
12
+ declare const serverSuccessMsg: string;
13
+ export declare function devLog(err?: Error | null, stats?: webpack.Stats);
@@ -1,3 +1,72 @@
1
- import { OpenAPIV3 } from 'openapi-types';
2
- export type SchemaLike = OpenAPIV3.SchemaObject;
3
- export declare function jsonSchema<T>(schema: SchemaLike): any;
1
+ type Any = any;
2
+ type NonArraySchemaObjectType = 'boolean' | 'object' | 'number' | 'string' | 'integer';
3
+ type ArraySchemaObjectType = 'array';
4
+ type SchemaObject = ArraySchemaObject | NonArraySchemaObject;
5
+ interface ExternalDocumentationObject {
6
+ description?: string;
7
+ url: string;
8
+ }
9
+ interface ArraySchemaObject extends BaseSchemaObject {
10
+ type: ArraySchemaObjectType;
11
+ items: ReferenceObject | SchemaObject;
12
+ }
13
+ interface NonArraySchemaObject extends BaseSchemaObject {
14
+ type?: NonArraySchemaObjectType;
15
+ }
16
+ interface BaseSchemaObject {
17
+ title?: string;
18
+ description?: string;
19
+ format?: string;
20
+ default?: Any;
21
+ multipleOf?: number;
22
+ maximum?: number;
23
+ exclusiveMaximum?: boolean;
24
+ minimum?: number;
25
+ exclusiveMinimum?: boolean;
26
+ maxLength?: number;
27
+ minLength?: number;
28
+ pattern?: string;
29
+ additionalProperties?: boolean | ReferenceObject | SchemaObject;
30
+ maxItems?: number;
31
+ minItems?: number;
32
+ uniqueItems?: boolean;
33
+ maxProperties?: number;
34
+ minProperties?: number;
35
+ required?: string[];
36
+ enum?: Any[];
37
+ properties?: {
38
+ [name: string]: ReferenceObject | SchemaObject;
39
+ };
40
+ allOf?: (ReferenceObject | SchemaObject)[];
41
+ oneOf?: (ReferenceObject | SchemaObject)[];
42
+ anyOf?: (ReferenceObject | SchemaObject)[];
43
+ not?: ReferenceObject | SchemaObject;
44
+ nullable?: boolean;
45
+ discriminator?: DiscriminatorObject;
46
+ readOnly?: boolean;
47
+ writeOnly?: boolean;
48
+ xml?: XMLObject;
49
+ externalDocs?: ExternalDocumentationObject;
50
+ example?: Any;
51
+ deprecated?: boolean;
52
+ }
53
+ interface DiscriminatorObject {
54
+ propertyName: string;
55
+ mapping?: {
56
+ [value: string]: string;
57
+ };
58
+ }
59
+ interface XMLObject {
60
+ name?: string;
61
+ namespace?: string;
62
+ prefix?: string;
63
+ attribute?: boolean;
64
+ wrapped?: boolean;
65
+ }
66
+ interface ReferenceObject {
67
+ $ref: string;
68
+ }
69
+ declare function resolveAllOf(schema: SchemaObject): SchemaObject;
70
+ declare function clamp(value: number, min: number, max: number): number;
71
+ declare function take<T>(array: T[], n?: number): T[];
72
+ export declare function jsonSchema<T>(schema: SchemaObject): any;
@@ -1,39 +1,30 @@
1
- import { type NextFunction, type Request, type Response } from 'express';
1
+ import http from 'node:http';
2
+ import { print } from '@moneko/utils';
3
+ import { watch } from 'chokidar';
4
+ import express, { type NextFunction, type Request, type RequestHandler, type Response } from 'express';
5
+ import { merge } from 'webpack-merge';
6
+ import log from '../commom/log.mjs';
7
+ import matchPath from '../commom/match-path.mjs';
8
+ import require from '../commom/require.mjs';
9
+ import { jsonSchema } from './json-schema.mjs';
2
10
  export interface RequestFormData extends Request {
3
11
  files: Express.Multer.File[];
4
12
  }
5
13
  export type ProxyFuncType = (req: RequestFormData, res: Response, next: NextFunction) => void;
6
14
  export type MockConfiguration = Record<string, ProxyFuncType | Record<string, any> | null>;
15
+ declare function clearProxy(iproxy: MockConfiguration, path: string, old: MockConfiguration);
7
16
  export type YApiOptionBySchema = {
8
- /** YApi host */
9
17
  host: string;
10
- /** 接口id */
11
18
  id: string;
12
- /** YApi开放接口token */
13
19
  token: string;
14
20
  };
15
21
  type Any = any;
16
- /**
17
- * 通过 YApi 接口对应的响应JSON Schema生成默认的数据
18
- * @param {YApiOptionBySchema} option Schema
19
- * @param {T} data data
20
- * @returns {Promise} mockData
21
- */
22
- export declare const yApiSchemaMock: <T extends unknown>(option: YApiOptionBySchema, data?: T) => Promise<T>;
22
+ export declare const yApiSchemaMock: <T extends Any>(option: YApiOptionBySchema, data?: T) => Promise<T>;
23
23
  export type YApiOption = {
24
- /** YApi host */
25
24
  host: string;
26
- /** YApi 项目ID */
27
25
  projectId: number;
28
- /** 重写请求路径, 例如:'^/api/' */
29
26
  pathRewrite: string;
30
27
  };
31
- /**
32
- * 请求YApi高级mock接口数据
33
- * @param {RequestFormData} req req
34
- * @param {YApiOption} yapi YApiOption
35
- * @returns {Promise} data
36
- */
37
28
  export declare const yApiMock: (req: RequestFormData, yapi: YApiOption) => Promise<Any>;
38
- declare const mockMiddlewares: (directory: string) => (req: Request, res: Response, next: VoidFunction) => void;
29
+ declare const mockMiddlewares: (directory: string) => any;
39
30
  export default mockMiddlewares;
@@ -1,8 +1,8 @@
1
- import type { Express } from 'express';
2
- import { type Options } from 'http-proxy-middleware';
1
+ import type { Express, IRoute } from 'express';
2
+ import { createProxyMiddleware, type Options } from 'http-proxy-middleware';
3
3
  export interface ProxyConfig {
4
4
  [key: string]: Options;
5
5
  }
6
- declare const devProxy: (app: Express, proxyMap: ProxyConfig) => void;
7
- export declare function updateProxy(app: Express, proxyMap?: ProxyConfig): void;
6
+ declare const devProxy: (app: Express, proxyMap: ProxyConfig) => any;
7
+ export declare function updateProxy(app: Express, proxyMap?: ProxyConfig);
8
8
  export default devProxy;
package/lib/dev.d.mts CHANGED
@@ -1 +1,57 @@
1
- export {};
1
+ import { exec, spawn } from 'node:child_process';
2
+ import { watchFile } from 'node:fs';
3
+ import type { IncomingMessage, Server as HttpServer, ServerResponse } from 'node:http';
4
+ import { createServer, Server as HttpsServer } from 'node:https';
5
+ import { join } from 'node:path';
6
+ import { directoryExists, ink, loadFile, print, println, progressBar } from '@moneko/utils';
7
+ import express, { type Express } from 'express';
8
+ import multer, { type Multer } from 'multer';
9
+ import webpack, { type WebpackPluginInstance } from 'webpack';
10
+ import middleware from 'webpack-dev-middleware';
11
+ import webpackHotMiddleware, { type ClientOptions } from 'webpack-hot-middleware';
12
+ import { merge } from 'webpack-merge';
13
+ import { diffObject } from './commom/diff-object.mjs';
14
+ import hasPkg from './commom/has-pkg.mjs';
15
+ import paths, { config_files } from './commom/paths.mjs';
16
+ import sigintExit from './commom/sigint-exit.mjs';
17
+ import { devLog, PORT } from './dev/config.mjs';
18
+ import mockMiddlewares from './dev/mock.mjs';
19
+ import devProxy, { updateProxy } from './dev/proxy.mjs';
20
+ import reslove from './options/reslove.mjs';
21
+ import { empty, resolveProgram } from './utils/index.mjs';
22
+ import { commonConfig } from './common.mjs';
23
+ import { CONFIG, getConfig, PUBLICPATH } from './config.mjs';
24
+ import type { ConfigType } from './index.mjs';
25
+ import moduleConfig from './module.config.mjs';
26
+ import { isLibrary, isReact, refresh } from './process-env.mjs';
27
+ type WebpackPlugin = new(opt?: object) => WebpackPluginInstance;
28
+ declare const StylelintPlugin: WebpackPlugin;
29
+ declare const ESLintPlugin: WebpackPlugin;
30
+ declare const ReactRefresh: WebpackPlugin;
31
+ declare const eslintExts: string[], eslintExtStr: string;
32
+ declare const stylelintExts: string[], stylelintExtStr: string;
33
+ declare const lintExclude: string[];
34
+ declare const hmrPath: string;
35
+ declare const clientParams: ClientOptions;
36
+ declare const hotParams: string;
37
+ declare const path: string | undefined;
38
+ declare const bar: ConfigType['bar'];
39
+ declare const bar_name: string;
40
+ declare const clientOption: webpack.Configuration;
41
+ declare const compilers: webpack.Compiler;
42
+ declare const app: Express;
43
+ declare const multipart: Multer;
44
+ declare const corsHeaders: Record<string, string>;
45
+ declare const devMiddleware: middleware.API<IncomingMessage, middleware.ServerResponse>;
46
+ declare const hotMiddleware: ReturnType<typeof webpackHotMiddleware>;
47
+ declare const baseHtml: string;
48
+ declare let httpsServer: HttpsServer | undefined;
49
+ type Listen = HttpsServer<typeof IncomingMessage, typeof ServerResponse> | HttpServer<typeof IncomingMessage, typeof ServerResponse>;
50
+ declare const listen: Listen;
51
+ declare function exit();
52
+ declare const _prev: ConfigType[];
53
+ declare let prev: ConfigType;
54
+ declare function watchConfig(filepath: string);
55
+ declare function restart();
56
+ declare const isWindow: boolean;
57
+ declare function killPort(port: number);
package/lib/dev.mjs CHANGED
@@ -1 +1 @@
1
- let e;import{exec as t,spawn as o}from"node:child_process";import{watchFile as r}from"node:fs";import s from"node:https";import{join as i}from"node:path";import{directoryExists as n,ink as l,loadFile as a,print as m,println as c,progressBar as p}from"@moneko/utils";import d from"express";import u from"multer";import h from"webpack";import f from"webpack-dev-middleware";import x from"webpack-hot-middleware";import{merge as y}from"webpack-merge";import{diffObject as w}from"./commom/diff-object.mjs";import g from"./commom/has-pkg.mjs";import v,{config_files as k}from"./commom/paths.mjs";import $ from"./commom/sigint-exit.mjs";import{devLog as C,PORT as b}from"./dev/config.mjs";import j from"./dev/mock.mjs";import P,{updateProxy as S}from"./dev/proxy.mjs";import A from"./options/reslove.mjs";import{empty as T,resolveProgram as E}from"./utils/index.mjs";import{commonConfig as O}from"./common.mjs";import{CONFIG as I,getConfig as M,PUBLICPATH as _}from"./config.mjs";import R from"./module.config.mjs";import{isLibrary as q,isReact as z,refresh as B}from"./process-env.mjs";let{HotModuleReplacementPlugin:D,ProgressPlugin:G,WatchIgnorePlugin:H}=h,U=!1!==I.stylelint&&g("stylelint-webpack-plugin")&&(await import("stylelint-webpack-plugin")).default,L=!1!==I.eslint&&g("eslint-webpack-plugin")&&(await import("eslint-webpack-plugin")).default,N=z&&(await import("@pmmmwh/react-refresh-webpack-plugin")).default,F=["js","jsx","ts","tsx","json","html","vue"],W=F.join(","),K=["css","scss","sass","less","ts","tsx","js","jsx"],X=K.join(","),J=["node_modules/","es/","lib/","umd/","docs/","coverage/","dist/"],Q=`${_.endsWith("/")?"":"/"}__hmr__`,V=new URLSearchParams({name:"client",path:Q,dynamicPublicPath:!0,timeout:2e3,reload:!B,quiet:!0,noInfo:!0,overlay:!0,autoConnect:!0}).toString(),Y=O.output.path,Z=I.bar.name||"Build",ee=y(O,{entry:{main:[`${A.hotMiddlewareClient}?${V}`]},output:{path:Y},module:R(!1),optimization:{minimize:!1,concatenateModules:!1,removeAvailableModules:!1,removeEmptyChunks:!0,providedExports:!0,usedExports:!1,sideEffects:!1,splitChunks:{chunks:"all",minChunks:1,minSize:30720,maxSize:0,maxAsyncRequests:60,maxInitialRequests:50,hidePathInfo:!1,cacheGroups:{vendors:{test:/[\\/]node_modules[\\/]/,priority:-10,reuseExistingChunk:!0},default:{minChunks:1,priority:-20,reuseExistingChunk:!0}}}},plugins:[new D,new H({paths:[/node_modules\/(?!(@app|@moneko)).+/,/\.d\.ts$/]}),N&&new N,L&&new L({fix:!0,threads:!0,files:[`${I.alias["@"]}/**/*.{${W}}`,q&&`${I.alias["@pkg"]}/**/*.{${W}}`].filter(Boolean),extensions:F,exclude:J,cache:!0,cacheLocation:`${v.lintCachePath}/.eslintcache`,lintDirtyModulesOnly:!0,overrideConfigFile:E("eslint.config.mjs"),configType:"flat"}),U&&new U({fix:!0,threads:!0,files:[`${I.alias["@"]}/**/*.{${X}}`,q&&`${I.alias["@pkg"]}/**/*.{${X}}`].filter(Boolean),extensions:K,exclude:J,cache:!0,cacheLocation:`${v.lintCachePath}/.stylelintcache`,lintDirtyModulesOnly:!0}),!!I.bar&&new G({handler(e,t,...o){p(e||0,1,Z,o.length?`[${t}] ${o.join(" ")}`:""),1===e&&process.stdout.write("\r\x1b[2K")}})].filter(Boolean)}),et=h(ee);et.hooks.done.tap("client-log",e=>{C(null,e)});let eo=d(),er=u(),es={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Credentials":"true","Access-Control-Allow-Headers":"DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization","Access-Control-Allow-Methods":"GET, POST, OPTIONS, DELETE, PATCH, PUT",...I.devServer.headers},ei=f(et,{writeToDisk:!1,index:"index.html",headers:e=>({...es,"Access-Control-Allow-Origin":e.headers.origin||"*","Cache-Control":"no-store, no-cache, must-revalidate, proxy-revalidate",Pragma:"no-cache",Expires:"0"}),serverSideRender:!1,lastModified:!0,publicPath:ee.output?.publicPath,cacheControl:!1,cacheImmutable:!1}),en=x(et,{log:!1,path:Q,heartbeat:2e3});eo.use(d.static(i(v.programPath,"./public"))).use(ei).use(Q,en),n(v.mockPath)&&eo.use(er.any(),j(v.mockPath)),I.proxy&&P(eo,I.proxy);let el=`${ee.output.path}/index.html`;if(eo.use((e,t,o)=>{if("GET"===e.method){let r=e.get("Accept");if(r?.includes("text/html")){let e=ei.context.outputFileSystem,o=e?.readFileSync?.(el);t.headersSent||(t.setHeader("Content-Type","text/html"),t.send(o))}else if("text/event-stream"===r&&e.url.endsWith(Q))return e.url=Q,en(e,t,o);else return o()}else{if("OPTIONS"!==e.method)return o();t.sendStatus(200)}}),I.devServer.https){let[t,o]=await Promise.all([a(I.devServer.https.key),a(I.devServer.https.cert)]);t||(c(l(`无法加载私钥。请检查路径和文件是否存在,并确保路径正确:${I.devServer.https.key}`,"red")),process.exit(1)),o||(c(l(`无法加载证书。请检查路径和文件是否存在,并确保路径正确:${I.devServer.https.cert}`,"red")),process.exit(1)),e=s.createServer({key:t,cert:o},eo)}let ea=(e||eo).listen(b,"0.0.0.0",()=>{});function em(){process.exit(0)}let ec=await Promise.all(k.map(M)),ep=y(ec[0]||{},ec[1]||{});k.forEach(function(e){r(e,async function(){let[o,r]=await Promise.all(k.map(M)),s=y(o||{},r||{}),i=w(ep,s);1===Object.keys(i).length&&"proxy"in i?(m(l(`代理更新中...`,"yellow"),!0),S(eo,s.proxy),m(l(`代理更新完成...`,"green"),!0),I.proxy=s.proxy,ep.proxy=s.proxy,ep=s):(ep=s,c(l(`检测到工程配置${l(`[${e}]`,"blue")}变更, 程序即将重启...`,"yellow"),!0),t("win32"===process.platform?`netstat -ano | findstr :${b}`:`lsof -i :${b} -t`,(e,t)=>{if(e){c(l(`查找端口 ${b} 时发生错误: ${e.message}`,"red")),c(l("请尝试手动重启程序","yellow"));return}let o=t.trim().split("\n").filter(Boolean),r=ed?o[0]?.split(/\s+/).pop()?.trim():o[0]?.trim();if(!r){c(l(`未找到占用端口 ${b} 的进程, 请尝试手动重启程序`,"yellow"));return}try{process.kill(Number(r),"SIGHUP")}catch(e){c(l(`终止进程 ${r} 时发生错误: ${e.message}`,"red"))}}))})});let ed="win32"===process.platform;process.on("SIGHUP",function(){ei.close(T),ea.close(T),ea.closeAllConnections(),function(){let e=o(process.argv[0],process.argv.slice(1),{detached:!1,stdio:"inherit"});e.unref(),e.on("close",em)}()}),process.on("exit",function(){ei.close(T),ea.close(T),ea.closeAllConnections()}),$(em);
1
+ let e;import{exec as t,spawn as o}from"node:child_process";import{watchFile as s}from"node:fs";import{createServer as i}from"node:https";import{join as r}from"node:path";import{directoryExists as n,ink as l,loadFile as a,print as m,println as c,progressBar as p}from"@moneko/utils";import d from"express";import u from"multer";import h from"webpack";import f from"webpack-dev-middleware";import x from"webpack-hot-middleware";import{merge as g}from"webpack-merge";import{diffObject as y}from"./commom/diff-object.mjs";import w from"./commom/has-pkg.mjs";import v,{config_files as k}from"./commom/paths.mjs";import $ from"./commom/sigint-exit.mjs";import{devLog as C,PORT as P}from"./dev/config.mjs";import b from"./dev/mock.mjs";import j,{updateProxy as S}from"./dev/proxy.mjs";import A from"./options/reslove.mjs";import{empty as T,resolveProgram as E}from"./utils/index.mjs";import{commonConfig as I}from"./common.mjs";import{CONFIG as M,getConfig as O,PUBLICPATH as _}from"./config.mjs";import R from"./module.config.mjs";import{isLibrary as H,isReact as q,refresh as z}from"./process-env.mjs";let B=!1!==M.stylelint&&w("stylelint-webpack-plugin")&&(await import("stylelint-webpack-plugin")).default,D=!1!==M.eslint&&w("eslint-webpack-plugin")&&(await import("eslint-webpack-plugin")).default,G=q&&(await import("@pmmmwh/react-refresh-webpack-plugin")).default,U=["js","jsx","ts","tsx","json","html","vue"],L=U.join(","),N=["css","scss","sass","less","ts","tsx","js","jsx"],W=N.join(","),F=["node_modules/","es/","lib/","umd/","docs/","coverage/","dist/"],K=`${_.endsWith("/")?"":"/"}__hmr__`,X=new URLSearchParams({name:"client",path:K,dynamicPublicPath:!0,timeout:2e3,reload:!z,quiet:!0,noInfo:!0,overlay:!0,autoConnect:!0}).toString(),J=I.output.path,Q=M.bar.name||"Build",V=g(I,{entry:{main:[`${A.hotMiddlewareClient}?${X}`]},output:{path:J},module:R(!1),optimization:{minimize:!1,concatenateModules:!1,removeAvailableModules:!1,removeEmptyChunks:!0,providedExports:!0,usedExports:!1,sideEffects:!1,splitChunks:{chunks:"all",minChunks:1,minSize:30720,maxSize:0,maxAsyncRequests:60,maxInitialRequests:50,hidePathInfo:!1,cacheGroups:{vendors:{test:/[\\/]node_modules[\\/]/,priority:-10,reuseExistingChunk:!0},default:{minChunks:1,priority:-20,reuseExistingChunk:!0}}}},plugins:[new h.HotModuleReplacementPlugin,new h.WatchIgnorePlugin({paths:[/node_modules\/(?!(@app|@moneko)).+/,/\.d\.ts$/]}),G&&new G,D&&new D({fix:!0,threads:!0,files:[`${M.alias["@"]}/**/*.{${L}}`,H&&`${M.alias["@pkg"]}/**/*.{${L}}`].filter(Boolean),extensions:U,exclude:F,cache:!0,cacheLocation:`${v.lintCachePath}/.eslintcache`,lintDirtyModulesOnly:!0,overrideConfigFile:E("eslint.config.mjs"),configType:"flat"}),B&&new B({fix:!0,threads:!0,files:[`${M.alias["@"]}/**/*.{${W}}`,H&&`${M.alias["@pkg"]}/**/*.{${W}}`].filter(Boolean),extensions:N,exclude:F,cache:!0,cacheLocation:`${v.lintCachePath}/.stylelintcache`,lintDirtyModulesOnly:!0}),!!M.bar&&new h.ProgressPlugin({handler(e,t,...o){p(e||0,1,Q,o.length?`[${t}] ${o.join(" ")}`:""),1===e&&process.stdout.write("\r\x1b[2K")}})].filter(Boolean)}),Y=h(V);Y.hooks.done.tap("client-log",e=>{C(null,e)});let Z=d(),ee=u(),et={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Credentials":"true","Access-Control-Allow-Headers":"DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization","Access-Control-Allow-Methods":"GET, POST, OPTIONS, DELETE, PATCH, PUT",...M.devServer.headers},eo=f(Y,{writeToDisk:!1,index:"index.html",headers:e=>({...et,"Access-Control-Allow-Origin":e.headers.origin||"*","Cache-Control":"no-store, no-cache, must-revalidate, proxy-revalidate",Pragma:"no-cache",Expires:"0"}),serverSideRender:!1,lastModified:!0,publicPath:V.output?.publicPath,cacheControl:!1,cacheImmutable:!1}),es=x(Y,{log:!1,path:K,heartbeat:2e3});Z.use(d.static(r(v.programPath,"./public"))).use(eo).use(K,es),n(v.mockPath)&&Z.use(ee.any(),b(v.mockPath)),M.proxy&&j(Z,M.proxy);let ei=`${V.output.path}/index.html`;if(Z.use((e,t,o)=>{if("GET"===e.method){let s=e.get("Accept");if(s?.includes("text/html")){let e=eo.context.outputFileSystem,o=e?.readFileSync?.(ei);t.headersSent||(t.setHeader("Content-Type","text/html"),t.send(o))}else if("text/event-stream"===s&&e.url.endsWith(K))return e.url=K,es(e,t,o);else return o()}else{if("OPTIONS"!==e.method)return o();t.sendStatus(200)}}),M.devServer.https){let[t,o]=await Promise.all([a(M.devServer.https.key),a(M.devServer.https.cert)]);t||(c(l(`无法加载私钥。请检查路径和文件是否存在,并确保路径正确:${M.devServer.https.key}`,"red")),process.exit(1)),o||(c(l(`无法加载证书。请检查路径和文件是否存在,并确保路径正确:${M.devServer.https.cert}`,"red")),process.exit(1)),e=i({key:t,cert:o},Z)}let er=(e||Z).listen(P,"0.0.0.0",()=>{});function en(){process.exit(0)}let el=await Promise.all(k.map(O)),ea=g(el[0]||{},el[1]||{});k.forEach(function(e){s(e,async function(){let[o,s]=await Promise.all(k.map(O)),i=g(o||{},s||{}),r=y(ea,i);1===Object.keys(r).length&&"proxy"in r?(m(l(`代理更新中...`,"yellow"),!0),S(Z,i.proxy),m(l(`代理更新完成...`,"green"),!0),M.proxy=i.proxy,ea.proxy=i.proxy,ea=i):(ea=i,c(l(`检测到工程配置${l(`[${e}]`,"blue")}变更, 程序即将重启...`,"yellow"),!0),t("win32"===process.platform?`netstat -ano | findstr :${P}`:`lsof -i :${P} -t`,(e,t)=>{if(e){c(l(`查找端口 ${P} 时发生错误: ${e.message}`,"red")),c(l("请尝试手动重启程序","yellow"));return}let o=t.trim().split("\n").filter(Boolean),s=em?o[0]?.split(/\s+/).pop()?.trim():o[0]?.trim();if(!s){c(l(`未找到占用端口 ${P} 的进程, 请尝试手动重启程序`,"yellow"));return}try{process.kill(Number(s),"SIGHUP")}catch(e){c(l(`终止进程 ${s} 时发生错误: ${e.message}`,"red"))}}))})});let em="win32"===process.platform;process.on("SIGHUP",function(){eo.close(T),er.close(T),er.closeAllConnections(),function(){let e=o(process.argv[0],process.argv.slice(1),{detached:!1,stdio:"inherit"});e.unref(),e.on("close",en)}()}),process.on("exit",function(){eo.close(T),er.close(T),er.closeAllConnections()}),$(en);
package/lib/index.d.mts CHANGED
@@ -5,12 +5,12 @@ export { default as osTmpDir } from './commom/os-tmp-dir.mjs';
5
5
  export { CUSTOMCONFIG, default as paths, routeDir, yarnArgv } from './commom/paths.mjs';
6
6
  export { default as require } from './commom/require.mjs';
7
7
  export { default as Rule } from './commom/rule.mjs';
8
- export { type MockConfiguration, type ProxyFuncType, type RequestFormData, yApiMock, type YApiOption, type YApiOptionBySchema, yApiSchemaMock, } from './dev/mock.mjs';
8
+ export { type MockConfiguration, type ProxyFuncType, type RequestFormData, yApiMock, type YApiOption, type YApiOptionBySchema, yApiSchemaMock } from './dev/mock.mjs';
9
9
  export type { ProxyConfig } from './dev/proxy.mjs';
10
- export { type JsxDomExpressions, default as jsxDomExpressions, } from './options/jsx-dom-expressions.mjs';
11
- export { type OptimizationSplitChunksOptions, default as splitChunk, } from './options/split-chunk.mjs';
10
+ export { type JsxDomExpressions, default as jsxDomExpressions } from './options/jsx-dom-expressions.mjs';
11
+ export { type OptimizationSplitChunksOptions, default as splitChunk } from './options/split-chunk.mjs';
12
12
  export type { OverrideResolverOption } from './plugin/override-resolve.mjs';
13
13
  export type { VirtualModulePluginOption } from './plugin/virtual-module.mjs';
14
- export { APPTYPE, coreName, FRAMEWORK, isDev, isLibrary, isMicro, mainDirectory, PACKAGENAME, PACKAGEVERSION, } from './process-env.mjs';
14
+ export { APPTYPE, coreName, FRAMEWORK, isDev, isLibrary, isMicro, mainDirectory, PACKAGENAME, PACKAGEVERSION } from './process-env.mjs';
15
15
  export { resolveProgram, toCamelCase } from './utils/index.mjs';
16
16
  export type { MdxOptions } from '@moneko/mdx';
@@ -1,5 +1,8 @@
1
+ import { transformAsync } from '@babel/core';
2
+ import BabelPluginMonekoCss from '@moneko/css/babel';
1
3
  import type { LoaderContext } from 'webpack';
4
+ import log from '../commom/log.mjs';
2
5
  export interface CssInJsMinifyOption {
3
6
  sourceMap?: boolean;
4
7
  }
5
- export default function cssInJsMinifyLoader(this: LoaderContext<CssInJsMinifyOption>, sourceCode: string): Promise<void>;
8
+ export default async function cssInJsMinifyLoader(this: LoaderContext<CssInJsMinifyOption>, sourceCode: string);
@@ -1,5 +1,6 @@
1
1
  import type { LoaderContext } from 'webpack';
2
2
  import type { LightningCssLoaderOption } from './loader.cjs';
3
+ import { camelCase, dashesCamelCase, normalizeSourceMapForRuntime } from './utils.cjs';
3
4
  export interface CssImport {
4
5
  icss?: boolean;
5
6
  importName: string;
@@ -27,9 +28,9 @@ export interface ApiReplacement {
27
28
  needQuotes?: boolean;
28
29
  hash?: string;
29
30
  }
30
- export declare function getImportCode(imports: CssImport[], options: LightningCssLoaderOption): string;
31
+ export declare function getImportCode(imports: CssImport[], options: LightningCssLoaderOption);
31
32
  export declare function getModuleCode(result: {
32
33
  map: void | Uint8Array;
33
34
  css: string;
34
- }, api: ApiParam[], replacements: ApiReplacement[], options: LightningCssLoaderOption, loaderContext: LoaderContext<LightningCssLoaderOption>): string;
35
- export declare function getExportCode(exports: CssExport[], replacements: ApiReplacement[], options: LightningCssLoaderOption): string;
35
+ }, api: ApiParam[], replacements: ApiReplacement[], options: LightningCssLoaderOption, loaderContext: LoaderContext<LightningCssLoaderOption>);
36
+ export declare function getExportCode(exports: CssExport[], replacements: ApiReplacement[], options: LightningCssLoaderOption);
@@ -1 +1 @@
1
- "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return u}});const t=require("lightningcss"),r=(e=require("../../commom/log.mjs"))&&e.__esModule?e:{default:e},s=require("./codegen.cjs"),i=require("./utils.cjs");function o(e,t){return JSON.stringify(e.utils.contextify(e.context||e.rootContext,t))}const l=new TextEncoder,n={Declaration:{custom(e){if("content"===e.name&&1===e.value.length){let t=e.value[0];if("token"===t.type&&"string"===t.value.type)return[{property:e.name,raw:JSON.stringify(t.value.value.replace(/[\u4e00-\u9faF]/g,function(e){return`\\${e.charCodeAt(0).toString(16)}`}))}]}}}};async function u(e,u){let _=this.async();this.cacheable&&this.cacheable();let{implementation:a,visitor:p,rem:c,...f}=this.getOptions(),m=!!f.modules?.auto?.(this.resourcePath);if(m&&void 0===f.modules.namedExport&&(f.modules.namedExport=!0),a&&"function"!=typeof a.transform){_(TypeError(`[lightning-loader]: implementation.transform must be an 'lightningcss' transform function. Received ${typeof a.transform}`));return}let d=[],h=[],R=[],S=[],g=[];f.modules?.exportOnlyLocals!==!0&&h.unshift({type:"api_import",importName:"___CSS_LOADER_API_IMPORT___",url:o(this,require.resolve("./runtime/api.cjs"))});let y=a?.transform?a.transform:t.transform,L=new Map,O=new Map,E=new Map,v=function(e,t,r,s,o,l){let n=new Map,u=!1,_=new Map,a=new Map,p=-1,c=-1;return{Rule:{import(s){let o;if(e.importFilter&&!e.importFilter(s.value.url,s.value.media))return s;let u=s.value.url;c++,l.set(c,u),u=`__MO_LIGHTNINGCSS_LOADER_IMPORT_URL_REPLACE_${c}__`;let _=s.value.media.mediaQueries.length?JSON.stringify(s.value.media.mediaQueries):void 0,a=(0,i.isUrlRequestable)(u);if(a){let e=u.split("!");e.length>1&&(u=e.pop(),o=e.join("!"))}if(!a)return t.push({url:u,media:_}),{type:"ignored",value:""};let p=o?`${o}!${u}`:u,f=n.get(p);if(!f){f=`___CSS_LOADER_AT_RULE_IMPORT_${n.size}___`,n.set(p,f);let t=e.urlHandler(p);r.push({type:"rule_import",importName:f,url:t})}return t.push({importName:f,media:_}),{type:"ignored",value:""}}},Url:t=>(function(t){let l,n=t.url;if(!e.urlFilter(n)||(0,i.isDataUrl)(n))return t;p++,o.set(p,n);let[,c,f]=(n=`__MO_LIGHTNINGCSS_LOADER_URL_REPLACE_${p}__`).split(/(\?)?#/,3),m=n.split("!");m.length>1&&(n=m.pop(),l=m.join("!"));let d=c?"?":"";d+=f?`#${f}`:"",u||(r.push({type:"get_url_import",importName:"___CSS_LOADER_GET_URL_IMPORT___",url:JSON.stringify(require.resolve("./runtime/get-url.cjs")),index:-1}),u=!0);let h=l?`${l}!${n}`:n,R=_.get(h);R||(R=`___CSS_LOADER_URL_IMPORT_${_.size}___`,_.set(h,R),r.push({type:"url",importName:R,url:JSON.stringify(h),index:p}));let S=JSON.stringify({newUrl:h,hash:d,needQuotes:!1}),g=a.get(S);return g||(g=`___CSS_LOADER_URL_REPLACEMENT_${a.size}___`,a.set(S,g),s.push({replacementName:g,importName:R,hash:d,needQuotes:!1})),{loc:t.loc,url:g}})(t)}}({urlHandler:e=>o(this,(0,i.getPreRequester)(this)(f.importLoaders??0)+e),urlFilter:(0,i.getFilter)(f.url,this.resourcePath),importFilter:(0,i.getFilter)(f.import,this.resourcePath),context:this.context},S,h,g,L,E),C=function({apis:e,imports:t,replacements:r,replacedUrls:s,urlHandler:i}){let o=-1,l=-1;return{Declaration:{composes(n){if("unparsed"===n.property)return;let u=n.value.from;if(u?.type!=="file")return;let _=u.value;if(!_)return;o++,s.set(o,_),_=`__MO_LIGHTNINGCSS_LOADER_ICSS_URL_REPLACE_${o}__`;let a=`___CSS_LOADER_ICSS_IMPORT_${t.length}___`;t.push({type:"icss_import",importName:a,icss:!0,url:i(_),index:o}),e.push({importName:a,dedupe:!0,index:o});let p=[];for(let e of n.value.names){l++;let t=`___CSS_LOADER_ICSS_IMPORT_${o}_REPLACEMENT_${l}___`;r.push({replacementName:t,importName:a,localName:e}),p.push(t)}return{property:"composes",value:{loc:n.value.loc,names:p,from:u}}}}}}({apis:S,imports:R,replacements:g,replacedUrls:O,urlHandler:e=>o(this,(0,i.getPreRequester)(this)(f.importLoaders)+e)});try{c&&!n.Length&&(n.Length=function(e){if("px"===e.unit)return{unit:"rem",value:e.value/16}});let{code:t,map:r,exports:o}=y({filename:this.resourcePath,code:l.encode(e),minify:!0,visitor:{...n,...v,...C,...p},cssModules:!!m&&{pattern:f.modules.localIdentName},sourceMap:this.sourceMap,inputSourceMap:this.sourceMap&&u?JSON.stringify(u):void 0,analyzeDependencies:!1,drafts:{customMedia:!0},include:1,errorRecovery:!1,unusedSymbols:[],...f}),a=t.toString();if(o){for(let e in o)if(Object.prototype.hasOwnProperty.call(o,e)){let t=o[e],r=t.name;for(let e of t.composes)r+=` ${e.name}`;d.push({name:e,value:r})}f.modules.getJSON?.({resourcePath:this.resourcePath,exports:d})}if(0!==L.size){let e=this.getResolve({conditionNames:["asset"],mainFields:["asset"],mainFiles:[],extensions:[]});for(let[t,r]of L.entries()){let[s]=r.split(/(\?)?#/,3),o=(0,i.requestify)(s,this.rootContext),l=await (0,i.resolveRequests)(e,this.context,[...new Set([o,r])]);for(let e of h)e.url=e.url.replace(`__MO_LIGHTNINGCSS_LOADER_URL_REPLACE_${t}__`,l??r)}}if(0!==E.size){let e=this.getResolve({conditionNames:["style"],extensions:[".css"],mainFields:["css","style","main","..."],mainFiles:["index","..."],restrictions:[/\.css$/i]});for(let[t,r]of E.entries()){let[s]=r.split(/(\?)?#/,3),o=(0,i.requestify)(s,this.rootContext),l=await (0,i.resolveRequests)(e,this.context,[...new Set([o,r])]);for(let e of h)e.url=e.url.replace(`__MO_LIGHTNINGCSS_LOADER_IMPORT_URL_REPLACE_${t}__`,l??r)}}if(0!==O.size){let e=this.getResolve({conditionNames:["style"],extensions:[],mainFields:["css","style","main","..."],mainFiles:["index","..."]});for(let[t,r]of O.entries()){let[s]=r.split(/(\?)?#/,3),o=(0,i.requestify)(s,this.rootContext);for(let s of(await (0,i.resolveRequests)(e,this.context,[...new Set([r,o])]),R))s.url=s.url.replace(`__MO_LIGHTNINGCSS_LOADER_ICSS_URL_REPLACE_${t}__`,r)}}h.push(...R);let M=(0,s.getImportCode)(h,f),N=(0,s.getModuleCode)({css:a,map:r},S,g,f,this),x=(0,s.getExportCode)(d,g,f),P=`${M}${N}${x}`;_(null,P,r&&JSON.parse(r.toString()))}catch(e){_(e),(0,r.default)(e)}}
1
+ "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return u}});const t=require("lightningcss"),r=(e=require("../../commom/log.mjs"))&&e.__esModule?e:{default:e},i=require("./codegen.cjs"),s=require("./utils.cjs");function o(e,t){return JSON.stringify(e.utils.contextify(e.context||e.rootContext,t))}const l=new TextEncoder,n={Declaration:{custom(e){if("content"===e.name&&1===e.value.length){let t=e.value[0];if("token"===t.type&&"string"===t.value.type)return[{property:e.name,raw:JSON.stringify(t.value.value.replace(/[\u4e00-\u9faF]/g,function(e){return`\\${e.charCodeAt(0).toString(16)}`}))}]}}}};async function u(e,u){let _=this.async();this.cacheable&&this.cacheable();let{implementation:a,visitor:p,rem:c,...f}=this.getOptions(),m=!!f.modules?.auto?.(this.resourcePath);if(m&&void 0===f.modules.namedExport&&(f.modules.namedExport=!0),a&&"function"!=typeof a.transform){_(TypeError(`[lightning-loader]: implementation.transform must be an 'lightningcss' transform function. Received ${typeof a.transform}`));return}let d=[],h=[],S=[],R=[],g=[];f.modules?.exportOnlyLocals!==!0&&h.unshift({type:"api_import",importName:"___CSS_LOADER_API_IMPORT___",url:o(this,require.resolve("./runtime/api.cjs"))});let y=a?.transform?a.transform:t.transform,L=new Map,O=new Map,E=new Map,v=function(e,t,r,i,o,l){let n=new Map,u=!1,_=new Map,a=new Map,p=-1,c=-1;return{Rule:{import(i){let o;if(e.importFilter&&!e.importFilter(i.value.url,i.value.media))return i;let u=i.value.url;c++,l.set(c,u),u=`__MO_LIGHTNINGCSS_LOADER_IMPORT_URL_REPLACE_${c}__`;let _=i.value.media.mediaQueries.length?JSON.stringify(i.value.media.mediaQueries):void 0,a=(0,s.isUrlRequestable)(u);if(a){let e=u.split("!");e.length>1&&(u=e.pop(),o=e.join("!"))}if(!a)return t.push({url:u,media:_}),{type:"ignored",value:""};let p=o?`${o}!${u}`:u,f=n.get(p);if(!f){f=`___CSS_LOADER_AT_RULE_IMPORT_${n.size}___`,n.set(p,f);let t=e.urlHandler(p);r.push({type:"rule_import",importName:f,url:t})}return t.push({importName:f,media:_}),{type:"ignored",value:""}}},Url:t=>(function(t){let l,n=t.url;if(!e.urlFilter(n)||(0,s.isDataUrl)(n))return t;p++,o.set(p,n);let[,c,f]=(n=`__MO_LIGHTNINGCSS_LOADER_URL_REPLACE_${p}__`).split(/(\?)?#/,3),m=n.split("!");m.length>1&&(n=m.pop(),l=m.join("!"));let d=c?"?":"";d+=f?`#${f}`:"",u||(r.push({type:"get_url_import",importName:"___CSS_LOADER_GET_URL_IMPORT___",url:JSON.stringify(require.resolve("./runtime/get-url.cjs")),index:-1}),u=!0);let h=l?`${l}!${n}`:n,S=_.get(h);S||(S=`___CSS_LOADER_URL_IMPORT_${_.size}___`,_.set(h,S),r.push({type:"url",importName:S,url:JSON.stringify(h),index:p}));let R=JSON.stringify({newUrl:h,hash:d,needQuotes:!1}),g=a.get(R);return g||(g=`___CSS_LOADER_URL_REPLACEMENT_${a.size}___`,a.set(R,g),i.push({replacementName:g,importName:S,hash:d,needQuotes:!1})),{loc:t.loc,url:g}})(t)}}({urlHandler:e=>o(this,(0,s.getPreRequester)(this)(f.importLoaders??0)+e),urlFilter:(0,s.getFilter)(f.url,this.resourcePath),importFilter:(0,s.getFilter)(f.import,this.resourcePath),context:this.context},R,h,g,L,E),C=function({apis:e,imports:t,replacements:r,replacedUrls:i,urlHandler:s}){let o=-1,l=-1;return{Declaration:{composes(n){if("unparsed"===n.property)return;let u=n.value.from;if(u?.type!=="file")return;let _=u.value;if(!_)return;o++,i.set(o,_),_=`__MO_LIGHTNINGCSS_LOADER_ICSS_URL_REPLACE_${o}__`;let a=`___CSS_LOADER_ICSS_IMPORT_${t.length}___`;t.push({type:"icss_import",importName:a,icss:!0,url:s(_),index:o}),e.push({importName:a,dedupe:!0,index:o});let p=[];for(let e of n.value.names){l++;let t=`___CSS_LOADER_ICSS_IMPORT_${o}_REPLACEMENT_${l}___`;r.push({replacementName:t,importName:a,localName:e}),p.push(t)}return{property:"composes",value:{loc:n.value.loc,names:p,from:u}}}}}}({apis:R,imports:S,replacements:g,replacedUrls:O,urlHandler:e=>o(this,(0,s.getPreRequester)(this)(f.importLoaders)+e)});try{c&&!n.Length&&(n.Length=function(e){if("px"===e.unit)return{unit:"rem",value:e.value/16}});let{code:t,map:r,exports:o}=y({filename:this.resourcePath,code:l.encode(e),minify:!0,visitor:{...n,...v,...C,...p},cssModules:!!m&&{pattern:f.modules.localIdentName},sourceMap:this.sourceMap,inputSourceMap:this.sourceMap&&u?JSON.stringify(u):void 0,analyzeDependencies:!1,drafts:{customMedia:!0},include:1,errorRecovery:!1,unusedSymbols:[],...f}),a=t.toString();if(o){for(let e in o)if(Object.prototype.hasOwnProperty.call(o,e)){let t=o[e],r=t.name;for(let e of t.composes)r+=` ${e.name}`;d.push({name:e,value:r})}f.modules.getJSON?.({resourcePath:this.resourcePath,exports:d})}if(0!==L.size)for(let[e,t]of L.entries())for(let r of h)r.url=r.url.replace(`__MO_LIGHTNINGCSS_LOADER_URL_REPLACE_${e}__`,t);if(0!==E.size){let e=this.getResolve({conditionNames:["style"],extensions:[".css"],mainFields:["css","style","main","..."],mainFiles:["index","..."],restrictions:[/\.css$/i]});for(let[t,r]of E.entries()){let[i]=r.split(/(\?)?#/,3),o=(0,s.requestify)(i,this.rootContext),l=await (0,s.resolveRequests)(e,this.context,[...new Set([o,r])]);for(let e of h)e.url=e.url.replace(`__MO_LIGHTNINGCSS_LOADER_IMPORT_URL_REPLACE_${t}__`,l??r)}}if(0!==O.size){let e=this.getResolve({conditionNames:["style"],extensions:[],mainFields:["css","style","main","..."],mainFiles:["index","..."]});for(let[t,r]of O.entries()){let[i]=r.split(/(\?)?#/,3),o=(0,s.requestify)(i,this.rootContext),l=await (0,s.resolveRequests)(e,this.context,[...new Set([r,o])]);for(let e of S)e.url=e.url.replace(`__MO_LIGHTNINGCSS_LOADER_ICSS_URL_REPLACE_${t}__`,l??r)}}h.push(...S);let M=(0,i.getImportCode)(h,f),N=(0,i.getModuleCode)({css:a,map:r},R,g,f,this),P=(0,i.getExportCode)(d,g,f),I=`${M}${N}${P}`;_(null,I,r&&JSON.parse(r.toString()))}catch(e){_(e),(0,r.default)(e)}}
@@ -1,5 +1,23 @@
1
- import { type CustomAtRules, type TransformOptions } from 'lightningcss';
1
+ import { type CustomAtRules, transform as _transform, type TransformOptions, type Url, type Visitor } from 'lightningcss';
2
2
  import type { LoaderContext } from 'webpack';
3
+ import log from '../../commom/log.mjs';
4
+ import { type ApiParam, type ApiReplacement, type CssExport, type CssImport, getExportCode, getImportCode, getModuleCode } from './codegen.cjs';
5
+ import { getFilter, getPreRequester, isDataUrl, isUrlRequestable, requestify, resolveRequests } from './utils.cjs';
6
+ declare function stringifyRequest(loaderContext: LoaderContext<unknown>, request: string);
7
+ declare const encoder: TextEncoder;
8
+ declare function createUrlAndImportVisitor(visitorOptions: {
9
+ urlHandler(url: string): string;
10
+ urlFilter(...args: (string | undefined)[]): unknown;
11
+ importFilter(...args: unknown[]): unknown;
12
+ context: string;
13
+ }, apis: ApiParam[], imports: CssImport[], replacements: ApiReplacement[], replacedUrls: Map<number, string>, replacedImportUrls: Map<number, string>): Visitor<CustomAtRules>;
14
+ declare function createIcssVisitor({ apis, imports, replacements, replacedUrls, urlHandler }: {
15
+ apis: ApiParam[];
16
+ imports: CssImport[];
17
+ replacements: ApiReplacement[];
18
+ replacedUrls: Map<number, string>;
19
+ urlHandler: (url: string) => string;
20
+ }): Visitor<CustomAtRules>;
3
21
  type ExportLocalsConvention = 'asIs' | 'camelCase' | 'camelCaseOnly' | 'dashes' | 'dashesOnly' | ((name: string) => string);
4
22
  type Mode = 'local' | 'global' | 'pure' | 'icss' | ((resourcePath: string, resourceQuery: string, resourceFragment: string) => 'local' | 'global' | 'pure' | 'icss');
5
23
  export interface LightningCssLoaderOption extends Omit<TransformOptions<CustomAtRules>, 'filename' | 'code' | 'inputSourceMap'> {
@@ -25,5 +43,6 @@ export interface LightningCssLoaderOption extends Omit<TransformOptions<CustomAt
25
43
  url?: string;
26
44
  import?(...args: unknown[]): boolean;
27
45
  }
28
- export default function LightningCssLoader(this: LoaderContext<LightningCssLoaderOption>, source: string, prevMap?: string): Promise<void>;
29
- export {};
46
+ declare const normalVisitor: Visitor<CustomAtRules>;
47
+ declare const LOADER_NAME: string;
48
+ export default async function LightningCssLoader(this: LoaderContext<LightningCssLoaderOption>, source: string, prevMap?: string);
@@ -1 +1,3 @@
1
- export {};
1
+ type Item = any[];
2
+ declare function cssWithMappingToString(item: Item, useSourceMap: boolean);
3
+ declare function toComment(sourceMap: string);
@@ -1 +1,4 @@
1
- export {};
1
+ type Url = {
2
+ __esModule?: boolean;
3
+ default: string;
4
+ };
@@ -1,16 +1,26 @@
1
+ import { dirname, relative, resolve, sep } from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
1
3
  import type { LoaderContext } from 'webpack';
2
- export declare function urlToRequest(e: string, i?: string | boolean): string;
3
- export declare function resolveRequests(resolve: (arg0: any, arg1: any) => Promise<any>, context: any, possibleRequests: any[]): Promise<any>;
4
- export declare function requestify(url: string, rootContext: string): string;
5
- export declare function isUrlRequestable(url: string): boolean;
6
- export declare function isDataUrl(url: string): boolean;
7
- export declare function getPreRequester({ loaders, loaderIndex, }: {
4
+ declare const t: RegExp;
5
+ export declare function urlToRequest(e: string, i?: string | boolean);
6
+ export declare async function resolveRequests(resolve: (arg0: any, arg1: any) => Promise<any>, context: any, possibleRequests: any[]): Promise<any>;
7
+ export declare function requestify(url: string, rootContext: string);
8
+ export declare function isUrlRequestable(url: string);
9
+ export declare function isDataUrl(url: string);
10
+ export declare function getPreRequester({ loaders, loaderIndex }: {
8
11
  loaders: {
9
12
  request: unknown;
10
13
  }[];
11
14
  loaderIndex: number;
12
- }): (number: string | false | number) => any;
13
- export declare function getFilter<T>(filter: T, resourcePath: string): (...args: T[]) => any;
14
- export declare function normalizeSourceMapForRuntime(map: any, loaderContext: LoaderContext<unknown>): string;
15
- export declare function dashesCamelCase(str: string): string;
16
- export declare const camelCase: (input: string | string[], options?: Record<string, unknown>) => string;
15
+ });
16
+ export declare function getFilter<T>(filter: T, resourcePath: string);
17
+ declare function normalizePath(file: string);
18
+ declare const IS_NATIVE_WIN32_PATH: RegExp;
19
+ declare const ABSOLUTE_SCHEME: RegExp;
20
+ declare function getURLType(source: string);
21
+ export declare function normalizeSourceMapForRuntime(map: any, loaderContext: LoaderContext<unknown>);
22
+ export declare function dashesCamelCase(str: string);
23
+ declare const preserveCamelCase: (string: string, locale: string) => any;
24
+ declare const preserveConsecutiveUppercase: (input: string) => any;
25
+ declare const postProcess: (input: string, options: any) => any;
26
+ export declare const camelCase: (input: string | string[], options?: Record<string, unknown>) => any;
@@ -1,3 +1,4 @@
1
- import { type MdxOptions } from '@moneko/mdx';
1
+ import { mdx, type MdxOptions } from '@moneko/mdx';
2
2
  import type { LoaderContext } from 'webpack';
3
- export default function (this: LoaderContext<Omit<MdxOptions, 'value'>>, value: string): Promise<void>;
3
+ import log from '../commom/log.mjs';
4
+ export default async function(this: LoaderContext<Omit<MdxOptions, 'value'>>, value: string);
@@ -1,5 +1,7 @@
1
+ import { transformSync } from '@babel/core';
2
+ import BabelPluginReactCompiler from 'babel-plugin-react-compiler';
1
3
  import type { LoaderContext } from 'webpack';
2
4
  export interface ReactCompilerOption {
3
5
  filename?: string;
4
6
  }
5
- export default function reactCompilerLoader(this: LoaderContext<ReactCompilerOption>, sourceCode: string): Promise<void>;
7
+ export default async function reactCompilerLoader(this: LoaderContext<ReactCompilerOption>, sourceCode: string);
@@ -1,9 +1,10 @@
1
- import { type TransformOptions } from '@babel/core';
1
+ import { type TransformOptions, transformSync } from '@babel/core';
2
+ import BabelPluginSolidRefresh from 'solid-refresh/babel';
2
3
  import type { LoaderContext } from 'webpack';
3
- declare function solidLoader(this: LoaderContext<TransformOptions & {
4
+ declare async function solidLoader(this: LoaderContext<TransformOptions & {
4
5
  refresh?: boolean;
5
- }>, sourceCode: string): Promise<void>;
6
+ }>, sourceCode: string);
6
7
  export declare function custom(this: LoaderContext<TransformOptions & {
7
8
  refresh?: boolean;
8
- }>, sourceCode: string): () => Promise<void>;
9
+ }>, sourceCode: string);
9
10
  export default solidLoader;
@@ -1,7 +1,11 @@
1
+ import { statSync } from 'fs';
1
2
  import type { LoaderContext } from 'webpack';
3
+ import log from '../commom/log.mjs';
4
+ import parseModuleMeta from '../commom/parse-module-meta.mjs';
2
5
  import type ReactiveObject from '../commom/reactive-object.mjs';
3
- export default function (this: LoaderContext<{
6
+ declare const metadata: Record<string, number>;
7
+ export default function(this: LoaderContext<{
4
8
  comment: ReactiveObject<Record<string, string>>;
5
9
  generateDoc(content: string, path: string): string;
6
10
  getCommentPath(filepath: string): string;
7
- }>, value: string): string;
11
+ }>, value: string);
@@ -1,3 +1,48 @@
1
- import type { ModuleOptions } from 'webpack';
2
- declare const _default: (ssr: boolean) => ModuleOptions;
3
- export default _default;
1
+ import { join, sep } from 'node:path';
2
+ import { saveFileSync } from '@moneko/utils';
3
+ import type { ModuleOptions, PathData, RuleSetRule } from 'webpack';
4
+ import hasPkg from './commom/has-pkg.mjs';
5
+ import paths, { CUSTOMCONFIG } from './commom/paths.mjs';
6
+ import ReactiveObject from './commom/reactive-object.mjs';
7
+ import require from './commom/require.mjs';
8
+ import Rule from './commom/rule.mjs';
9
+ import type { LightningCssLoaderOption } from './loader/lightning-css/loader.cjs';
10
+ import cssExtract from './options/css-extract.mjs';
11
+ import modifyVars from './options/modify-vars.mjs';
12
+ import reslove from './options/reslove.mjs';
13
+ import swcrc from './options/swcrc.mjs';
14
+ import { getLightningCssTargets } from './polyfills/targets.mjs';
15
+ import { node_modules, resolveProgram, toCamelCase } from './utils/index.mjs';
16
+ import svgToDataUri from './utils/svg-to-data-uri.mjs';
17
+ import { comment, getCommentPath } from './vm/docs.mjs';
18
+ import generateDoc from './vm/generate-doc.mjs';
19
+ import { CONFIG } from './config.mjs';
20
+ import { type ConfigType, type RulesInclude } from './index.mjs';
21
+ import { FRAMEWORK, isDev, isLibrary } from './process-env.mjs';
22
+ declare const lightningCssLoader: RuleSetRule;
23
+ declare const lessLoader: RuleSetRule;
24
+ declare const pathCache: Map<string, string | null>;
25
+ declare function safePkgPath(name: string): string;
26
+ declare const customCssModules: string[];
27
+ declare const entryResolveProgramPath: string[];
28
+ declare function include(type: keyof RulesInclude): Promise<string[]>;
29
+ declare const includeModules: string[][];
30
+ declare const includeCss: string[];
31
+ declare const includeJs: string[];
32
+ declare const includeMedia: string[];
33
+ declare const includeWasm: string[];
34
+ declare const includeFont: string[];
35
+ declare let sassLoader: RuleSetRule | undefined;
36
+ declare const docLoader: false | RuleSetRule;
37
+ declare const commonOneOf: RuleSetRule[];
38
+ declare const prefixJsLoader: ConfigType['prefixJsLoader'];
39
+ declare const cssModuleType: ReactiveObject<Record<string, string>>;
40
+ declare function getJSON(params: {
41
+ resourcePath: string;
42
+ exports: {
43
+ name: string;
44
+ value: string;
45
+ }[];
46
+ });
47
+ declare const _dts_1: (ssr: boolean) => ModuleOptions;
48
+ export default _dts_1;
@@ -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 from"./commom/has-pkg.mjs";import a,{CUSTOMCONFIG as m}from"./commom/paths.mjs";import n from"./commom/reactive-object.mjs";import i from"./commom/require.mjs";import l from"./commom/rule.mjs";import c from"./options/css-extract.mjs";import d from"./options/modify-vars.mjs";import p from"./options/reslove.mjs";import u from"./options/swcrc.mjs";import{getLightningCssTargets as f}from"./polyfills/targets.mjs";import{node_modules as j,resolveProgram as h,toCamelCase as v}from"./utils/index.mjs";import g from"./utils/svg-to-data-uri.mjs";import{comment as y,getCommentPath as x}from"./vm/docs.mjs";import w from"./vm/generate-doc.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(a.corePath,"/loader/lightning-css/loader.cjs"),options:{sourceMap:!!L.sourceMap,targets:f(),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=b.length;o<s;o++)if(e.includes(b[o]))return l.css_module.test(e)}return l.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 ${v(e)}: '${o}';`).join("\n")}
2
- `)}:void 0},importLoaders:2}},C={loader:p.lessLoader,options:{sourceMap:!!L.sourceMap,lessOptions:{modifyVars:d,javascriptEnabled:!0}}},O=new Map;function I(e){if(O.has(e))return O.get(e);try{let o;let t=i.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=j(e);return O.set(e,o),o}}let b=[...L.cssModules,`@moneko/${P}`,"neko-ui"].map(I),W=["components","example","mock","site","src","server"].map(h);function $(e){return new Promise(o=>{o([...W,...L.rulesInclude?.[e]?.map(I)||[]])})}m&&W.push(h(m)),L.overrideResolve&&L.overrideResolve.override&&W.push(L.overrideResolve.override);let[R,B,S,z,D]=await Promise.all([$("css"),$("js"),$("media"),$("wasm"),$("font")]);p.sassLoader&&(e={loader:p.sassLoader,options:{implementation:await import("sass"),sassOptions:{}}});let E=_&&M&&{test:l.tsdoc,include:L.alias["@pkg"],exclude:[/node_modules\/(?!(@app|@moneko)).+/,l.__tests__],enforce:"pre",loader:o(a.corePath,"/loader/ts-doc.cjs"),options:{comment:y,generateDoc:w,getCommentPath:x}},J=[{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:l.wasm,type:"webassembly/async",include:z},{test:l.txt,type:"asset/source"},{test:l.image,type:"asset",dependency:{not:["url"]},parser:{dataUrlCondition:{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")?g(e.toString()):e},include:S},{test:l.video,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/video/[name][ext]"},include:S},{test:l.font,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/fonts/[name][ext]"},include:D}],N=L.prefixJsLoader.filter(Boolean)||[];switch(P){case"react":L.reactCompiler&&N.unshift({loader:o(a.corePath,"/loader/react-compiler.cjs"),options:L.reactCompiler});break;case"solid":L.refresh=!1}!M&&r("@moneko/css")&&N.unshift(o(a.corePath,"/loader/css-in-js-minify.cjs"));let Q=new n({});Q.on("change",(e,o)=>{t(e,o)});export default(s=>{let t={loader:p.swcLoader,options:u(s)};return{parser:{javascript:{commonjsMagicComments:!0,dynamicImportMode:"lazy",dynamicImportPrefetch:!1,dynamicImportPreload:!1,importMeta:!0,importMetaContext:!0}},noParse:L.noParse,rules:[!1!==L.htmlPluginOption&&E,{oneOf:[...J,{test:l.js,use:[...N,t],include:B},{test:l.css,use:[c,k],include:R},e&&{test:l.scss,use:[c,k,e],include:R},{test:l.less,use:[c,k,C],include:R},{test:l.markdown,use:[...N,{loader:o(a.corePath,"/loader/mdx.cjs"),options:L.mdx}],exclude:[/node_modules\/(?!(@app|@moneko)).+/]}].filter(Boolean)},...L.moduleRules].filter(Boolean)}});
1
+ let e;import{join as o,sep as s}from"node:path";import{saveFileSync as t}from"@moneko/utils";import r from"./commom/has-pkg.mjs";import a,{CUSTOMCONFIG as m}from"./commom/paths.mjs";import n from"./commom/reactive-object.mjs";import i from"./commom/require.mjs";import l from"./commom/rule.mjs";import c from"./options/css-extract.mjs";import d from"./options/modify-vars.mjs";import p from"./options/reslove.mjs";import u from"./options/swcrc.mjs";import{getLightningCssTargets as f}from"./polyfills/targets.mjs";import{node_modules as j,resolveProgram as h,toCamelCase as v}from"./utils/index.mjs";import g from"./utils/svg-to-data-uri.mjs";import{comment as y,getCommentPath as x}from"./vm/docs.mjs";import w from"./vm/generate-doc.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(a.corePath,"/loader/lightning-css/loader.cjs"),options:{sourceMap:!!L.sourceMap,targets:f(),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=b.length;o<s;o++)if(e.includes(b[o]))return l.css_module.test(e)}return l.node_modules_css_module.test(e)},localIdentName:"[name][hash]_[local]",namedExport:!0,exportLocalsConvention:"dashesOnly",exportOnlyLocals:!1,getJSON:L.cssModuleDefinition?function(e){U.setData(`${e.resourcePath}.d.ts`,`${e.exports.map(({name:e,value:o})=>`export const ${v(e)}: '${o}';`).join("\n")}
2
+ `)}:void 0},importLoaders:2}},C={loader:p.lessLoader,options:{sourceMap:!!L.sourceMap,lessOptions:{modifyVars:d,javascriptEnabled:!0}}},O=new Map;function I(e){if(O.has(e))return O.get(e);try{let o;let t=i.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=j(e);return O.set(e,o),o}}let b=[...L.cssModules,`@moneko/${P}`,"neko-ui"].map(I),W=["components","example","mock","site","src","server"].map(h);function $(e){return new Promise(o=>{o([...W,...L.rulesInclude?.[e]?.map(I)||[]])})}m&&W.push(h(m)),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];p.sassLoader&&(e={loader:p.sassLoader,options:{implementation:await import("sass"),sassOptions:{}}});let J=_&&M&&{test:l.tsdoc,include:L.alias["@pkg"],exclude:[/node_modules\/(?!(@app|@moneko)).+/,l.__tests__],enforce:"pre",loader:o(a.corePath,"/loader/ts-doc.cjs"),options:{comment:y,generateDoc:w,getCommentPath:x}},N=[{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:l.wasm,type:"webassembly/async",include:D},{test:l.txt,type:"asset/source"},{test:l.image,type:"asset",dependency:{not:["url"]},parser:{dataUrlCondition:{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")?g(e.toString()):e},include:z},{test:l.video,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/video/[name][ext]"},include:z},{test:l.font,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/fonts/[name][ext]"},include:E}],Q=L.prefixJsLoader.filter(Boolean)||[];switch(P){case"react":L.reactCompiler&&Q.unshift({loader:o(a.corePath,"/loader/react-compiler.cjs"),options:L.reactCompiler});break;case"solid":L.refresh=!1}!M&&r("@moneko/css")&&Q.unshift(o(a.corePath,"/loader/css-in-js-minify.cjs"));let U=new n({});U.on("change",(e,o)=>{t(e,o)});export default(s=>{let t={loader:p.swcLoader,options:u(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:[...N,{test:l.js,use:[...Q,t],include:S},{test:l.css,use:[c,k],include:B},e&&{test:l.scss,use:[c,k,e],include:B},{test:l.less,use:[c,k,C],include:B},{test:l.markdown,use:[...Q,{loader:o(a.corePath,"/loader/mdx.cjs"),options:L.mdx}],exclude:[/node_modules\/(?!(@app|@moneko)).+/]}].filter(Boolean)},...L.moduleRules].filter(Boolean)}});