@moneko/core 3.44.11 → 3.45.1

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.
@@ -2,8 +2,7 @@ import { type ChildProcess, exec, type ExecException, type PromiseWithChild } fr
2
2
  import { join, relative } from 'node:path';
3
3
  import { platform } from 'node:process';
4
4
  import { promisify } from 'node:util';
5
- import { fileExists, loadFile, println, saveFile } from '@moneko/utils';
6
- import { type Certificate, createCA, createCert } from 'mkcert';
5
+ import { type CertificateResult, fileExists, generateCert, loadFile, normalCertificateAuthority, println, saveFile } from '@moneko/utils';
7
6
  import log from './log.mjs';
8
7
  import { getIPv4 } from './net.mjs';
9
8
  import paths from './paths.mjs';
@@ -15,4 +14,4 @@ declare const execPromise: ExecPromise;
15
14
  declare async function isCertificateInstalled(organization: string): Promise<boolean>;
16
15
  declare function installCallback(error: ExecException | null, _stdout: string, stderr: string): void;
17
16
  export declare function installCA(certPath: string): ChildProcess | void;
18
- export declare async function setupCert(domain?: string, install?: boolean): Promise<Certificate>;
17
+ export declare async function setupCert(domain?: string, install?: boolean): Promise<CertificateResult>;
package/lib/commom/ca.mjs CHANGED
@@ -1 +1 @@
1
- import{exec as t}from"node:child_process";import{join as e,relative as r}from"node:path";import{platform as o}from"node:process";import{promisify as i}from"node:util";import{fileExists as a,loadFile as n,println as l,saveFile as c}from"@moneko/utils";import{createCA as s,createCert as m}from"mkcert";import u from"./log.mjs";import{getIPv4 as d}from"./net.mjs";import p from"./paths.mjs";let f=i(t);async function y(t){try{if("darwin"===o){let{stdout:e}=await f(`security find-certificate -c "${t}" -a`);return e.length>0}if("win32"===o){let{stdout:e}=await f(`certutil -store -user Root | findstr /C:"${t}"`);return e.length>0}}catch(t){u(t)}return!1}function h(t,e,r){if(t&&!r.includes("already exists")){u(t);return}}export function installCA(e){return"darwin"===o?t(`sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "${e}"`,h):"win32"===o?t(`certutil -addstore -user "Root" "${e}"`,h):void l(`⚠️ 暂不支持自动安装 CA 的平台: ${o}`)}export async function setupCert(t="localhost",o=!0){let i=r(p.programPath,`${p.corePath}/cert/cert.pem`),l=r(p.programPath,`${p.corePath}/cert/key.pem`),u="Local Development CA - DO NOT TRUST",f=!a(i)||!a(l);if(f){let t=await s({organization:u,validity:7300,countryCode:"CN",state:"Hunan",locality:"Changsha"});await Promise.all([c(i,t.cert),c(l,t.key)])}o&&(!await y(u)||f)&&installCA(i);let h=e(p.CA_DIR,`${t}_cert.pem`),w=e(p.CA_DIR,`${t}_key.pem`);if(f||!a(h)||!a(w)){let e=await Promise.all([n(i),n(l)]),r=await m({ca:{cert:e[0],key:e[1]},domains:[...new Set([t,"localhost","127.0.0.1",d()].filter(Boolean))],organization:u,validity:365});await Promise.all([c(h,r.cert),c(w,r.key)])}let C=await Promise.all([n(h),n(w)]);return{cert:C[0],key:C[1]}}
1
+ import{exec as t}from"node:child_process";import{join as e,relative as r}from"node:path";import{platform as o}from"node:process";import{promisify as i}from"node:util";import{fileExists as a,generateCert as n,loadFile as l,normalCertificateAuthority as c,println as s,saveFile as m}from"@moneko/utils";import u from"./log.mjs";import{getIPv4 as f}from"./net.mjs";import p from"./paths.mjs";let d=i(t);async function y(t){try{if("darwin"===o){let{stdout:e}=await d(`security find-certificate -c "${t}" -a`);return e.length>0}if("win32"===o){let{stdout:e}=await d(`certutil -store -user Root | findstr /C:"${t}"`);return e.length>0}}catch(t){u(t)}return!1}function h(t,e,r){if(t&&!r.includes("already exists")){u(t);return}}export function installCA(e){return"darwin"===o?t(`sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "${e}"`,h):"win32"===o?t(`certutil -addstore -user "Root" "${e}"`,h):void s(`⚠️ 暂不支持自动安装 CA 的平台: ${o}`)}export async function setupCert(t="localhost",o=!0){let i=r(p.programPath,`${p.corePath}/cert/cert.pem`),s=r(p.programPath,`${p.corePath}/cert/key.pem`),u=!a(i)||!a(s);if(u){let t=c();await Promise.all([m(i,t.cert),m(s,t.key)])}o&&(!await y("Local Root Certificate Authority - Moneko")||u)&&installCA(i);let d=e(p.CA_DIR,`${t}_cert.pem`),h=e(p.CA_DIR,`${t}_key.pem`);if(u||!a(d)||!a(h)){let e=await Promise.all([l(i),l(s)]),r=n(e[0],e[1],[...new Set([t,"localhost","127.0.0.1",f()].filter(Boolean))]);await Promise.all([m(d,r.cert),m(h,r.key)])}let w=await Promise.all([l(d),l(h)]);return{cert:w[0],key:w[1]}}
@@ -0,0 +1,3 @@
1
+ import { addHost, checkHost, getHostsPath, ink, println } from '@moneko/utils';
2
+ declare function flashDNS();
3
+ export declare function hostHelp(domain: string);
@@ -0,0 +1,19 @@
1
+ import{addHost as s,checkHost as t,getHostsPath as e,ink as o,println as l}from"@moneko/utils";export function hostHelp(r){let c="127.0.0.1";t(c,r)||s(c,r),t(c,r)||l(`
2
+ ${o("🚦 域名解析配置提醒","yellow",{bold:!0})}
3
+
4
+ 检测到您正在使用本地域名:${o(r,"yellow")},但系统未找到对应的本地解析记录
5
+
6
+ 📝 请按以下步骤操作:
7
+
8
+ 1. 使用文本编辑器【以管理员身份】打开 hosts 文件:
9
+
10
+ ${o("hosts 文件地址:","242")} ${o(e(),"208")}
11
+
12
+ 2. 在文件末尾添加解析规则:
13
+
14
+ ${o(c,"39")} ${o(r,"39")}
15
+
16
+ 3. 保存文件后,建议刷新DNS缓存:
17
+
18
+ ${o(function(){switch(process.platform){case"darwin":return"sudo dscacheutil -flushcache";case"win32":return"ipconfig /flushdns";default:return"sudo systemctl restart systemd-resolved"}}(),"208")}
19
+ `)}
@@ -1,5 +1,6 @@
1
1
  import { ink, println, termClear } from '@moneko/utils';
