@efffrida/il2cpp-bridge 0.0.19 → 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.
- package/dist/Assembly.d.ts +10 -0
- package/dist/Assembly.d.ts.map +1 -1
- package/dist/Assembly.js +11 -0
- package/dist/Assembly.js.map +1 -1
- package/dist/Class.d.ts +54 -4
- package/dist/Class.d.ts.map +1 -1
- package/dist/Class.js +54 -1
- package/dist/Class.js.map +1 -1
- package/dist/Equivalence.d.ts +37 -0
- package/dist/Equivalence.d.ts.map +1 -0
- package/dist/Equivalence.js +37 -0
- package/dist/Equivalence.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/Assembly.ts +19 -0
- package/src/Class.ts +222 -20
- package/src/Equivalence.ts +44 -0
- package/src/index.ts +6 -0
package/dist/Assembly.d.ts
CHANGED
|
@@ -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
|
package/dist/Assembly.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
package/dist/Assembly.js.map
CHANGED
|
@@ -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;
|
|
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
|
@@ -25,22 +25,62 @@ export declare const tryClass: ((name: string) => (image: Il2Cpp.Image) => Effec
|
|
|
25
25
|
* @since 1.0.0
|
|
26
26
|
* @category Class
|
|
27
27
|
*/
|
|
28
|
-
export declare const
|
|
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
|
|
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
|
|
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
|
|
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
|
+
/**
|
|
45
|
+
* @since 1.0.0
|
|
46
|
+
* @category Class
|
|
47
|
+
*/
|
|
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
|
+
/**
|
|
50
|
+
* @since 1.0.0
|
|
51
|
+
* @category Class
|
|
52
|
+
*/
|
|
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>;
|
|
44
84
|
/**
|
|
45
85
|
* @since 1.0.0
|
|
46
86
|
* @category Class
|
|
@@ -51,4 +91,14 @@ export declare const nested: ((name: string) => (klass: Il2Cpp.Class) => Effect.
|
|
|
51
91
|
* @category Class
|
|
52
92
|
*/
|
|
53
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
|
package/dist/Class.d.ts.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../src/Class.ts"],"names":[],"mappings":"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"}
|
package/dist/Class.js
CHANGED
|
@@ -5,7 +5,10 @@
|
|
|
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
|
import * as Function from "effect/Function";
|
|
10
|
+
import * as Tuple from "effect/Tuple";
|
|
11
|
+
import * as Il2CppEquivalence from "./Equivalence.js";
|
|
9
12
|
/**
|
|
10
13
|
* @since 1.0.0
|
|
11
14
|
* @category Class
|
|
@@ -25,6 +28,21 @@ export const tryClass = /*#__PURE__*/Function.dual(2, (image, name) => Effect.tr
|
|
|
25
28
|
try: () => image.tryClass(name),
|
|
26
29
|
catch: () => new Cause.NoSuchElementException(`No class with name ${name}`)
|
|
27
30
|
}).pipe(Effect.flatMap(Effect.fromNullable)));
|
|
31
|
+
/**
|
|
32
|
+
* @since 1.0.0
|
|
33
|
+
* @category Class
|
|
34
|
+
*/
|
|
35
|
+
export const classCached = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.cachedFunction(/*#__PURE__*/Function.tupled(class_), /*#__PURE__*/Equivalence.tuple(Il2CppEquivalence.image, Equivalence.string)), Function.untupled);
|
|
36
|
+
/**
|
|
37
|
+
* @since 1.0.0
|
|
38
|
+
* @category Class
|
|
39
|
+
*/
|
|
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);
|
|
28
46
|
/**
|
|
29
47
|
* @since 1.0.0
|
|
30
48
|
* @category Class
|
|
@@ -35,9 +53,24 @@ export const field = /*#__PURE__*/Function.dual(2, (klass, name) => Effect.sync(
|
|
|
35
53
|
* @category Class
|
|
36
54
|
*/
|
|
37
55
|
export const tryField = /*#__PURE__*/Function.dual(2, (klass, name) => Effect.try({
|
|
38
|
-
try: () => klass.
|
|
56
|
+
try: () => klass.field(name),
|
|
39
57
|
catch: () => new Cause.NoSuchElementException(`No field with name ${name}`)
|
|
40
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));
|
|
69
|
+
/**
|
|
70
|
+
* @since 1.0.0
|
|
71
|
+
* @category Class
|
|
72
|
+
*/
|
|
73
|
+
export const methods = klass => Effect.sync(() => klass.methods);
|
|
41
74
|
/**
|
|
42
75
|
* @since 1.0.0
|
|
43
76
|
* @category Class
|
|
@@ -51,6 +84,16 @@ export const tryMethod = /*#__PURE__*/Function.dual(_arguments => typeof _argume
|
|
|
51
84
|
try: () => klass.tryMethod(name, parameterCount),
|
|
52
85
|
catch: () => new Cause.NoSuchElementException(`No method with name ${name}`)
|
|
53
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));
|
|
54
97
|
/**
|
|
55
98
|
* @since 1.0.0
|
|
56
99
|
* @category Class
|
|
@@ -64,4 +107,14 @@ export const tryNested = /*#__PURE__*/Function.dual(2, (klass, name) => Effect.t
|
|
|
64
107
|
try: () => klass.tryNested(name),
|
|
65
108
|
catch: () => new Cause.NoSuchElementException(`No nested class with name ${name}`)
|
|
66
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);
|
|
67
120
|
//# sourceMappingURL=Class.js.map
|
package/dist/Class.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Class.js","names":["Cause","Effect","Function","class_","dual","image","name","sync","class","tryClass","try","catch","NoSuchElementException","pipe","flatMap","fromNullable","
|
|
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":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,11 @@ export * as Assembly from "./Assembly.ts";
|
|
|
11
11
|
* @category Class
|
|
12
12
|
*/
|
|
13
13
|
export * as Class from "./Class.ts";
|
|
14
|
+
/**
|
|
15
|
+
* @since 1.0.0
|
|
16
|
+
* @category Equivalence
|
|
17
|
+
*/
|
|
18
|
+
export * as Equivalence from "./Equivalence.ts";
|
|
14
19
|
/**
|
|
15
20
|
* @since 1.0.0
|
|
16
21
|
* @category FridaIl2cppBridge
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;;;GAGG;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
|
@@ -11,6 +11,11 @@ export * as Assembly from "./Assembly.js";
|
|
|
11
11
|
* @category Class
|
|
12
12
|
*/
|
|
13
13
|
export * as Class from "./Class.js";
|
|
14
|
+
/**
|
|
15
|
+
* @since 1.0.0
|
|
16
|
+
* @category Equivalence
|
|
17
|
+
*/
|
|
18
|
+
export * as Equivalence from "./Equivalence.js";
|
|
14
19
|
/**
|
|
15
20
|
* @since 1.0.0
|
|
16
21
|
* @category FridaIl2cppBridge
|
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;;;;AAIA,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
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,7 +7,11 @@ 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";
|
|
10
11
|
import * as Function from "effect/Function";
|
|
12
|
+
import * as Tuple from "effect/Tuple";
|
|
13
|
+
|
|
14
|
+
import * as Il2CppEquivalence from "./Equivalence.ts";
|
|
11
15
|
|
|
12
16
|
/**
|
|
13
17
|
* @since 1.0.0
|
|
@@ -40,29 +44,134 @@ export const tryClass = Function.dual<
|
|
|
40
44
|
}).pipe(Effect.flatMap(Effect.fromNullable))
|
|
41
45
|
);
|
|
42
46
|
|
|
47
|
+
/**
|
|
48
|
+
* @since 1.0.0
|
|
49
|
+
* @category Class
|
|
50
|
+
*/
|
|
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
|
+
);
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @since 1.0.0
|
|
62
|
+
* @category Class
|
|
63
|
+
*/
|
|
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
|
+
);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* @since 1.0.0
|
|
75
|
+
* @category Class
|
|
76
|
+
*/
|
|
77
|
+
export const fields = (klass: Il2Cpp.Class): Effect.Effect<ReadonlyArray<Il2Cpp.Field>, never, never> =>
|
|
78
|
+
Effect.sync(() => klass.fields);
|
|
79
|
+
|
|
43
80
|
/**
|
|
44
81
|
* @since 1.0.0
|
|
45
82
|
* @category Class
|
|
46
83
|
*/
|
|
47
84
|
export const field = Function.dual<
|
|
48
|
-
(
|
|
49
|
-
|
|
50
|
-
|
|
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
|
+
);
|
|
51
101
|
|
|
52
102
|
/**
|
|
53
103
|
* @since 1.0.0
|
|
54
104
|
* @category Class
|
|
55
105
|
*/
|
|
56
106
|
export const tryField = Function.dual<
|
|
57
|
-
(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
+
);
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @since 1.0.0
|
|
130
|
+
* @category Class
|
|
131
|
+
*/
|
|
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>
|
|
64
146
|
);
|
|
65
147
|
|
|
148
|
+
/**
|
|
149
|
+
* @since 1.0.0
|
|
150
|
+
* @category Class
|
|
151
|
+
*/
|
|
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
|
+
|
|
66
175
|
/**
|
|
67
176
|
* @since 1.0.0
|
|
68
177
|
* @category Class
|
|
@@ -71,16 +180,21 @@ export const method = Function.dual<
|
|
|
71
180
|
(
|
|
72
181
|
name: string,
|
|
73
182
|
parameterCount?: number | undefined
|
|
74
|
-
) =>
|
|
75
|
-
|
|
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>(
|
|
76
187
|
klass: Il2Cpp.Class,
|
|
77
188
|
name: string,
|
|
78
189
|
parameterCount?: number | undefined
|
|
79
|
-
) => Effect.Effect<Il2Cpp.Method
|
|
190
|
+
) => Effect.Effect<Il2Cpp.Method<T>, never, never>
|
|
80
191
|
>(
|
|
81
192
|
(_arguments) => typeof _arguments[1] === "string",
|
|
82
|
-
|
|
83
|
-
|
|
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))
|
|
84
198
|
);
|
|
85
199
|
|
|
86
200
|
/**
|
|
@@ -91,21 +205,83 @@ export const tryMethod = Function.dual<
|
|
|
91
205
|
(
|
|
92
206
|
name: string,
|
|
93
207
|
parameterCount?: number | undefined
|
|
94
|
-
) =>
|
|
95
|
-
|
|
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>(
|
|
96
212
|
klass: Il2Cpp.Class,
|
|
97
213
|
name: string,
|
|
98
214
|
parameterCount?: number | undefined
|
|
99
|
-
) => Effect.Effect<Il2Cpp.Method
|
|
215
|
+
) => Effect.Effect<Il2Cpp.Method<T>, Cause.NoSuchElementException, never>
|
|
100
216
|
>(
|
|
101
217
|
(_arguments) => typeof _arguments[1] === "string",
|
|
102
|
-
|
|
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> =>
|
|
103
223
|
Effect.try({
|
|
104
|
-
try: () => klass.tryMethod(name, parameterCount),
|
|
224
|
+
try: () => klass.tryMethod<T>(name, parameterCount),
|
|
105
225
|
catch: () => new Cause.NoSuchElementException(`No method with name ${name}`),
|
|
106
226
|
}).pipe(Effect.flatMap(Effect.fromNullable))
|
|
107
227
|
);
|
|
108
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
|
+
|
|
109
285
|
/**
|
|
110
286
|
* @since 1.0.0
|
|
111
287
|
* @category Class
|
|
@@ -128,3 +304,29 @@ export const tryNested = Function.dual<
|
|
|
128
304
|
catch: () => new Cause.NoSuchElementException(`No nested class with name ${name}`),
|
|
129
305
|
}).pipe(Effect.flatMap(Effect.fromNullable))
|
|
130
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);
|
package/src/index.ts
CHANGED
|
@@ -14,6 +14,12 @@ export * as Assembly from "./Assembly.ts"
|
|
|
14
14
|
*/
|
|
15
15
|
export * as Class from "./Class.ts"
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
* @category Equivalence
|
|
20
|
+
*/
|
|
21
|
+
export * as Equivalence from "./Equivalence.ts"
|
|
22
|
+
|
|
17
23
|
/**
|
|
18
24
|
* @since 1.0.0
|
|
19
25
|
* @category FridaIl2cppBridge
|