@simplysm/capacitor-plugin-usb-storage 13.0.0-beta.7 β†’ 13.0.2

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 (95) hide show
  1. package/README.md +32 -0
  2. package/dist/IUsbStoragePlugin.d.ts.map +1 -0
  3. package/dist/IUsbStoragePlugin.js.map +0 -1
  4. package/dist/UsbStorage.d.ts.map +1 -0
  5. package/dist/UsbStorage.js.map +0 -1
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +2 -2
  8. package/dist/index.js.map +0 -1
  9. package/dist/web/IndexedDbStore.d.ts.map +1 -0
  10. package/dist/web/IndexedDbStore.js.map +0 -1
  11. package/dist/web/UsbStorageWeb.d.ts.map +1 -0
  12. package/dist/web/UsbStorageWeb.js +1 -1
  13. package/dist/web/UsbStorageWeb.js.map +0 -1
  14. package/dist/web/VirtualUsbStorage.d.ts.map +1 -0
  15. package/dist/web/VirtualUsbStorage.js +1 -1
  16. package/dist/web/VirtualUsbStorage.js.map +0 -1
  17. package/package.json +3 -3
  18. package/dist/capacitor-plugin-usb-storage/src/IUsbStoragePlugin.d.ts.map +0 -1
  19. package/dist/capacitor-plugin-usb-storage/src/UsbStorage.d.ts.map +0 -1
  20. package/dist/capacitor-plugin-usb-storage/src/index.d.ts.map +0 -1
  21. package/dist/capacitor-plugin-usb-storage/src/web/IndexedDbStore.d.ts.map +0 -1
  22. package/dist/capacitor-plugin-usb-storage/src/web/UsbStorageWeb.d.ts.map +0 -1
  23. package/dist/capacitor-plugin-usb-storage/src/web/VirtualUsbStorage.d.ts.map +0 -1
  24. package/dist/core-common/src/common.types.d.ts +0 -74
  25. package/dist/core-common/src/common.types.d.ts.map +0 -1
  26. package/dist/core-common/src/env.d.ts +0 -6
  27. package/dist/core-common/src/env.d.ts.map +0 -1
  28. package/dist/core-common/src/errors/argument-error.d.ts +0 -25
  29. package/dist/core-common/src/errors/argument-error.d.ts.map +0 -1
  30. package/dist/core-common/src/errors/not-implemented-error.d.ts +0 -29
  31. package/dist/core-common/src/errors/not-implemented-error.d.ts.map +0 -1
  32. package/dist/core-common/src/errors/sd-error.d.ts +0 -27
  33. package/dist/core-common/src/errors/sd-error.d.ts.map +0 -1
  34. package/dist/core-common/src/errors/timeout-error.d.ts +0 -31
  35. package/dist/core-common/src/errors/timeout-error.d.ts.map +0 -1
  36. package/dist/core-common/src/extensions/arr-ext.d.ts +0 -15
  37. package/dist/core-common/src/extensions/arr-ext.d.ts.map +0 -1
  38. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts +0 -19
  39. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts.map +0 -1
  40. package/dist/core-common/src/extensions/arr-ext.types.d.ts +0 -215
  41. package/dist/core-common/src/extensions/arr-ext.types.d.ts.map +0 -1
  42. package/dist/core-common/src/extensions/map-ext.d.ts +0 -57
  43. package/dist/core-common/src/extensions/map-ext.d.ts.map +0 -1
  44. package/dist/core-common/src/extensions/set-ext.d.ts +0 -36
  45. package/dist/core-common/src/extensions/set-ext.d.ts.map +0 -1
  46. package/dist/core-common/src/features/debounce-queue.d.ts +0 -53
  47. package/dist/core-common/src/features/debounce-queue.d.ts.map +0 -1
  48. package/dist/core-common/src/features/event-emitter.d.ts +0 -66
  49. package/dist/core-common/src/features/event-emitter.d.ts.map +0 -1
  50. package/dist/core-common/src/features/serial-queue.d.ts +0 -47
  51. package/dist/core-common/src/features/serial-queue.d.ts.map +0 -1
  52. package/dist/core-common/src/index.d.ts +0 -32
  53. package/dist/core-common/src/index.d.ts.map +0 -1
  54. package/dist/core-common/src/types/date-only.d.ts +0 -152
  55. package/dist/core-common/src/types/date-only.d.ts.map +0 -1
  56. package/dist/core-common/src/types/date-time.d.ts +0 -96
  57. package/dist/core-common/src/types/date-time.d.ts.map +0 -1
  58. package/dist/core-common/src/types/lazy-gc-map.d.ts +0 -80
  59. package/dist/core-common/src/types/lazy-gc-map.d.ts.map +0 -1
  60. package/dist/core-common/src/types/time.d.ts +0 -68
  61. package/dist/core-common/src/types/time.d.ts.map +0 -1
  62. package/dist/core-common/src/types/uuid.d.ts +0 -35
  63. package/dist/core-common/src/types/uuid.d.ts.map +0 -1
  64. package/dist/core-common/src/utils/bytes.d.ts +0 -51
  65. package/dist/core-common/src/utils/bytes.d.ts.map +0 -1
  66. package/dist/core-common/src/utils/date-format.d.ts +0 -90
  67. package/dist/core-common/src/utils/date-format.d.ts.map +0 -1
  68. package/dist/core-common/src/utils/json.d.ts +0 -34
  69. package/dist/core-common/src/utils/json.d.ts.map +0 -1
  70. package/dist/core-common/src/utils/num.d.ts +0 -60
  71. package/dist/core-common/src/utils/num.d.ts.map +0 -1
  72. package/dist/core-common/src/utils/obj.d.ts +0 -258
  73. package/dist/core-common/src/utils/obj.d.ts.map +0 -1
  74. package/dist/core-common/src/utils/path.d.ts +0 -23
  75. package/dist/core-common/src/utils/path.d.ts.map +0 -1
  76. package/dist/core-common/src/utils/primitive.d.ts +0 -18
  77. package/dist/core-common/src/utils/primitive.d.ts.map +0 -1
  78. package/dist/core-common/src/utils/str.d.ts +0 -103
  79. package/dist/core-common/src/utils/str.d.ts.map +0 -1
  80. package/dist/core-common/src/utils/template-strings.d.ts +0 -84
  81. package/dist/core-common/src/utils/template-strings.d.ts.map +0 -1
  82. package/dist/core-common/src/utils/transferable.d.ts +0 -47
  83. package/dist/core-common/src/utils/transferable.d.ts.map +0 -1
  84. package/dist/core-common/src/utils/wait.d.ts +0 -19
  85. package/dist/core-common/src/utils/wait.d.ts.map +0 -1
  86. package/dist/core-common/src/utils/xml.d.ts +0 -36
  87. package/dist/core-common/src/utils/xml.d.ts.map +0 -1
  88. package/dist/core-common/src/zip/sd-zip.d.ts +0 -80
  89. package/dist/core-common/src/zip/sd-zip.d.ts.map +0 -1
  90. /package/dist/{capacitor-plugin-usb-storage/src/IUsbStoragePlugin.d.ts β†’ IUsbStoragePlugin.d.ts} +0 -0
  91. /package/dist/{capacitor-plugin-usb-storage/src/UsbStorage.d.ts β†’ UsbStorage.d.ts} +0 -0
  92. /package/dist/{capacitor-plugin-usb-storage/src/index.d.ts β†’ index.d.ts} +0 -0
  93. /package/dist/{capacitor-plugin-usb-storage/src/web β†’ web}/IndexedDbStore.d.ts +0 -0
  94. /package/dist/{capacitor-plugin-usb-storage/src/web β†’ web}/UsbStorageWeb.d.ts +0 -0
  95. /package/dist/{capacitor-plugin-usb-storage/src/web β†’ web}/VirtualUsbStorage.d.ts +0 -0
