entity-client 1.0.8 → 1.0.10

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.
Files changed (40) hide show
  1. package/dist/EntityAppServerApi.d.ts +128 -176
  2. package/dist/EntityServerApi.d.ts +65 -92
  3. package/dist/client/base.d.ts +17 -12
  4. package/dist/client/base.js +1 -1
  5. package/dist/client/base.js.map +3 -3
  6. package/dist/client/request.d.ts +2 -2
  7. package/dist/client/request.js +1 -1
  8. package/dist/client/request.js.map +3 -3
  9. package/dist/index.js +1 -1
  10. package/dist/index.js.map +3 -3
  11. package/dist/mixins/app/plugins/alimtalk.d.ts +8 -11
  12. package/dist/mixins/app/plugins/friendtalk.d.ts +8 -11
  13. package/dist/mixins/app/plugins/holidays.d.ts +8 -11
  14. package/dist/mixins/app/plugins/identity.d.ts +8 -11
  15. package/dist/mixins/app/plugins/llm.d.ts +8 -11
  16. package/dist/mixins/app/plugins/ocr.d.ts +8 -11
  17. package/dist/mixins/app/plugins/pg.d.ts +8 -11
  18. package/dist/mixins/app/plugins/push.d.ts +8 -11
  19. package/dist/mixins/app/plugins/sms.d.ts +8 -11
  20. package/dist/mixins/app/plugins/taxinvoice.d.ts +8 -11
  21. package/dist/mixins/app/routes/account.d.ts +8 -11
  22. package/dist/mixins/app/routes/board.d.ts +8 -11
  23. package/dist/mixins/app/routes/email-verify.d.ts +8 -11
  24. package/dist/mixins/app/routes/oauth.d.ts +8 -11
  25. package/dist/mixins/app/routes/password-reset.d.ts +8 -11
  26. package/dist/mixins/app/routes/two-factor.d.ts +8 -11
  27. package/dist/mixins/server/admin.d.ts +8 -11
  28. package/dist/mixins/server/auth.d.ts +10 -16
  29. package/dist/mixins/server/auth.js +1 -1
  30. package/dist/mixins/server/auth.js.map +2 -2
  31. package/dist/mixins/server/entity.d.ts +8 -11
  32. package/dist/mixins/server/file.d.ts +8 -11
  33. package/dist/mixins/server/push.d.ts +8 -11
  34. package/dist/mixins/server/smtp.d.ts +8 -11
  35. package/dist/mixins/server/transaction.d.ts +8 -11
  36. package/dist/mixins/server/utils.d.ts +8 -11
  37. package/dist/react.js +1 -1
  38. package/dist/react.js.map +3 -3
  39. package/dist/types.d.ts +24 -10
  40. package/package.json +1 -1
@@ -14,38 +14,35 @@ export declare function OAuthMixin<TBase extends GConstructor<EntityServerClient
14
14
  hmacSecret: string;
15
15
  encryptRequests: boolean;
16
16
  csrfEnabled: boolean;
17
- csrfToken: string;
18
17
  csrfHeaderName: string;
19
- csrfRefreshPath: string;
20
- csrfRefreshBuffer: number;
18
+ csrfCookieName: string;
19
+ _csrfRefresher: (() => Promise<void>) | null;
21
20
  activeTxId: string | null;
22
21
  keepSession: boolean;
23
22
  refreshBuffer: number;
24
23
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
25
24
  onSessionExpired?: (error: Error) => void;
25
+ onHealthChange?: (online: boolean) => void;
26
26
  _sessionRefreshToken: string | null;
27
27
  _refreshTimer: ReturnType<typeof setTimeout> | null;
28
- _csrfRefreshTimer: ReturnType<typeof setTimeout> | null;
29
- _csrfRefreshPromise: Promise<string> | null;
28
+ _healthTickTimer: ReturnType<typeof setInterval> | null;
29
+ _healthTickPromise: Promise<unknown> | null;
30
30
  configure(options: Partial<import("../../../types.js").EntityServerClientOptions>): void;
31
31
  setToken(token: string): void;
32
32
  setAnonymousPacketToken(token: string): void;
33
33
  setApiKey(apiKey: string): void;
34
34
  setHmacSecret(secret: string): void;
35
35
  setEncryptRequests(value: boolean): void;
36
- setCsrfToken(token: string): void;
37
36
  setCsrfEnabled(enabled: boolean): void;
37
+ startHealthTick(intervalMs?: number): void;
38
+ stopHealthTick(): void;
38
39
  _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
39
40
  access_token: string;
40
41
  expires_in: number;
41
42
  }>): void;
42
43
  _clearRefreshTimer(): void;
43
44
  stopKeepSession(): void;
44
- _clearCsrfRefreshTimer(): void;
45
- stopCsrfRefresh(): void;
46
- _scheduleCsrfRefresh(expiresIn: number): void;
47
- refreshCsrfToken(): Promise<string>;
48
- _applyCsrfHealth(csrf?: import("../../../types.js").EntityServerClientHealthCsrf | null): void;
45
+ _applyCsrfHealth(): void;
49
46
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
50
47
  get _reqOpts(): import("../../../client/request.js").RequestOptions;
51
48
  get http(): {
@@ -13,38 +13,35 @@ export declare function PasswordResetMixin<TBase extends GConstructor<EntityServ
13
13
  hmacSecret: string;
14
14
  encryptRequests: boolean;
15
15
  csrfEnabled: boolean;
16
- csrfToken: string;
17
16
  csrfHeaderName: string;
18
- csrfRefreshPath: string;
19
- csrfRefreshBuffer: number;
17
+ csrfCookieName: string;
18
+ _csrfRefresher: (() => Promise<void>) | null;
20
19
  activeTxId: string | null;
21
20
  keepSession: boolean;
22
21
  refreshBuffer: number;
23
22
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
24
23
  onSessionExpired?: (error: Error) => void;
24
+ onHealthChange?: (online: boolean) => void;
25
25
  _sessionRefreshToken: string | null;
26
26
  _refreshTimer: ReturnType<typeof setTimeout> | null;
27
- _csrfRefreshTimer: ReturnType<typeof setTimeout> | null;
28
- _csrfRefreshPromise: Promise<string> | null;
27
+ _healthTickTimer: ReturnType<typeof setInterval> | null;
28
+ _healthTickPromise: Promise<unknown> | null;
29
29
  configure(options: Partial<import("../../../types.js").EntityServerClientOptions>): void;
30
30
  setToken(token: string): void;
31
31
  setAnonymousPacketToken(token: string): void;
32
32
  setApiKey(apiKey: string): void;
33
33
  setHmacSecret(secret: string): void;
34
34
  setEncryptRequests(value: boolean): void;
35
- setCsrfToken(token: string): void;
36
35
  setCsrfEnabled(enabled: boolean): void;
36
+ startHealthTick(intervalMs?: number): void;
37
+ stopHealthTick(): void;
37
38
  _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
38
39
  access_token: string;
39
40
  expires_in: number;
40
41
  }>): void;
