@atomservice/config 0.1.5 → 0.1.6

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 ADDED
@@ -0,0 +1,15 @@
1
+ # @atomservice/config
2
+
3
+ AtomConfig — 自托管配置中心,包含服务端、CLI 工具和客户端 SDK。
4
+
5
+ ## 包组成
6
+
7
+ | 包 | 说明 |
8
+ |---|---|
9
+ | [`@atomservice/config`](https://npmjs.com/package/@atomservice/config) | atomservice 服务封装 |
10
+ | [`@atomservice/config-cli`](https://npmjs.com/package/@atomservice/config-cli) | `atomconfig` CLI |
11
+ | [`@atomservice/config-client`](https://npmjs.com/package/@atomservice/config-client) | 客户端 SDK |
12
+
13
+ ## 文档
14
+
15
+ 完整文档见 [docs/](./docs/README.md)。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atomservice/config",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "配置中心原子服务:基于 Bun 的高性能配置管理服务",
5
5
  "type": "module",
6
6
  "author": "openorson",
@@ -29,9 +29,9 @@
29
29
  ".": "./src/index.ts"
30
30
  },
31
31
  "dependencies": {
32
- "@atomservice/gateway": "0.1.5"
32
+ "@atomservice/gateway": "0.1.6"
33
33
  },
34
34
  "peerDependencies": {
35
- "@atomservice/core": "0.1.5"
35
+ "@atomservice/core": "0.1.6"
36
36
  }
37
37
  }
@@ -10,7 +10,7 @@
10
10
  "build:linux-arm64": "bun build --compile --minify --sourcemap --bytecode --target=bun-linux-arm64 src/main.ts --outfile dist/config-server"
11
11
  },
12
12
  "dependencies": {
13
- "typebox": "1.1.39"
13
+ "typebox": "1.2.2"
14
14
  },
15
15
  "devDependencies": {
16
16
  "typescript": "^6"
@@ -29,6 +29,7 @@ async function addMember(req: Request): Promise<Response> {
29
29
  if (!ROLES.includes(role)) throw new HttpError(400, "invalid_field", "角色须为 admin、collaborator 或 viewer")
30
30
 
31
31
  const target = findUserByAccount(account)
32
+ if (target.isSuperAdmin) throw new HttpError(400, "invalid_operation", "超级管理员无需加入项目")
32
33
  const db = getDb()
33
34
  const exists = db.query(`SELECT 1 FROM "ProjectMember" WHERE projectId = ? AND userId = ?`).get(project.id, target.id)
34
35
  if (exists) {
@@ -49,6 +50,7 @@ function removeMember(req: Request): Response {
49
50
  const project = findProject(param(req, "project"))
50
51
  requireProjectRole(user, project.id, "admin")
51
52
  const target = findUserByAccount(param(req, "account"))
53
+ if (target.isSuperAdmin) throw new HttpError(400, "invalid_operation", "无法移除超级管理员")
52
54
  getDb().query(`DELETE FROM "ProjectMember" WHERE projectId = ? AND userId = ?`).run(project.id, target.id)
53
55
  return ok({ removed: true })
54
56
  }
@@ -45,7 +45,6 @@ async function createProject(req: Request): Promise<Response> {
45
45
  description,
46
46
  user.id,
47
47
  )
48
- db.query(`INSERT INTO "ProjectMember" (projectId, userId, role) VALUES (?, ?, 'admin')`).run(id, user.id)
49
48
  })
50
49
  create()
51
50