package/README.md CHANGED
@@ -41,6 +41,10 @@ npx cap sync
41
41
 
42
42
  The main entry point of the plugin. All methods are static and operate asynchronously.
43
43
 
44
+ ```typescript
45
+ import { UsbStorage } from "@simplysm/capacitor-plugin-usb-storage";
46
+ ```
47
+
44
48
  | Method | Return Type | Description |
45
49
  |--------|-----------|------|
46
50
  | `getDevices()` | `Promise<IUsbDeviceInfo[]>` | Retrieve list of connected USB devices |
@@ -49,8 +53,29 @@ The main entry point of the plugin. All methods are static and operate asynchron
49
53
  | `readdir(filter, dirPath)` | `Promise<IUsbFileInfo[]>` | Read list of files/folders in directory |
50
54
  | `read(filter, filePath)` | `Promise<Bytes \| undefined>` | Read file contents as binary |
51
55
 
56
+ ### IUsbStoragePlugin (Raw Plugin Interface)
57
+
58
+ The low-level Capacitor plugin interface. Most users should use the `UsbStorage` static class instead.
59
+ This interface is useful for advanced scenarios such as creating custom plugin implementations.
60
+
61
+ ```typescript
62
+ import type { IUsbStoragePlugin } from "@simplysm/capacitor-plugin-usb-storage";
63
+ ```
64
+
65
+ | Method | Return Type | Description |
66
+ |--------|-----------|------|
67
+ | `getDevices()` | `Promise<{ devices: IUsbDeviceInfo[] }>` | Get connected USB devices (raw) |
68
+ | `requestPermission(options)` | `Promise<{ granted: boolean }>` | Request USB permission (raw) |
69
+ | `hasPermission(options)` | `Promise<{ granted: boolean }>` | Check USB permission (raw) |
70
+ | `readdir(options)` | `Promise<{ files: IUsbFileInfo[] }>` | List directory contents (raw) |
71
+ | `read(options)` | `Promise<{ data: string \| null }>` | Read file as Base64 string (raw) |
72
+
52
73
  ### Interfaces
53
74
 
75
+ ```typescript
76
+ import type { IUsbDeviceInfo, IUsbDeviceFilter, IUsbFileInfo } from "@simplysm/capacitor-plugin-usb-storage";
77
+ ```
78
+
54
79
  #### IUsbDeviceInfo
55
80
 
56
81
  Represents USB device information.
@@ -187,6 +212,13 @@ In web environments, the `UsbStorageWeb` class is automatically used, providing
187
212
 
188
213
  `UsbStorageWeb` provides methods for adding virtual devices and files for development and testing purposes.
189
214
 
215
+ > **Note**: `UsbStorageWeb` is not re-exported from the main package entry point.
216
+ > Import it via a deep path as shown below.
217
+
218
+ ```typescript
219
+ import { UsbStorageWeb } from "@simplysm/capacitor-plugin-usb-storage/dist/web/UsbStorageWeb";
220
+ ```
221
+
190
222
  | Method | Description |
191
223
  |--------|------|
192
224
  | `addVirtualDevice(device)` | Register a virtual USB device |
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IUsbStoragePlugin.d.ts","sourceRoot":"","sources":["../src/IUsbStoragePlugin.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC,CAAC;IACrD,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5E,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACxE,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC,CAAC;IAC1F,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CACtF"}
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": [],
4
- "sourcesContent": [],
5
4
  "mappings": "",
6
5
  "names": []
7
6
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UsbStorage.d.ts","sourceRoot":"","sources":["../src/UsbStorage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAqB,MAAM,qBAAqB,CAAC;AAC7G,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAUnD;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B;;;OAGG;WACU,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAKpD;;;;OAIG;WACU,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E;;;;OAIG;WACU,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtE;;;;;OAKG;WACU,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAKxF;;;;;OAKG;WACU,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;CAO1F"}
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/UsbStorage.ts"],
4
- "sourcesContent": ["import { registerPlugin } from \"@capacitor/core\";\nimport type { IUsbDeviceFilter, IUsbDeviceInfo, IUsbFileInfo, IUsbStoragePlugin } from \"./IUsbStoragePlugin\";\nimport type { Bytes } from \"@simplysm/core-common\";\nimport { bytesFromBase64 } from \"@simplysm/core-common\";\n\nconst UsbStoragePlugin = registerPlugin<IUsbStoragePlugin>(\"UsbStorage\", {\n web: async () => {\n const { UsbStorageWeb } = await import(\"./web/UsbStorageWeb\");\n return new UsbStorageWeb();\n },\n});\n\n/**\n * USB \uC800\uC7A5\uC7A5\uCE58\uC640 \uC0C1\uD638\uC791\uC6A9\uD558\uAE30 \uC704\uD55C \uD50C\uB7EC\uADF8\uC778\n * - Android: libaums \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB97C \uD1B5\uD55C USB Mass Storage \uC811\uADFC\n * - Browser: IndexedDB \uAE30\uBC18 \uAC00\uC0C1 USB \uC800\uC7A5\uC18C \uC5D0\uBBAC\uB808\uC774\uC158\n */\nexport abstract class UsbStorage {\n /**\n * \uC5F0\uACB0\uB41C USB \uC7A5\uCE58 \uBAA9\uB85D\uC744 \uAC00\uC838\uC634\n * @returns \uC5F0\uACB0\uB41C USB \uC7A5\uCE58 \uC815\uBCF4 \uBC30\uC5F4\n */\n static async getDevices(): Promise<IUsbDeviceInfo[]> {\n const result = await UsbStoragePlugin.getDevices();\n return result.devices;\n }\n\n /**\n * USB \uC7A5\uCE58 \uC811\uADFC \uAD8C\uD55C\uC744 \uC694\uCCAD\n * @param filter \uAD8C\uD55C\uC744 \uC694\uCCAD\uD560 USB \uC7A5\uCE58\uC758 vendorId\uC640 productId\n * @returns \uAD8C\uD55C \uC2B9\uC778 \uC5EC\uBD80\n */\n static async requestPermission(filter: IUsbDeviceFilter): Promise<boolean> {\n const result = await UsbStoragePlugin.requestPermission(filter);\n return result.granted;\n }\n\n /**\n * USB \uC7A5\uCE58 \uC811\uADFC \uAD8C\uD55C\uC774 \uC788\uB294\uC9C0 \uD655\uC778\n * @param filter \uAD8C\uD55C\uC744 \uD655\uC778\uD560 USB \uC7A5\uCE58\uC758 vendorId\uC640 productId\n * @returns \uAD8C\uD55C \uBCF4\uC720 \uC5EC\uBD80\n */\n static async hasPermission(filter: IUsbDeviceFilter): Promise<boolean> {\n const result = await UsbStoragePlugin.hasPermission(filter);\n return result.granted;\n }\n\n /**\n * USB \uC800\uC7A5\uC7A5\uCE58\uC758 \uB514\uB809\uD1A0\uB9AC \uB0B4\uC6A9\uC744 \uC77D\uC5B4\uC634\n * @param filter \uB300\uC0C1 USB \uC7A5\uCE58\uC758 vendorId\uC640 productId\n * @param dirPath \uC77D\uC5B4\uC62C \uB514\uB809\uD1A0\uB9AC \uACBD\uB85C\n * @returns \uB514\uB809\uD1A0\uB9AC \uB0B4 \uD30C\uC77C/\uD3F4\uB354 \uC815\uBCF4 \uBC30\uC5F4\n */\n static async readdir(filter: IUsbDeviceFilter, dirPath: string): Promise<IUsbFileInfo[]> {\n const result = await UsbStoragePlugin.readdir({ ...filter, path: dirPath });\n return result.files;\n }\n\n /**\n * USB \uC800\uC7A5\uC7A5\uCE58\uC758 \uD30C\uC77C\uC744 \uC77D\uC5B4\uC634\n * @param filter \uB300\uC0C1 USB \uC7A5\uCE58\uC758 vendorId\uC640 productId\n * @param filePath \uC77D\uC5B4\uC62C \uD30C\uC77C \uACBD\uB85C\n * @returns \uD30C\uC77C \uB370\uC774\uD130\uB97C \uB2F4\uC740 Bytes \uB610\uB294 undefined\n */\n static async read(filter: IUsbDeviceFilter, filePath: string): Promise<Bytes | undefined> {\n const result = await UsbStoragePlugin.read({ ...filter, path: filePath });\n if (result.data == null) {\n return undefined;\n }\n return bytesFromBase64(result.data);\n }\n}\n"],
5
4
  "mappings": "AAAA,SAAS,sBAAsB;AAG/B,SAAS,uBAAuB;AAEhC,MAAM,mBAAmB,eAAkC,cAAc;AAAA,EACvE,KAAK,YAAY;AACf,UAAM,EAAE,cAAc,IAAI,MAAM,OAAO,qBAAqB;AAC5D,WAAO,IAAI,cAAc;AAAA,EAC3B;AACF,CAAC;AAOM,MAAe,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,EAK/B,aAAa,aAAwC;AACnD,UAAM,SAAS,MAAM,iBAAiB,WAAW;AACjD,WAAO,OAAO;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,kBAAkB,QAA4C;AACzE,UAAM,SAAS,MAAM,iBAAiB,kBAAkB,MAAM;AAC9D,WAAO,OAAO;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,cAAc,QAA4C;AACrE,UAAM,SAAS,MAAM,iBAAiB,cAAc,MAAM;AAC1D,WAAO,OAAO;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,aAAa,QAAQ,QAA0B,SAA0C;AACvF,UAAM,SAAS,MAAM,iBAAiB,QAAQ,EAAE,GAAG,QAAQ,MAAM,QAAQ,CAAC;AAC1E,WAAO,OAAO;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,aAAa,KAAK,QAA0B,UAA8C;AACxF,UAAM,SAAS,MAAM,iBAAiB,KAAK,EAAE,GAAG,QAAQ,MAAM,SAAS,CAAC;AACxE,QAAI,OAAO,QAAQ,MAAM;AACvB,aAAO;AAAA,IACT;AACA,WAAO,gBAAgB,OAAO,IAAI;AAAA,EACpC;AACF;",
