entity-client 1.0.13 → 1.0.15
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/dist/EntityAppServerApi.d.ts +480 -0
- package/dist/EntityServerApi.d.ts +249 -7
- package/dist/client/base.d.ts +35 -4
- package/dist/client/base.js +1 -1
- package/dist/client/base.js.map +3 -3
- package/dist/client/request.d.ts +6 -1
- package/dist/client/request.js +1 -1
- package/dist/client/request.js.map +3 -3
- package/dist/hooks/useEntityClient.d.ts +4 -4
- package/dist/hooks/useEntityClient.js +1 -1
- package/dist/hooks/useEntityClient.js.map +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/dist/mixins/app/plugins/alimtalk.d.ts +30 -0
- package/dist/mixins/app/plugins/friendtalk.d.ts +30 -0
- package/dist/mixins/app/plugins/holidays.d.ts +30 -0
- package/dist/mixins/app/plugins/identity.d.ts +30 -0
- package/dist/mixins/app/plugins/llm.d.ts +30 -0
- package/dist/mixins/app/plugins/ocr.d.ts +30 -0
- package/dist/mixins/app/plugins/pg.d.ts +30 -0
- package/dist/mixins/app/plugins/push.d.ts +30 -0
- package/dist/mixins/app/plugins/sms.d.ts +30 -0
- package/dist/mixins/app/plugins/taxinvoice.d.ts +30 -0
- package/dist/mixins/app/routes/account.d.ts +30 -0
- package/dist/mixins/app/routes/board.d.ts +30 -0
- package/dist/mixins/app/routes/board.js +1 -1
- package/dist/mixins/app/routes/board.js.map +2 -2
- package/dist/mixins/app/routes/email-verify.d.ts +30 -0
- package/dist/mixins/app/routes/oauth.d.ts +30 -0
- package/dist/mixins/app/routes/password-reset.d.ts +30 -0
- package/dist/mixins/app/routes/two-factor.d.ts +30 -0
- package/dist/mixins/server/admin.d.ts +30 -0
- package/dist/mixins/server/auth.d.ts +73 -8
- package/dist/mixins/server/auth.js +1 -1
- package/dist/mixins/server/auth.js.map +3 -3
- package/dist/mixins/server/entity.d.ts +30 -0
- package/dist/mixins/server/file.d.ts +30 -0
- package/dist/mixins/server/index.d.ts +2 -1
- package/dist/mixins/server/index.js +1 -1
- package/dist/mixins/server/index.js.map +3 -3
- package/dist/mixins/server/push.d.ts +30 -0
- package/dist/mixins/server/smtp.d.ts +30 -0
- package/dist/mixins/server/transaction.d.ts +30 -0
- package/dist/mixins/server/utils.d.ts +30 -0
- package/dist/react.js +1 -1
- package/dist/react.js.map +3 -3
- package/dist/types.d.ts +46 -11
- package/package.json +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -104,10 +104,44 @@ export interface RegisterPushDeviceOptions {
|
|
|
104
104
|
pushEnabled?: boolean;
|
|
105
105
|
transactionId?: string;
|
|
106
106
|
}
|
|
107
|
+
export type RealtimeConnectionStatus = "disabled" | "idle" | "connecting" | "open" | "closed";
|
|
108
|
+
export type RealtimeMessageType = "hello" | "event" | "notification" | "message" | "chat" | "ack" | "error" | "ping" | "pong" | "subscribe" | "unsubscribe";
|
|
109
|
+
export interface RealtimeEnvelope<T = unknown> {
|
|
110
|
+
v: number;
|
|
111
|
+
id: string;
|
|
112
|
+
ts: string;
|
|
113
|
+
type: RealtimeMessageType;
|
|
114
|
+
channel: string;
|
|
115
|
+
event: string;
|
|
116
|
+
data?: T;
|
|
117
|
+
meta?: Record<string, unknown>;
|
|
118
|
+
reply_to?: string;
|
|
119
|
+
error?: {
|
|
120
|
+
code: string;
|
|
121
|
+
message: string;
|
|
122
|
+
details?: unknown;
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
export interface RealtimeStatusChange {
|
|
126
|
+
status: RealtimeConnectionStatus;
|
|
127
|
+
previousStatus: RealtimeConnectionStatus;
|
|
128
|
+
reason?: string;
|
|
129
|
+
error?: Error;
|
|
130
|
+
}
|
|
131
|
+
export interface RealtimeClientOptions {
|
|
132
|
+
enabled?: boolean;
|
|
133
|
+
path?: string;
|
|
134
|
+
autoConnect?: boolean;
|
|
135
|
+
autoReconnect?: boolean;
|
|
136
|
+
reconnectDelayMs?: number;
|
|
137
|
+
}
|
|
138
|
+
export type RealtimeMessageListener = (envelope: RealtimeEnvelope) => void;
|
|
139
|
+
export type RealtimeStatusListener = (change: RealtimeStatusChange) => void;
|
|
107
140
|
/** EntityServerClient 생성/설정 옵션입니다. */
|
|
108
141
|
export interface EntityServerClientOptions {
|
|
109
142
|
baseUrl?: string;
|
|
110
143
|
token?: string;
|
|
144
|
+
realtime?: boolean | RealtimeClientOptions;
|
|
111
145
|
/**
|
|
112
146
|
* 익명 패킷 암호화용 부트스트랩 토큰입니다.
|
|
113
147
|
* entity-app-server의 `/v1/health` 응답으로 설정되는 용도입니다.
|
|
@@ -126,24 +160,24 @@ export interface EntityServerClientOptions {
|
|
|
126
160
|
* `true`이면 인증된 POST/PUT 요청 바디를 XChaCha20-Poly1305로 암호화합니다.
|
|
127
161
|
*
|
|
128
162
|
* 서버의 `EnablePacketEncryption`이 활성화된 경우 필수로 설정해야 합니다.
|
|
129
|
-
* 로그인(`login()`)·토큰 갱신(`refreshToken()`)은 인증 전 요청이므로 자동으로 건너뜁니다.
|
|
163
|
+
* 로그인(`login()`)·토큰 갱신(`refreshToken()`, `tokenRefresh()`)은 인증 전 요청이므로 자동으로 건너뜁니다.
|
|
130
164
|
*
|
|
131
165
|
* 기본값: `false`
|
|
132
166
|
*/
|
|
133
167
|
encryptRequests?: boolean;
|
|
134
168
|
/**
|
|
135
|
-
* `true`이면
|
|
136
|
-
*
|
|
169
|
+
* `true`이면 health tick 시 `X-Session-Bootstrap: 1`로 세션 연장을 함께 시도합니다.
|
|
170
|
+
* 브라우저 직접 통신에서는 refresh API를 따로 스케줄링하는 대신 이 방식을 권장합니다.
|
|
171
|
+
*
|
|
172
|
+
* `healthTickInterval`이 설정되어 있지 않으면 `login()` 성공 후 기본 5분 주기로 health tick이 시작됩니다.
|
|
137
173
|
*
|
|
138
|
-
*
|
|
174
|
+
* 연장 성공 시 `onTokenRefreshed`, 더 이상 연장할 수 없으면 `onSessionExpired` 콜백이 호출될 수 있습니다.
|
|
139
175
|
*
|
|
140
176
|
* 기본값: `false`
|
|
141
177
|
*/
|
|
142
178
|
keepSession?: boolean;
|
|
143
179
|
/**
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
* 예: `expires_in = 3600`, `refreshBuffer = 60` → 3540초 후 갱신
|
|
180
|
+
* Deprecated: timer 기반 refresh를 쓰지 않으므로 더 이상 사용하지 않습니다.
|
|
147
181
|
*
|
|
148
182
|
* 기본값: `60`
|
|
149
183
|
*/
|
|
@@ -152,6 +186,7 @@ export interface EntityServerClientOptions {
|
|
|
152
186
|
* health tick 자동 실행 주기(ms)입니다.
|
|
153
187
|
* 설정하면 클라이언트 생성 직후부터 주기적으로 `/v1/health`를 호출합니다.
|
|
154
188
|
* CSRF 쿠키 갱신과 서버 상태 확인을 자동화합니다.
|
|
189
|
+
* `keepSession: true`이면 같은 tick에서 세션 연장도 함께 시도합니다.
|
|
155
190
|
*
|
|
156
191
|
* 예: `healthTickInterval: 5 * 60 * 1000` → 5분마다 health 호출
|
|
157
192
|
*
|
|
@@ -159,14 +194,14 @@ export interface EntityServerClientOptions {
|
|
|
159
194
|
*/
|
|
160
195
|
healthTickInterval?: number;
|
|
161
196
|
/**
|
|
162
|
-
*
|
|
197
|
+
* health 기반 세션 연장 성공 시 호출되는 콜백입니다.
|
|
163
198
|
* 새 `access_token`과 `expires_in`이 전달됩니다.
|
|
164
|
-
*
|
|
199
|
+
* health 기반 부트스트랩에서는 `expires_in`이 0일 수 있습니다.
|
|
165
200
|
*/
|
|
166
201
|
onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
|
|
167
202
|
/**
|
|
168
|
-
* 세션
|
|
169
|
-
* refresh_token 만료 등으로 재발급이 불가능한 경우입니다.
|
|
203
|
+
* health 기반 세션 연장 실패 시 호출되는 콜백입니다.
|
|
204
|
+
* refresh_token 만료 등으로 더 이상 재발급이 불가능한 경우입니다.
|
|
170
205
|
* 앱은 이 콜백에서 로그인 페이지로 이동하는 등의 처리를 해야 합니다.
|
|
171
206
|
*/
|
|
172
207
|
onSessionExpired?: (error: Error) => void;
|