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.
Files changed (76) hide show
  1. package/README.md +362 -362
  2. package/dist/EntityAppServerApi.d.ts +96 -96
  3. package/dist/EntityAppServerApi.js.map +1 -1
  4. package/dist/EntityServerApi.d.ts +81 -48
  5. package/dist/EntityServerApi.js.map +1 -1
  6. package/dist/client/base.d.ts +7 -7
  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.d.ts +1 -0
  12. package/dist/client/request.js +1 -1
  13. package/dist/client/request.js.map +3 -3
  14. package/dist/client/utils.js.map +1 -1
  15. package/dist/hooks/useEntityAppServer.js.map +1 -1
  16. package/dist/hooks/useEntityClient.js.map +1 -1
  17. package/dist/hooks/useEntityServer.js.map +1 -1
  18. package/dist/index.js +1 -1
  19. package/dist/index.js.map +3 -3
  20. package/dist/mixins/app/index.js.map +1 -1
  21. package/dist/mixins/app/plugins/alimtalk.d.ts +6 -6
  22. package/dist/mixins/app/plugins/alimtalk.js.map +1 -1
  23. package/dist/mixins/app/plugins/friendtalk.d.ts +6 -6
  24. package/dist/mixins/app/plugins/friendtalk.js.map +1 -1
  25. package/dist/mixins/app/plugins/holidays.d.ts +6 -6
  26. package/dist/mixins/app/plugins/holidays.js.map +1 -1
  27. package/dist/mixins/app/plugins/identity.d.ts +6 -6
  28. package/dist/mixins/app/plugins/identity.js.map +1 -1
  29. package/dist/mixins/app/plugins/index.js.map +1 -1
  30. package/dist/mixins/app/plugins/llm.d.ts +6 -6
  31. package/dist/mixins/app/plugins/llm.js.map +1 -1
  32. package/dist/mixins/app/plugins/ocr.d.ts +6 -6
  33. package/dist/mixins/app/plugins/ocr.js.map +1 -1
  34. package/dist/mixins/app/plugins/pg.d.ts +6 -6
  35. package/dist/mixins/app/plugins/pg.js.map +1 -1
  36. package/dist/mixins/app/plugins/push.d.ts +6 -6
  37. package/dist/mixins/app/plugins/push.js.map +1 -1
  38. package/dist/mixins/app/plugins/sms.d.ts +6 -6
  39. package/dist/mixins/app/plugins/sms.js.map +1 -1
  40. package/dist/mixins/app/plugins/taxinvoice.d.ts +6 -6
  41. package/dist/mixins/app/plugins/taxinvoice.js.map +1 -1
  42. package/dist/mixins/app/routes/account.d.ts +6 -6
  43. package/dist/mixins/app/routes/account.js.map +1 -1
  44. package/dist/mixins/app/routes/board.d.ts +6 -6
  45. package/dist/mixins/app/routes/board.js.map +1 -1
  46. package/dist/mixins/app/routes/email-verify.d.ts +6 -6
  47. package/dist/mixins/app/routes/email-verify.js.map +1 -1
  48. package/dist/mixins/app/routes/oauth.d.ts +6 -6
  49. package/dist/mixins/app/routes/oauth.js.map +1 -1
  50. package/dist/mixins/app/routes/password-reset.d.ts +6 -6
  51. package/dist/mixins/app/routes/password-reset.js.map +1 -1
  52. package/dist/mixins/app/routes/two-factor.d.ts +6 -6
  53. package/dist/mixins/app/routes/two-factor.js.map +1 -1
  54. package/dist/mixins/server/admin.d.ts +6 -6
  55. package/dist/mixins/server/admin.js.map +1 -1
  56. package/dist/mixins/server/auth.d.ts +6 -6
  57. package/dist/mixins/server/auth.js.map +1 -1
  58. package/dist/mixins/server/entity.d.ts +6 -6
  59. package/dist/mixins/server/entity.js.map +1 -1
  60. package/dist/mixins/server/file.d.ts +49 -7
  61. package/dist/mixins/server/file.js +1 -1
  62. package/dist/mixins/server/file.js.map +2 -2
  63. package/dist/mixins/server/index.js.map +1 -1
  64. package/dist/mixins/server/push.d.ts +6 -6
  65. package/dist/mixins/server/push.js.map +1 -1
  66. package/dist/mixins/server/smtp.d.ts +6 -6
  67. package/dist/mixins/server/smtp.js.map +1 -1
  68. package/dist/mixins/server/transaction.d.ts +6 -6
  69. package/dist/mixins/server/transaction.js.map +1 -1
  70. package/dist/mixins/server/utils.d.ts +6 -6
  71. package/dist/mixins/server/utils.js.map +1 -1
  72. package/dist/packet.js.map +1 -1
  73. package/dist/react.js +1 -1
  74. package/dist/react.js.map +3 -3
  75. package/dist/types.d.ts +5 -0
  76. 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>): Promise<T>;
