@efffrida/il2cpp-bridge 0.0.18 → 0.0.20

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.
@@ -16,6 +16,16 @@ export declare const assembly: (name: string) => Effect.Effect<Il2Cpp.Assembly,
16
16
  * @category Assembly
17
17
  */
18
18
  export declare const tryAssembly: (name: string) => Effect.Effect<Il2Cpp.Assembly, Cause.NoSuchElementException, never>;
19
+ /**
20
+ * @since 1.0.0
21
+ * @category Assembly
22
+ */
23
+ export declare const assemblyCached: Effect.Effect<typeof assembly, never, never>;
24
+ /**
25
+ * @since 1.0.0
26
+ * @category Assembly
27
+ */
28
+ export declare const tryAssemblyCached: Effect.Effect<typeof tryAssembly, never, never>;
19
29
  /**
20
30
  * @since 1.0.0
21
31
  * @category Assembly
@@ -1 +1 @@
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;AAE3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;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,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;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"}
package/dist/Assembly.js CHANGED
@@ -5,6 +5,7 @@
5
5
  import "frida-il2cpp-bridge";
6
6
  import * as Cause from "effect/Cause";
7
7
  import * as Effect from "effect/Effect";
8
+ import * as Equivalence from "effect/Equivalence";
8
9
  /**
9
10
  * @since 1.0.0
10
11
  * @category Assembly
@@ -18,6 +19,16 @@ export const tryAssembly = name => Effect.try({
18
19
  try: () => Il2Cpp.domain.tryAssembly(name),
19
20
  catch: () => new Cause.NoSuchElementException(`No assembly with name ${name}`)
20
21
  }).pipe(Effect.flatMap(Effect.fromNullable));
22
+ /**
23
+ * @since 1.0.0
24
+ * @category Assembly
25
+ */
26
+ export const assemblyCached = /*#__PURE__*/Effect.cachedFunction(assembly, Equivalence.string);
27
+ /**
28
+ * @since 1.0.0
29
+ * @category Assembly
30
+ */
31
+ export const tryAssemblyCached = /*#__PURE__*/Effect.cachedFunction(tryAssembly, Equivalence.string);
21
32
  /**
22
33
  * @since 1.0.0
23
34
  * @category Assembly
@@ -1 +1 @@
1
- {"version":3,"file":"Assembly.js","names":["Cause","Effect","assembly","name","sync","Il2Cpp","domain","tryAssembly","try","catch","NoSuchElementException","pipe","flatMap","fromNullable","attach","acquireRelease","thread","detach"],"sources":["../src/Assembly.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;AAKA,OAAO,qBAAqB;AAI5B,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC;;;;AAIA,OAAO,MAAMC,QAAQ,GAAIC,IAAY,IACjCF,MAAM,CAACG,IAAI,CAAC,MAAMC,MAAM,CAACC,MAAM,CAACJ,QAAQ,CAACC,IAAI,CAAC,CAAC;AAEnD;;;;AAIA,OAAO,MAAMI,WAAW,GAAIJ,IAAY,IACpCF,MAAM,CAACO,GAAG,CAAC;EACPA,GAAG,EAAEA,CAAA,KAAMH,MAAM,CAACC,MAAM,CAACC,WAAW,CAACJ,IAAI,CAAC;EAC1CM,KAAK,EAAEA,CAAA,KAAM,IAAIT,KAAK,CAACU,sBAAsB,CAAC,yBAAyBP,IAAI,EAAE;CAChF,CAAC,CAACQ,IAAI,CAACV,MAAM,CAACW,OAAO,CAACX,MAAM,CAACY,YAAY,CAAC,CAAC;AAEhD;;;;AAIA,OAAO,MAAMC,MAAM,gBAAqDb,MAAM,CAACc,cAAc,cACzFd,MAAM,CAACG,IAAI,CAAC,MAAMC,MAAM,CAACC,MAAM,CAACQ,MAAM,EAAE,CAAC,EACxCE,MAAM,IAAKf,MAAM,CAACG,IAAI,CAAC,MAAMY,MAAM,CAACC,MAAM,EAAE,CAAC,CACjD","ignoreList":[]}
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;AAI5B,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":[]}
package/dist/Class.d.ts CHANGED
@@ -9,7 +9,7 @@ import * as Effect from "effect/Effect";
9
9
  * @since 1.0.0
10
10
  * @category Class
11
11
  */
