@simplysm/service-common 13.0.0-beta.11

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 (158) hide show
  1. package/README.md +336 -0
  2. package/dist/core-common/src/common.types.d.ts +74 -0
  3. package/dist/core-common/src/common.types.d.ts.map +1 -0
  4. package/dist/core-common/src/env.d.ts +6 -0
  5. package/dist/core-common/src/env.d.ts.map +1 -0
  6. package/dist/core-common/src/errors/argument-error.d.ts +25 -0
  7. package/dist/core-common/src/errors/argument-error.d.ts.map +1 -0
  8. package/dist/core-common/src/errors/not-implemented-error.d.ts +29 -0
  9. package/dist/core-common/src/errors/not-implemented-error.d.ts.map +1 -0
  10. package/dist/core-common/src/errors/sd-error.d.ts +27 -0
  11. package/dist/core-common/src/errors/sd-error.d.ts.map +1 -0
  12. package/dist/core-common/src/errors/timeout-error.d.ts +31 -0
  13. package/dist/core-common/src/errors/timeout-error.d.ts.map +1 -0
  14. package/dist/core-common/src/extensions/arr-ext.d.ts +15 -0
  15. package/dist/core-common/src/extensions/arr-ext.d.ts.map +1 -0
  16. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts +19 -0
  17. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts.map +1 -0
  18. package/dist/core-common/src/extensions/arr-ext.types.d.ts +215 -0
  19. package/dist/core-common/src/extensions/arr-ext.types.d.ts.map +1 -0
  20. package/dist/core-common/src/extensions/map-ext.d.ts +57 -0
  21. package/dist/core-common/src/extensions/map-ext.d.ts.map +1 -0
  22. package/dist/core-common/src/extensions/set-ext.d.ts +36 -0
  23. package/dist/core-common/src/extensions/set-ext.d.ts.map +1 -0
  24. package/dist/core-common/src/features/debounce-queue.d.ts +53 -0
  25. package/dist/core-common/src/features/debounce-queue.d.ts.map +1 -0
  26. package/dist/core-common/src/features/event-emitter.d.ts +66 -0
  27. package/dist/core-common/src/features/event-emitter.d.ts.map +1 -0
  28. package/dist/core-common/src/features/serial-queue.d.ts +47 -0
  29. package/dist/core-common/src/features/serial-queue.d.ts.map +1 -0
  30. package/dist/core-common/src/index.d.ts +32 -0
  31. package/dist/core-common/src/index.d.ts.map +1 -0
  32. package/dist/core-common/src/types/date-only.d.ts +152 -0
  33. package/dist/core-common/src/types/date-only.d.ts.map +1 -0
  34. package/dist/core-common/src/types/date-time.d.ts +96 -0
  35. package/dist/core-common/src/types/date-time.d.ts.map +1 -0
  36. package/dist/core-common/src/types/lazy-gc-map.d.ts +80 -0
  37. package/dist/core-common/src/types/lazy-gc-map.d.ts.map +1 -0
  38. package/dist/core-common/src/types/time.d.ts +68 -0
  39. package/dist/core-common/src/types/time.d.ts.map +1 -0
  40. package/dist/core-common/src/types/uuid.d.ts +35 -0
  41. package/dist/core-common/src/types/uuid.d.ts.map +1 -0
  42. package/dist/core-common/src/utils/bytes.d.ts +51 -0
  43. package/dist/core-common/src/utils/bytes.d.ts.map +1 -0
  44. package/dist/core-common/src/utils/date-format.d.ts +90 -0
  45. package/dist/core-common/src/utils/date-format.d.ts.map +1 -0
  46. package/dist/core-common/src/utils/json.d.ts +34 -0
  47. package/dist/core-common/src/utils/json.d.ts.map +1 -0
  48. package/dist/core-common/src/utils/num.d.ts +60 -0
  49. package/dist/core-common/src/utils/num.d.ts.map +1 -0
  50. package/dist/core-common/src/utils/obj.d.ts +258 -0
  51. package/dist/core-common/src/utils/obj.d.ts.map +1 -0
  52. package/dist/core-common/src/utils/path.d.ts +23 -0
  53. package/dist/core-common/src/utils/path.d.ts.map +1 -0
  54. package/dist/core-common/src/utils/primitive.d.ts +18 -0
  55. package/dist/core-common/src/utils/primitive.d.ts.map +1 -0
  56. package/dist/core-common/src/utils/str.d.ts +103 -0
  57. package/dist/core-common/src/utils/str.d.ts.map +1 -0
  58. package/dist/core-common/src/utils/template-strings.d.ts +84 -0
  59. package/dist/core-common/src/utils/template-strings.d.ts.map +1 -0
  60. package/dist/core-common/src/utils/transferable.d.ts +47 -0
  61. package/dist/core-common/src/utils/transferable.d.ts.map +1 -0
  62. package/dist/core-common/src/utils/wait.d.ts +19 -0
  63. package/dist/core-common/src/utils/wait.d.ts.map +1 -0
  64. package/dist/core-common/src/utils/xml.d.ts +36 -0
  65. package/dist/core-common/src/utils/xml.d.ts.map +1 -0
  66. package/dist/core-common/src/zip/sd-zip.d.ts +80 -0
  67. package/dist/core-common/src/zip/sd-zip.d.ts.map +1 -0
  68. package/dist/index.js +8 -0
  69. package/dist/index.js.map +7 -0
  70. package/dist/orm-common/src/db-context.d.ts +669 -0
  71. package/dist/orm-common/src/db-context.d.ts.map +1 -0
  72. package/dist/orm-common/src/errors/db-transaction-error.d.ts +51 -0
  73. package/dist/orm-common/src/errors/db-transaction-error.d.ts.map +1 -0
  74. package/dist/orm-common/src/exec/executable.d.ts +79 -0
  75. package/dist/orm-common/src/exec/executable.d.ts.map +1 -0
  76. package/dist/orm-common/src/exec/queryable.d.ts +708 -0
  77. package/dist/orm-common/src/exec/queryable.d.ts.map +1 -0
  78. package/dist/orm-common/src/exec/search-parser.d.ts +72 -0
  79. package/dist/orm-common/src/exec/search-parser.d.ts.map +1 -0
  80. package/dist/orm-common/src/expr/expr-unit.d.ts +25 -0
  81. package/dist/orm-common/src/expr/expr-unit.d.ts.map +1 -0
  82. package/dist/orm-common/src/expr/expr.d.ts +1369 -0
  83. package/dist/orm-common/src/expr/expr.d.ts.map +1 -0
  84. package/dist/orm-common/src/index.d.ts +32 -0
  85. package/dist/orm-common/src/index.d.ts.map +1 -0
  86. package/dist/orm-common/src/models/system-migration.d.ts +10 -0
  87. package/dist/orm-common/src/models/system-migration.d.ts.map +1 -0
  88. package/dist/orm-common/src/query-builder/base/expr-renderer-base.d.ts +95 -0
  89. package/dist/orm-common/src/query-builder/base/expr-renderer-base.d.ts.map +1 -0
  90. package/dist/orm-common/src/query-builder/base/query-builder-base.d.ts +66 -0
  91. package/dist/orm-common/src/query-builder/base/query-builder-base.d.ts.map +1 -0
  92. package/dist/orm-common/src/query-builder/mssql/mssql-expr-renderer.d.ts +84 -0
  93. package/dist/orm-common/src/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -0
  94. package/dist/orm-common/src/query-builder/mssql/mssql-query-builder.d.ts +45 -0
  95. package/dist/orm-common/src/query-builder/mssql/mssql-query-builder.d.ts.map +1 -0
  96. package/dist/orm-common/src/query-builder/mysql/mysql-expr-renderer.d.ts +84 -0
  97. package/dist/orm-common/src/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -0
  98. package/dist/orm-common/src/query-builder/mysql/mysql-query-builder.d.ts +54 -0
  99. package/dist/orm-common/src/query-builder/mysql/mysql-query-builder.d.ts.map +1 -0
  100. package/dist/orm-common/src/query-builder/postgresql/postgresql-expr-renderer.d.ts +84 -0
  101. package/dist/orm-common/src/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -0
  102. package/dist/orm-common/src/query-builder/postgresql/postgresql-query-builder.d.ts +52 -0
  103. package/dist/orm-common/src/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -0
  104. package/dist/orm-common/src/query-builder/query-builder.d.ts +7 -0
  105. package/dist/orm-common/src/query-builder/query-builder.d.ts.map +1 -0
  106. package/dist/orm-common/src/schema/factory/column-builder.d.ts +394 -0
  107. package/dist/orm-common/src/schema/factory/column-builder.d.ts.map +1 -0
  108. package/dist/orm-common/src/schema/factory/index-builder.d.ts +151 -0
  109. package/dist/orm-common/src/schema/factory/index-builder.d.ts.map +1 -0
  110. package/dist/orm-common/src/schema/factory/relation-builder.d.ts +337 -0
  111. package/dist/orm-common/src/schema/factory/relation-builder.d.ts.map +1 -0
  112. package/dist/orm-common/src/schema/procedure-builder.d.ts +202 -0
  113. package/dist/orm-common/src/schema/procedure-builder.d.ts.map +1 -0
  114. package/dist/orm-common/src/schema/table-builder.d.ts +259 -0
  115. package/dist/orm-common/src/schema/table-builder.d.ts.map +1 -0
  116. package/dist/orm-common/src/schema/view-builder.d.ts +183 -0
  117. package/dist/orm-common/src/schema/view-builder.d.ts.map +1 -0
  118. package/dist/orm-common/src/types/column.d.ts +172 -0
  119. package/dist/orm-common/src/types/column.d.ts.map +1 -0
  120. package/dist/orm-common/src/types/db.d.ts +175 -0
  121. package/dist/orm-common/src/types/db.d.ts.map +1 -0
  122. package/dist/orm-common/src/types/expr.d.ts +474 -0
  123. package/dist/orm-common/src/types/expr.d.ts.map +1 -0
  124. package/dist/orm-common/src/types/query-def.d.ts +351 -0
  125. package/dist/orm-common/src/types/query-def.d.ts.map +1 -0
  126. package/dist/orm-common/src/utils/result-parser.d.ts +38 -0
  127. package/dist/orm-common/src/utils/result-parser.d.ts.map +1 -0
  128. package/dist/protocol/protocol.types.js +16 -0
  129. package/dist/protocol/protocol.types.js.map +7 -0
  130. package/dist/protocol/service-protocol.js +134 -0
  131. package/dist/protocol/service-protocol.js.map +7 -0
  132. package/dist/service-common/src/index.d.ts +8 -0
  133. package/dist/service-common/src/index.d.ts.map +1 -0
  134. package/dist/service-common/src/protocol/protocol.types.d.ts +100 -0
  135. package/dist/service-common/src/protocol/protocol.types.d.ts.map +1 -0
  136. package/dist/service-common/src/protocol/service-protocol.d.ts +63 -0
  137. package/dist/service-common/src/protocol/service-protocol.d.ts.map +1 -0
  138. package/dist/service-common/src/service-types/auto-update-service.types.d.ts +17 -0
  139. package/dist/service-common/src/service-types/auto-update-service.types.d.ts.map +1 -0
  140. package/dist/service-common/src/service-types/crypto-service.types.d.ts +22 -0
  141. package/dist/service-common/src/service-types/crypto-service.types.d.ts.map +1 -0
  142. package/dist/service-common/src/service-types/orm-service.types.d.ts +30 -0
  143. package/dist/service-common/src/service-types/orm-service.types.d.ts.map +1 -0
  144. package/dist/service-common/src/service-types/smtp-service.types.d.ts +55 -0
  145. package/dist/service-common/src/service-types/smtp-service.types.d.ts.map +1 -0
  146. package/dist/service-common/src/types.d.ts +43 -0
  147. package/dist/service-common/src/types.d.ts.map +1 -0
  148. package/dist/service-types/auto-update-service.types.js +1 -0
  149. package/dist/service-types/auto-update-service.types.js.map +7 -0
  150. package/dist/service-types/crypto-service.types.js +1 -0
  151. package/dist/service-types/crypto-service.types.js.map +7 -0
  152. package/dist/service-types/orm-service.types.js +1 -0
  153. package/dist/service-types/orm-service.types.js.map +7 -0
  154. package/dist/service-types/smtp-service.types.js +1 -0
  155. package/dist/service-types/smtp-service.types.js.map +7 -0
  156. package/dist/types.js +6 -0
  157. package/dist/types.js.map +7 -0
  158. package/package.json +23 -0
