@rei-standard/amsg-server 1.1.0 → 1.2.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.
- package/README.md +16 -5
- package/dist/{chunk-M2CNZRRO.cjs → chunk-74H4WV6Q.cjs} +25 -1
- package/dist/{chunk-YKLDHUZZ.mjs → chunk-H5EQVHAY.mjs} +24 -0
- package/dist/{index-wQ6O1KrR.d.cts → index-BRvOilNH.d.cts} +339 -253
- package/dist/{index-BxrBvKHy.d.ts → index-BXb6gptO.d.ts} +339 -253
- package/dist/index.cjs +197 -143
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +198 -144
- package/dist/{neon-CNUoZFv_.d.cts → neon-C29wdgUQ.d.cts} +36 -4
- package/dist/{neon-BKBYTWB7.d.ts → neon-CK9Yty81.d.ts} +36 -4
- package/dist/{neon-ZBESTDI5.mjs → neon-YS3VCCSU.mjs} +36 -3
- package/dist/{neon-FRQJDC3A.cjs → neon-ZQS3KT6C.cjs} +40 -7
- package/dist/{pg-QKWVA6NG.mjs → pg-2CLYF2XS.mjs} +34 -3
- package/dist/{pg-PBITGIEU.cjs → pg-2JJP632A.cjs} +38 -7
- package/dist/{pg-Bnam-z8h.d.ts → pg-DRLITtBW.d.cts} +34 -4
- package/dist/{pg-B8JqNFRD.d.cts → pg-DhwHwSPv.d.ts} +34 -4
- package/package.json +6 -1
package/README.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
`@rei-standard/amsg-server` 是 ReiStandard 主动消息标准的服务端 SDK 包。
|
|
4
4
|
|
|
5
|
+
## 文档导航
|
|
6
|
+
|
|
7
|
+
- [SDK 总览](../README.md)
|
|
8
|
+
- [主 README](../../../README.md)
|
|
9
|
+
- [API 技术规范](../../../standards/active-messaging-api.md)
|
|
10
|
+
|
|
5
11
|
## 安装
|
|
6
12
|
|
|
7
13
|
```bash
|
|
@@ -23,9 +29,7 @@ const rei = await createReiServer({
|
|
|
23
29
|
driver: 'neon',
|
|
24
30
|
connectionString: process.env.DATABASE_URL
|
|
25
31
|
},
|
|
26
|
-
encryptionKey: process.env.ENCRYPTION_KEY,
|
|
27
32
|
cronSecret: process.env.CRON_SECRET,
|
|
28
|
-
initSecret: process.env.INIT_SECRET,
|
|
29
33
|
vapid: {
|
|
30
34
|
email: process.env.VAPID_EMAIL,
|
|
31
35
|
publicKey: process.env.NEXT_PUBLIC_VAPID_PUBLIC_KEY,
|
|
@@ -37,14 +41,21 @@ const rei = await createReiServer({
|
|
|
37
41
|
导出的标准 handler:
|
|
38
42
|
|
|
39
43
|
- `rei.handlers.initDatabase`
|
|
40
|
-
- `rei.handlers.
|
|
44
|
+
- `rei.handlers.initMasterKey`
|
|
45
|
+
- `rei.handlers.getUserKey`
|
|
41
46
|
- `rei.handlers.scheduleMessage`
|
|
42
47
|
- `rei.handlers.sendNotifications`
|
|
43
48
|
- `rei.handlers.updateMessage`
|
|
44
49
|
- `rei.handlers.cancelMessage`
|
|
45
50
|
- `rei.handlers.messages`
|
|
46
51
|
|
|
52
|
+
推荐初始化顺序:
|
|
53
|
+
|
|
54
|
+
1. 调用 `initDatabase.GET`(幂等创建表)
|
|
55
|
+
2. 调用 `initMasterKey.POST`(一次性初始化系统密钥)
|
|
56
|
+
3. 客户端携带 UUID v4 `X-User-Id` 调用 `getUserKey.GET`
|
|
57
|
+
|
|
47
58
|
## 相关包
|
|
48
59
|
|
|
49
|
-
- 浏览器 SDK
|
|
50
|
-
- Service Worker SDK
|
|
60
|
+
- 浏览器 SDK:[`@rei-standard/amsg-client`](../client/README.md)
|
|
61
|
+
- Service Worker SDK:[`@rei-standard/amsg-sw`](../sw/README.md)
|
|
@@ -13,6 +13,14 @@ var TABLE_SQL = `
|
|
|
13
13
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
14
14
|
)
|
|
15
15
|
`;
|
|
16
|
+
var SYSTEM_CONFIG_SQL = `
|
|
17
|
+
CREATE TABLE IF NOT EXISTS system_config (
|
|
18
|
+
key TEXT PRIMARY KEY,
|
|
19
|
+
value TEXT NOT NULL,
|
|
20
|
+
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
21
|
+
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
22
|
+
)
|
|
23
|
+
`;
|
|
16
24
|
var INDEXES = [
|
|
17
25
|
{
|
|
18
26
|
name: "idx_pending_tasks_optimized",
|
|
@@ -56,6 +64,12 @@ var VERIFY_TABLE_SQL = `
|
|
|
56
64
|
WHERE table_schema = 'public'
|
|
57
65
|
AND table_name = 'scheduled_messages'
|
|
58
66
|
`;
|
|
67
|
+
var VERIFY_SYSTEM_CONFIG_SQL = `
|
|
68
|
+
SELECT table_name
|
|
69
|
+
FROM information_schema.tables
|
|
70
|
+
WHERE table_schema = 'public'
|
|
71
|
+
AND table_name = 'system_config'
|
|
72
|
+
`;
|
|
59
73
|
var COLUMNS_SQL = `
|
|
60
74
|
SELECT column_name, data_type, is_nullable
|
|
61
75
|
FROM information_schema.columns
|
|
@@ -63,6 +77,13 @@ var COLUMNS_SQL = `
|
|
|
63
77
|
AND table_name = 'scheduled_messages'
|
|
64
78
|
ORDER BY ordinal_position
|
|
65
79
|
`;
|
|
80
|
+
var SYSTEM_CONFIG_COLUMNS_SQL = `
|
|
81
|
+
SELECT column_name, data_type, is_nullable
|
|
82
|
+
FROM information_schema.columns
|
|
83
|
+
WHERE table_schema = 'public'
|
|
84
|
+
AND table_name = 'system_config'
|
|
85
|
+
ORDER BY ordinal_position
|
|
86
|
+
`;
|
|
66
87
|
var REQUIRED_COLUMNS = [
|
|
67
88
|
"id",
|
|
68
89
|
"user_id",
|
|
@@ -80,4 +101,7 @@ var REQUIRED_COLUMNS = [
|
|
|
80
101
|
|
|
81
102
|
|
|
82
103
|
|
|
83
|
-
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
exports.TABLE_SQL = TABLE_SQL; exports.SYSTEM_CONFIG_SQL = SYSTEM_CONFIG_SQL; exports.INDEXES = INDEXES; exports.VERIFY_TABLE_SQL = VERIFY_TABLE_SQL; exports.VERIFY_SYSTEM_CONFIG_SQL = VERIFY_SYSTEM_CONFIG_SQL; exports.COLUMNS_SQL = COLUMNS_SQL; exports.SYSTEM_CONFIG_COLUMNS_SQL = SYSTEM_CONFIG_COLUMNS_SQL; exports.REQUIRED_COLUMNS = REQUIRED_COLUMNS;
|
|
@@ -13,6 +13,14 @@ var TABLE_SQL = `
|
|
|
13
13
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
14
14
|
)
|
|
15
15
|
`;
|
|
16
|
+
var SYSTEM_CONFIG_SQL = `
|
|
17
|
+
CREATE TABLE IF NOT EXISTS system_config (
|
|
18
|
+
key TEXT PRIMARY KEY,
|
|
19
|
+
value TEXT NOT NULL,
|
|
20
|
+
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
21
|
+
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
22
|
+
)
|
|
23
|
+
`;
|
|
16
24
|
var INDEXES = [
|
|
17
25
|
{
|
|
18
26
|
name: "idx_pending_tasks_optimized",
|
|
@@ -56,6 +64,12 @@ var VERIFY_TABLE_SQL = `
|
|
|
56
64
|
WHERE table_schema = 'public'
|
|
57
65
|
AND table_name = 'scheduled_messages'
|
|
58
66
|
`;
|
|
67
|
+
var VERIFY_SYSTEM_CONFIG_SQL = `
|
|
68
|
+
SELECT table_name
|
|
69
|
+
FROM information_schema.tables
|
|
70
|
+
WHERE table_schema = 'public'
|
|
71
|
+
AND table_name = 'system_config'
|
|
72
|
+
`;
|
|
59
73
|
var COLUMNS_SQL = `
|
|
60
74
|
SELECT column_name, data_type, is_nullable
|
|
61
75
|
FROM information_schema.columns
|
|
@@ -63,6 +77,13 @@ var COLUMNS_SQL = `
|
|
|
63
77
|
AND table_name = 'scheduled_messages'
|
|
64
78
|
ORDER BY ordinal_position
|
|
65
79
|
`;
|
|
80
|
+
var SYSTEM_CONFIG_COLUMNS_SQL = `
|
|
81
|
+
SELECT column_name, data_type, is_nullable
|
|
82
|
+
FROM information_schema.columns
|
|
83
|
+
WHERE table_schema = 'public'
|
|
84
|
+
AND table_name = 'system_config'
|
|
85
|
+
ORDER BY ordinal_position
|
|
86
|
+
`;
|
|
66
87
|
var REQUIRED_COLUMNS = [
|
|
67
88
|
"id",
|
|
68
89
|
"user_id",
|
|
@@ -76,8 +97,11 @@ var REQUIRED_COLUMNS = [
|
|
|
76
97
|
|
|
77
98
|
export {
|
|
78
99
|
TABLE_SQL,
|
|
100
|
+
SYSTEM_CONFIG_SQL,
|
|
79
101
|
INDEXES,
|
|
80
102
|
VERIFY_TABLE_SQL,
|
|
103
|
+
VERIFY_SYSTEM_CONFIG_SQL,
|
|
81
104
|
COLUMNS_SQL,
|
|
105
|
+
SYSTEM_CONFIG_COLUMNS_SQL,
|
|
82
106
|
REQUIRED_COLUMNS
|
|
83
107
|
};
|