@efffrida/il2cpp-bridge 0.0.25 → 0.0.27

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.
@@ -5,7 +5,13 @@
5
5
  import "frida-il2cpp-bridge";
6
6
  import type * as Scope from "effect/Scope";
7
7
  import * as Cause from "effect/Cause";
8
+ import * as Context from "effect/Context";
8
9
  import * as Effect from "effect/Effect";
10
+ /**
11
+ * @since 1.0.0
12
+ * @category Cache
13
+ */
14
+ export declare const CacheCapacity: Context.Reference<number>;
9
15
  /**
10
16
  * @since 1.0.0
11
17
  * @category Assembly
@@ -15,7 +21,7 @@ export declare const assembly: (name: string) => Effect.Effect<Il2Cpp.Assembly,
15
21
  * @since 1.0.0
16
22
  * @category Assembly
17
23
  */
18
- export declare const tryAssembly: (name: string) => Effect.Effect<Il2Cpp.Assembly, Cause.NoSuchElementException, never>;
24
+ export declare const tryAssembly: (name: string) => Effect.Effect<Il2Cpp.Assembly, Cause.NoSuchElementError, never>;
19
25
  /**
20
26
  * @since 1.0.0
21
27
  * @category Assembly
@@ -1 +1 @@
1
- {"version":3,"file":"Assembly.d.ts","sourceRoot":"","sources":["../src/Assembly.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAChC,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAI7D,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,QAAQ,EAAE,KAAK,EAAE,KAAK,CAGvE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,WAAW,EAAE,KAAK,EAAE,KAAK,CAG7E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAGnE,CAAC"}
1
+ {"version":3,"file":"Assembly.d.ts","sourceRoot":"","sources":["../src/Assembly.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAGnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAChC,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAIxD,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,QAAQ,EAAE,KAAK,EAAE,KAAK,CAGvE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,WAAW,EAAE,KAAK,EAAE,KAAK,CAG7E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAGnE,CAAC"}
package/dist/Assembly.js CHANGED
@@ -3,9 +3,17 @@
3
3
  * @category Assembly
4
4
  */
5
5
  import "frida-il2cpp-bridge";
6
+ import * as Cache from "effect/Cache";
6
7
  import * as Cause from "effect/Cause";
8
+ import * as Context from "effect/Context";
7
9
  import * as Effect from "effect/Effect";
8
- import * as Equivalence from "effect/Equivalence";
10
+ /**
11
+ * @since 1.0.0
12
+ * @category Cache
13
+ */
14
+ export const CacheCapacity = /*#__PURE__*/Context.Reference("@efffrida/il2cpp-bridge/CacheCapacity", {
15
+ defaultValue: () => 100
16
+ });
9
17
  /**
10
18
  * @since 1.0.0
11
19
  * @category Assembly
@@ -17,18 +25,24 @@ export const assembly = name => Effect.sync(() => Il2Cpp.domain.assembly(name));
17
25
  */
18
26
  export const tryAssembly = name => Effect.try({
19
27
  try: () => Il2Cpp.domain.tryAssembly(name),
20
- catch: () => new Cause.NoSuchElementException(`No assembly with name ${name}`)
21
- }).pipe(Effect.flatMap(Effect.fromNullable));
28
+ catch: () => new Cause.NoSuchElementError(`No assembly with name ${name}`)
29
+ }).pipe(Effect.flatMap(Effect.fromNullishOr));
22
30
  /**
23
31
  * @since 1.0.0
24
32
  * @category Assembly
25
33
  */
26
- export const assemblyCached = /*#__PURE__*/Effect.cachedFunction(assembly, Equivalence.string);
34
+ export const assemblyCached = /*#__PURE__*/CacheCapacity.pipe(/*#__PURE__*/Effect.flatMap(capacity => Cache.make({
35
+ capacity,
36
+ lookup: assembly
37
+ })), /*#__PURE__*/Effect.map(cache => name => Cache.get(cache, name)));
27
38
  /**
28
39
  * @since 1.0.0
29
40
  * @category Assembly
30
41
  */
31
- export const tryAssemblyCached = /*#__PURE__*/Effect.cachedFunction(tryAssembly, Equivalence.string);
42
+ export const tryAssemblyCached = /*#__PURE__*/CacheCapacity.pipe(/*#__PURE__*/Effect.flatMap(capacity => Cache.make({
43
+ capacity,
44
+ lookup: tryAssembly
45
+ })), /*#__PURE__*/Effect.map(cache => name => Cache.get(cache, name)));
32
46
  /**
33
47
  * @since 1.0.0
34
48
  * @category Assembly
@@ -1 +1 @@
1
- {"version":3,"file":"Assembly.js","names":["Cause","Effect","Equivalence","assembly","name","sync","Il2Cpp","domain","tryAssembly","try","catch","NoSuchElementException","pipe","flatMap","fromNullable","assemblyCached","cachedFunction","string","tryAssemblyCached","attach","acquireRelease","thread","detach"],"sources":["../src/Assembly.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;AAKA,OAAO,qBAAqB;AAG5B,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AAEjD;;;;AAIA,OAAO,MAAMC,QAAQ,GAAIC,IAAY,IACjCH,MAAM,CAACI,IAAI,CAAC,MAAMC,MAAM,CAACC,MAAM,CAACJ,QAAQ,CAACC,IAAI,CAAC,CAAC;AAEnD;;;;AAIA,OAAO,MAAMI,WAAW,GAAIJ,IAAY,IACpCH,MAAM,CAACQ,GAAG,CAAC;EACPA,GAAG,EAAEA,CAAA,KAAMH,MAAM,CAACC,MAAM,CAACC,WAAW,CAACJ,IAAI,CAAC;EAC1CM,KAAK,EAAEA,CAAA,KAAM,IAAIV,KAAK,CAACW,sBAAsB,CAAC,yBAAyBP,IAAI,EAAE;CAChF,CAAC,CAACQ,IAAI,CAACX,MAAM,CAACY,OAAO,CAACZ,MAAM,CAACa,YAAY,CAAC,CAAC;AAEhD;;;;AAIA,OAAO,MAAMC,cAAc,gBAAiDd,MAAM,CAACe,cAAc,CAC7Fb,QAAQ,EACRD,WAAW,CAACe,MAAM,CACrB;AAED;;;;AAIA,OAAO,MAAMC,iBAAiB,gBAAoDjB,MAAM,CAACe,cAAc,CACnGR,WAAW,EACXN,WAAW,CAACe,MAAM,CACrB;AAED;;;;AAIA,OAAO,MAAME,MAAM,gBAAqDlB,MAAM,CAACmB,cAAc,cACzFnB,MAAM,CAACI,IAAI,CAAC,MAAMC,MAAM,CAACC,MAAM,CAACY,MAAM,EAAE,CAAC,EACxCE,MAAM,IAAKpB,MAAM,CAACI,IAAI,CAAC,MAAMgB,MAAM,CAACC,MAAM,EAAE,CAAC,CACjD","ignoreList":[]}
1
+ {"version":3,"file":"Assembly.js","names":["Cache","Cause","Context","Effect","CacheCapacity","Reference","defaultValue","assembly","name","sync","Il2Cpp","domain","tryAssembly","try","catch","NoSuchElementError","pipe","flatMap","fromNullishOr","assemblyCached","capacity","make","lookup","map","cache","get","tryAssemblyCached","attach","acquireRelease","thread","detach"],"sources":["../src/Assembly.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;AAKA,OAAO,qBAAqB;AAI5B,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC;;;;AAIA,OAAO,MAAMC,aAAa,gBAA8BF,OAAO,CAACG,SAAS,CACrE,uCAAuC,EACvC;EAAEC,YAAY,EAAEA,CAAA,KAAM;AAAG,CAAE,CAC9B;AAED;;;;AAIA,OAAO,MAAMC,QAAQ,GAAIC,IAAY,IACjCL,MAAM,CAACM,IAAI,CAAC,MAAMC,MAAM,CAACC,MAAM,CAACJ,QAAQ,CAACC,IAAI,CAAC,CAAC;AAEnD;;;;AAIA,OAAO,MAAMI,WAAW,GAAIJ,IAAY,IACpCL,MAAM,CAACU,GAAG,CAAC;EACPA,GAAG,EAAEA,CAAA,KAAMH,MAAM,CAACC,MAAM,CAACC,WAAW,CAACJ,IAAI,CAAC;EAC1CM,KAAK,EAAEA,CAAA,KAAM,IAAIb,KAAK,CAACc,kBAAkB,CAAC,yBAAyBP,IAAI,EAAE;CAC5E,CAAC,CAACQ,IAAI,CAACb,MAAM,CAACc,OAAO,CAACd,MAAM,CAACe,aAAa,CAAC,CAAC;AAEjD;;;;AAIA,OAAO,MAAMC,cAAc,gBAAiDf,aAAa,CAACY,IAAI,cAC1Fb,MAAM,CAACc,OAAO,CAAEG,QAAQ,IAAKpB,KAAK,CAACqB,IAAI,CAAC;EAAED,QAAQ;EAAEE,MAAM,EAAEf;AAAQ,CAAE,CAAC,CAAC,eACxEJ,MAAM,CAACoB,GAAG,CAAEC,KAAK,IAAMhB,IAAY,IAAKR,KAAK,CAACyB,GAAG,CAACD,KAAK,EAAEhB,IAAI,CAAC,CAAC,CAClE;AAED;;;;AAIA,OAAO,MAAMkB,iBAAiB,gBAAoDtB,aAAa,CAACY,IAAI,cAChGb,MAAM,CAACc,OAAO,CAAEG,QAAQ,IAAKpB,KAAK,CAACqB,IAAI,CAAC;EAAED,QAAQ;EAAEE,MAAM,EAAEV;AAAW,CAAE,CAAC,CAAC,eAC3ET,MAAM,CAACoB,GAAG,CAAEC,KAAK,IAAMhB,IAAY,IAAKR,KAAK,CAACyB,GAAG,CAACD,KAAK,EAAEhB,IAAI,CAAC,CAAC,CAClE;AAED;;;;AAIA,OAAO,MAAMmB,MAAM,gBAAqDxB,MAAM,CAACyB,cAAc,cACzFzB,MAAM,CAACM,IAAI,CAAC,MAAMC,MAAM,CAACC,MAAM,CAACgB,MAAM,EAAE,CAAC,EACxCE,MAAM,IAAK1B,MAAM,CAACM,IAAI,CAAC,MAAMoB,MAAM,CAACC,MAAM,EAAE,CAAC,CACjD","ignoreList":[]}
package/dist/Class.d.ts CHANGED
@@ -5,6 +5,12 @@
5
5
  import "frida-il2cpp-bridge";
6
6
  import * as Cause from "effect/Cause";
7
7
  import * as Effect from "effect/Effect";
8
+ export {
9
+ /**
10
+ * @since 1.0.0
11
+ * @category Cache
12
+ */
13
+ CacheCapacity, } from "./Assembly.ts";
8
14
  /**
9
15
  * @since 1.0.0
10
16
  * @category Class
@@ -20,7 +26,7 @@ class_ as class, };
20
26
  * @since 1.0.0
21
27
  * @category Class
22
28
  */
