@simplysm/service-client 13.0.0-beta.51 → 13.0.1

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 (48) hide show
  1. package/README.md +41 -11
  2. package/dist/features/event-client.d.ts +2 -5
  3. package/dist/features/event-client.d.ts.map +1 -1
  4. package/dist/features/event-client.js +26 -25
  5. package/dist/features/event-client.js.map +1 -1
  6. package/dist/features/file-client.d.ts +2 -4
  7. package/dist/features/file-client.d.ts.map +1 -1
  8. package/dist/features/file-client.js +11 -11
  9. package/dist/features/file-client.js.map +1 -1
  10. package/dist/features/orm/orm-client-connector.d.ts +5 -6
  11. package/dist/features/orm/orm-client-connector.d.ts.map +1 -1
  12. package/dist/features/orm/orm-client-connector.js +23 -15
  13. package/dist/features/orm/orm-client-connector.js.map +1 -1
  14. package/dist/features/orm/orm-connect-config.d.ts +3 -3
  15. package/dist/features/orm/orm-connect-config.d.ts.map +1 -1
  16. package/dist/index.d.ts +17 -11
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +19 -11
  19. package/dist/index.js.map +1 -1
  20. package/dist/protocol/client-protocol-wrapper.d.ts +3 -15
  21. package/dist/protocol/client-protocol-wrapper.d.ts.map +1 -1
  22. package/dist/protocol/client-protocol-wrapper.js +68 -75
  23. package/dist/protocol/client-protocol-wrapper.js.map +1 -1
  24. package/dist/service-client.d.ts +1 -0
  25. package/dist/service-client.d.ts.map +1 -1
  26. package/dist/service-client.js +17 -9
  27. package/dist/service-client.js.map +1 -1
  28. package/dist/transport/service-transport.d.ts +6 -12
  29. package/dist/transport/service-transport.d.ts.map +1 -1
  30. package/dist/transport/service-transport.js +40 -42
  31. package/dist/transport/service-transport.js.map +1 -1
  32. package/dist/transport/socket-provider.d.ts +6 -21
  33. package/dist/transport/socket-provider.d.ts.map +1 -1
  34. package/dist/transport/socket-provider.js +90 -91
  35. package/dist/transport/socket-provider.js.map +1 -1
  36. package/dist/workers/client-protocol.worker.js +2 -2
  37. package/dist/workers/client-protocol.worker.js.map +1 -1
  38. package/package.json +4 -4
  39. package/src/features/event-client.ts +41 -21
  40. package/src/features/file-client.ts +18 -10
  41. package/src/features/orm/orm-client-connector.ts +37 -17
  42. package/src/features/orm/orm-connect-config.ts +3 -3
  43. package/src/index.ts +17 -11
  44. package/src/protocol/client-protocol-wrapper.ts +96 -95
  45. package/src/service-client.ts +16 -8
  46. package/src/transport/service-transport.ts +55 -41
  47. package/src/transport/socket-provider.ts +103 -87
  48. package/src/workers/client-protocol.worker.ts +3 -3
package/README.md CHANGED
@@ -22,21 +22,28 @@ pnpm add @simplysm/service-client
22
22
 
23
23
  ## Main Modules
24
24
 
25
- ### Core Classes
25
+ ### Core Functions and Classes
26
26
 
27
- | Class | Description |
27
+ | Function/Class | Description |
28
28
  |--------|------|
29
- | `ServiceClient` | Main service client. Provides integrated connection management, RPC calls, events, files, and authentication. |
29
+ | `createServiceClient` | Factory function for creating a ServiceClient instance. **Recommended over using the class constructor directly.** |
30
+ | `ServiceClient` | Main service client class. Provides integrated connection management, RPC calls, events, files, and authentication. |
31
+ | `createServiceTransport` | Factory function for creating a ServiceTransport instance |
30
32
  | `ServiceTransport` | Message transport layer. Handles request/response matching, progress tracking, and protocol encoding/decoding. |
33
+ | `createSocketProvider` | Factory function for creating a SocketProvider instance |
31
34
  | `SocketProvider` | WebSocket connection management. Handles heartbeat, auto-reconnection, and connection state events. |
35
+ | `createClientProtocolWrapper` | Factory function for creating a ClientProtocolWrapper instance |
32
36
  | `ClientProtocolWrapper` | Protocol wrapper. Automatically selects main thread/Web Worker for encoding/decoding based on data size. |
33
37
 
34
- ### Feature Classes
38
+ ### Feature Functions and Classes
35
39
 
36
- | Class | Description |
40
+ | Function/Class | Description |
37
41
  |--------|------|
42
+ | `createEventClient` | Factory function for creating an EventClient instance |
38
43
  | `EventClient` | Server event subscription/publishing. Supports automatic listener recovery on reconnection. |
44
+ | `createFileClient` | Factory function for creating a FileClient instance |
39
45
  | `FileClient` | Handles HTTP-based file upload/download. |