41
42
  _clearRefreshTimer(): void;
42
43
  stopKeepSession(): void;
43
- _clearCsrfRefreshTimer(): void;
44
- stopCsrfRefresh(): void;
45
- _scheduleCsrfRefresh(expiresIn: number): void;
46
- refreshCsrfToken(): Promise<string>;
47
- _applyCsrfHealth(csrf?: import("../../../types.js").EntityServerClientHealthCsrf | null): void;
44
+ _applyCsrfHealth(): void;
48
45
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
49
46
  get _reqOpts(): import("../../../client/request.js").RequestOptions;
50
47
  get http(): {
@@ -15,38 +15,35 @@ export declare function TwoFactorMixin<TBase extends GConstructor<EntityServerCl
15
15
  hmacSecret: string;
16
16
  encryptRequests: boolean;
17
17
  csrfEnabled: boolean;
18
- csrfToken: string;
19
18
  csrfHeaderName: string;
20
- csrfRefreshPath: string;
21
- csrfRefreshBuffer: number;
19
+ csrfCookieName: string;
20
+ _csrfRefresher: (() => Promise<void>) | null;
22
21
  activeTxId: string | null;
23
22
  keepSession: boolean;
24
23
  refreshBuffer: number;
25
24
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
26
25
  onSessionExpired?: (error: Error) => void;
26
+ onHealthChange?: (online: boolean) => void;
27
27
  _sessionRefreshToken: string | null;
28
28
  _refreshTimer: ReturnType<typeof setTimeout> | null;
29
- _csrfRefreshTimer: ReturnType<typeof setTimeout> | null;
30
- _csrfRefreshPromise: Promise<string> | null;
29
+ _healthTickTimer: ReturnType<typeof setInterval> | null;
30
+ _healthTickPromise: Promise<unknown> | null;
31
31
  configure(options: Partial<import("../../../types.js").EntityServerClientOptions>): void;
32
32
  setToken(token: string): void;
33
33
  setAnonymousPacketToken(token: string): void;
34
34
  setApiKey(apiKey: string): void;
35
35
  setHmacSecret(secret: string): void;
36
36
  setEncryptRequests(value: boolean): void;
37
- setCsrfToken(token: string): void;
38
37
  setCsrfEnabled(enabled: boolean): void;
38
+ startHealthTick(intervalMs?: number): void;
39
+ stopHealthTick(): void;
39
40
  _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
40
41
  access_token: string;
41
42
  expires_in: number;
42
43
  }>): void;
43
44
  _clearRefreshTimer(): void;
44
45
  stopKeepSession(): void;
45
- _clearCsrfRefreshTimer(): void;
46
- stopCsrfRefresh(): void;
47
- _scheduleCsrfRefresh(expiresIn: number): void;
48
- refreshCsrfToken(): Promise<string>;
49
- _applyCsrfHealth(csrf?: import("../../../types.js").EntityServerClientHealthCsrf | null): void;
46
+ _applyCsrfHealth(): void;
50
47
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
51
48
  get _reqOpts(): import("../../../client/request.js").RequestOptions;
52
49
  get http(): {
@@ -59,38 +59,35 @@ export declare function AdminMixin<TBase extends GConstructor<EntityServerClient
59
59
  hmacSecret: string;
60
60
  encryptRequests: boolean;
61
61
  csrfEnabled: boolean;
62
- csrfToken: string;
63
62
  csrfHeaderName: string;
64
- csrfRefreshPath: string;
65
- csrfRefreshBuffer: number;
63
+ csrfCookieName: string;
64
+ _csrfRefresher: (() => Promise<void>) | null;
66
65
  activeTxId: string | null;
67
66
  keepSession: boolean;
68
67
  refreshBuffer: number;
69
68
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
70
69
  onSessionExpired?: (error: Error) => void;
70
+ onHealthChange?: (online: boolean) => void;
71
71
  _sessionRefreshToken: string | null;
72
72
  _refreshTimer: ReturnType<typeof setTimeout> | null;
73
- _csrfRefreshTimer: ReturnType<typeof setTimeout> | null;
74
- _csrfRefreshPromise: Promise<string> | null;
73
+ _healthTickTimer: ReturnType<typeof setInterval> | null;
74
+ _healthTickPromise: Promise<unknown> | null;
75
75
  configure(options: Partial<import("../../types.js").EntityServerClientOptions>): void;
76
76
  setToken(token: string): void;
77
77
  setAnonymousPacketToken(token: string): void;
78
78
  setApiKey(apiKey: string): void;
79
79
  setHmacSecret(secret: string): void;
80
80
  setEncryptRequests(value: boolean): void;
81
- setCsrfToken(token: string): void;
82
81
  setCsrfEnabled(enabled: boolean): void;
82
+ startHealthTick(intervalMs?: number): void;
83
+ stopHealthTick(): void;
83
84
  _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
84
85
  access_token: string;
85
86
  expires_in: number;
86
87
  }>): void;
87
88
  _clearRefreshTimer(): void;
88
89
  stopKeepSession(): void;
89
- _clearCsrfRefreshTimer(): void;
90
- stopCsrfRefresh(): void;
91
- _scheduleCsrfRefresh(expiresIn: number): void;
92
- refreshCsrfToken(): Promise<string>;
93
- _applyCsrfHealth(csrf?: import("../../types.js").EntityServerClientHealthCsrf | null): void;
90
+ _applyCsrfHealth(): void;
94
91
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
95
92
  get _reqOpts(): import("../../client/request.js").RequestOptions;
