@yume-chan/adb 2.6.0 → 3.0.0-beta.0
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.
- package/LICENSE +1 -1
- package/README.md +1 -1
- package/esm/adb.d.ts +18 -15
- package/esm/adb.d.ts.map +1 -1
- package/esm/adb.js +18 -11
- package/esm/adb.js.map +1 -1
- package/esm/banner.d.ts +1 -1
- package/esm/banner.d.ts.map +1 -1
- package/esm/daemon/auth/authenticator.d.ts +28 -0
- package/esm/daemon/auth/authenticator.d.ts.map +1 -0
- package/esm/daemon/auth/authenticator.js +108 -0
- package/esm/daemon/auth/authenticator.js.map +1 -0
- package/esm/daemon/auth/index.d.ts +5 -0
- package/esm/daemon/auth/index.d.ts.map +1 -0
- package/esm/daemon/auth/index.js +5 -0
- package/esm/daemon/auth/index.js.map +1 -0
- package/esm/daemon/auth/packet-processor.d.ts +42 -0
- package/esm/daemon/auth/packet-processor.d.ts.map +1 -0
- package/esm/daemon/auth/packet-processor.js +129 -0
- package/esm/daemon/auth/packet-processor.js.map +1 -0
- package/esm/daemon/auth/public-key.d.ts +8 -0
- package/esm/daemon/auth/public-key.d.ts.map +1 -0
- package/esm/daemon/auth/public-key.js +74 -0
- package/esm/daemon/auth/public-key.js.map +1 -0
- package/esm/daemon/auth/type.d.ts +5 -0
- package/esm/daemon/auth/type.d.ts.map +1 -0
- package/esm/daemon/auth/type.js +2 -0
- package/esm/daemon/auth/type.js.map +1 -0
- package/esm/daemon/crypto.d.ts +6 -5
- package/esm/daemon/crypto.d.ts.map +1 -1
- package/esm/daemon/crypto.js +23 -73
- package/esm/daemon/crypto.js.map +1 -1
- package/esm/daemon/dispatcher.d.ts +3 -3
- package/esm/daemon/dispatcher.d.ts.map +1 -1
- package/esm/daemon/dispatcher.js +11 -4
- package/esm/daemon/dispatcher.js.map +1 -1
- package/esm/daemon/index.d.ts +1 -1
- package/esm/daemon/index.d.ts.map +1 -1
- package/esm/daemon/index.js +1 -1
- package/esm/daemon/index.js.map +1 -1
- package/esm/daemon/socket.d.ts +3 -3
- package/esm/daemon/socket.d.ts.map +1 -1
- package/esm/daemon/transport.d.ts +13 -65
- package/esm/daemon/transport.d.ts.map +1 -1
- package/esm/daemon/transport.js +18 -140
- package/esm/daemon/transport.js.map +1 -1
- package/esm/device-observer.d.ts +2 -3
- package/esm/device-observer.d.ts.map +1 -1
- package/esm/features-value.d.ts +40 -0
- package/esm/features-value.d.ts.map +1 -0
- package/esm/features-value.js +46 -0
- package/esm/features-value.js.map +1 -0
- package/esm/features.d.ts +4 -12
- package/esm/features.d.ts.map +1 -1
- package/esm/features.js +27 -13
- package/esm/features.js.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/server/client.d.ts +7 -7
- package/esm/server/client.d.ts.map +1 -1
- package/esm/server/client.js +69 -86
- package/esm/server/client.js.map +1 -1
- package/esm/server/commands/wireless.js +1 -1
- package/esm/server/commands/wireless.js.map +1 -1
- package/esm/server/{stream.d.ts → data-connection.d.ts} +5 -5
- package/esm/server/data-connection.d.ts.map +1 -0
- package/esm/server/{stream.js → data-connection.js} +4 -4
- package/esm/server/data-connection.js.map +1 -0
- package/esm/server/index.d.ts +1 -1
- package/esm/server/index.d.ts.map +1 -1
- package/esm/server/index.js +1 -1
- package/esm/server/index.js.map +1 -1
- package/esm/server/observer.d.ts.map +1 -1
- package/esm/server/observer.js +14 -13
- package/esm/server/observer.js.map +1 -1
- package/esm/server/transport.d.ts +4 -6
- package/esm/server/transport.d.ts.map +1 -1
- package/esm/server/transport.js +9 -24
- package/esm/server/transport.js.map +1 -1
- package/esm/service/framebuffer.d.ts.map +1 -0
- package/esm/service/framebuffer.js.map +1 -0
- package/esm/{commands → service}/index.d.ts +1 -2
- package/esm/service/index.d.ts.map +1 -0
- package/esm/{commands → service}/index.js +1 -2
- package/esm/service/index.js.map +1 -0
- package/esm/{commands → service}/power.d.ts +4 -2
- package/esm/service/power.d.ts.map +1 -0
- package/esm/{commands → service}/power.js +11 -5
- package/esm/service/power.js.map +1 -0
- package/esm/service/reverse/error.d.ts +14 -0
- package/esm/service/reverse/error.d.ts.map +1 -0
- package/esm/service/reverse/error.js +21 -0
- package/esm/service/reverse/error.js.map +1 -0
- package/esm/service/reverse/index.d.ts +3 -0
- package/esm/service/reverse/index.d.ts.map +1 -0
- package/esm/service/reverse/index.js +4 -0
- package/esm/service/reverse/index.js.map +1 -0
- package/esm/service/reverse/response.d.ts +2 -0
- package/esm/service/reverse/response.d.ts.map +1 -0
- package/esm/service/reverse/response.js +30 -0
- package/esm/service/reverse/response.js.map +1 -0
- package/esm/service/reverse/service.d.ts +59 -0
- package/esm/service/reverse/service.d.ts.map +1 -0
- package/esm/{commands/reverse.js → service/reverse/service.js} +16 -45
- package/esm/service/reverse/service.js.map +1 -0
- package/esm/{commands → service}/subprocess/index.d.ts +1 -0
- package/esm/service/subprocess/index.d.ts.map +1 -0
- package/esm/{commands → service}/subprocess/index.js +1 -0
- package/esm/service/subprocess/index.js.map +1 -0
- package/esm/service/subprocess/none/index.d.ts.map +1 -0
- package/esm/service/subprocess/none/index.js.map +1 -0
- package/esm/{commands → service}/subprocess/none/process.d.ts +2 -2
- package/esm/service/subprocess/none/process.d.ts.map +1 -0
- package/esm/service/subprocess/none/process.js.map +1 -0
- package/esm/{commands → service}/subprocess/none/pty.d.ts +4 -4
- package/esm/service/subprocess/none/pty.d.ts.map +1 -0
- package/esm/{commands → service}/subprocess/none/pty.js +1 -1
- package/esm/service/subprocess/none/pty.js.map +1 -0
- package/esm/service/subprocess/none/service.d.ts +10 -0
- package/esm/service/subprocess/none/service.d.ts.map +1 -0
- package/esm/service/subprocess/none/service.js +44 -0
- package/esm/service/subprocess/none/service.js.map +1 -0
- package/esm/service/subprocess/none/spawner.d.ts +15 -0
- package/esm/service/subprocess/none/spawner.d.ts.map +1 -0
- package/esm/service/subprocess/none/spawner.js +31 -0
- package/esm/service/subprocess/none/spawner.js.map +1 -0
- package/esm/{commands → service}/subprocess/pty.d.ts +1 -1
- package/esm/service/subprocess/pty.d.ts.map +1 -0
- package/esm/{commands → service}/subprocess/pty.js.map +1 -1
- package/esm/service/subprocess/service.d.ts.map +1 -0
- package/esm/{commands → service}/subprocess/service.js +1 -1
- package/esm/service/subprocess/service.js.map +1 -0
- package/esm/service/subprocess/shell/index.d.ts +5 -0
- package/esm/{commands/subprocess/none → service/subprocess/shell}/index.d.ts.map +1 -1
- package/esm/service/subprocess/shell/index.js +6 -0
- package/esm/{commands/subprocess/none → service/subprocess/shell}/index.js.map +1 -1
- package/esm/{commands → service}/subprocess/shell/process.d.ts +2 -2
- package/esm/service/subprocess/shell/process.d.ts.map +1 -0
- package/esm/{commands → service}/subprocess/shell/process.js +4 -6
- package/esm/service/subprocess/shell/process.js.map +1 -0
- package/esm/{commands → service}/subprocess/shell/pty.d.ts +4 -4
- package/esm/service/subprocess/shell/pty.d.ts.map +1 -0
- package/esm/{commands → service}/subprocess/shell/pty.js +11 -9
- package/esm/service/subprocess/shell/pty.js.map +1 -0
- package/esm/service/subprocess/shell/service.d.ts +34 -0
- package/esm/service/subprocess/shell/service.d.ts.map +1 -0
- package/esm/service/subprocess/shell/service.js +52 -0
- package/esm/service/subprocess/shell/service.js.map +1 -0
- package/esm/service/subprocess/shell/shared.d.ts +2 -0
- package/esm/service/subprocess/shell/shared.d.ts.map +1 -0
- package/esm/{commands → service}/subprocess/shell/shared.js +2 -0
- package/esm/service/subprocess/shell/shared.js.map +1 -0
- package/esm/{commands → service}/subprocess/shell/spawner.d.ts +3 -7
- package/esm/service/subprocess/shell/spawner.d.ts.map +1 -0
- package/esm/service/subprocess/shell/spawner.js +45 -0
- package/esm/service/subprocess/shell/spawner.js.map +1 -0
- package/esm/service/subprocess/types.d.ts +14 -0
- package/esm/service/subprocess/types.d.ts.map +1 -0
- package/esm/service/subprocess/types.js +2 -0
- package/esm/service/subprocess/types.js.map +1 -0
- package/esm/service/subprocess/utils.d.ts +39 -0
- package/esm/service/subprocess/utils.d.ts.map +1 -0
- package/esm/service/subprocess/utils.js +142 -0
- package/esm/service/subprocess/utils.js.map +1 -0
- package/esm/service/sync/android.d.ts +34 -0
- package/esm/service/sync/android.d.ts.map +1 -0
- package/esm/service/sync/android.js +34 -0
- package/esm/service/sync/android.js.map +1 -0
- package/esm/service/sync/compression/compression.d.ts +17 -0
- package/esm/service/sync/compression/compression.d.ts.map +1 -0
- package/esm/service/sync/compression/compression.js +92 -0
- package/esm/service/sync/compression/compression.js.map +1 -0
- package/esm/service/sync/compression/format-ns.d.ts +5 -0
- package/esm/service/sync/compression/format-ns.d.ts.map +1 -0
- package/esm/service/sync/compression/format-ns.js +5 -0
- package/esm/service/sync/compression/format-ns.js.map +1 -0
- package/esm/service/sync/compression/format.d.ts +4 -0
- package/esm/service/sync/compression/format.d.ts.map +1 -0
- package/esm/service/sync/compression/format.js +3 -0
- package/esm/service/sync/compression/format.js.map +1 -0
- package/esm/service/sync/compression/index.d.ts +2 -0
- package/esm/service/sync/compression/index.d.ts.map +1 -0
- package/esm/service/sync/compression/index.js +2 -0
- package/esm/service/sync/compression/index.js.map +1 -0
- package/esm/service/sync/id/common.d.ts +17 -0
- package/esm/service/sync/id/common.d.ts.map +1 -0
- package/esm/service/sync/id/common.js +29 -0
- package/esm/service/sync/id/common.js.map +1 -0
- package/esm/service/sync/id/index.d.ts +4 -0
- package/esm/service/sync/id/index.d.ts.map +1 -0
- package/esm/service/sync/id/index.js +6 -0
- package/esm/service/sync/id/index.js.map +1 -0
- package/esm/service/sync/id/request.d.ts +7 -0
- package/esm/service/sync/id/request.d.ts.map +1 -0
- package/esm/service/sync/id/request.js +9 -0
- package/esm/service/sync/id/request.js.map +1 -0
- package/esm/service/sync/id/response.d.ts +6 -0
- package/esm/service/sync/id/response.d.ts.map +1 -0
- package/esm/service/sync/id/response.js +8 -0
- package/esm/service/sync/id/response.js.map +1 -0
- package/esm/service/sync/index-ns.d.ts +7 -0
- package/esm/service/sync/index-ns.d.ts.map +1 -0
- package/esm/service/sync/index-ns.js +7 -0
- package/esm/service/sync/index-ns.js.map +1 -0
- package/esm/service/sync/index.d.ts +3 -0
- package/esm/service/sync/index.d.ts.map +1 -0
- package/esm/service/sync/index.js +3 -0
- package/esm/service/sync/index.js.map +1 -0
- package/esm/service/sync/request/index.d.ts +5 -0
- package/esm/service/sync/request/index.d.ts.map +1 -0
- package/esm/service/sync/request/index.js +5 -0
- package/esm/service/sync/request/index.js.map +1 -0
- package/esm/{commands/sync → service/sync/request}/list.d.ts +21 -19
- package/esm/service/sync/request/list.d.ts.map +1 -0
- package/esm/service/sync/request/list.js +77 -0
- package/esm/service/sync/request/list.js.map +1 -0
- package/esm/service/sync/request/pull.d.ts +12 -0
- package/esm/service/sync/request/pull.d.ts.map +1 -0
- package/esm/service/sync/request/pull.js +28 -0
- package/esm/service/sync/request/pull.js.map +1 -0
- package/esm/service/sync/request/push.d.ts +54 -0
- package/esm/service/sync/request/push.d.ts.map +1 -0
- package/esm/service/sync/request/push.js +95 -0
- package/esm/service/sync/request/push.js.map +1 -0
- package/esm/{commands/sync → service/sync/request}/stat.d.ts +40 -50
- package/esm/service/sync/request/stat.d.ts.map +1 -0
- package/esm/service/sync/request/stat.js +89 -0
- package/esm/service/sync/request/stat.js.map +1 -0
- package/esm/service/sync/service.d.ts +123 -0
- package/esm/service/sync/service.d.ts.map +1 -0
- package/esm/service/sync/service.js +170 -0
- package/esm/service/sync/service.js.map +1 -0
- package/esm/service/sync/socket-pool.d.ts +11 -0
- package/esm/service/sync/socket-pool.d.ts.map +1 -0
- package/esm/service/sync/socket-pool.js +80 -0
- package/esm/service/sync/socket-pool.js.map +1 -0
- package/esm/service/sync/socket.d.ts +40 -0
- package/esm/service/sync/socket.d.ts.map +1 -0
- package/esm/service/sync/socket.js +153 -0
- package/esm/service/sync/socket.js.map +1 -0
- package/esm/{commands → service}/tcpip.d.ts +4 -2
- package/esm/service/tcpip.d.ts.map +1 -0
- package/esm/{commands → service}/tcpip.js +10 -7
- package/esm/service/tcpip.js.map +1 -0
- package/esm/utils/array-buffer.d.ts.map +1 -1
- package/esm/utils/array-buffer.js +2 -3
- package/esm/utils/array-buffer.js.map +1 -1
- package/esm/utils/base64.d.ts.map +1 -1
- package/esm/utils/base64.js +22 -12
- package/esm/utils/base64.js.map +1 -1
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.d.ts.map +1 -1
- package/esm/utils/index.js +1 -0
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/md5.d.ts +8 -0
- package/esm/utils/md5.d.ts.map +1 -0
- package/esm/utils/md5.js +149 -0
- package/esm/utils/md5.js.map +1 -0
- package/package.json +10 -10
- package/src/adb.ts +44 -34
- package/src/daemon/auth/authenticator.ts +186 -0
- package/src/daemon/auth/index.ts +4 -0
- package/src/daemon/auth/packet-processor.ts +212 -0
- package/src/daemon/auth/public-key.ts +112 -0
- package/src/daemon/auth/type.ts +5 -0
- package/src/daemon/crypto.ts +36 -102
- package/src/daemon/dispatcher.ts +15 -8
- package/src/daemon/index.ts +1 -1
- package/src/daemon/socket.ts +3 -3
- package/src/daemon/transport.ts +35 -253
- package/src/device-observer.ts +3 -3
- package/src/features-value.ts +47 -0
- package/src/features.ts +31 -14
- package/src/index.ts +1 -1
- package/src/server/client.ts +96 -94
- package/src/server/commands/wireless.ts +1 -1
- package/src/server/{stream.ts → data-connection.ts} +4 -4
- package/src/server/index.ts +1 -1
- package/src/server/observer.ts +21 -19
- package/src/server/transport.ts +13 -34
- package/src/{commands → service}/index.ts +1 -2
- package/src/{commands → service}/power.ts +14 -5
- package/src/service/reverse/error.ts +35 -0
- package/src/service/reverse/index.ts +3 -0
- package/src/service/reverse/response.ts +38 -0
- package/src/{commands/reverse.ts → service/reverse/service.ts} +32 -72
- package/src/{commands → service}/subprocess/index.ts +1 -0
- package/src/{commands → service}/subprocess/none/process.ts +3 -3
- package/src/{commands → service}/subprocess/none/pty.ts +5 -5
- package/src/service/subprocess/none/service.ts +57 -0
- package/src/service/subprocess/none/spawner.ts +81 -0
- package/src/{commands → service}/subprocess/pty.ts +1 -1
- package/src/{commands → service}/subprocess/service.ts +1 -1
- package/src/{commands → service}/subprocess/shell/index.ts +1 -1
- package/src/{commands → service}/subprocess/shell/process.ts +6 -7
- package/src/{commands → service}/subprocess/shell/pty.ts +15 -13
- package/src/service/subprocess/shell/service.ts +75 -0
- package/src/{commands → service}/subprocess/shell/shared.ts +5 -0
- package/src/service/subprocess/shell/spawner.ts +109 -0
- package/src/service/subprocess/types.ts +19 -0
- package/src/service/subprocess/utils.ts +166 -0
- package/src/service/sync/android.ts +43 -0
- package/src/service/sync/compression/compression.ts +126 -0
- package/src/service/sync/compression/format-ns.ts +4 -0
- package/src/service/sync/compression/format.ts +5 -0
- package/src/service/sync/compression/index.ts +1 -0
- package/src/service/sync/id/common.ts +33 -0
- package/src/service/sync/id/index.ts +7 -0
- package/src/service/sync/id/request.ts +12 -0
- package/src/service/sync/id/response.ts +11 -0
- package/src/service/sync/index-ns.ts +6 -0
- package/src/service/sync/index.ts +2 -0
- package/src/service/sync/request/index.ts +4 -0
- package/src/service/sync/request/list.ts +110 -0
- package/src/service/sync/request/pull.ts +49 -0
- package/src/service/sync/request/push.ts +184 -0
- package/src/service/sync/request/stat.ts +127 -0
- package/src/service/sync/service.ts +255 -0
- package/src/service/sync/socket-pool.ts +97 -0
- package/src/service/sync/socket.ts +201 -0
- package/src/{commands → service}/tcpip.ts +13 -7
- package/src/utils/array-buffer.ts +2 -3
- package/src/utils/base64.ts +24 -12
- package/src/utils/index.ts +1 -0
- package/src/utils/md5.ts +185 -0
- package/yume-chan-adb-3.0.0-beta.0.tgz +0 -0
- package/CHANGELOG.md +0 -251
- package/esm/commands/base.d.ts +0 -8
- package/esm/commands/base.d.ts.map +0 -1
- package/esm/commands/base.js +0 -12
- package/esm/commands/base.js.map +0 -1
- package/esm/commands/framebuffer.d.ts.map +0 -1
- package/esm/commands/framebuffer.js.map +0 -1
- package/esm/commands/index.d.ts.map +0 -1
- package/esm/commands/index.js.map +0 -1
- package/esm/commands/power.d.ts.map +0 -1
- package/esm/commands/power.js.map +0 -1
- package/esm/commands/reverse.d.ts +0 -48
- package/esm/commands/reverse.d.ts.map +0 -1
- package/esm/commands/reverse.js.map +0 -1
- package/esm/commands/subprocess/index.d.ts.map +0 -1
- package/esm/commands/subprocess/index.js.map +0 -1
- package/esm/commands/subprocess/none/process.d.ts.map +0 -1
- package/esm/commands/subprocess/none/process.js.map +0 -1
- package/esm/commands/subprocess/none/pty.d.ts.map +0 -1
- package/esm/commands/subprocess/none/pty.js.map +0 -1
- package/esm/commands/subprocess/none/service.d.ts +0 -10
- package/esm/commands/subprocess/none/service.d.ts.map +0 -1
- package/esm/commands/subprocess/none/service.js +0 -34
- package/esm/commands/subprocess/none/service.js.map +0 -1
- package/esm/commands/subprocess/none/spawner.d.ts +0 -19
- package/esm/commands/subprocess/none/spawner.d.ts.map +0 -1
- package/esm/commands/subprocess/none/spawner.js +0 -26
- package/esm/commands/subprocess/none/spawner.js.map +0 -1
- package/esm/commands/subprocess/pty.d.ts.map +0 -1
- package/esm/commands/subprocess/service.d.ts.map +0 -1
- package/esm/commands/subprocess/service.js.map +0 -1
- package/esm/commands/subprocess/shell/index.d.ts +0 -6
- package/esm/commands/subprocess/shell/index.d.ts.map +0 -1
- package/esm/commands/subprocess/shell/index.js +0 -6
- package/esm/commands/subprocess/shell/index.js.map +0 -1
- package/esm/commands/subprocess/shell/process.d.ts.map +0 -1
- package/esm/commands/subprocess/shell/process.js.map +0 -1
- package/esm/commands/subprocess/shell/pty.d.ts.map +0 -1
- package/esm/commands/subprocess/shell/pty.js.map +0 -1
- package/esm/commands/subprocess/shell/service.d.ts +0 -14
- package/esm/commands/subprocess/shell/service.d.ts.map +0 -1
- package/esm/commands/subprocess/shell/service.js +0 -41
- package/esm/commands/subprocess/shell/service.js.map +0 -1
- package/esm/commands/subprocess/shell/shared.d.ts +0 -19
- package/esm/commands/subprocess/shell/shared.d.ts.map +0 -1
- package/esm/commands/subprocess/shell/shared.js.map +0 -1
- package/esm/commands/subprocess/shell/spawner.d.ts.map +0 -1
- package/esm/commands/subprocess/shell/spawner.js +0 -38
- package/esm/commands/subprocess/shell/spawner.js.map +0 -1
- package/esm/commands/subprocess/utils.d.ts +0 -3
- package/esm/commands/subprocess/utils.d.ts.map +0 -1
- package/esm/commands/subprocess/utils.js +0 -56
- package/esm/commands/subprocess/utils.js.map +0 -1
- package/esm/commands/sync/index.d.ts +0 -9
- package/esm/commands/sync/index.d.ts.map +0 -1
- package/esm/commands/sync/index.js +0 -9
- package/esm/commands/sync/index.js.map +0 -1
- package/esm/commands/sync/list.d.ts.map +0 -1
- package/esm/commands/sync/list.js +0 -64
- package/esm/commands/sync/list.js.map +0 -1
- package/esm/commands/sync/pull.d.ts +0 -12
- package/esm/commands/sync/pull.d.ts.map +0 -1
- package/esm/commands/sync/pull.js +0 -33
- package/esm/commands/sync/pull.js.map +0 -1
- package/esm/commands/sync/push.d.ts +0 -61
- package/esm/commands/sync/push.d.ts.map +0 -1
- package/esm/commands/sync/push.js +0 -83
- package/esm/commands/sync/push.js.map +0 -1
- package/esm/commands/sync/request.d.ts +0 -24
- package/esm/commands/sync/request.d.ts.map +0 -1
- package/esm/commands/sync/request.js +0 -32
- package/esm/commands/sync/request.js.map +0 -1
- package/esm/commands/sync/response.d.ts +0 -28
- package/esm/commands/sync/response.d.ts.map +0 -1
- package/esm/commands/sync/response.js +0 -81
- package/esm/commands/sync/response.js.map +0 -1
- package/esm/commands/sync/socket.d.ts +0 -22
- package/esm/commands/sync/socket.d.ts.map +0 -1
- package/esm/commands/sync/socket.js +0 -78
- package/esm/commands/sync/socket.js.map +0 -1
- package/esm/commands/sync/stat.d.ts.map +0 -1
- package/esm/commands/sync/stat.js +0 -121
- package/esm/commands/sync/stat.js.map +0 -1
- package/esm/commands/sync/sync.d.ts +0 -82
- package/esm/commands/sync/sync.d.ts.map +0 -1
- package/esm/commands/sync/sync.js +0 -138
- package/esm/commands/sync/sync.js.map +0 -1
- package/esm/commands/tcpip.d.ts.map +0 -1
- package/esm/commands/tcpip.js.map +0 -1
- package/esm/daemon/auth.d.ts +0 -54
- package/esm/daemon/auth.d.ts.map +0 -1
- package/esm/daemon/auth.js +0 -104
- package/esm/daemon/auth.js.map +0 -1
- package/esm/server/stream.d.ts.map +0 -1
- package/esm/server/stream.js.map +0 -1
- package/src/commands/base.ts +0 -15
- package/src/commands/subprocess/none/service.ts +0 -45
- package/src/commands/subprocess/none/spawner.ts +0 -68
- package/src/commands/subprocess/shell/service.ts +0 -58
- package/src/commands/subprocess/shell/spawner.ts +0 -90
- package/src/commands/subprocess/utils.ts +0 -61
- package/src/commands/sync/index.ts +0 -8
- package/src/commands/sync/list.ts +0 -99
- package/src/commands/sync/pull.ts +0 -55
- package/src/commands/sync/push.ts +0 -172
- package/src/commands/sync/request.ts +0 -53
- package/src/commands/sync/response.ts +0 -105
- package/src/commands/sync/socket.ts +0 -109
- package/src/commands/sync/stat.ts +0 -177
- package/src/commands/sync/sync.ts +0 -175
- package/src/daemon/auth.ts +0 -204
- package/tsconfig.build.tsbuildinfo +0 -1
- /package/esm/{commands → service}/framebuffer.d.ts +0 -0
- /package/esm/{commands → service}/framebuffer.js +0 -0
- /package/esm/{commands → service}/subprocess/none/index.d.ts +0 -0
- /package/esm/{commands → service}/subprocess/none/index.js +0 -0
- /package/esm/{commands → service}/subprocess/none/process.js +0 -0
- /package/esm/{commands → service}/subprocess/pty.js +0 -0
- /package/esm/{commands → service}/subprocess/service.d.ts +0 -0
- /package/src/{commands → service}/framebuffer.ts +0 -0
- /package/src/{commands → service}/subprocess/none/index.ts +0 -0
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { AbortController, DistributionStream, MaybeConsumable, } from "@yume-chan/stream-extra";
|
|
2
|
-
import { struct, u32 } from "@yume-chan/struct";
|
|
3
|
-
import { NOOP } from "../../utils/index.js";
|
|
4
|
-
import { AdbSyncRequestId, adbSyncWriteRequest } from "./request.js";
|
|
5
|
-
import { AdbSyncResponseId, adbSyncReadResponse } from "./response.js";
|
|
6
|
-
import { LinuxFileType } from "./stat.js";
|
|
7
|
-
export const ADB_SYNC_MAX_PACKET_SIZE = 64 * 1024;
|
|
8
|
-
export const AdbSyncOkResponse = struct({ unused: u32 }, { littleEndian: true });
|
|
9
|
-
async function pipeFileData(locked, file, packetSize, mtime) {
|
|
10
|
-
// Read and write in parallel,
|
|
11
|
-
// allow error response to abort the write.
|
|
12
|
-
const abortController = new AbortController();
|
|
13
|
-
file.pipeThrough(new DistributionStream(packetSize, true))
|
|
14
|
-
.pipeTo(new MaybeConsumable.WritableStream({
|
|
15
|
-
write(chunk) {
|
|
16
|
-
return adbSyncWriteRequest(locked, AdbSyncRequestId.Data, chunk);
|
|
17
|
-
},
|
|
18
|
-
}), { signal: abortController.signal })
|
|
19
|
-
.then(async () => {
|
|
20
|
-
await adbSyncWriteRequest(locked, AdbSyncRequestId.Done, mtime);
|
|
21
|
-
await locked.flush();
|
|
22
|
-
}, NOOP);
|
|
23
|
-
await adbSyncReadResponse(locked, AdbSyncResponseId.Ok, AdbSyncOkResponse).catch((e) => {
|
|
24
|
-
abortController.abort();
|
|
25
|
-
throw e;
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
export async function adbSyncPushV1({ socket, filename, file, type = LinuxFileType.File, permission = 0o666, mtime = (Date.now() / 1000) | 0, packetSize = ADB_SYNC_MAX_PACKET_SIZE, }) {
|
|
29
|
-
const locked = await socket.lock();
|
|
30
|
-
try {
|
|
31
|
-
const mode = (type << 12) | permission;
|
|
32
|
-
const pathAndMode = `${filename},${mode.toString()}`;
|
|
33
|
-
await adbSyncWriteRequest(locked, AdbSyncRequestId.Send, pathAndMode);
|
|
34
|
-
await pipeFileData(locked, file, packetSize, mtime);
|
|
35
|
-
}
|
|
36
|
-
finally {
|
|
37
|
-
locked.release();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
export const AdbSyncSendV2Flags = {
|
|
41
|
-
None: 0,
|
|
42
|
-
Brotli: 1,
|
|
43
|
-
/**
|
|
44
|
-
* 2
|
|
45
|
-
*/
|
|
46
|
-
Lz4: 1 << 1,
|
|
47
|
-
/**
|
|
48
|
-
* 4
|
|
49
|
-
*/
|
|
50
|
-
Zstd: 1 << 2,
|
|
51
|
-
DryRun: 0x80000000,
|
|
52
|
-
};
|
|
53
|
-
export const AdbSyncSendV2Request = struct({ id: u32, mode: u32, flags: u32() }, { littleEndian: true });
|
|
54
|
-
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, }) {
|
|
55
|
-
const locked = await socket.lock();
|
|
56
|
-
try {
|
|
57
|
-
await adbSyncWriteRequest(locked, AdbSyncRequestId.SendV2, filename);
|
|
58
|
-
const mode = (type << 12) | permission;
|
|
59
|
-
let flags = AdbSyncSendV2Flags.None;
|
|
60
|
-
if (dryRun) {
|
|
61
|
-
flags |= AdbSyncSendV2Flags.DryRun;
|
|
62
|
-
}
|
|
63
|
-
await locked.write(AdbSyncSendV2Request.serialize({
|
|
64
|
-
id: AdbSyncRequestId.SendV2,
|
|
65
|
-
mode,
|
|
66
|
-
flags,
|
|
67
|
-
}));
|
|
68
|
-
await pipeFileData(locked, file, packetSize, mtime);
|
|
69
|
-
}
|
|
70
|
-
finally {
|
|
71
|
-
locked.release();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
export function adbSyncPush(options) {
|
|
75
|
-
if (options.v2) {
|
|
76
|
-
return adbSyncPushV2(options);
|
|
77
|
-
}
|
|
78
|
-
if (options.dryRun) {
|
|
79
|
-
throw new Error("dryRun is not supported in v1");
|
|
80
|
-
}
|
|
81
|
-
return adbSyncPushV1(options);
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=push.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export declare const AdbSyncRequestId: {
|
|
2
|
-
readonly List: number;
|
|
3
|
-
readonly ListV2: number;
|
|
4
|
-
readonly Send: number;
|
|
5
|
-
readonly SendV2: number;
|
|
6
|
-
readonly Lstat: number;
|
|
7
|
-
readonly Stat: number;
|
|
8
|
-
readonly LstatV2: number;
|
|
9
|
-
readonly Data: number;
|
|
10
|
-
readonly Done: number;
|
|
11
|
-
readonly Receive: number;
|
|
12
|
-
};
|
|
13
|
-
export declare const AdbSyncNumberRequest: import("@yume-chan/struct").Struct<{
|
|
14
|
-
id: import("@yume-chan/struct").NumberField<number>;
|
|
15
|
-
arg: import("@yume-chan/struct").NumberField<number>;
|
|
16
|
-
}, undefined, import("@yume-chan/struct").FieldsValue<{
|
|
17
|
-
id: import("@yume-chan/struct").NumberField<number>;
|
|
18
|
-
arg: import("@yume-chan/struct").NumberField<number>;
|
|
19
|
-
}>>;
|
|
20
|
-
export interface AdbSyncWritable {
|
|
21
|
-
write(buffer: Uint8Array): Promise<void>;
|
|
22
|
-
}
|
|
23
|
-
export declare function adbSyncWriteRequest(writable: AdbSyncWritable, id: number | string, value: number | string | Uint8Array): Promise<void>;
|
|
24
|
-
//# sourceMappingURL=request.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/request.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;;;;;;;;;;CAWnB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;;;GAGhC,CAAC;AAEF,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,32 +0,0 @@
|
|
|
1
|
-
import { encodeUtf8, struct, u32 } from "@yume-chan/struct";
|
|
2
|
-
import { adbSyncEncodeId } from "./response.js";
|
|
3
|
-
export const AdbSyncRequestId = {
|
|
4
|
-
List: adbSyncEncodeId("LIST"),
|
|
5
|
-
ListV2: adbSyncEncodeId("LIS2"),
|
|
6
|
-
Send: adbSyncEncodeId("SEND"),
|
|
7
|
-
SendV2: adbSyncEncodeId("SND2"),
|
|
8
|
-
Lstat: adbSyncEncodeId("STAT"),
|
|
9
|
-
Stat: adbSyncEncodeId("STA2"),
|
|
10
|
-
LstatV2: adbSyncEncodeId("LST2"),
|
|
11
|
-
Data: adbSyncEncodeId("DATA"),
|
|
12
|
-
Done: adbSyncEncodeId("DONE"),
|
|
13
|
-
Receive: adbSyncEncodeId("RECV"),
|
|
14
|
-
};
|
|
15
|
-
export const AdbSyncNumberRequest = struct({ id: u32, arg: u32 }, { littleEndian: true });
|
|
16
|
-
export async function adbSyncWriteRequest(writable, id, value) {
|
|
17
|
-
if (typeof id === "string") {
|
|
18
|
-
id = adbSyncEncodeId(id);
|
|
19
|
-
}
|
|
20
|
-
if (typeof value === "number") {
|
|
21
|
-
await writable.write(AdbSyncNumberRequest.serialize({ id, arg: value }));
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
if (typeof value === "string") {
|
|
25
|
-
value = encodeUtf8(value);
|
|
26
|
-
}
|
|
27
|
-
// `writable` is buffered, it copies inputs to an internal buffer,
|
|
28
|
-
// so don't concatenate headers and data here, that will be an unnecessary copy.
|
|
29
|
-
await writable.write(AdbSyncNumberRequest.serialize({ id, arg: value.length }));
|
|
30
|
-
await writable.write(value);
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=request.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/commands/sync/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;IAC7B,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;IAC7B,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;IAC7B,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;IAC7B,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;CAC1B,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CACtC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EACrB,EAAE,YAAY,EAAE,IAAI,EAAE,CACzB,CAAC;AAMF,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,28 +0,0 @@
|
|
|
1
|
-
import type { AsyncExactReadable, StructDeserializer } from "@yume-chan/struct";
|
|
2
|
-
/**
|
|
3
|
-
* Encode ID to numbers for faster comparison
|
|
4
|
-
* @param value A 4-character string
|
|
5
|
-
* @returns A 32-bit integer by encoding the string as little-endian
|
|
6
|
-
*
|
|
7
|
-
* #__NO_SIDE_EFFECTS__
|
|
8
|
-
*/
|
|
9
|
-
export declare function adbSyncEncodeId(value: string): number;
|
|
10
|
-
export declare const AdbSyncResponseId: {
|
|
11
|
-
Entry: number;
|
|
12
|
-
Entry2: number;
|
|
13
|
-
Lstat: number;
|
|
14
|
-
Stat: number;
|
|
15
|
-
Lstat2: number;
|
|
16
|
-
Done: number;
|
|
17
|
-
Data: number;
|
|
18
|
-
Ok: number;
|
|
19
|
-
Fail: number;
|
|
20
|
-
};
|
|
21
|
-
export declare class AdbSyncError extends Error {
|
|
22
|
-
}
|
|
23
|
-
export declare const AdbSyncFailResponse: import("@yume-chan/struct").Struct<{
|
|
24
|
-
message: import("@yume-chan/struct").Field<string, string, never, string>;
|
|
25
|
-
}, undefined, never>;
|
|
26
|
-
export declare function adbSyncReadResponse<T>(stream: AsyncExactReadable, id: number | string, type: StructDeserializer<T>): Promise<T>;
|
|
27
|
-
export declare function adbSyncReadResponses<T>(stream: AsyncExactReadable, id: number | string, type: StructDeserializer<T>): AsyncGenerator<T, void, void>;
|
|
28
|
-
//# sourceMappingURL=response.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAahF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;CAU7B,CAAC;AAEF,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,eAAO,MAAM,mBAAmB;;oBAQ/B,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,CAAC,EACvC,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAED,wBAAuB,oBAAoB,CAAC,CAAC,EACzC,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC5B,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CA2B/B"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { getUint32LittleEndian } from "@yume-chan/no-data-view";
|
|
2
|
-
import { decodeUtf8, string, struct, u32 } from "@yume-chan/struct";
|
|
3
|
-
import { unreachable } from "../../utils/no-op.js";
|
|
4
|
-
function encodeAsciiUnchecked(value) {
|
|
5
|
-
const result = new Uint8Array(value.length);
|
|
6
|
-
for (let i = 0; i < value.length; i += 1) {
|
|
7
|
-
result[i] = value.charCodeAt(i);
|
|
8
|
-
}
|
|
9
|
-
return result;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Encode ID to numbers for faster comparison
|
|
13
|
-
* @param value A 4-character string
|
|
14
|
-
* @returns A 32-bit integer by encoding the string as little-endian
|
|
15
|
-
*
|
|
16
|
-
* #__NO_SIDE_EFFECTS__
|
|
17
|
-
*/
|
|
18
|
-
export function adbSyncEncodeId(value) {
|
|
19
|
-
const buffer = encodeAsciiUnchecked(value);
|
|
20
|
-
return getUint32LittleEndian(buffer, 0);
|
|
21
|
-
}
|
|
22
|
-
export const AdbSyncResponseId = {
|
|
23
|
-
Entry: adbSyncEncodeId("DENT"),
|
|
24
|
-
Entry2: adbSyncEncodeId("DNT2"),
|
|
25
|
-
Lstat: adbSyncEncodeId("STAT"),
|
|
26
|
-
Stat: adbSyncEncodeId("STA2"),
|
|
27
|
-
Lstat2: adbSyncEncodeId("LST2"),
|
|
28
|
-
Done: adbSyncEncodeId("DONE"),
|
|
29
|
-
Data: adbSyncEncodeId("DATA"),
|
|
30
|
-
Ok: adbSyncEncodeId("OKAY"),
|
|
31
|
-
Fail: adbSyncEncodeId("FAIL"),
|
|
32
|
-
};
|
|
33
|
-
export class AdbSyncError extends Error {
|
|
34
|
-
}
|
|
35
|
-
export const AdbSyncFailResponse = struct({ message: string(u32) }, {
|
|
36
|
-
littleEndian: true,
|
|
37
|
-
postDeserialize(value) {
|
|
38
|
-
throw new AdbSyncError(value.message);
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
export async function adbSyncReadResponse(stream, id, type) {
|
|
42
|
-
if (typeof id === "string") {
|
|
43
|
-
id = adbSyncEncodeId(id);
|
|
44
|
-
}
|
|
45
|
-
const buffer = await stream.readExactly(4);
|
|
46
|
-
switch (getUint32LittleEndian(buffer, 0)) {
|
|
47
|
-
case AdbSyncResponseId.Fail:
|
|
48
|
-
await AdbSyncFailResponse.deserialize(stream);
|
|
49
|
-
throw new Error("Unreachable");
|
|
50
|
-
case id:
|
|
51
|
-
return await type.deserialize(stream);
|
|
52
|
-
default:
|
|
53
|
-
throw new Error(`Expected '${id}', but got '${decodeUtf8(buffer)}'`);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
export async function* adbSyncReadResponses(stream, id, type) {
|
|
57
|
-
if (typeof id === "string") {
|
|
58
|
-
id = adbSyncEncodeId(id);
|
|
59
|
-
}
|
|
60
|
-
while (true) {
|
|
61
|
-
const buffer = await stream.readExactly(4);
|
|
62
|
-
switch (getUint32LittleEndian(buffer, 0)) {
|
|
63
|
-
case AdbSyncResponseId.Fail:
|
|
64
|
-
await AdbSyncFailResponse.deserialize(stream);
|
|
65
|
-
unreachable();
|
|
66
|
-
case AdbSyncResponseId.Done:
|
|
67
|
-
// `DONE` responses' size are always same as the request's normal response.
|
|
68
|
-
//
|
|
69
|
-
// For example, `DONE` responses for `LIST` requests are 16 bytes (same as `DENT` responses),
|
|
70
|
-
// but `DONE` responses for `STAT` requests are 12 bytes (same as `STAT` responses).
|
|
71
|
-
await stream.readExactly(type.size);
|
|
72
|
-
return;
|
|
73
|
-
case id:
|
|
74
|
-
yield await type.deserialize(stream);
|
|
75
|
-
break;
|
|
76
|
-
default:
|
|
77
|
-
throw new Error(`Expected '${id}' or '${AdbSyncResponseId.Done}', but got '${decodeUtf8(buffer)}'`);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=response.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { MaybeConsumable, WritableStreamDefaultWriter } from "@yume-chan/stream-extra";
|
|
2
|
-
import { BufferedReadableStream } from "@yume-chan/stream-extra";
|
|
3
|
-
import type { AsyncExactReadable } from "@yume-chan/struct";
|
|
4
|
-
import type { AdbSocket } from "../../adb.js";
|
|
5
|
-
import { AutoResetEvent } from "../../utils/index.js";
|
|
6
|
-
export declare class AdbSyncSocketLocked implements AsyncExactReadable {
|
|
7
|
-
#private;
|
|
8
|
-
get position(): number;
|
|
9
|
-
constructor(writer: WritableStreamDefaultWriter<MaybeConsumable<Uint8Array>>, readable: BufferedReadableStream, bufferSize: number, lock: AutoResetEvent);
|
|
10
|
-
flush(): Promise<void>;
|
|
11
|
-
write(data: Uint8Array): Promise<void>;
|
|
12
|
-
readExactly(length: number): Promise<Uint8Array<ArrayBufferLike>>;
|
|
13
|
-
release(): void;
|
|
14
|
-
close(): Promise<void>;
|
|
15
|
-
}
|
|
16
|
-
export declare class AdbSyncSocket {
|
|
17
|
-
#private;
|
|
18
|
-
constructor(socket: AdbSocket, bufferSize: number);
|
|
19
|
-
lock(): Promise<AdbSyncSocketLocked>;
|
|
20
|
-
close(): Promise<void>;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=socket.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,78 +0,0 @@
|
|
|
1
|
-
import { BufferCombiner, BufferedReadableStream, Consumable, } from "@yume-chan/stream-extra";
|
|
2
|
-
import { AutoResetEvent } from "../../utils/index.js";
|
|
3
|
-
export class AdbSyncSocketLocked {
|
|
4
|
-
#writer;
|
|
5
|
-
#readable;
|
|
6
|
-
#socketLock;
|
|
7
|
-
#writeLock = new AutoResetEvent();
|
|
8
|
-
#combiner;
|
|
9
|
-
get position() {
|
|
10
|
-
return this.#readable.position;
|
|
11
|
-
}
|
|
12
|
-
constructor(writer, readable, bufferSize, lock) {
|
|
13
|
-
this.#writer = writer;
|
|
14
|
-
this.#readable = readable;
|
|
15
|
-
this.#socketLock = lock;
|
|
16
|
-
this.#combiner = new BufferCombiner(bufferSize);
|
|
17
|
-
}
|
|
18
|
-
#write(buffer) {
|
|
19
|
-
// `#combiner` will reuse the buffer, so we need to use the Consumable pattern
|
|
20
|
-
return Consumable.WritableStream.write(this.#writer, buffer);
|
|
21
|
-
}
|
|
22
|
-
async flush() {
|
|
23
|
-
try {
|
|
24
|
-
await this.#writeLock.wait();
|
|
25
|
-
const buffer = this.#combiner.flush();
|
|
26
|
-
if (buffer) {
|
|
27
|
-
await this.#write(buffer);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
finally {
|
|
31
|
-
this.#writeLock.notifyOne();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
async write(data) {
|
|
35
|
-
try {
|
|
36
|
-
await this.#writeLock.wait();
|
|
37
|
-
for (const buffer of this.#combiner.push(data)) {
|
|
38
|
-
await this.#write(buffer);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
finally {
|
|
42
|
-
this.#writeLock.notifyOne();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
async readExactly(length) {
|
|
46
|
-
// The request may still be in the internal buffer.
|
|
47
|
-
// Call `flush` to send it before starting reading
|
|
48
|
-
await this.flush();
|
|
49
|
-
return await this.#readable.readExactly(length);
|
|
50
|
-
}
|
|
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.
|
|
54
|
-
this.#combiner.flush();
|
|
55
|
-
this.#socketLock.notifyOne();
|
|
56
|
-
}
|
|
57
|
-
async close() {
|
|
58
|
-
await this.#readable.cancel();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
export class AdbSyncSocket {
|
|
62
|
-
#lock = new AutoResetEvent();
|
|
63
|
-
#socket;
|
|
64
|
-
#locked;
|
|
65
|
-
constructor(socket, bufferSize) {
|
|
66
|
-
this.#socket = socket;
|
|
67
|
-
this.#locked = new AdbSyncSocketLocked(socket.writable.getWriter(), new BufferedReadableStream(socket.readable), bufferSize, this.#lock);
|
|
68
|
-
}
|
|
69
|
-
async lock() {
|
|
70
|
-
await this.#lock.wait();
|
|
71
|
-
return this.#locked;
|
|
72
|
-
}
|
|
73
|
-
async close() {
|
|
74
|
-
await this.#locked.close();
|
|
75
|
-
await this.#socket.close();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=socket.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/commands/sync/socket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stat.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/stat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE/E,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,IAAI,IAAI,aAAa,CAAC;IAC1B,IAAI,UAAU,IAAI,MAAM,CAAC;IAEzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,oBAAoB;;;;;mBAKT,aAAa;yBAGP,MAAM;;;;;;mBAHZ,aAAa;yBAGP,MAAM;EAWnC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;CAsBvB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAC5B,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAUrE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;mBAiBR,aAAa;yBAGP,MAAM;;;;;;;;;;;;;;mBAHZ,aAAa;yBAGP,MAAM;EAWnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE1E,wBAAsB,YAAY,CAC9B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,OAAO,GACZ,OAAO,CAAC,WAAW,CAAC,CAiCtB;AAED,wBAAsB,WAAW,CAC7B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC,CAY9B"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { struct, u32, u64 } from "@yume-chan/struct";
|
|
2
|
-
import { AdbSyncRequestId, adbSyncWriteRequest } from "./request.js";
|
|
3
|
-
import { AdbSyncResponseId, adbSyncReadResponse } from "./response.js";
|
|
4
|
-
// https://github.com/python/cpython/blob/4e581d64b8aff3e2eda99b12f080c877bb78dfca/Lib/stat.py#L36
|
|
5
|
-
export const LinuxFileType = {
|
|
6
|
-
Directory: 0o04,
|
|
7
|
-
File: 0o10,
|
|
8
|
-
Link: 0o12,
|
|
9
|
-
};
|
|
10
|
-
export const AdbSyncLstatResponse = struct({ mode: u32, size: u32, mtime: u32 }, {
|
|
11
|
-
littleEndian: true,
|
|
12
|
-
extra: {
|
|
13
|
-
get type() {
|
|
14
|
-
return (this.mode >> 12);
|
|
15
|
-
},
|
|
16
|
-
get permission() {
|
|
17
|
-
return this.mode & 0b00001111_11111111;
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
postDeserialize(value) {
|
|
21
|
-
if (value.mode === 0 && value.size === 0 && value.mtime === 0) {
|
|
22
|
-
throw new Error("lstat error");
|
|
23
|
-
}
|
|
24
|
-
return value;
|
|
25
|
-
},
|
|
26
|
-
});
|
|
27
|
-
export const AdbSyncStatErrorCode = {
|
|
28
|
-
SUCCESS: 0,
|
|
29
|
-
EACCES: 13,
|
|
30
|
-
EEXIST: 17,
|
|
31
|
-
EFAULT: 14,
|
|
32
|
-
EFBIG: 27,
|
|
33
|
-
EINTR: 4,
|
|
34
|
-
EINVAL: 22,
|
|
35
|
-
EIO: 5,
|
|
36
|
-
EISDIR: 21,
|
|
37
|
-
ELOOP: 40,
|
|
38
|
-
EMFILE: 24,
|
|
39
|
-
ENAMETOOLONG: 36,
|
|
40
|
-
ENFILE: 23,
|
|
41
|
-
ENOENT: 2,
|
|
42
|
-
ENOMEM: 12,
|
|
43
|
-
ENOSPC: 28,
|
|
44
|
-
ENOTDIR: 20,
|
|
45
|
-
EOVERFLOW: 75,
|
|
46
|
-
EPERM: 1,
|
|
47
|
-
EROFS: 30,
|
|
48
|
-
ETXTBSY: 26,
|
|
49
|
-
};
|
|
50
|
-
const AdbSyncStatErrorName = /* #__PURE__ */ (() => Object.fromEntries(Object.entries(AdbSyncStatErrorCode).map(([key, value]) => [
|
|
51
|
-
value,
|
|
52
|
-
key,
|
|
53
|
-
])))();
|
|
54
|
-
export const AdbSyncStatResponse = struct({
|
|
55
|
-
error: u32(),
|
|
56
|
-
dev: u64,
|
|
57
|
-
ino: u64,
|
|
58
|
-
mode: u32,
|
|
59
|
-
nlink: u32,
|
|
60
|
-
uid: u32,
|
|
61
|
-
gid: u32,
|
|
62
|
-
size: u64,
|
|
63
|
-
atime: u64,
|
|
64
|
-
mtime: u64,
|
|
65
|
-
ctime: u64,
|
|
66
|
-
}, {
|
|
67
|
-
littleEndian: true,
|
|
68
|
-
extra: {
|
|
69
|
-
get type() {
|
|
70
|
-
return (this.mode >> 12);
|
|
71
|
-
},
|
|
72
|
-
get permission() {
|
|
73
|
-
return this.mode & 0b00001111_11111111;
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
postDeserialize(value) {
|
|
77
|
-
if (value.error) {
|
|
78
|
-
throw new Error(AdbSyncStatErrorName[value.error]);
|
|
79
|
-
}
|
|
80
|
-
return value;
|
|
81
|
-
},
|
|
82
|
-
});
|
|
83
|
-
export async function adbSyncLstat(socket, path, v2) {
|
|
84
|
-
const locked = await socket.lock();
|
|
85
|
-
try {
|
|
86
|
-
if (v2) {
|
|
87
|
-
await adbSyncWriteRequest(locked, AdbSyncRequestId.LstatV2, path);
|
|
88
|
-
return await adbSyncReadResponse(locked, AdbSyncResponseId.Lstat2, AdbSyncStatResponse);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
await adbSyncWriteRequest(locked, AdbSyncRequestId.Lstat, path);
|
|
92
|
-
const response = await adbSyncReadResponse(locked, AdbSyncResponseId.Lstat, AdbSyncLstatResponse);
|
|
93
|
-
return {
|
|
94
|
-
mode: response.mode,
|
|
95
|
-
// Convert to `BigInt` to make it compatible with `AdbSyncStatResponse`
|
|
96
|
-
size: BigInt(response.size),
|
|
97
|
-
mtime: BigInt(response.mtime),
|
|
98
|
-
get type() {
|
|
99
|
-
return response.type;
|
|
100
|
-
},
|
|
101
|
-
get permission() {
|
|
102
|
-
return response.permission;
|
|
103
|
-
},
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
finally {
|
|
108
|
-
locked.release();
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
export async function adbSyncStat(socket, path) {
|
|
112
|
-
const locked = await socket.lock();
|
|
113
|
-
try {
|
|
114
|
-
await adbSyncWriteRequest(locked, AdbSyncRequestId.Stat, path);
|
|
115
|
-
return await adbSyncReadResponse(locked, AdbSyncResponseId.Stat, AdbSyncStatResponse);
|
|
116
|
-
}
|
|
117
|
-
finally {
|
|
118
|
-
locked.release();
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=stat.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stat.js","sourceRoot":"","sources":["../../../src/commands/sync/stat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import type { MaybeConsumable, ReadableStream } from "@yume-chan/stream-extra";
|
|
2
|
-
import type { Adb, AdbSocket } from "../../adb.js";
|
|
3
|
-
import type { AdbSyncEntry } from "./list.js";
|
|
4
|
-
import type { AdbSyncSocketLocked } from "./socket.js";
|
|
5
|
-
import { AdbSyncSocket } from "./socket.js";
|
|
6
|
-
import type { AdbSyncStat, LinuxFileType } from "./stat.js";
|
|
7
|
-
/**
|
|
8
|
-
* A simplified `dirname` function that only handles absolute unix paths.
|
|
9
|
-
* @param path an absolute unix path
|
|
10
|
-
* @returns the directory name of the input path
|
|
11
|
-
*/
|
|
12
|
-
export declare function dirname(path: string): string;
|
|
13
|
-
export interface AdbSyncWriteOptions {
|
|
14
|
-
filename: string;
|
|
15
|
-
file: ReadableStream<MaybeConsumable<Uint8Array>>;
|
|
16
|
-
type?: LinuxFileType;
|
|
17
|
-
permission?: number;
|
|
18
|
-
mtime?: number;
|
|
19
|
-
dryRun?: boolean;
|
|
20
|
-
}
|
|
21
|
-
export declare class AdbSync {
|
|
22
|
-
#private;
|
|
23
|
-
protected _adb: Adb;
|
|
24
|
-
protected _socket: AdbSyncSocket;
|
|
25
|
-
get supportsStat(): boolean;
|
|
26
|
-
get supportsListV2(): boolean;
|
|
27
|
-
get fixedPushMkdir(): boolean;
|
|
28
|
-
get supportsSendReceiveV2(): boolean;
|
|
29
|
-
get needPushMkdirWorkaround(): boolean;
|
|
30
|
-
constructor(adb: Adb, socket: AdbSocket);
|
|
31
|
-
/**
|
|
32
|
-
* Gets information of a file or folder.
|
|
33
|
-
*
|
|
34
|
-
* If `path` points to a symbolic link, the returned information is about the link itself (with `type` being `LinuxFileType.Link`).
|
|
35
|
-
*/
|
|
36
|
-
lstat(path: string): Promise<AdbSyncStat>;
|
|
37
|
-
/**
|
|
38
|
-
* Gets the information of a file or folder.
|
|
39
|
-
*
|
|
40
|
-
* If `path` points to a symbolic link, it will be resolved and the returned information is about the target (with `type` being `LinuxFileType.File` or `LinuxFileType.Directory`).
|
|
41
|
-
*/
|
|
42
|
-
stat(path: string): Promise<import("@yume-chan/struct").FieldsValue<{
|
|
43
|
-
error: import("@yume-chan/struct").Field<import("./stat.js").AdbSyncStatErrorCode, never, never, number>;
|
|
44
|
-
dev: import("@yume-chan/struct").NumberField<bigint>;
|
|
45
|
-
ino: import("@yume-chan/struct").NumberField<bigint>;
|
|
46
|
-
mode: import("@yume-chan/struct").NumberField<number>;
|
|
47
|
-
nlink: import("@yume-chan/struct").NumberField<number>;
|
|
48
|
-
uid: import("@yume-chan/struct").NumberField<number>;
|
|
49
|
-
gid: import("@yume-chan/struct").NumberField<number>;
|
|
50
|
-
size: import("@yume-chan/struct").NumberField<bigint>;
|
|
51
|
-
atime: import("@yume-chan/struct").NumberField<bigint>;
|
|
52
|
-
mtime: import("@yume-chan/struct").NumberField<bigint>;
|
|
53
|
-
ctime: import("@yume-chan/struct").NumberField<bigint>;
|
|
54
|
-
}> & {
|
|
55
|
-
readonly type: LinuxFileType;
|
|
56
|
-
readonly permission: number;
|
|
57
|
-
}>;
|
|
58
|
-
/**
|
|
59
|
-
* Checks if `path` is a directory, or a symbolic link to a directory.
|
|
60
|
-
*
|
|
61
|
-
* This uses `lstat` internally, thus works on all Android versions.
|
|
62
|
-
*/
|
|
63
|
-
isDirectory(path: string): Promise<boolean>;
|
|
64
|
-
opendir(path: string): AsyncGenerator<AdbSyncEntry, void, void>;
|
|
65
|
-
readdir(path: string): Promise<AdbSyncEntry[]>;
|
|
66
|
-
/**
|
|
67
|
-
* Reads the content of a file on device.
|
|
68
|
-
*
|
|
69
|
-
* @param filename The full path of the file on device to read.
|
|
70
|
-
* @returns A `ReadableStream` that contains the file content.
|
|
71
|
-
*/
|
|
72
|
-
read(filename: string): ReadableStream<Uint8Array>;
|
|
73
|
-
/**
|
|
74
|
-
* Writes a file on device. If the file name already exists, it will be overwritten.
|
|
75
|
-
*
|
|
76
|
-
* @param options The content and options of the file to write.
|
|
77
|
-
*/
|
|
78
|
-
write(options: AdbSyncWriteOptions): Promise<void>;
|
|
79
|
-
lockSocket(): Promise<AdbSyncSocketLocked>;
|
|
80
|
-
dispose(): Promise<void>;
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAI9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG5D;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS5C;AAED,MAAM,WAAW,mBAAmB;IAChC,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,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,OAAO;;IAChB,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;IACpB,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;IAQjC,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAED,IAAI,uBAAuB,IAAI,OAAO,CAErC;gBAEW,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS;IAevC;;;;OAIG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/C;;;;OAIG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;IAQvB;;;;OAIG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASjD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;IAIzD,OAAO,CAAC,IAAI,EAAE,MAAM;IAQ1B;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC;IAIlD;;;;OAIG;IACG,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxD,UAAU,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI1C,OAAO;CAGV"}
|