46
+ | `createOrmClientConnector` | Factory function for creating an OrmClientConnector instance |
40
47
  | `OrmClientConnector` | ORM remote connection connector. Supports transaction/non-transaction connections. |
41
48
  | `OrmClientDbContextExecutor` | ORM DbContext remote executor. Calls server's `OrmService` via RPC. |
42
49
 
@@ -55,10 +62,10 @@ pnpm add @simplysm/service-client
55
62
  ### Basic Connection and Service Call
56
63
 
57
64
  ```typescript
58
- import { ServiceClient } from "@simplysm/service-client";
65
+ import { createServiceClient } from "@simplysm/service-client";
59
66
 
60
- // Create client
61
- const client = new ServiceClient("my-app", {
67
+ // Create client (recommended: use factory function)
68
+ const client = createServiceClient("my-app", {
62
69
  host: "localhost",
63
70
  port: 8080,
64
71
  ssl: false,
@@ -261,11 +268,11 @@ const buffer = await client.downloadFileBuffer("/uploads/2024/file.pdf");
261
268
  Access the database through the server's ORM service. Transactions are automatically managed.
262
269
 
263
270
  ```typescript
264
- import { OrmClientConnector } from "@simplysm/service-client";
271
+ import { createOrmClientConnector } from "@simplysm/service-client";
265
272
  import type { OrmConnectConfig } from "@simplysm/service-client";
266
273
  import { DbContext } from "@simplysm/orm-common";
267
274
 
268
- const connector = new OrmClientConnector(client);
275
+ const connector = createOrmClientConnector(client);
269
276
 
270
277
  // Connect with transaction (auto rollback on error)
