@simplysm/service-client 13.0.69 → 13.0.70

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/features/event-client.ts"],
4
- "mappings": "AAAA,SAAS,YAAY;AAGrB,OAAO,aAAa;AAEpB,MAAM,SAAS,QAAQ,QAAQ,4BAA4B;AAiBpD,SAAS,kBAAkB,WAA0C;AAC1E,QAAM,cAAc,oBAAI,IAGtB;AAEF,YAAU,GAAG,SAAS,OAAO,EAAE,MAAM,KAAK,MAAM;AAC9C,UAAM,aAAa,MAAM,IAAI;AAAA,EAC/B,CAAC;AAED,iBAAe,YACb,UACA,MACA,IACiB;AACjB,UAAM,MAAM,KAAK,IAAI,EAAE,SAAS;AAChC,UAAM,YAAY,SAAS;AAG3B,UAAM,UAAU,KAAK;AAAA,MACnB,MAAM;AAAA,MACN,MAAM,EAAE,KAAK,MAAM,WAAW,KAAK;AAAA,IACrC,CAAC;AAGD,gBAAY,IAAI,KAAK;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAEA,iBAAe,eAAe,KAA4B;AACxD,UAAM,UAAU,KAAK,EAAE,MAAM,cAAc,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1D,gBAAY,OAAO,GAAG;AAAA,EACxB;AAEA,iBAAe,aACb,UACA,cACA,MACe;AACf,UAAM,YAAY,SAAS;AAG3B,UAAM,gBAAiB,MAAM,UAAU,KAAK;AAAA,MAC1C,MAAM;AAAA,MACN,MAAM,EAAE,MAAM,UAAU;AAAA,IAC1B,CAAC;AAED,UAAM,aAAa,cAChB,OAAO,CAAC,SAAS,aAAa,KAAK,IAAI,CAAC,EACxC,IAAI,CAAC,SAAS,KAAK,GAAG;AAEzB,QAAI,WAAW,SAAS,GAAG;AACzB,YAAM,UAAU,KAAK;AAAA,QACnB,MAAM;AAAA,QACN,MAAM,EAAE,MAAM,YAAY,KAAK;AAAA,MACjC,CAAC;AAAA,IACH;AAAA,EACF;AAGA,iBAAe,gBAA+B;AAC5C,eAAW,CAAC,KAAK,KAAK,KAAK,YAAY,QAAQ,GAAG;AAChD,UAAI;AACF,cAAM,UAAU,KAAK;AAAA,UACnB,MAAM;AAAA,UACN,MAAM,EAAE,KAAK,MAAM,MAAM,WAAW,MAAM,MAAM,KAAK;AAAA,QACvD,CAAC;AAAA,MACH,SAAS,KAAK;AACZ,eAAO,MAAM,mEAAiB,EAAE,KAAK,WAAW,MAAM,UAAU,CAAC;AAAA,MACnE;AAAA,IACF;AAAA,EACF;AAGA,iBAAe,aAAa,MAAgB,MAA8B;AACxE,eAAW,OAAO,MAAM;AACtB,YAAM,QAAQ,YAAY,IAAI,GAAG;AACjC,UAAI,SAAS,MAAM;AACjB,YAAI;AACF,gBAAM,MAAM,GAAG,IAAI;AAAA,QACrB,SAAS,KAAK;AACZ,iBAAO,MAAM,sDAAc,EAAE,KAAK,WAAW,MAAM,UAAU,CAAC;AAAA,QAChE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,SAAS,YAAY;AAGrB,OAAO,aAAa;AAEpB,MAAM,SAAS,QAAQ,QAAQ,4BAA4B;AAiBpD,SAAS,kBAAkB,WAA0C;AAC1E,QAAM,cAAc,oBAAI,IAGtB;AAEF,YAAU,GAAG,SAAS,OAAO,EAAE,MAAM,KAAK,MAAM;AAC9C,UAAM,aAAa,MAAM,IAAI;AAAA,EAC/B,CAAC;AAED,iBAAe,YACb,UACA,MACA,IACiB;AACjB,UAAM,MAAM,KAAK,IAAI,EAAE,SAAS;AAChC,UAAM,YAAY,SAAS;AAG3B,UAAM,UAAU,KAAK;AAAA,MACnB,MAAM;AAAA,MACN,MAAM,EAAE,KAAK,MAAM,WAAW,KAAK;AAAA,IACrC,CAAC;AAGD,gBAAY,IAAI,KAAK;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAEA,iBAAe,eAAe,KAA4B;AACxD,UAAM,UAAU,KAAK,EAAE,MAAM,cAAc,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1D,gBAAY,OAAO,GAAG;AAAA,EACxB;AAEA,iBAAe,aACb,UACA,cACA,MACe;AACf,UAAM,YAAY,SAAS;AAG3B,UAAM,gBAAiB,MAAM,UAAU,KAAK;AAAA,MAC1C,MAAM;AAAA,MACN,MAAM,EAAE,MAAM,UAAU;AAAA,IAC1B,CAAC;AAED,UAAM,aAAa,cAChB,OAAO,CAAC,SAAS,aAAa,KAAK,IAAI,CAAC,EACxC,IAAI,CAAC,SAAS,KAAK,GAAG;AAEzB,QAAI,WAAW,SAAS,GAAG;AACzB,YAAM,UAAU,KAAK;AAAA,QACnB,MAAM;AAAA,QACN,MAAM,EAAE,MAAM,YAAY,KAAK;AAAA,MACjC,CAAC;AAAA,IACH;AAAA,EACF;AAGA,iBAAe,gBAA+B;AAC5C,eAAW,CAAC,KAAK,KAAK,KAAK,YAAY,QAAQ,GAAG;AAChD,UAAI;AACF,cAAM,UAAU,KAAK;AAAA,UACnB,MAAM;AAAA,UACN,MAAM,EAAE,KAAK,MAAM,MAAM,WAAW,MAAM,MAAM,KAAK;AAAA,QACvD,CAAC;AAAA,MACH,SAAS,KAAK;AACZ,eAAO,MAAM,oCAAoC,EAAE,KAAK,WAAW,MAAM,UAAU,CAAC;AAAA,MACtF;AAAA,IACF;AAAA,EACF;AAGA,iBAAe,aAAa,MAAgB,MAA8B;AACxE,eAAW,OAAO,MAAM;AACtB,YAAM,QAAQ,YAAY,IAAI,GAAG;AACjC,UAAI,SAAS,MAAM;AACjB,YAAI;AACF,gBAAM,MAAM,GAAG,IAAI;AAAA,QACrB,SAAS,KAAK;AACZ,iBAAO,MAAM,uBAAuB,EAAE,KAAK,WAAW,MAAM,UAAU,CAAC;AAAA,QACzE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -21,7 +21,7 @@ function createOrmClientConnector(serviceClient) {
21
21
  return await callback(db);