2
2
  import webpack from 'webpack';
3
+ import { hostHelp } from '../commom/host.mjs';
3
4
  import { getIPv4, getPort } from '../commom/net.mjs';
4
5
  import { CONFIG } from '../config.mjs';
5
6
  declare const oldPord: number;
@@ -1,3 +1,3 @@
1
- import{ink as e,println as r,termClear as t}from"@moneko/utils";import{getIPv4 as o,getPort as s}from"../commom/net.mjs";import{CONFIG as n}from"../config.mjs";let i=n.devServer.port||3e3;export const PORT=await s(i);n.devServer.port=PORT;let m="/"===n.basename?"":n.basename,a=i!==PORT&&e(`Port ${e(`${i}`,"yellow")} is in use, trying ${e(`${PORT}`,"green")} instead.
2
- `,"245");export function getServerAddress(e){return`${n.devServer.https?"https":"http"}://${"local"===e?n.devServer.host:o()}:${PORT}${m}`}let l=e("You application is running here:","245"),g=`${e(" Local ","231",{bg:"blue"})} ${e(getServerAddress("local"),"75")}
3
- ${e(" Network ","231",{bg:"29"})} ${e(getServerAddress("net"),"green")}`;export function devLog(o,s){t(3);let n=(s?.endTime??0)-(s?.startTime??0);r([l,"",g,"",e(`Compiled successfully in ${e(`${n}ms`,"green")}`,"245"),""].join("\n"),!0),a&&r(a),s&&(s.compilation.warnings.forEach(e=>{r(e.message)}),s.compilation.errors.forEach(e=>{r(e.message)})),o&&r(o.message)}
1
+ import{ink as e,println as r,termClear as o}from"@moneko/utils";import{hostHelp as t}from"../commom/host.mjs";import{getIPv4 as s,getPort as n}from"../commom/net.mjs";import{CONFIG as m}from"../config.mjs";let i=m.devServer.port||3e3;export const PORT=await n(i);m.devServer.port=PORT;let a="/"===m.basename?"":m.basename,l=i!==PORT&&e(`Port ${e(`${i}`,"yellow")} is in use, trying ${e(`${PORT}`,"green")} instead.
2
+ `,"245");export function getServerAddress(e){return`${m.devServer.https?"https":"http"}://${"local"===e?m.devServer.host:s()}:${PORT}${a}`}let p=e("You application is running here:","245"),c=`${e(" Local ","231",{bg:"blue"})} ${e(getServerAddress("local"),"75")}
3
+ ${e(" Network ","231",{bg:"29"})} ${e(getServerAddress("net"),"green")}`;export function devLog(s,n){o(3);let i=(n?.endTime??0)-(n?.startTime??0);r([p,"",c,"",e(`Compiled successfully in ${e(`${i}ms`,"green")}`,"245"),""].join("\n"),!0),l&&r(l),t(m.devServer.host),n&&(n.compilation.warnings.forEach(e=>{r(e.message)}),n.compilation.errors.forEach(e=>{r(e.message)})),s&&r(s.message)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "3.44.11",
3
+ "version": "3.45.1",
4
4
  "description": "core",
5
5
  "main": "lib/index.mjs",
6
6
  "type": "module",
@@ -113,7 +113,7 @@
113
113
  "@moneko/raw-import": "0.0.3",
114
114
  "@moneko/stylelint": "1.3.0",
115
115
  "@moneko/transform-imports": "0.6.1",
116
- "@moneko/utils": "0.2.2",
116
+ "@moneko/utils": "0.3.3",
117
117
  "@swc/core": "1.6.13",
118
118
  "browserslist": "4.24.5",
119
119
  "chokidar": "4.0.3",
@@ -122,15 +122,14 @@
122
122
  "husky": "9.1.7",
123
123
  "less": "4.3.0",
124
124
  "less-loader": "12.3.0",
125
- "lightningcss": "1.30.0",
125
+ "lightningcss": "1.30.1",
126
126
  "marked-completed": "1.2.14",
127
- "memfs": "4.17.1",
127
+ "memfs": "4.17.2",
128
128
  "mini-css-extract-plugin": "2.9.2",
129
- "mkcert": "3.2.0",
130
129
  "style-loader": "4.0.0",
131
130
  "swc-loader": "0.2.6",
132
131
  "typescript": "5.8.3",
133
- "webpack": "5.99.8",
132
+ "webpack": "5.99.9",
134
133
  "webpack-hot-middleware": "2.26.1",
135
134
  "webpack-merge": "6.0.1",
136
135
  "webpack-virtual-modules": "0.6.2"
@@ -141,7 +140,7 @@
141
140
  "@types/stylis": "4.2.7",
142
141
  "@types/webpack-bundle-analyzer": "4.7.0",
143
142
  "@types/webpack-hot-middleware": "2.25.9",
144
- "sass": "1.88.0",
143
+ "sass": "1.89.0",
145
144
  "sass-loader": "16.0.5",
146
145
  "solid-refresh": "0.7.5",
147
146
  "stylis": "4.3.6",
@@ -155,4 +154,4 @@
155
154
  "lib",
156
155
  "typings"
157
156
  ]