271
278
  await connector.connect(
@@ -307,11 +314,34 @@ Server connection configuration interface.
307
314
  | `ssl` | `boolean` | No | SSL usage. If `true`, uses `wss://` / `https://` |
308
315
  | `maxReconnectCount` | `number` | No | Max reconnection attempts (default: 10). 0 means no reconnection |
309
316
 
317
+ ### createServiceClient
318
+
319
+ Factory function for creating a ServiceClient instance.
320
+
321
+ ```typescript
322
+ function createServiceClient(name: string, options: ServiceConnectionConfig): ServiceClient
323
+ ```
324
+
325
+ **Parameters:**
326
+ - `name` - Client identifier (used for server-side logging and connection management)
327
+ - `options` - Server connection configuration
328
+
329
+ **Returns:** ServiceClient instance
330
+
331
+ **Example:**
332
+ ```typescript
333
+ const client = createServiceClient("my-app", {
334
+ host: "localhost",
335
+ port: 8080,
336
+ ssl: false,
337
+ });
338
+ ```
339
+
310
340
  ### ServiceClient
311
341
 
312
342
  | Method/Property | Return Type | Description |
313
343
  |-------------|----------|------|
314
- | `constructor(name, options)` | - | Create client instance. `name` is the client identifier |
344
+ | `constructor(name, options)` | - | Create client instance. `name` is the client identifier. **Note: Prefer using `createServiceClient()` factory function.** |
315
345
  | `connected` | `boolean` | WebSocket connection status |
316
346
  | `hostUrl` | `string` | HTTP URL (e.g., `http://localhost:8080`) |
317
347
  | `connect()` | `Promise<void>` | Connect to server via WebSocket |
@@ -1,13 +1,10 @@
1
1
  import type { ServiceEventDef } from "@simplysm/service-common";
2
2
  import type { ServiceTransport } from "../transport/service-transport";
3
- export declare class EventClient {
4
- private readonly _transport;
5
- private readonly _listenerMap;
6
- constructor(_transport: ServiceTransport);
3
+ export interface EventClient {
7
4
  addListener<TInfo, TData>(eventDef: ServiceEventDef<TInfo, TData>, info: TInfo, cb: (data: TData) => PromiseLike<void>): Promise<string>;
8
5
  removeListener(key: string): Promise<void>;
9
6
  emitToServer<TInfo, TData>(eventDef: ServiceEventDef<TInfo, TData>, infoSelector: (item: TInfo) => boolean, data: TData): Promise<void>;
10
7
  reRegisterAll(): Promise<void>;
11
- private _executeByKey;
12
8
  }
9
+ export declare function createEventClient(transport: ServiceTransport): EventClient;
13
10
  //# sourceMappingURL=event-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-client.d.ts","sourceRoot":"","sources":["../../src/features/event-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAKvE,qBAAa,WAAW;IAMV,OAAO,CAAC,QAAQ,CAAC,UAAU;IALvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGzB;gBAEyB,UAAU,EAAE,gBAAgB;IAMnD,WAAW,CAAC,KAAK,EAAE,KAAK,EAC5B,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EACvC,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,WAAW,CAAC,IAAI,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC;IAoBZ,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1C,YAAY,CAAC,KAAK,EAAE,KAAK,EAC7B,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EACvC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,EACtC,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,IAAI,CAAC;IAoBV,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;YActB,aAAa;CAY5B"}
1
+ {"version":3,"file":"event-client.d.ts","sourceRoot":"","sources":["../../src/features/event-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAKvE,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,KAAK,EAAE,KAAK,EACtB,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EACvC,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,WAAW,CAAC,IAAI,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,CAAC,KAAK,EAAE,KAAK,EACvB,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EACvC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,EACtC,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,WAAW,CAgG1E"}
@@ -1,51 +1,47 @@
1
1
  import { Uuid } from "@simplysm/core-common";
2
2
  import consola from "consola";
3
3
  const logger = consola.withTag("service-client:EventClient");
4
- class EventClient {
5
- constructor(_transport) {
6
- this._transport = _transport;
7
- this._transport.on("event", async ({ keys, data }) => {
8
- await this._executeByKey(keys, data);
9
- });
10
- }
11
- _listenerMap = /* @__PURE__ */ new Map();
12
- async addListener(eventDef, info, cb) {
4
+ function createEventClient(transport) {
5
+ const listenerMap = /* @__PURE__ */ new Map();
6
+ transport.on("event", async ({ keys, data }) => {
7
+ await executeByKey(keys, data);
8
+ });
9
+ async function addListener(eventDef, info, cb) {
13
10
  const key = Uuid.new().toString();
14
11
  const eventName = eventDef.eventName;
15
- await this._transport.send({
12
+ await transport.send({
16
13
  name: "evt:add",
17
14
  body: { key, name: eventName, info }
18
15
  });
19
- this._listenerMap.set(key, {
16
+ listenerMap.set(key, {
20
17
  eventName,
21
18
  info,
22
19
  cb
23
20
  });
24
21
  return key;
25
22
  }
26
- async removeListener(key) {
27
- await this._transport.send({ name: "evt:remove", body: { key } });
28
- this._listenerMap.delete(key);
23
+ async function removeListener(key) {
24
+ await transport.send({ name: "evt:remove", body: { key } });
25
+ listenerMap.delete(key);
29
26
  }
30
- async emitToServer(eventDef, infoSelector, data) {
27
+ async function emitToServer(eventDef, infoSelector, data) {
31
28
  const eventName = eventDef.eventName;
32
- const listenerInfos = await this._transport.send({
29
+ const listenerInfos = await transport.send({
33
30
  name: "evt:gets",
34
31
  body: { name: eventName }
35
32
  });
36
33
  const targetKeys = listenerInfos.filter((item) => infoSelector(item.info)).map((item) => item.key);
37
34
  if (targetKeys.length > 0) {
38
- await this._transport.send({
35
+ await transport.send({
39
36
  name: "evt:emit",
40
37
  body: { keys: targetKeys, data }
41
38
  });
42
39
  }
43
40
  }
44
- // 재연결 호출됨
45
- async reRegisterAll() {
46
- for (const [key, value] of this._listenerMap.entries()) {
41
+ async function reRegisterAll() {
42
+ for (const [key, value] of listenerMap.entries()) {
47
43
  try {
48
- await this._transport.send({
44
+ await transport.send({
49
45
  name: "evt:add",
50
46
  body: { key, name: value.eventName, info: value.info }
51
47
  });
@@ -54,10 +50,9 @@ class EventClient {
54
50
  }
55
51
  }
56
52
  }
57
- // 서버에서 이벤트를 로컬 리스너에게 분배
58
- async _executeByKey(keys, data) {
53
+ async function executeByKey(keys, data) {
59
54
  for (const key of keys) {
60
- const entry = this._listenerMap.get(key);
55
+ const entry = listenerMap.get(key);
61
56
  if (entry != null) {
62
57
  try {
63
58
  await entry.cb(data);
@@ -67,8 +62,14 @@ class EventClient {
67
62
  }
68
63
  }
69
64
  }
65
+ return {
66
+ addListener,
67
+ removeListener,
68
+ emitToServer,
69
+ reRegisterAll
70
+ };
70
71
  }
71
72
  export {
72
- EventClient
73
+ createEventClient
73
74
  };
74
75
  //# sourceMappingURL=event-client.js.map
@@ -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;AAEpD,MAAM,YAAY;AAAA,EAMvB,YAA6B,YAA8B;AAA9B;AAC3B,SAAK,WAAW,GAAG,SAAS,OAAO,EAAE,MAAM,KAAK,MAAM;AACpD,YAAM,KAAK,cAAc,MAAM,IAAI;AAAA,IACrC,CAAC;AAAA,EACH;AAAA,EATiB,eAAe,oBAAI,IAGlC;AAAA,EAQF,MAAM,YACJ,UACA,MACA,IACiB;AACjB,UAAM,MAAM,KAAK,IAAI,EAAE,SAAS;AAChC,UAAM,YAAY,SAAS;AAG3B,UAAM,KAAK,WAAW,KAAK;AAAA,MACzB,MAAM;AAAA,MACN,MAAM,EAAE,KAAK,MAAM,WAAW,KAAK;AAAA,IACrC,CAAC;AAGD,SAAK,aAAa,IAAI,KAAK;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,eAAe,KAA4B;AAC/C,UAAM,KAAK,WAAW,KAAK,EAAE,MAAM,cAAc,MAAM,EAAE,IAAI,EAAE,CAAC;AAChE,SAAK,aAAa,OAAO,GAAG;AAAA,EAC9B;AAAA,EAEA,MAAM,aACJ,UACA,cACA,MACe;AACf,UAAM,YAAY,SAAS;AAG3B,UAAM,gBAAiB,MAAM,KAAK,WAAW,KAAK;AAAA,MAChD,MAAM;AAAA,MACN,MAAM,EAAE,MAAM,UAAU;AAAA,IAC1B,CAAC;AAED,UAAM,aAAa,cAAc,OAAO,CAAC,SAAS,aAAa,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG;AAEjG,QAAI,WAAW,SAAS,GAAG;AACzB,YAAM,KAAK,WAAW,KAAK;AAAA,QACzB,MAAM;AAAA,QACN,MAAM,EAAE,MAAM,YAAY,KAAK;AAAA,MACjC,CAAC;AAAA,IACH;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,gBAA+B;AACnC,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,aAAa,QAAQ,GAAG;AACtD,UAAI;AACF,cAAM,KAAK,WAAW,KAAK;AAAA,UACzB,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;AAAA;AAAA,EAGA,MAAc,cAAc,MAAgB,MAA8B;AACxE,eAAW,OAAO,MAAM;AACtB,YAAM,QAAQ,KAAK,aAAa,IAAI,GAAG;AACvC,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;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,cAAc,OAAO,CAAC,SAAS,aAAa,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG;AAEjG,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;",
5
5
  "names": []
6
6
  }
@@ -1,13 +1,11 @@
1
1
  import type { Bytes } from "@simplysm/core-common";
2
2
  import type { ServiceUploadResult } from "@simplysm/service-common";
3
- export declare class FileClient {
4
- private readonly _hostUrl;
5
- private readonly _clientName;
6
- constructor(_hostUrl: string, _clientName: string);
3
+ export interface FileClient {
7
4
  download(relPath: string): Promise<Bytes>;
8
5
  upload(files: File[] | FileList | {
9
6
  name: string;
10
7
  data: BlobPart;
11
8
  }[], authToken: string): Promise<ServiceUploadResult[]>;
12
9
  }
10
+ export declare function createFileClient(hostUrl: string, clientName: string): FileClient;
13
11
  //# sourceMappingURL=file-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-client.d.ts","sourceRoot":"","sources":["../../src/features/file-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM;IAGhC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAazC,MAAM,CACV,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,EAAE,EAC7D,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,EAAE,CAAC;CA8BlC"}
1
+ {"version":3,"file":"file-client.d.ts","sourceRoot":"","sources":["../../src/features/file-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CACJ,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,EAAE,EAC7D,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;CACnC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAoDhF"}
@@ -1,17 +1,13 @@
1
- class FileClient {
2
- constructor(_hostUrl, _clientName) {
3
- this._hostUrl = _hostUrl;
4
- this._clientName = _clientName;
5
- }
6
- async download(relPath) {
7
- const url = `${this._hostUrl}${relPath.startsWith("/") ? "" : "/"}${relPath}`;
1
+ function createFileClient(hostUrl, clientName) {
2
+ async function download(relPath) {
3
+ const url = `${hostUrl}${relPath.startsWith("/") ? "" : "/"}${relPath}`;
8
4
  const res = await fetch(url);
9
5
  if (!res.ok) {
10
6
  throw new Error(`Download failed: ${res.status} ${res.statusText}`);
11
7
  }
12
8
  return new Uint8Array(await res.arrayBuffer());
13
9
  }
14
- async upload(files, authToken) {
10
+ async function upload(files, authToken) {
15
11
  const formData = new FormData();
16
12
  const fileList = files instanceof FileList ? Array.from(files) : files;
17
13
  for (const file of fileList) {
@@ -22,10 +18,10 @@ class FileClient {
22
18
  formData.append("files", file, file.name);
23
19
  }
24
20
  }
25
- const res = await fetch(`${this._hostUrl}/upload`, {
21
+ const res = await fetch(`${hostUrl}/upload`, {
26
22
  method: "POST",
27
23
  headers: {
28
- "x-sd-client-name": this._clientName,
24
+ "x-sd-client-name": clientName,
29
25
  "Authorization": `Bearer ${authToken}`
30
26
  },
31
27
  body: formData
@@ -35,8 +31,12 @@ class FileClient {
35
31
  }
36
32
  return res.json();
37
33
  }
34
+ return {
35
+ download,
36
+ upload
37
+ };
38
38
  }
39
39
  export {
40
- FileClient
40
+ createFileClient
41
41
  };
42
42
  //# sourceMappingURL=file-client.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/features/file-client.ts"],
4
- "mappings": "AAGO,MAAM,WAAW;AAAA,EACtB,YACmB,UACA,aACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAEH,MAAM,SAAS,SAAiC;AAE9C,UAAM,MAAM,GAAG,KAAK,QAAQ,GAAG,QAAQ,WAAW,GAAG,IAAI,KAAK,GAAG,GAAG,OAAO;AAE3E,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,IAAI,MAAM,oBAAoB,IAAI,MAAM,IAAI,IAAI,UAAU,EAAE;AAAA,IACpE;AAGA,WAAO,IAAI,WAAW,MAAM,IAAI,YAAY,CAAC;AAAA,EAC/C;AAAA,EAEA,MAAM,OACJ,OACA,WACgC;AAChC,UAAM,WAAW,IAAI,SAAS;AAC9B,UAAM,WAAW,iBAAiB,WAAW,MAAM,KAAK,KAAK,IAAI;AAEjE,eAAW,QAAQ,UAAU;AAC3B,UAAI,UAAU,MAAM;AAElB,cAAM,OAAO,KAAK,gBAAgB,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC;AACzE,iBAAS,OAAO,SAAS,MAAM,KAAK,IAAI;AAAA,MAC1C,OAAO;AAEL,iBAAS,OAAO,SAAS,MAAM,KAAK,IAAI;AAAA,MAC1C;AAAA,IACF;AAEA,UAAM,MAAM,MAAM,MAAM,GAAG,KAAK,QAAQ,WAAW;AAAA,MACjD,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,oBAAoB,KAAK;AAAA,QACzB,iBAAiB,UAAU,SAAS;AAAA,MACtC;AAAA,MACA,MAAM;AAAA,IACR,CAAC;AAED,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,IAAI,MAAM,kBAAkB,IAAI,UAAU,EAAE;AAAA,IACpD;AAEA,WAAO,IAAI,KAAK;AAAA,EAClB;AACF;",
4
+ "mappings": "AAWO,SAAS,iBAAiB,SAAiB,YAAgC;AAChF,iBAAe,SAAS,SAAiC;AAEvD,UAAM,MAAM,GAAG,OAAO,GAAG,QAAQ,WAAW,GAAG,IAAI,KAAK,GAAG,GAAG,OAAO;AAErE,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,IAAI,MAAM,oBAAoB,IAAI,MAAM,IAAI,IAAI,UAAU,EAAE;AAAA,IACpE;AAGA,WAAO,IAAI,WAAW,MAAM,IAAI,YAAY,CAAC;AAAA,EAC/C;AAEA,iBAAe,OACb,OACA,WACgC;AAChC,UAAM,WAAW,IAAI,SAAS;AAC9B,UAAM,WAAW,iBAAiB,WAAW,MAAM,KAAK,KAAK,IAAI;AAEjE,eAAW,QAAQ,UAAU;AAC3B,UAAI,UAAU,MAAM;AAElB,cAAM,OAAO,KAAK,gBAAgB,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC;AACzE,iBAAS,OAAO,SAAS,MAAM,KAAK,IAAI;AAAA,MAC1C,OAAO;AAEL,iBAAS,OAAO,SAAS,MAAM,KAAK,IAAI;AAAA,MAC1C;AAAA,IACF;AAEA,UAAM,MAAM,MAAM,MAAM,GAAG,OAAO,WAAW;AAAA,MAC3C,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,oBAAoB;AAAA,QACpB,iBAAiB,UAAU,SAAS;AAAA,MACtC;AAAA,MACA,MAAM;AAAA,IACR,CAAC;AAED,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,IAAI,MAAM,kBAAkB,IAAI,UAAU,EAAE;AAAA,IACpD;AAEA,WAAO,IAAI,KAAK;AAAA,EAClB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,10 +1,9 @@
1
1
  import type { OrmConnectConfig } from "./orm-connect-config";
2
- import type { DbContext } from "@simplysm/orm-common";
2
+ import { type DbContextDef, type DbContextInstance } from "@simplysm/orm-common";
3
3
  import type { ServiceClient } from "../../service-client";
4
- export declare class OrmClientConnector {
5
- private readonly _serviceClient;
6
- constructor(_serviceClient: ServiceClient);
7
- connect<T extends DbContext, R>(config: OrmConnectConfig<T>, callback: (conn: T) => Promise<R> | R): Promise<R>;
8
- connectWithoutTransaction<T extends DbContext, R>(config: OrmConnectConfig<T>, callback: (conn: T) => Promise<R> | R): Promise<R>;
4
+ export interface OrmClientConnector {
5
+ connect<TDef extends DbContextDef<any, any, any>, R>(config: OrmConnectConfig<TDef>, callback: (conn: DbContextInstance<TDef>) => Promise<R> | R): Promise<R>;
6
+ connectWithoutTransaction<TDef extends DbContextDef<any, any, any>, R>(config: OrmConnectConfig<TDef>, callback: (conn: DbContextInstance<TDef>) => Promise<R> | R): Promise<R>;
9
7
  }
8
+ export declare function createOrmClientConnector(serviceClient: ServiceClient): OrmClientConnector;
10
9
  //# sourceMappingURL=orm-client-connector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orm-client-connector.d.ts","sourceRoot":"","sources":["../../../src/features/orm/orm-client-connector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,aAAa;IAEpD,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,EAClC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GACpC,OAAO,CAAC,CAAC,CAAC;IAyBP,yBAAyB,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,EACpD,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GACpC,OAAO,CAAC,CAAC,CAAC;CAUd"}
1
+ {"version":3,"file":"orm-client-connector.d.ts","sourceRoot":"","sources":["../../../src/features/orm/orm-client-connector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAmB,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,IAAI,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EACjD,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC1D,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,yBAAyB,CAAC,IAAI,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EACnE,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC1D,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,aAAa,GAAG,kBAAkB,CAqDzF"}
@@ -1,15 +1,16 @@
1
1
  import { OrmClientDbContextExecutor } from "./orm-client-db-context-executor.js";
2
- class OrmClientConnector {
3
- constructor(_serviceClient) {
4
- this._serviceClient = _serviceClient;
5
- }
6
- async connect(config, callback) {
2
+ import { createDbContext } from "@simplysm/orm-common";
3
+ function createOrmClientConnector(serviceClient) {
4
+ async function connect(config, callback) {
7
5
  var _a, _b;
8
- const executor = new OrmClientDbContextExecutor(this._serviceClient, config.connOpt);
6
+ const executor = new OrmClientDbContextExecutor(serviceClient, config.connOpt);
9
7
  const info = await executor.getInfo();
10
- const db = new config.dbContextType(executor, {
11
- dialect: info.dialect,
12
- database: ((_a = config.dbContextOpt) == null ? void 0 : _a.database) ?? info.database,
8
+ const database = ((_a = config.dbContextOpt) == null ? void 0 : _a.database) ?? info.database;
9
+ if (database == null || database === "") {
10
+ throw new Error("Database name is required");
11
+ }
12
+ const db = createDbContext(config.dbContextDef, executor, {
13
+ database,
13
14
  schema: ((_b = config.dbContextOpt) == null ? void 0 : _b.schema) ?? info.schema
14
15
  });
15
16
  return db.connect(async () => {
@@ -23,19 +24,26 @@ class OrmClientConnector {
23
24
  }
24
25
  });
25
26
  }
26
- async connectWithoutTransaction(config, callback) {
27
+ async function connectWithoutTransaction(config, callback) {
27
28
  var _a, _b;
28
- const executor = new OrmClientDbContextExecutor(this._serviceClient, config.connOpt);
29
+ const executor = new OrmClientDbContextExecutor(serviceClient, config.connOpt);
29
30
  const info = await executor.getInfo();
30
- const db = new config.dbContextType(executor, {
31
- dialect: info.dialect,
32
- database: ((_a = config.dbContextOpt) == null ? void 0 : _a.database) ?? info.database,
31
+ const database = ((_a = config.dbContextOpt) == null ? void 0 : _a.database) ?? info.database;
32
+ if (database == null || database === "") {
33
+ throw new Error("Database name is required");
34
+ }
35
+ const db = createDbContext(config.dbContextDef, executor, {
36
+ database,
33
37
  schema: ((_b = config.dbContextOpt) == null ? void 0 : _b.schema) ?? info.schema
34
38
  });
35
39
  return db.connectWithoutTransaction(async () => callback(db));
36
40
  }
41
+ return {
42
+ connect,
43
+ connectWithoutTransaction
44
+ };
37
45
  }
38
46
  export {
39
- OrmClientConnector
47
+ createOrmClientConnector
40
48
  };
41
49
  //# sourceMappingURL=orm-client-connector.js.map
@@ -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;AAKpC,MAAM,mBAAmB;AAAA,EAC9B,YAA6B,gBAA+B;AAA/B;AAAA,EAAgC;AAAA,EAE7D,MAAM,QACJ,QACA,UACY;AAXhB;AAYI,UAAM,WAAW,IAAI,2BAA2B,KAAK,gBAAgB,OAAO,OAAO;AACnF,UAAM,OAAO,MAAM,SAAS,QAAQ;AACpC,UAAM,KAAK,IAAI,OAAO,cAAc,UAAU;AAAA,MAC5C,SAAS,KAAK;AAAA,MACd,YAAU,YAAO,iBAAP,mBAAqB,aAAY,KAAK;AAAA,MAChD,UAAQ,YAAO,iBAAP,mBAAqB,WAAU,KAAK;AAAA,IAC9C,CAAC;AACD,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,cAAI,UAAU;AAAA,QAChB;AAEA,cAAM;AAAA,MACR;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,0BACJ,QACA,UACY;AAvChB;AAwCI,UAAM,WAAW,IAAI,2BAA2B,KAAK,gBAAgB,OAAO,OAAO;AACnF,UAAM,OAAO,MAAM,SAAS,QAAQ;AACpC,UAAM,KAAK,IAAI,OAAO,cAAc,UAAU;AAAA,MAC5C,SAAS,KAAK;AAAA,MACd,YAAU,YAAO,iBAAP,mBAAqB,aAAY,KAAK;AAAA,MAChD,UAAQ,YAAO,iBAAP,mBAAqB,WAAU,KAAK;AAAA,IAC9C,CAAC;AACD,WAAO,GAAG,0BAA0B,YAAY,SAAS,EAAE,CAAC;AAAA,EAC9D;AACF;",
4
+ "mappings": "AAAA,SAAS,kCAAkC;AAE3C,SAAS,uBAAkE;AAcpE,SAAS,yBAAyB,eAAkD;AACzF,iBAAe,QACb,QACA,UACY;AApBhB;AAqBI,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,2BAA2B;AAAA,IAC7C;AACA,UAAM,KAAK,gBAAgB,OAAO,cAAc,UAAU;AAAA,MACxD;AAAA,MACA,UAAQ,YAAO,iBAAP,mBAAqB,WAAU,KAAK;AAAA,IAC9C,CAAC;AACD,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,cAAI,UAAU;AAAA,QAChB;AAEA,cAAM;AAAA,MACR;AAAA,IACF,CAAC;AAAA,EACH;AAEA,iBAAe,0BACb,QACA,UACY;AAnDhB;AAoDI,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,2BAA2B;AAAA,IAC7C;AACA,UAAM,KAAK,gBAAgB,OAAO,cAAc,UAAU;AAAA,MACxD;AAAA,MACA,UAAQ,YAAO,iBAAP,mBAAqB,WAAU,KAAK;AAAA,IAC9C,CAAC;AACD,WAAO,GAAG,0BAA0B,YAAY,SAAS,EAAE,CAAC;AAAA,EAC9D;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,7 +1,7 @@
1
- import type { Type } from "@simplysm/core-common";
1
+ import type { DbContextDef } from "@simplysm/orm-common";
2
2
  import type { DbConnOptions } from "@simplysm/service-common";
3
- export interface OrmConnectConfig<T> {
4
- dbContextType: Type<T>;
3
+ export interface OrmConnectConfig<TDef extends DbContextDef<any, any, any>> {
4
+ dbContextDef: TDef;
5
5
  connOpt: DbConnOptions & {
6
6
  configName: string;
7
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"orm-connect-config.d.ts","sourceRoot":"","sources":["../../../src/features/orm/orm-connect-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,aAAa,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,YAAY,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
1
+ {"version":3,"file":"orm-connect-config.d.ts","sourceRoot":"","sources":["../../../src/features/orm/orm-connect-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,gBAAgB,CAAC,IAAI,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACxE,YAAY,EAAE,IAAI,CAAC;IACnB,OAAO,EAAE,aAAa,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,YAAY,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,18 @@
1
- export * from "./types/connection-config";
2
- export * from "./types/progress.types";
3
- export * from "./transport/socket-provider";
4
- export * from "./transport/service-transport";
5
- export * from "./protocol/client-protocol-wrapper";
6
- export * from "./features/event-client";
7
- export * from "./features/file-client";
8
- export * from "./features/orm/orm-connect-config";
9
- export * from "./features/orm/orm-client-connector";
10
- export * from "./features/orm/orm-client-db-context-executor";
11
- export * from "./service-client";
1
+ export type { ServiceConnectionConfig } from "./types/connection-config";
2
+ export type { ServiceProgress, ServiceProgressState } from "./types/progress.types";
3
+ export type { SocketProvider, SocketProviderEvents } from "./transport/socket-provider";
4
+ export { createSocketProvider } from "./transport/socket-provider";
5
+ export type { ServiceTransport, ServiceTransportEvents } from "./transport/service-transport";
6
+ export { createServiceTransport } from "./transport/service-transport";
7
+ export type { ClientProtocolWrapper } from "./protocol/client-protocol-wrapper";
8
+ export { createClientProtocolWrapper } from "./protocol/client-protocol-wrapper";
9
+ export type { EventClient } from "./features/event-client";
10
+ export { createEventClient } from "./features/event-client";
11
+ export type { FileClient } from "./features/file-client";
12
+ export { createFileClient } from "./features/file-client";
13
+ export type { OrmConnectConfig } from "./features/orm/orm-connect-config";
14
+ export type { OrmClientConnector } from "./features/orm/orm-client-connector";
15
+ export { createOrmClientConnector } from "./features/orm/orm-client-connector";
16
+ export { OrmClientDbContextExecutor } from "./features/orm/orm-client-db-context-executor";
17
+ export { ServiceClient, createServiceClient, type RemoteService } from "./service-client";
12
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAG9C,cAAc,oCAAoC,CAAC;AAGnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAG9D,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,YAAY,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAG3F,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,20 @@
1
- export * from "./types/connection-config.js";
2
- export * from "./types/progress.types.js";
3
- export * from "./transport/socket-provider.js";
4
- export * from "./transport/service-transport.js";
5
- export * from "./protocol/client-protocol-wrapper.js";
6
- export * from "./features/event-client.js";
7
- export * from "./features/file-client.js";
8
- export * from "./features/orm/orm-connect-config.js";
9
- export * from "./features/orm/orm-client-connector.js";
10
- export * from "./features/orm/orm-client-db-context-executor.js";
11
- export * from "./service-client.js";
1
+ import { createSocketProvider } from "./transport/socket-provider.js";
2
+ import { createServiceTransport } from "./transport/service-transport.js";
3
+ import { createClientProtocolWrapper } from "./protocol/client-protocol-wrapper.js";
4
+ import { createEventClient } from "./features/event-client.js";
5
+ import { createFileClient } from "./features/file-client.js";
6
+ import { createOrmClientConnector } from "./features/orm/orm-client-connector.js";
7
+ import { OrmClientDbContextExecutor } from "./features/orm/orm-client-db-context-executor.js";
8
+ import { ServiceClient, createServiceClient } from "./service-client.js";
9
+ export {
10
+ OrmClientDbContextExecutor,
11
+ ServiceClient,
12
+ createClientProtocolWrapper,
13
+ createEventClient,
14
+ createFileClient,
15
+ createOrmClientConnector,
16
+ createServiceClient,
17
+ createServiceTransport,
18
+ createSocketProvider
19
+ };
12
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "mappings": "AACA,cAAc;AACd,cAAc;AAGd,cAAc;AACd,cAAc;AAGd,cAAc;AAGd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;",
4
+ "mappings": "AAMA,SAAS,4BAA4B;AAErC,SAAS,8BAA8B;AAIvC,SAAS,mCAAmC;AAI5C,SAAS,yBAAyB;AAElC,SAAS,wBAAwB;AAGjC,SAAS,gCAAgC;AACzC,SAAS,kCAAkC;AAG3C,SAAS,eAAe,2BAA+C;",
5
5
  "names": []
6
6
  }
@@ -1,23 +1,11 @@
1
1
  import type { Bytes } from "@simplysm/core-common";
2
- import type { ServiceMessageDecodeResult, ServiceMessage } from "@simplysm/service-common";
3
- export declare class ClientProtocolWrapper {
4
- private readonly _SIZE_THRESHOLD;
5
- private readonly _protocol;
6
- private static _worker?;
7
- private static readonly _workerResolvers;
8
- private static _workerAvailable;
9
- private static get workerAvailable();
10
- private static get worker();
11
- /**
12
- * Worker에 작업 위임 및 결과 대기
13
- * 주의: workerAvailable이 true일 때만 호출해야 함
14
- */
15
- private _runWorker;
2
+ import type { ServiceMessageDecodeResult, ServiceMessage, ServiceProtocol } from "@simplysm/service-common";
3
+ export interface ClientProtocolWrapper {
16
4
  encode(uuid: string, message: ServiceMessage): Promise<{
17
5
  chunks: Bytes[];
18
6
  totalSize: number;
19
7
  }>;
20
8
  decode(bytes: Bytes): Promise<ServiceMessageDecodeResult<ServiceMessage>>;
21
- private _shouldUseWorkerForEncode;
22
9
  }
10
+ export declare function createClientProtocolWrapper(protocol: ServiceProtocol): ClientProtocolWrapper;
23
11
  //# sourceMappingURL=client-protocol-wrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-protocol-wrapper.d.ts","sourceRoot":"","sources":["../../src/protocol/client-protocol-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG3F,qBAAa,qBAAqB;IAEhC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAa;IAG7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IAGnD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAS;IAEhC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAUrC;IAGH,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAsB;IAErD,OAAO,CAAC,MAAM,KAAK,eAAe,GAKjC;IAED,OAAO,CAAC,MAAM,KAAK,MAAM,GAkCxB;IAED;;;OAGG;YACW,UAAU;IAUlB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAe9F,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;IAgB/E,OAAO,CAAC,yBAAyB;CAalC"}
1
+ {"version":3,"file":"client-protocol-wrapper.d.ts","sourceRoot":"","sources":["../../src/protocol/client-protocol-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE5G,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC,CAAC;CAC3E;AAwED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,eAAe,GAAG,qBAAqB,CAqD5F"}