96
93
  get http(): {
@@ -1,6 +1,7 @@
1
1
  import type { GConstructor, EntityServerClientBase } from "../../client/base.js";
2
2
  export declare function AuthMixin<TBase extends GConstructor<EntityServerClientBase>>(Base: TBase): {
3
3
  new (...args: any[]): {
4
+ _csrfRefresher: () => Promise<void>;
4
5
  /**
5
6
  * 서버 헬스 체크를 수행하고 패킷 암호화 활성 여부를 자동으로 감지합니다.
6
7
  *
@@ -12,11 +13,8 @@ export declare function AuthMixin<TBase extends GConstructor<EntityServerClientB
12
13
  * ```
13
14
  */
14
15
  checkHealth(): Promise<{
15
- ok: boolean;
16
- packet_encryption?: boolean;
17
- packet_mode?: string;
16
+ status: string;
18
17
  packet_token?: string;
19
- csrf?: import("../../types").EntityServerClientHealthCsrf;
20
18
  }>;
21
19
  /** 로그인 후 `access_token`을 내부 상태에 저장합니다. */
22
20
  login(email: string, password: string): Promise<{
@@ -55,38 +53,34 @@ export declare function AuthMixin<TBase extends GConstructor<EntityServerClientB
55
53
  hmacSecret: string;
56
54
  encryptRequests: boolean;
57
55
  csrfEnabled: boolean;
58
- csrfToken: string;
59
56
  csrfHeaderName: string;
60
- csrfRefreshPath: string;
61
- csrfRefreshBuffer: number;
57
+ csrfCookieName: string;
62
58
  activeTxId: string | null;
63
59
  keepSession: boolean;
64
60
  refreshBuffer: number;
65
61
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
66
62
  onSessionExpired?: (error: Error) => void;
63
+ onHealthChange?: (online: boolean) => void;
67
64
  _sessionRefreshToken: string | null;
68
65
  _refreshTimer: ReturnType<typeof setTimeout> | null;
69
- _csrfRefreshTimer: ReturnType<typeof setTimeout> | null;
70
- _csrfRefreshPromise: Promise<string> | null;
71
- configure(options: Partial<import("../../types").EntityServerClientOptions>): void;
66
+ _healthTickTimer: ReturnType<typeof setInterval> | null;
67
+ _healthTickPromise: Promise<unknown> | null;
68
+ configure(options: Partial<import("../../types.js").EntityServerClientOptions>): void;
72
69
  setToken(token: string): void;
73
70
  setAnonymousPacketToken(token: string): void;
74
71
  setApiKey(apiKey: string): void;
75
72
  setHmacSecret(secret: string): void;
76
73
  setEncryptRequests(value: boolean): void;
77
- setCsrfToken(token: string): void;
78
74
  setCsrfEnabled(enabled: boolean): void;
75
+ startHealthTick(intervalMs?: number): void;
76
+ stopHealthTick(): void;
79
77
  _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
80
78
  access_token: string;
81
79
  expires_in: number;
82
80
  }>): void;
83
81
  _clearRefreshTimer(): void;
84
82
  stopKeepSession(): void;
85
- _clearCsrfRefreshTimer(): void;
86
- stopCsrfRefresh(): void;
87
- _scheduleCsrfRefresh(expiresIn: number): void;
88
- refreshCsrfToken(): Promise<string>;
89
- _applyCsrfHealth(csrf?: import("../../types").EntityServerClientHealthCsrf | null): void;
83
+ _applyCsrfHealth(): void;
90
84
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
91
85
  get _reqOpts(): import("../../client/request.js").RequestOptions;
92
86
  get http(): {
@@ -1,2 +1,2 @@
1
- function i(n){return class extends n{async checkHealth(){const e=await(await fetch(`${this.baseUrl}/v1/health`,{signal:AbortSignal.timeout(3e3),credentials:"include"})).json();return e.packet_encryption&&(this.encryptRequests=!0),typeof e.packet_token=="string"&&(this.anonymousPacketToken=e.packet_token),this._applyCsrfHealth(e.csrf),e}async login(t,e){const s=await this._request("POST","/v1/auth/login",{email:t,passwd:e},!1);return this.token=s.data.access_token,this.keepSession&&this._scheduleKeepSession(s.data.refresh_token,s.data.expires_in,r=>this.refreshToken(r)),s.data}async refreshToken(t){const e=await this._request("POST","/v1/auth/refresh",{refresh_token:t},!1);return this.token=e.data.access_token,this.keepSession&&this._scheduleKeepSession(t,e.data.expires_in,s=>this.refreshToken(s)),e.data}async logout(t){this.stopKeepSession();const e=await this._request("POST","/v1/auth/logout",{refresh_token:t},!1);return this.token="",e}me(){return this._request("GET","/v1/auth/me")}withdraw(t){return this._request("POST","/v1/auth/withdraw",t?{passwd:t}:{})}}}export{i as AuthMixin};
1
+ function o(n){return class extends n{_csrfRefresher=()=>this.checkHealth().then(()=>{});async checkHealth(){const e=await(await fetch(`${this.baseUrl}/v1/health`,{signal:AbortSignal.timeout(3e3),credentials:"include"})).json();return typeof e.packet_token=="string"&&(this.anonymousPacketToken=e.packet_token),this._applyCsrfHealth(),e}async login(s,e){const t=await this._request("POST","/v1/auth/login",{email:s,passwd:e},!1);return this.token=t.data.access_token,this.keepSession&&this._scheduleKeepSession(t.data.refresh_token,t.data.expires_in,r=>this.refreshToken(r)),t.data}async refreshToken(s){const e=await this._request("POST","/v1/auth/refresh",{refresh_token:s},!1);return this.token=e.data.access_token,this.keepSession&&this._scheduleKeepSession(s,e.data.expires_in,t=>this.refreshToken(t)),e.data}async logout(s){this.stopKeepSession();const e=await this._request("POST","/v1/auth/logout",{refresh_token:s},!1);return this.token="",e}me(){return this._request("GET","/v1/auth/me")}withdraw(s){return this._request("POST","/v1/auth/withdraw",s?{passwd:s}:{})}}}export{o as AuthMixin};
2
2
  //# sourceMappingURL=auth.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/mixins/server/auth.ts"],
4
- "sourcesContent": ["import type {\n GConstructor,\n EntityServerClientBase,\n} from \"../../client/base.js\";\n\nexport function AuthMixin<TBase extends GConstructor<EntityServerClientBase>>(\n Base: TBase,\n) {\n return class AuthMixinClass extends Base {\n // \u2500\u2500\u2500 \uC778\uC99D \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n /**\n * \uC11C\uBC84 \uD5EC\uC2A4 \uCCB4\uD06C\uB97C \uC218\uD589\uD558\uACE0 \uD328\uD0B7 \uC554\uD638\uD654 \uD65C\uC131 \uC5EC\uBD80\uB97C \uC790\uB3D9\uC73C\uB85C \uAC10\uC9C0\uD569\uB2C8\uB2E4.\n *\n * \uC11C\uBC84\uAC00 `packet_encryption: true`\uB97C \uC751\uB2F5\uD558\uBA74 \uC774\uD6C4 \uBAA8\uB4E0 \uC694\uCCAD\uC5D0 \uC554\uD638\uD654\uAC00 \uC790\uB3D9 \uC801\uC6A9\uB429\uB2C8\uB2E4.\n *\n * ```ts\n * await client.checkHealth();\n * await client.login(email, password);\n * ```\n */\n async checkHealth(): Promise<{\n ok: boolean;\n packet_encryption?: boolean;\n packet_mode?: string;\n packet_token?: string;\n csrf?: import(\"../../types\").EntityServerClientHealthCsrf;\n }> {\n const res = await fetch(`${this.baseUrl}/v1/health`, {\n signal: AbortSignal.timeout(3000),\n credentials: \"include\",\n });\n const data = (await res.json()) as {\n ok: boolean;\n packet_encryption?: boolean;\n packet_mode?: string;\n packet_token?: string;\n csrf?: import(\"../../types\").EntityServerClientHealthCsrf;\n };\n if (data.packet_encryption) this.encryptRequests = true;\n if (typeof data.packet_token === \"string\") {\n this.anonymousPacketToken = data.packet_token;\n }\n this._applyCsrfHealth(data.csrf);\n return data;\n }\n\n /** \uB85C\uADF8\uC778 \uD6C4 `access_token`\uC744 \uB0B4\uBD80 \uC0C1\uD0DC\uC5D0 \uC800\uC7A5\uD569\uB2C8\uB2E4. */\n async login(\n email: string,\n password: string,\n ): Promise<{\n access_token: string;\n refresh_token: string;\n expires_in: number;\n force_password_change?: boolean;\n password_expired?: boolean;\n password_expires_in_days?: number;\n }> {\n const data = await this._request<{\n data: {\n access_token: string;\n refresh_token: string;\n expires_in: number;\n force_password_change?: boolean;\n password_expired?: boolean;\n password_expires_in_days?: number;\n };\n }>(\"POST\", \"/v1/auth/login\", { email, passwd: password }, false);\n this.token = data.data.access_token;\n if (this.keepSession)\n this._scheduleKeepSession(\n data.data.refresh_token,\n data.data.expires_in,\n (rt) => this.refreshToken(rt),\n );\n return data.data;\n }\n\n /** Refresh Token\uC73C\uB85C Access Token\uC744 \uC7AC\uBC1C\uAE09\uBC1B\uC544 \uB0B4\uBD80 \uD1A0\uD070\uC744 \uAD50\uCCB4\uD569\uB2C8\uB2E4. */\n async refreshToken(\n refreshToken: string,\n ): Promise<{ access_token: string; expires_in: number }> {\n const data = await this._request<{\n data: { access_token: string; expires_in: number };\n }>(\n \"POST\",\n \"/v1/auth/refresh\",\n { refresh_token: refreshToken },\n false,\n );\n this.token = data.data.access_token;\n if (this.keepSession)\n this._scheduleKeepSession(\n refreshToken,\n data.data.expires_in,\n (rt) => this.refreshToken(rt),\n );\n return data.data;\n }\n\n /**\n * \uC11C\uBC84\uC5D0 \uB85C\uADF8\uC544\uC6C3\uC744 \uC694\uCCAD\uD558\uACE0 \uB0B4\uBD80 \uD1A0\uD070\uC744 \uCD08\uAE30\uD654\uD569\uB2C8\uB2E4.\n * refresh_token\uC744 \uC11C\uBC84\uC5D0 \uC804\uB2EC\uD574 \uBB34\uD6A8\uD654\uD569\uB2C8\uB2E4.\n */\n async logout(refreshToken: string): Promise<{ ok: boolean }> {\n this.stopKeepSession();\n const data = await this._request<{ ok: boolean }>(\n \"POST\",\n \"/v1/auth/logout\",\n { refresh_token: refreshToken },\n false,\n );\n this.token = \"\";\n return data;\n }\n\n /** \uD604\uC7AC \uB85C\uADF8\uC778\uB41C \uC0AC\uC6A9\uC790 \uC815\uBCF4\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4. */\n me<T = Record<string, unknown>>(): Promise<{ ok: boolean; data: T }> {\n return this._request(\"GET\", \"/v1/auth/me\");\n }\n\n /** \uD68C\uC6D0 \uD0C8\uD1F4\uB97C \uC694\uCCAD\uD569\uB2C8\uB2E4. */\n withdraw(passwd?: string): Promise<{ ok: boolean }> {\n return this._request(\n \"POST\",\n \"/v1/auth/withdraw\",\n passwd ? { passwd } : {},\n );\n }\n };\n}\n"],
5
- "mappings": "AAKO,SAASA,EACZC,EACF,CACE,OAAO,cAA6BA,CAAK,CAarC,MAAM,aAMH,CAKC,MAAMC,EAAQ,MAJF,MAAM,MAAM,GAAG,KAAK,OAAO,aAAc,CACjD,OAAQ,YAAY,QAAQ,GAAI,EAChC,YAAa,SACjB,CAAC,GACuB,KAAK,EAO7B,OAAIA,EAAK,oBAAmB,KAAK,gBAAkB,IAC/C,OAAOA,EAAK,cAAiB,WAC7B,KAAK,qBAAuBA,EAAK,cAErC,KAAK,iBAAiBA,EAAK,IAAI,EACxBA,CACX,CAGA,MAAM,MACFC,EACAC,EAQD,CACC,MAAMF,EAAO,MAAM,KAAK,SASrB,OAAQ,iBAAkB,CAAE,MAAAC,EAAO,OAAQC,CAAS,EAAG,EAAK,EAC/D,YAAK,MAAQF,EAAK,KAAK,aACnB,KAAK,aACL,KAAK,qBACDA,EAAK,KAAK,cACVA,EAAK,KAAK,WACTG,GAAO,KAAK,aAAaA,CAAE,CAChC,EACGH,EAAK,IAChB,CAGA,MAAM,aACFI,EACqD,CACrD,MAAMJ,EAAO,MAAM,KAAK,SAGpB,OACA,mBACA,CAAE,cAAeI,CAAa,EAC9B,EACJ,EACA,YAAK,MAAQJ,EAAK,KAAK,aACnB,KAAK,aACL,KAAK,qBACDI,EACAJ,EAAK,KAAK,WACTG,GAAO,KAAK,aAAaA,CAAE,CAChC,EACGH,EAAK,IAChB,CAMA,MAAM,OAAOI,EAAgD,CACzD,KAAK,gBAAgB,EACrB,MAAMJ,EAAO,MAAM,KAAK,SACpB,OACA,kBACA,CAAE,cAAeI,CAAa,EAC9B,EACJ,EACA,YAAK,MAAQ,GACNJ,CACX,CAGA,IAAqE,CACjE,OAAO,KAAK,SAAS,MAAO,aAAa,CAC7C,CAGA,SAASK,EAA2C,CAChD,OAAO,KAAK,SACR,OACA,oBACAA,EAAS,CAAE,OAAAA,CAAO,EAAI,CAAC,CAC3B,CACJ,CACJ,CACJ",
4
+ "sourcesContent": ["import type {\n GConstructor,\n EntityServerClientBase,\n} from \"../../client/base.js\";\n\nexport function AuthMixin<TBase extends GConstructor<EntityServerClientBase>>(\n Base: TBase,\n) {\n return class AuthMixinClass extends Base {\n // AuthMixin \uCD08\uAE30\uD654: CSRF \uCFE0\uD0A4 \uAC31\uC2E0\uC744 \uC704\uD574 checkHealth\uB97C _csrfRefresher\uB85C \uB4F1\uB85D\n _csrfRefresher = (): Promise<void> => this.checkHealth().then(() => {});\n\n // \u2500\u2500\u2500 \uC778\uC99D \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n /**\n * \uC11C\uBC84 \uD5EC\uC2A4 \uCCB4\uD06C\uB97C \uC218\uD589\uD558\uACE0 \uD328\uD0B7 \uC554\uD638\uD654 \uD65C\uC131 \uC5EC\uBD80\uB97C \uC790\uB3D9\uC73C\uB85C \uAC10\uC9C0\uD569\uB2C8\uB2E4.\n *\n * \uC11C\uBC84\uAC00 `packet_encryption: true`\uB97C \uC751\uB2F5\uD558\uBA74 \uC774\uD6C4 \uBAA8\uB4E0 \uC694\uCCAD\uC5D0 \uC554\uD638\uD654\uAC00 \uC790\uB3D9 \uC801\uC6A9\uB429\uB2C8\uB2E4.\n *\n * ```ts\n * await client.checkHealth();\n * await client.login(email, password);\n * ```\n */\n async checkHealth(): Promise<{\n status: string;\n packet_token?: string;\n }> {\n const res = await fetch(`${this.baseUrl}/v1/health`, {\n signal: AbortSignal.timeout(3000),\n credentials: \"include\",\n });\n const data = (await res.json()) as {\n status: string;\n packet_token?: string;\n };\n if (typeof data.packet_token === \"string\") {\n this.anonymousPacketToken = data.packet_token;\n }\n this._applyCsrfHealth();\n return data;\n }\n\n /** \uB85C\uADF8\uC778 \uD6C4 `access_token`\uC744 \uB0B4\uBD80 \uC0C1\uD0DC\uC5D0 \uC800\uC7A5\uD569\uB2C8\uB2E4. */\n async login(\n email: string,\n password: string,\n ): Promise<{\n access_token: string;\n refresh_token: string;\n expires_in: number;\n force_password_change?: boolean;\n password_expired?: boolean;\n password_expires_in_days?: number;\n }> {\n const data = await this._request<{\n data: {\n access_token: string;\n refresh_token: string;\n expires_in: number;\n force_password_change?: boolean;\n password_expired?: boolean;\n password_expires_in_days?: number;\n };\n }>(\"POST\", \"/v1/auth/login\", { email, passwd: password }, false);\n this.token = data.data.access_token;\n if (this.keepSession)\n this._scheduleKeepSession(\n data.data.refresh_token,\n data.data.expires_in,\n (rt) => this.refreshToken(rt),\n );\n return data.data;\n }\n\n /** Refresh Token\uC73C\uB85C Access Token\uC744 \uC7AC\uBC1C\uAE09\uBC1B\uC544 \uB0B4\uBD80 \uD1A0\uD070\uC744 \uAD50\uCCB4\uD569\uB2C8\uB2E4. */\n async refreshToken(\n refreshToken: string,\n ): Promise<{ access_token: string; expires_in: number }> {\n const data = await this._request<{\n data: { access_token: string; expires_in: number };\n }>(\n \"POST\",\n \"/v1/auth/refresh\",\n { refresh_token: refreshToken },\n false,\n );\n this.token = data.data.access_token;\n if (this.keepSession)\n this._scheduleKeepSession(\n refreshToken,\n data.data.expires_in,\n (rt) => this.refreshToken(rt),\n );\n return data.data;\n }\n\n /**\n * \uC11C\uBC84\uC5D0 \uB85C\uADF8\uC544\uC6C3\uC744 \uC694\uCCAD\uD558\uACE0 \uB0B4\uBD80 \uD1A0\uD070\uC744 \uCD08\uAE30\uD654\uD569\uB2C8\uB2E4.\n * refresh_token\uC744 \uC11C\uBC84\uC5D0 \uC804\uB2EC\uD574 \uBB34\uD6A8\uD654\uD569\uB2C8\uB2E4.\n */\n async logout(refreshToken: string): Promise<{ ok: boolean }> {\n this.stopKeepSession();\n const data = await this._request<{ ok: boolean }>(\n \"POST\",\n \"/v1/auth/logout\",\n { refresh_token: refreshToken },\n false,\n );\n this.token = \"\";\n return data;\n }\n\n /** \uD604\uC7AC \uB85C\uADF8\uC778\uB41C \uC0AC\uC6A9\uC790 \uC815\uBCF4\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4. */\n me<T = Record<string, unknown>>(): Promise<{ ok: boolean; data: T }> {\n return this._request(\"GET\", \"/v1/auth/me\");\n }\n\n /** \uD68C\uC6D0 \uD0C8\uD1F4\uB97C \uC694\uCCAD\uD569\uB2C8\uB2E4. */\n withdraw(passwd?: string): Promise<{ ok: boolean }> {\n return this._request(\n \"POST\",\n \"/v1/auth/withdraw\",\n passwd ? { passwd } : {},\n );\n }\n };\n}\n"],
5
+ "mappings": "AAKO,SAASA,EACZC,EACF,CACE,OAAO,cAA6BA,CAAK,CAErC,eAAiB,IAAqB,KAAK,YAAY,EAAE,KAAK,IAAM,CAAC,CAAC,EActE,MAAM,aAGH,CAKC,MAAMC,EAAQ,MAJF,MAAM,MAAM,GAAG,KAAK,OAAO,aAAc,CACjD,OAAQ,YAAY,QAAQ,GAAI,EAChC,YAAa,SACjB,CAAC,GACuB,KAAK,EAI7B,OAAI,OAAOA,EAAK,cAAiB,WAC7B,KAAK,qBAAuBA,EAAK,cAErC,KAAK,iBAAiB,EACfA,CACX,CAGA,MAAM,MACFC,EACAC,EAQD,CACC,MAAMF,EAAO,MAAM,KAAK,SASrB,OAAQ,iBAAkB,CAAE,MAAAC,EAAO,OAAQC,CAAS,EAAG,EAAK,EAC/D,YAAK,MAAQF,EAAK,KAAK,aACnB,KAAK,aACL,KAAK,qBACDA,EAAK,KAAK,cACVA,EAAK,KAAK,WACTG,GAAO,KAAK,aAAaA,CAAE,CAChC,EACGH,EAAK,IAChB,CAGA,MAAM,aACFI,EACqD,CACrD,MAAMJ,EAAO,MAAM,KAAK,SAGpB,OACA,mBACA,CAAE,cAAeI,CAAa,EAC9B,EACJ,EACA,YAAK,MAAQJ,EAAK,KAAK,aACnB,KAAK,aACL,KAAK,qBACDI,EACAJ,EAAK,KAAK,WACTG,GAAO,KAAK,aAAaA,CAAE,CAChC,EACGH,EAAK,IAChB,CAMA,MAAM,OAAOI,EAAgD,CACzD,KAAK,gBAAgB,EACrB,MAAMJ,EAAO,MAAM,KAAK,SACpB,OACA,kBACA,CAAE,cAAeI,CAAa,EAC9B,EACJ,EACA,YAAK,MAAQ,GACNJ,CACX,CAGA,IAAqE,CACjE,OAAO,KAAK,SAAS,MAAO,aAAa,CAC7C,CAGA,SAASK,EAA2C,CAChD,OAAO,KAAK,SACR,OACA,oBACAA,EAAS,CAAE,OAAAA,CAAO,EAAI,CAAC,CAC3B,CACJ,CACJ,CACJ",
6
6
  "names": ["AuthMixin", "Base", "data", "email", "password", "rt", "refreshToken", "passwd"]
7
7
  }
@@ -101,38 +101,35 @@ export declare function EntityMixin<TBase extends GConstructor<EntityServerClien
101
101
  hmacSecret: string;
102
102
  encryptRequests: boolean;
103
103
  csrfEnabled: boolean;
104
- csrfToken: string;
105
104
  csrfHeaderName: string;
106
- csrfRefreshPath: string;
107
- csrfRefreshBuffer: number;
105
+ csrfCookieName: string;
106
+ _csrfRefresher: (() => Promise<void>) | null;
108
107
  activeTxId: string | null;
109
108
  keepSession: boolean;
110
109
  refreshBuffer: number;
111
110
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
112
111
  onSessionExpired?: (error: Error) => void;
112
+ onHealthChange?: (online: boolean) => void;
113
113
  _sessionRefreshToken: string | null;
114
114
  _refreshTimer: ReturnType<typeof setTimeout> | null;
115
- _csrfRefreshTimer: ReturnType<typeof setTimeout> | null;
116
- _csrfRefreshPromise: Promise<string> | null;
115
+ _healthTickTimer: ReturnType<typeof setInterval> | null;
116
+ _healthTickPromise: Promise<unknown> | null;
117
117
  configure(options: Partial<import("../../types.js").EntityServerClientOptions>): void;
118
118
  setToken(token: string): void;
119
119
  setAnonymousPacketToken(token: string): void;
120
120
  setApiKey(apiKey: string): void;
121
121
  setHmacSecret(secret: string): void;
122
122
  setEncryptRequests(value: boolean): void;
123
- setCsrfToken(token: string): void;
124
123
  setCsrfEnabled(enabled: boolean): void;
124
+ startHealthTick(intervalMs?: number): void;
125
+ stopHealthTick(): void;
125
126
  _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
126
127
  access_token: string;
127
128
  expires_in: number;
128
129
  }>): void;