23
- export declare const tryClass: ((name: string) => (image: Il2Cpp.Image) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>) & ((image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>);
29
+ export declare const tryClass: ((name: string) => (image: Il2Cpp.Image) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementError, never>) & ((image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementError, never>);
24
30
  /**
25
31
  * @since 1.0.0
26
32
  * @category Class
@@ -30,7 +36,7 @@ export declare const classCached: Effect.Effect<(image: Il2Cpp.Image, name: stri
30
36
  * @since 1.0.0
31
37
  * @category Class
32
38
  */
33
- export declare const tryClassCached: Effect.Effect<(image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>, never, never>;
39
+ export declare const tryClassCached: Effect.Effect<(image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementError, never>, never, never>;
34
40
  /**
35
41
  * @since 1.0.0
36
42
  * @category Class
@@ -45,7 +51,7 @@ export declare const field: ((name: string) => <T extends Il2Cpp.Field.Type = Il
45
51
  * @since 1.0.0
46
52
  * @category Class
47
53
  */
48
- export declare const tryField: ((name: string) => <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never>) & (<T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never>);
54
+ export declare const tryField: ((name: string) => <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementError, never>) & (<T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementError, never>);
49
55
  /**
50
56
  * @since 1.0.0
51
57
  * @category Class
@@ -55,7 +61,7 @@ export declare const fieldCached: Effect.Effect<(<T extends Il2Cpp.Field.Type =
55
61
  * @since 1.0.0
56
62
  * @category Class
57
63
  */
58
- export declare const tryFieldCached: Effect.Effect<(<T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never>), never, never>;
64
+ export declare const tryFieldCached: Effect.Effect<(<T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementError, never>), never, never>;
59
65
  /**
60
66
  * @since 1.0.0
61
67
  * @category Class
@@ -70,7 +76,7 @@ export declare const method: ((name: string, parameterCount?: number | undefined
70
76
  * @since 1.0.0
71
77
  * @category Class
72
78
  */
73
- export declare const tryMethod: ((name: string, parameterCount?: number | undefined) => <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never>) & (<T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(klass: Il2Cpp.Class, name: string, parameterCount?: number | undefined) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never>);
79
+ export declare const tryMethod: ((name: string, parameterCount?: number | undefined) => <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementError, never>) & (<T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(klass: Il2Cpp.Class, name: string, parameterCount?: number | undefined) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementError, never>);
74
80
  /**
75
81
  * @since 1.0.0
76
82
  * @category Class
@@ -80,7 +86,7 @@ export declare const methodCached: Effect.Effect<(<T extends Il2Cpp.Method.Retur
80
86
  * @since 1.0.0
81
87
  * @category Class
82
88
  */
83
- export declare const tryMethodCached: Effect.Effect<(<T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(klass: Il2Cpp.Class, name: string, parameterCount?: number | undefined) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never>), never, never>;
89
+ export declare const tryMethodCached: Effect.Effect<(<T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(klass: Il2Cpp.Class, name: string, parameterCount?: number | undefined) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementError, never>), never, never>;
84
90
  /**
85
91
  * @since 1.0.0
86
92
  * @category Class
@@ -90,7 +96,7 @@ export declare const nested: ((name: string) => (klass: Il2Cpp.Class) => Effect.
90
96
  * @since 1.0.0
91
97
  * @category Class
92
98
  */
93
- export declare const tryNested: ((name: string) => (klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>) & ((klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>);
99
+ export declare const tryNested: ((name: string) => (klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementError, never>) & ((klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementError, never>);
94
100
  /**
95
101
  * @since 1.0.0
96
102
  * @category Class
@@ -100,5 +106,5 @@ export declare const nestedCached: Effect.Effect<(klass: Il2Cpp.Class, name: str
100
106
  * @since 1.0.0
101
107
  * @category Class
102
108
  */
103
- export declare const tryNestedCached: Effect.Effect<(klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>, never, never>;
109
+ export declare const tryNestedCached: Effect.Effect<(klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementError, never>, never, never>;
104
110
  //# sourceMappingURL=Class.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../src/Class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../src/Class.ts"],"names":[],"mappings":"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"}
package/dist/Class.js CHANGED
@@ -3,12 +3,24 @@
3
3
  * @category Class
4
4
  */
5
5
  import "frida-il2cpp-bridge";
6
+ import * as Cache from "effect/Cache";
6
7
  import * as Cause from "effect/Cause";
8
+ import * as Data from "effect/Data";
7
9
  import * as Effect from "effect/Effect";
8
- import * as Equivalence from "effect/Equivalence";
9
10
  import * as Function from "effect/Function";
10
- import * as Tuple from "effect/Tuple";
11
- import * as Il2CppEquivalence from "./Equivalence.js";
11
+ import { CacheCapacity } from "./Assembly.js";
12
+ export {
13
+ /**
14
+ * @since 1.0.0
15
+ * @category Cache
16
+ */
17
+ CacheCapacity } from "./Assembly.js";
18
+ /** @internal */
19
+ class ImageNameKey extends Data.Class {}
20
+ /** @internal */
21
+ class ClassNameKey extends Data.Class {}
22
+ /** @internal */
23
+ class MethodKey extends Data.Class {}
12
24
  /**
13
25
  * @since 1.0.0
14
26
  * @category Class
@@ -26,18 +38,30 @@ class_ as class };
26
38
  */
27
39
  export const tryClass = /*#__PURE__*/Function.dual(2, (image, name) => Effect.try({
28
40
  try: () => image.tryClass(name),
29
- catch: () => new Cause.NoSuchElementException(`No class with name ${name}`)
30
- }).pipe(Effect.flatMap(Effect.fromNullable)));
41
+ catch: () => new Cause.NoSuchElementError(`No class with name ${name}`)
42
+ }).pipe(Effect.flatMap(Effect.fromNullishOr)));
31
43
  /**
32
44
  * @since 1.0.0
33
45
  * @category Class
34
46
  */
35
- export const classCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(class_), /*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.image, Equivalence.string)), Function.untupled);
47
+ export const classCached = /*#__PURE__*/CacheCapacity.pipe(/*#__PURE__*/Effect.flatMap(capacity => Cache.make({
48
+ capacity,
49
+ lookup: key => class_(key.image, key.name)
50
+ })), /*#__PURE__*/Effect.map(cache => (image, name) => Cache.get(cache, new ImageNameKey({
51
+ image,
52
+ name
53
+ }))));
36
54
  /**
37
55
  * @since 1.0.0
38
56
  * @category Class
39
57
  */
40
- export const tryClassCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(tryClass), /*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.image, Equivalence.string)), Function.untupled);
58
+ export const tryClassCached = /*#__PURE__*/CacheCapacity.pipe(/*#__PURE__*/Effect.flatMap(capacity => Cache.make({
59
+ lookup: key => tryClass(key.image, key.name),
60
+ capacity
61
+ })), /*#__PURE__*/Effect.map(cache => (image, name) => Cache.get(cache, new ImageNameKey({
62
+ image,
63
+ name
64
+ }))));
41
65
  /**
42
66
  * @since 1.0.0
43
67
  * @category Class
@@ -54,18 +78,30 @@ export const field = /*#__PURE__*/Function.dual(2, (klass, name) => Effect.sync(
54
78
  */
55
79
  export const tryField = /*#__PURE__*/Function.dual(2, (klass, name) => Effect.try({
56
80
  try: () => klass.field(name),
57
- catch: () => new Cause.NoSuchElementException(`No field with name ${name}`)
58
- }).pipe(Effect.flatMap(Effect.fromNullable)));
81
+ catch: () => new Cause.NoSuchElementError(`No field with name ${name}`)
82
+ }).pipe(Effect.flatMap(Effect.fromNullishOr)));
59
83
  /**
60
84
  * @since 1.0.0
61
85
  * @category Class
62
86
  */
63
- export const fieldCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(field), /*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)), tupled => Function.untupled(tupled));
87
+ export const fieldCached = /*#__PURE__*/CacheCapacity.pipe(/*#__PURE__*/Effect.flatMap(capacity => Cache.make({
88
+ lookup: key => field(key.klass, key.name),
89
+ capacity
90
+ })), /*#__PURE__*/Effect.map(cache => (klass, name) => Cache.get(cache, new ClassNameKey({
91
+ klass,
92
+ name
93
+ }))));
64
94
  /**
65
95
  * @since 1.0.0
66
96
  * @category Class
67
97
  */
68
- export const tryFieldCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(tryField), /*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)), tupled => Function.untupled(tupled));
98
+ export const tryFieldCached = /*#__PURE__*/CacheCapacity.pipe(/*#__PURE__*/Effect.flatMap(capacity => Cache.make({
99
+ lookup: key => tryField(key.klass, key.name),
100
+ capacity
101
+ })), /*#__PURE__*/Effect.map(cache => (klass, name) => Cache.get(cache, new ClassNameKey({
102
+ klass,
103
+ name
104
+ }))));
69
105
  /**
70
106
  * @since 1.0.0
71
107
  * @category Class
@@ -82,18 +118,32 @@ export const method = /*#__PURE__*/Function.dual(_arguments => typeof _arguments
82
118
  */
83
119
  export const tryMethod = /*#__PURE__*/Function.dual(_arguments => typeof _arguments[1] === "string", (klass, name, parameterCount) => Effect.try({
84
120
  try: () => klass.tryMethod(name, parameterCount),
85
- catch: () => new Cause.NoSuchElementException(`No method with name ${name}`)
86
- }).pipe(Effect.flatMap(Effect.fromNullable)));
121
+ catch: () => new Cause.NoSuchElementError(`No method with name ${name}`)
122
+ }).pipe(Effect.flatMap(Effect.fromNullishOr)));
87
123
  /**
88
124
  * @since 1.0.0
89
125
  * @category Class
90
126
  */
91
- export const methodCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(method), /*#__PURE__*/Equivalence.mapInput(/*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string, /*#__PURE__*/Equivalence.strict()), tuple => Tuple.make(tuple[0], tuple[1], tuple[2] ?? undefined))), tupled => Function.untupled(tupled));
127
+ export const methodCached = /*#__PURE__*/CacheCapacity.pipe(/*#__PURE__*/Effect.flatMap(capacity => Cache.make({
128
+ lookup: key => method(key.klass, key.name, key.parameterCount),
129
+ capacity
130
+ })), /*#__PURE__*/Effect.map(cache => (klass, name, parameterCount) => Cache.get(cache, new MethodKey({
131
+ klass,
132
+ name,
133
+ parameterCount
134
+ }))));
92
135
  /**
93
136
  * @since 1.0.0
94
137
  * @category Class
95
138
  */
96
- export const tryMethodCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(tryMethod), /*#__PURE__*/Equivalence.mapInput(/*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string, /*#__PURE__*/Equivalence.strict()), tuple => Tuple.make(tuple[0], tuple[1], tuple[2] ?? undefined))), tupled => Function.untupled(tupled));
139
+ export const tryMethodCached = /*#__PURE__*/CacheCapacity.pipe(/*#__PURE__*/Effect.flatMap(capacity => Cache.make({
140
+ lookup: key => tryMethod(key.klass, key.name, key.parameterCount),
141
+ capacity
142
+ })), /*#__PURE__*/Effect.map(cache => (klass, name, parameterCount) => Cache.get(cache, new MethodKey({
143
+ klass,
144
+ name,
145
+ parameterCount
146
+ }))));
97
147
  /**
98
148
  * @since 1.0.0
99
149
  * @category Class
@@ -105,16 +155,28 @@ export const nested = /*#__PURE__*/Function.dual(2, (klass, name) => Effect.sync
105
155
  */
106
156
  export const tryNested = /*#__PURE__*/Function.dual(2, (klass, name) => Effect.try({
107
157
  try: () => klass.tryNested(name),
108
- catch: () => new Cause.NoSuchElementException(`No nested class with name ${name}`)
109
- }).pipe(Effect.flatMap(Effect.fromNullable)));
158
+ catch: () => new Cause.NoSuchElementError(`No nested class with name ${name}`)
159
+ }).pipe(Effect.flatMap(Effect.fromNullishOr)));
110
160
  /**
111
161
  * @since 1.0.0
112
162
  * @category Class
113
163
  */
