@gadmin2n/schematics 0.0.135 → 0.0.136

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.
@@ -32,7 +32,8 @@
32
32
  "postgadminGenerate": "node scripts/notify-dev-servers.js",
33
33
  "push:db": "dotenv -e .env.local -e .env -- prisma db push --skip-generate",
34
34
  "seed": "dotenv -e .env.local -e .env -- ts-node seed/index.ts",
35
- "prisma:studio": "dotenv -e .env.local -e .env -- prisma studio"
35
+ "prisma:studio": "dotenv -e .env.local -e .env -- prisma studio",
36
+ "gen:jwt": "dotenv -e .env.local -e .env -- ts-node scripts/gen-jwt.ts"
36
37
  },
37
38
  "dependencies": {
38
39
  "@agendajs/postgres-backend": "^3.0.5",
@@ -90,7 +91,7 @@
90
91
  "devDependencies": {
91
92
  "@faker-js/faker": "^10.4.0",
92
93
  "@gadmin2n/prisma-nest-generator": "^0.0.49",
93
- "@gadmin2n/prisma-react-generator": "^0.0.65",
94
+ "@gadmin2n/prisma-react-generator": "^0.0.66",
94
95
  "@nestjs/cli": "^11.0.21",
95
96
  "@nestjs/testing": "^10.4.15",
96
97
  "@swc/cli": "^0.8.1",
@@ -0,0 +1,85 @@
1
+ /**
2
+ * gen-jwt.ts — 使用 TaiHuId.sign() 为 seed 用户生成 JWT token
3
+ *
4
+ * Usage:
5
+ * yarn gen:jwt --userid kavenma
6
+ * yarn gen:jwt --userid kavenma --expiresIn 3600
7
+ *
8
+ * userid 必须在 seed/users.ts 中存在。
9
+ */
10
+
11
+ import seedUsers from '../seed/users';
12
+ import TaiHuId from '../src/lib/taihu';
13
+
14
+ function parseArgs(): Record<string, string> {
15
+ const argv = process.argv.slice(2);
16
+ const flags: Record<string, string> = {};
17
+ for (let i = 0; i < argv.length; i++) {
18
+ if (argv[i].startsWith('--')) {
19
+ const key = argv[i].slice(2);
20
+ const next = argv[i + 1];
21
+ flags[key] = next && !next.startsWith('--') ? argv[++i] : 'true';
22
+ }
23
+ }
24
+ return flags;
25
+ }
26
+
27
+ async function main() {
28
+ const flags = parseArgs();
29
+ const { userid, expiresIn } = flags;
30
+
31
+ if (!userid) {
32
+ console.error('[gen-jwt] --userid is required.');
33
+ console.error(
34
+ `[gen-jwt] Available userids: ${seedUsers
35
+ .map((u) => u.userid)
36
+ .join(', ')}`,
37
+ );
38
+ process.exit(1);
39
+ }
40
+
41
+ const user = seedUsers.find((u) => u.userid === userid);
42
+ if (!user) {
43
+ console.error(`[gen-jwt] userid "${userid}" not found in seed/users.ts.`);
44
+ console.error(
45
+ `[gen-jwt] Available userids: ${seedUsers
46
+ .map((u) => u.userid)
47
+ .join(', ')}`,
48
+ );
49
+ process.exit(1);
50
+ }
51
+
52
+ const ttl = expiresIn ? parseInt(expiresIn, 10) : 7 * 24 * 60 * 60; // 默认 7 天
53
+
54
+ const token = await TaiHuId.sign(
55
+ {
56
+ user_id: user.userid,
57
+ sub: user.userid,
58
+ name: user.username,
59
+ email: `${user.userid}@tencent.com`,
60
+ },
61
+ ttl,
62
+ );
63
+
64
+ console.log(
65
+ `[gen-jwt] ✅ Generated JWT for userid=${user.userid} (expiresIn=${ttl}s):\n`,
66
+ );
67
+ console.log(token);
68
+
69
+ console.log('\n[gen-jwt] 🍪 如何在浏览器中种入 cookie:');
70
+ console.log(' 1) 打开目标站点(例如 http://localhost:3000),进入 DevTools');
71
+ console.log(' 2) Application → Cookies → 选择当前域名');
72
+ console.log(
73
+ ' 新增一条 cookie:Name=gadmin-token Value=<上面的 token> Path=/',
74
+ );
75
+ console.log(' 3) 刷新页面即可以该 userid 身份登录\n');
76
+ console.log(' 或在 DevTools Console 中执行(同域下即时生效):');
77
+ console.log(
78
+ ` document.cookie = "gadmin-token=${token}; path=/; max-age=${ttl}"`,
79
+ );
80
+ }
81
+
82
+ main().catch((e) => {
83
+ console.error('[gen-jwt] Fatal error:', e);
84
+ process.exit(1);
85
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gadmin2n/schematics",
3
- "version": "0.0.135",
3
+ "version": "0.0.136",
4
4
  "description": "Gadmin - modern, fast, powerful node.js web framework (@schematics)",
5
5
  "main": "dist/index.js",
6
6
  "files": [