entity-client 1.0.15 → 1.0.17

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 (80) hide show
  1. package/README.md +362 -362
  2. package/dist/EntityAppServerApi.d.ts +384 -416
  3. package/dist/EntityAppServerApi.js.map +1 -1
  4. package/dist/EntityServerApi.d.ts +204 -216
  5. package/dist/EntityServerApi.js.map +1 -1
  6. package/dist/client/base.d.ts +27 -40
  7. package/dist/client/base.js +1 -1
  8. package/dist/client/base.js.map +3 -3
  9. package/dist/client/hmac.js.map +1 -1
  10. package/dist/client/packet.js.map +1 -1
  11. package/dist/client/request.js.map +1 -1
  12. package/dist/client/utils.js.map +1 -1
  13. package/dist/hooks/useEntityAppServer.js.map +1 -1
  14. package/dist/hooks/useEntityClient.js.map +1 -1
  15. package/dist/hooks/useEntityServer.js.map +1 -1
  16. package/dist/index.js +1 -1
  17. package/dist/index.js.map +3 -3
  18. package/dist/mixins/app/index.js.map +1 -1
  19. package/dist/mixins/app/plugins/alimtalk.d.ts +24 -26
  20. package/dist/mixins/app/plugins/alimtalk.js.map +1 -1
  21. package/dist/mixins/app/plugins/friendtalk.d.ts +24 -26
  22. package/dist/mixins/app/plugins/friendtalk.js.map +1 -1
  23. package/dist/mixins/app/plugins/holidays.d.ts +24 -26
  24. package/dist/mixins/app/plugins/holidays.js.map +1 -1
  25. package/dist/mixins/app/plugins/identity.d.ts +24 -26
  26. package/dist/mixins/app/plugins/identity.js.map +1 -1
  27. package/dist/mixins/app/plugins/index.js.map +1 -1
  28. package/dist/mixins/app/plugins/llm.d.ts +24 -26
  29. package/dist/mixins/app/plugins/llm.js.map +1 -1
  30. package/dist/mixins/app/plugins/ocr.d.ts +24 -26
  31. package/dist/mixins/app/plugins/ocr.js.map +1 -1
  32. package/dist/mixins/app/plugins/pg.d.ts +24 -26
  33. package/dist/mixins/app/plugins/pg.js.map +1 -1
  34. package/dist/mixins/app/plugins/push.d.ts +24 -26
  35. package/dist/mixins/app/plugins/push.js.map +1 -1
  36. package/dist/mixins/app/plugins/sms.d.ts +24 -26
  37. package/dist/mixins/app/plugins/sms.js.map +1 -1
  38. package/dist/mixins/app/plugins/taxinvoice.d.ts +24 -26
  39. package/dist/mixins/app/plugins/taxinvoice.js.map +1 -1
  40. package/dist/mixins/app/routes/account.d.ts +24 -26
  41. package/dist/mixins/app/routes/account.js.map +1 -1
  42. package/dist/mixins/app/routes/board.d.ts +24 -26
  43. package/dist/mixins/app/routes/board.js.map +2 -2
  44. package/dist/mixins/app/routes/email-verify.d.ts +24 -26
  45. package/dist/mixins/app/routes/email-verify.js.map +1 -1
  46. package/dist/mixins/app/routes/oauth.d.ts +24 -26
  47. package/dist/mixins/app/routes/oauth.js.map +1 -1
  48. package/dist/mixins/app/routes/password-reset.d.ts +24 -26
  49. package/dist/mixins/app/routes/password-reset.js.map +1 -1
  50. package/dist/mixins/app/routes/two-factor.d.ts +24 -26
  51. package/dist/mixins/app/routes/two-factor.js.map +1 -1
  52. package/dist/mixins/server/admin.d.ts +30 -32
  53. package/dist/mixins/server/admin.js +1 -1
  54. package/dist/mixins/server/admin.js.map +2 -2
  55. package/dist/mixins/server/auth.d.ts +30 -28
  56. package/dist/mixins/server/auth.js +1 -1
  57. package/dist/mixins/server/auth.js.map +3 -3
  58. package/dist/mixins/server/entity.d.ts +24 -26
  59. package/dist/mixins/server/entity.js +1 -1
  60. package/dist/mixins/server/entity.js.map +2 -2
  61. package/dist/mixins/server/file.d.ts +24 -26
  62. package/dist/mixins/server/file.js +1 -1
  63. package/dist/mixins/server/file.js.map +2 -2
  64. package/dist/mixins/server/index.js.map +1 -1
  65. package/dist/mixins/server/push.d.ts +24 -26
  66. package/dist/mixins/server/push.js.map +1 -1
  67. package/dist/mixins/server/smtp.d.ts +24 -26
  68. package/dist/mixins/server/smtp.js +1 -1
  69. package/dist/mixins/server/smtp.js.map +2 -2
  70. package/dist/mixins/server/transaction.d.ts +24 -26
  71. package/dist/mixins/server/transaction.js +1 -1
  72. package/dist/mixins/server/transaction.js.map +2 -2
  73. package/dist/mixins/server/utils.d.ts +24 -26
  74. package/dist/mixins/server/utils.js +1 -1
  75. package/dist/mixins/server/utils.js.map +2 -2
  76. package/dist/packet.js.map +1 -1
  77. package/dist/react.js +1 -1
  78. package/dist/react.js.map +3 -3
  79. package/dist/types.d.ts +1 -1
  80. package/package.json +57 -57
@@ -23,30 +23,30 @@ export declare function SmtpMixin<TBase extends GConstructor<EntityServerClientB
23
23
  csrfEnabled: boolean;
24
24
  csrfHeaderName: string;
25
25
  csrfCookieName: string;
26
- _csrfRefresher: (() => Promise<void>) | null;
26
+ csrfRefresher: (() => Promise<void>) | null;
27
27
  activeTxId: string | null;
28
28
  keepSession: boolean;
29
29
  refreshBuffer: number;
30
30
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
31
31
  onSessionExpired?: (error: Error) => void;
32
32
  onHealthChange?: (online: boolean) => void;
33
- _sessionRefreshToken: string | null;
34
- _refreshTimer: ReturnType<typeof setTimeout> | null;
35
- _healthTickTimer: ReturnType<typeof setInterval> | null;
36
- _healthTickPromise: Promise<unknown> | null;
33
+ sessionRefreshToken: string | null;
34
+ refreshTimer: ReturnType<typeof setTimeout> | null;
35
+ healthTickTimer: ReturnType<typeof setInterval> | null;
36
+ healthTickPromise: Promise<unknown> | null;
37
37
  realtimeEnabled: boolean;
38
38
  realtimePath: string;
39
39
  realtimeAutoConnect: boolean;
40
40
  realtimeAutoReconnect: boolean;
41
41
  realtimeReconnectDelayMs: number;
42
42
  realtimeStatus: import("../../types.js").RealtimeConnectionStatus;
43
- _realtimeSocket: WebSocket | null;
44
- _realtimeConnectPromise: Promise<void> | null;
45
- _realtimeReconnectTimer: ReturnType<typeof setTimeout> | null;
46
- _realtimeShouldReconnect: boolean;
47
- _realtimeMessageListeners: Set<import("../../types.js").RealtimeMessageListener>;
48
- _realtimeStatusListeners: Set<import("../../types.js").RealtimeStatusListener>;
49
- _realtimeEventListeners: Map<string, Set<import("../../types.js").RealtimeMessageListener>>;
43
+ realtimeSocket: WebSocket | null;
44
+ realtimeConnectPromise: Promise<void> | null;
45
+ realtimeReconnectTimer: ReturnType<typeof setTimeout> | null;
46
+ realtimeShouldReconnect: boolean;
47
+ realtimeMessageListeners: Set<import("../../types.js").RealtimeMessageListener>;
48
+ realtimeStatusListeners: Set<import("../../types.js").RealtimeStatusListener>;
49
+ realtimeEventListeners: Map<string, Set<import("../../types.js").RealtimeMessageListener>>;
50
50
  configure(options: Partial<import("../../types.js").EntityServerClientOptions>): void;
51
51
  setToken(token: string): void;
52
52
  setAnonymousPacketToken(token: string): void;
