@yume-chan/adb 0.0.22 → 0.0.24

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 (149) hide show
  1. package/CHANGELOG.json +51 -0
  2. package/CHANGELOG.md +24 -1
  3. package/LICENSE +1 -1
  4. package/esm/adb.d.ts +6 -3
  5. package/esm/adb.d.ts.map +1 -1
  6. package/esm/adb.js +11 -4
  7. package/esm/adb.js.map +1 -1
  8. package/esm/banner.d.ts.map +1 -1
  9. package/esm/banner.js +1 -0
  10. package/esm/banner.js.map +1 -1
  11. package/esm/commands/power.d.ts.map +1 -1
  12. package/esm/commands/power.js +6 -5
  13. package/esm/commands/power.js.map +1 -1
  14. package/esm/commands/reverse.d.ts.map +1 -1
  15. package/esm/commands/reverse.js +23 -11
  16. package/esm/commands/reverse.js.map +1 -1
  17. package/esm/commands/subprocess/command.js +3 -3
  18. package/esm/commands/subprocess/command.js.map +1 -1
  19. package/esm/commands/subprocess/protocols/none.d.ts +2 -2
  20. package/esm/commands/subprocess/protocols/none.d.ts.map +1 -1
  21. package/esm/commands/subprocess/protocols/shell.d.ts +3 -3
  22. package/esm/commands/subprocess/protocols/shell.d.ts.map +1 -1
  23. package/esm/commands/subprocess/protocols/shell.js +14 -69
  24. package/esm/commands/subprocess/protocols/shell.js.map +1 -1
  25. package/esm/commands/subprocess/protocols/types.d.ts +2 -2
  26. package/esm/commands/subprocess/protocols/types.d.ts.map +1 -1
  27. package/esm/commands/subprocess/utils.js +1 -1
  28. package/esm/commands/subprocess/utils.js.map +1 -1
  29. package/esm/commands/sync/list.d.ts +2 -5
  30. package/esm/commands/sync/list.d.ts.map +1 -1
  31. package/esm/commands/sync/list.js +2 -4
  32. package/esm/commands/sync/list.js.map +1 -1
  33. package/esm/commands/sync/pull.d.ts +1 -4
  34. package/esm/commands/sync/pull.d.ts.map +1 -1
  35. package/esm/commands/sync/pull.js +2 -2
  36. package/esm/commands/sync/pull.js.map +1 -1
  37. package/esm/commands/sync/push.d.ts +4 -7
  38. package/esm/commands/sync/push.d.ts.map +1 -1
  39. package/esm/commands/sync/push.js +3 -6
  40. package/esm/commands/sync/push.js.map +1 -1
  41. package/esm/commands/sync/request.d.ts +13 -18
  42. package/esm/commands/sync/request.d.ts.map +1 -1
  43. package/esm/commands/sync/request.js +23 -28
  44. package/esm/commands/sync/request.js.map +1 -1
  45. package/esm/commands/sync/response.d.ts +18 -12
  46. package/esm/commands/sync/response.d.ts.map +1 -1
  47. package/esm/commands/sync/response.js +39 -17
  48. package/esm/commands/sync/response.js.map +1 -1
  49. package/esm/commands/sync/socket.d.ts +2 -2
  50. package/esm/commands/sync/socket.d.ts.map +1 -1
  51. package/esm/commands/sync/socket.js +10 -5
  52. package/esm/commands/sync/socket.js.map +1 -1
  53. package/esm/commands/sync/stat.d.ts +0 -3
  54. package/esm/commands/sync/stat.d.ts.map +1 -1
  55. package/esm/commands/sync/stat.js +0 -2
  56. package/esm/commands/sync/stat.js.map +1 -1
  57. package/esm/commands/sync/sync.d.ts +4 -3
  58. package/esm/commands/sync/sync.d.ts.map +1 -1
  59. package/esm/commands/sync/sync.js +9 -7
  60. package/esm/commands/sync/sync.js.map +1 -1
  61. package/esm/commands/tcpip.js +1 -1
  62. package/esm/commands/tcpip.js.map +1 -1
  63. package/esm/daemon/auth.js +1 -1
  64. package/esm/daemon/auth.js.map +1 -1
  65. package/esm/daemon/crypto.d.ts +3 -2
  66. package/esm/daemon/crypto.d.ts.map +1 -1
  67. package/esm/daemon/crypto.js +56 -49
  68. package/esm/daemon/crypto.js.map +1 -1
  69. package/esm/daemon/dispatcher.d.ts +38 -6
  70. package/esm/daemon/dispatcher.d.ts.map +1 -1
  71. package/esm/daemon/dispatcher.js +86 -28
  72. package/esm/daemon/dispatcher.js.map +1 -1
  73. package/esm/daemon/packet.d.ts +2 -2
  74. package/esm/daemon/packet.d.ts.map +1 -1
  75. package/esm/daemon/packet.js +13 -12
  76. package/esm/daemon/packet.js.map +1 -1
  77. package/esm/daemon/socket.d.ts +11 -6
  78. package/esm/daemon/socket.d.ts.map +1 -1
  79. package/esm/daemon/socket.js +42 -12
  80. package/esm/daemon/socket.js.map +1 -1
  81. package/esm/daemon/transport.d.ts +75 -11
  82. package/esm/daemon/transport.d.ts.map +1 -1
  83. package/esm/daemon/transport.js +60 -33
  84. package/esm/daemon/transport.js.map +1 -1
  85. package/esm/features.d.ts +2 -1
  86. package/esm/features.d.ts.map +1 -1
  87. package/esm/features.js +2 -1
  88. package/esm/features.js.map +1 -1
  89. package/esm/server/client.d.ts +128 -48
  90. package/esm/server/client.d.ts.map +1 -1
  91. package/esm/server/client.js +378 -145
  92. package/esm/server/client.js.map +1 -1
  93. package/esm/server/transport.d.ts +3 -0
  94. package/esm/server/transport.d.ts.map +1 -1
  95. package/esm/server/transport.js +30 -4
  96. package/esm/server/transport.js.map +1 -1
  97. package/esm/utils/base64.d.ts.map +1 -1
  98. package/esm/utils/base64.js +33 -22
  99. package/esm/utils/base64.js.map +1 -1
  100. package/esm/utils/hex.d.ts +1 -1
  101. package/esm/utils/hex.d.ts.map +1 -1
  102. package/esm/utils/hex.js +12 -14
  103. package/esm/utils/hex.js.map +1 -1
  104. package/esm/utils/index.d.ts +1 -1
  105. package/esm/utils/index.d.ts.map +1 -1
  106. package/esm/utils/index.js +1 -1
  107. package/esm/utils/index.js.map +1 -1
  108. package/esm/utils/sequence-equal.d.ts +2 -0
  109. package/esm/utils/sequence-equal.d.ts.map +1 -0
  110. package/esm/utils/sequence-equal.js +12 -0
  111. package/esm/utils/sequence-equal.js.map +1 -0
  112. package/package.json +13 -15
  113. package/src/adb.ts +22 -6
  114. package/src/banner.ts +1 -0
  115. package/src/commands/power.ts +7 -5
  116. package/src/commands/reverse.ts +31 -18
  117. package/src/commands/subprocess/command.ts +3 -3
  118. package/src/commands/subprocess/protocols/none.ts +2 -2
  119. package/src/commands/subprocess/protocols/shell.ts +21 -100
  120. package/src/commands/subprocess/protocols/types.ts +2 -2
  121. package/src/commands/subprocess/utils.ts +1 -1
  122. package/src/commands/sync/list.ts +2 -4
  123. package/src/commands/sync/pull.ts +2 -2
  124. package/src/commands/sync/push.ts +7 -10
  125. package/src/commands/sync/request.ts +32 -32
  126. package/src/commands/sync/response.ts +47 -20
  127. package/src/commands/sync/socket.ts +13 -8
  128. package/src/commands/sync/stat.ts +0 -2
  129. package/src/commands/sync/sync.ts +13 -9
  130. package/src/commands/tcpip.ts +1 -1
  131. package/src/daemon/auth.ts +1 -1
  132. package/src/daemon/crypto.ts +64 -55
  133. package/src/daemon/dispatcher.ts +175 -37
  134. package/src/daemon/packet.ts +21 -14
  135. package/src/daemon/socket.ts +62 -28
  136. package/src/daemon/transport.ts +145 -40
  137. package/src/features.ts +2 -1
  138. package/src/server/client.ts +472 -224
  139. package/src/server/transport.ts +32 -4
  140. package/src/utils/base64.ts +33 -22
  141. package/src/utils/hex.ts +16 -14
  142. package/src/utils/index.ts +1 -1
  143. package/src/utils/sequence-equal.ts +13 -0
  144. package/tsconfig.build.tsbuildinfo +1 -1
  145. package/esm/utils/conditional-variable.d.ts +0 -8
  146. package/esm/utils/conditional-variable.d.ts.map +0 -1
  147. package/esm/utils/conditional-variable.js +0 -34
  148. package/esm/utils/conditional-variable.js.map +0 -1
  149. package/src/utils/conditional-variable.ts +0 -45
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,cAAc,EACd,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAEvD;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAE5C;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAE5C;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEzD;;OAEG;IACH,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gCAAgC;IAC7C,+DAA+D;IAC/D,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAE/C,sDAAsD;IACtD,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAEtE,gDAAgD;IAChD,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAEtE,oEAAoE;IACpE,KAAK,MAAM,EAAE,SAAS,GAAG,qBAAqB,CAAC;CAClD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,cAAc,EACd,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IAE5D;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAE5C;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAE5C;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEzD;;OAEG;IACH,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gCAAgC;IAC7C,+DAA+D;IAC/D,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAE/C,sDAAsD;IACtD,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAEtE,gDAAgD;IAChD,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAEtE,oEAAoE;IACpE,KAAK,MAAM,EAAE,SAAS,GAAG,qBAAqB,CAAC;CAClD"}
@@ -9,7 +9,7 @@ export function escapeArg(s) {
9
9
  break;
10
10
  }
