entity-client 1.0.17 → 1.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +362 -362
- package/dist/EntityAppServerApi.d.ts +96 -96
- package/dist/EntityAppServerApi.js.map +1 -1
- package/dist/EntityServerApi.d.ts +81 -48
- package/dist/EntityServerApi.js.map +1 -1
- package/dist/client/base.d.ts +7 -7
- package/dist/client/base.js +1 -1
- package/dist/client/base.js.map +3 -3
- package/dist/client/hmac.js.map +1 -1
- package/dist/client/packet.js.map +1 -1
- package/dist/client/request.d.ts +1 -0
- package/dist/client/request.js +1 -1
- package/dist/client/request.js.map +3 -3
- package/dist/client/utils.js.map +1 -1
- package/dist/hooks/useEntityAppServer.js.map +1 -1
- package/dist/hooks/useEntityClient.js.map +1 -1
- package/dist/hooks/useEntityServer.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/dist/mixins/app/index.js.map +1 -1
- package/dist/mixins/app/plugins/alimtalk.d.ts +6 -6
- package/dist/mixins/app/plugins/alimtalk.js.map +1 -1
- package/dist/mixins/app/plugins/friendtalk.d.ts +6 -6
- package/dist/mixins/app/plugins/friendtalk.js.map +1 -1
- package/dist/mixins/app/plugins/holidays.d.ts +6 -6
- package/dist/mixins/app/plugins/holidays.js.map +1 -1
- package/dist/mixins/app/plugins/identity.d.ts +6 -6
- package/dist/mixins/app/plugins/identity.js.map +1 -1
- package/dist/mixins/app/plugins/index.js.map +1 -1
- package/dist/mixins/app/plugins/llm.d.ts +6 -6
- package/dist/mixins/app/plugins/llm.js.map +1 -1
- package/dist/mixins/app/plugins/ocr.d.ts +6 -6
- package/dist/mixins/app/plugins/ocr.js.map +1 -1
- package/dist/mixins/app/plugins/pg.d.ts +6 -6
- package/dist/mixins/app/plugins/pg.js.map +1 -1
- package/dist/mixins/app/plugins/push.d.ts +6 -6
- package/dist/mixins/app/plugins/push.js.map +1 -1
- package/dist/mixins/app/plugins/sms.d.ts +6 -6
- package/dist/mixins/app/plugins/sms.js.map +1 -1
- package/dist/mixins/app/plugins/taxinvoice.d.ts +6 -6
- package/dist/mixins/app/plugins/taxinvoice.js.map +1 -1
- package/dist/mixins/app/routes/account.d.ts +6 -6
- package/dist/mixins/app/routes/account.js.map +1 -1
- package/dist/mixins/app/routes/board.d.ts +6 -6
- package/dist/mixins/app/routes/board.js.map +1 -1
- package/dist/mixins/app/routes/email-verify.d.ts +6 -6
- package/dist/mixins/app/routes/email-verify.js.map +1 -1
- package/dist/mixins/app/routes/oauth.d.ts +6 -6
- package/dist/mixins/app/routes/oauth.js.map +1 -1
- package/dist/mixins/app/routes/password-reset.d.ts +6 -6
- package/dist/mixins/app/routes/password-reset.js.map +1 -1
- package/dist/mixins/app/routes/two-factor.d.ts +6 -6
- package/dist/mixins/app/routes/two-factor.js.map +1 -1
- package/dist/mixins/server/admin.d.ts +6 -6
- package/dist/mixins/server/admin.js.map +1 -1
- package/dist/mixins/server/auth.d.ts +6 -6
- package/dist/mixins/server/auth.js.map +1 -1
- package/dist/mixins/server/entity.d.ts +6 -6
- package/dist/mixins/server/entity.js.map +1 -1
- package/dist/mixins/server/file.d.ts +49 -7
- package/dist/mixins/server/file.js +1 -1
- package/dist/mixins/server/file.js.map +2 -2
- package/dist/mixins/server/index.js.map +1 -1
- package/dist/mixins/server/push.d.ts +6 -6
- package/dist/mixins/server/push.js.map +1 -1
- package/dist/mixins/server/smtp.d.ts +6 -6
- package/dist/mixins/server/smtp.js.map +1 -1
- package/dist/mixins/server/transaction.d.ts +6 -6
- package/dist/mixins/server/transaction.js.map +1 -1
- package/dist/mixins/server/utils.d.ts +6 -6
- package/dist/mixins/server/utils.js.map +1 -1
- package/dist/packet.js.map +1 -1
- package/dist/react.js +1 -1
- package/dist/react.js.map +3 -3
- package/dist/types.d.ts +5 -0
- package/package.json +57 -57
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FileMeta, FileUploadOptions } from "../../types.js";
|
|
1
|
+
import type { FileMeta, FileUploadOptions, StorageMeta, StorageUploadOptions } from "../../types.js";
|
|
2
2
|
import type { GConstructor, EntityServerClientBase } from "../../client/base.js";
|
|
3
3
|
export declare function FileMixin<TBase extends GConstructor<EntityServerClientBase>>(Base: TBase): {
|
|
4
4
|
new (...args: any[]): {
|
|
@@ -50,6 +50,48 @@ export declare function FileMixin<TBase extends GConstructor<EntityServerClientB
|
|
|
50
50
|
}): string;
|
|
51
51
|
/** 파일 인라인 뷰 URL을 반환합니다. (fetch 없음, URL 조합만) */
|
|
52
52
|
fileUrl(uuid: string): string;
|
|
53
|
+
/** ES 스토리지 업로드 라우트를 파일 API 이름 대신 호출합니다. */
|
|
54
|
+
storageUpload(entity: string, file: File | Blob, opts?: StorageUploadOptions): Promise<{
|
|
55
|
+
ok: boolean;
|
|
56
|
+
uuid: string;
|
|
57
|
+
data: StorageMeta;
|
|
58
|
+
}>;
|
|
59
|
+
/** ES 스토리지 다운로드 라우트를 파일 API 이름 대신 호출합니다. */
|
|
60
|
+
storageDownload(entity: string, uuid: string): Promise<ArrayBuffer>;
|
|
61
|
+
/** ES 스토리지 삭제 라우트를 파일 API 이름 대신 호출합니다. */
|
|
62
|
+
storageDelete(entity: string, uuid: string): Promise<{
|
|
63
|
+
ok: boolean;
|
|
64
|
+
uuid: string;
|
|
65
|
+
deleted: boolean;
|
|
66
|
+
}>;
|
|
67
|
+
/** ES 스토리지 목록 라우트를 파일 API 이름 대신 호출합니다. */
|
|
68
|
+
storageList(entity: string, opts?: {
|
|
69
|
+
refSeq?: number;
|
|
70
|
+
}): Promise<{
|
|
71
|
+
ok: boolean;
|
|
72
|
+
data: {
|
|
73
|
+
items: StorageMeta[];
|
|
74
|
+
total: number;
|
|
75
|
+
};
|
|
76
|
+
}>;
|
|
77
|
+
/** ES 스토리지 메타 라우트를 파일 API 이름 대신 호출합니다. */
|
|
78
|
+
storageMeta(entity: string, uuid: string): Promise<{
|
|
79
|
+
ok: boolean;
|
|
80
|
+
data: StorageMeta;
|
|
81
|
+
}>;
|
|
82
|
+
/** ES 스토리지 임시 토큰 라우트를 파일 API 이름 대신 호출합니다. */
|
|
83
|
+
storageToken(uuid: string): Promise<{
|
|
84
|
+
ok: boolean;
|
|
85
|
+
token: string;
|
|
86
|
+
}>;
|
|
87
|
+
/** ES 스토리지 인라인 뷰/다운로드 URL을 반환합니다. */
|
|
88
|
+
storageViewUrl(uuid: string, opts?: {
|
|
89
|
+
download?: boolean;
|
|
90
|
+
}): string;
|
|
91
|
+
/** ES 스토리지 다운로드 URL을 반환합니다. */
|
|
92
|
+
storageDownloadUrl(uuid: string): string;
|
|
93
|
+
/** ES 스토리지 인라인 뷰 URL을 반환합니다. */
|
|
94
|
+
storageUrl(uuid: string): string;
|
|
53
95
|
baseUrl: string;
|
|
54
96
|
token: string;
|
|
55
97
|
anonymousPacketToken: string;
|
|
@@ -120,13 +162,13 @@ export declare function FileMixin<TBase extends GConstructor<EntityServerClientB
|
|
|
120
162
|
get reqOpts(): import("../../client/request.js").RequestOptions;
|
|
121
163
|
prepareRequest(_withAuth: boolean): Promise<void>;
|
|
122
164
|
get http(): {
|
|
123
|
-
get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
124
|
-
post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
125
|
-
put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
126
|
-
patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
127
|
-
delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
165
|
+
get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
166
|
+
post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
167
|
+
put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
168
|
+
patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
169
|
+
delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
128
170
|
};
|
|
129
|
-
request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
171
|
+
request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
130
172
|
requestBinary(method: string, path: string, body?: unknown, withAuth?: boolean): Promise<ArrayBuffer>;
|
|
131
173
|
requestForm<T>(method: string, path: string, form: FormData, withAuth?: boolean): Promise<T>;
|
|
132
174
|
requestFormBinary(method: string, path: string, form: FormData, withAuth?: boolean): Promise<ArrayBuffer>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
1
|
+
function l(s){return class extends s{async fileUpload(e,t,r={}){const i=new FormData;return i.append("file",t,t instanceof File?t.name:"upload"),r.refSeq!=null&&i.append("ref_seq",String(r.refSeq)),r.isPublic!=null&&i.append("is_public",r.isPublic?"true":"false"),this.requestForm("POST",`/v1/files/${e}/upload`,i)}fileDownload(e,t){return this.requestBinary("POST",`/v1/files/${e}/download/${t}`,{})}fileDelete(e,t){return this.request("POST",`/v1/files/${e}/delete/${t}`,{})}fileList(e,t={}){return this.request("POST",`/v1/files/${e}/list`,t.refSeq?{ref_seq:t.refSeq}:{})}fileMeta(e,t){return this.request("POST",`/v1/files/${e}/meta/${t}`,{})}fileToken(e){return this.request("POST",`/v1/files/token/${e}`,{})}fileViewUrl(e,t={}){const r=t.download?"?download=true":"";return`${this.baseUrl}/v1/files/${e}${r}`}fileUrl(e){return`${this.baseUrl}/v1/files/${e}`}storageUpload(e,t,r={}){return this.fileUpload(e,t,r)}storageDownload(e,t){return this.fileDownload(e,t)}storageDelete(e,t){return this.fileDelete(e,t)}storageList(e,t={}){return this.fileList(e,t)}storageMeta(e,t){return this.fileMeta(e,t)}storageToken(e){return this.fileToken(e)}storageViewUrl(e,t={}){return this.fileViewUrl(e,t)}storageDownloadUrl(e){return this.fileViewUrl(e,{download:!0})}storageUrl(e){return this.fileUrl(e)}}}export{l as FileMixin};
|
|
2
2
|
//# sourceMappingURL=file.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/mixins/server/file.ts"],
|
|
4
|
-
"sourcesContent": ["import type {
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type {\n FileMeta,\n FileUploadOptions,\n StorageMeta,\n StorageUploadOptions,\n} from \"../../types.js\";\nimport type { GConstructor, EntityServerClientBase } from \"../../client/base.js\";\n\nexport function FileMixin<TBase extends GConstructor<EntityServerClientBase>>(\n Base: TBase,\n) {\n return class FileMixinClass extends Base {\n // \u2500\u2500\u2500 \uD30C\uC77C \uAD00\uB9AC \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 * \uD30C\uC77C\uC744 \uC5C5\uB85C\uB4DC\uD569\uB2C8\uB2E4. (multipart/form-data)\n *\n * ```ts\n * const input = document.querySelector('input[type=\"file\"]');\n * const result = await client.fileUpload(\"product\", input.files[0]);\n * console.log(result.data.uuid);\n * ```\n */\n async fileUpload(\n entity: string,\n file: File | Blob,\n opts: FileUploadOptions = {},\n ): Promise<{ ok: boolean; uuid: string; data: FileMeta }> {\n const form = new FormData();\n form.append(\n \"file\",\n file,\n file instanceof File ? file.name : \"upload\",\n );\n if (opts.refSeq != null)\n form.append(\"ref_seq\", String(opts.refSeq));\n if (opts.isPublic != null)\n form.append(\"is_public\", opts.isPublic ? \"true\" : \"false\");\n return this.requestForm(\n \"POST\",\n `/v1/files/${entity}/upload`,\n form,\n );\n }\n\n /** \uD30C\uC77C\uC744 \uB2E4\uC6B4\uB85C\uB4DC\uD569\uB2C8\uB2E4. `ArrayBuffer`\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4. */\n fileDownload(entity: string, uuid: string): Promise<ArrayBuffer> {\n return this.requestBinary(\n \"POST\",\n `/v1/files/${entity}/download/${uuid}`,\n {},\n );\n }\n\n /** \uD30C\uC77C\uC744 \uC0AD\uC81C\uD569\uB2C8\uB2E4. */\n fileDelete(\n entity: string,\n uuid: string,\n ): Promise<{ ok: boolean; uuid: string; deleted: boolean }> {\n return this.request(\n \"POST\",\n `/v1/files/${entity}/delete/${uuid}`,\n {},\n );\n }\n\n /** \uC5D4\uD2F0\uD2F0\uC5D0 \uC5F0\uACB0\uB41C \uD30C\uC77C \uBAA9\uB85D\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4. */\n fileList(\n entity: string,\n opts: { refSeq?: number } = {},\n ): Promise<{\n ok: boolean;\n data: { items: FileMeta[]; total: number };\n }> {\n return this.request(\n \"POST\",\n `/v1/files/${entity}/list`,\n opts.refSeq ? { ref_seq: opts.refSeq } : {},\n );\n }\n\n /** \uD30C\uC77C \uBA54\uD0C0 \uC815\uBCF4\uB97C \uC870\uD68C\uD569\uB2C8\uB2E4. */\n fileMeta(\n entity: string,\n uuid: string,\n ): Promise<{ ok: boolean; data: FileMeta }> {\n return this.request(\n \"POST\",\n `/v1/files/${entity}/meta/${uuid}`,\n {},\n );\n }\n\n /** \uC784\uC2DC \uD30C\uC77C \uC811\uADFC \uD1A0\uD070\uC744 \uBC1C\uAE09\uD569\uB2C8\uB2E4. */\n fileToken(uuid: string): Promise<{ ok: boolean; token: string }> {\n return this.request(\"POST\", `/v1/files/token/${uuid}`, {});\n }\n\n /** \uD30C\uC77C \uC778\uB77C\uC778 \uBDF0/\uB2E4\uC6B4\uB85C\uB4DC URL\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. */\n fileViewUrl(uuid: string, opts: { download?: boolean } = {}): string {\n const qs = opts.download ? \"?download=true\" : \"\";\n return `${this.baseUrl}/v1/files/${uuid}${qs}`;\n }\n\n /** \uD30C\uC77C \uC778\uB77C\uC778 \uBDF0 URL\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. (fetch \uC5C6\uC74C, URL \uC870\uD569\uB9CC) */\n fileUrl(uuid: string): string {\n return `${this.baseUrl}/v1/files/${uuid}`;\n }\n\n // \u2500\u2500\u2500 \uC2A4\uD1A0\uB9AC\uC9C0 \uB77C\uC6B0\uD2B8 \uBCC4\uCE6D \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 /** ES \uC2A4\uD1A0\uB9AC\uC9C0 \uC5C5\uB85C\uB4DC \uB77C\uC6B0\uD2B8\uB97C \uD30C\uC77C API \uC774\uB984 \uB300\uC2E0 \uD638\uCD9C\uD569\uB2C8\uB2E4. */\n storageUpload(\n entity: string,\n file: File | Blob,\n opts: StorageUploadOptions = {},\n ): Promise<{ ok: boolean; uuid: string; data: StorageMeta }> {\n return this.fileUpload(entity, file, opts);\n }\n\n /** ES \uC2A4\uD1A0\uB9AC\uC9C0 \uB2E4\uC6B4\uB85C\uB4DC \uB77C\uC6B0\uD2B8\uB97C \uD30C\uC77C API \uC774\uB984 \uB300\uC2E0 \uD638\uCD9C\uD569\uB2C8\uB2E4. */\n storageDownload(entity: string, uuid: string): Promise<ArrayBuffer> {\n return this.fileDownload(entity, uuid);\n }\n\n /** ES \uC2A4\uD1A0\uB9AC\uC9C0 \uC0AD\uC81C \uB77C\uC6B0\uD2B8\uB97C \uD30C\uC77C API \uC774\uB984 \uB300\uC2E0 \uD638\uCD9C\uD569\uB2C8\uB2E4. */\n storageDelete(\n entity: string,\n uuid: string,\n ): Promise<{ ok: boolean; uuid: string; deleted: boolean }> {\n return this.fileDelete(entity, uuid);\n }\n\n /** ES \uC2A4\uD1A0\uB9AC\uC9C0 \uBAA9\uB85D \uB77C\uC6B0\uD2B8\uB97C \uD30C\uC77C API \uC774\uB984 \uB300\uC2E0 \uD638\uCD9C\uD569\uB2C8\uB2E4. */\n storageList(\n entity: string,\n opts: { refSeq?: number } = {},\n ): Promise<{\n ok: boolean;\n data: { items: StorageMeta[]; total: number };\n }> {\n return this.fileList(entity, opts);\n }\n\n /** ES \uC2A4\uD1A0\uB9AC\uC9C0 \uBA54\uD0C0 \uB77C\uC6B0\uD2B8\uB97C \uD30C\uC77C API \uC774\uB984 \uB300\uC2E0 \uD638\uCD9C\uD569\uB2C8\uB2E4. */\n storageMeta(\n entity: string,\n uuid: string,\n ): Promise<{ ok: boolean; data: StorageMeta }> {\n return this.fileMeta(entity, uuid);\n }\n\n /** ES \uC2A4\uD1A0\uB9AC\uC9C0 \uC784\uC2DC \uD1A0\uD070 \uB77C\uC6B0\uD2B8\uB97C \uD30C\uC77C API \uC774\uB984 \uB300\uC2E0 \uD638\uCD9C\uD569\uB2C8\uB2E4. */\n storageToken(uuid: string): Promise<{ ok: boolean; token: string }> {\n return this.fileToken(uuid);\n }\n\n /** ES \uC2A4\uD1A0\uB9AC\uC9C0 \uC778\uB77C\uC778 \uBDF0/\uB2E4\uC6B4\uB85C\uB4DC URL\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. */\n storageViewUrl(uuid: string, opts: { download?: boolean } = {}): string {\n return this.fileViewUrl(uuid, opts);\n }\n\n /** ES \uC2A4\uD1A0\uB9AC\uC9C0 \uB2E4\uC6B4\uB85C\uB4DC URL\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. */\n storageDownloadUrl(uuid: string): string {\n return this.fileViewUrl(uuid, { download: true });\n }\n\n /** ES \uC2A4\uD1A0\uB9AC\uC9C0 \uC778\uB77C\uC778 \uBDF0 URL\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. */\n storageUrl(uuid: string): string {\n return this.fileUrl(uuid);\n }\n };\n}\n"],
|
|
5
|
+
"mappings": "AAQO,SAASA,EACZC,EACF,CACE,OAAO,cAA6BA,CAAK,CAYrC,MAAM,WACFC,EACAC,EACAC,EAA0B,CAAC,EAC2B,CACtD,MAAMC,EAAO,IAAI,SACjB,OAAAA,EAAK,OACD,OACAF,EACAA,aAAgB,KAAOA,EAAK,KAAO,QACvC,EACIC,EAAK,QAAU,MACfC,EAAK,OAAO,UAAW,OAAOD,EAAK,MAAM,CAAC,EAC1CA,EAAK,UAAY,MACjBC,EAAK,OAAO,YAAaD,EAAK,SAAW,OAAS,OAAO,EACtD,KAAK,YACR,OACA,aAAaF,CAAM,UACnBG,CACJ,CACJ,CAGA,aAAaH,EAAgBI,EAAoC,CAC7D,OAAO,KAAK,cACR,OACA,aAAaJ,CAAM,aAAaI,CAAI,GACpC,CAAC,CACL,CACJ,CAGA,WACIJ,EACAI,EACwD,CACxD,OAAO,KAAK,QACR,OACA,aAAaJ,CAAM,WAAWI,CAAI,GAClC,CAAC,CACL,CACJ,CAGA,SACIJ,EACAE,EAA4B,CAAC,EAI9B,CACC,OAAO,KAAK,QACR,OACA,aAAaF,CAAM,QACnBE,EAAK,OAAS,CAAE,QAASA,EAAK,MAAO,EAAI,CAAC,CAC9C,CACJ,CAGA,SACIF,EACAI,EACwC,CACxC,OAAO,KAAK,QACR,OACA,aAAaJ,CAAM,SAASI,CAAI,GAChC,CAAC,CACL,CACJ,CAGA,UAAUA,EAAuD,CAC7D,OAAO,KAAK,QAAQ,OAAQ,mBAAmBA,CAAI,GAAI,CAAC,CAAC,CAC7D,CAGA,YAAYA,EAAcF,EAA+B,CAAC,EAAW,CACjE,MAAMG,EAAKH,EAAK,SAAW,iBAAmB,GAC9C,MAAO,GAAG,KAAK,OAAO,aAAaE,CAAI,GAAGC,CAAE,EAChD,CAGA,QAAQD,EAAsB,CAC1B,MAAO,GAAG,KAAK,OAAO,aAAaA,CAAI,EAC3C,CAKA,cACIJ,EACAC,EACAC,EAA6B,CAAC,EAC2B,CACzD,OAAO,KAAK,WAAWF,EAAQC,EAAMC,CAAI,CAC7C,CAGA,gBAAgBF,EAAgBI,EAAoC,CAChE,OAAO,KAAK,aAAaJ,EAAQI,CAAI,CACzC,CAGA,cACIJ,EACAI,EACwD,CACxD,OAAO,KAAK,WAAWJ,EAAQI,CAAI,CACvC,CAGA,YACIJ,EACAE,EAA4B,CAAC,EAI9B,CACC,OAAO,KAAK,SAASF,EAAQE,CAAI,CACrC,CAGA,YACIF,EACAI,EAC2C,CAC3C,OAAO,KAAK,SAASJ,EAAQI,CAAI,CACrC,CAGA,aAAaA,EAAuD,CAChE,OAAO,KAAK,UAAUA,CAAI,CAC9B,CAGA,eAAeA,EAAcF,EAA+B,CAAC,EAAW,CACpE,OAAO,KAAK,YAAYE,EAAMF,CAAI,CACtC,CAGA,mBAAmBE,EAAsB,CACrC,OAAO,KAAK,YAAYA,EAAM,CAAE,SAAU,EAAK,CAAC,CACpD,CAGA,WAAWA,EAAsB,CAC7B,OAAO,KAAK,QAAQA,CAAI,CAC5B,CACJ,CACJ",
|
|
6
6
|
"names": ["FileMixin", "Base", "entity", "file", "opts", "form", "uuid", "qs"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/mixins/server/index.ts"],
|
|
4
|
-
"sourcesContent": ["export { AuthMixin, isAuthLoginSuccessResponse } from \"./auth.js\";\
|
|
4
|
+
"sourcesContent": ["export { AuthMixin, isAuthLoginSuccessResponse } from \"./auth.js\";\nexport type {\n AuthLoginResponse,\n AuthLoginRequiresTwoFactorResponse,\n AuthLoginSetupRequiredResponse,\n AuthLoginSuccessData,\n AuthLoginSuccessResponse,\n} from \"./auth.js\";\nexport { EntityMixin } from \"./entity.js\";\nexport { FileMixin } from \"./file.js\";\nexport { PushMixin } from \"./push.js\";\nexport { SmtpMixin } from \"./smtp.js\";\nexport { TransactionMixin } from \"./transaction.js\";\nexport { UtilsMixin } from \"./utils.js\";\nexport { AdminMixin } from \"./admin.js\";\n"],
|
|
5
5
|
"mappings": "AAAA,OAAS,aAAAA,EAAW,8BAAAC,MAAkC,YAQtD,OAAS,eAAAC,MAAmB,cAC5B,OAAS,aAAAC,MAAiB,YAC1B,OAAS,aAAAC,MAAiB,YAC1B,OAAS,aAAAC,MAAiB,YAC1B,OAAS,oBAAAC,MAAwB,mBACjC,OAAS,cAAAC,MAAkB,aAC3B,OAAS,cAAAC,MAAkB",
|
|
6
6
|
"names": ["AuthMixin", "isAuthLoginSuccessResponse", "EntityMixin", "FileMixin", "PushMixin", "SmtpMixin", "TransactionMixin", "UtilsMixin", "AdminMixin"]
|
|
7
7
|
}
|
|
@@ -120,13 +120,13 @@ export declare function PushMixin<TBase extends GConstructor<WithSubmit>>(Base:
|
|
|
120
120
|
get reqOpts(): import("../../client/request.js").RequestOptions;
|
|
121
121
|
prepareRequest(_withAuth: boolean): Promise<void>;
|
|
122
122
|
get http(): {
|
|
123
|
-
get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
124
|
-
post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
125
|
-
put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
126
|
-
patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
127
|
-
delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
123
|
+
get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
124
|
+
post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
125
|
+
put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
126
|
+
patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
127
|
+
delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
128
128
|
};
|
|
129
|
-
request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
129
|
+
request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
130
130
|
requestBinary(method: string, path: string, body?: unknown, withAuth?: boolean): Promise<ArrayBuffer>;
|
|
131
131
|
requestForm<T>(method: string, path: string, form: FormData, withAuth?: boolean): Promise<T>;
|
|
132
132
|
requestFormBinary(method: string, path: string, form: FormData, withAuth?: boolean): Promise<ArrayBuffer>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/mixins/server/push.ts"],
|
|
4
|
-
"sourcesContent": ["import type {\
|
|
4
|
+
"sourcesContent": ["import type {\n EntityListParams,\n EntityListResult,\n RegisterPushDeviceOptions,\n} from \"../../types.js\";\nimport type { GConstructor, EntityServerClientBase } from \"../../client/base.js\";\n\n// entity submit\uC744 \uAC00\uC9C4 base \uD0C0\uC785 (EntityMixin \uC801\uC6A9 \uD6C4)\ntype WithSubmit = EntityServerClientBase & {\n submit(\n entity: string,\n data: Record<string, unknown>,\n opts?: { transactionId?: string; skipHooks?: boolean },\n ): Promise<{ ok: boolean; seq: number }>;\n list<T = unknown>(\n entity: string,\n params?: EntityListParams,\n ): Promise<{ ok: boolean; data: EntityListResult<T> }>;\n};\n\nexport function PushMixin<TBase extends GConstructor<WithSubmit>>(Base: TBase) {\n return class PushMixinClass extends Base {\n // \u2500\u2500\u2500 \uD478\uC2DC submit \uB798\uD37C \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 * \uD478\uC2DC \uAD00\uB828 \uC5D4\uD2F0\uD2F0\uB85C payload\uB97C \uC804\uC1A1(Submit)\uD569\uB2C8\uB2E4.\n * \uB0B4\uBD80\uC801\uC73C\uB85C `submit()` \uBA54\uC11C\uB4DC\uB97C \uD638\uCD9C\uD569\uB2C8\uB2E4.\n */\n push(\n pushEntity: string,\n payload: Record<string, unknown>,\n opts: { transactionId?: string } = {},\n ): Promise<{ ok: boolean; seq: number }> {\n return this.submit(pushEntity, payload, opts);\n }\n\n // \u2500\u2500\u2500 \uD478\uC2DC \uB514\uBC14\uC774\uC2A4 \uAD00\uB9AC \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 /** \uD478\uC2DC \uB85C\uADF8 \uC5D4\uD2F0\uD2F0 \uBAA9\uB85D\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4. */\n pushLogList<T = unknown>(\n params: EntityListParams = {},\n ): Promise<{ ok: boolean; data: EntityListResult<T> }> {\n return this.list<T>(\"push_log\", params);\n }\n\n /** \uACC4\uC815\uC758 \uD478\uC2DC \uB514\uBC14\uC774\uC2A4\uB97C \uB4F1\uB85D\uD569\uB2C8\uB2E4. */\n registerPushDevice(\n accountSeq: number,\n deviceId: string,\n pushToken: string,\n opts: RegisterPushDeviceOptions = {},\n ): Promise<{ ok: boolean; seq: number }> {\n const {\n platform,\n deviceType,\n browser,\n browserVersion,\n pushEnabled = true,\n transactionId,\n } = opts;\n return this.submit(\n \"account_device\",\n {\n id: deviceId,\n account_seq: accountSeq,\n push_token: pushToken,\n push_enabled: pushEnabled,\n ...(platform ? { platform } : {}),\n ...(deviceType ? { device_type: deviceType } : {}),\n ...(browser ? { browser } : {}),\n ...(browserVersion\n ? { browser_version: browserVersion }\n : {}),\n },\n { transactionId },\n );\n }\n\n /** \uB514\uBC14\uC774\uC2A4 \uB808\uCF54\uB4DC\uC758 \uD478\uC2DC \uD1A0\uD070\uC744 \uAC31\uC2E0\uD569\uB2C8\uB2E4. */\n updatePushDeviceToken(\n deviceSeq: number,\n pushToken: string,\n opts: { pushEnabled?: boolean; transactionId?: string } = {},\n ): Promise<{ ok: boolean; seq: number }> {\n const { pushEnabled = true, transactionId } = opts;\n return this.submit(\n \"account_device\",\n {\n seq: deviceSeq,\n push_token: pushToken,\n push_enabled: pushEnabled,\n },\n { transactionId },\n );\n }\n\n /** \uB514\uBC14\uC774\uC2A4\uC758 \uD478\uC2DC \uC218\uC2E0\uC744 \uBE44\uD65C\uC131\uD654\uD569\uB2C8\uB2E4. */\n disablePushDevice(\n deviceSeq: number,\n opts: { transactionId?: string } = {},\n ): Promise<{ ok: boolean; seq: number }> {\n return this.submit(\n \"account_device\",\n { seq: deviceSeq, push_enabled: false },\n { transactionId: opts.transactionId },\n );\n }\n };\n}\n"],
|
|
5
5
|
"mappings": "AAoBO,SAASA,EAAkDC,EAAa,CAC3E,OAAO,cAA6BA,CAAK,CAOrC,KACIC,EACAC,EACAC,EAAmC,CAAC,EACC,CACrC,OAAO,KAAK,OAAOF,EAAYC,EAASC,CAAI,CAChD,CAKA,YACIC,EAA2B,CAAC,EACuB,CACnD,OAAO,KAAK,KAAQ,WAAYA,CAAM,CAC1C,CAGA,mBACIC,EACAC,EACAC,EACAJ,EAAkC,CAAC,EACE,CACrC,KAAM,CACF,SAAAK,EACA,WAAAC,EACA,QAAAC,EACA,eAAAC,EACA,YAAAC,EAAc,GACd,cAAAC,CACJ,EAAIV,EACJ,OAAO,KAAK,OACR,iBACA,CACI,GAAIG,EACJ,YAAaD,EACb,WAAYE,EACZ,aAAcK,EACd,GAAIJ,EAAW,CAAE,SAAAA,CAAS,EAAI,CAAC,EAC/B,GAAIC,EAAa,CAAE,YAAaA,CAAW,EAAI,CAAC,EAChD,GAAIC,EAAU,CAAE,QAAAA,CAAQ,EAAI,CAAC,EAC7B,GAAIC,EACE,CAAE,gBAAiBA,CAAe,EAClC,CAAC,CACX,EACA,CAAE,cAAAE,CAAc,CACpB,CACJ,CAGA,sBACIC,EACAP,EACAJ,EAA0D,CAAC,EACtB,CACrC,KAAM,CAAE,YAAAS,EAAc,GAAM,cAAAC,CAAc,EAAIV,EAC9C,OAAO,KAAK,OACR,iBACA,CACI,IAAKW,EACL,WAAYP,EACZ,aAAcK,CAClB,EACA,CAAE,cAAAC,CAAc,CACpB,CACJ,CAGA,kBACIC,EACAX,EAAmC,CAAC,EACC,CACrC,OAAO,KAAK,OACR,iBACA,CAAE,IAAKW,EAAW,aAAc,EAAM,EACtC,CAAE,cAAeX,EAAK,aAAc,CACxC,CACJ,CACJ,CACJ",
|
|
6
6
|
"names": ["PushMixin", "Base", "pushEntity", "payload", "opts", "params", "accountSeq", "deviceId", "pushToken", "platform", "deviceType", "browser", "browserVersion", "pushEnabled", "transactionId", "deviceSeq"]
|
|
7
7
|
}
|
|
@@ -84,13 +84,13 @@ export declare function SmtpMixin<TBase extends GConstructor<EntityServerClientB
|
|
|
84
84
|
get reqOpts(): import("../../client/request.js").RequestOptions;
|
|
85
85
|
prepareRequest(_withAuth: boolean): Promise<void>;
|
|
86
86
|
get http(): {
|
|
87
|
-
get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
88
|
-
post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
89
|
-
put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
90
|
-
patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
91
|
-
delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
87
|
+
get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
88
|
+
post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
89
|
+
put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
90
|
+
patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
91
|
+
delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
92
92
|
};
|
|
93
|
-
request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
93
|
+
request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
94
94
|
requestBinary(method: string, path: string, body?: unknown, withAuth?: boolean): Promise<ArrayBuffer>;
|
|
95
95
|
requestForm<T>(method: string, path: string, form: FormData, withAuth?: boolean): Promise<T>;
|
|
96
96
|
requestFormBinary(method: string, path: string, form: FormData, withAuth?: boolean): Promise<ArrayBuffer>;
|
|
@@ -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\";\
|
|
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
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
|
}
|
|
@@ -77,13 +77,13 @@ export declare function TransactionMixin<TBase extends GConstructor<EntityServer
|
|
|
77
77
|
get reqOpts(): import("../../client/request.js").RequestOptions;
|
|
78
78
|
prepareRequest(_withAuth: boolean): Promise<void>;
|
|
79
79
|
get http(): {
|
|
80
|
-
get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
81
|
-
post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
82
|
-
put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
83
|
-
patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
84
|
-
delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
80
|
+
get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
81
|
+
post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
82
|
+
put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
83
|
+
patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
84
|
+
delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
85
85
|
};
|
|
86
|
-
request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
86
|
+
request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
87
87
|
requestBinary(method: string, path: string, body?: unknown, withAuth?: boolean): Promise<ArrayBuffer>;
|
|
88
88
|
requestForm<T>(method: string, path: string, form: FormData, withAuth?: boolean): Promise<T>;
|
|
89
89
|
requestFormBinary(method: string, path: string, form: FormData, withAuth?: boolean): Promise<ArrayBuffer>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/mixins/server/transaction.ts"],
|
|
4
|
-
"sourcesContent": ["import type {\
|
|
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
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
|
}
|
|
@@ -133,13 +133,13 @@ export declare function UtilsMixin<TBase extends GConstructor<EntityServerClient
|
|
|
133
133
|
get reqOpts(): import("../../client/request.js").RequestOptions;
|
|
134
134
|
prepareRequest(_withAuth: boolean): Promise<void>;
|
|
135
135
|
get http(): {
|
|
136
|
-
get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
137
|
-
post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
138
|
-
put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
139
|
-
patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
140
|
-
delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
136
|
+
get<T>(path: string, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
137
|
+
post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
138
|
+
put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
139
|
+
patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
140
|
+
delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
141
141
|
};
|
|
142
|
-
request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string
|
|
142
|
+
request<T>(method: string, path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>, requestConfig?: import("../../client/request.js").EntityRequestConfig): Promise<T>;
|
|
143
143
|
requestBinary(method: string, path: string, body?: unknown, withAuth?: boolean): Promise<ArrayBuffer>;
|
|
144
144
|
requestForm<T>(method: string, path: string, form: FormData, withAuth?: boolean): Promise<T>;
|
|
145
145
|
requestFormBinary(method: string, path: string, form: FormData, withAuth?: boolean): Promise<ArrayBuffer>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/mixins/server/utils.ts"],
|
|
4
|
-
"sourcesContent": ["import type {\
|
|
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
5
|
"mappings": "AAOO,SAASA,EACZC,EACF,CACE,OAAO,cAA8BA,CAAK,CACtC,aAAuC,CACnC,OAAO,KAAK,KAAK,IACb,yBACA,EACJ,CACJ,CAEA,eAA4BC,EAAqC,CAC7D,MAAMC,EAAK,IAAI,gBAAgB,CAAE,KAAMD,EAAM,IAAK,CAAC,EAAE,SAAS,EAC9D,OAAO,KAAK,KAAK,IACb,6BAA6BC,CAAE,GAC/B,EACJ,CACJ,CAEA,YAAyBD,EAGV,CACX,MAAMC,EAAK,IAAI,gBAAgB,CAC3B,KAAMD,EAAM,KACZ,QAASA,EAAM,OACnB,CAAC,EAAE,SAAS,EACZ,OAAO,KAAK,KAAK,IACb,0BAA0BC,CAAE,GAC5B,EACJ,CACJ,CAEA,aAA0BD,EAAkC,CACxD,MAAMC,EAAK,IAAI,gBAAgB,CAAE,EAAGD,EAAM,CAAE,CAAC,EAAE,SAAS,EACxD,OAAO,KAAK,KAAK,IACb,2BAA2BC,CAAE,GAC7B,EACJ,CACJ,CAaA,OACIC,EACAC,EAAsB,CAAC,EACH,CACpB,OAAO,KAAK,cAAc,OAAQ,mBAAoB,CAClD,QAAAD,EACA,GAAGC,CACP,CAAC,CACL,CAUA,aACID,EACAC,EAAsB,CAAC,EACiC,CACxD,OAAO,KAAK,QAAQ,OAAQ,0BAA2B,CACnD,QAAAD,EACA,GAAGC,CACP,CAAC,CACL,CAGA,WACID,EACAC,EAAsB,CAAC,EACe,CACtC,OAAO,KAAK,QAAQ,OAAQ,wBAAyB,CACjD,QAAAD,EACA,GAAGC,CACP,CAAC,CACL,CASA,QACID,EACAC,EAAuB,CAAC,EACJ,CACpB,OAAO,KAAK,cAAc,OAAQ,oBAAqB,CACnD,QAAAD,EACA,GAAGC,CACP,CAAC,CACL,CAYA,QACIC,EACAD,EAAuB,CAAC,EACJ,CACpB,MAAME,EAAO,IAAI,SACjBA,EAAK,OACD,OACA,IAAI,KAAK,CAACD,CAAO,EAAG,CAAE,KAAM,iBAAkB,CAAC,EAC/C,cACJ,EACA,MAAME,EAAS,IAAI,gBACfH,EAAK,KAAO,MAAMG,EAAO,IAAI,MAAO,OAAOH,EAAK,GAAG,CAAC,EACpDA,EAAK,WAAa,MAClBG,EAAO,IAAI,aAAc,OAAOH,EAAK,SAAS,CAAC,EAC/CA,EAAK,UAAY,MACjBG,EAAO,IAAI,YAAa,OAAOH,EAAK,QAAQ,CAAC,EACjD,MAAMF,EAAKK,EAAO,SAAS,EACrBC,EAAO,qBAAuBN,EAAK,IAAIA,CAAE,GAAK,IACpD,OAAO,KAAK,kBAAkB,OAAQM,EAAMF,CAAI,CACpD,CAEA,iBACIG,EACAL,EAAuB,CAAC,EACJ,CACpB,OAAO,KAAK,cACR,OACA,qBAAqBK,CAAO,GAC5BL,CACJ,CACJ,CAEA,QACIC,EACAD,EAAuB,CAAC,EACJ,CACpB,MAAME,EAAO,IAAI,SACjBA,EAAK,OACD,OACA,IAAI,KAAK,CAACD,CAAO,EAAG,CAAE,KAAM,iBAAkB,CAAC,EAC/C,cACJ,EACA,MAAME,EAAS,IAAI,gBACfH,EAAK,KAAO,MAAMG,EAAO,IAAI,MAAO,OAAOH,EAAK,GAAG,CAAC,EACpDA,EAAK,WAAa,MAClBG,EAAO,IAAI,aAAc,OAAOH,EAAK,SAAS,CAAC,EAC/CA,EAAK,UAAY,MACjBG,EAAO,IAAI,YAAa,OAAOH,EAAK,QAAQ,CAAC,EACjD,MAAMF,EAAKK,EAAO,SAAS,EACrBC,EAAO,qBAAuBN,EAAK,IAAIA,CAAE,GAAK,IACpD,OAAO,KAAK,kBAAkB,OAAQM,EAAMF,CAAI,CACpD,CAEA,iBACIG,EACAL,EAAuB,CAAC,EACJ,CACpB,OAAO,KAAK,cACR,OACA,qBAAqBK,CAAO,GAC5BL,CACJ,CACJ,CACJ,CACJ",
|
|
6
6
|
"names": ["UtilsMixin", "Base", "query", "qs", "content", "opts", "pdfData", "form", "params", "path", "fileSeq"]
|
|
7
7
|
}
|
package/dist/packet.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/packet.ts"],
|
|
4
|
-
"sourcesContent": ["// @ts-ignore\
|
|
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"],
|
|
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
|
}
|