22
22
  } catch (err) {
23
23
  if (err instanceof Error && (err.message.includes("a parent row: a foreign key constraint") || err.message.includes("conflicted with the REFERENCE"))) {
24
- throw new Error("\uACBD\uACE0! \uC5F0\uACB0\uB41C \uC791\uC5C5\uC5D0 \uC758\uD55C \uCC98\uB9AC \uAC70\uBD80. \uD6C4\uC18D\uC791\uC5C5 \uD655\uC778\uC694\uB9DD", { cause: err });
24
+ throw new Error("Warning! Operation rejected due to related operations. Please check subsequent operations.", { cause: err });
25
25
  }
26
26
  throw err;
27
27
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/features/orm/orm-client-connector.ts"],
4
- "mappings": "AAAA,SAAS,kCAAkC;AAE3C,SAAS,uBAAkE;AAcpE,SAAS,yBAAyB,eAAkD;AACzF,iBAAe,oBACb,QACkC;AAnBtC;AAoBI,UAAM,WAAW,IAAI,2BAA2B,eAAe,OAAO,OAAO;AAC7E,UAAM,OAAO,MAAM,SAAS,QAAQ;AACpC,UAAM,aAAW,YAAO,iBAAP,mBAAqB,aAAY,KAAK;AACvD,QAAI,YAAY,QAAQ,aAAa,IAAI;AACvC,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,WAAO,gBAAgB,OAAO,cAAc,UAAU;AAAA,MACpD;AAAA,MACA,UAAQ,YAAO,iBAAP,mBAAqB,WAAU,KAAK;AAAA,IAC9C,CAAC;AAAA,EACH;AAEA,iBAAe,QACb,QACA,UACY;AACZ,UAAM,KAAK,MAAM,oBAAoB,MAAM;AAC3C,WAAO,GAAG,QAAQ,YAAY;AAC5B,UAAI;AACF,eAAO,MAAM,SAAS,EAAE;AAAA,MAC1B,SAAS,KAAK;AACZ,YACE,eAAe,UACd,IAAI,QAAQ,SAAS,wCAAwC,KAC5D,IAAI,QAAQ,SAAS,+BAA+B,IACtD;AACA,gBAAM,IAAI,MAAM,iJAAmC,EAAE,OAAO,IAAI,CAAC;AAAA,QACnE;AAEA,cAAM;AAAA,MACR;AAAA,IACF,CAAC;AAAA,EACH;AAEA,iBAAe,0BACb,QACA,UACY;AACZ,UAAM,KAAK,MAAM,oBAAoB,MAAM;AAC3C,WAAO,GAAG,0BAA0B,YAAY,SAAS,EAAE,CAAC;AAAA,EAC9D;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,SAAS,kCAAkC;AAE3C,SAAS,uBAAkE;AAcpE,SAAS,yBAAyB,eAAkD;AACzF,iBAAe,oBACb,QACkC;AAnBtC;AAoBI,UAAM,WAAW,IAAI,2BAA2B,eAAe,OAAO,OAAO;AAC7E,UAAM,OAAO,MAAM,SAAS,QAAQ;AACpC,UAAM,aAAW,YAAO,iBAAP,mBAAqB,aAAY,KAAK;AACvD,QAAI,YAAY,QAAQ,aAAa,IAAI;AACvC,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,WAAO,gBAAgB,OAAO,cAAc,UAAU;AAAA,MACpD;AAAA,MACA,UAAQ,YAAO,iBAAP,mBAAqB,WAAU,KAAK;AAAA,IAC9C,CAAC;AAAA,EACH;AAEA,iBAAe,QACb,QACA,UACY;AACZ,UAAM,KAAK,MAAM,oBAAoB,MAAM;AAC3C,WAAO,GAAG,QAAQ,YAAY;AAC5B,UAAI;AACF,eAAO,MAAM,SAAS,EAAE;AAAA,MAC1B,SAAS,KAAK;AACZ,YACE,eAAe,UACd,IAAI,QAAQ,SAAS,wCAAwC,KAC5D,IAAI,QAAQ,SAAS,+BAA+B,IACtD;AACA,gBAAM,IAAI,MAAM,8FAA8F,EAAE,OAAO,IAAI,CAAC;AAAA,QAC9H;AAEA,cAAM;AAAA,MACR;AAAA,IACF,CAAC;AAAA,EACH;AAEA,iBAAe,0BACb,QACA,UACY;AACZ,UAAM,KAAK,MAAM,oBAAoB,MAAM;AAC3C,WAAO,GAAG,0BAA0B,YAAY,SAAS,EAAE,CAAC;AAAA,EAC9D;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -14,43 +14,43 @@ class OrmClientDbContextExecutor {
14
14
  }