114
- export const nestedCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(nested), /*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)), Function.untupled);
164
+ export const nestedCached = /*#__PURE__*/CacheCapacity.pipe(/*#__PURE__*/Effect.flatMap(capacity => Cache.make({
165
+ capacity,
166
+ lookup: key => nested(key.klass, key.name)
167
+ })), /*#__PURE__*/Effect.map(cache => (klass, name) => Cache.get(cache, new ClassNameKey({
168
+ klass,
169
+ name
170
+ }))));
115
171
  /**
116
172
  * @since 1.0.0
117
173
  * @category Class
118
174
  */
119
- export const tryNestedCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(tryNested), /*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)), Function.untupled);
175
+ export const tryNestedCached = /*#__PURE__*/CacheCapacity.pipe(/*#__PURE__*/Effect.flatMap(capacity => Cache.make({
176
+ lookup: key => tryNested(key.klass, key.name),
177
+ capacity
178
+ })), /*#__PURE__*/Effect.map(cache => (klass, name) => Cache.get(cache, new ClassNameKey({
179
+ klass,
180
+ name
181
+ }))));
120
182
  //# sourceMappingURL=Class.js.map
package/dist/Class.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Class.js","names":["Cause","Effect","Equivalence","Function","Tuple","Il2CppEquivalence","class_","dual","image","name","sync","class","tryClass","try","catch","NoSuchElementException","pipe","flatMap","fromNullable","classCached","map","cachedFunction","tupled","tuple","string","untupled","tryClassCached","fields","klass","field","tryField","fieldCached","tryFieldCached","methods","method","_arguments","parameterCount","tryMethod","methodCached","mapInput","strict","make","undefined","tryMethodCached","nested","tryNested","nestedCached","tryNestedCached"],"sources":["../src/Class.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Class.js","names":["Cache","Cause","Data","Effect","Function","CacheCapacity","ImageNameKey","Class","ClassNameKey","MethodKey","class_","dual","image","name","sync","class","tryClass","try","catch","NoSuchElementError","pipe","flatMap","fromNullishOr","classCached","capacity","make","lookup","key","map","cache","get","tryClassCached","fields","klass","field","tryField","fieldCached","tryFieldCached","methods","method","_arguments","parameterCount","tryMethod","methodCached","tryMethodCached","nested","tryNested","nestedCached","tryNestedCached"],"sources":["../src/Class.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Extensions.d.ts","sourceRoot":"","sources":["../src/Extensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Extensions.d.ts","sourceRoot":"","sources":["../src/Extensions.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * @category Extensions
4
4
  */
