capacitor-dex-editor 0.0.48 → 0.0.49

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/README.md CHANGED
@@ -172,6 +172,8 @@ MIT
172
172
 
173
173
  * [`execute(...)`](#execute)
174
174
  * [`openSmaliEditor(...)`](#opensmalieditor)
175
+ * [`openXmlEditor(...)`](#openxmleditor)
176
+ * [`openCodeEditor(...)`](#opencodeeditor)
175
177
  * [Interfaces](#interfaces)
176
178
  * [Type Aliases](#type-aliases)
177
179
 
@@ -203,7 +205,7 @@ execute(options: DexExecuteOptions) => Promise<DexExecuteResult>
203
205
  ### openSmaliEditor(...)
204
206
 
205
207
  ```typescript
206
- openSmaliEditor(options: OpenSmaliEditorOptions) => Promise<OpenSmaliEditorResult>
208
+ openSmaliEditor(options: OpenSmaliEditorOptions) => Promise<OpenEditorResult>
207
209
  ```
208
210
 
209
211
  打开原生 Smali 编辑器
@@ -212,7 +214,41 @@ openSmaliEditor(options: OpenSmaliEditorOptions) => Promise<OpenSmaliEditorResul
212
214
  | ------------- | ------------------------------------------------------------------------- |
213
215
  | **`options`** | <code><a href="#opensmalieditoroptions">OpenSmaliEditorOptions</a></code> |
214
216
 
215
- **Returns:** <code>Promise&lt;<a href="#opensmalieditorresult">OpenSmaliEditorResult</a>&gt;</code>
217
+ **Returns:** <code>Promise&lt;<a href="#openeditorresult">OpenEditorResult</a>&gt;</code>
218
+
219
+ --------------------
220
+
221
+
222
+ ### openXmlEditor(...)
223
+
224
+ ```typescript
225
+ openXmlEditor(options: OpenXmlEditorOptions) => Promise<OpenEditorResult>
226
+ ```
227
+
228
+ 打开原生 XML 编辑器
229
+
230
+ | Param | Type |
231
+ | ------------- | --------------------------------------------------------------------- |
232
+ | **`options`** | <code><a href="#openxmleditoroptions">OpenXmlEditorOptions</a></code> |
233
+
234
+ **Returns:** <code>Promise&lt;<a href="#openeditorresult">OpenEditorResult</a>&gt;</code>
235
+
236
+ --------------------
237
+
238
+
239
+ ### openCodeEditor(...)
240
+
241
+ ```typescript
242
+ openCodeEditor(options: OpenCodeEditorOptions) => Promise<OpenEditorResult>
243
+ ```
244
+
245
+ 打开通用代码编辑器
246
+
247
+ | Param | Type |
248
+ | ------------- | ----------------------------------------------------------------------- |
249
+ | **`options`** | <code><a href="#opencodeeditoroptions">OpenCodeEditorOptions</a></code> |
250
+
251
+ **Returns:** <code>Promise&lt;<a href="#openeditorresult">OpenEditorResult</a>&gt;</code>
216
252
 
217
253
  --------------------
218
254
 
@@ -237,7 +273,7 @@ openSmaliEditor(options: OpenSmaliEditorOptions) => Promise<OpenSmaliEditorResul
237
273
  | **`params`** | <code><a href="#record">Record</a>&lt;string, any&gt;</code> |
238
274
 
239
275
 
240
- #### OpenSmaliEditorResult
276
+ #### OpenEditorResult
241
277
 
242
278
  | Prop | Type |
243
279
  | --------------- | -------------------- |
@@ -257,6 +293,27 @@ openSmaliEditor(options: OpenSmaliEditorOptions) => Promise<OpenSmaliEditorResul
257
293
  | **`readOnly`** | <code>boolean</code> |
258
294
 
259
295
 
296
+ #### OpenXmlEditorOptions
297
+
298
+ | Prop | Type |
299
+ | -------------- | -------------------- |
300
+ | **`content`** | <code>string</code> |
301
+ | **`title`** | <code>string</code> |
302
+ | **`filePath`** | <code>string</code> |
303
+ | **`readOnly`** | <code>boolean</code> |
304
+
305
+
306
+ #### OpenCodeEditorOptions
307
+
308
+ | Prop | Type |
309
+ | ---------------- | -------------------- |
310
+ | **`content`** | <code>string</code> |
311
+ | **`title`** | <code>string</code> |
312
+ | **`filePath`** | <code>string</code> |
313
+ | **`readOnly`** | <code>boolean</code> |
314
+ | **`syntaxFile`** | <code>string</code> |
315
+
316
+
260
317
  ### Type Aliases
261
318
 
262
319
 
@@ -589,6 +589,48 @@ public class DexEditorPluginPlugin extends Plugin {
589
589
  intent.putExtra(SmaliEditorActivity.EXTRA_TITLE, title);
590
590
  intent.putExtra(SmaliEditorActivity.EXTRA_CLASS_NAME, className);
591
591
  intent.putExtra(SmaliEditorActivity.EXTRA_READ_ONLY, readOnly);
592
+ intent.putExtra(SmaliEditorActivity.EXTRA_SYNTAX_FILE, "smali.json");
593
+
594
+ startActivityForResult(call, intent, "handleEditorResult");
595
+ }
596
+
597
+ /**
598
+ * 打开原生 XML 编辑器
599
+ */
600
+ @PluginMethod
601
+ public void openXmlEditor(PluginCall call) {
602
+ String content = call.getString("content", "");
603
+ String title = call.getString("title", "XML Editor");
604
+ String filePath = call.getString("filePath", "");
605
+ boolean readOnly = call.getBoolean("readOnly", false);
606
+
607
+ Intent intent = new Intent(getContext(), SmaliEditorActivity.class);
608
+ intent.putExtra(SmaliEditorActivity.EXTRA_CONTENT, content);
609
+ intent.putExtra(SmaliEditorActivity.EXTRA_TITLE, title);
610
+ intent.putExtra(SmaliEditorActivity.EXTRA_CLASS_NAME, filePath);
611
+ intent.putExtra(SmaliEditorActivity.EXTRA_READ_ONLY, readOnly);
612
+ intent.putExtra(SmaliEditorActivity.EXTRA_SYNTAX_FILE, "xml.json");
613
+
614
+ startActivityForResult(call, intent, "handleEditorResult");
615
+ }
616
+
617
+ /**
618
+ * 打开通用代码编辑器
619
+ */
620
+ @PluginMethod
621
+ public void openCodeEditor(PluginCall call) {
622
+ String content = call.getString("content", "");
623
+ String title = call.getString("title", "Code Editor");
624
+ String filePath = call.getString("filePath", "");
625
+ boolean readOnly = call.getBoolean("readOnly", false);
626
+ String syntaxFile = call.getString("syntaxFile", "json.json");
627
+
628
+ Intent intent = new Intent(getContext(), SmaliEditorActivity.class);
629
+ intent.putExtra(SmaliEditorActivity.EXTRA_CONTENT, content);
630
+ intent.putExtra(SmaliEditorActivity.EXTRA_TITLE, title);
631
+ intent.putExtra(SmaliEditorActivity.EXTRA_CLASS_NAME, filePath);
632
+ intent.putExtra(SmaliEditorActivity.EXTRA_READ_ONLY, readOnly);
633
+ intent.putExtra(SmaliEditorActivity.EXTRA_SYNTAX_FILE, syntaxFile);
592
634
 
593
635
  startActivityForResult(call, intent, "handleEditorResult");
594
636
  }
@@ -33,6 +33,7 @@ public class SmaliEditorActivity extends AppCompatActivity {
33
33
  public static final String EXTRA_TITLE = "title";
34
34
  public static final String EXTRA_CLASS_NAME = "className";
35
35
  public static final String EXTRA_READ_ONLY = "readOnly";
36
+ public static final String EXTRA_SYNTAX_FILE = "syntaxFile";
36
37
  public static final String RESULT_CONTENT = "content";
37
38
  public static final String RESULT_MODIFIED = "modified";
38
39
 
@@ -60,9 +61,11 @@ public class SmaliEditorActivity extends AppCompatActivity {
60
61
  String title = intent.getStringExtra(EXTRA_TITLE);
61
62
  String className = intent.getStringExtra(EXTRA_CLASS_NAME);
62
63
  readOnly = intent.getBooleanExtra(EXTRA_READ_ONLY, false);
64
+ String syntaxFile = intent.getStringExtra(EXTRA_SYNTAX_FILE);
63
65
 
64
66
  if (originalContent == null) originalContent = "";
65
- if (title == null) title = "Smali Editor";
67
+ if (title == null) title = "Editor";
68
+ if (syntaxFile == null) syntaxFile = "smali.json";
66
69
 
67
70
  // 创建布局
68
71
  root = new LinearLayout(this);
@@ -85,7 +88,7 @@ public class SmaliEditorActivity extends AppCompatActivity {
85
88
  ViewGroup.LayoutParams.MATCH_PARENT, 0, 1
86
89
  ));
87
90
  editView.setText(originalContent);
88
- editView.setSyntaxLanguageFileName("smali.json");
91
+ editView.setSyntaxLanguageFileName(syntaxFile);
89
92
  editView.setEditedMode(!readOnly);
90
93
  editView.setTypeface(Typeface.MONOSPACE);
91
94
  editView.setTextSize(14);
package/dist/docs.json CHANGED
@@ -35,7 +35,7 @@
35
35
  },
36
36
  {
37
37
  "name": "openSmaliEditor",
38
- "signature": "(options: OpenSmaliEditorOptions) => Promise<OpenSmaliEditorResult>",
38
+ "signature": "(options: OpenSmaliEditorOptions) => Promise<OpenEditorResult>",
39
39
  "parameters": [
40
40
  {
41
41
  "name": "options",
@@ -43,14 +43,52 @@
43
43
  "type": "OpenSmaliEditorOptions"
44
44
  }
45
45
  ],
46
- "returns": "Promise<OpenSmaliEditorResult>",
46
+ "returns": "Promise<OpenEditorResult>",
47
47
  "tags": [],
48
48
  "docs": "打开原生 Smali 编辑器",
49
49
  "complexTypes": [
50
- "OpenSmaliEditorResult",
50
+ "OpenEditorResult",
51
51
  "OpenSmaliEditorOptions"
52
52
  ],
53
53
  "slug": "opensmalieditor"
54
+ },
55
+ {
56
+ "name": "openXmlEditor",
57
+ "signature": "(options: OpenXmlEditorOptions) => Promise<OpenEditorResult>",
58
+ "parameters": [
59
+ {
60
+ "name": "options",
61
+ "docs": "",
62
+ "type": "OpenXmlEditorOptions"
63
+ }
64
+ ],
65
+ "returns": "Promise<OpenEditorResult>",
66
+ "tags": [],
67
+ "docs": "打开原生 XML 编辑器",
68
+ "complexTypes": [
69
+ "OpenEditorResult",
70
+ "OpenXmlEditorOptions"
71
+ ],
72
+ "slug": "openxmleditor"
73
+ },
74
+ {
75
+ "name": "openCodeEditor",
76
+ "signature": "(options: OpenCodeEditorOptions) => Promise<OpenEditorResult>",
77
+ "parameters": [
78
+ {
79
+ "name": "options",
80
+ "docs": "",
81
+ "type": "OpenCodeEditorOptions"
82
+ }
83
+ ],
84
+ "returns": "Promise<OpenEditorResult>",
85
+ "tags": [],
86
+ "docs": "打开通用代码编辑器",
87
+ "complexTypes": [
88
+ "OpenEditorResult",
89
+ "OpenCodeEditorOptions"
90
+ ],
91
+ "slug": "opencodeeditor"
54
92
  }
55
93
  ],
56
94
  "properties": []
@@ -114,8 +152,8 @@
114
152
  ]
115
153
  },
116
154
  {
117
- "name": "OpenSmaliEditorResult",
118
- "slug": "opensmalieditorresult",
155
+ "name": "OpenEditorResult",
156
+ "slug": "openeditorresult",
119
157
  "docs": "",
120
158
  "tags": [],
121
159
  "methods": [],
@@ -186,6 +224,87 @@
186
224
  "type": "boolean | undefined"
187
225
  }
188
226
  ]
227
+ },
228
+ {
229
+ "name": "OpenXmlEditorOptions",
230
+ "slug": "openxmleditoroptions",
231
+ "docs": "",
232
+ "tags": [],
233
+ "methods": [],
234
+ "properties": [
235
+ {
236
+ "name": "content",
237
+ "tags": [],
238
+ "docs": "",
239
+ "complexTypes": [],
240
+ "type": "string"
241
+ },
242
+ {
243
+ "name": "title",
244
+ "tags": [],
245
+ "docs": "",
246
+ "complexTypes": [],
247
+ "type": "string | undefined"
248
+ },
249
+ {
250
+ "name": "filePath",
251
+ "tags": [],
252
+ "docs": "",
253
+ "complexTypes": [],
254
+ "type": "string | undefined"
255
+ },
256
+ {
257
+ "name": "readOnly",
258
+ "tags": [],
259
+ "docs": "",
260
+ "complexTypes": [],
261
+ "type": "boolean | undefined"
262
+ }
263
+ ]
264
+ },
265
+ {
266
+ "name": "OpenCodeEditorOptions",
267
+ "slug": "opencodeeditoroptions",
268
+ "docs": "",
269
+ "tags": [],
270
+ "methods": [],
271
+ "properties": [
272
+ {
273
+ "name": "content",
274
+ "tags": [],
275
+ "docs": "",
276
+ "complexTypes": [],
277
+ "type": "string"
278
+ },
279
+ {
280
+ "name": "title",
281
+ "tags": [],
282
+ "docs": "",
283
+ "complexTypes": [],
284
+ "type": "string | undefined"
285
+ },
286
+ {
287
+ "name": "filePath",
288
+ "tags": [],
289
+ "docs": "",
290
+ "complexTypes": [],
291
+ "type": "string | undefined"
292
+ },
293
+ {
294
+ "name": "readOnly",
295
+ "tags": [],
296
+ "docs": "",
297
+ "complexTypes": [],
298
+ "type": "boolean | undefined"
299
+ },
300
+ {
301
+ "name": "syntaxFile",
302
+ "tags": [],
303
+ "docs": "",
304
+ "complexTypes": [],
305
+ "type": "string | undefined"
306
+ }
307
+ ]
189
308
  }
190
309
  ],
