@zhin.js/scaffold-wizard 1.1.1 → 1.1.2
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/README.md +5 -0
- package/lib/apply.d.ts +1 -1
- package/lib/apply.d.ts.map +1 -1
- package/lib/apply.js +7 -0
- package/lib/apply.js.map +1 -1
- package/lib/database-definitions.d.ts +28 -0
- package/lib/database-definitions.d.ts.map +1 -0
- package/lib/database-definitions.js +290 -0
- package/lib/database-definitions.js.map +1 -0
- package/lib/database.d.ts.map +1 -1
- package/lib/database.js +69 -51
- package/lib/database.js.map +1 -1
- package/lib/env.d.ts +6 -0
- package/lib/env.d.ts.map +1 -1
- package/lib/env.js +51 -0
- package/lib/env.js.map +1 -1
- package/lib/index.d.ts +5 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -3
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +3 -2
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +6 -8
- package/lib/types.js.map +1 -1
- package/lib/zhin-stack-deps.d.ts +7 -6
- package/lib/zhin-stack-deps.d.ts.map +1 -1
- package/lib/zhin-stack-deps.js +14 -9
- package/lib/zhin-stack-deps.js.map +1 -1
- package/package.json +2 -2
- package/src/apply.ts +8 -1
- package/src/database-definitions.ts +336 -0
- package/src/database.ts +77 -52
- package/src/env.ts +52 -0
- package/src/index.ts +16 -3
- package/src/types.ts +12 -9
- package/src/zhin-stack-deps.ts +14 -9
package/lib/database.js
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import inquirer from 'inquirer';
|
|
2
|
+
import { DATABASE_DIALECT_DEFINITIONS, databaseChoiceLabel, getDatabaseDialectDefinition, validateDatabaseConfig, } from './database-definitions.js';
|
|
3
|
+
function schemaDefault(dialect, ...path) {
|
|
4
|
+
let schema = getDatabaseDialectDefinition(dialect)?.schema;
|
|
5
|
+
for (const segment of path) {
|
|
6
|
+
const properties = schema?.properties;
|
|
7
|
+
schema = properties?.[segment];
|
|
8
|
+
}
|
|
9
|
+
return schema?.default;
|
|
10
|
+
}
|
|
11
|
+
function parseIntegerInput(input, minimum, maximum = Number.MAX_SAFE_INTEGER) {
|
|
12
|
+
const raw = String(input).trim();
|
|
13
|
+
if (!/^\d+$/u.test(raw))
|
|
14
|
+
return `请输入有效的整数 (${minimum}-${maximum})`;
|
|
15
|
+
const value = Number(raw);
|
|
16
|
+
if (!Number.isSafeInteger(value) || value < minimum || value > maximum) {
|
|
17
|
+
return `请输入有效的整数 (${minimum}-${maximum})`;
|
|
18
|
+
}
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
2
21
|
// 配置数据库选项
|
|
3
22
|
export async function configureDatabaseOptions() {
|
|
4
23
|
const { dialect } = await inquirer.prompt([
|
|
@@ -6,30 +25,41 @@ export async function configureDatabaseOptions() {
|
|
|
6
25
|
type: 'select',
|
|
7
26
|
name: 'dialect',
|
|
8
27
|
message: '选择数据库类型:',
|
|
9
|
-
choices:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
{ name: 'MongoDB', value: 'mongodb' },
|
|
14
|
-
{ name: 'Redis', value: 'redis' }
|
|
15
|
-
],
|
|
28
|
+
choices: DATABASE_DIALECT_DEFINITIONS.map((definition) => ({
|
|
29
|
+
name: databaseChoiceLabel(definition),
|
|
30
|
+
value: definition.dialect,
|
|
31
|
+
})),
|
|
16
32
|
default: 'sqlite'
|
|
17
33
|
}
|
|
18
34
|
]);
|
|
35
|
+
let config;
|
|
19
36
|
switch (dialect) {
|
|
20
37
|
case 'sqlite':
|
|
21
|
-
|
|
38
|
+
config = await configureSQLite();
|
|
39
|
+
break;
|
|
22
40
|
case 'mysql':
|
|
23
|
-
|
|
41
|
+
config = await configureMySQL();
|
|
42
|
+
break;
|
|
24
43
|
case 'pg':
|
|
25
|
-
|
|
44
|
+
config = await configurePostgreSQL();
|
|
45
|
+
break;
|
|
26
46
|
case 'mongodb':
|
|
27
|
-
|
|
47
|
+
config = await configureMongoDB();
|
|
48
|
+
break;
|
|
28
49
|
case 'redis':
|
|
29
|
-
|
|
50
|
+
config = await configureRedis();
|
|
51
|
+
break;
|
|
52
|
+
case 'memory':
|
|
53
|
+
config = { dialect: 'memory' };
|
|
54
|
+
break;
|
|
30
55
|
default:
|
|
31
56
|
throw new Error(`未支持的数据库类型: ${dialect}`);
|
|
32
57
|
}
|
|
58
|
+
const issues = validateDatabaseConfig(config);
|
|
59
|
+
if (issues.length > 0) {
|
|
60
|
+
throw new TypeError(`数据库配置不符合 Schema:${issues.map((issue) => issue.message).join(';')}`);
|
|
61
|
+
}
|
|
62
|
+
return config;
|
|
33
63
|
}
|
|
34
64
|
// SQLite 配置
|
|
35
65
|
async function configureSQLite() {
|
|
@@ -38,7 +68,7 @@ async function configureSQLite() {
|
|
|
38
68
|
type: 'input',
|
|
39
69
|
name: 'filename',
|
|
40
70
|
message: 'SQLite 数据库文件路径:',
|
|
41
|
-
default: '
|
|
71
|
+
default: schemaDefault('sqlite', 'filename'),
|
|
42
72
|
validate: (input) => {
|
|
43
73
|
if (!input.trim())
|
|
44
74
|
return '文件路径不能为空';
|
|
@@ -54,7 +84,7 @@ async function configureSQLite() {
|
|
|
54
84
|
{ name: 'DELETE (默认)', value: 'delete' },
|
|
55
85
|
{ name: 'MEMORY (内存数据库)', value: 'memory' }
|
|
56
86
|
],
|
|
57
|
-
default: '
|
|
87
|
+
default: schemaDefault('sqlite', 'mode')
|
|
58
88
|
}
|
|
59
89
|
]);
|
|
60
90
|
return {
|
|
@@ -70,26 +100,23 @@ async function configureMySQL() {
|
|
|
70
100
|
type: 'input',
|
|
71
101
|
name: 'host',
|
|
72
102
|
message: 'MySQL 主机地址:',
|
|
73
|
-
default: '
|
|
103
|
+
default: schemaDefault('mysql', 'host')
|
|
74
104
|
},
|
|
75
105
|
{
|
|
76
106
|
type: 'input',
|
|
77
107
|
name: 'port',
|
|
78
108
|
message: 'MySQL 端口:',
|
|
79
|
-
default: '
|
|
109
|
+
default: String(schemaDefault('mysql', 'port')),
|
|
80
110
|
validate: (input) => {
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
return '请输入有效的端口号 (1-65535)';
|
|
84
|
-
}
|
|
85
|
-
return true;
|
|
111
|
+
const value = parseIntegerInput(input, 1, 65535);
|
|
112
|
+
return typeof value === 'number' ? true : value;
|
|
86
113
|
}
|
|
87
114
|
},
|
|
88
115
|
{
|
|
89
116
|
type: 'input',
|
|
90
117
|
name: 'user',
|
|
91
118
|
message: 'MySQL 用户名:',
|
|
92
|
-
default: '
|
|
119
|
+
default: schemaDefault('mysql', 'user')
|
|
93
120
|
},
|
|
94
121
|
{
|
|
95
122
|
type: 'password',
|
|
@@ -100,7 +127,7 @@ async function configureMySQL() {
|
|
|
100
127
|
type: 'input',
|
|
101
128
|
name: 'database',
|
|
102
129
|
message: 'MySQL 数据库名:',
|
|
103
|
-
default: '
|
|
130
|
+
default: schemaDefault('mysql', 'database'),
|
|
104
131
|
validate: (input) => {
|
|
105
132
|
if (!input.trim())
|
|
106
133
|
return '数据库名不能为空';
|
|
@@ -111,7 +138,7 @@ async function configureMySQL() {
|
|
|
111
138
|
return {
|
|
112
139
|
dialect: 'mysql',
|
|
113
140
|
host: config.host,
|
|
114
|
-
port:
|
|
141
|
+
port: Number(config.port),
|
|
115
142
|
user: config.user,
|
|
116
143
|
password: config.password,
|
|
117
144
|
database: config.database
|
|
@@ -124,26 +151,23 @@ async function configurePostgreSQL() {
|
|
|
124
151
|
type: 'input',
|
|
125
152
|
name: 'host',
|
|
126
153
|
message: 'PostgreSQL 主机地址:',
|
|
127
|
-
default: '
|
|
154
|
+
default: schemaDefault('pg', 'host')
|
|
128
155
|
},
|
|
129
156
|
{
|
|
130
157
|
type: 'input',
|
|
131
158
|
name: 'port',
|
|
132
159
|
message: 'PostgreSQL 端口:',
|
|
133
|
-
default: '
|
|
160
|
+
default: String(schemaDefault('pg', 'port')),
|
|
134
161
|
validate: (input) => {
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
return '请输入有效的端口号 (1-65535)';
|
|
138
|
-
}
|
|
139
|
-
return true;
|
|
162
|
+
const value = parseIntegerInput(input, 1, 65535);
|
|
163
|
+
return typeof value === 'number' ? true : value;
|
|
140
164
|
}
|
|
141
165
|
},
|
|
142
166
|
{
|
|
143
167
|
type: 'input',
|
|
144
168
|
name: 'user',
|
|
145
169
|
message: 'PostgreSQL 用户名:',
|
|
146
|
-
default: '
|
|
170
|
+
default: schemaDefault('pg', 'user')
|
|
147
171
|
},
|
|
148
172
|
{
|
|
149
173
|
type: 'password',
|
|
@@ -154,7 +178,7 @@ async function configurePostgreSQL() {
|
|
|
154
178
|
type: 'input',
|
|
155
179
|
name: 'database',
|
|
156
180
|
message: 'PostgreSQL 数据库名:',
|
|
157
|
-
default: '
|
|
181
|
+
default: schemaDefault('pg', 'database'),
|
|
158
182
|
validate: (input) => {
|
|
159
183
|
if (!input.trim())
|
|
160
184
|
return '数据库名不能为空';
|
|
@@ -165,7 +189,7 @@ async function configurePostgreSQL() {
|
|
|
165
189
|
return {
|
|
166
190
|
dialect: 'pg',
|
|
167
191
|
host: config.host,
|
|
168
|
-
port:
|
|
192
|
+
port: Number(config.port),
|
|
169
193
|
user: config.user,
|
|
170
194
|
password: config.password,
|
|
171
195
|
database: config.database
|
|
@@ -178,7 +202,7 @@ async function configureMongoDB() {
|
|
|
178
202
|
type: 'input',
|
|
179
203
|
name: 'url',
|
|
180
204
|
message: 'MongoDB 连接字符串:',
|
|
181
|
-
default: 'mongodb
|
|
205
|
+
default: schemaDefault('mongodb', 'url'),
|
|
182
206
|
validate: (input) => {
|
|
183
207
|
if (!input.trim())
|
|
184
208
|
return '连接字符串不能为空';
|
|
@@ -192,7 +216,7 @@ async function configureMongoDB() {
|
|
|
192
216
|
type: 'input',
|
|
193
217
|
name: 'dbName',
|
|
194
218
|
message: 'MongoDB 数据库名:',
|
|
195
|
-
default: '
|
|
219
|
+
default: schemaDefault('mongodb', 'dbName'),
|
|
196
220
|
validate: (input) => {
|
|
197
221
|
if (!input.trim())
|
|
198
222
|
return '数据库名不能为空';
|
|
@@ -213,19 +237,16 @@ async function configureRedis() {
|
|
|
213
237
|
type: 'input',
|
|
214
238
|
name: 'host',
|
|
215
239
|
message: 'Redis 主机地址:',
|
|
216
|
-
default: '
|
|
240
|
+
default: schemaDefault('redis', 'socket', 'host')
|
|
217
241
|
},
|
|
218
242
|
{
|
|
219
243
|
type: 'input',
|
|
220
244
|
name: 'port',
|
|
221
245
|
message: 'Redis 端口:',
|
|
222
|
-
default: '
|
|
246
|
+
default: String(schemaDefault('redis', 'socket', 'port')),
|
|
223
247
|
validate: (input) => {
|
|
224
|
-
const
|
|
225
|
-
|
|
226
|
-
return '请输入有效的端口号 (1-65535)';
|
|
227
|
-
}
|
|
228
|
-
return true;
|
|
248
|
+
const value = parseIntegerInput(input, 1, 65535);
|
|
249
|
+
return typeof value === 'number' ? true : value;
|
|
229
250
|
}
|
|
230
251
|
},
|
|
231
252
|
{
|
|
@@ -237,13 +258,10 @@ async function configureRedis() {
|
|
|
237
258
|
type: 'input',
|
|
238
259
|
name: 'db',
|
|
239
260
|
message: 'Redis 数据库索引:',
|
|
240
|
-
default: '
|
|
261
|
+
default: String(schemaDefault('redis', 'database')),
|
|
241
262
|
validate: (input) => {
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
return '请输入有效的数据库索引 (>= 0)';
|
|
245
|
-
}
|
|
246
|
-
return true;
|
|
263
|
+
const value = parseIntegerInput(input, 0);
|
|
264
|
+
return typeof value === 'number' ? true : '请输入有效的数据库索引 (>= 0)';
|
|
247
265
|
}
|
|
248
266
|
}
|
|
249
267
|
]);
|
|
@@ -251,10 +269,10 @@ async function configureRedis() {
|
|
|
251
269
|
dialect: 'redis',
|
|
252
270
|
socket: {
|
|
253
271
|
host: config.host,
|
|
254
|
-
port:
|
|
272
|
+
port: Number(config.port)
|
|
255
273
|
},
|
|
256
274
|
password: config.password || undefined,
|
|
257
|
-
database:
|
|
275
|
+
database: Number(config.db)
|
|
258
276
|
};
|
|
259
277
|
}
|
|
260
278
|
//# sourceMappingURL=database.js.map
|
package/lib/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
|
package/lib/env.d.ts
CHANGED
|
@@ -11,4 +11,10 @@ export declare function formatEnvValue(value: unknown): string;
|
|
|
11
11
|
export declare function mergeEnvText(existing: string, extra: string): string;
|
|
12
12
|
/** 生成数据库连接环境变量(连接参数落 .env,配置文件只引用 ${VAR})。 */
|
|
13
13
|
export declare function generateDatabaseEnvVars(config: DatabaseConfig): string;
|
|
14
|
+
/**
|
|
15
|
+
* Generate a version-control-safe database section for `.env.example`.
|
|
16
|
+
* User-entered passwords and credential-bearing connection URLs are never
|
|
17
|
+
* copied from the interactive wizard.
|
|
18
|
+
*/
|
|
19
|
+
export declare function generateDatabaseEnvExample(config: DatabaseConfig): string;
|
|
14
20
|
//# sourceMappingURL=env.d.ts.map
|
package/lib/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQrD;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAwCpE;AAED,8CAA8C;AAC9C,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQrD;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAwCpE;AAED,8CAA8C;AAC9C,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAgDtE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA4CzE"}
|
package/lib/env.js
CHANGED
|
@@ -80,10 +80,61 @@ export function generateDatabaseEnvVars(config) {
|
|
|
80
80
|
envVars.push('# Redis 数据库配置', `REDIS_HOST=${formatEnvValue(config.socket?.host || 'localhost')}`, `REDIS_PORT=${formatEnvValue(config.socket?.port || 6379)}`, `REDIS_PASSWORD=${formatEnvValue(config.password || '')}`, `REDIS_DB=${formatEnvValue(config.database ?? 0)}`);
|
|
81
81
|
break;
|
|
82
82
|
case 'sqlite':
|
|
83
|
+
case 'memory':
|
|
83
84
|
default:
|
|
84
85
|
// SQLite 不需要额外的环境变量
|
|
85
86
|
break;
|
|
86
87
|
}
|
|
87
88
|
return envVars.length > 0 ? `\n\n${envVars.join('\n')}` : '';
|
|
88
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Generate a version-control-safe database section for `.env.example`.
|
|
92
|
+
* User-entered passwords and credential-bearing connection URLs are never
|
|
93
|
+
* copied from the interactive wizard.
|
|
94
|
+
*/
|
|
95
|
+
export function generateDatabaseEnvExample(config) {
|
|
96
|
+
let lines = [];
|
|
97
|
+
switch (config.dialect) {
|
|
98
|
+
case 'mysql':
|
|
99
|
+
lines = [
|
|
100
|
+
'# MySQL 数据库配置',
|
|
101
|
+
'DB_HOST=127.0.0.1',
|
|
102
|
+
'DB_PORT=3306',
|
|
103
|
+
'DB_USER=root',
|
|
104
|
+
'DB_PASSWORD=change-me',
|
|
105
|
+
'DB_DATABASE=zhin_bot',
|
|
106
|
+
];
|
|
107
|
+
break;
|
|
108
|
+
case 'pg':
|
|
109
|
+
lines = [
|
|
110
|
+
'# PostgreSQL 数据库配置',
|
|
111
|
+
'DB_HOST=127.0.0.1',
|
|
112
|
+
'DB_PORT=5432',
|
|
113
|
+
'DB_USER=postgres',
|
|
114
|
+
'DB_PASSWORD=change-me',
|
|
115
|
+
'DB_DATABASE=zhin_bot',
|
|
116
|
+
];
|
|
117
|
+
break;
|
|
118
|
+
case 'mongodb':
|
|
119
|
+
lines = [
|
|
120
|
+
'# MongoDB 数据库配置',
|
|
121
|
+
'DB_URL=mongodb://127.0.0.1:27017',
|
|
122
|
+
'DB_NAME=zhin_bot',
|
|
123
|
+
];
|
|
124
|
+
break;
|
|
125
|
+
case 'redis':
|
|
126
|
+
lines = [
|
|
127
|
+
'# Redis 数据库配置',
|
|
128
|
+
'REDIS_HOST=127.0.0.1',
|
|
129
|
+
'REDIS_PORT=6379',
|
|
130
|
+
'REDIS_PASSWORD=',
|
|
131
|
+
'REDIS_DB=0',
|
|
132
|
+
];
|
|
133
|
+
break;
|
|
134
|
+
case 'sqlite':
|
|
135
|
+
case 'memory':
|
|
136
|
+
return '';
|
|
137
|
+
}
|
|
138
|
+
return `\n\n${lines.join('\n')}`;
|
|
139
|
+
}
|
|
89
140
|
//# sourceMappingURL=env.js.map
|
package/lib/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,MAAM,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACrD,OAAO,IAAI,GAAG;SACX,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;AAC9B,CAAC;AAED,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAElD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,KAAa;IAC1D,MAAM,OAAO,GAA2D,EAAE,CAAC;IAC3E,IAAI,cAAkC,CAAC;IACvC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,cAAc,GAAG,IAAI,CAAC;YACtB,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,cAAc,GAAG,SAAS,CAAC;IAC7B,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;YACvC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QACtE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,WAA+B,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW;gBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5E,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;AACnD,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,uBAAuB,CAAC,MAAsB;IAC5D,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,CAAC,IAAI,CACV,eAAe,EACf,WAAW,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,EAAE,EACvD,WAAW,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,EAChD,WAAW,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,EAClD,eAAe,cAAc,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,EACtD,eAAe,cAAc,CAAC,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,EAAE,CAC/D,CAAC;YACF,MAAM;QACR,KAAK,IAAI;YACP,OAAO,CAAC,IAAI,CACV,oBAAoB,EACpB,WAAW,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,EAAE,EACvD,WAAW,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,EAChD,WAAW,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE,EACtD,eAAe,cAAc,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,EACtD,eAAe,cAAc,CAAC,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,EAAE,CAC/D,CAAC;YACF,MAAM;QACR,KAAK,SAAS;YACZ,OAAO,CAAC,IAAI,CACV,iBAAiB,EACjB,UAAU,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,2BAA2B,CAAC,EAAE,EACrE,WAAW,cAAc,CAAC,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC,EAAE,CACzD,CAAC;YACF,MAAM;QACR,KAAK,OAAO;YACV,OAAO,CAAC,IAAI,CACV,eAAe,EACf,cAAc,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,WAAW,CAAC,EAAE,EAClE,cAAc,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,EAC3D,kBAAkB,cAAc,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,EACzD,YAAY,cAAc,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CACnD,CAAC;YACF,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd;YACE,oBAAoB;YACpB,MAAM;IACV,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAsB;IAC/D,IAAI,KAAK,GAAa,EAAE,CAAC;IACzB,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,KAAK,GAAG;gBACN,eAAe;gBACf,mBAAmB;gBACnB,cAAc;gBACd,cAAc;gBACd,uBAAuB;gBACvB,sBAAsB;aACvB,CAAC;YACF,MAAM;QACR,KAAK,IAAI;YACP,KAAK,GAAG;gBACN,oBAAoB;gBACpB,mBAAmB;gBACnB,cAAc;gBACd,kBAAkB;gBAClB,uBAAuB;gBACvB,sBAAsB;aACvB,CAAC;YACF,MAAM;QACR,KAAK,SAAS;YACZ,KAAK,GAAG;gBACN,iBAAiB;gBACjB,kCAAkC;gBAClC,kBAAkB;aACnB,CAAC;YACF,MAAM;QACR,KAAK,OAAO;YACV,KAAK,GAAG;gBACN,eAAe;gBACf,sBAAsB;gBACtB,iBAAiB;gBACjB,iBAAiB;gBACjB,YAAY;aACb,CAAC;YACF,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC;IACd,CAAC;IACD,OAAO,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACnC,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
export type { InitOptions, DatabaseConfig } from './types.js';
|
|
2
|
-
export { DATABASE_PACKAGES } from './types.js';
|
|
2
|
+
export { DATABASE_DRIVER_VERSIONS, DATABASE_PACKAGES } from './types.js';
|
|
3
|
+
export { DATABASE_DIALECT_DEFINITIONS, databaseChoiceLabel, getDatabaseDialectDefinition, validateDatabaseConfig, } from './database-definitions.js';
|
|
4
|
+
export type { DatabaseDialect, DatabaseDialectDefinition, DatabaseDriverDefinition, DatabaseSchemaIssue, } from './database-definitions.js';
|
|
3
5
|
export type { AdapterSetupResult, AdapterPluginInstance, AdapterDefinition } from './adapter.js';
|
|
4
6
|
export { ADAPTERS, findAdapterByPackage, configureAdapters, buildFieldBasedInstanceConfig, generateAdapterEnvVars, collectAdapterPluginConfigs, collectAdapterPluginManifest, getAdapterDependencies, getAdapterSetupNotes, } from './adapter.js';
|
|
5
7
|
export { ADAPTERS_DOCS_URL, ADAPTERS_INDEX_URL, ADAPTERS_ESSENTIALS_URL, adapterDocsUrl, } from './adapter-configurers.js';
|
|
6
8
|
export type { AISetupConfig } from './ai.js';
|
|
7
9
|
export { configureAI, generateAIEnvVars, generateAIConfigYaml, generateAIConfigJSON, RECOMMENDED_AI_DEFAULTS, } from './ai.js';
|
|
8
10
|
export { configureDatabaseOptions } from './database.js';
|
|
9
|
-
export { formatEnvValue, mergeEnvText, generateDatabaseEnvVars, } from './env.js';
|
|
11
|
+
export { formatEnvValue, mergeEnvText, generateDatabaseEnvExample, generateDatabaseEnvVars, } from './env.js';
|
|
10
12
|
export { AI_STACK_VERSIONS, MCP_SDK_VERSION, getAIDependencies, listAIDependencyNames, formatAIDependencyHint, isAiEnabledInConfig, resolveAgentProviderFromConfig, getRequiredAIDependenciesForConfig, diagnoseAIDependencies, formatAIDependencyFixCommand, packagesNeedingAiStackFix, findOutdatedAiStackInPackageJson, findInstalledAiStackIncompatibilities, ensureDatabaseForAI, ensureDatabaseForAdapters, } from './project-deps.js';
|
|
11
13
|
export type { AiStackIncompatibility } from './project-deps.js';
|
|
12
|
-
export { ZHIN_STACK_VERSIONS, DEFAULT_CREATE_BOT_HTTP_PORT,
|
|
14
|
+
export { ZHIN_STACK_VERSIONS, DEFAULT_CREATE_BOT_HTTP_PORT, CREATE_BOT_PACKAGE_MANAGER, getCreateBotBaseDependencies, getCreateBotPnpmWorkspaceConfig, getRequiredZhinDependenciesForConfig, diagnoseZhinStackDependencies, formatZhinStackFixCommand, packagesNeedingZhinStackFix, findOutdatedZhinStackInPackageJson, findInstalledZhinStackIncompatibilities, } from './zhin-stack-deps.js';
|
|
13
15
|
export type { ZhinStackDiagnosis, ZhinStackIncompatibility } from './zhin-stack-deps.js';
|
|
14
16
|
export { SPEECH_PACKAGE, HTML_RENDERER_PACKAGE, ADAPTERS_PREFER_HTML_IMAGE, diagnoseOptionalPeers, formatOptionalPeerFixCommand, getOptionalPeerDependencies, } from './optional-peers.js';
|
|
15
17
|
export type { OptionalPeerDiagnosis, OptionalPeersDiagnosis } from './optional-peers.js';
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
export { DATABASE_PACKAGES } from './types.js';
|
|
1
|
+
export { DATABASE_DRIVER_VERSIONS, DATABASE_PACKAGES } from './types.js';
|
|
2
|
+
export { DATABASE_DIALECT_DEFINITIONS, databaseChoiceLabel, getDatabaseDialectDefinition, validateDatabaseConfig, } from './database-definitions.js';
|
|
2
3
|
export { ADAPTERS, findAdapterByPackage, configureAdapters, buildFieldBasedInstanceConfig, generateAdapterEnvVars, collectAdapterPluginConfigs, collectAdapterPluginManifest, getAdapterDependencies, getAdapterSetupNotes, } from './adapter.js';
|
|
3
4
|
export { ADAPTERS_DOCS_URL, ADAPTERS_INDEX_URL, ADAPTERS_ESSENTIALS_URL, adapterDocsUrl, } from './adapter-configurers.js';
|
|
4
5
|
export { configureAI, generateAIEnvVars, generateAIConfigYaml, generateAIConfigJSON, RECOMMENDED_AI_DEFAULTS, } from './ai.js';
|
|
5
6
|
export { configureDatabaseOptions } from './database.js';
|
|
6
|
-
export { formatEnvValue, mergeEnvText, generateDatabaseEnvVars, } from './env.js';
|
|
7
|
+
export { formatEnvValue, mergeEnvText, generateDatabaseEnvExample, generateDatabaseEnvVars, } from './env.js';
|
|
7
8
|
export { AI_STACK_VERSIONS, MCP_SDK_VERSION, getAIDependencies, listAIDependencyNames, formatAIDependencyHint, isAiEnabledInConfig, resolveAgentProviderFromConfig, getRequiredAIDependenciesForConfig, diagnoseAIDependencies, formatAIDependencyFixCommand, packagesNeedingAiStackFix, findOutdatedAiStackInPackageJson, findInstalledAiStackIncompatibilities, ensureDatabaseForAI, ensureDatabaseForAdapters, } from './project-deps.js';
|
|
8
|
-
export { ZHIN_STACK_VERSIONS, DEFAULT_CREATE_BOT_HTTP_PORT,
|
|
9
|
+
export { ZHIN_STACK_VERSIONS, DEFAULT_CREATE_BOT_HTTP_PORT, CREATE_BOT_PACKAGE_MANAGER, getCreateBotBaseDependencies, getCreateBotPnpmWorkspaceConfig, getRequiredZhinDependenciesForConfig, diagnoseZhinStackDependencies, formatZhinStackFixCommand, packagesNeedingZhinStackFix, findOutdatedZhinStackInPackageJson, findInstalledZhinStackIncompatibilities, } from './zhin-stack-deps.js';
|
|
9
10
|
export { SPEECH_PACKAGE, HTML_RENDERER_PACKAGE, ADAPTERS_PREFER_HTML_IMAGE, diagnoseOptionalPeers, formatOptionalPeerFixCommand, getOptionalPeerDependencies, } from './optional-peers.js';
|
|
10
11
|
export { diagnoseUpgradeToL4, getUpgradeToL4Dependencies, } from './upgrade-l4.js';
|
|
11
12
|
export { loadProjectConfig, createProjectConfigPlan, renderProjectConfigPatch, applyProjectConfigPlan, migrateAiLegacyConfig, diagnoseConsoleConfig, applyConsoleConfigFixes, packageToInstanceKey, } from './project-config-plan.js';
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AASnC,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,kCAAkC,EAClC,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,gCAAgC,EAChC,qCAAqC,EACrC,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,+BAA+B,EAC/B,oCAAoC,EACpC,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC3B,kCAAkC,EAClC,uCAAuC,GACxC,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,gCAAgC,EAChC,4BAA4B,EAC5B,kCAAkC,EAClC,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|
package/lib/types.d.ts
CHANGED
|
@@ -16,8 +16,9 @@ export interface InitOptions {
|
|
|
16
16
|
devSkills?: boolean;
|
|
17
17
|
}
|
|
18
18
|
export interface DatabaseConfig {
|
|
19
|
-
dialect: 'sqlite' | 'mysql' | 'pg' | 'mongodb' | 'redis';
|
|
19
|
+
dialect: 'sqlite' | 'mysql' | 'pg' | 'mongodb' | 'redis' | 'memory';
|
|
20
20
|
[key: string]: any;
|
|
21
21
|
}
|
|
22
|
-
export declare const DATABASE_PACKAGES: Record<DatabaseConfig[
|
|
22
|
+
export declare const DATABASE_PACKAGES: Readonly<Record<DatabaseConfig["dialect"], string | undefined>>;
|
|
23
|
+
export declare const DATABASE_DRIVER_VERSIONS: Readonly<Record<string, string>>;
|
|
23
24
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAGD,eAAO,MAAM,iBAAiB,EAExB,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAEtE,eAAO,MAAM,wBAAwB,EAI/B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC"}
|
package/lib/types.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
redis: 'redis'
|
|
8
|
-
};
|
|
1
|
+
import { DATABASE_DIALECT_DEFINITIONS } from './database-definitions.js';
|
|
2
|
+
// 数据库驱动映射(SQLite / Memory 使用内置实现,无需额外安装)
|
|
3
|
+
export const DATABASE_PACKAGES = Object.freeze(Object.fromEntries(DATABASE_DIALECT_DEFINITIONS.map((definition) => [definition.dialect, definition.driver?.package])));
|
|
4
|
+
export const DATABASE_DRIVER_VERSIONS = Object.freeze(Object.fromEntries(DATABASE_DIALECT_DEFINITIONS.flatMap((definition) => definition.driver
|
|
5
|
+
? [[definition.driver.package, definition.driver.version]]
|
|
6
|
+
: [])));
|
|
9
7
|
//# sourceMappingURL=types.js.map
|
package/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAwBzE,yCAAyC;AACzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAC/D,4BAA4B,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CACnG,CAAoE,CAAC;AAEtE,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CACtE,4BAA4B,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;IACpE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAU,CAAC;IACnE,CAAC,CAAC,EAAE,CAAC,CACR,CAAqC,CAAC"}
|
package/lib/zhin-stack-deps.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type PackageJsonLike } from './project-deps.js';
|
|
2
2
|
/**
|
|
3
|
-
* User project dependency policy: scaffolded
|
|
4
|
-
*
|
|
3
|
+
* User project dependency policy: scaffolded Zhin packages intentionally float to latest.
|
|
4
|
+
* Database drivers use the live-tested ranges declared by the database definitions.
|
|
5
|
+
* WARNING: `latest` is not reproducible; pin Zhin package versions for production.
|
|
5
6
|
*/
|
|
6
7
|
export declare const ZHIN_STACK_VERSIONS: {
|
|
7
8
|
readonly 'zhin.js': "latest";
|
|
@@ -50,10 +51,10 @@ export declare const ZHIN_STACK_VERSIONS: {
|
|
|
50
51
|
export type ZhinStackPackage = keyof typeof ZHIN_STACK_VERSIONS;
|
|
51
52
|
/** create-zhin / minimal-bot 默认 Host 端口(避免与常见 8086 占用冲突) */
|
|
52
53
|
export declare const DEFAULT_CREATE_BOT_HTTP_PORT = 8068;
|
|
53
|
-
/** create-zhin
|
|
54
|
-
export declare const
|
|
55
|
-
/** create-zhin 生成项目的 pnpm
|
|
56
|
-
export declare function
|
|
54
|
+
/** create-zhin 生成项目固定使用的 pnpm 版本。 */
|
|
55
|
+
export declare const CREATE_BOT_PACKAGE_MANAGER = "pnpm@11.27.1";
|
|
56
|
+
/** create-zhin 生成项目的 pnpm-workspace.yaml 配置。 */
|
|
57
|
+
export declare function getCreateBotPnpmWorkspaceConfig(): Record<string, unknown>;
|
|
57
58
|
/**
|
|
58
59
|
* create-zhin-app Plugin Runtime 骨架 production 依赖(不含适配器 / AI / 数据库驱动)。
|
|
59
60
|
* Stable Features(adapter/command/component/middleware)由 `@zhin.js/core` 的 `package.json#zhin.features` 继承;创作面 API 经 `zhin.js/*` 便利入口。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zhin-stack-deps.d.ts","sourceRoot":"","sources":["../src/zhin-stack-deps.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsF,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE7I
|
|
1
|
+
{"version":3,"file":"zhin-stack-deps.d.ts","sourceRoot":"","sources":["../src/zhin-stack-deps.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsF,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE7I;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AA0DhE,4DAA4D;AAC5D,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAEjD,qCAAqC;AACrC,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAEzD,gDAAgD;AAChD,wBAAgB,+BAA+B,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKrE;AAED,oDAAoD;AACpD,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB5G;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,EAAE,CAYV;AAED,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,wBAAwB,EAAE,CA0B5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,qBAAqB,EAAE,wBAAwB,EAAE,CAAC;IAClD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,EAAE,CASnF;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,CAAC,EAAE,eAAe,GACpB,kBAAkB,CAkBpB;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAItG"}
|
package/lib/zhin-stack-deps.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
2
|
import fs from 'fs-extra';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import { DATABASE_PACKAGES } from './types.js';
|
|
4
|
+
import { DATABASE_DRIVER_VERSIONS, DATABASE_PACKAGES } from './types.js';
|
|
5
5
|
import { findMissingPackageDependencies, findUnresolvedPackageInstalls, isAiEnabledInConfig } from './project-deps.js';
|
|
6
6
|
/**
|
|
7
|
-
* User project dependency policy: scaffolded
|
|
8
|
-
*
|
|
7
|
+
* User project dependency policy: scaffolded Zhin packages intentionally float to latest.
|
|
8
|
+
* Database drivers use the live-tested ranges declared by the database definitions.
|
|
9
|
+
* WARNING: `latest` is not reproducible; pin Zhin package versions for production.
|
|
9
10
|
*/
|
|
10
11
|
export const ZHIN_STACK_VERSIONS = {
|
|
11
12
|
'zhin.js': 'latest',
|
|
@@ -109,12 +110,16 @@ function resolveStackVersion(packageName) {
|
|
|
109
110
|
}
|
|
110
111
|
/** create-zhin / minimal-bot 默认 Host 端口(避免与常见 8086 占用冲突) */
|
|
111
112
|
export const DEFAULT_CREATE_BOT_HTTP_PORT = 8068;
|
|
112
|
-
/** create-zhin
|
|
113
|
-
export const
|
|
114
|
-
/** create-zhin 生成项目的 pnpm
|
|
115
|
-
export function
|
|
113
|
+
/** create-zhin 生成项目固定使用的 pnpm 版本。 */
|
|
114
|
+
export const CREATE_BOT_PACKAGE_MANAGER = 'pnpm@11.27.1';
|
|
115
|
+
/** create-zhin 生成项目的 pnpm-workspace.yaml 配置。 */
|
|
116
|
+
export function getCreateBotPnpmWorkspaceConfig() {
|
|
116
117
|
return {
|
|
117
|
-
|
|
118
|
+
packages: ['.', 'plugins/*', 'packages/*'],
|
|
119
|
+
strictPeerDependencies: false,
|
|
120
|
+
allowBuilds: {
|
|
121
|
+
esbuild: true,
|
|
122
|
+
},
|
|
118
123
|
};
|
|
119
124
|
}
|
|
120
125
|
/**
|
|
@@ -138,7 +143,7 @@ export function getRequiredZhinDependenciesForConfig(config) {
|
|
|
138
143
|
const dialect = String(database.dialect ?? '');
|
|
139
144
|
const driver = DATABASE_PACKAGES[dialect];
|
|
140
145
|
if (driver) {
|
|
141
|
-
deps[driver] =
|
|
146
|
+
deps[driver] = DATABASE_DRIVER_VERSIONS[driver];
|
|
142
147
|
}
|
|
143
148
|
}
|
|
144
149
|
return deps;
|