129
130
  _clearRefreshTimer(): void;
130
131
  stopKeepSession(): void;
131
- _clearCsrfRefreshTimer(): void;
132
- stopCsrfRefresh(): void;
133
- _scheduleCsrfRefresh(expiresIn: number): void;
134
- refreshCsrfToken(): Promise<string>;
135
- _applyCsrfHealth(csrf?: import("../../types.js").EntityServerClientHealthCsrf | null): void;
132
+ _applyCsrfHealth(): void;
136
133
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
137
134
  get _reqOpts(): import("../../client/request.js").RequestOptions;
138
135
  get http(): {
@@ -57,38 +57,35 @@ export declare function FileMixin<TBase extends GConstructor<EntityServerClientB
57
57
  hmacSecret: string;
58
58
  encryptRequests: boolean;
59
59
  csrfEnabled: boolean;
60
- csrfToken: string;
61
60
  csrfHeaderName: string;
62
- csrfRefreshPath: string;
63
- csrfRefreshBuffer: number;
61
+ csrfCookieName: string;
62
+ _csrfRefresher: (() => Promise<void>) | null;
64
63
  activeTxId: string | null;
65
64
  keepSession: boolean;
66
65
  refreshBuffer: number;
67
66
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
68
67
  onSessionExpired?: (error: Error) => void;
68
+ onHealthChange?: (online: boolean) => void;
69
69
  _sessionRefreshToken: string | null;
70
70
  _refreshTimer: ReturnType<typeof setTimeout> | null;
71
- _csrfRefreshTimer: ReturnType<typeof setTimeout> | null;
72
- _csrfRefreshPromise: Promise<string> | null;
71
+ _healthTickTimer: ReturnType<typeof setInterval> | null;
72
+ _healthTickPromise: Promise<unknown> | null;
73
73
  configure(options: Partial<import("../../types.js").EntityServerClientOptions>): void;
74
74
  setToken(token: string): void;
75
75
  setAnonymousPacketToken(token: string): void;
76
76
  setApiKey(apiKey: string): void;
77
77
  setHmacSecret(secret: string): void;
78
78
  setEncryptRequests(value: boolean): void;
79
- setCsrfToken(token: string): void;
80
79
  setCsrfEnabled(enabled: boolean): void;
80
+ startHealthTick(intervalMs?: number): void;
81
+ stopHealthTick(): void;
81
82
  _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
82
83
  access_token: string;
83
84
  expires_in: number;
84
85
  }>): void;