124
- post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
125
- put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
126
- patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
127
- delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
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>): Promise<T>;
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 o(s){return class extends s{async fileUpload(e,i,t={}){const r=new FormData;return r.append("file",i,i instanceof File?i.name:"upload"),t.refSeq!=null&&r.append("ref_seq",String(t.refSeq)),t.isPublic!=null&&r.append("is_public",t.isPublic?"true":"false"),this.requestForm("POST",`/v1/files/${e}/upload`,r)}fileDownload(e,i){return this.requestBinary("POST",`/v1/files/${e}/download/${i}`,{})}fileDelete(e,i){return this.request("POST",`/v1/files/${e}/delete/${i}`,{})}fileList(e,i={}){return this.request("POST",`/v1/files/${e}/list`,i.refSeq?{ref_seq:i.refSeq}:{})}fileMeta(e,i){return this.request("POST",`/v1/files/${e}/meta/${i}`,{})}fileToken(e){return this.request("POST",`/v1/files/token/${e}`,{})}fileViewUrl(e,i={}){const t=i.download?"?download=true":"";return`${this.baseUrl}/v1/files/${e}${t}`}fileUrl(e){return`${this.baseUrl}/v1/files/${e}`}}}export{o as FileMixin};
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 { FileMeta, FileUploadOptions } from \"../../types.js\";\r\nimport type { GConstructor, EntityServerClientBase } from \"../../client/base.js\";\r\n\r\nexport function FileMixin<TBase extends GConstructor<EntityServerClientBase>>(\r\n Base: TBase,\r\n) {\r\n return class FileMixinClass extends Base {\r\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\r\n\r\n /**\r\n * \uD30C\uC77C\uC744 \uC5C5\uB85C\uB4DC\uD569\uB2C8\uB2E4. (multipart/form-data)\r\n *\r\n * ```ts\r\n * const input = document.querySelector('input[type=\"file\"]');\r\n * const result = await client.fileUpload(\"product\", input.files[0]);\r\n * console.log(result.data.uuid);\r\n * ```\r\n */\r\n async fileUpload(\r\n entity: string,\r\n file: File | Blob,\r\n opts: FileUploadOptions = {},\r\n ): Promise<{ ok: boolean; uuid: string; data: FileMeta }> {\r\n const form = new FormData();\r\n form.append(\r\n \"file\",\r\n file,\r\n file instanceof File ? file.name : \"upload\",\r\n );\r\n if (opts.refSeq != null)\r\n form.append(\"ref_seq\", String(opts.refSeq));\r\n if (opts.isPublic != null)\r\n form.append(\"is_public\", opts.isPublic ? \"true\" : \"false\");\r\n return this.requestForm(\r\n \"POST\",\r\n `/v1/files/${entity}/upload`,\r\n form,\r\n );\r\n }\r\n\r\n /** \uD30C\uC77C\uC744 \uB2E4\uC6B4\uB85C\uB4DC\uD569\uB2C8\uB2E4. `ArrayBuffer`\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4. */\r\n fileDownload(entity: string, uuid: string): Promise<ArrayBuffer> {\r\n return this.requestBinary(\r\n \"POST\",\r\n `/v1/files/${entity}/download/${uuid}`,\r\n {},\r\n );\r\n }\r\n\r\n /** \uD30C\uC77C\uC744 \uC0AD\uC81C\uD569\uB2C8\uB2E4. */\r\n fileDelete(\r\n entity: string,\r\n uuid: string,\r\n ): Promise<{ ok: boolean; uuid: string; deleted: boolean }> {\r\n return this.request(\r\n \"POST\",\r\n `/v1/files/${entity}/delete/${uuid}`,\r\n {},\r\n );\r\n }\r\n\r\n /** \uC5D4\uD2F0\uD2F0\uC5D0 \uC5F0\uACB0\uB41C \uD30C\uC77C \uBAA9\uB85D\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4. */\r\n fileList(\r\n entity: string,\r\n opts: { refSeq?: number } = {},\r\n ): Promise<{\r\n ok: boolean;\r\n data: { items: FileMeta[]; total: number };\r\n }> {\r\n return this.request(\r\n \"POST\",\r\n `/v1/files/${entity}/list`,\r\n opts.refSeq ? { ref_seq: opts.refSeq } : {},\r\n );\r\n }\r\n\r\n /** \uD30C\uC77C \uBA54\uD0C0 \uC815\uBCF4\uB97C \uC870\uD68C\uD569\uB2C8\uB2E4. */\r\n fileMeta(\r\n entity: string,\r\n uuid: string,\r\n ): Promise<{ ok: boolean; data: FileMeta }> {\r\n return this.request(\r\n \"POST\",\r\n `/v1/files/${entity}/meta/${uuid}`,\r\n {},\r\n );\r\n }\r\n\r\n /** \uC784\uC2DC \uD30C\uC77C \uC811\uADFC \uD1A0\uD070\uC744 \uBC1C\uAE09\uD569\uB2C8\uB2E4. */\r\n fileToken(uuid: string): Promise<{ ok: boolean; token: string }> {\r\n return this.request(\"POST\", `/v1/files/token/${uuid}`, {});\r\n }\r\n\r\n /** \uD30C\uC77C \uC778\uB77C\uC778 \uBDF0/\uB2E4\uC6B4\uB85C\uB4DC URL\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. */\r\n fileViewUrl(uuid: string, opts: { download?: boolean } = {}): string {\r\n const qs = opts.download ? \"?download=true\" : \"\";\r\n return `${this.baseUrl}/v1/files/${uuid}${qs}`;\r\n }\r\n\r\n /** \uD30C\uC77C \uC778\uB77C\uC778 \uBDF0 URL\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4. (fetch \uC5C6\uC74C, URL \uC870\uD569\uB9CC) */\r\n fileUrl(uuid: string): string {\r\n return `${this.baseUrl}/v1/files/${uuid}`;\r\n }\r\n };\r\n}\r\n"],
5
- "mappings": "AAGO,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,CACJ,CACJ",
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\";\r\nexport type {\r\n AuthLoginResponse,\r\n AuthLoginRequiresTwoFactorResponse,\r\n AuthLoginSetupRequiredResponse,\r\n AuthLoginSuccessData,\r\n AuthLoginSuccessResponse,\r\n} from \"./auth.js\";\r\nexport { EntityMixin } from \"./entity.js\";\r\nexport { FileMixin } from \"./file.js\";\r\nexport { PushMixin } from \"./push.js\";\r\nexport { SmtpMixin } from \"./smtp.js\";\r\nexport { TransactionMixin } from \"./transaction.js\";\r\nexport { UtilsMixin } from \"./utils.js\";\r\nexport { AdminMixin } from \"./admin.js\";\r\n"],
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>): Promise<T>;
124
- post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
125
- put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
126
- patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
127
- delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
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>): Promise<T>;
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 {\r\n EntityListParams,\r\n EntityListResult,\r\n RegisterPushDeviceOptions,\r\n} from \"../../types.js\";\r\nimport type { GConstructor, EntityServerClientBase } from \"../../client/base.js\";\r\n\r\n// entity submit\uC744 \uAC00\uC9C4 base \uD0C0\uC785 (EntityMixin \uC801\uC6A9 \uD6C4)\r\ntype WithSubmit = EntityServerClientBase & {\r\n submit(\r\n entity: string,\r\n data: Record<string, unknown>,\r\n opts?: { transactionId?: string; skipHooks?: boolean },\r\n ): Promise<{ ok: boolean; seq: number }>;\r\n list<T = unknown>(\r\n entity: string,\r\n params?: EntityListParams,\r\n ): Promise<{ ok: boolean; data: EntityListResult<T> }>;\r\n};\r\n\r\nexport function PushMixin<TBase extends GConstructor<WithSubmit>>(Base: TBase) {\r\n return class PushMixinClass extends Base {\r\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\r\n\r\n /**\r\n * \uD478\uC2DC \uAD00\uB828 \uC5D4\uD2F0\uD2F0\uB85C payload\uB97C \uC804\uC1A1(Submit)\uD569\uB2C8\uB2E4.\r\n * \uB0B4\uBD80\uC801\uC73C\uB85C `submit()` \uBA54\uC11C\uB4DC\uB97C \uD638\uCD9C\uD569\uB2C8\uB2E4.\r\n */\r\n push(\r\n pushEntity: string,\r\n payload: Record<string, unknown>,\r\n opts: { transactionId?: string } = {},\r\n ): Promise<{ ok: boolean; seq: number }> {\r\n return this.submit(pushEntity, payload, opts);\r\n }\r\n\r\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\r\n\r\n /** \uD478\uC2DC \uB85C\uADF8 \uC5D4\uD2F0\uD2F0 \uBAA9\uB85D\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4. */\r\n pushLogList<T = unknown>(\r\n params: EntityListParams = {},\r\n ): Promise<{ ok: boolean; data: EntityListResult<T> }> {\r\n return this.list<T>(\"push_log\", params);\r\n }\r\n\r\n /** \uACC4\uC815\uC758 \uD478\uC2DC \uB514\uBC14\uC774\uC2A4\uB97C \uB4F1\uB85D\uD569\uB2C8\uB2E4. */\r\n registerPushDevice(\r\n accountSeq: number,\r\n deviceId: string,\r\n pushToken: string,\r\n opts: RegisterPushDeviceOptions = {},\r\n ): Promise<{ ok: boolean; seq: number }> {\r\n const {\r\n platform,\r\n deviceType,\r\n browser,\r\n browserVersion,\r\n pushEnabled = true,\r\n transactionId,\r\n } = opts;\r\n return this.submit(\r\n \"account_device\",\r\n {\r\n id: deviceId,\r\n account_seq: accountSeq,\r\n push_token: pushToken,\r\n push_enabled: pushEnabled,\r\n ...(platform ? { platform } : {}),\r\n ...(deviceType ? { device_type: deviceType } : {}),\r\n ...(browser ? { browser } : {}),\r\n ...(browserVersion\r\n ? { browser_version: browserVersion }\r\n : {}),\r\n },\r\n { transactionId },\r\n );\r\n }\r\n\r\n /** \uB514\uBC14\uC774\uC2A4 \uB808\uCF54\uB4DC\uC758 \uD478\uC2DC \uD1A0\uD070\uC744 \uAC31\uC2E0\uD569\uB2C8\uB2E4. */\r\n updatePushDeviceToken(\r\n deviceSeq: number,\r\n pushToken: string,\r\n opts: { pushEnabled?: boolean; transactionId?: string } = {},\r\n ): Promise<{ ok: boolean; seq: number }> {\r\n const { pushEnabled = true, transactionId } = opts;\r\n return this.submit(\r\n \"account_device\",\r\n {\r\n seq: deviceSeq,\r\n push_token: pushToken,\r\n push_enabled: pushEnabled,\r\n },\r\n { transactionId },\r\n );\r\n }\r\n\r\n /** \uB514\uBC14\uC774\uC2A4\uC758 \uD478\uC2DC \uC218\uC2E0\uC744 \uBE44\uD65C\uC131\uD654\uD569\uB2C8\uB2E4. */\r\n disablePushDevice(\r\n deviceSeq: number,\r\n opts: { transactionId?: string } = {},\r\n ): Promise<{ ok: boolean; seq: number }> {\r\n return this.submit(\r\n \"account_device\",\r\n { seq: deviceSeq, push_enabled: false },\r\n { transactionId: opts.transactionId },\r\n );\r\n }\r\n };\r\n}\r\n"],
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>): Promise<T>;
88
- post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
89
- put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
90
- patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
91
- delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
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>): Promise<T>;
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\";\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"],
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>): Promise<T>;
81
- post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
82
- put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
83
- patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
84
- delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
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>): Promise<T>;
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 {\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"],
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>): Promise<T>;
137
- post<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
138
- put<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
139
- patch<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
140
- delete<T>(path: string, body?: unknown, withAuth?: boolean, extraHeaders?: Record<string, string>): Promise<T>;
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>): Promise<T>;
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 {\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"],
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
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/packet.ts"],
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"],
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
  }