@@ -67,21 +67,22 @@ export declare function SmtpMixin<TBase extends GConstructor<EntityServerClientB
67
67
  unsubscribeRealtime(subscriptions: string[]): boolean;
68
68
  startHealthTick(intervalMs?: number): void;
69
69
  stopHealthTick(): void;
70
- _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
70
+ scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
71
71
  access_token: string;
72
72
  expires_in: number;
73
73
  }>): void;
74
- _clearRefreshTimer(): void;
74
+ clearRefreshTimer(): void;
75
75
  stopKeepSession(): void;
76
- _applyRealtimeOptions(options?: boolean | import("../../types.js").RealtimeClientOptions): void;
77
- _buildRealtimeUrl(): string;
78
- _handleRealtimeMessage(payload: unknown): void;
79
- _scheduleRealtimeReconnect(reason: string): void;
80
- _clearRealtimeReconnectTimer(): void;
81
- _setRealtimeStatus(status: import("../../types.js").RealtimeConnectionStatus, reason?: string, error?: Error): void;
82
- _applyCsrfHealth(): void;
76
+ applyRealtimeOptions(options?: boolean | import("../../types.js").RealtimeClientOptions): void;
77
+ buildRealtimeUrl(): string;
78
+ handleRealtimeMessage(payload: unknown): void;
79
+ scheduleRealtimeReconnect(reason: string): void;
80
+ clearRealtimeReconnectTimer(): void;
81
+ setRealtimeStatus(status: import("../../types.js").RealtimeConnectionStatus, reason?: string, error?: Error): void;
82
+ applyCsrfHealth(): void;
83
83
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
84
- get _reqOpts(): import("../../client/request.js").RequestOptions;
84
+ get reqOpts(): import("../../client/request.js").RequestOptions;
85
+ prepareRequest(_withAuth: boolean): Promise<void>;
85
86
  get http(): {
86
87
  get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
87
88
  post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
@@ -89,12 +90,9 @@ export declare function SmtpMixin<TBase extends GConstructor<EntityServerClientB
89
90
  patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
90
91
  delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
91
92
  };
93
+ request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
92
94
  requestBinary(method: string, path: string, body?: unknown, withAuth?: boolean): Promise<ArrayBuffer>;
93
95
  requestForm<T>(method: string, path: string, form: FormData, withAuth?: boolean): Promise<T>;
94
96
  requestFormBinary(method: string, path: string, form: FormData, withAuth?: boolean): Promise<ArrayBuffer>;
95
- _request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
96
- _requestBinary(method: string, path: string, body?: unknown, withAuth?: boolean): Promise<ArrayBuffer>;
97
- _requestForm<T>(method: string, path: string, form: FormData, withAuth?: boolean): Promise<T>;
98
- _requestFormBinary(method: string, path: string, form: FormData, withAuth?: boolean): Promise<ArrayBuffer>;
99
97
  };
100
98
  } & TBase;
@@ -1,2 +1,2 @@
1
- function o(t){return class extends t{smtpSend(e){return this._request("POST","/v1/smtp/send",e)}smtpStatus(e){return this._request("POST",`/v1/smtp/status/${e}`,{})}smtpTemplatePreview(e){const s=e.split("/").map(encodeURIComponent).join("/");return fetch(`${this.baseUrl}/v1/smtp/template/${s}`,{credentials:"include"}).then(n=>n.text())}}}export{o as SmtpMixin};
1
+ function o(t){return class extends t{smtpSend(e){return this.request("POST","/v1/smtp/send",e)}smtpStatus(e){return this.request("POST",`/v1/smtp/status/${e}`,{})}smtpTemplatePreview(e){const s=e.split("/").map(encodeURIComponent).join("/");return fetch(`${this.baseUrl}/v1/smtp/template/${s}`,{credentials:"include"}).then(n=>n.text())}}}export{o as SmtpMixin};
2
2
  //# sourceMappingURL=smtp.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/mixins/server/smtp.ts"],
4
- "sourcesContent": ["import type { SmtpSendRequest } from \"../../types.js\";\nimport type {\n GConstructor,\n EntityServerClientBase,\n} from \"../../client/base.js\";\n\nexport function SmtpMixin<TBase extends GConstructor<EntityServerClientBase>>(\n Base: TBase,\n) {\n return class SmtpMixinClass extends Base {\n // \u2500\u2500\u2500 SMTP \uBA54\uC77C \uBC1C\uC1A1 \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 /** SMTP\uB85C \uBA54\uC77C\uC744 \uBC1C\uC1A1\uD569\uB2C8\uB2E4. */\n smtpSend(req: SmtpSendRequest): Promise<{ ok: boolean; seq: number }> {\n return this._request(\"POST\", \"/v1/smtp/send\", req);\n }\n\n /** SMTP \uBC1C\uC1A1 \uC0C1\uD0DC\uB97C \uC870\uD68C\uD569\uB2C8\uB2E4. */\n smtpStatus(seq: number): Promise<{ ok: boolean; status: string }> {\n return this._request(\"POST\", `/v1/smtp/status/${seq}`, {});\n }\n\n /** SMTP \uD15C\uD50C\uB9BF \uBBF8\uB9AC\uBCF4\uAE30 HTML\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. */\n smtpTemplatePreview(templatePath: string): Promise<string> {\n const encoded = templatePath\n .split(\"/\")\n .map(encodeURIComponent)\n .join(\"/\");\n return fetch(`${this.baseUrl}/v1/smtp/template/${encoded}`, {\n credentials: \"include\",\n }).then((r) => r.text());\n }\n };\n}\n"],
5
- "mappings": "AAMO,SAASA,EACZC,EACF,CACE,OAAO,cAA6BA,CAAK,CAIrC,SAASC,EAA6D,CAClE,OAAO,KAAK,SAAS,OAAQ,gBAAiBA,CAAG,CACrD,CAGA,WAAWC,EAAuD,CAC9D,OAAO,KAAK,SAAS,OAAQ,mBAAmBA,CAAG,GAAI,CAAC,CAAC,CAC7D,CAGA,oBAAoBC,EAAuC,CACvD,MAAMC,EAAUD,EACX,MAAM,GAAG,EACT,IAAI,kBAAkB,EACtB,KAAK,GAAG,EACb,OAAO,MAAM,GAAG,KAAK,OAAO,qBAAqBC,CAAO,GAAI,CACxD,YAAa,SACjB,CAAC,EAAE,KAAMC,GAAMA,EAAE,KAAK,CAAC,CAC3B,CACJ,CACJ",
4
+ "sourcesContent": ["import type { SmtpSendRequest } from \"../../types.js\";\r\nimport type {\r\n GConstructor,\r\n EntityServerClientBase,\r\n} from \"../../client/base.js\";\r\n\r\nexport function SmtpMixin<TBase extends GConstructor<EntityServerClientBase>>(\r\n Base: TBase,\r\n) {\r\n return class SmtpMixinClass extends Base {\r\n // \u2500\u2500\u2500 SMTP \uBA54\uC77C \uBC1C\uC1A1 \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\r\n\r\n /** SMTP\uB85C \uBA54\uC77C\uC744 \uBC1C\uC1A1\uD569\uB2C8\uB2E4. */\r\n smtpSend(req: SmtpSendRequest): Promise<{ ok: boolean; seq: number }> {\r\n return this.request(\"POST\", \"/v1/smtp/send\", req);\r\n }\r\n\r\n /** SMTP \uBC1C\uC1A1 \uC0C1\uD0DC\uB97C \uC870\uD68C\uD569\uB2C8\uB2E4. */\r\n smtpStatus(seq: number): Promise<{ ok: boolean; status: string }> {\r\n return this.request(\"POST\", `/v1/smtp/status/${seq}`, {});\r\n }\r\n\r\n /** SMTP \uD15C\uD50C\uB9BF \uBBF8\uB9AC\uBCF4\uAE30 HTML\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. */\r\n smtpTemplatePreview(templatePath: string): Promise<string> {\r\n const encoded = templatePath\r\n .split(\"/\")\r\n .map(encodeURIComponent)\r\n .join(\"/\");\r\n return fetch(`${this.baseUrl}/v1/smtp/template/${encoded}`, {\r\n credentials: \"include\",\r\n }).then((r) => r.text());\r\n }\r\n };\r\n}\r\n"],
5
+ "mappings": "AAMO,SAASA,EACZC,EACF,CACE,OAAO,cAA6BA,CAAK,CAIrC,SAASC,EAA6D,CAClE,OAAO,KAAK,QAAQ,OAAQ,gBAAiBA,CAAG,CACpD,CAGA,WAAWC,EAAuD,CAC9D,OAAO,KAAK,QAAQ,OAAQ,mBAAmBA,CAAG,GAAI,CAAC,CAAC,CAC5D,CAGA,oBAAoBC,EAAuC,CACvD,MAAMC,EAAUD,EACX,MAAM,GAAG,EACT,IAAI,kBAAkB,EACtB,KAAK,GAAG,EACb,OAAO,MAAM,GAAG,KAAK,OAAO,qBAAqBC,CAAO,GAAI,CACxD,YAAa,SACjB,CAAC,EAAE,KAAMC,GAAMA,EAAE,KAAK,CAAC,CAC3B,CACJ,CACJ",
6
6
  "names": ["SmtpMixin", "Base", "req", "seq", "templatePath", "encoded", "r"]