5
5
  import "frida-il2cpp-bridge";
6
- import { Array, Option, Record, pipe } from "effect";
6
+ import { Array, Option, Record, pipe, Result } from "effect";
7
7
  /**
8
8
  * @since 1.0.0
9
9
  * @category Extensions
@@ -71,9 +71,14 @@ export class Dictionary extends Il2Cpp.Object {
71
71
  return this.isNull() ? "null" : `{${[...this.entries].map(([k, v]) => `${k}: ${v}`).join(", ")}}`;
72
72
  }
73
73
  toRecord(keys) {
74
- const readKeyOptionString = key => key instanceof Il2Cpp.String ? Option.fromNullable(key.isNull() ? null : key.content) : Option.some(key.toString());
74
+ const readKeyOptionString = key => key instanceof Il2Cpp.String ? Option.fromNullOr(key.isNull() ? null : key.content) : Option.some(key.toString());
75
75
  const readValueOption = key => this.containsKey(key) ? Option.some(this.get(key)) : Option.none();
76
- return pipe(keys ?? this.keys, Array.filterMap(key => Option.product(readKeyOptionString(key), readValueOption(key))), Record.fromEntries);
76
+ return pipe(keys ?? this.keys, Array.filterMap(key => {
77
+ const maybeKey = readKeyOptionString(key);
78
+ const maybeValue = readValueOption(key);
79
+ const product = Option.product(maybeKey, maybeValue);
80
+ return Result.fromOption(product, () => void 0);
81
+ }), Record.fromEntries);
77
82
  }
78
83
  /** The Dictionary class. */