85
86
  _clearRefreshTimer(): void;
86
87
  stopKeepSession(): void;
87
- _clearCsrfRefreshTimer(): void;
88
- stopCsrfRefresh(): void;
89
- _scheduleCsrfRefresh(expiresIn: number): void;
90
- refreshCsrfToken(): Promise<string>;
91
- _applyCsrfHealth(csrf?: import("../../types.js").EntityServerClientHealthCsrf | null): void;
88
+ _applyCsrfHealth(): void;
92
89
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
93
90
  get _reqOpts(): import("../../client/request.js").RequestOptions;
94
91
  get http(): {
@@ -57,38 +57,35 @@ export declare function PushMixin<TBase extends GConstructor<WithSubmit>>(Base:
57
57
  hmacSecret: string;
58
58
  encryptRequests: boolean;
59
59
  csrfEnabled: boolean;
60
- csrfToken: string;
61
60
  csrfHeaderName: string;
62
- csrfRefreshPath: string;
63
- csrfRefreshBuffer: number;
61
+ csrfCookieName: string;
62
+ _csrfRefresher: (() => Promise<void>) | null;
64
63
  activeTxId: string | null;
65
64
  keepSession: boolean;
66
65
  refreshBuffer: number;
67
66
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
68
67
  onSessionExpired?: (error: Error) => void;
68
+ onHealthChange?: (online: boolean) => void;
69
69
  _sessionRefreshToken: string | null;
70
70
  _refreshTimer: ReturnType<typeof setTimeout> | null;
71
- _csrfRefreshTimer: ReturnType<typeof setTimeout> | null;
72
- _csrfRefreshPromise: Promise<string> | null;
71
+ _healthTickTimer: ReturnType<typeof setInterval> | null;
72
+ _healthTickPromise: Promise<unknown> | null;
73
73
  configure(options: Partial<import("../../types.js").EntityServerClientOptions>): void;
74
74
  setToken(token: string): void;
75
75
  setAnonymousPacketToken(token: string): void;
76
76
  setApiKey(apiKey: string): void;
77
77
  setHmacSecret(secret: string): void;
78
78
  setEncryptRequests(value: boolean): void;
79
- setCsrfToken(token: string): void;
80
79
  setCsrfEnabled(enabled: boolean): void;
80
+ startHealthTick(intervalMs?: number): void;
81
+ stopHealthTick(): void;
81
82
  _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
82
83
  access_token: string;
83
84
  expires_in: number;
84
85
  }>): void;