7
7
  }
@@ -16,30 +16,30 @@ export declare function TransactionMixin<TBase extends GConstructor<EntityServer
16
16
  csrfEnabled: boolean;
17
17
  csrfHeaderName: string;
18
18
  csrfCookieName: string;
19
- _csrfRefresher: (() => Promise<void>) | null;
19
+ csrfRefresher: (() => Promise<void>) | null;
20
20
  activeTxId: string | null;
21
21
  keepSession: boolean;
22
22
  refreshBuffer: number;
23
23
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
24
24
  onSessionExpired?: (error: Error) => void;
25
25
  onHealthChange?: (online: boolean) => void;
26
- _sessionRefreshToken: string | null;
27
- _refreshTimer: ReturnType<typeof setTimeout> | null;
28
- _healthTickTimer: ReturnType<typeof setInterval> | null;
29
- _healthTickPromise: Promise<unknown> | null;
26
+ sessionRefreshToken: string | null;
27
+ refreshTimer: ReturnType<typeof setTimeout> | null;
28
+ healthTickTimer: ReturnType<typeof setInterval> | null;
29
+ healthTickPromise: Promise<unknown> | null;
30
30
  realtimeEnabled: boolean;
31
31
  realtimePath: string;
32
32
  realtimeAutoConnect: boolean;
33
33
  realtimeAutoReconnect: boolean;
34
34
  realtimeReconnectDelayMs: number;
35
35
  realtimeStatus: import("../../types.js").RealtimeConnectionStatus;
36
- _realtimeSocket: WebSocket | null;
37
- _realtimeConnectPromise: Promise<void> | null;
38
- _realtimeReconnectTimer: ReturnType<typeof setTimeout> | null;
39
- _realtimeShouldReconnect: boolean;
40
- _realtimeMessageListeners: Set<import("../../types.js").RealtimeMessageListener>;
41
- _realtimeStatusListeners: Set<import("../../types.js").RealtimeStatusListener>;
42
- _realtimeEventListeners: Map<string, Set<import("../../types.js").RealtimeMessageListener>>;
36
+ realtimeSocket: WebSocket | null;
37
+ realtimeConnectPromise: Promise<void> | null;
38
+ realtimeReconnectTimer: ReturnType<typeof setTimeout> | null;
39
+ realtimeShouldReconnect: boolean;
40
+ realtimeMessageListeners: Set<import("../../types.js").RealtimeMessageListener>;
41
+ realtimeStatusListeners: Set<import("../../types.js").RealtimeStatusListener>;
42
+ realtimeEventListeners: Map<string, Set<import("../../types.js").RealtimeMessageListener>>;
43
43
  configure(options: Partial<import("../../types.js").EntityServerClientOptions>): void;
44
44
  setToken(token: string): void;
45
45
  setAnonymousPacketToken(token: string): void;
@@ -60,21 +60,22 @@ export declare function TransactionMixin<TBase extends GConstructor<EntityServer
60
60
  unsubscribeRealtime(subscriptions: string[]): boolean;
61
61
  startHealthTick(intervalMs?: number): void;
62
62
  stopHealthTick(): void;
63
- _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
63
+ scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
64
64
  access_token: string;
65
65
  expires_in: number;
66
66
  }>): void;
67
- _clearRefreshTimer(): void;
67
+ clearRefreshTimer(): void;
68
68
  stopKeepSession(): void;
69
- _applyRealtimeOptions(options?: boolean | import("../../types.js").RealtimeClientOptions): void;
70
- _buildRealtimeUrl(): string;
71
- _handleRealtimeMessage(payload: unknown): void;
72
- _scheduleRealtimeReconnect(reason: string): void;
73
- _clearRealtimeReconnectTimer(): void;
74
- _setRealtimeStatus(status: import("../../types.js").RealtimeConnectionStatus, reason?: string, error?: Error): void;
75
- _applyCsrfHealth(): void;
69
+ applyRealtimeOptions(options?: boolean | import("../../types.js").RealtimeClientOptions): void;
70
+ buildRealtimeUrl(): string;
71
+ handleRealtimeMessage(payload: unknown): void;
72
+ scheduleRealtimeReconnect(reason: string): void;
73
+ clearRealtimeReconnectTimer(): void;
74
+ setRealtimeStatus(status: import("../../types.js").RealtimeConnectionStatus, reason?: string, error?: Error): void;
75
+ applyCsrfHealth(): void;
76
76
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
77
- get _reqOpts(): import("../../client/request.js").RequestOptions;
77
+ get reqOpts(): import("../../client/request.js").RequestOptions;
78
+ prepareRequest(_withAuth: boolean): Promise<void>;
78
79
  get http(): {
79
80
  get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
80
81
  post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
@@ -82,12 +83,9 @@ export declare function TransactionMixin<TBase extends GConstructor<EntityServer
82
83
  patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
83
84
  delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
84
85
  };
86
+ request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
85
87
  requestBinary(method: string, path: string, body?: unknown, withAuth?: boolean): Promise<ArrayBuffer>;
86
88
  requestForm<T>(method: string, path: string, form: FormData, withAuth?: boolean): Promise<T>;
87
89
  requestFormBinary(method: string, path: string, form: FormData, withAuth?: boolean): Promise<ArrayBuffer>;
88
- _request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
89
- _requestBinary(method: string, path: string, body?: unknown, withAuth?: boolean): Promise<ArrayBuffer>;
90
- _requestForm<T>(method: string, path: string, form: FormData, withAuth?: boolean): Promise<T>;
91
- _requestFormBinary(method: string, path: string, form: FormData, withAuth?: boolean): Promise<ArrayBuffer>;
92
90
  };
93
91
  } & TBase;
@@ -1,2 +1,2 @@
1
- function s(t){return class extends t{transactionStart(n){return this._request("POST","/v1/transaction/start",n??{})}transactionCommit(n){return this._request("POST",`/v1/transaction/commit/${encodeURIComponent(n)}`,{})}transactionRollback(n){return this._request("POST",`/v1/transaction/rollback/${encodeURIComponent(n)}`,{})}}}export{s as TransactionMixin};
1
+ function s(t){return class extends t{transactionStart(n){return this.request("POST","/v1/transaction/start",n??{})}transactionCommit(n){return this.request("POST",`/v1/transaction/commit/${encodeURIComponent(n)}`,{})}transactionRollback(n){return this.request("POST",`/v1/transaction/rollback/${encodeURIComponent(n)}`,{})}}}export{s as TransactionMixin};
2
2
  //# sourceMappingURL=transaction.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/mixins/server/transaction.ts"],