15
15
  async beginTransaction(isolationLevel) {
16
16
  if (this._connId === void 0) {
17
- throw new Error("DB\uC5D0 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
17
+ throw new Error("Not connected to the database.");
18
18
  }
19
19
  await this._ormService.beginTransaction(this._connId, isolationLevel);
20
20
  }
21
21
  async commitTransaction() {
22
22
  if (this._connId === void 0) {
23
- throw new Error("DB\uC5D0 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
23
+ throw new Error("Not connected to the database.");
24
24
  }
25
25
  await this._ormService.commitTransaction(this._connId);
26
26
  }
27
27
  async rollbackTransaction() {
28
28
  if (this._connId === void 0) {
29
- throw new Error("DB\uC5D0 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
29
+ throw new Error("Not connected to the database.");
30
30
  }
31
31
  await this._ormService.rollbackTransaction(this._connId);
32
32
  }
33
33
  async close() {
34
34
  if (this._connId === void 0) {
35
- throw new Error("DB\uC5D0 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
35
+ throw new Error("Not connected to the database.");
36
36
  }
37
37
  await this._ormService.close(this._connId);
38
38
  }
39
39
  async executeDefs(defs, options) {
40
40
  if (this._connId === void 0) {
41
- throw new Error("DB\uC5D0 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
41
+ throw new Error("Not connected to the database.");
42
42
  }
43
43
  return await this._ormService.executeDefs(this._connId, defs, options);
44
44
  }
45
45
  async executeParametrized(query, params) {
46
46
  if (this._connId === void 0) {
47
- throw new Error("DB\uC5D0 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
47
+ throw new Error("Not connected to the database.");
48
48
  }
49
49
  return this._ormService.executeParametrized(this._connId, query, params);
50
50
  }
51
51
  async bulkInsert(tableName, columnDefs, records) {
52
52
  if (this._connId === void 0) {
53
- throw new Error("DB\uC5D0 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
53
+ throw new Error("Not connected to the database.");
54
54
  }
55
55
  return this._ormService.bulkInsert(this._connId, tableName, columnDefs, records);
56
56
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/features/orm/orm-client-db-context-executor.ts"],
4
- "mappings": "AAWO,MAAM,2BAAwD;AAAA,EAInE,YACmB,SACA,MACjB;AAFiB;AACA;AAEjB,SAAK,cAAc,QAAQ,WAAuB,KAAK;AAAA,EACzD;AAAA,EARQ;AAAA,EACS;AAAA,EASjB,MAAM,UAIH;AACD,WAAO,KAAK,YAAY,QAAQ,KAAK,IAAI;AAAA,EAC3C;AAAA,EAEA,MAAM,UAAyB;AAC7B,SAAK,UAAU,MAAM,KAAK,YAAY,QAAQ,KAAK,IAAI;AAAA,EACzD;AAAA,EAEA,MAAM,iBAAiB,gBAAgD;AACrE,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,yEAAkB;AAAA,IACpC;AAEA,UAAM,KAAK,YAAY,iBAAiB,KAAK,SAAS,cAAc;AAAA,EACtE;AAAA,EAEA,MAAM,oBAAmC;AACvC,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,yEAAkB;AAAA,IACpC;AAEA,UAAM,KAAK,YAAY,kBAAkB,KAAK,OAAO;AAAA,EACvD;AAAA,EAEA,MAAM,sBAAqC;AACzC,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,yEAAkB;AAAA,IACpC;AAEA,UAAM,KAAK,YAAY,oBAAoB,KAAK,OAAO;AAAA,EACzD;AAAA,EAEA,MAAM,QAAuB;AAC3B,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,yEAAkB;AAAA,IACpC;AAEA,UAAM,KAAK,YAAY,MAAM,KAAK,OAAO;AAAA,EAC3C;AAAA,EAEA,MAAM,YACJ,MACA,SACgB;AAChB,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,yEAAkB;AAAA,IACpC;AAEA,WAAQ,MAAM,KAAK,YAAY,YAAY,KAAK,SAAS,MAAM,OAAO;AAAA,EACxE;AAAA,EAEA,MAAM,oBAAoB,OAAe,QAA0C;AACjF,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,yEAAkB;AAAA,IACpC;AAEA,WAAO,KAAK,YAAY,oBAAoB,KAAK,SAAS,OAAO,MAAM;AAAA,EACzE;AAAA,EAEA,MAAM,WACJ,WACA,YACA,SACe;AACf,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,yEAAkB;AAAA,IACpC;AAEA,WAAO,KAAK,YAAY,WAAW,KAAK,SAAS,WAAW,YAAY,OAAO;AAAA,EACjF;AACF;",
4
+ "mappings": "AAWO,MAAM,2BAAwD;AAAA,EAInE,YACmB,SACA,MACjB;AAFiB;AACA;AAEjB,SAAK,cAAc,QAAQ,WAAuB,KAAK;AAAA,EACzD;AAAA,EARQ;AAAA,EACS;AAAA,EASjB,MAAM,UAIH;AACD,WAAO,KAAK,YAAY,QAAQ,KAAK,IAAI;AAAA,EAC3C;AAAA,EAEA,MAAM,UAAyB;AAC7B,SAAK,UAAU,MAAM,KAAK,YAAY,QAAQ,KAAK,IAAI;AAAA,EACzD;AAAA,EAEA,MAAM,iBAAiB,gBAAgD;AACrE,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,UAAM,KAAK,YAAY,iBAAiB,KAAK,SAAS,cAAc;AAAA,EACtE;AAAA,EAEA,MAAM,oBAAmC;AACvC,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,UAAM,KAAK,YAAY,kBAAkB,KAAK,OAAO;AAAA,EACvD;AAAA,EAEA,MAAM,sBAAqC;AACzC,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,UAAM,KAAK,YAAY,oBAAoB,KAAK,OAAO;AAAA,EACzD;AAAA,EAEA,MAAM,QAAuB;AAC3B,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,UAAM,KAAK,YAAY,MAAM,KAAK,OAAO;AAAA,EAC3C;AAAA,EAEA,MAAM,YACJ,MACA,SACgB;AAChB,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,WAAQ,MAAM,KAAK,YAAY,YAAY,KAAK,SAAS,MAAM,OAAO;AAAA,EACxE;AAAA,EAEA,MAAM,oBAAoB,OAAe,QAA0C;AACjF,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,WAAO,KAAK,YAAY,oBAAoB,KAAK,SAAS,OAAO,MAAM;AAAA,EACzE;AAAA,EAEA,MAAM,WACJ,WACA,YACA,SACe;AACf,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,WAAO,KAAK,YAAY,WAAW,KAAK,SAAS,WAAW,YAAY,OAAO;AAAA,EACjF;AACF;",
5
5
  "names": []
6
6
  }
@@ -2,9 +2,9 @@ import { LazyGcMap, transferableDecode, Uuid } from "@simplysm/core-common";
2
2
  let worker;
3
3
  const workerResolvers = new LazyGcMap({
4
4
  gcInterval: 5 * 1e3,
5
- // 5초마다 만료 검사
5
+ // Check for expired entries every 5s
6
6
  expireTime: 60 * 1e3,
7
- // 60초가 지나면 만료 (타임아웃)
7
+ // Expire after 60s (timeout)
8
8
  onExpire: (key, item) => {
9
9
  item.reject(new Error(`Worker task timed out (uuid: ${key})`));
10
10
  }
@@ -29,7 +29,7 @@ class ServiceClient extends EventEmitter {
29
29
  }
30
30
  await this._eventClient.reRegisterAll();
31
31
  } catch (err) {
32
- logger.error("\uC774\uBCA4\uD2B8 \uB9AC\uC2A4\uB108 \uBCF5\uAD6C \uC2E4\uD328", err);
32
+ logger.error("Failed to recover event listeners", err);
33
33
  }
34
34
  }
35
35
  });
@@ -37,13 +37,13 @@ class ServiceClient extends EventEmitter {
37
37
  this.emit("reload", changedFiles);
38
38
  });
39
39
  }
40
- // 모듈들
40
+ // Modules
41
41
  _socket;
42
42
  _transport;
43
43
  _eventClient;
44
44
  _fileClient;
45
45
  _authToken;
46
- // 상태 접근자
46
+ // State accessors
47
47
  get connected() {
48
48
  return this._socket.connected;
49
49
  }
@@ -51,7 +51,7 @@ class ServiceClient extends EventEmitter {
51
51
  const hostProtocol = this.options.ssl ? "https" : "http";
52
52
  return `${hostProtocol}://${this.options.host}:${this.options.port}`;
53
53
  }
54
- // 타입 안전성을 위한 Proxy 생성 메소드
54
+ // Proxy creation method for type safety
55
55
  getService(serviceName) {
56
56
  return new Proxy({}, {
57
57
  get: (_target, prop) => {
@@ -93,7 +93,7 @@ class ServiceClient extends EventEmitter {
93
93
  this._authToken = token;
94
94
  }
95
95
  async addEventListener(eventDef, info, cb) {
96
- if (!this.connected) throw new Error("\uC11C\uBC84\uC640 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
96
+ if (!this.connected) throw new Error("Not connected to the server.");
97
97
  return this._eventClient.addListener(eventDef, info, cb);
98
98
  }
99
99
  async removeEventListener(key) {
@@ -105,7 +105,7 @@ class ServiceClient extends EventEmitter {
105
105
  async uploadFile(files) {
106
106
  if (this._authToken == null) {
107
107
  throw new Error(
108
- "\uC778\uC99D \uD1A0\uD070\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. \uD30C\uC77C \uC5C5\uB85C\uB4DC\uB97C \uC704\uD574\uC11C\uB294 \uBA3C\uC800 auth()\uB97C \uD638\uCD9C\uD558\uC5EC \uC778\uC99D\uD574\uC57C \uD569\uB2C8\uB2E4."
108
+ "No authentication token found. Call auth() to authenticate before uploading files."
109
109
  );
110
110
  }
111
111
  return this._fileClient.upload(files, this._authToken);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/service-client.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -79,7 +79,7 @@ function createServiceTransport(socket, protocol) {
79
79
  const body = decoded.message.body;
80
80
  emitter.emit("event", { keys: body.keys, data: body.data });
81
81
  } else {
82
- throw new Error("\uC694\uCCAD\uC774 \uC798 \uBABB \uB418\uC5C8\uC2B5\uB2C8\uB2E4.");
82
+ throw new Error("Invalid message received from server.");
83
83
  }
84
84
  }
85
85
  } catch (err) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/transport/service-transport.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -42,11 +42,11 @@ function createSocketProvider(url, clientName, maxReconnectCount) {
42
42
  try {
43
43
  await waitUntil(() => isConnected(), void 0, 50);
44
44
  } catch {
45
- throw new Error("\uC11C\uBC84\uC640 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uC778\uD130\uB137 \uC5F0\uACB0\uC744 \uD655\uC778\uD558\uC138\uC694.");
45
+ throw new Error("Not connected to the server. Please check your internet connection.");
46
46
  }
47
47
  const currentWs = ws;
48
48
  if (currentWs == null) {
49
- throw new Error("WebSocket\uC774 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
49
+ throw new Error("WebSocket is not connected.");
50
50
  }
51
51
  currentWs.send(data);
52
52
  }
@@ -74,7 +74,7 @@ function createSocketProvider(url, clientName, maxReconnectCount) {
74
74
  });
75
75
  const currentWs = ws;
76
76
  if (currentWs == null) {
77
- throw new Error("WebSocket \uCD08\uAE30\uD654 \uC2E4\uD328");
77
+ throw new Error("WebSocket initialization failed");
78
78
  }
79
79
  currentWs.onmessage = (event) => {
80
80
  lastHeartbeatTime = Date.now();
@@ -94,7 +94,7 @@ function createSocketProvider(url, clientName, maxReconnectCount) {
94
94
  while (reconnectCount < maxReconnectCount) {
95
95
  reconnectCount++;
96
96
  emitter.emit("state", "reconnecting");
97
- logger.warn("WebSocket \uC5F0\uACB0 \uB04A\uAE40. \uC7AC\uC5F0\uACB0 \uC2DC\uB3C4...", {
97
+ logger.warn("WebSocket disconnected. Attempting reconnect...", {
98
98
  reconnectCount,
99
99
  maxReconnectCount
100
100
  });
@@ -104,12 +104,12 @@ function createSocketProvider(url, clientName, maxReconnectCount) {
104
104
  startHeartbeat();
105
105
  reconnectCount = 0;
106
106
  emitter.emit("state", "connected");
107
- logger.info("WebSocket \uC7AC\uC5F0\uACB0 \uC131\uACF5");
107
+ logger.info("WebSocket reconnected successfully");
108
108
  return;
109
109
  } catch {
110
110
  }
111
111
  }
112
- logger.error("\uC7AC\uC5F0\uACB0 \uC2DC\uB3C4 \uD69F\uC218 \uCD08\uACFC. \uC5F0\uACB0\uC744 \uD3EC\uAE30\uD569\uB2C8\uB2E4.");
112
+ logger.error("Reconnect retry limit exceeded. Giving up.");
113
113
  emitter.emit("state", "closed");
114
114
  }
115
115
  function startHeartbeat() {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/transport/socket-provider.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -2,7 +2,7 @@ export interface ServiceConnectionConfig {
2
2
  port: number;
3
3
  host: string;
4
4
  ssl?: boolean;
5
- /** 0 입력시 reconnect안함. 바로 끊김 */
5
+ /** Set to 0 to disable reconnect; disconnects immediately */
6
6
  maxReconnectCount?: number;
7
7
  }
8
8
  //# sourceMappingURL=connection-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection-config.d.ts","sourceRoot":"","sources":["..\\..\\src\\types\\connection-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"connection-config.d.ts","sourceRoot":"","sources":["..\\..\\src\\types\\connection-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@simplysm/service-client",
3
- "version": "13.0.69",
4
- "description": "심플리즘 패키지 - 서비스 모듈 (client)",
5
- "author": "김석래",
3
+ "version": "13.0.70",
4
+ "description": "Simplysm package - Service module (client)",
5
+ "author": "simplysm",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
8
8
  "type": "git",
@@ -19,9 +19,9 @@
19
19
  "sideEffects": false,
20
20
  "dependencies": {
21
21
  "consola": "^3.4.2",
22
- "@simplysm/core-common": "13.0.69",
23
- "@simplysm/orm-common": "13.0.69",
24
- "@simplysm/service-common": "13.0.69"
22
+ "@simplysm/core-common": "13.0.70",
23
+ "@simplysm/service-common": "13.0.70",
24
+ "@simplysm/orm-common": "13.0.70"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/ws": "^8.18.1",
@@ -38,13 +38,13 @@ export function createEventClient(transport: ServiceTransport): EventClient {
38
38
  const key = Uuid.new().toString();
39
39
  const eventName = eventDef.eventName;
40
40
 
41
- // 서버에 등록 요청
41
+ // Send registration request to server
42
42
  await transport.send({
43
43
  name: "evt:add",
44
44
  body: { key, name: eventName, info },
45
45
  });
46
46
 
47
- // 로컬 맵에 저장 (재연결 복구용)
47
+ // Store in local map (for recovery on reconnect)
48
48
  listenerMap.set(key, {
49
49
  eventName,
50
50
  info,
@@ -66,7 +66,7 @@ export function createEventClient(transport: ServiceTransport): EventClient {
66
66
  ): Promise<void> {
67
67
  const eventName = eventDef.eventName;
68
68
 
69
- // 서버에 'gets' 요청을 보내 타겟을 확보
69
+ // Send 'gets' request to server to obtain targets
70
70
  const listenerInfos = (await transport.send({
71
71
  name: "evt:gets",
72
72
  body: { name: eventName },
@@ -84,7 +84,7 @@ export function createEventClient(transport: ServiceTransport): EventClient {
84
84
  }
85
85
  }
86
86
 
87
- // 재연결 호출됨
87
+ // Called on reconnect
88
88
  async function reRegisterAll(): Promise<void> {
89
89
  for (const [key, value] of listenerMap.entries()) {
90
90
  try {
@@ -93,12 +93,12 @@ export function createEventClient(transport: ServiceTransport): EventClient {
93
93
  body: { key, name: value.eventName, info: value.info },
94
94
  });
95
95
  } catch (err) {
96
- logger.error("이벤트 리스너 복구 실패", { err, eventName: value.eventName });
96
+ logger.error("Failed to recover event listener", { err, eventName: value.eventName });
97
97
  }
98
98
  }
99
99
  }
100
100
 
101
- // 서버에서 이벤트를 로컬 리스너에게 분배
101
+ // Dispatch server events to local listeners
102
102
  async function executeByKey(keys: string[], data: unknown): Promise<void> {
103
103
  for (const key of keys) {
104
104
  const entry = listenerMap.get(key);
@@ -106,7 +106,7 @@ export function createEventClient(transport: ServiceTransport): EventClient {
106
106
  try {
107
107
  await entry.cb(data);
108
108
  } catch (err) {
109
- logger.error("이벤트 핸들러 오류", { err, eventName: entry.eventName });
109
+ logger.error("Event handler error", { err, eventName: entry.eventName });
110
110
  }
111
111
  }
112
112
  }
@@ -11,7 +11,7 @@ export interface FileClient {
11
11
 
12
12
  export function createFileClient(hostUrl: string, clientName: string): FileClient {
13
13
  async function download(relPath: string): Promise<Bytes> {
14
- // URL 구성
14
+ // Build URL
15
15
  const url = `${hostUrl}${relPath.startsWith("/") ? "" : "/"}${relPath}`;
16
16
 
17
17
  const res = await fetch(url);
@@ -32,11 +32,11 @@ export function createFileClient(hostUrl: string, clientName: string): FileClien
32
32
 
33
33
  for (const file of fileList) {
34
34
  if ("data" in file) {
35
- // 커스텀 객체 ({ name, data })
35
+ // Custom object ({ name, data })
36
36
  const blob = file.data instanceof Blob ? file.data : new Blob([file.data]);
37
37
  formData.append("files", blob, file.name);
38
38
  } else {
39
- // 브라우저 File 객체
39
+ // Browser File object
40
40
  formData.append("files", file, file.name);
41
41
  }
42
42
  }
@@ -44,7 +44,7 @@ export function createOrmClientConnector(serviceClient: ServiceClient): OrmClien
44
44
  (err.message.includes("a parent row: a foreign key constraint") ||
45
45
  err.message.includes("conflicted with the REFERENCE"))
46
46
  ) {
47
- throw new Error("경고! 연결된 작업에 의한 처리 거부. 후속작업 확인요망", { cause: err });
47
+ throw new Error("Warning! Operation rejected due to related operations. Please check subsequent operations.", { cause: err });
48
48
  }
49
49
 
50
50
  throw err;
@@ -34,7 +34,7 @@ export class OrmClientDbContextExecutor implements DbContextExecutor {
34
34
 
35
35
  async beginTransaction(isolationLevel?: IsolationLevel): Promise<void> {
36
36
  if (this._connId === undefined) {
37
- throw new Error("DB에 연결되어있지 않습니다.");
37
+ throw new Error("Not connected to the database.");
38
38
  }
39
39
 
40
40
  await this._ormService.beginTransaction(this._connId, isolationLevel);
@@ -42,7 +42,7 @@ export class OrmClientDbContextExecutor implements DbContextExecutor {
42
42
 
43
43
  async commitTransaction(): Promise<void> {
44
44
  if (this._connId === undefined) {
45
- throw new Error("DB에 연결되어있지 않습니다.");
45
+ throw new Error("Not connected to the database.");
46
46
  }
47
47
 
48
48
  await this._ormService.commitTransaction(this._connId);
@@ -50,7 +50,7 @@ export class OrmClientDbContextExecutor implements DbContextExecutor {
50
50
 
51
51
  async rollbackTransaction(): Promise<void> {
52
52
  if (this._connId === undefined) {
53
- throw new Error("DB에 연결되어있지 않습니다.");
53
+ throw new Error("Not connected to the database.");
54
54
  }
55
55
 
56
56
  await this._ormService.rollbackTransaction(this._connId);
@@ -58,7 +58,7 @@ export class OrmClientDbContextExecutor implements DbContextExecutor {
58
58
 
59
59
  async close(): Promise<void> {
60
60
  if (this._connId === undefined) {
61
- throw new Error("DB에 연결되어있지 않습니다.");
61
+ throw new Error("Not connected to the database.");
62
62
  }
63
63
 
64
64
  await this._ormService.close(this._connId);
@@ -69,7 +69,7 @@ export class OrmClientDbContextExecutor implements DbContextExecutor {
69
69
  options?: (ResultMeta | undefined)[],
70
70
  ): Promise<T[][]> {
71
71
  if (this._connId === undefined) {
72
- throw new Error("DB에 연결되어있지 않습니다.");
72
+ throw new Error("Not connected to the database.");
73
73
  }
74
74
 
75
75
  return (await this._ormService.executeDefs(this._connId, defs, options)) as T[][];
@@ -77,7 +77,7 @@ export class OrmClientDbContextExecutor implements DbContextExecutor {
77
77
 
78
78
  async executeParametrized(query: string, params?: unknown[]): Promise<unknown[][]> {
79
79
  if (this._connId === undefined) {
80
- throw new Error("DB에 연결되어있지 않습니다.");
80
+ throw new Error("Not connected to the database.");
81
81
  }
82
82
 
83
83
  return this._ormService.executeParametrized(this._connId, query, params);
@@ -89,7 +89,7 @@ export class OrmClientDbContextExecutor implements DbContextExecutor {
89
89
  records: Record<string, unknown>[],
90
90
  ): Promise<void> {
91
91
  if (this._connId === undefined) {
92
- throw new Error("DB에 연결되어있지 않습니다.");
92
+ throw new Error("Not connected to the database.");
93
93
  }
94
94
 
95
95
  return this._ormService.bulkInsert(this._connId, tableName, columnDefs, records);
@@ -17,10 +17,10 @@ const workerResolvers = new LazyGcMap<
17
17
  string,
18
18
  { resolve: (res: unknown) => void; reject: (err: Error) => void }
19
19
  >({
20
- gcInterval: 5 * 1000, // 5초마다 만료 검사
21
- expireTime: 60 * 1000, // 60초가 지나면 만료 (타임아웃)
20
+ gcInterval: 5 * 1000, // Check for expired entries every 5s
21
+ expireTime: 60 * 1000, // Expire after 60s (timeout)
22
22
  onExpire: (key, item) => {
23
- // 만료 reject 호출 (메모리 방지 핵심)
23
+ // Reject on expiry (critical for preventing memory leaks)
24
24
  item.reject(new Error(`Worker task timed out (uuid: ${key})`));
25
25
  },
26
26
  });
@@ -40,8 +40,8 @@ function getWorker(): Worker | undefined {
40
40
  }
41
41
 
42
42
  if (!worker) {
43
- // Vite/Esbuild/Webpack 모던 번들러는 문법을 통해 Worker 별도 파일로 분리/로드함
44
- // 주의: import.meta.resolve 대신 상대경로 사용 (Vite 호환)
43
+ // Modern bundlers (Vite/Esbuild/Webpack) use this syntax to split/load the Worker as a separate file
44
+ // Note: use relative path instead of import.meta.resolve (Vite compatibility)
45
45
  worker = new Worker(new URL("../workers/client-protocol.worker.ts", import.meta.url), {
46
46
  type: "module",
47
47
  });
@@ -71,8 +71,8 @@ function getWorker(): Worker | undefined {
71
71
  }
72
72
 
73
73
  /**
74
- * Worker에 작업 위임 결과 대기
75
- * 주의: workerAvailable이 true일 때만 호출해야
74
+ * Delegate work to Worker and await result
75
+ * Note: only call when workerAvailable is true
76
76
  */
77
77
  async function runWorker(
78
78
  type: "encode" | "decode",
@@ -83,20 +83,20 @@ async function runWorker(
83
83
  const id = Uuid.new().toString();
84
84
 
85
85
  workerResolvers.set(id, { resolve, reject });
86
- // workerAvailable 체크 호출되므로 worker 항상 존재
86
+ // Called after workerAvailable check, so worker always exists
87
87
  getWorker()!.postMessage({ id, type, data }, { transfer });
88
88
  });
89
89
  }
90
90
 
91
91
  export function createClientProtocolWrapper(protocol: ServiceProtocol): ClientProtocolWrapper {
92
- // 기준값: 30KB
92
+ // Threshold: 30KB
93
93
  const SIZE_THRESHOLD = 30 * 1024;
94
94
 
95
95
  function shouldUseWorkerForEncode(msg: ServiceMessage): boolean {
96
96
  if (!("body" in msg)) return false;
97
97
  const body = msg.body;
98
98
 
99
- // Uint8Array 있거나, 배열 길이가 길면 워커 사용
99
+ // Use worker if Uint8Array is present or array length is large
100
100
  if (body instanceof Uint8Array) return true;
101
101
  if (typeof body === "string" && body.length > SIZE_THRESHOLD) return true;
102
102
  if (Array.isArray(body)) {
@@ -110,14 +110,14 @@ export function createClientProtocolWrapper(protocol: ServiceProtocol): ClientPr
110
110
  uuid: string,
111
111
  message: ServiceMessage,
112
112
  ): Promise<{ chunks: Bytes[]; totalSize: number }> {
113
- // Worker가 없거나 작은 데이터는 메인 스레드에서 처리
113
+ // Process on main thread if no Worker or small data
114
114
  if (!isWorkerAvailable() || !shouldUseWorkerForEncode(message)) {
115
115
  return protocol.encode(uuid, message);
116
116
  }
117
117
 
118
118
  // [Worker]
119
- // Encode 객체를 보내야 하므로 Structured Clone 발생함.
120
- // 하지만 JSON.stringify 비용을 메인 스레드에서 제거하는 이득이 큼.
119
+ // Encode requires sending an object, so Structured Clone occurs.
120
+ // But the benefit of offloading JSON.stringify cost from the main thread is greater.
121
121
  return (await runWorker("encode", { uuid, message })) as {
122
122
  chunks: Bytes[];
123
123
  totalSize: number;
@@ -127,16 +127,16 @@ export function createClientProtocolWrapper(protocol: ServiceProtocol): ClientPr
127
127
  async function decode(bytes: Bytes): Promise<ServiceMessageDecodeResult<ServiceMessage>> {
128
128
  const totalSize = bytes.length;
129
129
 
130
- // Worker가 없거나 작은 데이터는 메인 스레드에서 처리
130
+ // Process on main thread if no Worker or small data
131
131
  if (!isWorkerAvailable() || totalSize <= SIZE_THRESHOLD) {
132
132
  return protocol.decode(bytes);
133
133
  }
134
134
 
135
135
  // [Worker]
136
- // Zero-Copy 전송 (buffer 소유권이 Worker로 넘어감)
136
+ // Zero-copy transfer (buffer ownership moves to Worker)
137
137
  const rawResult = await runWorker("decode", bytes, [bytes.buffer]);
138
138
 
139
- // Worker에서 결과(Plain Object) 클래스 인스턴스(DateTime 등)로 복원
139
+ // Restore class instances (DateTime, etc.) from Worker's plain object result
140
140
  return transferableDecode(rawResult) as ServiceMessageDecodeResult<ServiceMessage>;
141
141
  }
142
142