79
84
  static get class() {
@@ -1 +1 @@
1
- {"version":3,"file":"Extensions.js","names":["Array","Option","Record","pipe","Dictionary","Il2Cpp","Object","length","method","invoke","keys","array","class","generics","fromIterable","values","entries","zip","get","key","set","value","add","clear","containsKey","containsValue","find","remove","Symbol","iterator","i","toString","isNull","map","k","v","join","toRecord","readKeyOptionString","String","fromNullable","content","some","readValueOption","none","filterMap","product","fromEntries","corlib","lift","object","handle","of","keyClass","valueClass","elements","dictionary","inflate","alloc","List","capacity","index","item","contains","indexOf","insert","reverse","sort","toArray","klass","list","element"],"sources":["../src/Extensions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Extensions.js","names":["Array","Option","Record","pipe","Result","Dictionary","Il2Cpp","Object","length","method","invoke","keys","array","class","generics","fromIterable","values","entries","zip","get","key","set","value","add","clear","containsKey","containsValue","find","remove","Symbol","iterator","i","toString","isNull","map","k","v","join","toRecord","readKeyOptionString","String","fromNullOr","content","some","readValueOption","none","filterMap","maybeKey","maybeValue","product","fromOption","fromEntries","corlib","lift","object","handle","of","keyClass","valueClass","elements","dictionary","inflate","alloc","List","capacity","index","item","contains","indexOf","insert","reverse","sort","toArray","klass","list","element"],"sources":["../src/Extensions.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;AAKA,OAAO,qBAAqB;AAE5B,SAASA,KAAK,EAAEC,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAEC,MAAM,QAAQ,QAAQ;AAE5D;;;;AAIA,OAAM,MAAOC,UAIT,SAAQC,MAAM,CAACC,MAAM;EAErB;EACA,IAAWC,MAAMA,CAAA;IACb,OAAO,IAAI,CAACC,MAAM,CAAS,WAAW,CAAC,CAACC,MAAM,EAAE;EACpD;EAEA;EACA,IAAWC,IAAIA,CAAA;IACX,MAAMA,IAAI,GAAGL,MAAM,CAACM,KAAK,CAAI,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAACN,MAAM,CAAC;IACjE,IAAI,CAACC,MAAM,CAAgB,UAAU,CAAC,CAACC,MAAM,EAAE,CAACD,MAAM,CAAC,QAAQ,CAAC,CAACC,MAAM,CAACC,IAAI,EAAE,CAAC,CAAC;IAChF,OAAOX,KAAK,CAACe,YAAY,CAACJ,IAAI,CAAC;EACnC;EAEA;EACA,IAAWK,MAAMA,CAAA;IACb,MAAMA,MAAM,GAAGV,MAAM,CAACM,KAAK,CAAI,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAACN,MAAM,CAAC;IACnE,IAAI,CAACC,MAAM,CAAgB,YAAY,CAAC,CAACC,MAAM,EAAE,CAACD,MAAM,CAAC,QAAQ,CAAC,CAACC,MAAM,CAACM,MAAM,EAAE,CAAC,CAAC;IACpF,OAAOhB,KAAK,CAACe,YAAY,CAACC,MAAM,CAAC;EACrC;EAEA;EACA,IAAWC,OAAOA,CAAA;IACd,OAAOjB,KAAK,CAACkB,GAAG,CAAC,IAAI,CAACP,IAAI,EAAE,IAAI,CAACK,MAAM,CAAC;EAC5C;EAEA;EACOG,GAAGA,CAACC,GAAM;IACb,OAAO,IAAI,CAACX,MAAM,CAAI,UAAU,CAAC,CAACC,MAAM,CAACU,GAAG,CAAC;EACjD;EAEA;EACOC,GAAGA,CAACD,GAAM,EAAEE,KAAQ;IACvB,IAAI,CAACb,MAAM,CAAO,UAAU,CAAC,CAACC,MAAM,CAACU,GAAG,EAAEE,KAAK,CAAC;EACpD;EAEA;EACOC,GAAGA,CAACH,GAAM,EAAEE,KAAQ;IACvB,IAAI,CAACb,MAAM,CAAO,KAAK,CAAC,CAACC,MAAM,CAACU,GAAG,EAAEE,KAAK,CAAC;EAC/C;EAEA;EACOE,KAAKA,CAAA;IACR,IAAI,CAACf,MAAM,CAAO,OAAO,CAAC,CAACC,MAAM,EAAE;EACvC;EAEA;EACOe,WAAWA,CAACL,GAAM;IACrB,OAAO,IAAI,CAACX,MAAM,CAAU,aAAa,CAAC,CAACC,MAAM,CAACU,GAAG,CAAC;EAC1D;EAEA;EACOM,aAAaA,CAACJ,KAAQ;IACzB,OAAO,IAAI,CAACb,MAAM,CAAU,eAAe,CAAC,CAACC,MAAM,CAACY,KAAK,CAAC;EAC9D;EAEA;EACOK,IAAIA,CAACP,GAAM;IACd,OAAO,IAAI,CAACX,MAAM,CAAS,WAAW,CAAC,CAACC,MAAM,CAACU,GAAG,CAAC;EACvD;EAEA;EACOQ,MAAMA,CAACR,GAAM;IAChB,OAAO,IAAI,CAACX,MAAM,CAAU,QAAQ,CAAC,CAACC,MAAM,CAACU,GAAG,CAAC;EACrD;EAEO,EAAES,MAAM,CAACC,QAAQ,IAAC;IACrB,MAAMb,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,KAAK,IAAIc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACvB,MAAM,EAAEuB,CAAC,EAAE,EAAE;MAClC,MAAMd,OAAO,CAACc,CAAC,CAAC;IACpB;EACJ;EAEgBC,QAAQA,CAAA;IACpB,OAAO,IAAI,CAACC,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAChB,OAAO,CAAC,CAACiB,GAAG,CAAC,CAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAK,GAAGD,CAAC,KAAKC,CAAC,EAAE,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,GAAG;EACrG;EAEOC,QAAQA,CAAC3B,IAA2B;IACvC,MAAM4B,mBAAmB,GAAInB,GAAM,IAC/BA,GAAG,YAAYd,MAAM,CAACkC,MAAM,GACtBvC,MAAM,CAACwC,UAAU,CAACrB,GAAG,CAACa,MAAM,EAAE,GAAG,IAAI,GAAGb,GAAG,CAACsB,OAAO,CAAC,GACpDzC,MAAM,CAAC0C,IAAI,CAACvB,GAAG,CAACY,QAAQ,EAAE,CAAC;IAErC,MAAMY,eAAe,GAAIxB,GAAM,IAC3B,IAAI,CAACK,WAAW,CAACL,GAAG,CAAC,GAAGnB,MAAM,CAAC0C,IAAI,CAAC,IAAI,CAACxB,GAAG,CAACC,GAAG,CAAC,CAAC,GAAGnB,MAAM,CAAC4C,IAAI,EAAE;IAEtE,OAAO1C,IAAI,CACPQ,IAAI,IAAI,IAAI,CAACA,IAAI,EACjBX,KAAK,CAAC8C,SAAS,CAAE1B,GAAG,IAAI;MACpB,MAAM2B,QAAQ,GAAGR,mBAAmB,CAACnB,GAAG,CAAC;MACzC,MAAM4B,UAAU,GAAGJ,eAAe,CAACxB,GAAG,CAAC;MACvC,MAAM6B,OAAO,GAAGhD,MAAM,CAACgD,OAAO,CAACF,QAAQ,EAAEC,UAAU,CAAC;MACpD,OAAO5C,MAAM,CAAC8C,UAAU,CAACD,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,EACF/C,MAAM,CAACiD,WAAW,CACrB;EACL;EAEA;EACO,WAAWtC,KAAKA,CAAA;IACnB,OAAOP,MAAM,CAAC8C,MAAM,CAACvC,KAAK,CAAC,yCAAyC,CAAC;EACzE;EAEA;EACO,OAAOwC,IAAIA,CAGhBC,MAAqB;IACnB,OAAO,IAAIjD,UAAU,CAAOiD,MAAM,CAACC,MAAM,CAAC;EAC9C;EAEA;EACO,OAAOC,EAAEA,CACZC,QAAsB,EACtBC,UAAwB,EACxBC,QAAgC;IAEhC,MAAMC,UAAU,GAAG,IAAIvD,UAAU,CAAOA,UAAU,CAACQ,KAAK,CAACgD,OAAO,CAACJ,QAAQ,EAAEC,UAAU,CAAC,CAACI,KAAK,EAAE,CAAC;IAC/F,KAAK,MAAM,CAAC1C,GAAG,EAAEE,KAAK,CAAC,IAAIqC,QAAQ,IAAI,EAAE,EAAE;MACvCC,UAAU,CAACvC,GAAG,CAACD,GAAG,EAAEE,KAAK,CAAC;IAC9B;IAEA,OAAOsC,UAAU;EACrB;;AAGJ;;;;AAIA,OAAM,MAAOG,IAAsD,SAAQzD,MAAM,CAACC,MAAM;EACpF,IAAWyD,QAAQA,CAAA;IACf,OAAO,IAAI,CAACvD,MAAM,CAAS,cAAc,CAAC,CAACC,MAAM,EAAE;EACvD;EAEA,IAAWsD,QAAQA,CAAC1C,KAAa;IAC7B,IAAI,CAACb,MAAM,CAAC,cAAc,CAAC,CAACC,MAAM,CAACY,KAAK,CAAC;EAC7C;EAEA;EACA,IAAWd,MAAMA,CAAA;IACb,OAAO,IAAI,CAACC,MAAM,CAAS,WAAW,CAAC,CAACC,MAAM,EAAE;EACpD;EAEA;EACOS,GAAGA,CAAC8C,KAAa;IACpB,OAAO,IAAI,CAACxD,MAAM,CAAI,UAAU,CAAC,CAACC,MAAM,CAACuD,KAAK,CAAC;EACnD;EAEA;EACO5C,GAAGA,CAAC4C,KAAa,EAAE3C,KAAQ;IAC9B,IAAI,CAACb,MAAM,CAAC,UAAU,CAAC,CAACC,MAAM,CAACuD,KAAK,EAAE3C,KAAK,CAAC;EAChD;EAEA;EACOC,GAAGA,CAAC2C,IAAO;IACd,IAAI,CAACzD,MAAM,CAAC,KAAK,CAAC,CAACC,MAAM,CAACwD,IAAI,CAAC;EACnC;EAEA;EACO1C,KAAKA,CAAA;IACR,IAAI,CAACf,MAAM,CAAC,OAAO,CAAC,CAACC,MAAM,EAAE;EACjC;EAEA;EACOyD,QAAQA,CAACD,IAAO;IACnB,OAAO,IAAI,CAACzD,MAAM,CAAU,UAAU,CAAC,CAACC,MAAM,CAACwD,IAAI,CAAC;EACxD;EAEA;EACOE,OAAOA,CAACF,IAAO;IAClB,OAAO,IAAI,CAACzD,MAAM,CAAS,SAAS,CAAC,CAACC,MAAM,CAACwD,IAAI,CAAC;EACtD;EAEA;EACOG,MAAMA,CAACJ,KAAa,EAAEC,IAAO;IAChC,IAAI,CAACzD,MAAM,CAAC,QAAQ,CAAC,CAACC,MAAM,CAACuD,KAAK,EAAEC,IAAI,CAAC;EAC7C;EAEA;EACOtC,MAAMA,CAACsC,IAAO;IACjB,OAAO,IAAI,CAACzD,MAAM,CAAU,QAAQ,CAAC,CAACC,MAAM,CAACwD,IAAI,CAAC;EACtD;EAEA;EACOI,OAAOA,CAAA;IACV,IAAI,CAAC7D,MAAM,CAAC,SAAS,CAAC,CAACC,MAAM,EAAE;EACnC;EAEA;EACO6D,IAAIA,CAAA;IACP,IAAI,CAAC9D,MAAM,CAAC,MAAM,CAAC,CAACC,MAAM,EAAE;EAChC;EAEA;EACA,IAAW8D,OAAOA,CAAA;IACd,OAAO,IAAI,CAAC/D,MAAM,CAAkB,SAAS,CAAC,CAACC,MAAM,EAAE;EAC3D;EAEO,EAAEmB,MAAM,CAACC,QAAQ,IAAC;IACrB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACvB,MAAM,EAAEuB,CAAC,EAAE,EAAE;MAClC,MAAM,IAAI,CAACZ,GAAG,CAACY,CAAC,CAAC;IACrB;EACJ;EAEgBC,QAAQA,CAAA;IACpB,OAAO,IAAI,CAACwC,OAAO,CAACxC,QAAQ,EAAE;EAClC;EAEA;EACO,WAAWnB,KAAKA,CAAA;IACnB,OAAOP,MAAM,CAAC8C,MAAM,CAACvC,KAAK,CAAC,mCAAmC,CAAC;EACnE;EAEA;EACO,OAAOwC,IAAIA,CAAkDC,MAAqB;IACrF,OAAO,IAAIS,IAAI,CAAIT,MAAM,CAACC,MAAM,CAAC;EACrC;EAEA;EACO,OAAOC,EAAEA,CACZiB,KAAmB,EACnBd,QAAA,GAAiC,EAAE;IAEnC,MAAMe,IAAI,GAAG,IAAIX,IAAI,CAAIA,IAAI,CAAClD,KAAK,CAACgD,OAAO,CAACY,KAAK,CAAC,CAACX,KAAK,EAAE,CAAC;IAC3D,KAAK,MAAMa,OAAO,IAAIhB,QAAQ,EAAE;MAC5Be,IAAI,CAACnD,GAAG,CAACoD,OAAO,CAAC;IACrB;IAEA,OAAOD,IAAI;EACf","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FridaIl2cppBridge.d.ts","sourceRoot":"","sources":["../src/FridaIl2cppBridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACtC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,KACnD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAgBxB,CAAC"}
1
+ {"version":3,"file":"FridaIl2cppBridge.d.ts","sourceRoot":"","sources":["../src/FridaIl2cppBridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACtC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,KACnD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAgBxB,CAAC"}
@@ -4,15 +4,14 @@
4
4
  */
5
5
  import "frida-il2cpp-bridge";
6
6
  import * as Effect from "effect/Effect";
7
- import * as Runtime from "effect/Runtime";
8
7
  /**
9
8
  * Attaches the caller thread to Il2Cpp domain and executes the given block.
10
9
  *
11
10
  * @since 1.0.0
12
11
  */
13
12
  export const il2cppPerformEffect = /*#__PURE__*/Effect.fnUntraced(function* (effect, flag) {
14
- const runtime = yield* Effect.runtime();
15
- const runPromiseExit = Runtime.runPromiseExit(runtime);
13
+ const services = yield* Effect.context();
14
+ const runPromiseExit = Effect.runPromiseExitWith(services);
16
15
  const exit = yield* Effect.promise(abortSignal => Il2Cpp.perform(() => runPromiseExit(effect, {
17
16
  signal: abortSignal
18
17
  }), flag));
@@ -1 +1 @@
1
- {"version":3,"file":"FridaIl2cppBridge.js","names":["Effect","Runtime","il2cppPerformEffect","fnUntraced","effect","flag","runtime","runPromiseExit","exit","promise","abortSignal","Il2Cpp","perform","signal"],"sources":["../src/FridaIl2cppBridge.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;AAKA,OAAO,qBAAqB;AAC5B,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AAEzC;;;;;AAKA,OAAO,MAAMC,mBAAmB,gBAGFF,MAAM,CAACG,UAAU,CAAC,WAC5CC,MAA8B,EAC9BC,IAAoD;EAEpD,MAAMC,OAAO,GAAG,OAAON,MAAM,CAACM,OAAO,EAAK;EAC1C,MAAMC,cAAc,GAAGN,OAAO,CAACM,cAAc,CAACD,OAAO,CAAC;EACtD,MAAME,IAAI,GAAG,OAAOR,MAAM,CAACS,OAAO,CAAEC,WAAW,IAC3CC,MAAM,CAACC,OAAO,CACV,MACIL,cAAc,CAACH,MAAM,EAAE;IACnBS,MAAM,EAAEH;GACX,CAAC,EACNL,IAAI,CACP,CACJ;EACD,OAAO,OAAOG,IAAI;AACtB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"FridaIl2cppBridge.js","names":["Effect","il2cppPerformEffect","fnUntraced","effect","flag","services","context","runPromiseExit","runPromiseExitWith","exit","promise","abortSignal","Il2Cpp","perform","signal"],"sources":["../src/FridaIl2cppBridge.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;AAKA,OAAO,qBAAqB;AAE5B,OAAO,KAAKA,MAAM,MAAM,eAAe;AAEvC;;;;;AAKA,OAAO,MAAMC,mBAAmB,gBAGFD,MAAM,CAACE,UAAU,CAAC,WAC5CC,MAA8B,EAC9BC,IAAoD;EAEpD,MAAMC,QAAQ,GAAG,OAAOL,MAAM,CAACM,OAAO,EAAK;EAC3C,MAAMC,cAAc,GAAGP,MAAM,CAACQ,kBAAkB,CAACH,QAAQ,CAAC;EAC1D,MAAMI,IAAI,GAAG,OAAOT,MAAM,CAACU,OAAO,CAAEC,WAAW,IAC3CC,MAAM,CAACC,OAAO,CACV,MACIN,cAAc,CAACJ,MAAM,EAAE;IACnBW,MAAM,EAAEH;GACX,CAAC,EACNP,IAAI,CACP,CACJ;EACD,OAAO,OAAOK,IAAI;AACtB,CAAC,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@efffrida/il2cpp-bridge",
3
- "version": "0.0.25",
3
+ "version": "0.0.27",
4
4
  "description": "effect-ts frida-il2cpp-bridge",
5
5
  "keywords": [
6
6
  "effect-ts",
@@ -31,22 +31,23 @@
31
31
  "./internal/*": null
32
32
  },
33
33
  "publishConfig": {
34
- "access": "public"
34
+ "access": "public",
35
+ "provenance": true
35
36
  },
36
37
  "dependencies": {
37
38
  "frida-il2cpp-bridge": "0.13.1"
38
39
  },
39
40
  "devDependencies": {
40
- "@effect/vitest": "0.29.0",
41
+ "@effect/vitest": "4.0.0-beta.66",
41
42
  "@types/frida-gum": "19.1.0",
42
- "@types/node": "25.7.0",
43
- "effect": "3.21.2",
43
+ "@types/node": "25.9.0",
44
+ "effect": "4.0.0-beta.66",
44
45
  "vitest": "4.1.6",
45
- "@efffrida/polyfills": "0.0.5",
46
- "@efffrida/vitest-pool": "0.0.11"
46
+ "@efffrida/polyfills": "0.0.7",
47
+ "@efffrida/vitest-pool": "0.0.13"
47
48
  },
48
49
  "peerDependencies": {
49
- "effect": "3.21.2"
50
+ "effect": "4.0.0-beta.66"
50
51
  },
51
52
  "tags": [
52
53
  "frida.re",
package/src/Assembly.ts CHANGED
@@ -4,11 +4,22 @@
4
4
  */
5
5
 
6
6
  import "frida-il2cpp-bridge";
7
+
7
8
  import type * as Scope from "effect/Scope";
8
9
 
10
+ import * as Cache from "effect/Cache";
9
11
  import * as Cause from "effect/Cause";
12
+ import * as Context from "effect/Context";
10
13
  import * as Effect from "effect/Effect";
11
- import * as Equivalence from "effect/Equivalence";
14
+
15
+ /**
16
+ * @since 1.0.0
17
+ * @category Cache
18
+ */
19
+ export const CacheCapacity: Context.Reference<number> = Context.Reference<number>(
20
+ "@efffrida/il2cpp-bridge/CacheCapacity",
21
+ { defaultValue: () => 100 }
22
+ );
12
23
 
13
24
  /**
14
25
  * @since 1.0.0
@@ -21,28 +32,28 @@ export const assembly = (name: string): Effect.Effect<Il2Cpp.Assembly, never, ne
21
32
  * @since 1.0.0
22
33
  * @category Assembly
23
34
  */
24
- export const tryAssembly = (name: string): Effect.Effect<Il2Cpp.Assembly, Cause.NoSuchElementException, never> =>
35
+ export const tryAssembly = (name: string): Effect.Effect<Il2Cpp.Assembly, Cause.NoSuchElementError, never> =>
25
36
  Effect.try({
26
37
  try: () => Il2Cpp.domain.tryAssembly(name),
27
- catch: () => new Cause.NoSuchElementException(`No assembly with name ${name}`),
28
- }).pipe(Effect.flatMap(Effect.fromNullable));
38
+ catch: () => new Cause.NoSuchElementError(`No assembly with name ${name}`),
39
+ }).pipe(Effect.flatMap(Effect.fromNullishOr));
29
40
 
30
41
  /**
31
42
  * @since 1.0.0
32
43
  * @category Assembly
33
44
  */
34
- export const assemblyCached: Effect.Effect<typeof assembly, never, never> = Effect.cachedFunction(
35
- assembly,
36
- Equivalence.string
45
+ export const assemblyCached: Effect.Effect<typeof assembly, never, never> = CacheCapacity.pipe(
46
+ Effect.flatMap((capacity) => Cache.make({ capacity, lookup: assembly })),
47
+ Effect.map((cache) => (name: string) => Cache.get(cache, name))
37
48
  );
38
49
 
39
50
  /**
40
51
  * @since 1.0.0
41
52
  * @category Assembly
42
53
  */
43
- export const tryAssemblyCached: Effect.Effect<typeof tryAssembly, never, never> = Effect.cachedFunction(
44
- tryAssembly,
45
- Equivalence.string
54
+ export const tryAssemblyCached: Effect.Effect<typeof tryAssembly, never, never> = CacheCapacity.pipe(
55
+ Effect.flatMap((capacity) => Cache.make({ capacity, lookup: tryAssembly })),
56
+ Effect.map((cache) => (name: string) => Cache.get(cache, name))
46
57
  );
47
58
 
48
59
  /**
package/src/Class.ts CHANGED
@@ -4,13 +4,41 @@
4
4
  */
5
5
 
6
6
  import "frida-il2cpp-bridge";
7
+
8
+ import * as Cache from "effect/Cache";
7
9
  import * as Cause from "effect/Cause";
10
+ import * as Data from "effect/Data";
8
11
  import * as Effect from "effect/Effect";
9
- import * as Equivalence from "effect/Equivalence";
10
12
  import * as Function from "effect/Function";
11
- import * as Tuple from "effect/Tuple";
12
13
 
13
- import * as Il2CppEquivalence from "./Equivalence.ts";
14
+ import { CacheCapacity } from "./Assembly.ts";
15
+
16
+ export {
17
+ /**
18
+ * @since 1.0.0
19
+ * @category Cache
20
+ */
21
+ CacheCapacity,
22
+ } from "./Assembly.ts";
23
+
24
+ /** @internal */
25
+ class ImageNameKey extends Data.Class<{
26
+ readonly image: Il2Cpp.Image;
27
+ readonly name: string;
28
+ }> {}
29
+
30
+ /** @internal */
31
+ class ClassNameKey extends Data.Class<{
32
+ readonly klass: Il2Cpp.Class;
33
+ readonly name: string;
34
+ }> {}
35
+
36
+ /** @internal */
37
+ class MethodKey extends Data.Class<{
38
+ readonly klass: Il2Cpp.Class;
39
+ readonly name: string;
40
+ readonly parameterCount: number | undefined;
41
+ }> {}
14
42
 
15
43
  /**
16
44
  * @since 1.0.0
@@ -34,13 +62,13 @@ export {
34
62
  * @category Class
35
63
  */
36
64
  export const tryClass = Function.dual<
37
- (name: string) => (image: Il2Cpp.Image) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>,
38
- (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>
65
+ (name: string) => (image: Il2Cpp.Image) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementError, never>,
66
+ (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementError, never>
39
67
  >(2, (image: Il2Cpp.Image, name: string) =>
40
68
  Effect.try({
41
69
  try: () => image.tryClass(name),
42
- catch: () => new Cause.NoSuchElementException(`No class with name ${name}`),
43
- }).pipe(Effect.flatMap(Effect.fromNullable))
70
+ catch: () => new Cause.NoSuchElementError(`No class with name ${name}`),
71
+ }).pipe(Effect.flatMap(Effect.fromNullishOr))
44
72
  );
45
73
 
46
74
  /**
@@ -51,9 +79,9 @@ export const classCached: Effect.Effect<
51
79
  (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, never, never>,
52
80
  never,
53
81
  never
54
- > = Effect.map(
55
- Effect.cachedFunction(Function.tupled(class_), Equivalence.tuple(Il2CppEquivalence.image, Equivalence.string)),
56
- Function.untupled
82
+ > = CacheCapacity.pipe(
83
+ Effect.flatMap((capacity) => Cache.make({ capacity, lookup: (key: ImageNameKey) => class_(key.image, key.name) })),
84
+ Effect.map((cache) => (image: Il2Cpp.Image, name: string) => Cache.get(cache, new ImageNameKey({ image, name })))
57
85
  );
58
86
 
59
87
  /**
@@ -61,12 +89,26 @@ export const classCached: Effect.Effect<
61
89
  * @category Class
62
90
  */
63
91
  export const tryClassCached: Effect.Effect<
64
- (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>,
92
+ (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementError, never>,
65
93
  never,
66
94
  never
67
- > = Effect.map(
68
- Effect.cachedFunction(Function.tupled(tryClass), Equivalence.tuple(Il2CppEquivalence.image, Equivalence.string)),
69
- Function.untupled
95
+ > = CacheCapacity.pipe(
96
+ Effect.flatMap((capacity) =>
97
+ Cache.make({
98
+ lookup: (key: ImageNameKey) => tryClass(key.image, key.name),
99
+ capacity,
100
+ })
101
+ ),
102
+ Effect.map(
103
+ (cache) => (image: Il2Cpp.Image, name: string) =>
104
+ Cache.get(
105
+ cache,
106
+ new ImageNameKey({
107
+ image,
108
+ name,
109
+ })
110
+ )
111
+ )
70
112
  );
71
113
 
72
114
  /**
@@ -107,21 +149,21 @@ export const tryField = Function.dual<
107
149
  name: string
108
150
  ) => <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
109
151
  klass: Il2Cpp.Class
110
- ) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never>,
152
+ ) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementError, never>,
111
153
  <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
112
154
  klass: Il2Cpp.Class,
113
155
  name: string
114
- ) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never>
156
+ ) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementError, never>
115
157
  >(
116
158
  2,
117
159
  <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
118
160
  klass: Il2Cpp.Class,
119
161
  name: string
120
- ): Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never> =>
162
+ ): Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementError, never> =>
121
163
  Effect.try({
122
164
  try: () => klass.field<T>(name),
123
- catch: () => new Cause.NoSuchElementException(`No field with name ${name}`),
124
- }).pipe(Effect.flatMap(Effect.fromNullable))
165
+ catch: () => new Cause.NoSuchElementError(`No field with name ${name}`),
166
+ }).pipe(Effect.flatMap(Effect.fromNullishOr))
125
167
  );
126
168
 
127
169
  /**
@@ -135,13 +177,27 @@ export const fieldCached: Effect.Effect<
135
177
  ) => Effect.Effect<Il2Cpp.Field<T>, never, never>,
136
178
  never,
137
179
  never
138
- > = Effect.map(
139
- Effect.cachedFunction(Function.tupled(field), Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)),
140
- (tupled) =>
141
- Function.untupled(tupled) as <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
142
- klass: Il2Cpp.Class,
143
- name: string
144
- ) => Effect.Effect<Il2Cpp.Field<T>, never, never>
180
+ > = CacheCapacity.pipe(
181
+ Effect.flatMap((capacity) =>
182
+ Cache.make({
183
+ lookup: (key: ClassNameKey) => field(key.klass, key.name),
184
+ capacity,
185
+ })
186
+ ),
187
+ Effect.map(
188
+ (cache) =>
189
+ ((klass: Il2Cpp.Class, name: string) =>
190
+ Cache.get(
191
+ cache,
192
+ new ClassNameKey({
193
+ klass,
194
+ name,
195
+ })
196
+ )) as <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
197
+ klass: Il2Cpp.Class,
198
+ name: string
199
+ ) => Effect.Effect<Il2Cpp.Field<T>, never, never>
200
+ )
145
201
  );
146
202
 
147
203
  /**
@@ -152,16 +208,30 @@ export const tryFieldCached: Effect.Effect<
152
208
  <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
153
209
  klass: Il2Cpp.Class,
154
210
  name: string
155
- ) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never>,
211
+ ) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementError, never>,
156
212
  never,
157
213
  never
158
- > = Effect.map(
159
- Effect.cachedFunction(Function.tupled(tryField), Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)),
160
- (tupled) =>
161
- Function.untupled(tupled) as <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
162
- klass: Il2Cpp.Class,
163
- name: string
164
- ) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never>
214
+ > = CacheCapacity.pipe(
215
+ Effect.flatMap((capacity) =>
216
+ Cache.make({
217
+ lookup: (key: ClassNameKey) => tryField(key.klass, key.name),
218
+ capacity,
219
+ })
220
+ ),
221
+ Effect.map(
222
+ (cache) =>
223
+ ((klass: Il2Cpp.Class, name: string) =>
224
+ Cache.get(
225
+ cache,
226
+ new ClassNameKey({
227
+ klass,
228
+ name,
229
+ })
230
+ )) as <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
231
+ klass: Il2Cpp.Class,
232
+ name: string
233
+ ) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementError, never>
234
+ )
165
235
  );
166
236
 
167
237
  /**
@@ -206,23 +276,23 @@ export const tryMethod = Function.dual<
206
276
  parameterCount?: number | undefined
207
277
  ) => <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
208
278
  klass: Il2Cpp.Class
209
- ) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never>,
279
+ ) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementError, never>,
210
280
  <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
211
281
  klass: Il2Cpp.Class,
212
282
  name: string,
213
283
  parameterCount?: number | undefined
214
- ) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never>
284
+ ) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementError, never>
215
285
  >(
216
286
  (_arguments) => typeof _arguments[1] === "string",
217
287
  <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
218
288
  klass: Il2Cpp.Class,
219
289
  name: string,
220
290
  parameterCount?: number | undefined
221
- ): Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never> =>
291
+ ): Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementError, never> =>
222
292
  Effect.try({
223
293
  try: () => klass.tryMethod<T>(name, parameterCount),
224
- catch: () => new Cause.NoSuchElementException(`No method with name ${name}`),
225
- }).pipe(Effect.flatMap(Effect.fromNullable))
294
+ catch: () => new Cause.NoSuchElementError(`No method with name ${name}`),
295
+ }).pipe(Effect.flatMap(Effect.fromNullishOr))
226
296
  );
227
297
 
228
298
  /**
@@ -237,20 +307,24 @@ export const methodCached: Effect.Effect<
237
307
  ) => Effect.Effect<Il2Cpp.Method<T>, never, never>,
238
308
  never,
239
309
  never
240
- > = Effect.map(
241
- Effect.cachedFunction(
242
- Function.tupled(method),
243
- Equivalence.mapInput(
244
- Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string, Equivalence.strict<number | undefined>()),
245
- (tuple) => Tuple.make(tuple[0], tuple[1], tuple[2] ?? undefined)
246
- )
310
+ > = CacheCapacity.pipe(
311
+ Effect.flatMap((capacity) =>
312
+ Cache.make({
313
+ lookup: (key: MethodKey) => method(key.klass, key.name, key.parameterCount),
314
+ capacity,
315
+ })
247
316
  ),
248
- (tupled) =>
249
- Function.untupled(tupled) as <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
250
- klass: Il2Cpp.Class,
251
- name: string,
252
- parameterCount?: number | undefined
253
- ) => Effect.Effect<Il2Cpp.Method<T>, never, never>
317
+ Effect.map(
318
+ (cache) =>
319
+ ((klass: Il2Cpp.Class, name: string, parameterCount?: number) =>
320
+ Cache.get(cache, new MethodKey({ klass, name, parameterCount }))) as <
321
+ T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType,
322
+ >(
323
+ klass: Il2Cpp.Class,
324
+ name: string,
325
+ parameterCount?: number | undefined
326
+ ) => Effect.Effect<Il2Cpp.Method<T>, never, never>
327
+ )
254
328
  );
255
329
 
256
330
  /**
@@ -262,23 +336,27 @@ export const tryMethodCached: Effect.Effect<
262
336
  klass: Il2Cpp.Class,
263
337
  name: string,
264
338
  parameterCount?: number | undefined
265
- ) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never>,
339
+ ) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementError, never>,
266
340
  never,
267
341
  never
268
- > = Effect.map(
269
- Effect.cachedFunction(
270
- Function.tupled(tryMethod),
271
- Equivalence.mapInput(
272
- Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string, Equivalence.strict<number | undefined>()),
273
- (tuple) => Tuple.make(tuple[0], tuple[1], tuple[2] ?? undefined)
274
- )
342
+ > = CacheCapacity.pipe(
343
+ Effect.flatMap((capacity) =>
344
+ Cache.make({
345
+ lookup: (key: MethodKey) => tryMethod(key.klass, key.name, key.parameterCount),
346
+ capacity,
347
+ })
275
348
  ),
276
- (tupled) =>
277
- Function.untupled(tupled) as <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
278
- klass: Il2Cpp.Class,
279
- name: string,
280
- parameterCount?: number | undefined
281
- ) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never>
349
+ Effect.map(
350
+ (cache) =>
351
+ ((klass: Il2Cpp.Class, name: string, parameterCount?: number) =>
352
+ Cache.get(cache, new MethodKey({ klass, name, parameterCount }))) as <
353
+ T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType,
354
+ >(
355
+ klass: Il2Cpp.Class,
356
+ name: string,
357
+ parameterCount?: number | undefined
358
+ ) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementError, never>
359
+ )
282
360
  );
283
361
 
284
362
  /**
@@ -295,13 +373,13 @@ export const nested = Function.dual<
295
373
  * @category Class
296
374
  */
297
375
  export const tryNested = Function.dual<
298
- (name: string) => (klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>,
299
- (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>
376
+ (name: string) => (klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementError, never>,
377
+ (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementError, never>
300
378
  >(2, (klass: Il2Cpp.Class, name: string) =>
301
379
  Effect.try({
302
380
  try: () => klass.tryNested(name),
303
- catch: () => new Cause.NoSuchElementException(`No nested class with name ${name}`),
304
- }).pipe(Effect.flatMap(Effect.fromNullable))
381
+ catch: () => new Cause.NoSuchElementError(`No nested class with name ${name}`),
382
+ }).pipe(Effect.flatMap(Effect.fromNullishOr))
305
383
  );
306
384
 
307
385
  /**
@@ -312,9 +390,9 @@ export const nestedCached: Effect.Effect<
312
390
  (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, never, never>,
313
391
  never,
314
392
  never
315
- > = Effect.map(
316
- Effect.cachedFunction(Function.tupled(nested), Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)),
317
- Function.untupled
393
+ > = CacheCapacity.pipe(
394
+ Effect.flatMap((capacity) => Cache.make({ capacity, lookup: (key: ClassNameKey) => nested(key.klass, key.name) })),
395
+ Effect.map((cache) => (klass: Il2Cpp.Class, name: string) => Cache.get(cache, new ClassNameKey({ klass, name })))
318
396
  );
319
397
 
320
398
  /**
@@ -322,10 +400,24 @@ export const nestedCached: Effect.Effect<
322
400
  * @category Class
323
401
  */
324
402
  export const tryNestedCached: Effect.Effect<
325
- (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>,
403
+ (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementError, never>,
326
404
  never,
327
405
  never
328
- > = Effect.map(
329
- Effect.cachedFunction(Function.tupled(tryNested), Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)),
330
- Function.untupled
406
+ > = CacheCapacity.pipe(
407
+ Effect.flatMap((capacity) =>
408
+ Cache.make({
409
+ lookup: (key: ClassNameKey) => tryNested(key.klass, key.name),
410
+ capacity,
411
+ })
412
+ ),
413
+ Effect.map(
414
+ (cache) => (klass: Il2Cpp.Class, name: string) =>
415
+ Cache.get(
416
+ cache,
417
+ new ClassNameKey({
418
+ klass,
419
+ name,
420
+ })
421
+ )
422
+ )
331
423
  );
package/src/Extensions.ts CHANGED
@@ -4,7 +4,8 @@
4
4
  */
5
5
 
6
6
  import "frida-il2cpp-bridge";
7
- import { Array, Option, Record, pipe } from "effect";
7
+
8
+ import { Array, Option, Record, pipe, Result } from "effect";
8
9
 
9
10
  /**
10
11
  * @since 1.0.0
@@ -94,7 +95,7 @@ export class Dictionary<
94
95
  public toRecord(keys?: Array<K> | undefined): Record<string, V> {
95
96
  const readKeyOptionString = (key: K): Option.Option<string> =>
96
97
  key instanceof Il2Cpp.String
97
- ? Option.fromNullable(key.isNull() ? null : key.content)
98
+ ? Option.fromNullOr(key.isNull() ? null : key.content)
98
99
  : Option.some(key.toString());
99
100
 
100
101
  const readValueOption = (key: K): Option.Option<V> =>
@@ -102,7 +103,12 @@ export class Dictionary<
102
103
 
103
104
  return pipe(
104
105
  keys ?? this.keys,
105
- Array.filterMap((key) => Option.product(readKeyOptionString(key), readValueOption(key))),
106
+ Array.filterMap((key) => {
107
+ const maybeKey = readKeyOptionString(key);
108
+ const maybeValue = readValueOption(key);
109
+ const product = Option.product(maybeKey, maybeValue);
110
+ return Result.fromOption(product, () => void 0);
111
+ }),
106
112
  Record.fromEntries
107
113
  );
108
114
  }
@@ -4,8 +4,8 @@
4
4
  */
5
5
 
6
6
  import "frida-il2cpp-bridge";
7
+
7
8
  import * as Effect from "effect/Effect";
8
- import * as Runtime from "effect/Runtime";
9
9
 
10
10
  /**
11
11
  * Attaches the caller thread to Il2Cpp domain and executes the given block.
@@ -19,8 +19,8 @@ export const il2cppPerformEffect: <X, E, R>(
19
19
  effect: Effect.Effect<X, E, R>,
20
20
  flag?: "free" | "bind" | "leak" | "main" | undefined
21
21
  ) {
22
- const runtime = yield* Effect.runtime<R>();
23
- const runPromiseExit = Runtime.runPromiseExit(runtime);
22
+ const services = yield* Effect.context<R>();
23
+ const runPromiseExit = Effect.runPromiseExitWith(services);
24
24
  const exit = yield* Effect.promise((abortSignal) =>
25
25
  Il2Cpp.perform(
26
26
  () =>