191
310
  "enums": [],
@@ -12,7 +12,15 @@ export interface DexEditorPluginPlugin {
12
12
  /**
13
13
  * 打开原生 Smali 编辑器
14
14
  */
15
- openSmaliEditor(options: OpenSmaliEditorOptions): Promise<OpenSmaliEditorResult>;
15
+ openSmaliEditor(options: OpenSmaliEditorOptions): Promise<OpenEditorResult>;
16
+ /**
17
+ * 打开原生 XML 编辑器
18
+ */
19
+ openXmlEditor(options: OpenXmlEditorOptions): Promise<OpenEditorResult>;
20
+ /**
21
+ * 打开通用代码编辑器
22
+ */
23
+ openCodeEditor(options: OpenCodeEditorOptions): Promise<OpenEditorResult>;
16
24
  }
17
25
  export interface OpenSmaliEditorOptions {
18
26
  content: string;
@@ -20,12 +28,26 @@ export interface OpenSmaliEditorOptions {
20
28
  className?: string;
21
29
  readOnly?: boolean;
22
30
  }
23
- export interface OpenSmaliEditorResult {
31
+ export interface OpenXmlEditorOptions {
32
+ content: string;
33
+ title?: string;
34
+ filePath?: string;
35
+ readOnly?: boolean;
36
+ }
37
+ export interface OpenCodeEditorOptions {
38
+ content: string;
39
+ title?: string;
40
+ filePath?: string;
41
+ readOnly?: boolean;
42
+ syntaxFile?: string;
43
+ }
44
+ export interface OpenEditorResult {
24
45
  success: boolean;
25
46
  content?: string;
26
47
  modified?: boolean;
27
48
  cancelled?: boolean;
28
49
  }
50
+ export type OpenSmaliEditorResult = OpenEditorResult;
29
51
  export interface DexExecuteOptions {
30
52
  action: DexAction;
31
53
  params?: Record<string, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * DEX编辑器插件 - 通用执行器接口\n * 通过 action 参数调用 dexlib2 的全部功能\n */\nexport interface DexEditorPluginPlugin {\n /**\n * 通用执行器 - 调用任意 dexlib2 功能\n * @param options.action 操作名称\n * @param options.params 操作参数\n */\n execute(options: DexExecuteOptions): Promise<DexExecuteResult>;\n\n /**\n * 打开原生 Smali 编辑器\n */\n openSmaliEditor(options: OpenSmaliEditorOptions): Promise<OpenSmaliEditorResult>;\n}\n\nexport interface OpenSmaliEditorOptions {\n content: string;\n title?: string;\n className?: string;\n readOnly?: boolean;\n}\n\nexport interface OpenSmaliEditorResult {\n success: boolean;\n content?: string;\n modified?: boolean;\n cancelled?: boolean;\n}\n\nexport interface DexExecuteOptions {\n action: DexAction;\n params?: Record<string, any>;\n}\n\nexport interface DexExecuteResult {\n success: boolean;\n data?: any;\n error?: string;\n}\n\n/**\n * 支持的操作类型\n */\nexport type DexAction =\n // DEX文件操作\n | 'loadDex' // 加载DEX文件\n | 'saveDex' // 保存DEX文件\n | 'closeDex' // 关闭DEX文件\n | 'getDexInfo' // 获取DEX文件信息\n \n // 类操作\n | 'getClasses' // 获取所有类列表\n | 'getClassInfo' // 获取类详细信息\n | 'addClass' // 添加类\n | 'removeClass' // 删除类\n | 'renameClass' // 重命名类\n \n // 方法操作\n | 'getMethods' // 获取类的所有方法\n | 'getMethodInfo' // 获取方法详细信息\n | 'getMethodSmali' // 获取方法的Smali代码\n | 'setMethodSmali' // 设置方法的Smali代码\n | 'addMethod' // 添加方法\n | 'removeMethod' // 删除方法\n \n // 字段操作\n | 'getFields' // 获取类的所有字段\n | 'getFieldInfo' // 获取字段详细信息\n | 'addField' // 添加字段\n | 'removeField' // 删除字段\n \n // Smali操作\n | 'classToSmali' // 将类转换为Smali代码\n | 'smaliToClass' // 将Smali代码编译为类\n | 'disassemble' // 反汇编整个DEX\n | 'assemble' // 汇编Smali目录为DEX\n \n // 搜索操作\n | 'searchString' // 搜索字符串\n | 'searchCode' // 搜索代码\n | 'searchMethod' // 搜索方法\n | 'searchField' // 搜索字段\n \n // 工具操作\n | 'fixDex' // 修复DEX文件\n | 'mergeDex' // 合并多个DEX\n | 'splitDex' // 拆分DEX\n | 'getStrings' // 获取字符串常量池\n | 'modifyString' // 修改字符串\n \n // APK操作\n | 'openApk' // 打开APK文件(解压)\n | 'closeApk' // 关闭APK会话\n | 'getApkInfo' // 获取APK信息\n | 'listApkContents' // 列出APK内容\n | 'extractFile' // 提取APK中的文件\n | 'replaceFile' // 替换APK中的文件\n | 'addFile' // 添加文件到APK\n | 'deleteFile' // 删除APK中的文件\n | 'repackApk' // 重新打包APK\n | 'signApk' // 签名APK\n | 'signApkWithTestKey'// 使用测试密钥签名\n | 'getApkSignature' // 获取APK签名信息\n | 'getSessionDexFiles';// 获取会话中的DEX文件\n\n/**\n * 常用参数类型定义\n */\nexport interface LoadDexParams {\n path: string; // DEX文件路径\n sessionId?: string; // 可选的会话ID\n}\n\nexport interface SaveDexParams {\n sessionId: string; // 会话ID\n outputPath: string; // 输出路径\n}\n\nexport interface ClassInfoParams {\n sessionId: string;\n className: string; // 类名 (如 Lcom/example/Test;)\n}\n\nexport interface MethodSmaliParams {\n sessionId: string;\n className: string;\n methodName: string;\n methodSignature: string; // 方法签名 (如 (I)V)\n}\n\nexport interface SetMethodSmaliParams extends MethodSmaliParams {\n smaliCode: string; // 新的Smali代码\n}\n\nexport interface SearchParams {\n sessionId: string;\n query: string;\n regex?: boolean; // 是否使用正则表达式\n caseSensitive?: boolean;\n}\n\nexport interface DisassembleParams {\n sessionId: string;\n outputDir: string; // 输出Smali目录\n}\n\nexport interface AssembleParams {\n smaliDir: string; // Smali目录\n outputPath: string; // 输出DEX路径\n}\n\n// ============ APK 操作参数 ============\n\nexport interface OpenApkParams {\n apkPath: string; // APK文件路径\n extractDir?: string; // 解压目录(可选)\n}\n\nexport interface ApkInfoParams {\n apkPath: string;\n}\n\nexport interface ExtractFileParams {\n apkPath: string;\n entryName: string; // ZIP内文件路径\n outputPath: string;\n}\n\nexport interface ReplaceFileParams {\n sessionId: string;\n entryName: string; // ZIP内文件路径\n newFilePath: string; // 新文件路径\n}\n\nexport interface RepackApkParams {\n sessionId: string;\n outputPath: string; // 输出APK路径\n}\n\nexport interface SignApkParams {\n apkPath: string;\n outputPath: string;\n keystorePath: string; // 密钥库路径\n keystorePassword: string;\n keyAlias: string; // 密钥别名\n keyPassword: string;\n}\n\nexport interface SignApkTestParams {\n apkPath: string;\n outputPath: string;\n}\n"]}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * DEX编辑器插件 - 通用执行器接口\n * 通过 action 参数调用 dexlib2 的全部功能\n */\nexport interface DexEditorPluginPlugin {\n /**\n * 通用执行器 - 调用任意 dexlib2 功能\n * @param options.action 操作名称\n * @param options.params 操作参数\n */\n execute(options: DexExecuteOptions): Promise<DexExecuteResult>;\n\n /**\n * 打开原生 Smali 编辑器\n */\n openSmaliEditor(options: OpenSmaliEditorOptions): Promise<OpenEditorResult>;\n\n /**\n * 打开原生 XML 编辑器\n */\n openXmlEditor(options: OpenXmlEditorOptions): Promise<OpenEditorResult>;\n\n /**\n * 打开通用代码编辑器\n */\n openCodeEditor(options: OpenCodeEditorOptions): Promise<OpenEditorResult>;\n}\n\nexport interface OpenSmaliEditorOptions {\n content: string;\n title?: string;\n className?: string;\n readOnly?: boolean;\n}\n\nexport interface OpenXmlEditorOptions {\n content: string;\n title?: string;\n filePath?: string;\n readOnly?: boolean;\n}\n\nexport interface OpenCodeEditorOptions {\n content: string;\n title?: string;\n filePath?: string;\n readOnly?: boolean;\n syntaxFile?: string; // 语法文件: smali.json, xml.json, java.json, json.json 等\n}\n\nexport interface OpenEditorResult {\n success: boolean;\n content?: string;\n modified?: boolean;\n cancelled?: boolean;\n}\n\n// 保持向后兼容\nexport type OpenSmaliEditorResult = OpenEditorResult;\n\nexport interface DexExecuteOptions {\n action: DexAction;\n params?: Record<string, any>;\n}\n\nexport interface DexExecuteResult {\n success: boolean;\n data?: any;\n error?: string;\n}\n\n/**\n * 支持的操作类型\n */\nexport type DexAction =\n // DEX文件操作\n | 'loadDex' // 加载DEX文件\n | 'saveDex' // 保存DEX文件\n | 'closeDex' // 关闭DEX文件\n | 'getDexInfo' // 获取DEX文件信息\n \n // 类操作\n | 'getClasses' // 获取所有类列表\n | 'getClassInfo' // 获取类详细信息\n | 'addClass' // 添加类\n | 'removeClass' // 删除类\n | 'renameClass' // 重命名类\n \n // 方法操作\n | 'getMethods' // 获取类的所有方法\n | 'getMethodInfo' // 获取方法详细信息\n | 'getMethodSmali' // 获取方法的Smali代码\n | 'setMethodSmali' // 设置方法的Smali代码\n | 'addMethod' // 添加方法\n | 'removeMethod' // 删除方法\n \n // 字段操作\n | 'getFields' // 获取类的所有字段\n | 'getFieldInfo' // 获取字段详细信息\n | 'addField' // 添加字段\n | 'removeField' // 删除字段\n \n // Smali操作\n | 'classToSmali' // 将类转换为Smali代码\n | 'smaliToClass' // 将Smali代码编译为类\n | 'disassemble' // 反汇编整个DEX\n | 'assemble' // 汇编Smali目录为DEX\n \n // 搜索操作\n | 'searchString' // 搜索字符串\n | 'searchCode' // 搜索代码\n | 'searchMethod' // 搜索方法\n | 'searchField' // 搜索字段\n \n // 工具操作\n | 'fixDex' // 修复DEX文件\n | 'mergeDex' // 合并多个DEX\n | 'splitDex' // 拆分DEX\n | 'getStrings' // 获取字符串常量池\n | 'modifyString' // 修改字符串\n \n // APK操作\n | 'openApk' // 打开APK文件(解压)\n | 'closeApk' // 关闭APK会话\n | 'getApkInfo' // 获取APK信息\n | 'listApkContents' // 列出APK内容\n | 'extractFile' // 提取APK中的文件\n | 'replaceFile' // 替换APK中的文件\n | 'addFile' // 添加文件到APK\n | 'deleteFile' // 删除APK中的文件\n | 'repackApk' // 重新打包APK\n | 'signApk' // 签名APK\n | 'signApkWithTestKey'// 使用测试密钥签名\n | 'getApkSignature' // 获取APK签名信息\n | 'getSessionDexFiles';// 获取会话中的DEX文件\n\n/**\n * 常用参数类型定义\n */\nexport interface LoadDexParams {\n path: string; // DEX文件路径\n sessionId?: string; // 可选的会话ID\n}\n\nexport interface SaveDexParams {\n sessionId: string; // 会话ID\n outputPath: string; // 输出路径\n}\n\nexport interface ClassInfoParams {\n sessionId: string;\n className: string; // 类名 (如 Lcom/example/Test;)\n}\n\nexport interface MethodSmaliParams {\n sessionId: string;\n className: string;\n methodName: string;\n methodSignature: string; // 方法签名 (如 (I)V)\n}\n\nexport interface SetMethodSmaliParams extends MethodSmaliParams {\n smaliCode: string; // 新的Smali代码\n}\n\nexport interface SearchParams {\n sessionId: string;\n query: string;\n regex?: boolean; // 是否使用正则表达式\n caseSensitive?: boolean;\n}\n\nexport interface DisassembleParams {\n sessionId: string;\n outputDir: string; // 输出Smali目录\n}\n\nexport interface AssembleParams {\n smaliDir: string; // Smali目录\n outputPath: string; // 输出DEX路径\n}\n\n// ============ APK 操作参数 ============\n\nexport interface OpenApkParams {\n apkPath: string; // APK文件路径\n extractDir?: string; // 解压目录(可选)\n}\n\nexport interface ApkInfoParams {\n apkPath: string;\n}\n\nexport interface ExtractFileParams {\n apkPath: string;\n entryName: string; // ZIP内文件路径\n outputPath: string;\n}\n\nexport interface ReplaceFileParams {\n sessionId: string;\n entryName: string; // ZIP内文件路径\n newFilePath: string; // 新文件路径\n}\n\nexport interface RepackApkParams {\n sessionId: string;\n outputPath: string; // 输出APK路径\n}\n\nexport interface SignApkParams {\n apkPath: string;\n outputPath: string;\n keystorePath: string; // 密钥库路径\n keystorePassword: string;\n keyAlias: string; // 密钥别名\n keyPassword: string;\n}\n\nexport interface SignApkTestParams {\n apkPath: string;\n outputPath: string;\n}\n"]}
package/dist/esm/web.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import { WebPlugin } from '@capacitor/core';
2
- import type { DexEditorPluginPlugin, DexExecuteOptions, DexExecuteResult, OpenSmaliEditorOptions, OpenSmaliEditorResult } from './definitions';
2
+ import type { DexEditorPluginPlugin, DexExecuteOptions, DexExecuteResult, OpenSmaliEditorOptions, OpenXmlEditorOptions, OpenCodeEditorOptions, OpenEditorResult } from './definitions';
3
3
  /**
4
4
  * Web 平台实现(仅用于开发调试,实际功能需要 Android 原生)
5
5
  */
6
6
  export declare class DexEditorPluginWeb extends WebPlugin implements DexEditorPluginPlugin {
7
7
  execute(options: DexExecuteOptions): Promise<DexExecuteResult>;
8
- openSmaliEditor(_options: OpenSmaliEditorOptions): Promise<OpenSmaliEditorResult>;
8
+ openSmaliEditor(_options: OpenSmaliEditorOptions): Promise<OpenEditorResult>;
9
+ openXmlEditor(_options: OpenXmlEditorOptions): Promise<OpenEditorResult>;
10
+ openCodeEditor(_options: OpenCodeEditorOptions): Promise<OpenEditorResult>;
9
11
  }
package/dist/esm/web.js CHANGED
@@ -18,5 +18,19 @@ export class DexEditorPluginWeb extends WebPlugin {
18
18
  cancelled: true
19
19
  };
20
20
  }
21
+ async openXmlEditor(_options) {
22
+ console.warn('DexEditorPlugin: Native XML editor is only available on Android');
23
+ return {
24
+ success: false,
25
+ cancelled: true
26
+ };
27
+ }
28
+ async openCodeEditor(_options) {
29
+ console.warn('DexEditorPlugin: Native code editor is only available on Android');
30
+ return {
31
+ success: false,
32
+ cancelled: true
33
+ };
34
+ }
21
35
  }
22
36
  //# sourceMappingURL=web.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C,KAAK,CAAC,OAAO,CAAC,OAA0B;QACtC,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAElE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,mDAAmD;SAC3D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgC;QACpD,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAClF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type { DexEditorPluginPlugin, DexExecuteOptions, DexExecuteResult, OpenSmaliEditorOptions, OpenSmaliEditorResult } from './definitions';\n\n/**\n * Web 平台实现(仅用于开发调试,实际功能需要 Android 原生)\n */\nexport class DexEditorPluginWeb extends WebPlugin implements DexEditorPluginPlugin {\n async execute(options: DexExecuteOptions): Promise<DexExecuteResult> {\n console.warn('DexEditorPlugin: Web platform is not supported for DEX editing');\n console.log('Action:', options.action, 'Params:', options.params);\n \n return {\n success: false,\n error: 'DEX editing is only available on Android platform'\n };\n }\n\n async openSmaliEditor(_options: OpenSmaliEditorOptions): Promise<OpenSmaliEditorResult> {\n console.warn('DexEditorPlugin: Native Smali editor is only available on Android');\n return {\n success: false,\n cancelled: true\n };\n }\n}\n"]}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C,KAAK,CAAC,OAAO,CAAC,OAA0B;QACtC,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAElE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,mDAAmD;SAC3D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgC;QACpD,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAClF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAA8B;QAChD,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAChF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAA+B;QAClD,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QACjF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type { DexEditorPluginPlugin, DexExecuteOptions, DexExecuteResult, OpenSmaliEditorOptions, OpenXmlEditorOptions, OpenCodeEditorOptions, OpenEditorResult } from './definitions';\n\n/**\n * Web 平台实现(仅用于开发调试,实际功能需要 Android 原生)\n */\nexport class DexEditorPluginWeb extends WebPlugin implements DexEditorPluginPlugin {\n async execute(options: DexExecuteOptions): Promise<DexExecuteResult> {\n console.warn('DexEditorPlugin: Web platform is not supported for DEX editing');\n console.log('Action:', options.action, 'Params:', options.params);\n \n return {\n success: false,\n error: 'DEX editing is only available on Android platform'\n };\n }\n\n async openSmaliEditor(_options: OpenSmaliEditorOptions): Promise<OpenEditorResult> {\n console.warn('DexEditorPlugin: Native Smali editor is only available on Android');\n return {\n success: false,\n cancelled: true\n };\n }\n\n async openXmlEditor(_options: OpenXmlEditorOptions): Promise<OpenEditorResult> {\n console.warn('DexEditorPlugin: Native XML editor is only available on Android');\n return {\n success: false,\n cancelled: true\n };\n }\n\n async openCodeEditor(_options: OpenCodeEditorOptions): Promise<OpenEditorResult> {\n console.warn('DexEditorPlugin: Native code editor is only available on Android');\n return {\n success: false,\n cancelled: true\n };\n }\n}\n"]}
@@ -25,6 +25,20 @@ class DexEditorPluginWeb extends core.WebPlugin {
25
25
  cancelled: true
26
26
  };
27
27
  }