4
- "sourcesContent": ["import type {\n GConstructor,\n EntityServerClientBase,\n} from \"../../client/base.js\";\n\nexport function TransactionMixin<\n TBase extends GConstructor<EntityServerClientBase>,\n>(Base: TBase) {\n return class TransactionMixinClass extends Base {\n /** \uD2B8\uB79C\uC7AD\uC158\uC744 \uC2DC\uC791\uD558\uACE0 transaction_id\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4. */\n transactionStart<T = unknown>(\n body?: Record<string, unknown>,\n ): Promise<T> {\n return this._request(\"POST\", \"/v1/transaction/start\", body ?? {});\n }\n\n /** \uC9C0\uC815\uD55C \uD2B8\uB79C\uC7AD\uC158\uC744 \uCEE4\uBC0B\uD569\uB2C8\uB2E4. */\n transactionCommit<T = unknown>(transactionId: string): Promise<T> {\n return this._request(\n \"POST\",\n `/v1/transaction/commit/${encodeURIComponent(transactionId)}`,\n {},\n );\n }\n\n /** \uC9C0\uC815\uD55C \uD2B8\uB79C\uC7AD\uC158\uC744 \uB864\uBC31\uD569\uB2C8\uB2E4. */\n transactionRollback<T = unknown>(transactionId: string): Promise<T> {\n return this._request(\n \"POST\",\n `/v1/transaction/rollback/${encodeURIComponent(transactionId)}`,\n {},\n );\n }\n };\n}\n"],
5
- "mappings": "AAKO,SAASA,EAEdC,EAAa,CACX,OAAO,cAAoCA,CAAK,CAE5C,iBACIC,EACU,CACV,OAAO,KAAK,SAAS,OAAQ,wBAAyBA,GAAQ,CAAC,CAAC,CACpE,CAGA,kBAA+BC,EAAmC,CAC9D,OAAO,KAAK,SACR,OACA,0BAA0B,mBAAmBA,CAAa,CAAC,GAC3D,CAAC,CACL,CACJ,CAGA,oBAAiCA,EAAmC,CAChE,OAAO,KAAK,SACR,OACA,4BAA4B,mBAAmBA,CAAa,CAAC,GAC7D,CAAC,CACL,CACJ,CACJ,CACJ",
4
+ "sourcesContent": ["import type {\r\n GConstructor,\r\n EntityServerClientBase,\r\n} from \"../../client/base.js\";\r\n\r\nexport function TransactionMixin<\r\n TBase extends GConstructor<EntityServerClientBase>,\r\n>(Base: TBase) {\r\n return class TransactionMixinClass extends Base {\r\n /** \uD2B8\uB79C\uC7AD\uC158\uC744 \uC2DC\uC791\uD558\uACE0 transaction_id\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4. */\r\n transactionStart<T = unknown>(\r\n body?: Record<string, unknown>,\r\n ): Promise<T> {\r\n return this.request(\"POST\", \"/v1/transaction/start\", body ?? {});\r\n }\r\n\r\n /** \uC9C0\uC815\uD55C \uD2B8\uB79C\uC7AD\uC158\uC744 \uCEE4\uBC0B\uD569\uB2C8\uB2E4. */\r\n transactionCommit<T = unknown>(transactionId: string): Promise<T> {\r\n return this.request(\r\n \"POST\",\r\n `/v1/transaction/commit/${encodeURIComponent(transactionId)}`,\r\n {},\r\n );\r\n }\r\n\r\n /** \uC9C0\uC815\uD55C \uD2B8\uB79C\uC7AD\uC158\uC744 \uB864\uBC31\uD569\uB2C8\uB2E4. */\r\n transactionRollback<T = unknown>(transactionId: string): Promise<T> {\r\n return this.request(\r\n \"POST\",\r\n `/v1/transaction/rollback/${encodeURIComponent(transactionId)}`,\r\n {},\r\n );\r\n }\r\n };\r\n}\r\n"],
5
+ "mappings": "AAKO,SAASA,EAEdC,EAAa,CACX,OAAO,cAAoCA,CAAK,CAE5C,iBACIC,EACU,CACV,OAAO,KAAK,QAAQ,OAAQ,wBAAyBA,GAAQ,CAAC,CAAC,CACnE,CAGA,kBAA+BC,EAAmC,CAC9D,OAAO,KAAK,QACR,OACA,0BAA0B,mBAAmBA,CAAa,CAAC,GAC3D,CAAC,CACL,CACJ,CAGA,oBAAiCA,EAAmC,CAChE,OAAO,KAAK,QACR,OACA,4BAA4B,mBAAmBA,CAAa,CAAC,GAC7D,CAAC,CACL,CACJ,CACJ,CACJ",
6
6
  "names": ["TransactionMixin", "Base", "body", "transactionId"]
7
7
  }
@@ -72,30 +72,30 @@ export declare function UtilsMixin<TBase extends GConstructor<EntityServerClient
72
72
  csrfEnabled: boolean;
73
73
  csrfHeaderName: string;
74
74
  csrfCookieName: string;
75
- _csrfRefresher: (() => Promise<void>) | null;
75
+ csrfRefresher: (() => Promise<void>) | null;
76
76
  activeTxId: string | null;
77
77
  keepSession: boolean;
78
78
  refreshBuffer: number;
79
79
  onTokenRefreshed?: (accessToken: string, expiresIn: number) => void;
80
80
  onSessionExpired?: (error: Error) => void;
81
81
  onHealthChange?: (online: boolean) => void;
82
- _sessionRefreshToken: string | null;
83
- _refreshTimer: ReturnType<typeof setTimeout> | null;
84
- _healthTickTimer: ReturnType<typeof setInterval> | null;
85
- _healthTickPromise: Promise<unknown> | null;
82
+ sessionRefreshToken: string | null;
83
+ refreshTimer: ReturnType<typeof setTimeout> | null;
84
+ healthTickTimer: ReturnType<typeof setInterval> | null;
85
+ healthTickPromise: Promise<unknown> | null;
86
86
  realtimeEnabled: boolean;
87
87
  realtimePath: string;
88
88
  realtimeAutoConnect: boolean;
89
89
  realtimeAutoReconnect: boolean;
90
90
  realtimeReconnectDelayMs: number;
91
91
  realtimeStatus: import("../../types.js").RealtimeConnectionStatus;
92
- _realtimeSocket: WebSocket | null;
93
- _realtimeConnectPromise: Promise<void> | null;
94
- _realtimeReconnectTimer: ReturnType<typeof setTimeout> | null;
95
- _realtimeShouldReconnect: boolean;
96
- _realtimeMessageListeners: Set<import("../../types.js").RealtimeMessageListener>;
97
- _realtimeStatusListeners: Set<import("../../types.js").RealtimeStatusListener>;
98
- _realtimeEventListeners: Map<string, Set<import("../../types.js").RealtimeMessageListener>>;
92
+ realtimeSocket: WebSocket | null;
93
+ realtimeConnectPromise: Promise<void> | null;
94
+ realtimeReconnectTimer: ReturnType<typeof setTimeout> | null;
95
+ realtimeShouldReconnect: boolean;
96
+ realtimeMessageListeners: Set<import("../../types.js").RealtimeMessageListener>;
97
+ realtimeStatusListeners: Set<import("../../types.js").RealtimeStatusListener>;
98
+ realtimeEventListeners: Map<string, Set<import("../../types.js").RealtimeMessageListener>>;
99
99
  configure(options: Partial<import("../../types.js").EntityServerClientOptions>): void;
100
100
  setToken(token: string): void;
101
101
  setAnonymousPacketToken(token: string): void;
@@ -116,21 +116,22 @@ export declare function UtilsMixin<TBase extends GConstructor<EntityServerClient
116
116
  unsubscribeRealtime(subscriptions: string[]): boolean;
117
117
  startHealthTick(intervalMs?: number): void;
118
118
  stopHealthTick(): void;
119
- _scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
119
+ scheduleKeepSession(refreshToken: string, expiresIn: number, refreshFn: (rt: string) => Promise<{
120
120
  access_token: string;
121
121
  expires_in: number;
122
122
  }>): void;
123
- _clearRefreshTimer(): void;
123
+ clearRefreshTimer(): void;
124
124
  stopKeepSession(): void;
