@gaonjs/cli 0.57.3 → 0.57.4
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.
|
@@ -30,7 +30,8 @@ export 를 런타임이 집는다. 파일명은 camelCase (루트 §네이밍).
|
|
|
30
30
|
|---|---|---|
|
|
31
31
|
| WS 접속 경로 | **앱** | `<앱 프리픽스>/gaon/ws/<이름>`(web 의 `room`→`/gaon/ws/room` · admin 의 `adminRoom`→`/admin/gaon/ws/adminRoom`) |
|
|
32
32
|
| `authorize`·`presenceInfo`·훅 | **앱** | 그 앱 폴더의 채널 파일이 실행된다 |
|
|
33
|
-
|
|
|
33
|
+
| `broadcast`(채널 전체) | **전역** | NATS subject `gaon.chan.<이름>` — 이름만 씀 |
|
|
34
|
+
| `sendToUsers`(유저 타겟) | **전역** | NATS subject `gaon.user.<member>` — 대상 서버에만 도달(결정 439) |
|
|
34
35
|
| 프레즌스 로스터 | **전역** | 허브 KV 키 `presence.<이름>.<멤버>` — 이름만 씀 |
|
|
35
36
|
|
|
36
37
|
- **앱간 동명 채널은 충돌한다.** `apps/web/channels/room.ts` 와
|
|
@@ -170,8 +171,10 @@ export default controller({
|
|
|
170
171
|
```
|
|
171
172
|
|
|
172
173
|
- **전달 대상** — 대상 유저의 **살아있는 연결에만** 간다. 멀티탭이면 그 유저의 **모든 연결**이
|
|
173
|
-
받고(연결별 전달), 멀티서버여도 대상이 어느 서버에 붙어 있든
|
|
174
|
-
|
|
174
|
+
받고(연결별 전달), 멀티서버여도 대상이 어느 서버에 붙어 있든 받는다. 비대상 유저는 안 받는다.
|
|
175
|
+
내부적으로 대상 유저의 subject(`gaon.user.<member>`)로 직접 발행해 **대상을 호스팅하는 서버
|
|
176
|
+
에만** 도달한다(결정 439 · NATS 관심 라우팅) — 큰 방에 소수만 지정해도 무관한 서버는 수신
|
|
177
|
+
자체가 없다. 채널 스코프는 유지된다(대상이 그 채널에 없으면 안 받음).
|
|
175
178
|
- **반환 = 도달한 대상 유저 수**(`Promise<number>`). 그 채널에 접속(present)한 대상 수를
|
|
176
179
|
프레즌스 권위(허브 KV)에서 센다. **대상이 전원 오프라인이면 `0` 을 정상 반환**한다 — throw
|
|
177
180
|
가 아니라 반환값으로 미도달을 알린다(조용히 삼키지 않음). 멀티탭 유저는 연결이 여럿이어도
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gaonjs/cli",
|
|
3
|
-
"version": "0.57.
|
|
3
|
+
"version": "0.57.4",
|
|
4
4
|
"description": "Gaon CLI — 스캐폴딩·제너레이터·마이그레이션·dev/serve/work/hub·doctor·check (bin: gaon)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,13 +32,13 @@
|
|
|
32
32
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
33
33
|
"typescript": "^5.9.0",
|
|
34
34
|
"vite": "^7.0.0",
|
|
35
|
-
"@gaonjs/async": "0.
|
|
35
|
+
"@gaonjs/async": "0.19.0",
|
|
36
36
|
"@gaonjs/data": "0.25.3",
|
|
37
|
+
"@gaonjs/config": "0.25.3",
|
|
37
38
|
"@gaonjs/core": "0.3.0",
|
|
38
|
-
"@gaonjs/config": "0.25.2",
|
|
39
|
-
"@gaonjs/i18n": "0.3.1",
|
|
40
39
|
"@gaonjs/mail": "0.5.1",
|
|
41
|
-
"@gaonjs/
|
|
40
|
+
"@gaonjs/i18n": "0.3.1",
|
|
41
|
+
"@gaonjs/web": "0.30.2"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "node ../../node_modules/typescript/bin/tsc -p tsconfig.json && node -e \"const fs=require('fs');fs.cpSync('src/templates','dist/templates',{recursive:true,filter:(s)=>!s.endsWith('.ts')});fs.rmSync('dist/templates/index.ts',{force:true})\""
|