11
11
  result += s.substring(base, found);
12
- // a'b becomes a'\'b
12
+ // a'b becomes a'\'b (the backslash is not a escape character)
13
13
  result += String.raw `'\''`;
14
14
  base = found + 1;
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/subprocess/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,CAAS;IAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,GAAG,CAAC;IAEd,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM;QACV,CAAC;QACD,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,oBAAoB;QACpB,MAAM,IAAI,MAAM,CAAC,GAAG,CAAA,MAAM,CAAC;QAC3B,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,GAAG,CAAC;IACd,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/subprocess/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,CAAS;IAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,GAAG,CAAC;IAEd,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM;QACV,CAAC;QACD,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,8DAA8D;QAC9D,MAAM,IAAI,MAAM,CAAC,GAAG,CAAA,MAAM,CAAC;QAC3B,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,GAAG,CAAC;IACd,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import Struct from "@yume-chan/struct";
2
- import { AdbSyncResponseId } from "./response.js";
3
2
  import type { AdbSyncSocket } from "./socket.js";
4
3
  import type { AdbSyncStat } from "./stat.js";
5
4
  import { AdbSyncStatErrorCode } from "./stat.js";
@@ -12,10 +11,9 @@ export declare const AdbSyncEntryResponse: Struct<{
12
11
  mtime: number;
13
12
  nameLength: number;
14
13
  name: string;
15
- }, "nameLength", {
14
+ }, "nameLength", Record<never, never> & {
16
15
  readonly type: import("./stat.js").LinuxFileType;
17
16
  readonly permission: number;
18
- id: AdbSyncResponseId.Entry;
19
17
  }, undefined>;
20
18
  export type AdbSyncEntryResponse = (typeof AdbSyncEntryResponse)["TDeserializeResult"];