125
- _applyRealtimeOptions(options?: boolean | import("../../types.js").RealtimeClientOptions): void;
126
- _buildRealtimeUrl(): string;
127
- _handleRealtimeMessage(payload: unknown): void;
128
- _scheduleRealtimeReconnect(reason: string): void;
129
- _clearRealtimeReconnectTimer(): void;
130
- _setRealtimeStatus(status: import("../../types.js").RealtimeConnectionStatus, reason?: string, error?: Error): void;
131
- _applyCsrfHealth(): void;
125
+ applyRealtimeOptions(options?: boolean | import("../../types.js").RealtimeClientOptions): void;
126
+ buildRealtimeUrl(): string;
127
+ handleRealtimeMessage(payload: unknown): void;
128
+ scheduleRealtimeReconnect(reason: string): void;
129
+ clearRealtimeReconnectTimer(): void;
130
+ setRealtimeStatus(status: import("../../types.js").RealtimeConnectionStatus, reason?: string, error?: Error): void;
131
+ applyCsrfHealth(): void;
132
132
  readRequestBody<T = Record<string, unknown>>(body: ArrayBuffer | Uint8Array | string | T | null | undefined, contentType?: string, requireEncrypted?: boolean): T;
133
- get _reqOpts(): import("../../client/request.js").RequestOptions;
133
+ get reqOpts(): import("../../client/request.js").RequestOptions;
134
+ prepareRequest(_withAuth: boolean): Promise<void>;
134
135
  get http(): {
135
136
  get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
136
137
  post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
@@ -138,12 +139,9 @@ export declare function UtilsMixin<TBase extends GConstructor<EntityServerClient
138
139
  patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
139
140
  delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
140
141
  };
142
+ request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
141
143
  requestBinary(method: string, path: string, body?: unknown, withAuth?: boolean): Promise<ArrayBuffer>;
142
144
  requestForm<T>(method: string, path: string, form: FormData, withAuth?: boolean): Promise<T>;
143
145
  requestFormBinary(method: string, path: string, form: FormData, withAuth?: boolean): Promise<ArrayBuffer>;
144
- _request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
145
- _requestBinary(method: string, path: string, body?: unknown, withAuth?: boolean): Promise<ArrayBuffer>;
146
- _requestForm<T>(method: string, path: string, form: FormData, withAuth?: boolean): Promise<T>;
147
- _requestFormBinary(method: string, path: string, form: FormData, withAuth?: boolean): Promise<ArrayBuffer>;
148
146
  };
149
147
  } & TBase;