6
5
  "names": []
7
6
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./IUsbStoragePlugin";
2
- export * from "./UsbStorage";
1
+ export * from "./IUsbStoragePlugin.js";
2
+ export * from "./UsbStorage.js";
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "sourcesContent": ["export * from \"./IUsbStoragePlugin\";\nexport * from \"./UsbStorage\";\n"],
5
4
  "mappings": "AAAA,cAAc;AACd,cAAc;",
6
5
  "names": []
7
6
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDbStore.d.ts","sourceRoot":"","sources":["../../src/web/IndexedDbStore.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,YAAY,EAAE;IAG1C,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAiB5B,SAAS,CAAC,CAAC,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,CAAC,CAAC;IAyBP,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAUnE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrD,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CASjD"}
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/web/IndexedDbStore.ts"],
4
- "sourcesContent": ["export interface IStoreConfig {\n name: string;\n keyPath: string;\n}\n\nexport class IndexedDbStore {\n constructor(\n private readonly _dbName: string,\n private readonly _dbVersion: number,\n private readonly _storeConfigs: IStoreConfig[],\n ) {}\n\n async open(): Promise<IDBDatabase> {\n return new Promise((resolve, reject) => {\n const req = indexedDB.open(this._dbName, this._dbVersion);\n req.onupgradeneeded = () => {\n const db = req.result;\n for (const config of this._storeConfigs) {\n if (!db.objectStoreNames.contains(config.name)) {\n db.createObjectStore(config.name, { keyPath: config.keyPath });\n }\n }\n };\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n req.onblocked = () => reject(new Error(\"Database blocked by another connection\"));\n });\n }\n\n async withStore<T>(\n storeName: string,\n mode: IDBTransactionMode,\n fn: (store: IDBObjectStore) => Promise<T>,\n ): Promise<T> {\n const db = await this.open();\n return new Promise((resolve, reject) => {\n const tx = db.transaction(storeName, mode);\n const store = tx.objectStore(storeName);\n let result: T;\n Promise.resolve(fn(store))\n .then((r) => {\n result = r;\n })\n .catch((err) => {\n db.close();\n reject(err);\n });\n tx.oncomplete = () => {\n db.close();\n resolve(result);\n };\n tx.onerror = () => {\n db.close();\n reject(tx.error);\n };\n });\n }\n\n async get<T>(storeName: string, key: IDBValidKey): Promise<T | undefined> {\n return this.withStore(storeName, \"readonly\", async (store) => {\n return new Promise((resolve, reject) => {\n const req = store.get(key);\n req.onsuccess = () => resolve(req.result as T | undefined);\n req.onerror = () => reject(req.error);\n });\n });\n }\n\n async put(storeName: string, value: unknown): Promise<void> {\n return this.withStore(storeName, \"readwrite\", async (store) => {\n return new Promise((resolve, reject) => {\n const req = store.put(value);\n req.onsuccess = () => resolve();\n req.onerror = () => reject(req.error);\n });\n });\n }\n\n async getAll<T>(storeName: string): Promise<T[]> {\n return this.withStore(storeName, \"readonly\", async (store) => {\n return new Promise((resolve, reject) => {\n const req = store.getAll();\n req.onsuccess = () => resolve(req.result as T[]);\n req.onerror = () => reject(req.error);\n });\n });\n }\n}\n"],
5
4
  "mappings": "AAKO,MAAM,eAAe;AAAA,EAC1B,YACmB,SACA,YACA,eACjB;AAHiB;AACA;AACA;AAAA,EAChB;AAAA,EAEH,MAAM,OAA6B;AACjC,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,YAAM,MAAM,UAAU,KAAK,KAAK,SAAS,KAAK,UAAU;AACxD,UAAI,kBAAkB,MAAM;AAC1B,cAAM,KAAK,IAAI;AACf,mBAAW,UAAU,KAAK,eAAe;AACvC,cAAI,CAAC,GAAG,iBAAiB,SAAS,OAAO,IAAI,GAAG;AAC9C,eAAG,kBAAkB,OAAO,MAAM,EAAE,SAAS,OAAO,QAAQ,CAAC;AAAA,UAC/D;AAAA,QACF;AAAA,MACF;AACA,UAAI,YAAY,MAAM,QAAQ,IAAI,MAAM;AACxC,UAAI,UAAU,MAAM,OAAO,IAAI,KAAK;AACpC,UAAI,YAAY,MAAM,OAAO,IAAI,MAAM,wCAAwC,CAAC;AAAA,IAClF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,UACJ,WACA,MACA,IACY;AACZ,UAAM,KAAK,MAAM,KAAK,KAAK;AAC3B,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,YAAM,KAAK,GAAG,YAAY,WAAW,IAAI;AACzC,YAAM,QAAQ,GAAG,YAAY,SAAS;AACtC,UAAI;AACJ,cAAQ,QAAQ,GAAG,KAAK,CAAC,EACtB,KAAK,CAAC,MAAM;AACX,iBAAS;AAAA,MACX,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,WAAG,MAAM;AACT,eAAO,GAAG;AAAA,MACZ,CAAC;AACH,SAAG,aAAa,MAAM;AACpB,WAAG,MAAM;AACT,gBAAQ,MAAM;AAAA,MAChB;AACA,SAAG,UAAU,MAAM;AACjB,WAAG,MAAM;AACT,eAAO,GAAG,KAAK;AAAA,MACjB;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAO,WAAmB,KAA0C;AACxE,WAAO,KAAK,UAAU,WAAW,YAAY,OAAO,UAAU;AAC5D,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,cAAM,MAAM,MAAM,IAAI,GAAG;AACzB,YAAI,YAAY,MAAM,QAAQ,IAAI,MAAuB;AACzD,YAAI,UAAU,MAAM,OAAO,IAAI,KAAK;AAAA,MACtC,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,WAAmB,OAA+B;AAC1D,WAAO,KAAK,UAAU,WAAW,aAAa,OAAO,UAAU;AAC7D,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,cAAM,MAAM,MAAM,IAAI,KAAK;AAC3B,YAAI,YAAY,MAAM,QAAQ;AAC9B,YAAI,UAAU,MAAM,OAAO,IAAI,KAAK;AAAA,MACtC,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,OAAU,WAAiC;AAC/C,WAAO,KAAK,UAAU,WAAW,YAAY,OAAO,UAAU;AAC5D,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,cAAM,MAAM,MAAM,OAAO;AACzB,YAAI,YAAY,MAAM,QAAQ,IAAI,MAAa;AAC/C,YAAI,UAAU,MAAM,OAAO,IAAI,KAAK;AAAA,MACtC,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;",
