create-koishi-ce 1.4.0 → 1.5.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/bin.mjs +1 -1
- package/lib/index.mjs +1 -1
- package/lib/{src-B1-ko5wA.mjs → src-t_F40fpK.mjs} +8 -6
- package/package.json +1 -1
- package/src/__tests__/template.test.ts +18 -13
- package/src/template/README.md +3 -3
- package/src/template/koishi.yml +65 -59
- package/src/template.ts +7 -5
package/lib/bin.mjs
CHANGED
package/lib/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as renderManifest, i as readNpmrcRegistry, n as detectAgent, r as getLocalRegistry, t as start } from "./src-
|
|
1
|
+
import { a as renderManifest, i as readNpmrcRegistry, n as detectAgent, r as getLocalRegistry, t as start } from "./src-t_F40fpK.mjs";
|
|
2
2
|
export { detectAgent, getLocalRegistry, readNpmrcRegistry, renderManifest, start };
|
|
@@ -11,7 +11,7 @@ import { fileURLToPath } from "node:url";
|
|
|
11
11
|
var package_default = {
|
|
12
12
|
name: "create-koishi-ce",
|
|
13
13
|
description: "Setup a Koishi application",
|
|
14
|
-
version: "1.
|
|
14
|
+
version: "1.5.0",
|
|
15
15
|
type: "module",
|
|
16
16
|
main: "./lib/index.mjs",
|
|
17
17
|
module: "./lib/index.mjs",
|
|
@@ -198,11 +198,13 @@ function writePackageJson(rootDir, project, prod) {
|
|
|
198
198
|
* 不会拉入 npm 官方全家桶形成第二份框架副本;市场安装亦不改写该声明
|
|
199
199
|
* (installer 的 isGuardedRequest 护栏将 npm:@koishi-ce alias 与
|
|
200
200
|
* workspace: 同等保护);
|
|
201
|
-
* - koishi.yml
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
201
|
+
* - koishi.yml 采用配置页导出形态:插件键带 uid 实例后缀,分组带中文
|
|
202
|
+
* $label 与 $collapsed 元数据;database-sqlite 默认启用,开箱即得数
|
|
203
|
+
* 据库;依赖数据库但非必需的插件(admin / bind / auth / broadcast /
|
|
204
|
+
* callme)保持 ~ 禁用;本仓不再分发的 adapter 官方插件只以 ~ 禁用条
|
|
205
|
+
* 目预写、不预装——loader 跳过禁用条目,装好后在控制台启用(mongo /
|
|
206
|
+
* mysql / postgres 等未再分发的 database 不再预写占位条目,市场装后
|
|
207
|
+
* 自动出现);
|
|
206
208
|
* - 依赖版本统一 ^1.0.0 区间(安装时取最新 1.x),shim 版本例外(冻结线)。
|
|
207
209
|
*/
|
|
208
210
|
/**
|
package/package.json
CHANGED
|
@@ -92,51 +92,56 @@ test("内置模板静态文件齐备,koishi.yml 预配 market 镜像源", () =
|
|
|
92
92
|
);
|
|
93
93
|
});
|
|
94
94
|
|
|
95
|
-
test("koishi.yml
|
|
95
|
+
test("koishi.yml 预写策略:sqlite 默认启用开箱数据库,非必需件与官方 adapter 保持 ~ 禁用", () => {
|
|
96
96
|
const yml = templateFiles["koishi.yml"] ?? "";
|
|
97
|
-
//
|
|
97
|
+
// 配置页导出形态:插件键带 uid 实例后缀,分组带 $collapsed / $label 元数据
|
|
98
|
+
expect(yml).toMatch(/database-sqlite:[a-z0-9]{6}:/);
|
|
99
|
+
expect(yml).toContain("$collapsed: true");
|
|
100
|
+
expect(yml).toContain("$label: ");
|
|
101
|
+
// 依赖数据库但非必需 / 暂无需启用的 CE 插件:预装但 ~ 禁用
|
|
98
102
|
for (const name of [
|
|
99
103
|
"~admin",
|
|
100
104
|
"~bind",
|
|
101
105
|
"~broadcast",
|
|
102
106
|
"~callme",
|
|
103
|
-
"~analytics",
|
|
104
107
|
"~auth",
|
|
105
|
-
"~dataview",
|
|
106
|
-
"~rate-limit",
|
|
107
108
|
"~inspect",
|
|
108
109
|
"~server-temp",
|
|
109
110
|
"~mock",
|
|
110
111
|
]) {
|
|
111
112
|
expect(yml).toContain(name);
|
|
112
113
|
}
|
|
113
|
-
//
|
|
114
|
+
// 随模板默认启用的 CE 插件(含 sqlite 数据库):条目存在且无 ~ 前缀
|
|
114
115
|
for (const name of [
|
|
115
|
-
"
|
|
116
|
+
"database-sqlite",
|
|
117
|
+
"dataview",
|
|
118
|
+
"analytics",
|
|
119
|
+
"rate-limit",
|
|
116
120
|
"echo",
|
|
117
|
-
"
|
|
121
|
+
"assets-local",
|
|
118
122
|
"status",
|
|
119
123
|
"sandbox",
|
|
124
|
+
"theme-vanilla",
|
|
120
125
|
]) {
|
|
121
126
|
expect(yml).toContain(name);
|
|
127
|
+
expect(yml).not.toContain(`~${name}`);
|
|
122
128
|
}
|
|
123
|
-
// database-sqlite
|
|
129
|
+
// database-sqlite 依赖在册(随模板预装,启用即得数据库)
|
|
124
130
|
expect(
|
|
125
131
|
baseManifest().dependencies?.[
|
|
126
132
|
"@koishi-ce/plugin-database-sqlite"
|
|
127
133
|
],
|
|
128
134
|
).toBe("^1.0.0");
|
|
129
|
-
|
|
130
|
-
//
|
|
135
|
+
// 官方 adapter 只以 ~ 禁用条目预写(未预装,市场装后启用);
|
|
136
|
+
// 未再分发的 database(mongo / mysql / postgres)不再预写占位条目
|
|
131
137
|
for (const name of [
|
|
132
138
|
"~adapter-discord",
|
|
133
139
|
"~adapter-telegram",
|
|
134
140
|
"~adapter-qq",
|
|
135
|
-
"~database-mongo",
|
|
136
|
-
"~database-postgres",
|
|
137
141
|
]) {
|
|
138
142
|
expect(yml).toContain(name);
|
|
139
143
|
}
|
|
144
|
+
expect(yml).not.toContain("database-mongo");
|
|
140
145
|
// 模板依赖里不得出现官方 adapter / database 包名(只预写不预装)
|
|
141
146
|
expect(JSON.stringify(baseManifest())).not.toContain(
|
|
142
147
|
"adapter-",
|
package/src/template/README.md
CHANGED
|
@@ -18,9 +18,9 @@ bun run dev # 启动(开发模式,启用 HMR 热更新)
|
|
|
18
18
|
|
|
19
19
|
## 预装与预写
|
|
20
20
|
|
|
21
|
-
- **已预装**:基础与控制台插件(@koishi-ce
|
|
22
|
-
- **数据库开箱即用**:`@koishi-ce/plugin-database-sqlite`
|
|
23
|
-
- **只预写、未预装**:adapter(discord / telegram / qq
|
|
21
|
+
- **已预装**:基础与控制台插件(@koishi-ce 全家桶)。`koishi.yml` 为配置页导出形态:插件键带 uid 实例后缀,分组带中文 `$label` 标签。其中依赖数据库但非必需的(admin / bind / broadcast / callme / auth)与暂无需启用的(inspect / server-temp / mock)以 `~` 前缀保持禁用——数据库已默认启用,去掉对应 `~` 即可。
|
|
22
|
+
- **数据库开箱即用**:`@koishi-ce/plugin-database-sqlite` 已预装并默认启用,数据落在 `data/koishi.db`。
|
|
23
|
+
- **只预写、未预装**:adapter(discord / telegram / qq …)官方插件以 `~` 禁用条目预写在 `koishi.yml` 的 `group:adapter`——loader 会跳过禁用条目,不安装也能正常启动;需要时在控制台「插件市场」搜索安装,回到配置页点击启用即可(mongo / mysql / postgres 等其他数据库插件未预写占位,市场安装后自动出现条目)。
|
|
24
24
|
|
|
25
25
|
## 安装插件
|
|
26
26
|
|
package/src/template/koishi.yml
CHANGED
|
@@ -1,69 +1,75 @@
|
|
|
1
1
|
plugins:
|
|
2
2
|
group:server:
|
|
3
|
-
|
|
3
|
+
$collapsed: true
|
|
4
|
+
$label: 服务器
|
|
5
|
+
server:nhf2rf:
|
|
4
6
|
port: 5140
|
|
5
7
|
maxPort: 5149
|
|
6
|
-
~server-temp: {}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
help: {}
|
|
15
|
-
http: {}
|
|
16
|
-
~inspect: {}
|
|
17
|
-
locales: {}
|
|
18
|
-
proxy-agent: {}
|
|
19
|
-
~rate-limit: {}
|
|
8
|
+
~server-temp:z9nmes: {}
|
|
9
|
+
~adapter-satori:euyuu6: {}
|
|
10
|
+
group:storage:
|
|
11
|
+
$collapsed: true
|
|
12
|
+
$label: 持久化
|
|
13
|
+
assets-local:0bp951: {}
|
|
14
|
+
database-sqlite:60m3ri:
|
|
15
|
+
path: data/koishi.db
|
|
20
16
|
group:console:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
config: {}
|
|
25
|
-
console:
|
|
17
|
+
$collapsed: true
|
|
18
|
+
$label: 控制台
|
|
19
|
+
console:p179rv:
|
|
26
20
|
open: true
|
|
27
|
-
~
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
market:
|
|
21
|
+
~auth:decpjz: {}
|
|
22
|
+
oobe:kw667y: {}
|
|
23
|
+
config:hrvlki: {}
|
|
24
|
+
market:n1dg4c:
|
|
32
25
|
search:
|
|
33
26
|
endpoint: https://registry.koishi.chat/index.json
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
sandbox: {}
|
|
37
|
-
status: {}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
27
|
+
explorer:5e7k13: {}
|
|
28
|
+
actions:ttgal7: {}
|
|
29
|
+
sandbox:bbkwu5: {}
|
|
30
|
+
status:hc51wq: {}
|
|
31
|
+
logger:akzyyp: {}
|
|
32
|
+
dataview:eklvzg: {}
|
|
33
|
+
analytics:smgmme: {}
|
|
34
|
+
insight:ozp3by: {}
|
|
35
|
+
notifier:30g7rg: {}
|
|
36
|
+
theme-vanilla:029kuh: {}
|
|
37
|
+
group:basic:
|
|
38
|
+
$collapsed: true
|
|
39
|
+
$label: 基础库
|
|
40
|
+
commands:lgrbci: {}
|
|
41
|
+
help:nrbz2h: {}
|
|
42
|
+
echo:t6r9sk: {}
|
|
43
|
+
~admin:e0sr2y: {}
|
|
44
|
+
~bind:zxx2sn: {}
|
|
45
|
+
~broadcast:q8x3jd: {}
|
|
46
|
+
~callme:m4v7wt: {}
|
|
47
|
+
~inspect:2t107r: {}
|
|
48
|
+
locales:bi9lco: {}
|
|
49
|
+
http:rwe3ck: {}
|
|
50
|
+
proxy-agent:p6jj15: {}
|
|
51
|
+
rate-limit:cghjaw: {}
|
|
49
52
|
group:adapter:
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
~adapter-
|
|
53
|
-
~adapter-
|
|
54
|
-
~adapter-
|
|
55
|
-
~adapter-
|
|
56
|
-
~adapter-
|
|
57
|
-
~adapter-
|
|
58
|
-
~adapter-
|
|
59
|
-
~adapter-
|
|
60
|
-
~adapter-
|
|
61
|
-
~adapter-
|
|
62
|
-
~adapter-
|
|
63
|
-
~adapter-
|
|
64
|
-
~adapter-
|
|
53
|
+
$collapsed: true
|
|
54
|
+
$label: 适配器
|
|
55
|
+
~adapter-qq:lr3f6b: {}
|
|
56
|
+
~adapter-telegram:memc76: {}
|
|
57
|
+
~adapter-discord:4n11rk: {}
|
|
58
|
+
~adapter-kook:2s0qw0: {}
|
|
59
|
+
~adapter-wecom:euh20s: {}
|
|
60
|
+
~adapter-wechat-official:ufqejg: {}
|
|
61
|
+
~adapter-dingtalk:76isk2: {}
|
|
62
|
+
~adapter-lark:vtfsz0: {}
|
|
63
|
+
~adapter-line:hfsd6d: {}
|
|
64
|
+
~adapter-slack:ctdrr0: {}
|
|
65
|
+
~adapter-whatsapp:xn68t0: {}
|
|
66
|
+
~adapter-mail:cjnxrb: {}
|
|
67
|
+
~adapter-matrix:phadis: {}
|
|
68
|
+
~adapter-zulip:fg64tb: {}
|
|
65
69
|
group:develop:
|
|
66
|
-
$if: env.NODE_ENV === 'development'
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
$if: "env.NODE_ENV === 'development'"
|
|
71
|
+
$collapsed: true
|
|
72
|
+
$label: 开发
|
|
73
|
+
hmr:i3xkbw:
|
|
74
|
+
root: "."
|
|
75
|
+
~mock:w2y5nh: {}
|
package/src/template.ts
CHANGED
|
@@ -25,11 +25,13 @@
|
|
|
25
25
|
* 不会拉入 npm 官方全家桶形成第二份框架副本;市场安装亦不改写该声明
|
|
26
26
|
* (installer 的 isGuardedRequest 护栏将 npm:@koishi-ce alias 与
|
|
27
27
|
* workspace: 同等保护);
|
|
28
|
-
* - koishi.yml
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
28
|
+
* - koishi.yml 采用配置页导出形态:插件键带 uid 实例后缀,分组带中文
|
|
29
|
+
* $label 与 $collapsed 元数据;database-sqlite 默认启用,开箱即得数
|
|
30
|
+
* 据库;依赖数据库但非必需的插件(admin / bind / auth / broadcast /
|
|
31
|
+
* callme)保持 ~ 禁用;本仓不再分发的 adapter 官方插件只以 ~ 禁用条
|
|
32
|
+
* 目预写、不预装——loader 跳过禁用条目,装好后在控制台启用(mongo /
|
|
33
|
+
* mysql / postgres 等未再分发的 database 不再预写占位条目,市场装后
|
|
34
|
+
* 自动出现);
|
|
33
35
|
* - 依赖版本统一 ^1.0.0 区间(安装时取最新 1.x),shim 版本例外(冻结线)。
|
|
34
36
|
*/
|
|
35
37
|
import {
|