12
- declare const class_: (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, never, never>;
12
+ declare const class_: ((name: string) => (image: Il2Cpp.Image) => Effect.Effect<Il2Cpp.Class, never, never>) & ((image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, never, never>);
13
13
  export {
14
14
  /**
15
15
  * @since 1.0.0
@@ -20,35 +20,85 @@ class_ as class, };
20
20
  * @since 1.0.0
21
21
  * @category Class
22
22
  */
23
- export declare const tryClass: (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>;
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>);
24
24
  /**
25
25
  * @since 1.0.0
26
26
  * @category Class
27
27
  */
28
- export declare const field: (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Field, never, never>;
28
+ export declare const classCached: Effect.Effect<(image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, never, never>, never, never>;
29
29
  /**
30
30
  * @since 1.0.0
31
31
  * @category Class
32
32
  */
33
- export declare const tryField: (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Field, Cause.NoSuchElementException, never>;
33
+ export declare const tryClassCached: Effect.Effect<(image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>, never, never>;
34
34
  /**
35
35
  * @since 1.0.0
36
36
  * @category Class
37
37
  */
38
- export declare const method: (klass: Il2Cpp.Class, name: string, parameterCount?: number | undefined) => Effect.Effect<Il2Cpp.Method, never, never>;
38
+ export declare const fields: (klass: Il2Cpp.Class) => Effect.Effect<ReadonlyArray<Il2Cpp.Field>, never, never>;
39
39
  /**
40
40
  * @since 1.0.0
41
41
  * @category Class
42
42
  */
43
- export declare const tryMethod: (klass: Il2Cpp.Class, name: string, parameterCount?: number | undefined) => Effect.Effect<Il2Cpp.Method, Cause.NoSuchElementException, never>;
43
+ export declare const field: ((name: string) => <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Field<T>, never, never>) & (<T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Field<T>, never, never>);
44
44
  /**
45
45
  * @since 1.0.0
46
46
  * @category Class
47
47
  */
48
- export declare const nested: (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, never, never>;
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>);
49
49
  /**
50
50
  * @since 1.0.0
51
51
  * @category Class
52
52
  */
53
- export declare const tryNested: (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>;
53
+ export declare const fieldCached: Effect.Effect<(<T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Field<T>, never, never>), never, never>;
54
+ /**
55
+ * @since 1.0.0
56
+ * @category Class
57
+ */
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>;
59
+ /**
60
+ * @since 1.0.0
61
+ * @category Class
62
+ */
63
+ export declare const methods: (klass: Il2Cpp.Class) => Effect.Effect<ReadonlyArray<Il2Cpp.Method>, never, never>;
64
+ /**
65
+ * @since 1.0.0
66
+ * @category Class
67
+ */
68
+ export declare const method: ((name: string, parameterCount?: number | undefined) => <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Method<T>, never, never>) & (<T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(klass: Il2Cpp.Class, name: string, parameterCount?: number | undefined) => Effect.Effect<Il2Cpp.Method<T>, never, never>);
69
+ /**
70
+ * @since 1.0.0
71
+ * @category Class
72
+ */
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>);
74
+ /**
75
+ * @since 1.0.0
76
+ * @category Class
77
+ */
78
+ export declare const methodCached: Effect.Effect<(<T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(klass: Il2Cpp.Class, name: string, parameterCount?: number | undefined) => Effect.Effect<Il2Cpp.Method<T>, never, never>), never, never>;
79
+ /**
80
+ * @since 1.0.0
81
+ * @category Class
82
+ */
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>;
84
+ /**
85
+ * @since 1.0.0
86
+ * @category Class
87
+ */
88
+ export declare const nested: ((name: string) => (klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Class, never, never>) & ((klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, never, never>);
89
+ /**
90
+ * @since 1.0.0
91
+ * @category Class
92
+ */
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>);
94
+ /**
95
+ * @since 1.0.0
96
+ * @category Class
97
+ */
98
+ export declare const nestedCached: Effect.Effect<(klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, never, never>, never, never>;
99
+ /**
100
+ * @since 1.0.0
101
+ * @category Class
102
+ */
103
+ export declare const tryNestedCached: Effect.Effect<(klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>, never, never>;
54
104
  //# sourceMappingURL=Class.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../src/Class.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;GAGG;AACH,QAAA,MAAM,MAAM,GAAI,OAAO,MAAM,CAAC,KAAK,EAAE,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CACpD,CAAC;AAEzC,OAAO;AACH;;;GAGG;AACH,MAAM,IAAI,KAAK,GAClB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,GACjB,OAAO,MAAM,CAAC,KAAK,EACnB,MAAM,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAIlB,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,CAAC,KAAK,EAAE,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAC1D,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,QAAQ,GACjB,OAAO,MAAM,CAAC,KAAK,EACnB,MAAM,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAIlB,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,MAAM,GACf,OAAO,MAAM,CAAC,KAAK,EACnB,MAAM,MAAM,EACZ,iBAAiB,MAAM,GAAG,SAAS,KACpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAA0D,CAAC;AAEvG;;;GAGG;AACH,eAAO,MAAM,SAAS,GAClB,OAAO,MAAM,CAAC,KAAK,EACnB,MAAM,MAAM,EACZ,iBAAiB,MAAM,GAAG,SAAS,KACpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAInB,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,CAAC,KAAK,EAAE,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAC1D,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,SAAS,GAClB,OAAO,MAAM,CAAC,KAAK,EACnB,MAAM,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAIlB,CAAC"}
1
+ {"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../src/Class.ts"],"names":[],"mappings":"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"}
package/dist/Class.js CHANGED
@@ -5,11 +5,15 @@
5
5
  import "frida-il2cpp-bridge";
6
6
  import * as Cause from "effect/Cause";
7
7
  import * as Effect from "effect/Effect";
8
+ import * as Equivalence from "effect/Equivalence";
9
+ import * as Function from "effect/Function";
10
+ import * as Tuple from "effect/Tuple";
11
+ import * as Il2CppEquivalence from "./Equivalence.js";
8
12
  /**
9
13
  * @since 1.0.0
10
14
  * @category Class
11
15
  */
12
- const class_ = (image, name) => Effect.sync(() => image.class(name));
16
+ const class_ = /*#__PURE__*/Function.dual(2, (image, name) => Effect.sync(() => image.class(name)));
13
17
  export {
14
18
  /**
15
19
  * @since 1.0.0
@@ -20,47 +24,97 @@ class_ as class };
20
24
  * @since 1.0.0
21
25
  * @category Class
22
26
  */
23
- export const tryClass = (image, name) => Effect.try({
27
+ export const tryClass = /*#__PURE__*/Function.dual(2, (image, name) => Effect.try({
24
28
  try: () => image.tryClass(name),
25
29
  catch: () => new Cause.NoSuchElementException(`No class with name ${name}`)
26
- }).pipe(Effect.flatMap(Effect.fromNullable));
30
+ }).pipe(Effect.flatMap(Effect.fromNullable)));
27
31
  /**
28
32
  * @since 1.0.0
29
33
  * @category Class
30
34
  */
31
- export const field = (klass, name) => Effect.sync(() => klass.field(name));
35
+ export const classCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(class_), /*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.image, Equivalence.string)), Function.untupled);
32
36
  /**
33
37
  * @since 1.0.0
34
38
  * @category Class
35
39
  */
36
- export const tryField = (klass, name) => Effect.try({
37
- try: () => klass.tryField(name),
40
+ export const tryClassCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(tryClass), /*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.image, Equivalence.string)), Function.untupled);
41
+ /**
42
+ * @since 1.0.0
43
+ * @category Class
44
+ */
45
+ export const fields = klass => Effect.sync(() => klass.fields);
46
+ /**
47
+ * @since 1.0.0
48
+ * @category Class
49
+ */
50
+ export const field = /*#__PURE__*/Function.dual(2, (klass, name) => Effect.sync(() => klass.field(name)));
51
+ /**
52
+ * @since 1.0.0
53
+ * @category Class
54
+ */
55
+ export const tryField = /*#__PURE__*/Function.dual(2, (klass, name) => Effect.try({
56
+ try: () => klass.field(name),
38
57
  catch: () => new Cause.NoSuchElementException(`No field with name ${name}`)
39
- }).pipe(Effect.flatMap(Effect.fromNullable));
58
+ }).pipe(Effect.flatMap(Effect.fromNullable)));
59
+ /**
60
+ * @since 1.0.0
61
+ * @category Class
62
+ */
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));
64
+ /**
65
+ * @since 1.0.0
66
+ * @category Class
67
+ */
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));
40
69
  /**
41
70
  * @since 1.0.0
42
71
  * @category Class
43
72
  */
44
- export const method = (klass, name, parameterCount) => Effect.sync(() => klass.method(name, parameterCount));
73
+ export const methods = klass => Effect.sync(() => klass.methods);
45
74
  /**
46
75
  * @since 1.0.0
47
76
  * @category Class
48
77
  */
49
- export const tryMethod = (klass, name, parameterCount) => Effect.try({
78
+ export const method = /*#__PURE__*/Function.dual(_arguments => typeof _arguments[1] === "string", (klass, name, parameterCount) => Effect.sync(() => klass.method(name, parameterCount)));
79
+ /**
80
+ * @since 1.0.0
81
+ * @category Class
82
+ */
83
+ export const tryMethod = /*#__PURE__*/Function.dual(_arguments => typeof _arguments[1] === "string", (klass, name, parameterCount) => Effect.try({
50
84
  try: () => klass.tryMethod(name, parameterCount),
51
85
  catch: () => new Cause.NoSuchElementException(`No method with name ${name}`)
52
- }).pipe(Effect.flatMap(Effect.fromNullable));
86
+ }).pipe(Effect.flatMap(Effect.fromNullable)));
87
+ /**
88
+ * @since 1.0.0
89
+ * @category Class
90
+ */
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));
92
+ /**
93
+ * @since 1.0.0
94
+ * @category Class
95
+ */
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));
53
97
  /**
54
98
  * @since 1.0.0
55
99
  * @category Class
56
100
  */
57
- export const nested = (klass, name) => Effect.sync(() => klass.nested(name));
101
+ export const nested = /*#__PURE__*/Function.dual(2, (klass, name) => Effect.sync(() => klass.nested(name)));
58
102
  /**
59
103
  * @since 1.0.0
60
104
  * @category Class
61
105
  */
62
- export const tryNested = (klass, name) => Effect.try({
106
+ export const tryNested = /*#__PURE__*/Function.dual(2, (klass, name) => Effect.try({
63
107
  try: () => klass.tryNested(name),
64
108
  catch: () => new Cause.NoSuchElementException(`No nested class with name ${name}`)
65
- }).pipe(Effect.flatMap(Effect.fromNullable));
109
+ }).pipe(Effect.flatMap(Effect.fromNullable)));
110
+ /**
111
+ * @since 1.0.0
112
+ * @category Class
113
+ */
114
+ export const nestedCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(nested), /*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)), Function.untupled);
115
+ /**
116
+ * @since 1.0.0
117
+ * @category Class
118
+ */
119
+ export const tryNestedCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(tryNested), /*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)), Function.untupled);
66
120
  //# sourceMappingURL=Class.js.map
package/dist/Class.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Class.js","names":["Cause","Effect","class_","image","name","sync","class","tryClass","try","catch","NoSuchElementException","pipe","flatMap","fromNullable","field","klass","tryField","method","parameterCount","tryMethod","nested","tryNested"],"sources":["../src/Class.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;AAKA,OAAO,qBAAqB;AAE5B,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC;;;;AAIA,MAAMC,MAAM,GAAGA,CAACC,KAAmB,EAAEC,IAAY,KAC7CH,MAAM,CAACI,IAAI,CAAC,MAAMF,KAAK,CAACG,KAAK,CAACF,IAAI,CAAC,CAAC;AAExC;AACI;;;;AAIAF,MAAM,IAAII,KAAK;AAGnB;;;;AAIA,OAAO,MAAMC,QAAQ,GAAGA,CACpBJ,KAAmB,EACnBC,IAAY,KAEZH,MAAM,CAACO,GAAG,CAAC;EACPA,GAAG,EAAEA,CAAA,KAAML,KAAK,CAACI,QAAQ,CAACH,IAAI,CAAC;EAC/BK,KAAK,EAAEA,CAAA,KAAM,IAAIT,KAAK,CAACU,sBAAsB,CAAC,sBAAsBN,IAAI,EAAE;CAC7E,CAAC,CAACO,IAAI,CAACV,MAAM,CAACW,OAAO,CAACX,MAAM,CAACY,YAAY,CAAC,CAAC;AAEhD;;;;AAIA,OAAO,MAAMC,KAAK,GAAGA,CAACC,KAAmB,EAAEX,IAAY,KACnDH,MAAM,CAACI,IAAI,CAAC,MAAMU,KAAK,CAACD,KAAK,CAACV,IAAI,CAAC,CAAC;AAExC;;;;AAIA,OAAO,MAAMY,QAAQ,GAAGA,CACpBD,KAAmB,EACnBX,IAAY,KAEZH,MAAM,CAACO,GAAG,CAAC;EACPA,GAAG,EAAEA,CAAA,KAAMO,KAAK,CAACC,QAAQ,CAACZ,IAAI,CAAC;EAC/BK,KAAK,EAAEA,CAAA,KAAM,IAAIT,KAAK,CAACU,sBAAsB,CAAC,sBAAsBN,IAAI,EAAE;CAC7E,CAAC,CAACO,IAAI,CAACV,MAAM,CAACW,OAAO,CAACX,MAAM,CAACY,YAAY,CAAC,CAAC;AAEhD;;;;AAIA,OAAO,MAAMI,MAAM,GAAGA,CAClBF,KAAmB,EACnBX,IAAY,EACZc,cAAmC,KACUjB,MAAM,CAACI,IAAI,CAAC,MAAMU,KAAK,CAACE,MAAM,CAACb,IAAI,EAAEc,cAAc,CAAC,CAAC;AAEtG;;;;AAIA,OAAO,MAAMC,SAAS,GAAGA,CACrBJ,KAAmB,EACnBX,IAAY,EACZc,cAAmC,KAEnCjB,MAAM,CAACO,GAAG,CAAC;EACPA,GAAG,EAAEA,CAAA,KAAMO,KAAK,CAACI,SAAS,CAACf,IAAI,EAAEc,cAAc,CAAC;EAChDT,KAAK,EAAEA,CAAA,KAAM,IAAIT,KAAK,CAACU,sBAAsB,CAAC,uBAAuBN,IAAI,EAAE;CAC9E,CAAC,CAACO,IAAI,CAACV,MAAM,CAACW,OAAO,CAACX,MAAM,CAACY,YAAY,CAAC,CAAC;AAEhD;;;;AAIA,OAAO,MAAMO,MAAM,GAAGA,CAACL,KAAmB,EAAEX,IAAY,KACpDH,MAAM,CAACI,IAAI,CAAC,MAAMU,KAAK,CAACK,MAAM,CAAChB,IAAI,CAAC,CAAC;AAEzC;;;;AAIA,OAAO,MAAMiB,SAAS,GAAGA,CACrBN,KAAmB,EACnBX,IAAY,KAEZH,MAAM,CAACO,GAAG,CAAC;EACPA,GAAG,EAAEA,CAAA,KAAMO,KAAK,CAACM,SAAS,CAACjB,IAAI,CAAC;EAChCK,KAAK,EAAEA,CAAA,KAAM,IAAIT,KAAK,CAACU,sBAAsB,CAAC,6BAA6BN,IAAI,EAAE;CACpF,CAAC,CAACO,IAAI,CAACV,MAAM,CAACW,OAAO,CAACX,MAAM,CAACY,YAAY,CAAC,CAAC","ignoreList":[]}
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":[]}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @since 1.0.0
3
+ * @category Equivalence
4
+ */
5
+ import * as Equivalence from "effect/Equivalence";
6
+ /**
7
+ * @since 1.0.0
8
+ * @category Equivalence
9
+ */
10
+ export declare const nativePointer: Equivalence.Equivalence<NativePointer>;
11
+ /**
12
+ * @since 1.0.0
13
+ * @category Equivalence
14
+ */
15
+ export declare const image: Equivalence.Equivalence<Il2Cpp.Image>;
16
+ /**
17
+ * @since 1.0.0
18
+ * @category Equivalence
19
+ */
20
+ declare const class_: Equivalence.Equivalence<Il2Cpp.Class>;
21
+ export {
22
+ /**
23
+ * @since 1.0.0
24
+ * @category Equivalence
25
+ */
26
+ class_ as class, };
27
+ /**
28
+ * @since 1.0.0
29
+ * @category Equivalence
30
+ */
31
+ export declare const field: Equivalence.Equivalence<Il2Cpp.Field<Il2Cpp.Field.Type>>;
32
+ /**
33
+ * @since 1.0.0
34
+ * @category Equivalence
35
+ */
36
+ export declare const method: Equivalence.Equivalence<Il2Cpp.Method<Il2Cpp.Method.ReturnType>>;
37
+ //# sourceMappingURL=Equivalence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Equivalence.d.ts","sourceRoot":"","sources":["../src/Equivalence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,aAAa,wCAAqE,CAAC;AAEhG;;;GAGG;AACH,eAAO,MAAM,KAAK,uCAA6E,CAAC;AAEhG;;;GAGG;AACH,QAAA,MAAM,MAAM,uCAA6E,CAAC;AAE1F,OAAO;AACH;;;GAGG;AACH,MAAM,IAAI,KAAK,GAClB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,0DAA6E,CAAC;AAEhG;;;GAGG;AACH,eAAO,MAAM,MAAM,kEAAgF,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @since 1.0.0
3
+ * @category Equivalence
4
+ */
5
+ import * as Equivalence from "effect/Equivalence";
6
+ /**
7
+ * @since 1.0.0
8
+ * @category Equivalence
9
+ */
10
+ export const nativePointer = /*#__PURE__*/Equivalence.make((self, that) => self.equals(that));
11
+ /**
12
+ * @since 1.0.0
13
+ * @category Equivalence
14
+ */
15
+ export const image = /*#__PURE__*/Equivalence.mapInput(nativePointer, image => image.handle);
16
+ /**
17
+ * @since 1.0.0
18
+ * @category Equivalence
19
+ */
20
+ const class_ = /*#__PURE__*/Equivalence.mapInput(nativePointer, klass => klass.handle);
21
+ export {
22
+ /**
23
+ * @since 1.0.0
24
+ * @category Equivalence
25
+ */
26
+ class_ as class };
27
+ /**
28
+ * @since 1.0.0
29
+ * @category Equivalence
30
+ */
31
+ export const field = /*#__PURE__*/Equivalence.mapInput(nativePointer, field => field.handle);
32
+ /**
33
+ * @since 1.0.0
34
+ * @category Equivalence
35
+ */
36
+ export const method = /*#__PURE__*/Equivalence.mapInput(nativePointer, method => method.handle);
37
+ //# sourceMappingURL=Equivalence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Equivalence.js","names":["Equivalence","nativePointer","make","self","that","equals","image","mapInput","handle","class_","klass","class","field","method"],"sources":["../src/Equivalence.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;AAKA,OAAO,KAAKA,WAAW,MAAM,oBAAoB;AAEjD;;;;AAIA,OAAO,MAAMC,aAAa,gBAAGD,WAAW,CAACE,IAAI,CAAgB,CAACC,IAAI,EAAEC,IAAI,KAAKD,IAAI,CAACE,MAAM,CAACD,IAAI,CAAC,CAAC;AAE/F;;;;AAIA,OAAO,MAAME,KAAK,gBAAGN,WAAW,CAACO,QAAQ,CAACN,aAAa,EAAGK,KAAmB,IAAKA,KAAK,CAACE,MAAM,CAAC;AAE/F;;;;AAIA,MAAMC,MAAM,gBAAGT,WAAW,CAACO,QAAQ,CAACN,aAAa,EAAGS,KAAmB,IAAKA,KAAK,CAACF,MAAM,CAAC;AAEzF;AACI;;;;AAIAC,MAAM,IAAIE,KAAK;AAGnB;;;;AAIA,OAAO,MAAMC,KAAK,gBAAGZ,WAAW,CAACO,QAAQ,CAACN,aAAa,EAAGW,KAAmB,IAAKA,KAAK,CAACJ,MAAM,CAAC;AAE/F;;;;AAIA,OAAO,MAAMK,MAAM,gBAAGb,WAAW,CAACO,QAAQ,CAACN,aAAa,EAAGY,MAAqB,IAAKA,MAAM,CAACL,MAAM,CAAC","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  /**
2
- * FridaIl2cppBridge.ts
3
- *
4
2
  * @since 1.0.0
3
+ * @category FridaIl2cppBridge
5
4
  */
6
5
  import "frida-il2cpp-bridge";
7
6
  import * as Effect from "effect/Effect";
@@ -1 +1 @@
1
- {"version":3,"file":"FridaIl2cppBridge.d.ts","sourceRoot":"","sources":["../src/FridaIl2cppBridge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,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;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,7 +1,6 @@
1
1
  /**
2
- * FridaIl2cppBridge.ts
3
- *
4
2
  * @since 1.0.0
3
+ * @category FridaIl2cppBridge
5
4
  */
6
5
  import "frida-il2cpp-bridge";
7
6
  import * as Effect from "effect/Effect";
@@ -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;;;;;AAMA,OAAO,qBAAqB;AAE5B,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","Runtime","il2cppPerformEffect","fnUntraced","effect","flag","runtime","runPromiseExit","exit","promise","abortSignal","Il2Cpp","perform","signal"],"sources":["../src/FridaIl2cppBridge.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;AAKA,OAAO,qBAAqB;AAE5B,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":[]}
package/dist/index.d.ts CHANGED
@@ -12,9 +12,13 @@ export * as Assembly from "./Assembly.ts";
12
12
  */
13
13
  export * as Class from "./Class.ts";
14
14
  /**
15
- * FridaIl2cppBridge.ts
16
- *
17
15
  * @since 1.0.0
16
+ * @category Equivalence
17
+ */
18
+ export * as Equivalence from "./Equivalence.ts";
19
+ /**
20
+ * @since 1.0.0
21
+ * @category FridaIl2cppBridge
18
22
  */
19
23
  export * as FridaIl2cppBridge from "./FridaIl2cppBridge.ts";
20
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;GAGG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;;;GAIG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;GAGG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;;GAGG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;;GAGG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA"}
package/dist/index.js CHANGED
@@ -12,9 +12,13 @@ export * as Assembly from "./Assembly.js";
12
12
  */
13
13
  export * as Class from "./Class.js";
14
14
  /**
15
- * FridaIl2cppBridge.ts
16
- *
17
15
  * @since 1.0.0
16
+ * @category Equivalence
17
+ */
18
+ export * as Equivalence from "./Equivalence.js";
19
+ /**
20
+ * @since 1.0.0
21
+ * @category FridaIl2cppBridge
18
22
  */
19
23
  export * as FridaIl2cppBridge from "./FridaIl2cppBridge.js";
20
24
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Assembly","Class","FridaIl2cppBridge"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;;;;AAIA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AAEzC;;;;AAIA,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC;;;;;AAKA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Assembly","Class","Equivalence","FridaIl2cppBridge"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;;;;AAIA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AAEzC;;;;AAIA,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC;;;;AAIA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;;AAIA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@efffrida/il2cpp-bridge",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "description": "effect-ts frida-il2cpp-bridge",
5
5
  "keywords": [
6
6
  "frida.re",
package/src/Assembly.ts CHANGED
@@ -9,6 +9,7 @@ import type * as Scope from "effect/Scope";
9
9
 
10
10
  import * as Cause from "effect/Cause";
11
11
  import * as Effect from "effect/Effect";
12
+ import * as Equivalence from "effect/Equivalence";
12
13
 
13
14
  /**
14
15
  * @since 1.0.0
@@ -27,6 +28,24 @@ export const tryAssembly = (name: string): Effect.Effect<Il2Cpp.Assembly, Cause.
27
28
  catch: () => new Cause.NoSuchElementException(`No assembly with name ${name}`),
28
29
  }).pipe(Effect.flatMap(Effect.fromNullable));
29
30
 
31
+ /**
32
+ * @since 1.0.0
33
+ * @category Assembly
34
+ */
35
+ export const assemblyCached: Effect.Effect<typeof assembly, never, never> = Effect.cachedFunction(
36
+ assembly,
37
+ Equivalence.string
38
+ );
39
+
40
+ /**
41
+ * @since 1.0.0
42
+ * @category Assembly
43
+ */
44
+ export const tryAssemblyCached: Effect.Effect<typeof tryAssembly, never, never> = Effect.cachedFunction(
45
+ tryAssembly,
46
+ Equivalence.string
47
+ );
48
+
30
49
  /**
31
50
  * @since 1.0.0
32
51
  * @category Assembly
package/src/Class.ts CHANGED
@@ -7,13 +7,20 @@ import "frida-il2cpp-bridge";
7
7
 
8
8
  import * as Cause from "effect/Cause";
9
9
  import * as Effect from "effect/Effect";
10
+ import * as Equivalence from "effect/Equivalence";
11
+ import * as Function from "effect/Function";
12
+ import * as Tuple from "effect/Tuple";
13
+
14
+ import * as Il2CppEquivalence from "./Equivalence.ts";
10
15
 
11
16
  /**
12
17
  * @since 1.0.0
13
18
  * @category Class
14
19
  */
15
- const class_ = (image: Il2Cpp.Image, name: string): Effect.Effect<Il2Cpp.Class, never, never> =>
16
- Effect.sync(() => image.class(name));
20
+ const class_ = Function.dual<
21
+ (name: string) => (image: Il2Cpp.Image) => Effect.Effect<Il2Cpp.Class, never, never>,
22
+ (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, never, never>
23
+ >(2, (image: Il2Cpp.Image, name: string) => Effect.sync(() => image.class(name)));
17
24
 
18
25
  export {
19
26
  /**
@@ -27,75 +34,299 @@ export {
27
34
  * @since 1.0.0
28
35
  * @category Class
29
36
  */
30
- export const tryClass = (
31
- image: Il2Cpp.Image,
32
- name: string
33
- ): Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never> =>
37
+ export const tryClass = Function.dual<
38
+ (name: string) => (image: Il2Cpp.Image) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>,
39
+ (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>
40
+ >(2, (image: Il2Cpp.Image, name: string) =>
34
41
  Effect.try({
35
42
  try: () => image.tryClass(name),
36
43
  catch: () => new Cause.NoSuchElementException(`No class with name ${name}`),
37
- }).pipe(Effect.flatMap(Effect.fromNullable));
44
+ }).pipe(Effect.flatMap(Effect.fromNullable))
45
+ );
38
46
 
39
47
  /**
40
48
  * @since 1.0.0
41
49
  * @category Class
42
50
  */
43
- export const field = (klass: Il2Cpp.Class, name: string): Effect.Effect<Il2Cpp.Field, never, never> =>
44
- Effect.sync(() => klass.field(name));
51
+ export const classCached: Effect.Effect<
52
+ (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, never, never>,
53
+ never,
54
+ never
55
+ > = Effect.map(
56
+ Effect.cachedFunction(Function.tupled(class_), Equivalence.tuple(Il2CppEquivalence.image, Equivalence.string)),
57
+ Function.untupled
58
+ );
45
59
 
46
60
  /**
47
61
  * @since 1.0.0
48
62
  * @category Class
49
63
  */
50
- export const tryField = (
51
- klass: Il2Cpp.Class,
52
- name: string
53
- ): Effect.Effect<Il2Cpp.Field, Cause.NoSuchElementException, never> =>
54
- Effect.try({
55
- try: () => klass.tryField(name),
56
- catch: () => new Cause.NoSuchElementException(`No field with name ${name}`),
57
- }).pipe(Effect.flatMap(Effect.fromNullable));
64
+ export const tryClassCached: Effect.Effect<
65
+ (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>,
66
+ never,
67
+ never
68
+ > = Effect.map(
69
+ Effect.cachedFunction(Function.tupled(tryClass), Equivalence.tuple(Il2CppEquivalence.image, Equivalence.string)),
70
+ Function.untupled
71
+ );
58
72
 
59
73
  /**
60
74
  * @since 1.0.0
61
75
  * @category Class
62
76
  */
63
- export const method = (
64
- klass: Il2Cpp.Class,
65
- name: string,
66
- parameterCount?: number | undefined
67
- ): Effect.Effect<Il2Cpp.Method, never, never> => Effect.sync(() => klass.method(name, parameterCount));
77
+ export const fields = (klass: Il2Cpp.Class): Effect.Effect<ReadonlyArray<Il2Cpp.Field>, never, never> =>
78
+ Effect.sync(() => klass.fields);
68
79
 
69
80
  /**
70
81
  * @since 1.0.0
71
82
  * @category Class
72
83
  */
73
- export const tryMethod = (
74
- klass: Il2Cpp.Class,
75
- name: string,
76
- parameterCount?: number | undefined
77
- ): Effect.Effect<Il2Cpp.Method, Cause.NoSuchElementException, never> =>
78
- Effect.try({
79
- try: () => klass.tryMethod(name, parameterCount),
80
- catch: () => new Cause.NoSuchElementException(`No method with name ${name}`),
81
- }).pipe(Effect.flatMap(Effect.fromNullable));
84
+ export const field = Function.dual<
85
+ (
86
+ name: string
87
+ ) => <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
88
+ klass: Il2Cpp.Class
89
+ ) => Effect.Effect<Il2Cpp.Field<T>, never, never>,
90
+ <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
91
+ klass: Il2Cpp.Class,
92
+ name: string
93
+ ) => Effect.Effect<Il2Cpp.Field<T>, never, never>
94
+ >(
95
+ 2,
96
+ <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
97
+ klass: Il2Cpp.Class,
98
+ name: string
99
+ ): Effect.Effect<Il2Cpp.Field<T>, never, never> => Effect.sync(() => klass.field<T>(name))
100
+ );
101
+
102
+ /**
103
+ * @since 1.0.0
104
+ * @category Class
105
+ */
106
+ export const tryField = Function.dual<
107
+ (
108
+ name: string
109
+ ) => <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
110
+ klass: Il2Cpp.Class
111
+ ) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never>,
112
+ <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
113
+ klass: Il2Cpp.Class,
114
+ name: string
115
+ ) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never>
116
+ >(
117
+ 2,
118
+ <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
119
+ klass: Il2Cpp.Class,
120
+ name: string
121
+ ): Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never> =>
122
+ Effect.try({
123
+ try: () => klass.field<T>(name),
124
+ catch: () => new Cause.NoSuchElementException(`No field with name ${name}`),
125
+ }).pipe(Effect.flatMap(Effect.fromNullable))
126
+ );
82
127
 
83
128
  /**
84
129
  * @since 1.0.0
85
130
  * @category Class
86
131
  */
87
- export const nested = (klass: Il2Cpp.Class, name: string): Effect.Effect<Il2Cpp.Class, never, never> =>
88
- Effect.sync(() => klass.nested(name));
132
+ export const fieldCached: Effect.Effect<
133
+ <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
134
+ klass: Il2Cpp.Class,
135
+ name: string
136
+ ) => Effect.Effect<Il2Cpp.Field<T>, never, never>,
137
+ never,
138
+ never
139
+ > = Effect.map(
140
+ Effect.cachedFunction(Function.tupled(field), Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)),
141
+ (tupled) =>
142
+ Function.untupled(tupled) as <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
143
+ klass: Il2Cpp.Class,
144
+ name: string
145
+ ) => Effect.Effect<Il2Cpp.Field<T>, never, never>
146
+ );
89
147
 