@@ -1,2 +1,2 @@
1
- function u(a){return class extends a{addressSido(){return this.http.get("/v1/utils/address/sido",!1)}addressSigungu(e){const r=new URLSearchParams({sido:e.sido}).toString();return this.http.get(`/v1/utils/address/sigungu?${r}`,!1)}addressDong(e){const r=new URLSearchParams({sido:e.sido,sigungu:e.sigungu}).toString();return this.http.get(`/v1/utils/address/dong?${r}`,!1)}addressClean(e){const r=new URLSearchParams({q:e.q}).toString();return this.http.get(`/v1/utils/address/clean?${r}`,!1)}qrcode(e,r={}){return this._requestBinary("POST","/v1/utils/qrcode",{content:e,...r})}qrcodeBase64(e,r={}){return this._request("POST","/v1/utils/qrcode/base64",{content:e,...r})}qrcodeText(e,r={}){return this._request("POST","/v1/utils/qrcode/text",{content:e,...r})}barcode(e,r={}){return this._requestBinary("POST","/v1/utils/barcode",{content:e,...r})}pdf2png(e,r={}){const s=new FormData;s.append("file",new Blob([e],{type:"application/pdf"}),"document.pdf");const t=new URLSearchParams;r.dpi!=null&&t.set("dpi",String(r.dpi)),r.firstPage!=null&&t.set("first_page",String(r.firstPage)),r.lastPage!=null&&t.set("last_page",String(r.lastPage));const n=t.toString(),i="/v1/utils/pdf2png"+(n?`?${n}`:"");return this._requestFormBinary("POST",i,s)}pdf2pngByFileSeq(e,r={}){return this.requestBinary("POST",`/v1/utils/pdf2png/${e}`,r)}pdf2jpg(e,r={}){const s=new FormData;s.append("file",new Blob([e],{type:"application/pdf"}),"document.pdf");const t=new URLSearchParams;r.dpi!=null&&t.set("dpi",String(r.dpi)),r.firstPage!=null&&t.set("first_page",String(r.firstPage)),r.lastPage!=null&&t.set("last_page",String(r.lastPage));const n=t.toString(),i="/v1/utils/pdf2jpg"+(n?`?${n}`:"");return this._requestFormBinary("POST",i,s)}pdf2jpgByFileSeq(e,r={}){return this.requestBinary("POST",`/v1/utils/pdf2jpg/${e}`,r)}}}export{u as UtilsMixin};
1
+ function u(a){return class extends a{addressSido(){return this.http.get("/v1/utils/address/sido",!1)}addressSigungu(e){const r=new URLSearchParams({sido:e.sido}).toString();return this.http.get(`/v1/utils/address/sigungu?${r}`,!1)}addressDong(e){const r=new URLSearchParams({sido:e.sido,sigungu:e.sigungu}).toString();return this.http.get(`/v1/utils/address/dong?${r}`,!1)}addressClean(e){const r=new URLSearchParams({q:e.q}).toString();return this.http.get(`/v1/utils/address/clean?${r}`,!1)}qrcode(e,r={}){return this.requestBinary("POST","/v1/utils/qrcode",{content:e,...r})}qrcodeBase64(e,r={}){return this.request("POST","/v1/utils/qrcode/base64",{content:e,...r})}qrcodeText(e,r={}){return this.request("POST","/v1/utils/qrcode/text",{content:e,...r})}barcode(e,r={}){return this.requestBinary("POST","/v1/utils/barcode",{content:e,...r})}pdf2png(e,r={}){const s=new FormData;s.append("file",new Blob([e],{type:"application/pdf"}),"document.pdf");const t=new URLSearchParams;r.dpi!=null&&t.set("dpi",String(r.dpi)),r.firstPage!=null&&t.set("first_page",String(r.firstPage)),r.lastPage!=null&&t.set("last_page",String(r.lastPage));const n=t.toString(),i="/v1/utils/pdf2png"+(n?`?${n}`:"");return this.requestFormBinary("POST",i,s)}pdf2pngByFileSeq(e,r={}){return this.requestBinary("POST",`/v1/utils/pdf2png/${e}`,r)}pdf2jpg(e,r={}){const s=new FormData;s.append("file",new Blob([e],{type:"application/pdf"}),"document.pdf");const t=new URLSearchParams;r.dpi!=null&&t.set("dpi",String(r.dpi)),r.firstPage!=null&&t.set("first_page",String(r.firstPage)),r.lastPage!=null&&t.set("last_page",String(r.lastPage));const n=t.toString(),i="/v1/utils/pdf2jpg"+(n?`?${n}`:"");return this.requestFormBinary("POST",i,s)}pdf2jpgByFileSeq(e,r={}){return this.requestBinary("POST",`/v1/utils/pdf2jpg/${e}`,r)}}}export{u as UtilsMixin};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/mixins/server/utils.ts"],
4
- "sourcesContent": ["import type {\n QRCodeOptions,\n BarcodeOptions,\n Pdf2PngOptions,\n} from \"../../types.js\";\nimport type { GConstructor, EntityServerClientBase } from \"../../client/base.js\";\n\nexport function UtilsMixin<TBase extends GConstructor<EntityServerClientBase>>(\n Base: TBase,\n) {\n return class UtilsMixinClass extends Base {\n addressSido<T = unknown>(): Promise<T> {\n return this.http.get(\n \"/v1/utils/address/sido\",\n false,\n );\n }\n\n addressSigungu<T = unknown>(query: { sido: string }): Promise<T> {\n const qs = new URLSearchParams({ sido: query.sido }).toString();\n return this.http.get(\n `/v1/utils/address/sigungu?${qs}`,\n false,\n );\n }\n\n addressDong<T = unknown>(query: {\n sido: string;\n sigungu: string;\n }): Promise<T> {\n const qs = new URLSearchParams({\n sido: query.sido,\n sigungu: query.sigungu,\n }).toString();\n return this.http.get(\n `/v1/utils/address/dong?${qs}`,\n false,\n );\n }\n\n addressClean<T = unknown>(query: { q: string }): Promise<T> {\n const qs = new URLSearchParams({ q: query.q }).toString();\n return this.http.get(\n `/v1/utils/address/clean?${qs}`,\n false,\n );\n }\n\n // \u2500\u2500\u2500 Utils (QR / \uBC14\uCF54\uB4DC) \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 * QR \uCF54\uB4DC PNG\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4. `ArrayBuffer`\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.\n *\n * ```ts\n * const buf = await client.qrcode(\"https://example.com\");\n * const blob = new Blob([buf], { type: \"image/png\" });\n * img.src = URL.createObjectURL(blob);\n * ```\n */\n qrcode(\n content: string,\n opts: QRCodeOptions = {},\n ): Promise<ArrayBuffer> {\n return this._requestBinary(\"POST\", \"/v1/utils/qrcode\", {\n content,\n ...opts,\n });\n }\n\n /**\n * QR \uCF54\uB4DC\uB97C base64/data URI JSON\uC73C\uB85C \uBC18\uD658\uD569\uB2C8\uB2E4.\n *\n * ```ts\n * const { data_uri } = await client.qrcodeBase64(\"https://example.com\");\n * img.src = data_uri;\n * ```\n */\n qrcodeBase64(\n content: string,\n opts: QRCodeOptions = {},\n ): Promise<{ ok: boolean; data: string; data_uri: string }> {\n return this._request(\"POST\", \"/v1/utils/qrcode/base64\", {\n content,\n ...opts,\n });\n }\n\n /** QR \uCF54\uB4DC\uB97C ASCII \uC544\uD2B8 \uD14D\uC2A4\uD2B8\uB85C \uBC18\uD658\uD569\uB2C8\uB2E4. */\n qrcodeText(\n content: string,\n opts: QRCodeOptions = {},\n ): Promise<{ ok: boolean; text: string }> {\n return this._request(\"POST\", \"/v1/utils/qrcode/text\", {\n content,\n ...opts,\n });\n }\n\n /**\n * \uBC14\uCF54\uB4DC PNG\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4. `ArrayBuffer`\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.\n *\n * ```ts\n * const buf = await client.barcode(\"1234567890128\", { type: \"ean13\" });\n * ```\n */\n barcode(\n content: string,\n opts: BarcodeOptions = {},\n ): Promise<ArrayBuffer> {\n return this._requestBinary(\"POST\", \"/v1/utils/barcode\", {\n content,\n ...opts,\n });\n }\n\n /**\n * PDF\uB97C PNG \uC774\uBBF8\uC9C0\uB85C \uBCC0\uD658\uD569\uB2C8\uB2E4.\n *\n * \uB2E8\uC77C \uD398\uC774\uC9C0 \uC694\uCCAD\uC774\uBA74 `image/png` ArrayBuffer,\n * \uB2E4\uC911 \uD398\uC774\uC9C0 \uC694\uCCAD\uC774\uBA74 `application/zip` ArrayBuffer\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.\n *\n * ```ts\n * const buf = await client.pdf2png(pdfArrayBuffer, { dpi: 200 });\n * ```\n */\n pdf2png(\n pdfData: ArrayBuffer | Uint8Array<ArrayBuffer>,\n opts: Pdf2PngOptions = {},\n ): Promise<ArrayBuffer> {\n const form = new FormData();\n form.append(\n \"file\",\n new Blob([pdfData], { type: \"application/pdf\" }),\n \"document.pdf\",\n );\n const params = new URLSearchParams();\n if (opts.dpi != null) params.set(\"dpi\", String(opts.dpi));\n if (opts.firstPage != null)\n params.set(\"first_page\", String(opts.firstPage));\n if (opts.lastPage != null)\n params.set(\"last_page\", String(opts.lastPage));\n const qs = params.toString();\n const path = \"/v1/utils/pdf2png\" + (qs ? `?${qs}` : \"\");\n return this._requestFormBinary(\"POST\", path, form);\n }\n\n pdf2pngByFileSeq(\n fileSeq: number,\n opts: Pdf2PngOptions = {},\n ): Promise<ArrayBuffer> {\n return this.requestBinary(\n \"POST\",\n `/v1/utils/pdf2png/${fileSeq}`,\n opts,\n );\n }\n\n pdf2jpg(\n pdfData: ArrayBuffer | Uint8Array<ArrayBuffer>,\n opts: Pdf2PngOptions = {},\n ): Promise<ArrayBuffer> {\n const form = new FormData();\n form.append(\n \"file\",\n new Blob([pdfData], { type: \"application/pdf\" }),\n \"document.pdf\",\n );\n const params = new URLSearchParams();\n if (opts.dpi != null) params.set(\"dpi\", String(opts.dpi));\n if (opts.firstPage != null)\n params.set(\"first_page\", String(opts.firstPage));\n if (opts.lastPage != null)\n params.set(\"last_page\", String(opts.lastPage));\n const qs = params.toString();\n const path = \"/v1/utils/pdf2jpg\" + (qs ? `?${qs}` : \"\");\n return this._requestFormBinary(\"POST\", path, form);\n }\n\n pdf2jpgByFileSeq(\n fileSeq: number,\n opts: Pdf2PngOptions = {},\n ): Promise<ArrayBuffer> {\n return this.requestBinary(\n \"POST\",\n `/v1/utils/pdf2jpg/${fileSeq}`,\n opts,\n );\n }\n };\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type {\r\n QRCodeOptions,\r\n BarcodeOptions,\r\n Pdf2PngOptions,\r\n} from \"../../types.js\";\r\nimport type { GConstructor, EntityServerClientBase } from \"../../client/base.js\";\r\n\r\nexport function UtilsMixin<TBase extends GConstructor<EntityServerClientBase>>(\r\n Base: TBase,\r\n) {\r\n return class UtilsMixinClass extends Base {\r\n addressSido<T = unknown>(): Promise<T> {\r\n return this.http.get(\r\n \"/v1/utils/address/sido\",\r\n false,\r\n );\r\n }\r\n\r\n addressSigungu<T = unknown>(query: { sido: string }): Promise<T> {\r\n const qs = new URLSearchParams({ sido: query.sido }).toString();\r\n return this.http.get(\r\n `/v1/utils/address/sigungu?${qs}`,\r\n false,\r\n );\r\n }\r\n\r\n addressDong<T = unknown>(query: {\r\n sido: string;\r\n sigungu: string;\r\n }): Promise<T> {\r\n const qs = new URLSearchParams({\r\n sido: query.sido,\r\n sigungu: query.sigungu,\r\n }).toString();\r\n return this.http.get(\r\n `/v1/utils/address/dong?${qs}`,\r\n false,\r\n );\r\n }\r\n\r\n addressClean<T = unknown>(query: { q: string }): Promise<T> {\r\n const qs = new URLSearchParams({ q: query.q }).toString();\r\n return this.http.get(\r\n `/v1/utils/address/clean?${qs}`,\r\n false,\r\n );\r\n }\r\n\r\n // \u2500\u2500\u2500 Utils (QR / \uBC14\uCF54\uB4DC) \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\r\n\r\n /**\r\n * QR \uCF54\uB4DC PNG\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4. `ArrayBuffer`\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.\r\n *\r\n * ```ts\r\n * const buf = await client.qrcode(\"https://example.com\");\r\n * const blob = new Blob([buf], { type: \"image/png\" });\r\n * img.src = URL.createObjectURL(blob);\r\n * ```\r\n */\r\n qrcode(\r\n content: string,\r\n opts: QRCodeOptions = {},\r\n ): Promise<ArrayBuffer> {\r\n return this.requestBinary(\"POST\", \"/v1/utils/qrcode\", {\r\n content,\r\n ...opts,\r\n });\r\n }\r\n\r\n /**\r\n * QR \uCF54\uB4DC\uB97C base64/data URI JSON\uC73C\uB85C \uBC18\uD658\uD569\uB2C8\uB2E4.\r\n *\r\n * ```ts\r\n * const { data_uri } = await client.qrcodeBase64(\"https://example.com\");\r\n * img.src = data_uri;\r\n * ```\r\n */\r\n qrcodeBase64(\r\n content: string,\r\n opts: QRCodeOptions = {},\r\n ): Promise<{ ok: boolean; data: string; data_uri: string }> {\r\n return this.request(\"POST\", \"/v1/utils/qrcode/base64\", {\r\n content,\r\n ...opts,\r\n });\r\n }\r\n\r\n /** QR \uCF54\uB4DC\uB97C ASCII \uC544\uD2B8 \uD14D\uC2A4\uD2B8\uB85C \uBC18\uD658\uD569\uB2C8\uB2E4. */\r\n qrcodeText(\r\n content: string,\r\n opts: QRCodeOptions = {},\r\n ): Promise<{ ok: boolean; text: string }> {\r\n return this.request(\"POST\", \"/v1/utils/qrcode/text\", {\r\n content,\r\n ...opts,\r\n });\r\n }\r\n\r\n /**\r\n * \uBC14\uCF54\uB4DC PNG\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4. `ArrayBuffer`\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.\r\n *\r\n * ```ts\r\n * const buf = await client.barcode(\"1234567890128\", { type: \"ean13\" });\r\n * ```\r\n */\r\n barcode(\r\n content: string,\r\n opts: BarcodeOptions = {},\r\n ): Promise<ArrayBuffer> {\r\n return this.requestBinary(\"POST\", \"/v1/utils/barcode\", {\r\n content,\r\n ...opts,\r\n });\r\n }\r\n\r\n /**\r\n * PDF\uB97C PNG \uC774\uBBF8\uC9C0\uB85C \uBCC0\uD658\uD569\uB2C8\uB2E4.\r\n *\r\n * \uB2E8\uC77C \uD398\uC774\uC9C0 \uC694\uCCAD\uC774\uBA74 `image/png` ArrayBuffer,\r\n * \uB2E4\uC911 \uD398\uC774\uC9C0 \uC694\uCCAD\uC774\uBA74 `application/zip` ArrayBuffer\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.\r\n *\r\n * ```ts\r\n * const buf = await client.pdf2png(pdfArrayBuffer, { dpi: 200 });\r\n * ```\r\n */\r\n pdf2png(\r\n pdfData: ArrayBuffer | Uint8Array<ArrayBuffer>,\r\n opts: Pdf2PngOptions = {},\r\n ): Promise<ArrayBuffer> {\r\n const form = new FormData();\r\n form.append(\r\n \"file\",\r\n new Blob([pdfData], { type: \"application/pdf\" }),\r\n \"document.pdf\",\r\n );\r\n const params = new URLSearchParams();\r\n if (opts.dpi != null) params.set(\"dpi\", String(opts.dpi));\r\n if (opts.firstPage != null)\r\n params.set(\"first_page\", String(opts.firstPage));\r\n if (opts.lastPage != null)\r\n params.set(\"last_page\", String(opts.lastPage));\r\n const qs = params.toString();\r\n const path = \"/v1/utils/pdf2png\" + (qs ? `?${qs}` : \"\");\r\n return this.requestFormBinary(\"POST\", path, form);\r\n }\r\n\r\n pdf2pngByFileSeq(\r\n fileSeq: number,\r\n opts: Pdf2PngOptions = {},\r\n ): Promise<ArrayBuffer> {\r\n return this.requestBinary(\r\n \"POST\",\r\n `/v1/utils/pdf2png/${fileSeq}`,\r\n opts,\r\n );\r\n }\r\n\r\n pdf2jpg(\r\n pdfData: ArrayBuffer | Uint8Array<ArrayBuffer>,\r\n opts: Pdf2PngOptions = {},\r\n ): Promise<ArrayBuffer> {\r\n const form = new FormData();\r\n form.append(\r\n \"file\",\r\n new Blob([pdfData], { type: \"application/pdf\" }),\r\n \"document.pdf\",\r\n );\r\n const params = new URLSearchParams();\r\n if (opts.dpi != null) params.set(\"dpi\", String(opts.dpi));\r\n if (opts.firstPage != null)\r\n params.set(\"first_page\", String(opts.firstPage));\r\n if (opts.lastPage != null)\r\n params.set(\"last_page\", String(opts.lastPage));\r\n const qs = params.toString();\r\n const path = \"/v1/utils/pdf2jpg\" + (qs ? `?${qs}` : \"\");\r\n return this.requestFormBinary(\"POST\", path, form);\r\n }\r\n\r\n pdf2jpgByFileSeq(\r\n fileSeq: number,\r\n opts: Pdf2PngOptions = {},\r\n ): Promise<ArrayBuffer> {\r\n return this.requestBinary(\r\n \"POST\",\r\n `/v1/utils/pdf2jpg/${fileSeq}`,\r\n opts,\r\n );\r\n }\r\n };\r\n}\r\n"],
5
+ "mappings": "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",
6
6
  "names": ["UtilsMixin", "Base", "query", "qs", "content", "opts", "pdfData", "form", "params", "path", "fileSeq"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/packet.ts"],
4
- "sourcesContent": ["// @ts-ignore\nimport { xchacha20poly1305 } from \"@noble/ciphers/chacha\";\n// @ts-ignore\nimport { sha256 } from \"@noble/hashes/sha2\";\n// @ts-ignore\nimport { hkdf } from \"@noble/hashes/hkdf\";\n\nexport const PACKET_KEY_SIZE = 32;\nexport const PACKET_MAGIC_MIN = 2;\nexport const PACKET_MAGIC_RANGE = 14;\nexport const PACKET_NONCE_SIZE = 24;\nexport const PACKET_TAG_SIZE = 16;\nexport const PACKET_HKDF_SALT = \"entity-server:hkdf:v1\";\nexport const PACKET_INFO_LABEL = \"entity-server:packet-encryption\";\n\nfunction toUint8Array(data: ArrayBuffer | Uint8Array): Uint8Array {\n return data instanceof Uint8Array ? data : new Uint8Array(data);\n}\n\nexport function derivePacketKey(\n source: string,\n infoLabel = PACKET_INFO_LABEL,\n): Uint8Array {\n return hkdf(\n sha256,\n new TextEncoder().encode(source),\n new TextEncoder().encode(PACKET_HKDF_SALT),\n new TextEncoder().encode(infoLabel),\n PACKET_KEY_SIZE,\n );\n}\n\nexport function packetMagicLenFromKey(\n key: ArrayBuffer | Uint8Array,\n magicMin = PACKET_MAGIC_MIN,\n magicRange = PACKET_MAGIC_RANGE,\n): number {\n const keyBytes = toUint8Array(key);\n if (keyBytes.length < PACKET_KEY_SIZE) return magicMin;\n return magicMin + (keyBytes[PACKET_KEY_SIZE - 1]! % magicRange);\n}\n\nexport function encryptPacket(\n plaintext: ArrayBuffer | Uint8Array,\n key: ArrayBuffer | Uint8Array,\n magicMin = PACKET_MAGIC_MIN,\n magicRange = PACKET_MAGIC_RANGE,\n): Uint8Array {\n const plaintextBytes = toUint8Array(plaintext);\n const keyBytes = toUint8Array(key);\n const magicLen = packetMagicLenFromKey(keyBytes, magicMin, magicRange);\n const magic = crypto.getRandomValues(new Uint8Array(magicLen));\n const nonce = crypto.getRandomValues(new Uint8Array(PACKET_NONCE_SIZE));\n const cipher = xchacha20poly1305(keyBytes, nonce);\n const ciphertext = cipher.encrypt(plaintextBytes);\n const result = new Uint8Array(\n magicLen + PACKET_NONCE_SIZE + ciphertext.length,\n );\n\n result.set(magic, 0);\n result.set(nonce, magicLen);\n result.set(ciphertext, magicLen + PACKET_NONCE_SIZE);\n return result;\n}\n\nexport function decryptPacket(\n buffer: ArrayBuffer | Uint8Array,\n key: ArrayBuffer | Uint8Array,\n magicMin = PACKET_MAGIC_MIN,\n magicRange = PACKET_MAGIC_RANGE,\n): Uint8Array {\n const data = toUint8Array(buffer);\n const keyBytes = toUint8Array(key);\n const magicLen = packetMagicLenFromKey(keyBytes, magicMin, magicRange);\n\n if (data.length < magicLen + PACKET_NONCE_SIZE + PACKET_TAG_SIZE) {\n throw new Error(\"Encrypted packet too short\");\n }\n\n const nonce = data.slice(magicLen, magicLen + PACKET_NONCE_SIZE);\n const ciphertext = data.slice(magicLen + PACKET_NONCE_SIZE);\n const cipher = xchacha20poly1305(keyBytes, nonce);\n return cipher.decrypt(ciphertext);\n}\n"],
4
+ "sourcesContent": ["// @ts-ignore\r\nimport { xchacha20poly1305 } from \"@noble/ciphers/chacha\";\r\n// @ts-ignore\r\nimport { sha256 } from \"@noble/hashes/sha2\";\r\n// @ts-ignore\r\nimport { hkdf } from \"@noble/hashes/hkdf\";\r\n\r\nexport const PACKET_KEY_SIZE = 32;\r\nexport const PACKET_MAGIC_MIN = 2;\r\nexport const PACKET_MAGIC_RANGE = 14;\r\nexport const PACKET_NONCE_SIZE = 24;\r\nexport const PACKET_TAG_SIZE = 16;\r\nexport const PACKET_HKDF_SALT = \"entity-server:hkdf:v1\";\r\nexport const PACKET_INFO_LABEL = \"entity-server:packet-encryption\";\r\n\r\nfunction toUint8Array(data: ArrayBuffer | Uint8Array): Uint8Array {\r\n return data instanceof Uint8Array ? data : new Uint8Array(data);\r\n}\r\n\r\nexport function derivePacketKey(\r\n source: string,\r\n infoLabel = PACKET_INFO_LABEL,\r\n): Uint8Array {\r\n return hkdf(\r\n sha256,\r\n new TextEncoder().encode(source),\r\n new TextEncoder().encode(PACKET_HKDF_SALT),\r\n new TextEncoder().encode(infoLabel),\r\n PACKET_KEY_SIZE,\r\n );\r\n}\r\n\r\nexport function packetMagicLenFromKey(\r\n key: ArrayBuffer | Uint8Array,\r\n magicMin = PACKET_MAGIC_MIN,\r\n magicRange = PACKET_MAGIC_RANGE,\r\n): number {\r\n const keyBytes = toUint8Array(key);\r\n if (keyBytes.length < PACKET_KEY_SIZE) return magicMin;\r\n return magicMin + (keyBytes[PACKET_KEY_SIZE - 1]! % magicRange);\r\n}\r\n\r\nexport function encryptPacket(\r\n plaintext: ArrayBuffer | Uint8Array,\r\n key: ArrayBuffer | Uint8Array,\r\n magicMin = PACKET_MAGIC_MIN,\r\n magicRange = PACKET_MAGIC_RANGE,\r\n): Uint8Array {\r\n const plaintextBytes = toUint8Array(plaintext);\r\n const keyBytes = toUint8Array(key);\r\n const magicLen = packetMagicLenFromKey(keyBytes, magicMin, magicRange);\r\n const magic = crypto.getRandomValues(new Uint8Array(magicLen));\r\n const nonce = crypto.getRandomValues(new Uint8Array(PACKET_NONCE_SIZE));\r\n const cipher = xchacha20poly1305(keyBytes, nonce);\r\n const ciphertext = cipher.encrypt(plaintextBytes);\r\n const result = new Uint8Array(\r\n magicLen + PACKET_NONCE_SIZE + ciphertext.length,\r\n );\r\n\r\n result.set(magic, 0);\r\n result.set(nonce, magicLen);\r\n result.set(ciphertext, magicLen + PACKET_NONCE_SIZE);\r\n return result;\r\n}\r\n\r\nexport function decryptPacket(\r\n buffer: ArrayBuffer | Uint8Array,\r\n key: ArrayBuffer | Uint8Array,\r\n magicMin = PACKET_MAGIC_MIN,\r\n magicRange = PACKET_MAGIC_RANGE,\r\n): Uint8Array {\r\n const data = toUint8Array(buffer);\r\n const keyBytes = toUint8Array(key);\r\n const magicLen = packetMagicLenFromKey(keyBytes, magicMin, magicRange);\r\n\r\n if (data.length < magicLen + PACKET_NONCE_SIZE + PACKET_TAG_SIZE) {\r\n throw new Error(\"Encrypted packet too short\");\r\n }\r\n\r\n const nonce = data.slice(magicLen, magicLen + PACKET_NONCE_SIZE);\r\n const ciphertext = data.slice(magicLen + PACKET_NONCE_SIZE);\r\n const cipher = xchacha20poly1305(keyBytes, nonce);\r\n return cipher.decrypt(ciphertext);\r\n}\r\n"],
5
5
  "mappings": "AACA,OAAS,qBAAAA,MAAyB,wBAElC,OAAS,UAAAC,MAAc,qBAEvB,OAAS,QAAAC,MAAY,qBAEd,IAAMC,EAAkB,GAClBC,EAAmB,EACnBC,EAAqB,GACrBC,EAAoB,GACpBC,EAAkB,GAClBC,EAAmB,wBACnBC,EAAoB,kCAEjC,SAASC,EAAaC,EAA4C,CAC9D,OAAOA,aAAgB,WAAaA,EAAO,IAAI,WAAWA,CAAI,CAClE,CAEO,SAASC,EACZC,EACAC,EAAYL,EACF,CACV,OAAOP,EACHD,EACA,IAAI,YAAY,EAAE,OAAOY,CAAM,EAC/B,IAAI,YAAY,EAAE,OAAOL,CAAgB,EACzC,IAAI,YAAY,EAAE,OAAOM,CAAS,EAClCX,CACJ,CACJ,CAEO,SAASY,EACZC,EACAC,EAAWb,EACXc,EAAab,EACP,CACN,IAAMc,EAAWT,EAAaM,CAAG,EACjC,OAAIG,EAAS,OAAShB,EAAwBc,EACvCA,EAAYE,EAAShB,EAAkB,CAAC,EAAKe,CACxD,CAEO,SAASE,EACZC,EACAL,EACAC,EAAWb,EACXc,EAAab,EACH,CACV,IAAMiB,EAAiBZ,EAAaW,CAAS,EACvCF,EAAWT,EAAaM,CAAG,EAC3BO,EAAWR,EAAsBI,EAAUF,EAAUC,CAAU,EAC/DM,EAAQ,OAAO,gBAAgB,IAAI,WAAWD,CAAQ,CAAC,EACvDE,EAAQ,OAAO,gBAAgB,IAAI,WAAWnB,CAAiB,CAAC,EAEhEoB,EADS1B,EAAkBmB,EAAUM,CAAK,EACtB,QAAQH,CAAc,EAC1CK,EAAS,IAAI,WACfJ,EAAWjB,EAAoBoB,EAAW,MAC9C,EAEA,OAAAC,EAAO,IAAIH,EAAO,CAAC,EACnBG,EAAO,IAAIF,EAAOF,CAAQ,EAC1BI,EAAO,IAAID,EAAYH,EAAWjB,CAAiB,EAC5CqB,CACX,CAEO,SAASC,EACZC,EACAb,EACAC,EAAWb,EACXc,EAAab,EACH,CACV,IAAMM,EAAOD,EAAamB,CAAM,EAC1BV,EAAWT,EAAaM,CAAG,EAC3BO,EAAWR,EAAsBI,EAAUF,EAAUC,CAAU,EAErE,GAAIP,EAAK,OAASY,EAAWjB,EAAoBC,EAC7C,MAAM,IAAI,MAAM,4BAA4B,EAGhD,IAAMkB,EAAQd,EAAK,MAAMY,EAAUA,EAAWjB,CAAiB,EACzDoB,EAAaf,EAAK,MAAMY,EAAWjB,CAAiB,EAE1D,OADeN,EAAkBmB,EAAUM,CAAK,EAClC,QAAQC,CAAU,CACpC",
6
6
  "names": ["xchacha20poly1305", "sha256", "hkdf", "PACKET_KEY_SIZE", "PACKET_MAGIC_MIN", "PACKET_MAGIC_RANGE", "PACKET_NONCE_SIZE", "PACKET_TAG_SIZE", "PACKET_HKDF_SALT", "PACKET_INFO_LABEL", "toUint8Array", "data", "derivePacketKey", "source", "infoLabel", "packetMagicLenFromKey", "key", "magicMin", "magicRange", "keyBytes", "encryptPacket", "plaintext", "plaintextBytes", "magicLen", "magic", "nonce", "ciphertext", "result", "decryptPacket", "buffer"]
7
7
  }