@efffrida/il2cpp-bridge 0.0.16 → 0.0.18

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.
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @since 1.0.0
3
+ * @category Assembly
4
+ */
5
+ import "frida-il2cpp-bridge";
6
+ import type * as Scope from "effect/Scope";
7
+ import * as Cause from "effect/Cause";
8
+ import * as Effect from "effect/Effect";
9
+ /**
10
+ * @since 1.0.0
11
+ * @category Assembly
12
+ */
13
+ export declare const assembly: (name: string) => Effect.Effect<Il2Cpp.Assembly, never, never>;
14
+ /**
15
+ * @since 1.0.0
16
+ * @category Assembly
17
+ */
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 attach: Effect.Effect<Il2Cpp.Thread, never, Scope.Scope>;
24
+ //# sourceMappingURL=Assembly.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @since 1.0.0
3
+ * @category Assembly
4
+ */
5
+ import "frida-il2cpp-bridge";
6
+ import * as Cause from "effect/Cause";
7
+ import * as Effect from "effect/Effect";
8
+ /**
9
+ * @since 1.0.0
10
+ * @category Assembly
11
+ */
12
+ export const assembly = name => Effect.sync(() => Il2Cpp.domain.assembly(name));
13
+ /**
14
+ * @since 1.0.0
15
+ * @category Assembly
16
+ */
17
+ export const tryAssembly = name => Effect.try({
18
+ try: () => Il2Cpp.domain.tryAssembly(name),
19
+ catch: () => new Cause.NoSuchElementException(`No assembly with name ${name}`)
20
+ }).pipe(Effect.flatMap(Effect.fromNullable));
21
+ /**
22
+ * @since 1.0.0
23
+ * @category Assembly
24
+ */
25
+ export const attach = /*#__PURE__*/Effect.acquireRelease(/*#__PURE__*/Effect.sync(() => Il2Cpp.domain.attach()), thread => Effect.sync(() => thread.detach()));
26
+ //# sourceMappingURL=Assembly.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @since 1.0.0
3
+ * @category Class
4
+ */
5
+ import "frida-il2cpp-bridge";
6
+ import * as Cause from "effect/Cause";
7
+ import * as Effect from "effect/Effect";
8
+ /**
9
+ * @since 1.0.0
10
+ * @category Class
11
+ */
12
+ declare const class_: (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, never, never>;
13
+ export {
14
+ /**
15
+ * @since 1.0.0
16
+ * @category Class
17
+ */
18
+ class_ as class, };
19
+ /**
20
+ * @since 1.0.0
21
+ * @category Class
22
+ */
23
+ export declare const tryClass: (image: Il2Cpp.Image, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>;
24
+ /**
25
+ * @since 1.0.0
26
+ * @category Class
27
+ */
28
+ export declare const field: (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Field, never, never>;
29
+ /**
30
+ * @since 1.0.0
31
+ * @category Class
32
+ */
33
+ export declare const tryField: (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Field, Cause.NoSuchElementException, never>;
34
+ /**
35
+ * @since 1.0.0
36
+ * @category Class
37
+ */
38
+ export declare const method: (klass: Il2Cpp.Class, name: string, parameterCount?: number | undefined) => Effect.Effect<Il2Cpp.Method, never, never>;
39
+ /**
40
+ * @since 1.0.0
41
+ * @category Class
42
+ */
43
+ export declare const tryMethod: (klass: Il2Cpp.Class, name: string, parameterCount?: number | undefined) => Effect.Effect<Il2Cpp.Method, Cause.NoSuchElementException, never>;
44
+ /**
45
+ * @since 1.0.0
46
+ * @category Class
47
+ */
48
+ export declare const nested: (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, never, never>;
49
+ /**
50
+ * @since 1.0.0
51
+ * @category Class
52
+ */
53
+ export declare const tryNested: (klass: Il2Cpp.Class, name: string) => Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never>;
54
+ //# sourceMappingURL=Class.d.ts.map
@@ -0,0 +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"}
package/dist/Class.js ADDED
@@ -0,0 +1,66 @@
1
+ /**
2
+ * @since 1.0.0
3
+ * @category Class
4
+ */
5
+ import "frida-il2cpp-bridge";
6
+ import * as Cause from "effect/Cause";
7
+ import * as Effect from "effect/Effect";
8
+ /**
9
+ * @since 1.0.0
10
+ * @category Class
11
+ */
12
+ const class_ = (image, name) => Effect.sync(() => image.class(name));
13
+ export {
14
+ /**
15
+ * @since 1.0.0
16
+ * @category Class
17
+ */
18
+ class_ as class };
19
+ /**
20
+ * @since 1.0.0
21
+ * @category Class
22
+ */
23
+ export const tryClass = (image, name) => Effect.try({
24
+ try: () => image.tryClass(name),
25
+ catch: () => new Cause.NoSuchElementException(`No class with name ${name}`)
26
+ }).pipe(Effect.flatMap(Effect.fromNullable));
27
+ /**
28
+ * @since 1.0.0
29
+ * @category Class
30
+ */
31
+ export const field = (klass, name) => Effect.sync(() => klass.field(name));
32
+ /**
33
+ * @since 1.0.0
34
+ * @category Class
35
+ */
36
+ export const tryField = (klass, name) => Effect.try({
37
+ try: () => klass.tryField(name),
38
+ catch: () => new Cause.NoSuchElementException(`No field with name ${name}`)
39
+ }).pipe(Effect.flatMap(Effect.fromNullable));
40
+ /**
41
+ * @since 1.0.0
42
+ * @category Class
43
+ */
44
+ export const method = (klass, name, parameterCount) => Effect.sync(() => klass.method(name, parameterCount));
45
+ /**
46
+ * @since 1.0.0
47
+ * @category Class
48
+ */
49
+ export const tryMethod = (klass, name, parameterCount) => Effect.try({
50
+ try: () => klass.tryMethod(name, parameterCount),
51
+ catch: () => new Cause.NoSuchElementException(`No method with name ${name}`)
52
+ }).pipe(Effect.flatMap(Effect.fromNullable));
53
+ /**
54
+ * @since 1.0.0
55
+ * @category Class
56
+ */
57
+ export const nested = (klass, name) => Effect.sync(() => klass.nested(name));
58
+ /**
59
+ * @since 1.0.0
60
+ * @category Class
61
+ */
62
+ export const tryNested = (klass, name) => Effect.try({
63
+ try: () => klass.tryNested(name),
64
+ catch: () => new Cause.NoSuchElementException(`No nested class with name ${name}`)
65
+ }).pipe(Effect.flatMap(Effect.fromNullable));
66
+ //# sourceMappingURL=Class.js.map
@@ -0,0 +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":[]}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,16 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ /**
5
+ * @since 1.0.0
6
+ * @category Assembly
7
+ */
8
+ export * as Assembly from "./Assembly.ts";
9
+ /**
10
+ * @since 1.0.0
11
+ * @category Class
12
+ */
13
+ export * as Class from "./Class.ts";
4
14
  /**
5
15
  * FridaIl2cppBridge.ts
6
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;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;;;;GAIG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA"}
package/dist/index.js CHANGED
@@ -1,6 +1,16 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ /**
5
+ * @since 1.0.0
6
+ * @category Assembly
7
+ */
8
+ export * as Assembly from "./Assembly.js";
9
+ /**
10
+ * @since 1.0.0
11
+ * @category Class
12
+ */
13
+ export * as Class from "./Class.js";
4
14
  /**
5
15
  * FridaIl2cppBridge.ts
6
16
  *
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["FridaIl2cppBridge"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;;;;;AAKA,OAAO,KAAKA,iBAAiB,MAAM,wBAAwB","ignoreList":[]}
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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@efffrida/il2cpp-bridge",
3
- "version": "0.0.16",
3
+ "version": "0.0.18",
4
4
  "description": "effect-ts frida-il2cpp-bridge",
5
5
  "keywords": [
6
6
  "frida.re",
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @since 1.0.0
3
+ * @category Assembly
4
+ */
5
+
6
+ import "frida-il2cpp-bridge";
7
+
8
+ import type * as Scope from "effect/Scope";
9
+
10
+ import * as Cause from "effect/Cause";
11
+ import * as Effect from "effect/Effect";
12
+
13
+ /**
14
+ * @since 1.0.0
15
+ * @category Assembly
16
+ */
17
+ export const assembly = (name: string): Effect.Effect<Il2Cpp.Assembly, never, never> =>
18
+ Effect.sync(() => Il2Cpp.domain.assembly(name));
19
+
20
+ /**
21
+ * @since 1.0.0
22
+ * @category Assembly
23
+ */
24
+ export const tryAssembly = (name: string): Effect.Effect<Il2Cpp.Assembly, Cause.NoSuchElementException, never> =>
25
+ Effect.try({
26
+ try: () => Il2Cpp.domain.tryAssembly(name),
27
+ catch: () => new Cause.NoSuchElementException(`No assembly with name ${name}`),
28
+ }).pipe(Effect.flatMap(Effect.fromNullable));
29
+
30
+ /**
31
+ * @since 1.0.0
32
+ * @category Assembly
33
+ */
34
+ export const attach: Effect.Effect<Il2Cpp.Thread, never, Scope.Scope> = Effect.acquireRelease(
35
+ Effect.sync(() => Il2Cpp.domain.attach()),
36
+ (thread) => Effect.sync(() => thread.detach())
37
+ );
package/src/Class.ts ADDED
@@ -0,0 +1,101 @@
1
+ /**
2
+ * @since 1.0.0
3
+ * @category Class
4
+ */
5
+
6
+ import "frida-il2cpp-bridge";
7
+
8
+ import * as Cause from "effect/Cause";
9
+ import * as Effect from "effect/Effect";
10
+
11
+ /**
12
+ * @since 1.0.0
13
+ * @category Class
14
+ */
15
+ const class_ = (image: Il2Cpp.Image, name: string): Effect.Effect<Il2Cpp.Class, never, never> =>
16
+ Effect.sync(() => image.class(name));
17
+
18
+ export {
19
+ /**
20
+ * @since 1.0.0
21
+ * @category Class
22
+ */
23
+ class_ as class,
24
+ };
25
+
26
+ /**
27
+ * @since 1.0.0
28
+ * @category Class
29
+ */
30
+ export const tryClass = (
31
+ image: Il2Cpp.Image,
32
+ name: string
33
+ ): Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never> =>
34
+ Effect.try({
35
+ try: () => image.tryClass(name),
36
+ catch: () => new Cause.NoSuchElementException(`No class with name ${name}`),
37
+ }).pipe(Effect.flatMap(Effect.fromNullable));
38
+
39
+ /**
40
+ * @since 1.0.0
41
+ * @category Class
42
+ */
43
+ export const field = (klass: Il2Cpp.Class, name: string): Effect.Effect<Il2Cpp.Field, never, never> =>
44
+ Effect.sync(() => klass.field(name));
45
+
46
+ /**
47
+ * @since 1.0.0
48
+ * @category Class
49
+ */
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));
58
+
59
+ /**
60
+ * @since 1.0.0
61
+ * @category Class
62
+ */
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));
68
+
69
+ /**
70
+ * @since 1.0.0
71
+ * @category Class
72
+ */
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));
82
+
83
+ /**
84
+ * @since 1.0.0
85
+ * @category Class
86
+ */
87
+ export const nested = (klass: Il2Cpp.Class, name: string): Effect.Effect<Il2Cpp.Class, never, never> =>
88
+ Effect.sync(() => klass.nested(name));
89
+
90
+ /**
91
+ * @since 1.0.0
92
+ * @category Class
93
+ */
94
+ export const tryNested = (
95
+ klass: Il2Cpp.Class,
96
+ name: string
97
+ ): Effect.Effect<Il2Cpp.Class, Cause.NoSuchElementException, never> =>
98
+ Effect.try({
99
+ try: () => klass.tryNested(name),
100
+ catch: () => new Cause.NoSuchElementException(`No nested class with name ${name}`),
101
+ }).pipe(Effect.flatMap(Effect.fromNullable));
package/src/index.ts CHANGED
@@ -2,6 +2,18 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
 
5
+ /**
6
+ * @since 1.0.0
7
+ * @category Assembly
8
+ */
9
+ export * as Assembly from "./Assembly.ts"
10
+
11
+ /**
12
+ * @since 1.0.0
13
+ * @category Class
14
+ */
15
+ export * as Class from "./Class.ts"
16
+
5
17
  /**
6
18
  * FridaIl2cppBridge.ts
7
19
  *