21
19
  export declare const AdbSyncEntry2Response: Struct<{
@@ -32,10 +30,9 @@ export declare const AdbSyncEntry2Response: Struct<{
32
30
  ctime: bigint;
33
31
  nameLength: number;
34
32
  name: string;
35
- }, "nameLength", {
33
+ }, "nameLength", Record<never, never> & {
36
34
  readonly type: import("./stat.js").LinuxFileType;
37
35
  readonly permission: number;
38
- id: AdbSyncResponseId.Entry2;
39
36
  }, undefined>;
40
37
  export type AdbSyncEntry2Response = (typeof AdbSyncEntry2Response)["TDeserializeResult"];
41
38
  export declare function adbSyncOpenDirV2(socket: AdbSyncSocket, path: string): AsyncGenerator<AdbSyncEntry2Response, void, void>;
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/list.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAGvC,OAAO,EAAE,iBAAiB,EAAwB,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAEH,oBAAoB,EAEvB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC7C,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;aAImB,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAC5B,CAAC,OAAO,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAExD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;aAImB,CAAC;AAEtD,MAAM,MAAM,qBAAqB,GAC7B,CAAC,OAAO,qBAAqB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAEzD,wBAAuB,gBAAgB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,CAoBnD;AAED,wBAAuB,gBAAgB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,CAclD;AAED,wBAAuB,cAAc,CACjC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,OAAO,GACZ,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAqB1C"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/list.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAIvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAEH,oBAAoB,EAEvB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC7C,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;aAGiB,CAAC;AAEnD,MAAM,MAAM,oBAAoB,GAC5B,CAAC,OAAO,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAExD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;aAGgB,CAAC;AAEnD,MAAM,MAAM,qBAAqB,GAC7B,CAAC,OAAO,qBAAqB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAEzD,wBAAuB,gBAAgB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,CAoBnD;AAED,wBAAuB,gBAAgB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,CAclD;AAED,wBAAuB,cAAc,CACjC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,OAAO,GACZ,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAqB1C"}
@@ -5,13 +5,11 @@ import { AdbSyncLstatResponse, AdbSyncStatErrorCode, AdbSyncStatResponse, } from
5
5
  export const AdbSyncEntryResponse = new Struct({ littleEndian: true })
6
6
  .concat(AdbSyncLstatResponse)
7
7
  .uint32("nameLength")
8
- .string("name", { lengthField: "nameLength" })
9
- .extra({ id: AdbSyncResponseId.Entry });
8
+ .string("name", { lengthField: "nameLength" });
10
9
  export const AdbSyncEntry2Response = new Struct({ littleEndian: true })
11
10
  .concat(AdbSyncStatResponse)
12
11
  .uint32("nameLength")
13
- .string("name", { lengthField: "nameLength" })
14
- .extra({ id: AdbSyncResponseId.Entry2 });
12
+ .string("name", { lengthField: "nameLength" });
15
13
  export async function* adbSyncOpenDirV2(socket, path) {
16
14
  const locked = await socket.lock();
17
15
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/sync/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/sync/list.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,10 @@
1
1
  import type { ReadableStream } from "@yume-chan/stream-extra";
2
2
  import Struct from "@yume-chan/struct";
3
- import { AdbSyncResponseId } from "./response.js";
4
3
  import type { AdbSyncSocket } from "./socket.js";
5
4
  export declare const AdbSyncDataResponse: Struct<{
6
5
  dataLength: number;
7
6
  data: Uint8Array;
8
- }, "dataLength", {
9
- id: AdbSyncResponseId.Data;
10
- }, undefined>;
7
+ }, "dataLength", Record<never, never>, undefined>;
11
8
  export type AdbSyncDataResponse = (typeof AdbSyncDataResponse)["TDeserializeResult"];
12
9
  export declare function adbSyncPullGenerator(socket: AdbSyncSocket, path: string): AsyncGenerator<Uint8Array, void, void>;
13
10
  export declare function adbSyncPull(socket: AdbSyncSocket, path: string): ReadableStream<Uint8Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAGvC,OAAO,EAAE,iBAAiB,EAAwB,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,eAAO,MAAM,mBAAmB;;;;;aAGmB,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAC3B,CAAC,OAAO,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAEvD,wBAAuB,oBAAoB,CACvC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CA6BxC;AAED,wBAAgB,WAAW,CACvB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,UAAU,CAAC,CAM5B"}
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAIvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,eAAO,MAAM,mBAAmB;;;iDAEsB,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAC3B,CAAC,OAAO,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAEvD,wBAAuB,oBAAoB,CACvC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CA6BxC;AAED,wBAAgB,WAAW,CACvB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,UAAU,CAAC,CAO5B"}
@@ -4,8 +4,7 @@ import { AdbSyncRequestId, adbSyncWriteRequest } from "./request.js";
4
4
  import { AdbSyncResponseId, adbSyncReadResponses } from "./response.js";
5
5
  export const AdbSyncDataResponse = new Struct({ littleEndian: true })
6
6
  .uint32("dataLength")
7
- .uint8Array("data", { lengthField: "dataLength" })
8
- .extra({ id: AdbSyncResponseId.Data });
7
+ .uint8Array("data", { lengthField: "dataLength" });
9
8
  export async function* adbSyncPullGenerator(socket, path) {
10
9
  const locked = await socket.lock();
11
10
  let done = false;
@@ -31,6 +30,7 @@ export async function* adbSyncPullGenerator(socket, path) {
31
30
  }
32
31
  }