28
+ async openXmlEditor(_options) {
29
+ console.warn('DexEditorPlugin: Native XML editor is only available on Android');
30
+ return {
31
+ success: false,
32
+ cancelled: true
33
+ };
34
+ }
35
+ async openCodeEditor(_options) {
36
+ console.warn('DexEditorPlugin: Native code editor is only available on Android');
37
+ return {
38
+ success: false,
39
+ cancelled: true
40
+ };
41
+ }
28
42
  }
29
43
 
30
44
  var web = /*#__PURE__*/Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst DexEditorPlugin = registerPlugin('DexEditorPlugin', {\n web: () => import('./web').then((m) => new m.DexEditorPluginWeb()),\n});\nexport * from './definitions';\nexport { DexEditorPlugin };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\n/**\n * Web 平台实现(仅用于开发调试,实际功能需要 Android 原生)\n */\nexport class DexEditorPluginWeb extends WebPlugin {\n async execute(options) {\n console.warn('DexEditorPlugin: Web platform is not supported for DEX editing');\n console.log('Action:', options.action, 'Params:', options.params);\n return {\n success: false,\n error: 'DEX editing is only available on Android platform'\n };\n }\n async openSmaliEditor(_options) {\n console.warn('DexEditorPlugin: Native Smali editor is only available on Android');\n return {\n success: false,\n cancelled: true\n };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;;AACK,MAAC,eAAe,GAAGA,mBAAc,CAAC,iBAAiB,EAAE;AAC1D,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;AACtE,CAAC;;ACFD;AACA;AACA;AACO,MAAM,kBAAkB,SAASC,cAAS,CAAC;AAClD,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC;AACtF,QAAQ,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;AACzE,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,KAAK,EAAE;AACnB,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,QAAQ,EAAE;AACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC;AACzF,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,SAAS,EAAE;AACvB,SAAS;AACT,IAAI;AACJ;;;;;;;;;"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst DexEditorPlugin = registerPlugin('DexEditorPlugin', {\n web: () => import('./web').then((m) => new m.DexEditorPluginWeb()),\n});\nexport * from './definitions';\nexport { DexEditorPlugin };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\n/**\n * Web 平台实现(仅用于开发调试,实际功能需要 Android 原生)\n */\nexport class DexEditorPluginWeb extends WebPlugin {\n async execute(options) {\n console.warn('DexEditorPlugin: Web platform is not supported for DEX editing');\n console.log('Action:', options.action, 'Params:', options.params);\n return {\n success: false,\n error: 'DEX editing is only available on Android platform'\n };\n }\n async openSmaliEditor(_options) {\n console.warn('DexEditorPlugin: Native Smali editor is only available on Android');\n return {\n success: false,\n cancelled: true\n };\n }\n async openXmlEditor(_options) {\n console.warn('DexEditorPlugin: Native XML editor is only available on Android');\n return {\n success: false,\n cancelled: true\n };\n }\n async openCodeEditor(_options) {\n console.warn('DexEditorPlugin: Native code editor is only available on Android');\n return {\n success: false,\n cancelled: true\n };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;;AACK,MAAC,eAAe,GAAGA,mBAAc,CAAC,iBAAiB,EAAE;AAC1D,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;AACtE,CAAC;;ACFD;AACA;AACA;AACO,MAAM,kBAAkB,SAASC,cAAS,CAAC;AAClD,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC;AACtF,QAAQ,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;AACzE,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,KAAK,EAAE;AACnB,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,QAAQ,EAAE;AACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC;AACzF,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,SAAS,EAAE;AACvB,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,aAAa,CAAC,QAAQ,EAAE;AAClC,QAAQ,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC;AACvF,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,SAAS,EAAE;AACvB,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,cAAc,CAAC,QAAQ,EAAE;AACnC,QAAQ,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC;AACxF,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,SAAS,EAAE;AACvB,SAAS;AACT,IAAI;AACJ;;;;;;;;;"}
package/dist/plugin.js CHANGED
@@ -24,6 +24,20 @@ var capacitorDexEditorPlugin = (function (exports, core) {
24
24
  cancelled: true
25
25
  };
26
26
  }
27
+ async openXmlEditor(_options) {
28
+ console.warn('DexEditorPlugin: Native XML editor is only available on Android');
29
+ return {
30
+ success: false,
31
+ cancelled: true
32
+ };
33
+ }
34
+ async openCodeEditor(_options) {
35
+ console.warn('DexEditorPlugin: Native code editor is only available on Android');
36
+ return {
37
+ success: false,
38
+ cancelled: true
39
+ };
40
+ }
27
41
  }
