@efffrida/rpc 0.0.34 → 0.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"FridaRpcClient.d.ts","sourceRoot":"","sources":["../../src/frida/FridaRpcClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,gBAAgB,MAAM,sCAAsC,CAAC;AAIzE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAO,MAAM,CAAC,MAAM,CAC9C,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC7B,KAAK,EACL,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAiE9D,CAAC;AAEN;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CACxC,SAAS,CAAC,QAAQ,EAClB,KAAK,EACL,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC,gBAAgB,CACI,CAAC"}
1
+ {"version":3,"file":"FridaRpcClient.d.ts","sourceRoot":"","sources":["../../src/frida/FridaRpcClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,gBAAgB,MAAM,sCAAsC,CAAC;AAIzE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAO,MAAM,CAAC,MAAM,CAC9C,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC7B,KAAK,EACL,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAmE9D,CAAC;AAEN;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CACxC,SAAS,CAAC,QAAQ,EAClB,KAAK,EACL,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC,gBAAgB,CACI,CAAC"}
@@ -31,7 +31,7 @@ export const makeProtocolFrida = () => RpcClient.Protocol.make(Effect.fnUntraced
31
31
  yield* Effect.addFinalizer(() => Effect.sync(() => delete rpc.exports[exportName]));
32
32
  rpc.exports[exportName] = data => {
33
33
  try {
34
- const responses = parser.decode(data);
34
+ const responses = parser.decode(typeof data === "string" ? data : Uint8Array.from(Object.values(data)));
35
35
  if (responses.length === 0) return Promise.resolve();
36
36
  let i = 0;
37
37
  return Effect.whileLoop({
@@ -1 +1 @@
1
- {"version":3,"file":"FridaRpcClient.js","names":["Crypto","Effect","Function","Layer","RpcClient","RpcClientError","RpcSerialization","constants","makeProtocolFrida","Protocol","make","fnUntraced","writeResponse","clientIds","serialization","crypto","encoder","TextEncoder","parser","makeUnsafe","requestClientMap","Map","exportName","randomUUIDv4","pipe","orDie","connectionRequest","nodeRpcClientMakeConnectionRequestForServer","broadcast","response","forEach","id","discard","addFinalizer","sync","rpc","exports","data","responses","decode","length","Promise","resolve","i","whileLoop","step","constVoid","while","body","clientId","get","requestId","_tag","delete","runPromise","defect","error","reason","RpcClientDefect","message","cause","send","supportsAck","supportsTransferables","request","set","encoded","encode","undefined","void","transformed","buffer","layerProtocolFrida","effect"],"sources":["../../src/frida/FridaRpcClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FridaRpcClient.js","names":["Crypto","Effect","Function","Layer","RpcClient","RpcClientError","RpcSerialization","constants","makeProtocolFrida","Protocol","make","fnUntraced","writeResponse","clientIds","serialization","crypto","encoder","TextEncoder","parser","makeUnsafe","requestClientMap","Map","exportName","randomUUIDv4","pipe","orDie","connectionRequest","nodeRpcClientMakeConnectionRequestForServer","broadcast","response","forEach","id","discard","addFinalizer","sync","rpc","exports","data","responses","decode","Uint8Array","from","Object","values","length","Promise","resolve","i","whileLoop","step","constVoid","while","body","clientId","get","requestId","_tag","delete","runPromise","defect","error","reason","RpcClientDefect","message","cause","send","supportsAck","supportsTransferables","request","set","encoded","encode","undefined","void","transformed","buffer","layerProtocolFrida","effect"],"sources":["../../src/frida/FridaRpcClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -85,7 +85,7 @@ export const makeProtocolFrida = () => Effect.gen(function* () {
85
85
  if (newClientPredicate(message)) return onClientConnect(message);
86
86
  if (clientMessagePredicate(message) && Option.isSome(data)) return onMessage(message, data.value);
87
87
  return Effect.void;
88
- }).pipe(Effect.forkScoped);
88
+ }).pipe(Effect.tapError(Effect.logError), Effect.forkScoped);
89
89
  return yield* RpcServer.Protocol.make(_writeRequest => {
90
90
  writeRequest = _writeRequest;
91
91
  return Effect.succeed({
@@ -93,7 +93,7 @@ export const makeProtocolFrida = () => Effect.gen(function* () {
93
93
  send: (clientId, response) => {
94
94
  const client = clients.get(clientId);
95
95
  if (!client) return Effect.void;
96
- return Effect.sync(() => client.write(response));
96
+ return client.write(response);
97
97
  },
98
98
  end(_clientId) {
99
99
  return Effect.void;
@@ -1 +1 @@
1
- {"version":3,"file":"FridaRpcServer.js","names":["Effect","Function","Layer","Option","Predicate","Queue","Stream","String","RpcMessage","RpcSerialization","RpcServer","FridaScript","constants","makeProtocolFrida","gen","serialization","script","disconnects","unbounded","parser","makeUnsafe","encoder","TextEncoder","clientId","clientIds","Set","clientIdsByExports","Map","clients","stripPrefix","replace","nodeRpcClientConnectionRequestMessagePrefix","newClientPredicate","compose","isString","startsWith","clientMessagePredicate","message","has","writeRequest","makeRawWriter","exportName","data","transformed","encode","callExport","pipe","orDie","onClientConnect","writeRaw","write","response","encoded","undefined","void","cause","ResponseDefectEncoded","id","set","add","onMessage","get","decoded","decode","length","i","whileLoop","while","step","constVoid","body","runForEach","stream","isSome","value","forkScoped","Protocol","make","_writeRequest","succeed","send","client","sync","end","_clientId","initialMessage","succeedNone","supportsAck","supportsTransferables","supportsSpanPropagation","layerProtocolFrida","effect"],"sources":["../../src/node/FridaRpcServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FridaRpcServer.js","names":["Effect","Function","Layer","Option","Predicate","Queue","Stream","String","RpcMessage","RpcSerialization","RpcServer","FridaScript","constants","makeProtocolFrida","gen","serialization","script","disconnects","unbounded","parser","makeUnsafe","encoder","TextEncoder","clientId","clientIds","Set","clientIdsByExports","Map","clients","stripPrefix","replace","nodeRpcClientConnectionRequestMessagePrefix","newClientPredicate","compose","isString","startsWith","clientMessagePredicate","message","has","writeRequest","makeRawWriter","exportName","data","transformed","encode","callExport","pipe","orDie","onClientConnect","writeRaw","write","response","encoded","undefined","void","cause","ResponseDefectEncoded","id","set","add","onMessage","get","decoded","decode","length","i","whileLoop","while","step","constVoid","body","runForEach","stream","isSome","value","tapError","logError","forkScoped","Protocol","make","_writeRequest","succeed","send","client","end","_clientId","sync","initialMessage","succeedNone","supportsAck","supportsTransferables","supportsSpanPropagation","layerProtocolFrida","effect"],"sources":["../../src/node/FridaRpcServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@efffrida/rpc",
3
- "version": "0.0.34",
3
+ "version": "0.0.36",
4
4
  "description": "effect rpc-frida",
5
5
  "keywords": [
6
6
  "effect-ts",
@@ -38,17 +38,17 @@
38
38
  "provenance": true
39
39
  },
40
40
  "dependencies": {
41
- "@efffrida/frida-tools": "0.0.32",
42
- "@efffrida/platform": "0.0.24",
43
- "@efffrida/polyfills": "0.0.10"
41
+ "@efffrida/frida-tools": "0.0.33",
42
+ "@efffrida/platform": "0.0.25",
43
+ "@efffrida/polyfills": "0.0.11"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@effect/platform-node": "4.0.0-beta.69",
47
47
  "@effect/vitest": "4.0.0-beta.69",
48
- "@types/frida-gum": "19.1.0",
48
+ "@types/frida-gum": "19.4.0",
49
49
  "@types/node": "25.9.1",
50
50
  "effect": "4.0.0-beta.69",
51
- "frida": "17.9.11",
51
+ "frida": "17.10.1",
52
52
  "ioredis": "5.11.0",
53
53
  "vite": "8.0.14",
54
54
  "vitest": "4.1.7"
@@ -45,9 +45,11 @@ export const makeProtocolFrida = (): Effect.Effect<
45
45
  Effect.forEach(clientIds, (id) => writeResponse(id, response), { discard: true });
46
46
 
47
47
  yield* Effect.addFinalizer(() => Effect.sync(() => delete rpc.exports[exportName]));
48
- rpc.exports[exportName] = (data: string | Uint8Array): Promise<void> => {
48
+ rpc.exports[exportName] = (data: string | Record<string, number>): Promise<void> => {
49
49
  try {
50
- const responses = parser.decode(data) as Array<RpcMessage.FromServerEncoded>;
50
+ const responses = parser.decode(
51
+ typeof data === "string" ? data : Uint8Array.from(Object.values(data))
52
+ ) as Array<RpcMessage.FromServerEncoded>;
51
53
  if (responses.length === 0) return Promise.resolve();
52
54
  let i = 0;
53
55
  return Effect.whileLoop({
@@ -46,7 +46,7 @@ export const makeProtocolFrida = (): Effect.Effect<
46
46
  const clients = new Map<
47
47
  number,
48
48
  {
49
- readonly write: (bytes: RpcMessage.FromServerEncoded) => void;
49
+ readonly write: (bytes: RpcMessage.FromServerEncoded) => Effect.Effect<void>;
50
50
  }
51
51
  >();
52
52
 
@@ -112,7 +112,7 @@ export const makeProtocolFrida = (): Effect.Effect<
112
112
  if (newClientPredicate(message)) return onClientConnect(message);
113
113
  if (clientMessagePredicate(message) && Option.isSome(data)) return onMessage(message, data.value);
114
114
  return Effect.void;
115
- }).pipe(Effect.forkScoped);
115
+ }).pipe(Effect.tapError(Effect.logError), Effect.forkScoped);
116
116
 
117
117
  return yield* RpcServer.Protocol.make((_writeRequest) => {
118
118
  writeRequest = _writeRequest;
@@ -121,7 +121,7 @@ export const makeProtocolFrida = (): Effect.Effect<
121
121
  send: (clientId, response) => {
122
122
  const client = clients.get(clientId);
123
123
  if (!client) return Effect.void;
124
- return Effect.sync(() => client.write(response));
124
+ return client.write(response);
125
125
  },
126
126
  end(_clientId) {
127
127
  return Effect.void;