33
32
  export function adbSyncPull(socket, path) {
33
+ // TODO: use `ReadableStream.from` when it's supported
34
34
  return new PushReadableStream(async (controller) => {
35
35
  for await (const data of adbSyncPullGenerator(socket, path)) {
36
36
  await controller.enqueue(data);
@@ -1 +1 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGxE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAChE,MAAM,CAAC,YAAY,CAAC;KACpB,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;KACjD,KAAK,CAAC,EAAE,EAAE,EAAE,iBAAiB,CAAC,IAAa,EAAE,CAAC,CAAC;AAKpD,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CACvC,MAAqB,EACrB,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,CAAC;QACD,MAAM,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,oBAAoB,CAC3C,MAAM,EACN,iBAAiB,CAAC,IAAI,EACtB,mBAAmB,CACtB,EAAE,CAAC;YACA,MAAM,MAAM,CAAC,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,IAAI,GAAG,IAAI,CAAC;QACZ,MAAM,CAAC,CAAC;IACZ,CAAC;YAAS,CAAC;QACP,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,4DAA4D;YAC5D,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,oBAAoB,CAC3C,MAAM,EACN,iBAAiB,CAAC,IAAI,EACtB,mBAAmB,CACtB,EAAE,CAAC;gBACA,KAAK,MAAM,CAAC;YAChB,CAAC;QACL,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CACvB,MAAqB,EACrB,IAAY;IAEZ,OAAO,IAAI,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QAC/C,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGxE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAChE,MAAM,CAAC,YAAY,CAAC;KACpB,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;AAKvD,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CACvC,MAAqB,EACrB,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,CAAC;QACD,MAAM,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,oBAAoB,CAC3C,MAAM,EACN,iBAAiB,CAAC,IAAI,EACtB,mBAAmB,CACtB,EAAE,CAAC;YACA,MAAM,MAAM,CAAC,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,IAAI,GAAG,IAAI,CAAC;QACZ,MAAM,CAAC,CAAC;IACZ,CAAC;YAAS,CAAC;QACP,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,4DAA4D;YAC5D,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,oBAAoB,CAC3C,MAAM,EACN,iBAAiB,CAAC,IAAI,EACtB,mBAAmB,CACtB,EAAE,CAAC;gBACA,KAAK,MAAM,CAAC;YAChB,CAAC;QACL,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CACvB,MAAqB,EACrB,IAAY;IAEZ,sDAAsD;IACtD,OAAO,IAAI,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QAC/C,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,13 +1,13 @@
1
- import type { Consumable, ReadableStream } from "@yume-chan/stream-extra";
1
+ import type { ReadableStream } from "@yume-chan/stream-extra";
2
+ import { MaybeConsumable } from "@yume-chan/stream-extra";
2
3
  import Struct from "@yume-chan/struct";
3
- import { AdbSyncRequestId } from "./request.js";
4
4
  import type { AdbSyncSocket } from "./socket.js";
5
5
  import { LinuxFileType } from "./stat.js";
6
6
  export declare const ADB_SYNC_MAX_PACKET_SIZE: number;
7
7
  export interface AdbSyncPushV1Options {
8
8
  socket: AdbSyncSocket;
9
9
  filename: string;
10
- file: ReadableStream<Consumable<Uint8Array>>;
10
+ file: ReadableStream<MaybeConsumable<Uint8Array>>;
11
11
  type?: LinuxFileType;
12
12
  permission?: number;
13
13
  mtime?: number;
@@ -28,9 +28,6 @@ export declare enum AdbSyncSendV2Flags {
28
28
  * 4
29
29
  */
30
30
  Zstd = 4,
31
- /**
32
- * 0x80000000
33
- */
34
31
  DryRun = 2147483648
35
32
  }
36
33
  export interface AdbSyncPushV2Options extends AdbSyncPushV1Options {
@@ -43,7 +40,7 @@ export interface AdbSyncPushV2Options extends AdbSyncPushV1Options {
43
40
  dryRun?: boolean;
44
41
  }
45
42
  export declare const AdbSyncSendV2Request: Struct<{
46
- id: AdbSyncRequestId;
43
+ id: number;
47
44
  mode: number;
48
45
  flags: AdbSyncSendV2Flags;
49
46
  }, never, Record<never, never>, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM1E,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAIxD,OAAO,EAAE,gBAAgB,EAAuB,MAAM,cAAc,CAAC;AAErE,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,iBAAiB;;0CAE7B,CAAC;AAuCF,wBAAsB,aAAa,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,IAAyB,EACzB,UAAkB,EAClB,KAA+B,EAC/B,UAAqC,GACxC,EAAE,oBAAoB,iBAUtB;AAED,oBAAY,kBAAkB;IAC1B,IAAI,IAAI;IACR,MAAM,IAAI;IACV;;OAEG;IACH,GAAG,IAAS;IACZ;;OAEG;IACH,IAAI,IAAS;IACb;;OAEG;IACH,MAAM,aAAkB;CAC3B;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAC9D;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,oBAAoB;;;;0CAGsB,CAAC;AAExD,wBAAsB,aAAa,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,IAAyB,EACzB,UAAkB,EAClB,KAA+B,EAC/B,UAAqC,EACrC,MAAc,GACjB,EAAE,oBAAoB,iBAsBtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC5D;;OAEG;IACH,EAAE,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,iBAUtD"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAGH,eAAe,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAMxD,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,iBAAiB;;0CAE7B,CAAC;AAuCF,wBAAsB,aAAa,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,IAAyB,EACzB,UAAkB,EAClB,KAA+B,EAC/B,UAAqC,GACxC,EAAE,oBAAoB,iBAUtB;AAED,oBAAY,kBAAkB;IAC1B,IAAI,IAAI;IACR,MAAM,IAAI;IACV;;OAEG;IACH,GAAG,IAAS;IACZ;;OAEG;IACH,IAAI,IAAS;IACb,MAAM,aAAa;CACtB;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAC9D;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,oBAAoB;;;;0CAGsB,CAAC;AAExD,wBAAsB,aAAa,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,IAAyB,EACzB,UAAkB,EAClB,KAA+B,EAC/B,UAAqC,EACrC,MAAc,GACjB,EAAE,oBAAoB,iBAsBtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC5D;;OAEG;IACH,EAAE,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,iBAUtD"}
@@ -1,4 +1,4 @@
1
- import { AbortController, ConsumableWritableStream, DistributionStream, } from "@yume-chan/stream-extra";
1
+ import { AbortController, DistributionStream, MaybeConsumable, } from "@yume-chan/stream-extra";
2
2
  import Struct, { placeholder } from "@yume-chan/struct";
3
3
  import { NOOP } from "../../utils/index.js";
4
4
  import { AdbSyncRequestId, adbSyncWriteRequest } from "./request.js";
@@ -11,7 +11,7 @@ async function pipeFileData(locked, file, packetSize, mtime) {
11
11
  // allow error response to abort the write.
12
12
  const abortController = new AbortController();
13
13
  file.pipeThrough(new DistributionStream(packetSize, true))
14
- .pipeTo(new ConsumableWritableStream({
14
+ .pipeTo(new MaybeConsumable.WritableStream({
15
15
  write: async (chunk) => {
16
16
  await adbSyncWriteRequest(locked, AdbSyncRequestId.Data, chunk);
17
17
  },
@@ -49,13 +49,10 @@ export var AdbSyncSendV2Flags;
49
49
  * 4
50
50
  */
51
51
  AdbSyncSendV2Flags[AdbSyncSendV2Flags["Zstd"] = 4] = "Zstd";
52
- /**
53
- * 0x80000000
54
- */
55
52
  AdbSyncSendV2Flags[AdbSyncSendV2Flags["DryRun"] = 2147483648] = "DryRun";
56
53
  })(AdbSyncSendV2Flags || (AdbSyncSendV2Flags = {}));
57
54
  export const AdbSyncSendV2Request = new Struct({ littleEndian: true })
58
- .uint32("id", placeholder())
55
+ .uint32("id")
59
56
  .uint32("mode")
60
57
  .uint32("flags", placeholder());
61
58
  export async function adbSyncPushV2({ socket, filename, file, type = LinuxFileType.File, permission = 0o666, mtime = (Date.now() / 1000) | 0, packetSize = ADB_SYNC_MAX_PACKET_SIZE, dryRun = false, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,22 @@
1
1
  import Struct from "@yume-chan/struct";
2
- export declare enum AdbSyncRequestId {
3
- List = "LIST",
4
- ListV2 = "LIS2",
5
- Send = "SEND",
6
- SendV2 = "SND2",
7
- Lstat = "STAT",
8
- Stat = "STA2",
9
- LstatV2 = "LST2",
10
- Data = "DATA",
11
- Done = "DONE",
12
- Receive = "RECV"
2
+ export declare namespace AdbSyncRequestId {
3
+ const List: number;
4
+ const ListV2: number;
5
+ const Send: number;
6
+ const SendV2: number;
7
+ const Lstat: number;
8
+ const Stat: number;
9
+ const LstatV2: number;
10
+ const Data: number;
11
+ const Done: number;
12
+ const Receive: number;
13
13
  }
14
14
  export declare const AdbSyncNumberRequest: Struct<{
15
- id: string;
15
+ id: number;
16
16
  arg: number;
17
17
  }, never, Record<never, never>, undefined>;
18
- export declare const AdbSyncDataRequest: Struct<{
19
- id: string;
20
- arg: number;
21
- data: Uint8Array;
22
- }, "arg", Record<never, never>, undefined>;
23
18
  export interface AdbSyncWritable {
24
19
  write(buffer: Uint8Array): Promise<void>;
25
20
  }
26
- export declare function adbSyncWriteRequest(writable: AdbSyncWritable, id: AdbSyncRequestId | string, value: number | string | Uint8Array): Promise<void>;
21
+ export declare function adbSyncWriteRequest(writable: AdbSyncWritable, id: number | string, value: number | string | Uint8Array): Promise<void>;
27
22
  //# sourceMappingURL=request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/request.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAIvC,oBAAY,gBAAgB;IACxB,IAAI,SAAS;IACb,MAAM,SAAS;IACf,IAAI,SAAS;IACb,MAAM,SAAS;IACf,KAAK,SAAS;IACd,IAAI,SAAS;IACb,OAAO,SAAS;IAChB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,SAAS;CACnB;AAED,eAAO,MAAM,oBAAoB;;;0CAEf,CAAC;AAEnB,eAAO,MAAM,kBAAkB;;;;0CAEgB,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC5B,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,eAAe,EACzB,EAAE,EAAE,gBAAgB,GAAG,MAAM,EAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GACpC,OAAO,CAAC,IAAI,CAAC,CAoBf"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/request.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAMvC,yBAAiB,gBAAgB,CAAC;IACvB,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,MAAM,QAA0B,CAAC;IACvC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,MAAM,QAA0B,CAAC;IACvC,MAAM,KAAK,QAA0B,CAAC;IACtC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,OAAO,QAA0B,CAAC;IACxC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,OAAO,QAA0B,CAAC;CAClD;AAED,eAAO,MAAM,oBAAoB;;;0CAEf,CAAC;AAEnB,MAAM,WAAW,eAAe;IAC5B,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,eAAe,EACzB,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GACpC,OAAO,CAAC,IAAI,CAAC,CAsBf"}
@@ -1,41 +1,36 @@
1
1
  import Struct from "@yume-chan/struct";
2
2
  import { encodeUtf8 } from "../../utils/index.js";
3
+ import { adbSyncEncodeId } from "./response.js";
3
4
  export var AdbSyncRequestId;
4
5
  (function (AdbSyncRequestId) {
5
- AdbSyncRequestId["List"] = "LIST";
6
- AdbSyncRequestId["ListV2"] = "LIS2";
7
- AdbSyncRequestId["Send"] = "SEND";
8
- AdbSyncRequestId["SendV2"] = "SND2";
9
- AdbSyncRequestId["Lstat"] = "STAT";
10
- AdbSyncRequestId["Stat"] = "STA2";
11
- AdbSyncRequestId["LstatV2"] = "LST2";
12
- AdbSyncRequestId["Data"] = "DATA";
13
- AdbSyncRequestId["Done"] = "DONE";
14
- AdbSyncRequestId["Receive"] = "RECV";
6
+ AdbSyncRequestId.List = adbSyncEncodeId("LIST");
7
+ AdbSyncRequestId.ListV2 = adbSyncEncodeId("LIS2");
8
+ AdbSyncRequestId.Send = adbSyncEncodeId("SEND");
9
+ AdbSyncRequestId.SendV2 = adbSyncEncodeId("SND2");
10
+ AdbSyncRequestId.Lstat = adbSyncEncodeId("STAT");
11
+ AdbSyncRequestId.Stat = adbSyncEncodeId("STA2");
12
+ AdbSyncRequestId.LstatV2 = adbSyncEncodeId("LST2");
13
+ AdbSyncRequestId.Data = adbSyncEncodeId("DATA");
14
+ AdbSyncRequestId.Done = adbSyncEncodeId("DONE");
15
+ AdbSyncRequestId.Receive = adbSyncEncodeId("RECV");
15
16
  })(AdbSyncRequestId || (AdbSyncRequestId = {}));
16
17
  export const AdbSyncNumberRequest = new Struct({ littleEndian: true })
17
- .string("id", { length: 4 })
18
+ .uint32("id")
18
19
  .uint32("arg");
19
- export const AdbSyncDataRequest = new Struct({ littleEndian: true })
20
- .concat(AdbSyncNumberRequest)
21
- .uint8Array("data", { lengthField: "arg" });
22
20
  export async function adbSyncWriteRequest(writable, id, value) {
23
- if (typeof value === "number") {
24
- const buffer = AdbSyncNumberRequest.serialize({
25
- id,
26
- arg: value,
27
- });
28
- await writable.write(buffer);
21
+ if (typeof id === "string") {
22
+ id = adbSyncEncodeId(id);
29
23
  }
30
- else if (typeof value === "string") {
31
- // Let `writable` buffer writes
32
- const buffer = encodeUtf8(value);
33
- await writable.write(AdbSyncNumberRequest.serialize({ id, arg: buffer.byteLength }));
34
- await writable.write(buffer);
24
+ if (typeof value === "number") {
25
+ await writable.write(AdbSyncNumberRequest.serialize({ id, arg: value }));
26
+ return;
35
27
  }
36
- else {
37
- await writable.write(AdbSyncNumberRequest.serialize({ id, arg: value.byteLength }));
38
- await writable.write(value);
28
+ if (typeof value === "string") {
29
+ value = encodeUtf8(value);
39
30
  }
31
+ // `writable` is buffered, it copies inputs to an internal buffer,
32
+ // so don't concatenate headers and data here, that will be an unnecessary copy.
33
+ await writable.write(AdbSyncNumberRequest.serialize({ id, arg: value.length }));
34
+ await writable.write(value);
40
35
  }
41
36
  //# sourceMappingURL=request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/commands/sync/request.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAN,IAAY,gBAWX;AAXD,WAAY,gBAAgB;IACxB,iCAAa,CAAA;IACb,mCAAe,CAAA;IACf,iCAAa,CAAA;IACb,mCAAe,CAAA;IACf,kCAAc,CAAA;IACd,iCAAa,CAAA;IACb,oCAAgB,CAAA;IAChB,iCAAa,CAAA;IACb,iCAAa,CAAA;IACb,oCAAgB,CAAA;AACpB,CAAC,EAXW,gBAAgB,KAAhB,gBAAgB,QAW3B;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KACjE,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;KAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;AAEnB,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAC/D,MAAM,CAAC,oBAAoB,CAAC;KAC5B,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;AAMhD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,QAAyB,EACzB,EAA6B,EAC7B,KAAmC;IAEnC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC;YAC1C,EAAE;YACF,GAAG,EAAE,KAAK;SACb,CAAC,CAAC;QACH,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACnC,+BAA+B;QAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,QAAQ,CAAC,KAAK,CAChB,oBAAoB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CACjE,CAAC;QACF,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACJ,MAAM,QAAQ,CAAC,KAAK,CAChB,oBAAoB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAChE,CAAC;QACF,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/commands/sync/request.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,KAAW,gBAAgB,CAWhC;AAXD,WAAiB,gBAAgB;IAChB,qBAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,uBAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,qBAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,uBAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,sBAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAChC,qBAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,wBAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC,qBAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,qBAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,wBAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC,EAXgB,gBAAgB,KAAhB,gBAAgB,QAWhC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KACjE,MAAM,CAAC,IAAI,CAAC;KACZ,MAAM,CAAC,KAAK,CAAC,CAAC;AAMnB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,QAAyB,EACzB,EAAmB,EACnB,KAAmC;IAEnC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QACzB,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,CAAC,KAAK,CAChB,oBAAoB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CACrD,CAAC;QACF,OAAO;IACX,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,kEAAkE;IAClE,gFAAgF;IAChF,MAAM,QAAQ,CAAC,KAAK,CAChB,oBAAoB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAC5D,CAAC;IACF,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
@@ -1,15 +1,21 @@
1
1
  import type { AsyncExactReadable, StructLike, StructValueType } from "@yume-chan/struct";
2
2
  import Struct from "@yume-chan/struct";
3
- export declare enum AdbSyncResponseId {
4
- Entry = "DENT",
5
- Entry2 = "DNT2",
6
- Lstat = "STAT",
7
- Stat = "STA2",
8
- Lstat2 = "LST2",
9
- Done = "DONE",
10
- Data = "DATA",
11
- Ok = "OKAY",
12
- Fail = "FAIL"
3
+ /**
4
+ * Encode ID to numbers for faster comparison
5
+ * @param value A 4-character string
6
+ * @returns A 32-bit integer by encoding the string as little-endian
7
+ */
8
+ export declare function adbSyncEncodeId(value: string): number;
9
+ export declare namespace AdbSyncResponseId {
10
+ const Entry: number;
11
+ const Entry2: number;
12
+ const Lstat: number;
13
+ const Stat: number;
14
+ const Lstat2: number;
15
+ const Done: number;
16
+ const Data: number;
17
+ const Ok: number;
18
+ const Fail: number;
13
19
  }
14
20
  export declare class AdbSyncError extends Error {
15
21
  }
@@ -17,6 +23,6 @@ export declare const AdbSyncFailResponse: Struct<{
17
23
  messageLength: number;
18
24
  message: string;
19
25
  }, "messageLength", Record<never, never>, never>;
20
- export declare function adbSyncReadResponse<T>(stream: AsyncExactReadable, id: AdbSyncResponseId, type: StructLike<T>): Promise<T>;
21
- export declare function adbSyncReadResponses<T extends Struct<object, PropertyKey, object, unknown>>(stream: AsyncExactReadable, id: AdbSyncResponseId, type: T): AsyncGenerator<StructValueType<T>, void, void>;
26
+ export declare function adbSyncReadResponse<T>(stream: AsyncExactReadable, id: number | string, type: StructLike<T>): Promise<T>;
27
+ export declare function adbSyncReadResponses<T extends Struct<object, PropertyKey, object, unknown>>(stream: AsyncExactReadable, id: number | string, type: T): AsyncGenerator<StructValueType<T>, void, void>;
22
28
  //# sourceMappingURL=response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,kBAAkB,EAClB,UAAU,EACV,eAAe,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAIvC,oBAAY,iBAAiB;IACzB,KAAK,SAAS;IACd,MAAM,SAAS;IACf,KAAK,SAAS;IACd,IAAI,SAAS;IACb,MAAM,SAAS;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,EAAE,SAAS;IACX,IAAI,SAAS;CAChB;AAED,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,eAAO,MAAM,mBAAmB;;;gDAK1B,CAAC;AAEP,wBAAsB,mBAAmB,CAAC,CAAC,EACvC,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,iBAAiB,EACrB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GACpB,OAAO,CAAC,CAAC,CAAC,CAWZ;AAED,wBAAuB,oBAAoB,CACvC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAEtD,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,iBAAiB,EACrB,IAAI,EAAE,CAAC,GACR,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAuBhD"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,kBAAkB,EAClB,UAAU,EACV,eAAe,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,MAAsB,MAAM,mBAAmB,CAAC;AAUvD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,yBAAiB,iBAAiB,CAAC;IACxB,MAAM,KAAK,QAA0B,CAAC;IACtC,MAAM,MAAM,QAA0B,CAAC;IACvC,MAAM,KAAK,QAA0B,CAAC;IACtC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,MAAM,QAA0B,CAAC;IACvC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,EAAE,QAA0B,CAAC;IACnC,MAAM,IAAI,QAA0B,CAAC;CAC/C;AAED,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,eAAO,MAAM,mBAAmB;;;gDAK1B,CAAC;AAEP,wBAAsB,mBAAmB,CAAC,CAAC,EACvC,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GACpB,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAED,wBAAuB,oBAAoB,CACvC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAEtD,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,IAAI,EAAE,CAAC,GACR,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CA2BhD"}
@@ -1,16 +1,32 @@
1
- import Struct from "@yume-chan/struct";
2
- import { decodeUtf8 } from "../../utils/index.js";
1
+ import { getUint32LittleEndian } from "@yume-chan/no-data-view";
2
+ import Struct, { decodeUtf8 } from "@yume-chan/struct";
3
+ function encodeAsciiUnchecked(value) {
4
+ const result = new Uint8Array(value.length);
5
+ for (let i = 0; i < value.length; i += 1) {
6
+ result[i] = value.charCodeAt(i);
7
+ }
8
+ return result;
9
+ }
10
+ /**
11
+ * Encode ID to numbers for faster comparison
12
+ * @param value A 4-character string
13
+ * @returns A 32-bit integer by encoding the string as little-endian
14
+ */
15
+ export function adbSyncEncodeId(value) {
16
+ const buffer = encodeAsciiUnchecked(value);
17
+ return getUint32LittleEndian(buffer, 0);
18
+ }
3
19
  export var AdbSyncResponseId;
4
20
  (function (AdbSyncResponseId) {
5
- AdbSyncResponseId["Entry"] = "DENT";
6
- AdbSyncResponseId["Entry2"] = "DNT2";
7
- AdbSyncResponseId["Lstat"] = "STAT";
8
- AdbSyncResponseId["Stat"] = "STA2";
9
- AdbSyncResponseId["Lstat2"] = "LST2";
10
- AdbSyncResponseId["Done"] = "DONE";
11
- AdbSyncResponseId["Data"] = "DATA";
12
- AdbSyncResponseId["Ok"] = "OKAY";
13
- AdbSyncResponseId["Fail"] = "FAIL";
21
+ AdbSyncResponseId.Entry = adbSyncEncodeId("DENT");
22
+ AdbSyncResponseId.Entry2 = adbSyncEncodeId("DNT2");
23
+ AdbSyncResponseId.Lstat = adbSyncEncodeId("STAT");
24
+ AdbSyncResponseId.Stat = adbSyncEncodeId("STA2");
25
+ AdbSyncResponseId.Lstat2 = adbSyncEncodeId("LST2");
26
+ AdbSyncResponseId.Done = adbSyncEncodeId("DONE");
27
+ AdbSyncResponseId.Data = adbSyncEncodeId("DATA");
28
+ AdbSyncResponseId.Ok = adbSyncEncodeId("OKAY");
29
+ AdbSyncResponseId.Fail = adbSyncEncodeId("FAIL");
14
30
  })(AdbSyncResponseId || (AdbSyncResponseId = {}));
15
31
  export class AdbSyncError extends Error {
16
32
  }
@@ -21,21 +37,27 @@ export const AdbSyncFailResponse = new Struct({ littleEndian: true })
21
37
  throw new AdbSyncError(object.message);
22
38
  });
23
39
  export async function adbSyncReadResponse(stream, id, type) {
24
- const actualId = decodeUtf8(await stream.readExactly(4));
25
- switch (actualId) {
40
+ if (typeof id === "string") {
41
+ id = adbSyncEncodeId(id);
42
+ }
43
+ const buffer = await stream.readExactly(4);
44
+ switch (getUint32LittleEndian(buffer, 0)) {
26
45
  case AdbSyncResponseId.Fail:
27
46
  await AdbSyncFailResponse.deserialize(stream);
28
47
  throw new Error("Unreachable");
29
48
  case id:
30
49
  return await type.deserialize(stream);
31
50
  default:
32
- throw new Error(`Expected '${id}', but got '${actualId}'`);
51
+ throw new Error(`Expected '${id}', but got '${decodeUtf8(buffer)}'`);
33
52
  }
34
53
  }
35
54
  export async function* adbSyncReadResponses(stream, id, type) {
55
+ if (typeof id === "string") {
56
+ id = adbSyncEncodeId(id);
57
+ }
36
58
  while (true) {
37
- const actualId = decodeUtf8(await stream.readExactly(4));
38
- switch (actualId) {
59
+ const buffer = await stream.readExactly(4);
60
+ switch (getUint32LittleEndian(buffer, 0)) {
39
61
  case AdbSyncResponseId.Fail:
40
62
  await AdbSyncFailResponse.deserialize(stream);
41
63
  throw new Error("Unreachable");
@@ -50,7 +72,7 @@ export async function* adbSyncReadResponses(stream, id, type) {
50
72
  yield (await type.deserialize(stream));
51
73
  break;
52
74
  default:
53
- throw new Error(`Expected '${id}' or '${AdbSyncResponseId.Done}', but got '${actualId}'`);
75
+ throw new Error(`Expected '${id}' or '${AdbSyncResponseId.Done}', but got '${decodeUtf8(buffer)}'`);
54
76
  }
55
77
  }
56
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AAKA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAN,IAAY,iBAUX;AAVD,WAAY,iBAAiB;IACzB,mCAAc,CAAA;IACd,oCAAe,CAAA;IACf,mCAAc,CAAA;IACd,kCAAa,CAAA;IACb,oCAAe,CAAA;IACf,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,gCAAW,CAAA;IACX,kCAAa,CAAA;AACjB,CAAC,EAVW,iBAAiB,KAAjB,iBAAiB,QAU5B;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;CAAG;AAE1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAChE,MAAM,CAAC,eAAe,CAAC;KACvB,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;KACnD,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE;IACxB,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEP,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,MAA0B,EAC1B,EAAqB,EACrB,IAAmB;IAEnB,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,iBAAiB,CAAC,IAAI;YACvB,MAAM,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACnC,KAAK,EAAE;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C;YACI,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,eAAe,QAAQ,GAAG,CAAC,CAAC;IACnE,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAGvC,MAA0B,EAC1B,EAAqB,EACrB,IAAO;IAEP,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,QAAQ,QAAQ,EAAE,CAAC;YACf,KAAK,iBAAiB,CAAC,IAAI;gBACvB,MAAM,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YACnC,KAAK,iBAAiB,CAAC,IAAI;gBACvB,2EAA2E;gBAC3E,EAAE;gBACF,6FAA6F;gBAC7F,oFAAoF;gBACpF,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,OAAO;YACX,KAAK,EAAE;gBACH,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAuB,CAAC;gBAC7D,MAAM;YACV;gBACI,MAAM,IAAI,KAAK,CACX,aAAa,EAAE,SAAS,iBAAiB,CAAC,IAAI,eAAe,QAAQ,GAAG,CAC3E,CAAC;QACV,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Consumable, WritableStreamDefaultWriter } from "@yume-chan/stream-extra";
1
+ import type { MaybeConsumable, WritableStreamDefaultWriter } from "@yume-chan/stream-extra";
2
2
  import { BufferedReadableStream } from "@yume-chan/stream-extra";
3
3
  import type { AsyncExactReadable } from "@yume-chan/struct";
4
4
  import type { AdbSocket } from "../../adb.js";
@@ -6,7 +6,7 @@ import { AutoResetEvent } from "../../utils/index.js";
6
6
  export declare class AdbSyncSocketLocked implements AsyncExactReadable {
7
7
  #private;
8
8
  get position(): number;
9
- constructor(writer: WritableStreamDefaultWriter<Consumable<Uint8Array>>, readable: BufferedReadableStream, bufferSize: number, lock: AutoResetEvent);
9
+ constructor(writer: WritableStreamDefaultWriter<MaybeConsumable<Uint8Array>>, readable: BufferedReadableStream, bufferSize: number, lock: AutoResetEvent);
10
10
  flush(): Promise<void>;
11
11
  write(data: Uint8Array): Promise<void>;
12
12
  readExactly(length: number): Promise<Uint8Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,2BAA2B,EAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEH,sBAAsB,EAEzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,mBAAoB,YAAW,kBAAkB;;IAO1D,IAAI,QAAQ,WAEX;gBAGG,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAC3D,QAAQ,EAAE,sBAAsB,EAChC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,cAAc;IAYlB,KAAK;IAYL,KAAK,CAAC,IAAI,EAAE,UAAU;IAWtB,WAAW,CAAC,MAAM,EAAE,MAAM;IAKhC,OAAO,IAAI,IAAI;IAKT,KAAK;CAGd;AAED,qBAAa,aAAa;;gBAKV,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM;IAU3C,IAAI;IAKJ,KAAK;CAId"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,2BAA2B,EAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEH,sBAAsB,EAEzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,mBAAoB,YAAW,kBAAkB;;IAO1D,IAAI,QAAQ,WAEX;gBAGG,MAAM,EAAE,2BAA2B,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,EAChE,QAAQ,EAAE,sBAAsB,EAChC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,cAAc;IAalB,KAAK;IAYL,KAAK,CAAC,IAAI,EAAE,UAAU;IAWtB,WAAW,CAAC,MAAM,EAAE,MAAM;IAOhC,OAAO,IAAI,IAAI;IAOT,KAAK;CAGd;AAED,qBAAa,aAAa;;gBAKV,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM;IAU3C,IAAI;IAKJ,KAAK;CAId"}
@@ -1,4 +1,4 @@
1
- import { BufferCombiner, BufferedReadableStream, ConsumableWritableStream, } from "@yume-chan/stream-extra";
1
+ import { BufferCombiner, BufferedReadableStream, Consumable, } from "@yume-chan/stream-extra";
2
2
  import { AutoResetEvent } from "../../utils/index.js";
3
3
  export class AdbSyncSocketLocked {
4
4
  #writer;
@@ -15,15 +15,16 @@ export class AdbSyncSocketLocked {
15
15
  this.#socketLock = lock;
16
16
  this.#combiner = new BufferCombiner(bufferSize);
17
17
  }
18
- async #writeInnerStream(buffer) {
19
- await ConsumableWritableStream.write(this.#writer, buffer);
18
+ async #write(buffer) {
19
+ // `#combiner` will reuse the buffer, so we need to use the Consumable pattern
20
+ await Consumable.WritableStream.write(this.#writer, buffer);
20
21
  }
21
22
  async flush() {
22
23
  try {
23
24
  await this.#writeLock.wait();
24
25
  const buffer = this.#combiner.flush();
25
26
  if (buffer) {
26
- await this.#writeInnerStream(buffer);
27
+ await this.#write(buffer);
27
28
  }
28
29
  }
29
30
  finally {
@@ -34,7 +35,7 @@ export class AdbSyncSocketLocked {
34
35
  try {
35
36
  await this.#writeLock.wait();
36
37
  for (const buffer of this.#combiner.push(data)) {
37
- await this.#writeInnerStream(buffer);
38
+ await this.#write(buffer);
38
39
  }
39
40
  }
40
41
  finally {
@@ -42,10 +43,14 @@ export class AdbSyncSocketLocked {
42
43
  }
43
44
  }
44
45
  async readExactly(length) {
46
+ // The request may still be in the internal buffer.
47
+ // Call `flush` to send it before starting reading
45
48
  await this.flush();
46
49
  return await this.#readable.readExactly(length);
47
50
  }
48
51
  release() {
52
+ // In theory, the writer shouldn't leave anything in the buffer,
53
+ // but to be safe, call `flush` to throw away any remaining data.
49
54
  this.#combiner.flush();
50
55
  this.#socketLock.notifyOne();
51
56
  }