85
86
  _clearRefreshTimer(): void;
86
87
  stopKeepSession(): void;
87
- _clearCsrfRefreshTimer(): void;
88
- stopCsrfRefresh(): void;
89
- _scheduleCsrfRefresh(expiresIn: number): void;
90
- refreshCsrfToken(): Promise<string>;
91
- _applyCsrfHealth(csrf?: import("../../types.js").EntityServerClientHealthCsrf | null): void;
88
+ _applyCsrfHealth(): void;
92
89
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
93
90
  get _reqOpts(): import("../../client/request.js").RequestOptions;
94
91
  get http(): {
@@ -21,38 +21,35 @@ export declare function SmtpMixin<TBase extends GConstructor<EntityServerClientB
21
21
  hmacSecret: string;
22
22
  encryptRequests: boolean;
23
23
  csrfEnabled: boolean;
24
- csrfToken: string;
25
24
  csrfHeaderName: string;
26
- csrfRefreshPath: string;
27
- csrfRefreshBuffer: number;
25
+ csrfCookieName: string;
26
+ _csrfRefresher: (() => Promise<void>) | null;
28
27
  activeTxId: string | null;
29
28
  keepSession: boolean;
30
29
  refreshBuffer: number;
31
30
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
32
31
  onSessionExpired?: (error: Error) => void;
32
+ onHealthChange?: (online: boolean) => void;
33
33
  _sessionRefreshToken: string | null;
34
34
  _refreshTimer: ReturnType<typeof setTimeout> | null;
35
- _csrfRefreshTimer: ReturnType<typeof setTimeout> | null;
36
- _csrfRefreshPromise: Promise<string> | null;
35
+ _healthTickTimer: ReturnType<typeof setInterval> | null;
36
+ _healthTickPromise: Promise<unknown> | null;
37
37
  configure(options: Partial<import("../../types.js").EntityServerClientOptions>): void;
38
38
  setToken(token: string): void;
39
39
  setAnonymousPacketToken(token: string): void;
40
40
  setApiKey(apiKey: string): void;
41
41
  setHmacSecret(secret: string): void;
42
42
  setEncryptRequests(value: boolean): void;
43
- setCsrfToken(token: string): void;
44
43
  setCsrfEnabled(enabled: boolean): void;
44
+ startHealthTick(intervalMs?: number): void;
45
+ stopHealthTick(): void;
45
46
  _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
46
47
  access_token: string;
47
48
  expires_in: number;
48
49
  }>): void;
