@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.
- 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 +58 -8
- package/dist/Class.d.ts.map +1 -1
- package/dist/Class.js +67 -13
- 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/FridaIl2cppBridge.d.ts +1 -2
- package/dist/FridaIl2cppBridge.d.ts.map +1 -1
- package/dist/FridaIl2cppBridge.js +1 -2
- package/dist/FridaIl2cppBridge.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/Assembly.ts +19 -0
- package/src/Class.ts +269 -38
- package/src/Equivalence.ts +44 -0
- package/src/FridaIl2cppBridge.ts +1 -2
- package/src/index.ts +7 -2
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
|
@@ -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
|
|
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
44
|
/**
|
|
45
45
|
* @since 1.0.0
|
|
46
46
|
* @category Class
|
|
47
47
|
*/
|
|
48
|
-
export declare const
|
|
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
|
|
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
|
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":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,CAAC;AAE7B,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAOxC;;;GAGG;AACH,QAAA,MAAM,MAAM,UACD,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,aAC5E,MAAM,CAAC,KAAK,QAAQ,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CACH,CAAC;AAElF,OAAO;AACH;;;GAGG;AACH,MAAM,IAAI,KAAK,GAClB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,UACV,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,aACnG,MAAM,CAAC,KAAK,QAAQ,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAM1G,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,CACnC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAChF,KAAK,EACL,KAAK,CAIR,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,CACtC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,EACvG,KAAK,EACL,KAAK,CAIR,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,CAAC,KAAK,KAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CACjE,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,KAAK,UAEJ,MAAM,KACX,CAAC,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EACjD,KAAK,EAAE,MAAM,CAAC,KAAK,KAClB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAChD,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,6BACjB,MAAM,CAAC,KAAK,QACb,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAOpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,UAEP,MAAM,KACX,CAAC,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EACjD,KAAK,EAAE,MAAM,CAAC,KAAK,KAClB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,MACvE,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,6BACjB,MAAM,CAAC,KAAK,QACb,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAW3E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EACnC,CAAC,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAC5C,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,IAAI,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GACjD,KAAK,EACL,KAAK,CAQR,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EACtC,CAAC,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAC5C,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,IAAI,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,GACxE,KAAK,EACL,KAAK,CAQR,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,CAAC,KAAK,KAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAClE,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,MAAM,UAEL,MAAM,mBACK,MAAM,GAAG,SAAS,KAClC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAC/D,KAAK,EAAE,MAAM,CAAC,KAAK,KAClB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MACjD,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,UAAU,oCACxB,MAAM,CAAC,KAAK,QACb,MAAM,mBACK,MAAM,GAAG,SAAS,KAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAQrD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,UAER,MAAM,mBACK,MAAM,GAAG,SAAS,KAClC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAC/D,KAAK,EAAE,MAAM,CAAC,KAAK,KAClB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,MACxE,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,UAAU,oCACxB,MAAM,CAAC,KAAK,QACb,MAAM,mBACK,MAAM,GAAG,SAAS,KAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAY5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EACpC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAC1D,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,KAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAClD,KAAK,EACL,KAAK,CAeR,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EACvC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAC1D,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,KAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,GACzE,KAAK,EACL,KAAK,CAeR,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM,UACR,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,aAC5E,MAAM,CAAC,KAAK,QAAQ,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CACF,CAAC;AAEnF;;;GAGG;AACH,eAAO,MAAM,SAAS,UACX,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,aACnG,MAAM,CAAC,KAAK,QAAQ,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAM1G,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAChF,KAAK,EACL,KAAK,CAIR,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,CACvC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,EACvG,KAAK,EACL,KAAK,CAIR,CAAC"}
|
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
|
|
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
|
|
37
|
-
|
|
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
|
|
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
|
|
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","
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FridaIl2cppBridge.d.ts","sourceRoot":"","sources":["../src/FridaIl2cppBridge.ts"],"names":[],"mappings":"AAAA
|
|
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 +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
|
|
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
|
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
|
|
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
|
|
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,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_ =
|
|
16
|
-
|
|
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
|
-
|
|
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
|
|
44
|
-
|
|
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
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
|
64
|
-
klass
|
|
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
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
Effect.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
|
88
|
-
|
|
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
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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);
|
package/src/FridaIl2cppBridge.ts
CHANGED
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"
|