158
- }
157
+ }
package/lib/cert/cert.pem DELETED
@@ -1,23 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDvTCCAqWgAwIBAgIGMTI0NTM5MA0GCSqGSIb3DQEBCwUAMIGMMSwwKgYDVQQD
3
- EyNMb2NhbCBEZXZlbG9wbWVudCBDQSAtIERPIE5PVCBUUlVTVDELMAkGA1UEBhMC
4
- Q04xDjAMBgNVBAgTBUh1bmFuMREwDwYDVQQHEwhDaGFuZ3NoYTEsMCoGA1UEChMj
5
- TG9jYWwgRGV2ZWxvcG1lbnQgQ0EgLSBETyBOT1QgVFJVU1QwHhcNMjUwNDEwMTkw
6
- NDU3WhcNNDUwNDA1MTkwNDU3WjCBjDEsMCoGA1UEAxMjTG9jYWwgRGV2ZWxvcG1l
7
- bnQgQ0EgLSBETyBOT1QgVFJVU1QxCzAJBgNVBAYTAkNOMQ4wDAYDVQQIEwVIdW5h
8
- bjERMA8GA1UEBxMIQ2hhbmdzaGExLDAqBgNVBAoTI0xvY2FsIERldmVsb3BtZW50
9
- IENBIC0gRE8gTk9UIFRSVVNUMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
10
- AQEAwtUviw2bzLe3Jir9v/FiCYIuH4Al1WFDw8fnpIz77FCGmH/5oMZP2fvY9Q7X
11
- IExeOdEmPXlR5RN3ivd70JZ6Zzcd4jUHa7QYxrOGRSCOEBqH3GOF8QjVomeQEdfv
12
- NMFHN7RVWc4P7/xlB2eyVQLSG2FXO3rFtpfJYXtENMFF8SfeQHTKZEjnU48Azw9J
13
- Yi4/FG+MwSnw661gyzYxdBpJfKa37cm0eROLjT9qeXG2M9cRXJpJaNRZniwMmYtv
14
- XXsVT8bmRe8oVLx3+m2wuDFPk5WRwjKj4eH66sKZqom8j+XXocZUx5IhW9QFYbIu
15
- uOVBNg/CHWX41+EVIZLjqeAtFQIDAQABoyMwITAPBgNVHRMBAf8EBTADAQH/MA4G
16
- A1UdDwEB/wQEAwICBDANBgkqhkiG9w0BAQsFAAOCAQEALbGs5tqopj1kGlMw7u6D
17
- QqkUzdAFUF5gjFPD7azdu+Lca0IPMBmXPqcJSLwHq73Lop7ijZ0e98IK3sd9RiiI
18
- nKjCow5+uVtEQi0g9gegPtrQnlgDYMYS+gWinEPpzXaIFWO/Ji6qJrfxkhaHiy9g
19
- /zkY2JE3ZCWr3T1AI7tQSufCPybQN5yapNcSLeINrxMCzqJysgSZUy/1FKQoZWhW
20
- p9F1l4Fc9NRmuAObYPqCnpZwB4n+7KqQYpCCGoiIPbRDR+GZyejRGfJpCH0wqTd0
21
- GQVWD4TTOR1Kv+XtNXWEzhvAoMLd1Cj5p+ZMdTOtiPvJp8asCwUxgwufVvu74b+7
22
- vw==
23
- -----END CERTIFICATE-----
package/lib/cert/key.pem DELETED
@@ -1,27 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEpAIBAAKCAQEAwtUviw2bzLe3Jir9v/FiCYIuH4Al1WFDw8fnpIz77FCGmH/5
3
- oMZP2fvY9Q7XIExeOdEmPXlR5RN3ivd70JZ6Zzcd4jUHa7QYxrOGRSCOEBqH3GOF
4
- 8QjVomeQEdfvNMFHN7RVWc4P7/xlB2eyVQLSG2FXO3rFtpfJYXtENMFF8SfeQHTK
5
- ZEjnU48Azw9JYi4/FG+MwSnw661gyzYxdBpJfKa37cm0eROLjT9qeXG2M9cRXJpJ
6
- aNRZniwMmYtvXXsVT8bmRe8oVLx3+m2wuDFPk5WRwjKj4eH66sKZqom8j+XXocZU
7
- x5IhW9QFYbIuuOVBNg/CHWX41+EVIZLjqeAtFQIDAQABAoIBABsRpiAFAqxtVJOH
8
- oub+u8bjwKdnv9nm6un8kCvF2rUjyvoibaWaEpC6nj4N6HL4U+8R0TpL7MY4RNeY
9
- jX9Bfj1w5ESqvB6JUG1AQVtsASYuSXSj7ywPNNSc3DYJG5bnc47tuHNYXyZ8mUdv
10
- b3ttf5Dbnqmzjlymt2KaebN1VtOrnty+Ao3Prclgtxo0HddlTSY6zWQxFteaO0za
11
- z9CSuwbwCBbaLR2XYhvWd/3nnIKsE0DWFn2HxQkv1VWipf29bn0NHi2U/8PZbuy2
12
- 2PjLX3ZUkaJ+YdpNrS2xdcTMiqhga6s5UjyA4f9m1MjzfN5eFMNDJfcK7JUw154v
13
- 4yeJx1ECgYEA7BPfZp1QDz0yfKKthvAdu8eiPPUwgfhA1Aq3sFlQFQJm/xT3edr9
14
- A3w3lMtUXbBVJYeO13vjZE+XzxfofC+7rjmHdb1MBjZ/0zwCU0s1crsSu16CcgbN
15
- hppowsVhoq/6oXt3RzPMXkYwJIlZoKG7un3D+84D2G1EPjC6Aun6OvsCgYEA00ZG
16
- diamy8MIMbHIgrsmsKKcjTELh4XkzVSfIwdzK8VmUuAuEtALXmcVv0ovWL/YbMzM
17
- HFDH8zff9+0mdykAxh9BfE3Em+PfhbgSXEYP/G/iKxls+HGRE4ooLx0sKjsTeLML
18
- nCooi6ILOaiKxjGx93GPZ45MnphYLYao7nxuuy8CgYEAmGB3WOd/LmbkuHfUI33G
19
- 41aGzGvCRJG1XmgQil4Lh5QGYOzqk5eaqe46fesD6HkRbGjj9Qg9DJknNn+LCuVQ
20
- cbMmUQO/F1+EABcCtTqdJBHFlHT7I5hqflAaAGWgkH6f+i0UHzw61DrfhiW1WS4r
21
- WsMkhdpCtyZH3xBab9kQL5MCgYBiy3vriAt7QQo14sK2jzl6Y6/9Pi/8AZqKgcWg
22
- pb0vfLFqk7Y3yd1nGaFLwC7/u0ZDKklP/F5j1379+oGAO0ZHXxpKPDtyAk7lwruj
23
- NogHLXJ/YPZZ/xEuJ+6+iU+7t8BVMrR9JCGtmerR3YR3RYnJAetjK2Gcz/R75Xpd
24
- ewZ0tQKBgQC0uLAxRhwHa7EMdni1Tf4ygF2oaLC7dX/L8eiMYjmVo5eUsYHG+fda
25
- Wc2oH1ZuV1nGZE+VkMiNPXGTZXdspLYLzjNPLUsO2NMOzm4ZZbEKFzd/A9gif6lI
26
- M0yeg8oeosuHZXbeqw8UcK99m9yCAUH//tiInA1yAjg9tl29iwG/Dw==
27
- -----END RSA PRIVATE KEY-----