49
50
  _clearRefreshTimer(): void;
50
51
  stopKeepSession(): void;
51
- _clearCsrfRefreshTimer(): void;
52
- stopCsrfRefresh(): void;
53
- _scheduleCsrfRefresh(expiresIn: number): void;
54
- refreshCsrfToken(): Promise<string>;
55
- _applyCsrfHealth(csrf?: import("../../types.js").EntityServerClientHealthCsrf | null): void;
52
+ _applyCsrfHealth(): void;
56
53
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
57
54
  get _reqOpts(): import("../../client/request.js").RequestOptions;
58
55
  get http(): {
@@ -14,38 +14,35 @@ export declare function TransactionMixin<TBase extends GConstructor<EntityServer
14
14
  hmacSecret: string;
15
15
  encryptRequests: boolean;
16
16
  csrfEnabled: boolean;
17
- csrfToken: string;
18
17
  csrfHeaderName: string;
19
- csrfRefreshPath: string;
20
- csrfRefreshBuffer: number;
18
+ csrfCookieName: string;
19
+ _csrfRefresher: (() => Promise<void>) | null;
21
20
  activeTxId: string | null;
22
21
  keepSession: boolean;
23
22
  refreshBuffer: number;
24
23
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
25
24
  onSessionExpired?: (error: Error) => void;
25
+ onHealthChange?: (online: boolean) => void;
26
26
  _sessionRefreshToken: string | null;
27
27
  _refreshTimer: ReturnType<typeof setTimeout> | null;
28
- _csrfRefreshTimer: ReturnType<typeof setTimeout> | null;
29
- _csrfRefreshPromise: Promise<string> | null;
28
+ _healthTickTimer: ReturnType<typeof setInterval> | null;
29
+ _healthTickPromise: Promise<unknown> | null;
30
30
  configure(options: Partial<import("../../types.js").EntityServerClientOptions>): void;
31
31
  setToken(token: string): void;
32
32
  setAnonymousPacketToken(token: string): void;
33
33
  setApiKey(apiKey: string): void;
34
34
  setHmacSecret(secret: string): void;
35
35
  setEncryptRequests(value: boolean): void;
36
- setCsrfToken(token: string): void;
37
36
  setCsrfEnabled(enabled: boolean): void;
37
+ startHealthTick(intervalMs?: number): void;
38
+ stopHealthTick(): void;
38
39
  _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
39
40
  access_token: string;
40
41
  expires_in: number;
41
42
  }>): void;