90
148
  /**
91
149
  * @since 1.0.0
92
150
  * @category Class
93
151
  */
94
- export const tryNested = (
95
- klass: Il2Cpp.Class,
96
- name: string
97
- ): Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never> =>
152
+ export const tryFieldCached: Effect.Effect<
153
+ <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
154
+ klass: Il2Cpp.Class,
155
+ name: string
156
+ ) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never>,
157
+ never,
158
+ never
159
+ > = Effect.map(
160
+ Effect.cachedFunction(Function.tupled(tryField), Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)),
161
+ (tupled) =>
162
+ Function.untupled(tupled) as <T extends Il2Cpp.Field.Type = Il2Cpp.Field.Type>(
163
+ klass: Il2Cpp.Class,
164
+ name: string
165
+ ) => Effect.Effect<Il2Cpp.Field<T>, Cause.NoSuchElementException, never>
166
+ );
167
+
168
+ /**
169
+ * @since 1.0.0
170
+ * @category Class
171
+ */
172
+ export const methods = (klass: Il2Cpp.Class): Effect.Effect<ReadonlyArray<Il2Cpp.Method>, never, never> =>
173
+ Effect.sync(() => klass.methods);
174
+
175
+ /**
176
+ * @since 1.0.0
177
+ * @category Class
178
+ */
179
+ export const method = Function.dual<
180
+ (
181
+ name: string,
182
+ parameterCount?: number | undefined
183
+ ) => <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
184
+ klass: Il2Cpp.Class
185
+ ) => Effect.Effect<Il2Cpp.Method<T>, never, never>,
186
+ <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
187
+ klass: Il2Cpp.Class,
188
+ name: string,
189
+ parameterCount?: number | undefined
190
+ ) => Effect.Effect<Il2Cpp.Method<T>, never, never>
191
+ >(
192
+ (_arguments) => typeof _arguments[1] === "string",
193
+ <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
194
+ klass: Il2Cpp.Class,
195
+ name: string,
196
+ parameterCount?: number | undefined
197
+ ): Effect.Effect<Il2Cpp.Method<T>, never, never> => Effect.sync(() => klass.method<T>(name, parameterCount))
198
+ );
199
+
200
+ /**
201
+ * @since 1.0.0
202
+ * @category Class
203
+ */
204
+ export const tryMethod = Function.dual<
205
+ (
206
+ name: string,
207
+ parameterCount?: number | undefined
208
+ ) => <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
209
+ klass: Il2Cpp.Class
210
+ ) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never>,
211
+ <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
212
+ klass: Il2Cpp.Class,
213
+ name: string,
214
+ parameterCount?: number | undefined
215
+ ) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never>
216
+ >(
217
+ (_arguments) => typeof _arguments[1] === "string",
218
+ <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
219
+ klass: Il2Cpp.Class,
220
+ name: string,
221
+ parameterCount?: number | undefined
222
+ ): Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never> =>
223
+ Effect.try({
224
+ try: () => klass.tryMethod<T>(name, parameterCount),
225
+ catch: () => new Cause.NoSuchElementException(`No method with name ${name}`),
226
+ }).pipe(Effect.flatMap(Effect.fromNullable))
227
+ );
228
+
229
+ /**
230
+ * @since 1.0.0
231
+ * @category Class
232
+ */
233
+ export const methodCached: Effect.Effect<
234
+ <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
235
+ klass: Il2Cpp.Class,
236
+ name: string,
237
+ parameterCount?: number | undefined
238
+ ) => Effect.Effect<Il2Cpp.Method<T>, never, never>,
239
+ never,
240
+ never
241
+ > = Effect.map(
242
+ Effect.cachedFunction(
243
+ Function.tupled(method),
244
+ Equivalence.mapInput(
245
+ Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string, Equivalence.strict<number | undefined>()),
246
+ (tuple) => Tuple.make(tuple[0], tuple[1], tuple[2] ?? undefined)
247
+ )
248
+ ),
249
+ (tupled) =>
250
+ Function.untupled(tupled) as <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
251
+ klass: Il2Cpp.Class,
252
+ name: string,
253
+ parameterCount?: number | undefined
254
+ ) => Effect.Effect<Il2Cpp.Method<T>, never, never>
255
+ );
256
+
257
+ /**
258
+ * @since 1.0.0
259
+ * @category Class
260
+ */
261
+ export const tryMethodCached: Effect.Effect<
262
+ <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
263
+ klass: Il2Cpp.Class,
264
+ name: string,
265
+ parameterCount?: number | undefined
266
+ ) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never>,
267
+ never,
268
+ never
269
+ > = Effect.map(
270
+ Effect.cachedFunction(
271
+ Function.tupled(tryMethod),
272
+ Equivalence.mapInput(
273
+ Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string, Equivalence.strict<number | undefined>()),
274
+ (tuple) => Tuple.make(tuple[0], tuple[1], tuple[2] ?? undefined)
275
+ )
276
+ ),
277
+ (tupled) =>
278
+ Function.untupled(tupled) as <T extends Il2Cpp.Method.ReturnType = Il2Cpp.Method.ReturnType>(
279
+ klass: Il2Cpp.Class,
280
+ name: string,
281
+ parameterCount?: number | undefined
282
+ ) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never>
283
+ );
284
+
285
+ /**
286
+ * @since 1.0.0
287
+ * @category Class
288
+ */
289
+ export const nested = Function.dual<
290
+ (name: string) => (klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Class, never, never>,
291
+ (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, never, never>
292
+ >(2, (klass: Il2Cpp.Class, name: string) => Effect.sync(() => klass.nested(name)));
293
+
294
+ /**
295
+ * @since 1.0.0
296
+ * @category Class
297
+ */
298
+ export const tryNested = Function.dual<
299
+ (name: string) => (klass: Il2Cpp.Class) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>,
300
+ (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>
301
+ >(2, (klass: Il2Cpp.Class, name: string) =>
98
302
  Effect.try({
99
303
  try: () => klass.tryNested(name),
100
304
  catch: () => new Cause.NoSuchElementException(`No nested class with name ${name}`),
101
- }).pipe(Effect.flatMap(Effect.fromNullable));
305
+ }).pipe(Effect.flatMap(Effect.fromNullable))
306
+ );
307
+
308
+ /**
309
+ * @since 1.0.0
310
+ * @category Class
311
+ */
312
+ export const nestedCached: Effect.Effect<
313
+ (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, never, never>,
314
+ never,
315
+ never
316
+ > = Effect.map(
317
+ Effect.cachedFunction(Function.tupled(nested), Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)),
318
+ Function.untupled
319
+ );
320
+
321
+ /**
322
+ * @since 1.0.0
323
+ * @category Class
324
+ */
325
+ export const tryNestedCached: Effect.Effect<
326
+ (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>,
327
+ never,
328
+ never
329
+ > = Effect.map(
330
+ Effect.cachedFunction(Function.tupled(tryNested), Equivalence.tuple(Il2CppEquivalence.class, Equivalence.string)),
331
+ Function.untupled
332
+ );
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @since 1.0.0
3
+ * @category Equivalence
4
+ */
5
+
6
+ import * as Equivalence from "effect/Equivalence";
7
+
8
+ /**
9
+ * @since 1.0.0
10
+ * @category Equivalence
11
+ */
12
+ export const nativePointer = Equivalence.make<NativePointer>((self, that) => self.equals(that));
13
+
14
+ /**
15
+ * @since 1.0.0
16
+ * @category Equivalence
17
+ */
18
+ export const image = Equivalence.mapInput(nativePointer, (image: Il2Cpp.Image) => image.handle);
19
+
20
+ /**
21
+ * @since 1.0.0
22
+ * @category Equivalence
23
+ */
24
+ const class_ = Equivalence.mapInput(nativePointer, (klass: Il2Cpp.Class) => klass.handle);
25
+
26
+ export {
27
+ /**
28
+ * @since 1.0.0
29
+ * @category Equivalence
30
+ */
31
+ class_ as class,
32
+ };
33
+
34
+ /**
35
+ * @since 1.0.0
36
+ * @category Equivalence
37
+ */
38
+ export const field = Equivalence.mapInput(nativePointer, (field: Il2Cpp.Field) => field.handle);
39
+
40
+ /**
41
+ * @since 1.0.0
42
+ * @category Equivalence
43
+ */
44
+ export const method = Equivalence.mapInput(nativePointer, (method: Il2Cpp.Method) => method.handle);
@@ -1,7 +1,6 @@
1
1
  /**
2
- * FridaIl2cppBridge.ts
3
- *
4
2
  * @since 1.0.0
3
+ * @category FridaIl2cppBridge
5
4
  */
6
5
 
7
6
  import "frida-il2cpp-bridge";
package/src/index.ts CHANGED
@@ -15,8 +15,13 @@ export * as Assembly from "./Assembly.ts"
15
15
  export * as Class from "./Class.ts"
16
16
 
17
17
  /**
18
- * FridaIl2cppBridge.ts
19
- *
20
18
  * @since 1.0.0
19
+ * @category Equivalence
20
+ */
21
+ export * as Equivalence from "./Equivalence.ts"
22
+
23
+ /**
24
+ * @since 1.0.0
25
+ * @category FridaIl2cppBridge
21
26
  */
22
27
  export * as FridaIl2cppBridge from "./FridaIl2cppBridge.ts"