6
5
  "names": []
7
6
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UsbStorageWeb.d.ts","sourceRoot":"","sources":["../../src/web/UsbStorageWeb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAI9G,qBAAa,aAAc,SAAQ,SAAU,YAAW,iBAAiB;IACvE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IAE9C,UAAU,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IAapD,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAI5E,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAIxE,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAezF,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAc1F;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjB;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAajG;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIpF"}
@@ -1,5 +1,5 @@
1
1
  import { WebPlugin } from "@capacitor/core";
2
- import { VirtualUsbStorage } from "./VirtualUsbStorage";
2
+ import { VirtualUsbStorage } from "./VirtualUsbStorage.js";
3
3
  import { bytesToBase64 } from "@simplysm/core-common";
4
4
  class UsbStorageWeb extends WebPlugin {
5
5
  _storage = new VirtualUsbStorage();
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/web/UsbStorageWeb.ts"],
4
- "sourcesContent": ["import { WebPlugin } from \"@capacitor/core\";\nimport type { IUsbDeviceFilter, IUsbDeviceInfo, IUsbFileInfo, IUsbStoragePlugin } from \"../IUsbStoragePlugin\";\nimport { VirtualUsbStorage } from \"./VirtualUsbStorage\";\nimport { bytesToBase64 } from \"@simplysm/core-common\";\n\nexport class UsbStorageWeb extends WebPlugin implements IUsbStoragePlugin {\n private readonly _storage = new VirtualUsbStorage();\n\n async getDevices(): Promise<{ devices: IUsbDeviceInfo[] }> {\n const devices = await this._storage.getDevices();\n return {\n devices: devices.map((d) => ({\n deviceName: d.deviceName,\n manufacturerName: d.manufacturerName,\n productName: d.productName,\n vendorId: d.vendorId,\n productId: d.productId,\n })),\n };\n }\n\n async requestPermission(_options: IUsbDeviceFilter): Promise<{ granted: boolean }> {\n return Promise.resolve({ granted: true });\n }\n\n async hasPermission(_options: IUsbDeviceFilter): Promise<{ granted: boolean }> {\n return Promise.resolve({ granted: true });\n }\n\n async readdir(options: IUsbDeviceFilter & { path: string }): Promise<{ files: IUsbFileInfo[] }> {\n const deviceKey = `${options.vendorId}:${options.productId}`;\n const devices = await this._storage.getDevices();\n const deviceExists = devices.some((d) => d.key === deviceKey);\n if (!deviceExists) {\n return { files: [] };\n }\n const entry = await this._storage.getEntry(deviceKey, options.path);\n if (!entry || entry.kind !== \"dir\") {\n return { files: [] };\n }\n const children = await this._storage.listChildren(deviceKey, options.path);\n return { files: children };\n }\n\n async read(options: IUsbDeviceFilter & { path: string }): Promise<{ data: string | null }> {\n const deviceKey = `${options.vendorId}:${options.productId}`;\n const devices = await this._storage.getDevices();\n const deviceExists = devices.some((d) => d.key === deviceKey);\n if (!deviceExists) {\n return { data: null };\n }\n const entry = await this._storage.getEntry(deviceKey, options.path);\n if (!entry || entry.kind !== \"file\" || entry.dataBase64 == null) {\n return { data: null };\n }\n return { data: entry.dataBase64 };\n }\n\n /**\n * \uAC00\uC0C1 USB \uC7A5\uCE58\uB97C \uCD94\uAC00\uD569\uB2C8\uB2E4. (\uD14C\uC2A4\uD2B8/\uAC1C\uBC1C\uC6A9)\n */\n async addVirtualDevice(device: {\n vendorId: number;\n productId: number;\n deviceName: string;\n manufacturerName: string;\n productName: string;\n }): Promise<void> {\n await this._storage.addDevice(device);\n }\n\n /**\n * \uAC00\uC0C1 USB \uC7A5\uCE58\uC5D0 \uD30C\uC77C\uC744 \uCD94\uAC00\uD569\uB2C8\uB2E4. (\uD14C\uC2A4\uD2B8/\uAC1C\uBC1C\uC6A9)\n */\n async addVirtualFile(filter: IUsbDeviceFilter, filePath: string, data: Uint8Array): Promise<void> {\n const deviceKey = `${filter.vendorId}:${filter.productId}`;\n const idx = filePath.lastIndexOf(\"/\");\n const dir = idx === -1 ? \"/\" : filePath.substring(0, idx) || \"/\";\n await this._storage.ensureDir(deviceKey, dir);\n await this._storage.putEntry({\n deviceKey,\n path: filePath,\n kind: \"file\",\n dataBase64: bytesToBase64(data),\n });\n }\n\n /**\n * \uAC00\uC0C1 USB \uC7A5\uCE58\uC5D0 \uB514\uB809\uD1A0\uB9AC\uB97C \uCD94\uAC00\uD569\uB2C8\uB2E4. (\uD14C\uC2A4\uD2B8/\uAC1C\uBC1C\uC6A9)\n */\n async addVirtualDirectory(filter: IUsbDeviceFilter, dirPath: string): Promise<void> {\n const deviceKey = `${filter.vendorId}:${filter.productId}`;\n await this._storage.ensureDir(deviceKey, dirPath);\n }\n}\n"],
5
4
  "mappings": "AAAA,SAAS,iBAAiB;AAE1B,SAAS,yBAAyB;AAClC,SAAS,qBAAqB;AAEvB,MAAM,sBAAsB,UAAuC;AAAA,EACvD,WAAW,IAAI,kBAAkB;AAAA,EAElD,MAAM,aAAqD;AACzD,UAAM,UAAU,MAAM,KAAK,SAAS,WAAW;AAC/C,WAAO;AAAA,MACL,SAAS,QAAQ,IAAI,CAAC,OAAO;AAAA,QAC3B,YAAY,EAAE;AAAA,QACd,kBAAkB,EAAE;AAAA,QACpB,aAAa,EAAE;AAAA,QACf,UAAU,EAAE;AAAA,QACZ,WAAW,EAAE;AAAA,MACf,EAAE;AAAA,IACJ;AAAA,EACF;AAAA,EAEA,MAAM,kBAAkB,UAA2D;AACjF,WAAO,QAAQ,QAAQ,EAAE,SAAS,KAAK,CAAC;AAAA,EAC1C;AAAA,EAEA,MAAM,cAAc,UAA2D;AAC7E,WAAO,QAAQ,QAAQ,EAAE,SAAS,KAAK,CAAC;AAAA,EAC1C;AAAA,EAEA,MAAM,QAAQ,SAAkF;AAC9F,UAAM,YAAY,GAAG,QAAQ,QAAQ,IAAI,QAAQ,SAAS;AAC1D,UAAM,UAAU,MAAM,KAAK,SAAS,WAAW;AAC/C,UAAM,eAAe,QAAQ,KAAK,CAAC,MAAM,EAAE,QAAQ,SAAS;AAC5D,QAAI,CAAC,cAAc;AACjB,aAAO,EAAE,OAAO,CAAC,EAAE;AAAA,IACrB;AACA,UAAM,QAAQ,MAAM,KAAK,SAAS,SAAS,WAAW,QAAQ,IAAI;AAClE,QAAI,CAAC,SAAS,MAAM,SAAS,OAAO;AAClC,aAAO,EAAE,OAAO,CAAC,EAAE;AAAA,IACrB;AACA,UAAM,WAAW,MAAM,KAAK,SAAS,aAAa,WAAW,QAAQ,IAAI;AACzE,WAAO,EAAE,OAAO,SAAS;AAAA,EAC3B;AAAA,EAEA,MAAM,KAAK,SAAgF;AACzF,UAAM,YAAY,GAAG,QAAQ,QAAQ,IAAI,QAAQ,SAAS;AAC1D,UAAM,UAAU,MAAM,KAAK,SAAS,WAAW;AAC/C,UAAM,eAAe,QAAQ,KAAK,CAAC,MAAM,EAAE,QAAQ,SAAS;AAC5D,QAAI,CAAC,cAAc;AACjB,aAAO,EAAE,MAAM,KAAK;AAAA,IACtB;AACA,UAAM,QAAQ,MAAM,KAAK,SAAS,SAAS,WAAW,QAAQ,IAAI;AAClE,QAAI,CAAC,SAAS,MAAM,SAAS,UAAU,MAAM,cAAc,MAAM;AAC/D,aAAO,EAAE,MAAM,KAAK;AAAA,IACtB;AACA,WAAO,EAAE,MAAM,MAAM,WAAW;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBAAiB,QAML;AAChB,UAAM,KAAK,SAAS,UAAU,MAAM;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,eAAe,QAA0B,UAAkB,MAAiC;AAChG,UAAM,YAAY,GAAG,OAAO,QAAQ,IAAI,OAAO,SAAS;AACxD,UAAM,MAAM,SAAS,YAAY,GAAG;AACpC,UAAM,MAAM,QAAQ,KAAK,MAAM,SAAS,UAAU,GAAG,GAAG,KAAK;AAC7D,UAAM,KAAK,SAAS,UAAU,WAAW,GAAG;AAC5C,UAAM,KAAK,SAAS,SAAS;AAAA,MAC3B;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN,YAAY,cAAc,IAAI;AAAA,IAChC,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,oBAAoB,QAA0B,SAAgC;AAClF,UAAM,YAAY,GAAG,OAAO,QAAQ,IAAI,OAAO,SAAS;AACxD,UAAM,KAAK,SAAS,UAAU,WAAW,OAAO;AAAA,EAClD;AACF;",
6
5
  "names": []
7
6
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualUsbStorage.d.ts","sourceRoot":"","sources":["../../src/web/VirtualUsbStorage.ts"],"names":[],"mappings":"AAEA,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAa;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;;IAS/B,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAItC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAK5E,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAiCnG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAenE"}
@@ -1,4 +1,4 @@
1
- import { IndexedDbStore } from "./IndexedDbStore";
1
+ import { IndexedDbStore } from "./IndexedDbStore.js";
2
2
  class VirtualUsbStorage {
3
3
  _DEVICES_STORE = "devices";
4
4
  _FILES_STORE = "files";
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/web/VirtualUsbStorage.ts"],
4
- "sourcesContent": ["import { IndexedDbStore } from \"./IndexedDbStore\";\n\ninterface VirtualDevice {\n key: string;\n vendorId: number;\n productId: number;\n deviceName: string;\n manufacturerName: string;\n productName: string;\n}\n\ninterface VirtualEntry {\n fullKey: string;\n deviceKey: string;\n path: string;\n kind: \"file\" | \"dir\";\n dataBase64?: string;\n}\n\nexport class VirtualUsbStorage {\n private readonly _DEVICES_STORE = \"devices\";\n private readonly _FILES_STORE = \"files\";\n private readonly _db: IndexedDbStore;\n\n constructor() {\n this._db = new IndexedDbStore(\"capacitor_usb_virtual_storage\", 1, [\n { name: this._DEVICES_STORE, keyPath: \"key\" },\n { name: this._FILES_STORE, keyPath: \"fullKey\" },\n ]);\n }\n\n async addDevice(device: Omit<VirtualDevice, \"key\">): Promise<void> {\n const key = `${device.vendorId}:${device.productId}`;\n const entry: VirtualDevice = { ...device, key };\n return this._db.put(this._DEVICES_STORE, entry);\n }\n\n async getDevices(): Promise<VirtualDevice[]> {\n return this._db.getAll<VirtualDevice>(this._DEVICES_STORE);\n }\n\n async getEntry(deviceKey: string, path: string): Promise<VirtualEntry | undefined> {\n const fullKey = `${deviceKey}:${path}`;\n return this._db.get<VirtualEntry>(this._FILES_STORE, fullKey);\n }\n\n async putEntry(entry: Omit<VirtualEntry, \"fullKey\">): Promise<void> {\n const fullKey = `${entry.deviceKey}:${entry.path}`;\n const fullEntry: VirtualEntry = { ...entry, fullKey };\n return this._db.put(this._FILES_STORE, fullEntry);\n }\n\n async listChildren(deviceKey: string, dirPath: string): Promise<{ name: string; isDirectory: boolean }[]> {\n const prefix = `${deviceKey}:${dirPath === \"/\" ? \"/\" : dirPath + \"/\"}`;\n return this._db.withStore(this._FILES_STORE, \"readonly\", async (store) => {\n return new Promise((resolve, reject) => {\n const req = store.openCursor();\n const map = new Map<string, boolean>();\n req.onsuccess = () => {\n const cursor = req.result;\n if (!cursor) {\n resolve(Array.from(map.entries()).map(([name, isDirectory]) => ({ name, isDirectory })));\n return;\n }\n const key = String(cursor.key);\n if (key.startsWith(prefix)) {\n const rest = key.slice(prefix.length);\n if (rest) {\n const segments = rest.split(\"/\").filter(Boolean);\n if (segments.length > 0) {\n const firstName = segments[0];\n if (!map.has(firstName)) {\n const isDir = segments.length > 1 || (cursor.value as VirtualEntry).kind === \"dir\";\n map.set(firstName, isDir);\n }\n }\n }\n }\n cursor.continue();\n };\n req.onerror = () => reject(req.error);\n });\n });\n }\n\n async ensureDir(deviceKey: string, dirPath: string): Promise<void> {\n if (dirPath === \"/\") {\n await this.putEntry({ deviceKey, path: \"/\", kind: \"dir\" });\n return;\n }\n const segments = dirPath.split(\"/\").filter(Boolean);\n let acc = \"\";\n for (const seg of segments) {\n acc += \"/\" + seg;\n const existing = await this.getEntry(deviceKey, acc);\n if (!existing) {\n await this.putEntry({ deviceKey, path: acc, kind: \"dir\" });\n }\n }\n }\n}\n"],
5
4
  "mappings": "AAAA,SAAS,sBAAsB;AAmBxB,MAAM,kBAAkB;AAAA,EACZ,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf;AAAA,EAEjB,cAAc;AACZ,SAAK,MAAM,IAAI,eAAe,iCAAiC,GAAG;AAAA,MAChE,EAAE,MAAM,KAAK,gBAAgB,SAAS,MAAM;AAAA,MAC5C,EAAE,MAAM,KAAK,cAAc,SAAS,UAAU;AAAA,IAChD,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,UAAU,QAAmD;AACjE,UAAM,MAAM,GAAG,OAAO,QAAQ,IAAI,OAAO,SAAS;AAClD,UAAM,QAAuB,EAAE,GAAG,QAAQ,IAAI;AAC9C,WAAO,KAAK,IAAI,IAAI,KAAK,gBAAgB,KAAK;AAAA,EAChD;AAAA,EAEA,MAAM,aAAuC;AAC3C,WAAO,KAAK,IAAI,OAAsB,KAAK,cAAc;AAAA,EAC3D;AAAA,EAEA,MAAM,SAAS,WAAmB,MAAiD;AACjF,UAAM,UAAU,GAAG,SAAS,IAAI,IAAI;AACpC,WAAO,KAAK,IAAI,IAAkB,KAAK,cAAc,OAAO;AAAA,EAC9D;AAAA,EAEA,MAAM,SAAS,OAAqD;AAClE,UAAM,UAAU,GAAG,MAAM,SAAS,IAAI,MAAM,IAAI;AAChD,UAAM,YAA0B,EAAE,GAAG,OAAO,QAAQ;AACpD,WAAO,KAAK,IAAI,IAAI,KAAK,cAAc,SAAS;AAAA,EAClD;AAAA,EAEA,MAAM,aAAa,WAAmB,SAAoE;AACxG,UAAM,SAAS,GAAG,SAAS,IAAI,YAAY,MAAM,MAAM,UAAU,GAAG;AACpE,WAAO,KAAK,IAAI,UAAU,KAAK,cAAc,YAAY,OAAO,UAAU;AACxE,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,cAAM,MAAM,MAAM,WAAW;AAC7B,cAAM,MAAM,oBAAI,IAAqB;AACrC,YAAI,YAAY,MAAM;AACpB,gBAAM,SAAS,IAAI;AACnB,cAAI,CAAC,QAAQ;AACX,oBAAQ,MAAM,KAAK,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,WAAW,OAAO,EAAE,MAAM,YAAY,EAAE,CAAC;AACvF;AAAA,UACF;AACA,gBAAM,MAAM,OAAO,OAAO,GAAG;AAC7B,cAAI,IAAI,WAAW,MAAM,GAAG;AAC1B,kBAAM,OAAO,IAAI,MAAM,OAAO,MAAM;AACpC,gBAAI,MAAM;AACR,oBAAM,WAAW,KAAK,MAAM,GAAG,EAAE,OAAO,OAAO;AAC/C,kBAAI,SAAS,SAAS,GAAG;AACvB,sBAAM,YAAY,SAAS,CAAC;AAC5B,oBAAI,CAAC,IAAI,IAAI,SAAS,GAAG;AACvB,wBAAM,QAAQ,SAAS,SAAS,KAAM,OAAO,MAAuB,SAAS;AAC7E,sBAAI,IAAI,WAAW,KAAK;AAAA,gBAC1B;AAAA,cACF;AAAA,YACF;AAAA,UACF;AACA,iBAAO,SAAS;AAAA,QAClB;AACA,YAAI,UAAU,MAAM,OAAO,IAAI,KAAK;AAAA,MACtC,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,UAAU,WAAmB,SAAgC;AACjE,QAAI,YAAY,KAAK;AACnB,YAAM,KAAK,SAAS,EAAE,WAAW,MAAM,KAAK,MAAM,MAAM,CAAC;AACzD;AAAA,IACF;AACA,UAAM,WAAW,QAAQ,MAAM,GAAG,EAAE,OAAO,OAAO;AAClD,QAAI,MAAM;AACV,eAAW,OAAO,UAAU;AAC1B,aAAO,MAAM;AACb,YAAM,WAAW,MAAM,KAAK,SAAS,WAAW,GAAG;AACnD,UAAI,CAAC,UAAU;AACb,cAAM,KAAK,SAAS,EAAE,WAAW,MAAM,KAAK,MAAM,MAAM,CAAC;AAAA,MAC3D;AAAA,IACF;AAAA,EACF;AACF;",
6
5
  "names": []
7
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/capacitor-plugin-usb-storage",
3
- "version": "13.0.0-beta.7",
3
+ "version": "13.0.2",
4
4
  "description": "μ‹¬ν”Œλ¦¬μ¦˜ νŒ¨ν‚€μ§€ - Capacitor USB Storage Plugin",
5
5
  "author": "κΉ€μ„λž˜",
6
6
  "repository": {
@@ -22,7 +22,7 @@
22
22
  }
23
23
  },
24
24
  "dependencies": {
25
- "@simplysm/core-common": "workspace:*"
25
+ "@simplysm/core-common": "13.0.2"
26
26
  },
27
27
  "peerDependencies": {
28
28
  "@capacitor/core": "^7.4.4"
@@ -30,4 +30,4 @@
30
30
  "devDependencies": {
31
31
  "@capacitor/core": "^7.4.5"
32
32
  }
33
- }
33
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"IUsbStoragePlugin.d.ts","sourceRoot":"","sources":["../../../src/IUsbStoragePlugin.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC,CAAC;IACrD,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5E,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACxE,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC,CAAC;IAC1F,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CACtF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UsbStorage.d.ts","sourceRoot":"","sources":["../../../src/UsbStorage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAqB,MAAM,qBAAqB,CAAC;AAC7G,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAUnD;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B;;;OAGG;WACU,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAKpD;;;;OAIG;WACU,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E;;;;OAIG;WACU,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtE;;;;;OAKG;WACU,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAKxF;;;;;OAKG;WACU,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;CAO1F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IndexedDbStore.d.ts","sourceRoot":"","sources":["../../../../src/web/IndexedDbStore.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,YAAY,EAAE;IAG1C,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAiB5B,SAAS,CAAC,CAAC,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,CAAC,CAAC;IAyBP,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAUnE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrD,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CASjD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UsbStorageWeb.d.ts","sourceRoot":"","sources":["../../../../src/web/UsbStorageWeb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAI9G,qBAAa,aAAc,SAAQ,SAAU,YAAW,iBAAiB;IACvE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IAE9C,UAAU,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IAapD,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAI5E,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAIxE,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAezF,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAc1F;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjB;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAajG;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIpF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"VirtualUsbStorage.d.ts","sourceRoot":"","sources":["../../../../src/web/VirtualUsbStorage.ts"],"names":[],"mappings":"AAEA,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAa;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;;IAS/B,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAItC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAK5E,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAiCnG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAenE"}
@@ -1,74 +0,0 @@
1
- import { DateTime } from "./types/date-time";
2
- import { DateOnly } from "./types/date-only";
3
- import { Time } from "./types/time";
4
- import { Uuid } from "./types/uuid";
5
- /**
6
- * Buffer λŒ€μ‹  μ‚¬μš©ν•˜λŠ” λ°”μ΄λ„ˆλ¦¬ νƒ€μž…
7
- */
8
- export type Bytes = Uint8Array;
9
- /**
10
- * Primitive νƒ€μž… λ§€ν•‘
11
- * orm-common과 곡유
12
- */
13
- export type PrimitiveTypeMap = {
14
- string: string;
15
- number: number;
16
- boolean: boolean;
17
- DateTime: DateTime;
18
- DateOnly: DateOnly;
19
- Time: Time;
20
- Uuid: Uuid;
21
- Bytes: Bytes;
22
- };
23
- /**
24
- * Primitive νƒ€μž… λ¬Έμžμ—΄ ν‚€
25
- */
26
- export type PrimitiveTypeStr = keyof PrimitiveTypeMap;
27
- /**
28
- * Primitive νƒ€μž… μœ λ‹ˆμ˜¨
29
- */
30
- export type PrimitiveType = PrimitiveTypeMap[PrimitiveTypeStr] | undefined;
31
- /**
32
- * κΉŠμ€ Partial νƒ€μž…
33
- *
34
- * 객체의 λͺ¨λ“  속성을 μž¬κ·€μ μœΌλ‘œ 선택적(optional)으둜 λ§Œλ“­λ‹ˆλ‹€.
35
- * Primitive νƒ€μž…(string, number, boolean λ“±)은 κ·ΈλŒ€λ‘œ μœ μ§€ν•˜κ³ ,
36
- * 객체/λ°°μ—΄ νƒ€μž…λ§Œ μž¬κ·€μ μœΌλ‘œ Partial을 μ μš©ν•©λ‹ˆλ‹€.
37
- *
38
- * @example
39
- * ```typescript
40
- * interface User {
41
- * name: string;
42
- * profile: {
43
- * age: number;
44
- * address: { city: string };
45
- * };
46
- * }
47
- *
48
- * // λͺ¨λ“  깊이의 속성이 선택적이 됨
49
- * const partial: DeepPartial<User> = {
50
- * profile: { address: {} }
51
- * };
52
- * ```
53
- */
54
- export type DeepPartial<T> = Partial<{
55
- [K in keyof T]: T[K] extends PrimitiveType ? T[K] : DeepPartial<T[K]>;
56
- }>;
57
- /**
58
- * μƒμ„±μž νƒ€μž…
59
- *
60
- * 클래슀 μƒμ„±μžλ₯Ό νƒ€μž…μœΌλ‘œ ν‘œν˜„ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
61
- * 주둜 μ˜μ‘΄μ„± μ£Όμž…, νŒ©ν† λ¦¬ νŒ¨ν„΄, instanceof 체크 λ“±μ—μ„œ ν™œμš©λ©λ‹ˆλ‹€.
62
- *
63
- * @example
64
- * function create<T>(ctor: Type<T>): T {
65
- * return new ctor();
66
- * }
67
- *
68
- * class MyClass { name = "test"; }
69
- * const instance = create(MyClass); // MyClass μΈμŠ€ν„΄μŠ€
70
- */
71
- export interface Type<T> extends Function {
72
- new (...args: unknown[]): T;
73
- }
74
- //# sourceMappingURL=common.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../../../core-common/src/common.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIpC;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAM/B;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;AAM3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE,CAAC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,IAAI,CAAC,CAAC,CAAE,SAAQ,QAAQ;IACvC,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;CAC7B"}
@@ -1,6 +0,0 @@
1
- export declare const env: {
2
- DEV: boolean;
3
- VER?: string;
4
- [key: string]: unknown;
5
- };
6
- //# sourceMappingURL=env.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../core-common/src/env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG,EAAE;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAKxB,CAAC"}
@@ -1,25 +0,0 @@
1
- import { SdError } from "./sd-error";
2
- /**
3
- * 인수 였λ₯˜
4
- *
5
- * 잘λͺ»λœ 인수λ₯Ό λ°›μ•˜μ„ λ•Œ λ°œμƒμ‹œν‚€λŠ” μ—λŸ¬μ΄λ‹€.
6
- * 인수 객체λ₯Ό YAML ν˜•μ‹μœΌλ‘œ λ©”μ‹œμ§€μ— ν¬ν•¨ν•˜μ—¬ 디버깅을 μš©μ΄ν•˜κ²Œ ν•œλ‹€.
7
- *
8
- * @example
9
- * // 인수 객체만 전달
10
- * throw new ArgumentError({ userId: 123, name: null });
11
- * // κ²°κ³Ό λ©”μ‹œμ§€: "μΈμˆ˜κ°€ 잘λͺ»λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\n\nuserId: 123\nname: null"
12
- *
13
- * @example
14
- * // μ»€μŠ€ν…€ λ©”μ‹œμ§€μ™€ 인수 객체 전달
15
- * throw new ArgumentError("μœ νš¨ν•˜μ§€ μ•Šμ€ μ‚¬μš©μž", { userId: 123 });
16
- * // κ²°κ³Ό λ©”μ‹œμ§€: "μœ νš¨ν•˜μ§€ μ•Šμ€ μ‚¬μš©μž\n\nuserId: 123"
17
- */
18
- export declare class ArgumentError extends SdError {
19
- /** κΈ°λ³Έ λ©”μ‹œμ§€("μΈμˆ˜κ°€ 잘λͺ»λ˜μ—ˆμŠ΅λ‹ˆλ‹€.")와 ν•¨κ»˜ 인수 객체λ₯Ό YAML ν˜•μ‹μœΌλ‘œ 좜λ ₯ */
20
- constructor(argObj: Record<string, unknown>);
21
- /** μ»€μŠ€ν…€ λ©”μ‹œμ§€μ™€ ν•¨κ»˜ 인수 객체λ₯Ό YAML ν˜•μ‹μœΌλ‘œ 좜λ ₯ */
22
- constructor(message: string, argObj: Record<string, unknown>);
23
- constructor(arg1: Record<string, unknown> | string, arg2?: Record<string, unknown>);
24
- }
25
- //# sourceMappingURL=argument-error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"argument-error.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/errors/argument-error.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAc,SAAQ,OAAO;IACxC,qDAAqD;gBACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3C,sCAAsC;gBAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAChD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYnF"}
@@ -1,29 +0,0 @@
1
- import { SdError } from "./sd-error";
2
- /**
3
- * λ―Έκ΅¬ν˜„ 였λ₯˜
4
- *
5
- * 아직 κ΅¬ν˜„λ˜μ§€ μ•Šμ€ κΈ°λŠ₯을 ν˜ΈμΆœν–ˆμ„ λ•Œ λ°œμƒμ‹œν‚€λŠ” μ—λŸ¬μ΄λ‹€.
6
- * 좔상 λ©”μ„œλ“œ μŠ€ν…, ν–₯ν›„ κ΅¬ν˜„ μ˜ˆμ •μΈ λΆ„κΈ° 등에 μ‚¬μš©ν•œλ‹€.
7
- *
8
- * @example
9
- * // 좔상 λ©”μ„œλ“œ κ΅¬ν˜„ μ „
10
- * class BaseService {
11
- * process(): void {
12
- * throw new NotImplementedError("μ„œλΈŒν΄λž˜μŠ€μ—μ„œ κ΅¬ν˜„ ν•„μš”");
13
- * }
14
- * }
15
- *
16
- * @example
17
- * // ν–₯ν›„ κ΅¬ν˜„ μ˜ˆμ • λΆ„κΈ°
18
- * switch (type) {
19
- * case "A": return handleA();
20
- * case "B": throw new NotImplementedError(`νƒ€μž… ${type} 처리`);
21
- * }
22
- */
23
- export declare class NotImplementedError extends SdError {
24
- /**
25
- * @param message μΆ”κ°€ μ„€λͺ… λ©”μ‹œμ§€
26
- */
27
- constructor(message?: string);
28
- }
29
- //# sourceMappingURL=not-implemented-error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"not-implemented-error.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/errors/not-implemented-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,mBAAoB,SAAQ,OAAO;IAC9C;;OAEG;gBACS,OAAO,CAAC,EAAE,MAAM;CAI7B"}
@@ -1,27 +0,0 @@
1
- /**
2
- * 였λ₯˜μ˜ Tree ꡬ쑰 ꡬ성이 κ°€λŠ₯ν•œ 였λ₯˜ 클래슀
3
- * ES2024 cause 속성 ν™œμš©
4
- *
5
- * @example
6
- * // 원인 μ—λŸ¬λ₯Ό κ°μ‹Έμ„œ 생성
7
- * try {
8
- * await fetch(url);
9
- * } catch (err) {
10
- * throw new SdError(err, "API 호좜 μ‹€νŒ¨", "μ‚¬μš©μž λ‘œλ“œ μ‹€νŒ¨");
11
- * }
12
- * // κ²°κ³Ό λ©”μ‹œμ§€: "μ‚¬μš©μž λ‘œλ“œ μ‹€νŒ¨ => API 호좜 μ‹€νŒ¨ => 원본 μ—λŸ¬ λ©”μ‹œμ§€"
13
- *
14
- * @example
15
- * // λ©”μ‹œμ§€λ§ŒμœΌλ‘œ 생성
16
- * throw new SdError("잘λͺ»λœ μƒνƒœ", "처리 λΆˆκ°€");
17
- * // κ²°κ³Ό λ©”μ‹œμ§€: "처리 λΆˆκ°€ => 잘λͺ»λœ μƒνƒœ"
18
- */
19
- export declare class SdError extends Error {
20
- cause?: Error;
21
- /** 원인 μ—λŸ¬λ₯Ό κ°μ‹Έμ„œ 생성. λ©”μ‹œμ§€λŠ” μ—­μˆœμœΌλ‘œ 연결됨 (μƒμœ„ λ©”μ‹œμ§€ => ν•˜μœ„ λ©”μ‹œμ§€ => 원인 λ©”μ‹œμ§€) */
22
- constructor(cause: Error, ...messages: string[]);
23
- /** λ©”μ‹œμ§€λ§ŒμœΌλ‘œ 생성. λ©”μ‹œμ§€λŠ” μ—­μˆœμœΌλ‘œ 연결됨 (μƒμœ„ λ©”μ‹œμ§€ => ν•˜μœ„ λ©”μ‹œμ§€) */
24
- constructor(...messages: string[]);
25
- constructor(arg1?: unknown, ...messages: string[]);
26
- }
27
- //# sourceMappingURL=sd-error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sd-error.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/errors/sd-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,OAAQ,SAAQ,KAAK;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IAEvB,gEAAgE;gBACpD,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE;IAC/C,kDAAkD;gBACtC,GAAG,QAAQ,EAAE,MAAM,EAAE;gBACrB,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE;CA2BlD"}
@@ -1,31 +0,0 @@
1
- import { SdError } from "./sd-error";
2
- /**
3
- * νƒ€μž„μ•„μ›ƒ 였λ₯˜
4
- *
5
- * λŒ€κΈ° μ‹œκ°„μ΄ μ΄ˆκ³Όλ˜μ—ˆμ„ λ•Œ λ°œμƒν•˜λŠ” μ—λŸ¬μ΄λ‹€.
6
- * Wait.until() λ“±μ˜ 비동기 λŒ€κΈ° ν•¨μˆ˜μ—μ„œ μ΅œλŒ€ μ‹œλ„ 횟수λ₯Ό μ΄ˆκ³Όν•˜λ©΄ μžλ™μœΌλ‘œ λ°œμƒν•œλ‹€.
7
- *
8
- * @example
9
- * // Wait.untilμ—μ„œ μžλ™ λ°œμƒ
10
- * try {
11
- * await Wait.until(() => isReady, 100, 50); // 100ms 간격, μ΅œλŒ€ 50회
12
- * } catch (err) {
13
- * if (err instanceof TimeoutError) {
14
- * console.log("μ‹œκ°„ 초과");
15
- * }
16
- * }
17
- *
18
- * @example
19
- * // 직접 λ°œμƒ
20
- * if (elapsed > maxTime) {
21
- * throw new TimeoutError(undefined, "API 응닡 λŒ€κΈ° 초과");
22
- * }
23
- */
24
- export declare class TimeoutError extends SdError {
25
- /**
26
- * @param count μ‹œλ„ 횟수
27
- * @param message μΆ”κ°€ λ©”μ‹œμ§€
28
- */
29
- constructor(count?: number, message?: string);
30
- }
31
- //# sourceMappingURL=timeout-error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeout-error.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/errors/timeout-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAa,SAAQ,OAAO;IACvC;;;OAGG;gBACS,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAM7C"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Array ν™•μž₯ λ©”μ„œλ“œ
3
- *
4
- * @remarks 각 λ©”μ„œλ“œμ˜ TSDoc은 νƒ€μž… μ •μ˜ 파일(arr-ext.types.ts) μ°Έμ‘°
5
- */
6
- import "./map-ext";
7
- import type { ReadonlyArrayExt, MutableArrayExt } from "./arr-ext.types";
8
- declare global {
9
- interface ReadonlyArray<T> extends ReadonlyArrayExt<T> {
10
- }
11
- interface Array<T> extends ReadonlyArrayExt<T>, MutableArrayExt<T> {
12
- }
13
- }
14
- export type { ArrayDiffsResult, ArrayDiffs2Result, TreeArray, ComparableType } from "./arr-ext.types";
15
- //# sourceMappingURL=arr-ext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"arr-ext.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/extensions/arr-ext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,WAAW,CAAC;AAUnB,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAIhB,MAAM,iBAAiB,CAAC;AA2uBzB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,aAAa,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;KAAG;IACzD,UAAU,KAAK,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;KAAG;CACtE;AAID,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Array ν™•μž₯ 헬퍼 ν•¨μˆ˜
3
- */
4
- import type { ComparableType } from "./arr-ext.types";
5
- /**
6
- * DateTime, DateOnly, Time을 비ꡐ κ°€λŠ₯ν•œ primitive κ°’μœΌλ‘œ λ³€ν™˜
7
- */
8
- export declare function toComparable(value: ComparableType): string | number | boolean | undefined;
9
- /**
10
- * 정렬을 μœ„ν•œ 비ꡐ ν•¨μˆ˜
11
- *
12
- * @param pp 비ꡐ λŒ€μƒ 1
13
- * @param pn 비ꡐ λŒ€μƒ 2
14
- * @param desc true: λ‚΄λ¦Όμ°¨μˆœ, false: μ˜€λ¦„μ°¨μˆœ
15
- * @returns 음수: ppκ°€ μ•ž, 0: κ°™μŒ, μ–‘μˆ˜: pn이 μ•ž
16
- * @note null/undefined 값은 μ˜€λ¦„μ°¨μˆœ μ‹œ μ•žμœΌλ‘œ, λ‚΄λ¦Όμ°¨μˆœ μ‹œ λ’€λ‘œ 정렬됨
17
- */
18
- export declare function compareForOrder(pp: ComparableType, pn: ComparableType, desc: boolean): number;
19
- //# sourceMappingURL=arr-ext.helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"arr-ext.helpers.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/extensions/arr-ext.helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAKzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAuB7F"}