42
43
  _clearRefreshTimer(): void;
43
44
  stopKeepSession(): void;
44
- _clearCsrfRefreshTimer(): void;
45
- stopCsrfRefresh(): void;
46
- _scheduleCsrfRefresh(expiresIn: number): void;
47
- refreshCsrfToken(): Promise<string>;
48
- _applyCsrfHealth(csrf?: import("../../types.js").EntityServerClientHealthCsrf | null): void;
45
+ _applyCsrfHealth(): void;
49
46
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
50
47
  get _reqOpts(): import("../../client/request.js").RequestOptions;
51
48
  get http(): {
@@ -70,38 +70,35 @@ export declare function UtilsMixin<TBase extends GConstructor<EntityServerClient
70
70
  hmacSecret: string;
71
71
  encryptRequests: boolean;
72
72
  csrfEnabled: boolean;
73
- csrfToken: string;
74
73
  csrfHeaderName: string;
75
- csrfRefreshPath: string;
76
- csrfRefreshBuffer: number;
74
+ csrfCookieName: string;
75
+ _csrfRefresher: (() => Promise<void>) | null;
77
76
  activeTxId: string | null;
78
77
  keepSession: boolean;
79
78
  refreshBuffer: number;
80
79
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
81
80
  onSessionExpired?: (error: Error) => void;
81
+ onHealthChange?: (online: boolean) => void;
82
82
  _sessionRefreshToken: string | null;
83
83
  _refreshTimer: ReturnType<typeof setTimeout> | null;
84
- _csrfRefreshTimer: ReturnType<typeof setTimeout> | null;
85
- _csrfRefreshPromise: Promise<string> | null;
84
+ _healthTickTimer: ReturnType<typeof setInterval> | null;
85
+ _healthTickPromise: Promise<unknown> | null;
86
86
  configure(options: Partial<import("../../types.js").EntityServerClientOptions>): void;
87
87
  setToken(token: string): void;
88
88
  setAnonymousPacketToken(token: string): void;
89
89
  setApiKey(apiKey: string): void;
90
90
  setHmacSecret(secret: string): void;
91
91
  setEncryptRequests(value: boolean): void;
92
- setCsrfToken(token: string): void;
93
92
  setCsrfEnabled(enabled: boolean): void;
93
+ startHealthTick(intervalMs?: number): void;
94
+ stopHealthTick(): void;
94
95
  _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
95
96
  access_token: string;
96
97
  expires_in: number;
97
98
  }>): void;
98
99
  _clearRefreshTimer(): void;
99
100
  stopKeepSession(): void;
100
- _clearCsrfRefreshTimer(): void;
101
- stopCsrfRefresh(): void;
102
- _scheduleCsrfRefresh(expiresIn: number): void;
103
- refreshCsrfToken(): Promise<string>;
104
- _applyCsrfHealth(csrf?: import("../../types.js").EntityServerClientHealthCsrf | null): void;
101
+ _applyCsrfHealth(): void;
105
102
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
106
103
  get _reqOpts(): import("../../client/request.js").RequestOptions;
107
104
  get http(): {