@@ -0,0 +1,100 @@
1
+ /** 서비스 프로토콜 설정 */
2
+ export declare const PROTOCOL_CONFIG: {
3
+ /** 최대 메시지 크기 (100MB) */
4
+ readonly MAX_TOTAL_SIZE: number;
5
+ /** 청킹 임계값 (3MB) */
6
+ readonly SPLIT_MESSAGE_SIZE: number;
7
+ /** 청크 크기 (300KB) */
8
+ readonly CHUNK_SIZE: number;
9
+ /** GC 주기 (10초) */
10
+ readonly GC_INTERVAL: number;
11
+ /** 미완성 메시지 만료 시간 (60초) */
12
+ readonly EXPIRE_TIME: number;
13
+ };
14
+ export type ServiceMessage = ServiceReloadMessage | ServiceRequestMessage | ServiceAuthMessage | ServiceProgressMessage | ServiceResponseMessage | ServiceErrorMessage | ServiceAddEventListenerMessage | ServiceRemoveEventListenerMessage | ServiceGetEventListenerInfosMessage | ServiceEmitEventMessage | ServiceEventMessage;
15
+ export type ServiceServerMessage = ServiceReloadMessage | ServiceResponseMessage | ServiceErrorMessage | ServiceEventMessage;
16
+ export type ServiceServerRawMessage = ServiceProgressMessage | ServiceServerMessage;
17
+ export type ServiceClientMessage = ServiceRequestMessage | ServiceAuthMessage | ServiceAddEventListenerMessage | ServiceRemoveEventListenerMessage | ServiceGetEventListenerInfosMessage | ServiceEmitEventMessage;
18
+ /** 서버: 클라이언트에게 reload 명령 */
19
+ export interface ServiceReloadMessage {
20
+ name: "reload";
21
+ body: {
22
+ clientName: string | undefined;
23
+ changedFileSet: Set<string>;
24
+ };
25
+ }
26
+ /** 서버: 받은 분할메시지에 대한 progress 알림 */
27
+ export interface ServiceProgressMessage {
28
+ name: "progress";
29
+ body: {
30
+ totalSize: number;
31
+ completedSize: number;
32
+ };
33
+ }
34
+ /** 서버: 에러 발생 알림 */
35
+ export interface ServiceErrorMessage {
36
+ name: "error";
37
+ body: {
38
+ name: string;
39
+ message: string;
40
+ code: string;
41
+ stack?: string;
42
+ detail?: unknown;
43
+ cause?: unknown;
44
+ };
45
+ }
46
+ /** 클라: 인증 메시지 */
47
+ export interface ServiceAuthMessage {
48
+ name: "auth";
49
+ body: string;
50
+ }
51
+ /** 클라: ServiceMethod 요청 */
52
+ export interface ServiceRequestMessage {
53
+ name: `${string}.${string}`;
54
+ body: unknown[];
55
+ }
56
+ /** 서버: ServiceMethod 응답 */
57
+ export interface ServiceResponseMessage {
58
+ name: "response";
59
+ body?: unknown;
60
+ }
61
+ /** 클라: 이벤트 리스너 등록 */
62
+ export interface ServiceAddEventListenerMessage {
63
+ name: "evt:add";
64
+ body: {
65
+ key: string;
66
+ name: string;
67
+ info: unknown;
68
+ };
69
+ }
70
+ /** 클라: 이벤트 리스너 제거 */
71
+ export interface ServiceRemoveEventListenerMessage {
72
+ name: "evt:remove";
73
+ body: {
74
+ key: string;
75
+ };
76
+ }
77
+ /** 클라: 이벤트 리스너 정보 목록 요청 */
78
+ export interface ServiceGetEventListenerInfosMessage {
79
+ name: "evt:gets";
80
+ body: {
81
+ name: string;
82
+ };
83
+ }
84
+ /** 클라: 이벤트 발생 */
85
+ export interface ServiceEmitEventMessage {
86
+ name: "evt:emit";
87
+ body: {
88
+ keys: string[];
89
+ data: unknown;
90
+ };
91
+ }
92
+ /** 서버: 이벤트 발생 알림 */
93
+ export interface ServiceEventMessage {
94
+ name: "evt:on";
95
+ body: {
96
+ keys: string[];
97
+ data: unknown;
98
+ };
99
+ }
100
+ //# sourceMappingURL=protocol.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.types.d.ts","sourceRoot":"","sources":["../../../../src/protocol/protocol.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import type { Bytes } from "@simplysm/core-common";
2
+ import "@simplysm/core-common";
3
+ import { type ServiceMessage } from "./protocol.types";
4
+ /**
5
+ * 서비스 프로토콜 인코더/디코더
6
+ *
7
+ * Binary Protocol V2:
8
+ * - Header: 28 bytes (UUID 16 + TotalSize 8 + Index 4)
9
+ * - Body: JSON
10
+ * - 자동 청킹: 3MB 초과 시 300KB 단위 분할
11
+ * - 최대 메시지: 100MB
12
+ */
13
+ export declare class ServiceProtocol {
14
+ /**
15
+ * 메시지 인코딩 (필요 시 자동 분할)
16
+ */
17
+ encode(uuid: string, message: ServiceMessage): {
18
+ chunks: Bytes[];
19
+ totalSize: number;
20
+ };
21
+ /**
22
+ * 메시지 청크 인코딩 (헤더 + 바디)
23
+ *
24
+ * 헤더 구조 (28 bytes, Big Endian):
25
+ * ```
26
+ * Offset Size Field
27
+ * ------ ---- -----
28
+ * 0 16 UUID (binary)
29
+ * 16 8 TotalSize (uint64)
30
+ * 24 4 Index (uint32)
31
+ * ```
32
+ */
33
+ private _encode;
34
+ private readonly _accumulator;
35
+ /**
36
+ * 프로토콜 인스턴스를 정리한다.
37
+ *
38
+ * 내부 청크 누적기의 GC 타이머를 해제하고 메모리를 정리한다.
39
+ * 프로토콜 인스턴스 사용이 끝나면 반드시 호출해야 한다.
40
+ */
41
+ dispose(): void;
42
+ /**
43
+ * 메시지 디코딩 (분할 패킷 자동 조립)
44
+ */
45
+ decode<T extends ServiceMessage>(bytes: Bytes): ServiceMessageDecodeResult<T>;
46
+ }
47
+ /**
48
+ * 메시지 디코딩 결과 타입 (유니온)
49
+ *
50
+ * - `type: "complete"`: 모든 청크가 수신되어 메시지 조립이 완료됨
51
+ * - `type: "progress"`: 분할 메시지 수신 중 (일부 청크만 도착)
52
+ */
53
+ export type ServiceMessageDecodeResult<T extends ServiceMessage> = {
54
+ type: "complete";
55
+ uuid: string;
56
+ message: T;
57
+ } | {
58
+ type: "progress";
59
+ uuid: string;
60
+ totalSize: number;
61
+ completedSize: number;
62
+ };
63
+ //# sourceMappingURL=service-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-protocol.d.ts","sourceRoot":"","sources":["../../../../src/protocol/service-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAExE;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAK1B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAqCrF;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,OAAO;IA0Bf,OAAO,CAAC,QAAQ,CAAC,YAAY,CAU1B;IAEH;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,0BAA0B,CAAC,CAAC,CAAC;CAmE9E;AAED;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,cAAc,IAC3D;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 자동 업데이트 서비스 인터페이스
3
+ *
4
+ * 클라이언트 애플리케이션의 최신 버전 정보를 조회한다.
5
+ */
6
+ export interface AutoUpdateService {
7
+ /**
8
+ * 지정된 플랫폼의 최신 버전 정보를 조회한다.
9
+ * @param platform 대상 플랫폼 (예: "win32", "darwin", "linux")
10
+ * @returns 최신 버전 정보. 버전이 없으면 undefined
11
+ */
12
+ getLastVersion(platform: string): Promise<{
13
+ version: string;
14
+ downloadPath: string;
15
+ } | undefined>;
16
+ }
17
+ //# sourceMappingURL=auto-update-service.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-update-service.types.d.ts","sourceRoot":"","sources":["../../../../src/service-types/auto-update-service.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CACrC;QACE,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB,GACD,SAAS,CACZ,CAAC;CACH"}
@@ -0,0 +1,22 @@
1
+ import type { Bytes } from "@simplysm/core-common";
2
+ /**
3
+ * 암호화 서비스 인터페이스
4
+ *
5
+ * SHA256 해시 및 AES 대칭키 암호화/복호화 기능을 제공한다.
6
+ */
7
+ export interface CryptoService {
8
+ /** SHA256 해시 생성 */
9
+ encrypt(data: string | Bytes): Promise<string>;
10
+ /** AES 암호화 */
11
+ encryptAes(data: Bytes): Promise<string>;
12
+ /** AES 복호화 */
13
+ decryptAes(encText: string): Promise<Bytes>;
14
+ }
15
+ /**
16
+ * 암호화 서비스 설정
17
+ */
18
+ export interface CryptoConfig {
19
+ /** AES 암호화 키 */
20
+ key: string;
21
+ }
22
+ //# sourceMappingURL=crypto-service.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-service.types.d.ts","sourceRoot":"","sources":["../../../../src/service-types/crypto-service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,cAAc;IACd,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,cAAc;IACd,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;CACb"}
@@ -0,0 +1,30 @@
1
+ import type { Dialect, IsolationLevel, QueryDef, ColumnMeta, ResultMeta } from "@simplysm/orm-common";
2
+ /**
3
+ * ORM 서비스 인터페이스
4
+ *
5
+ * 데이터베이스 연결, 트랜잭션 관리, 쿼리 실행 기능을 제공한다.
6
+ * MySQL, MSSQL, PostgreSQL을 지원한다.
7
+ */
8
+ export interface OrmService {
9
+ getInfo(opt: DbConnOptions & {
10
+ configName: string;
11
+ }): Promise<{
12
+ dialect: Dialect;
13
+ database?: string;
14
+ schema?: string;
15
+ }>;
16
+ connect(opt: Record<string, unknown>): Promise<number>;
17
+ close(connId: number): Promise<void>;
18
+ beginTransaction(connId: number, isolationLevel?: IsolationLevel): Promise<void>;
19
+ commitTransaction(connId: number): Promise<void>;
20
+ rollbackTransaction(connId: number): Promise<void>;
21
+ executeParametrized(connId: number, query: string, params?: unknown[]): Promise<unknown[][]>;
22
+ executeDefs(connId: number, defs: QueryDef[], options?: (ResultMeta | undefined)[]): Promise<unknown[][]>;
23
+ bulkInsert(connId: number, tableName: string, columnDefs: Record<string, ColumnMeta>, records: Record<string, unknown>[]): Promise<void>;
24
+ }
25
+ /** 데이터베이스 연결 옵션 */
26
+ export type DbConnOptions = {
27
+ configName?: string;
28
+ config?: Record<string, unknown>;
29
+ };
30
+ //# sourceMappingURL=orm-service.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orm-service.types.d.ts","sourceRoot":"","sources":["../../../../src/service-types/orm-service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEtG;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAC5D,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjF,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE7F,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE1G,UAAU,CACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED,mBAAmB;AACnB,MAAM,MAAM,aAAa,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC"}
@@ -0,0 +1,55 @@
1
+ import type { Bytes } from "@simplysm/core-common";
2
+ /**
3
+ * SMTP 서비스 인터페이스
4
+ *
5
+ * 이메일 전송 기능을 제공한다.
6
+ * 직접 SMTP 설정을 전달하거나 서버 설정을 참조하여 전송할 수 있다.
7
+ */
8
+ export interface SmtpService {
9
+ /** 직접 SMTP 설정으로 이메일 전송 */
10
+ send(options: SmtpSendOption): Promise<string>;
11
+ /** 서버 설정 참조로 이메일 전송 */
12
+ sendByConfig(configName: string, options: SmtpSendByConfigOption): Promise<string>;
13
+ }
14
+ /**
15
+ * 이메일 첨부 파일 정보
16
+ *
17
+ * content 또는 path 중 하나를 지정해야 한다.
18
+ */
19
+ export interface SmtpSendAttachment {
20
+ /** 첨부 파일명 */
21
+ filename: string;
22
+ /** 파일 내용 (바이너리) */
23
+ content?: Bytes;
24
+ /** 서버 내 파일 경로 */
25
+ path?: string;
26
+ /** MIME 타입 (예: "application/pdf") */
27
+ contentType?: string;
28
+ }
29
+ /** SMTP 연결 옵션 (공통) */
30
+ export interface SmtpConnectionOptions {
31
+ host: string;
32
+ port?: number;
33
+ secure?: boolean;
34
+ user?: string;
35
+ pass?: string;
36
+ }
37
+ /** 이메일 내용 옵션 (공통) */
38
+ export interface SmtpEmailContentOptions {
39
+ to: string;
40
+ cc?: string;
41
+ bcc?: string;
42
+ subject: string;
43
+ html: string;
44
+ attachments?: SmtpSendAttachment[];
45
+ }
46
+ export interface SmtpSendByConfigOption extends SmtpEmailContentOptions {
47
+ }
48
+ export interface SmtpSendOption extends SmtpConnectionOptions, SmtpEmailContentOptions {
49
+ from: string;
50
+ }
51
+ export interface SmtpConfig extends SmtpConnectionOptions {
52
+ senderName: string;
53
+ senderEmail?: string;
54
+ }
55
+ //# sourceMappingURL=smtp-service.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtp-service.types.d.ts","sourceRoot":"","sources":["../../../../src/service-types/smtp-service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,uBAAuB;IACvB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpF;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,sBAAsB;AACtB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAqB;AACrB,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;CAAG;AAE1E,MAAM,WAAW,cAAe,SAAQ,qBAAqB,EAAE,uBAAuB;IACpF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAW,SAAQ,qBAAqB;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * 이벤트 리스너 타입 정의용 추상 클래스
3
+ *
4
+ * - 상속만 하면 됨 (프로퍼티 구현 불필요)
5
+ * - $info, $data는 타입 추출용 (런타임 미사용)
6
+ * - eventName은 mangle 안전한 이벤트 식별자
7
+ *
8
+ * @example
9
+ * export class SharedDataChangeEvent extends ServiceEventListener<
10
+ * { name: string; filter: unknown },
11
+ * (string | number)[] | undefined
12
+ * > {
13
+ * readonly eventName = "SharedDataChangeEvent";
14
+ * }
15
+ *
16
+ * // 클라이언트에서 사용
17
+ * await client.addEventListener(
18
+ * SharedDataChangeEvent,
19
+ * { name: "test", filter: null },
20
+ * (data) => console.log(data)
21
+ * );
22
+ */
23
+ export declare abstract class ServiceEventListener<TInfo, TData> {
24
+ /** mangle 안전한 이벤트 식별자 (상속 시 필수 구현) */
25
+ abstract readonly eventName: string;
26
+ /** 타입 추출용 (런타임 미사용) */
27
+ readonly $info: TInfo;
28
+ readonly $data: TData;
29
+ }
30
+ /**
31
+ * 파일 업로드 결과
32
+ *
33
+ * 서버에 업로드된 파일의 정보를 담는다.
34
+ */
35
+ export interface ServiceUploadResult {
36
+ /** 서버 내 저장 경로 */
37
+ path: string;
38
+ /** 원본 파일명 */
39
+ filename: string;
40
+ /** 파일 크기 (bytes) */
41
+ size: number;
42
+ }
43
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAAsB,oBAAoB,CAAC,KAAK,EAAE,KAAK;IACrD,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAEpC,uBAAuB;IACvB,SAAiB,KAAK,EAAE,KAAK,CAAC;IAC9B,SAAiB,KAAK,EAAE,KAAK,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=auto-update-service.types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=crypto-service.types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=orm-service.types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=smtp-service.types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
package/dist/types.js ADDED
@@ -0,0 +1,6 @@
1
+ class ServiceEventListener {
2
+ }
3
+ export {
4
+ ServiceEventListener
5
+ };
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/types.ts"],
4
+ "sourcesContent": ["/**\n * \uC774\uBCA4\uD2B8 \uB9AC\uC2A4\uB108 \uD0C0\uC785 \uC815\uC758\uC6A9 \uCD94\uC0C1 \uD074\uB798\uC2A4\n *\n * - \uC0C1\uC18D\uB9CC \uD558\uBA74 \uB428 (\uD504\uB85C\uD37C\uD2F0 \uAD6C\uD604 \uBD88\uD544\uC694)\n * - $info, $data\uB294 \uD0C0\uC785 \uCD94\uCD9C\uC6A9 (\uB7F0\uD0C0\uC784 \uBBF8\uC0AC\uC6A9)\n * - eventName\uC740 mangle \uC548\uC804\uD55C \uC774\uBCA4\uD2B8 \uC2DD\uBCC4\uC790\n *\n * @example\n * export class SharedDataChangeEvent extends ServiceEventListener<\n * { name: string; filter: unknown },\n * (string | number)[] | undefined\n * > {\n * readonly eventName = \"SharedDataChangeEvent\";\n * }\n *\n * // \uD074\uB77C\uC774\uC5B8\uD2B8\uC5D0\uC11C \uC0AC\uC6A9\n * await client.addEventListener(\n * SharedDataChangeEvent,\n * { name: \"test\", filter: null },\n * (data) => console.log(data)\n * );\n */\nexport abstract class ServiceEventListener<TInfo, TData> {\n /** mangle \uC548\uC804\uD55C \uC774\uBCA4\uD2B8 \uC2DD\uBCC4\uC790 (\uC0C1\uC18D \uC2DC \uD544\uC218 \uAD6C\uD604) */\n abstract readonly eventName: string;\n\n /** \uD0C0\uC785 \uCD94\uCD9C\uC6A9 (\uB7F0\uD0C0\uC784 \uBBF8\uC0AC\uC6A9) */\n declare readonly $info: TInfo;\n declare readonly $data: TData;\n}\n\n/**\n * \uD30C\uC77C \uC5C5\uB85C\uB4DC \uACB0\uACFC\n *\n * \uC11C\uBC84\uC5D0 \uC5C5\uB85C\uB4DC\uB41C \uD30C\uC77C\uC758 \uC815\uBCF4\uB97C \uB2F4\uB294\uB2E4.\n */\nexport interface ServiceUploadResult {\n /** \uC11C\uBC84 \uB0B4 \uC800\uC7A5 \uACBD\uB85C */\n path: string;\n /** \uC6D0\uBCF8 \uD30C\uC77C\uBA85 */\n filename: string;\n /** \uD30C\uC77C \uD06C\uAE30 (bytes) */\n size: number;\n}\n"],
5
+ "mappings": "AAsBO,MAAe,qBAAmC;AAOzD;",
6
+ "names": []
7
+ }
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@simplysm/service-common",
3
+ "sideEffects": false,
4
+ "version": "13.0.0-beta.11",
5
+ "description": "심플리즘 패키지 - 서비스 모듈 (common)",
6
+ "author": "김석래",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/kslhunter/simplysm.git",
10
+ "directory": "packages/service-common"
11
+ },
12
+ "license": "Apache-2.0",
13
+ "type": "module",
14
+ "main": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "dependencies": {
20
+ "@simplysm/core-common": "13.0.0-beta.11",
21
+ "@simplysm/orm-common": "13.0.0-beta.11"
22
+ }
23
+ }