28
42
 
29
43
  var web = /*#__PURE__*/Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst DexEditorPlugin = registerPlugin('DexEditorPlugin', {\n web: () => import('./web').then((m) => new m.DexEditorPluginWeb()),\n});\nexport * from './definitions';\nexport { DexEditorPlugin };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\n/**\n * Web 平台实现(仅用于开发调试,实际功能需要 Android 原生)\n */\nexport class DexEditorPluginWeb extends WebPlugin {\n async execute(options) {\n console.warn('DexEditorPlugin: Web platform is not supported for DEX editing');\n console.log('Action:', options.action, 'Params:', options.params);\n return {\n success: false,\n error: 'DEX editing is only available on Android platform'\n };\n }\n async openSmaliEditor(_options) {\n console.warn('DexEditorPlugin: Native Smali editor is only available on Android');\n return {\n success: false,\n cancelled: true\n };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,eAAe,GAAGA,mBAAc,CAAC,iBAAiB,EAAE;IAC1D,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACtE,CAAC;;ICFD;IACA;IACA;IACO,MAAM,kBAAkB,SAASC,cAAS,CAAC;IAClD,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;IAC3B,QAAQ,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC;IACtF,QAAQ,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;IACzE,QAAQ,OAAO;IACf,YAAY,OAAO,EAAE,KAAK;IAC1B,YAAY,KAAK,EAAE;IACnB,SAAS;IACT,IAAI;IACJ,IAAI,MAAM,eAAe,CAAC,QAAQ,EAAE;IACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC;IACzF,QAAQ,OAAO;IACf,YAAY,OAAO,EAAE,KAAK;IAC1B,YAAY,SAAS,EAAE;IACvB,SAAS;IACT,IAAI;IACJ;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst DexEditorPlugin = registerPlugin('DexEditorPlugin', {\n web: () => import('./web').then((m) => new m.DexEditorPluginWeb()),\n});\nexport * from './definitions';\nexport { DexEditorPlugin };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\n/**\n * Web 平台实现(仅用于开发调试,实际功能需要 Android 原生)\n */\nexport class DexEditorPluginWeb extends WebPlugin {\n async execute(options) {\n console.warn('DexEditorPlugin: Web platform is not supported for DEX editing');\n console.log('Action:', options.action, 'Params:', options.params);\n return {\n success: false,\n error: 'DEX editing is only available on Android platform'\n };\n }\n async openSmaliEditor(_options) {\n console.warn('DexEditorPlugin: Native Smali editor is only available on Android');\n return {\n success: false,\n cancelled: true\n };\n }\n async openXmlEditor(_options) {\n console.warn('DexEditorPlugin: Native XML editor is only available on Android');\n return {\n success: false,\n cancelled: true\n };\n }\n async openCodeEditor(_options) {\n console.warn('DexEditorPlugin: Native code editor is only available on Android');\n return {\n success: false,\n cancelled: true\n };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,eAAe,GAAGA,mBAAc,CAAC,iBAAiB,EAAE;IAC1D,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACtE,CAAC;;ICFD;IACA;IACA;IACO,MAAM,kBAAkB,SAASC,cAAS,CAAC;IAClD,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;IAC3B,QAAQ,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC;IACtF,QAAQ,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;IACzE,QAAQ,OAAO;IACf,YAAY,OAAO,EAAE,KAAK;IAC1B,YAAY,KAAK,EAAE;IACnB,SAAS;IACT,IAAI;IACJ,IAAI,MAAM,eAAe,CAAC,QAAQ,EAAE;IACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC;IACzF,QAAQ,OAAO;IACf,YAAY,OAAO,EAAE,KAAK;IAC1B,YAAY,SAAS,EAAE;IACvB,SAAS;IACT,IAAI;IACJ,IAAI,MAAM,aAAa,CAAC,QAAQ,EAAE;IAClC,QAAQ,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC;IACvF,QAAQ,OAAO;IACf,YAAY,OAAO,EAAE,KAAK;IAC1B,YAAY,SAAS,EAAE;IACvB,SAAS;IACT,IAAI;IACJ,IAAI,MAAM,cAAc,CAAC,QAAQ,EAAE;IACnC,QAAQ,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC;IACxF,QAAQ,OAAO;IACf,YAAY,OAAO,EAAE,KAAK;IAC1B,YAAY,SAAS,EAAE;IACvB,SAAS;IACT,IAAI;IACJ;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "capacitor-dex-editor",
3
- "version": "0.0.48",
3
+ "version": "0.0.49",
4
4
  "description": "Capacitor-plugin-for-editing-DEX-files-in-APK",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",