zcw-shared 1.33.0 → 1.34.1

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.
Files changed (62) hide show
  1. package/README.md +13 -13
  2. package/dist/functions/android/integrateFacebookLogin.d.ts +12 -0
  3. package/dist/functions/android/integrateFacebookLogin.js +91 -0
  4. package/dist/functions/android/integrateFacebookLogin.js.map +1 -0
  5. package/dist/functions/android/integrateGoogleLogin.d.ts +10 -0
  6. package/dist/functions/android/integrateGoogleLogin.js +199 -0
  7. package/dist/functions/android/integrateGoogleLogin.js.map +1 -0
  8. package/dist/functions/android/integrateMiuiLogin.d.ts +13 -0
  9. package/dist/functions/android/integrateMiuiLogin.js +115 -0
  10. package/dist/functions/android/integrateMiuiLogin.js.map +1 -0
  11. package/dist/functions/android/integrateQQLogin.d.ts +12 -0
  12. package/dist/functions/android/integrateQQLogin.js +130 -0
  13. package/dist/functions/android/integrateQQLogin.js.map +1 -0
  14. package/dist/functions/android/integrateShareTrace.d.ts +10 -0
  15. package/dist/functions/android/integrateShareTrace.js +181 -0
  16. package/dist/functions/android/integrateShareTrace.js.map +1 -0
  17. package/dist/functions/android/integrateSinaLogin.d.ts +13 -0
  18. package/dist/functions/android/integrateSinaLogin.js +85 -0
  19. package/dist/functions/android/integrateSinaLogin.js.map +1 -0
  20. package/dist/functions/android/integrateThirdPartyModule.d.ts +46 -0
  21. package/dist/functions/android/integrateThirdPartyModule.js +251 -0
  22. package/dist/functions/android/integrateThirdPartyModule.js.map +1 -0
  23. package/dist/functions/android/integrateUniverifyLogin.d.ts +11 -0
  24. package/dist/functions/android/integrateUniverifyLogin.js +314 -0
  25. package/dist/functions/android/integrateUniverifyLogin.js.map +1 -0
  26. package/dist/functions/android/integrateWechatLogin.d.ts +13 -0
  27. package/dist/functions/android/integrateWechatLogin.js +154 -0
  28. package/dist/functions/android/integrateWechatLogin.js.map +1 -0
  29. package/dist/functions/android/modifyManifest.d.ts +7 -0
  30. package/dist/functions/android/modifyManifest.js +24 -0
  31. package/dist/functions/android/modifyManifest.js.map +1 -1
  32. package/dist/functions/image/compressImageToWidth.d.ts +12 -0
  33. package/dist/functions/image/compressImageToWidth.js +44 -0
  34. package/dist/functions/image/compressImageToWidth.js.map +1 -0
  35. package/dist/functions/image/generateFavIcon.d.ts +8 -0
  36. package/dist/functions/image/generateFavIcon.js +13 -0
  37. package/dist/functions/image/generateFavIcon.js.map +1 -0
  38. package/dist/functions/image/renderBusinessLicense.d.ts +47 -0
  39. package/dist/functions/image/renderBusinessLicense.js +187 -0
  40. package/dist/functions/image/renderBusinessLicense.js.map +1 -0
  41. package/dist/functions/image/renderDrivingLicense.d.ts +48 -0
  42. package/dist/functions/image/renderDrivingLicense.js +201 -0
  43. package/dist/functions/image/renderDrivingLicense.js.map +1 -0
  44. package/dist/functions/image/renderLicensePlate.d.ts +47 -0
  45. package/dist/functions/image/renderLicensePlate.js +85 -0
  46. package/dist/functions/image/renderLicensePlate.js.map +1 -0
  47. package/dist/functions/tencent-cloud/deploy.tcb.js +1 -1
  48. package/dist/functions/tencent-cloud/deploy.tcb.js.map +1 -1
  49. package/dist/functions/uniapp/app-plus/buildAndroidApp.js +258 -0
  50. package/dist/functions/uniapp/app-plus/buildAndroidApp.js.map +1 -1
  51. package/dist/functions/validation/generateFakeBusinessLicense.d.ts +21 -0
  52. package/dist/functions/validation/generateFakeBusinessLicense.js +160 -0
  53. package/dist/functions/validation/generateFakeBusinessLicense.js.map +1 -0
  54. package/dist/functions/validation/generateFakeDrivingLicense.d.ts +31 -0
  55. package/dist/functions/validation/generateFakeDrivingLicense.js +119 -0
  56. package/dist/functions/validation/generateFakeDrivingLicense.js.map +1 -0
  57. package/dist/functions/validation/generateFakeLicensePlate.d.ts +13 -0
  58. package/dist/functions/validation/generateFakeLicensePlate.js +87 -0
  59. package/dist/functions/validation/generateFakeLicensePlate.js.map +1 -0
  60. package/package.json +19 -4
  61. package/references/sharp.d.ts +1 -0
  62. package/types/uniapp-android-build.d.ts +108 -0
@@ -0,0 +1,130 @@
1
+ import { integrateThirdPartyModule } from './integrateThirdPartyModule';
2
+ export async function integrateQQLogin(projectPath, moduleDir, packageName, config, deps) {
3
+ const logs = [];
4
+ try {
5
+ logs.push('开始集成QQ登录模块');
6
+ const libFiles = [
7
+ {
8
+ source: config.oauthAarPath,
9
+ targetName: 'oauth-qq-release.aar'
10
+ },
11
+ {
12
+ source: config.openSdkJarPath,
13
+ targetName: 'open_sdk_3.5.12.2_r97423a8_lite.jar'
14
+ }
15
+ ];
16
+ const moduleConfig = {
17
+ name: 'QQ登录',
18
+ libFiles,
19
+ manifestModifications: [
20
+ {
21
+ xpath: "//uses-permission[@android:name='android.permission.MODIFY_AUDIO_SETTINGS']",
22
+ action: 'removeElement'
23
+ },
24
+ {
25
+ xpath: "//manifest",
26
+ action: 'addElement',
27
+ elementName: 'uses-permission',
28
+ attributes: {
29
+ 'android:name': 'android.permission.MODIFY_AUDIO_SETTINGS'
30
+ }
31
+ },
32
+ {
33
+ xpath: "//meta-data[@android:name='QQ_APPID']",
34
+ action: 'removeElement'
35
+ },
36
+ {
37
+ xpath: "//application",
38
+ action: 'addElement',
39
+ elementName: 'meta-data',
40
+ attributes: {
41
+ 'android:name': 'QQ_APPID',
42
+ 'android:value': config.appId
43
+ }
44
+ },
45
+ {
46
+ xpath: "//activity[@android:name='com.tencent.tauth.AuthActivity']",
47
+ action: 'removeElement'
48
+ },
49
+ {
50
+ xpath: "//activity[@android:name='com.tencent.connect.common.AssistActivity']",
51
+ action: 'removeElement'
52
+ },
53
+ {
54
+ xpath: "//application",
55
+ action: 'addElement',
56
+ elementName: 'activity',
57
+ attributes: {
58
+ 'android:name': 'com.tencent.tauth.AuthActivity',
59
+ 'android:launchMode': 'singleTask',
60
+ 'android:noHistory': 'true',
61
+ 'android:exported': 'true'
62
+ },
63
+ children: [
64
+ {
65
+ elementName: 'intent-filter',
66
+ attributes: {},
67
+ children: [
68
+ {
69
+ elementName: 'action',
70
+ attributes: {
71
+ 'android:name': 'android.intent.action.VIEW'
72
+ }
73
+ },
74
+ {
75
+ elementName: 'category',
76
+ attributes: {
77
+ 'android:name': 'android.intent.category.DEFAULT'
78
+ }
79
+ },
80
+ {
81
+ elementName: 'category',
82
+ attributes: {
83
+ 'android:name': 'android.intent.category.BROWSABLE'
84
+ }
85
+ },
86
+ {
87
+ elementName: 'data',
88
+ attributes: {
89
+ 'android:scheme': config.appId
90
+ }
91
+ }
92
+ ]
93
+ }
94
+ ]
95
+ },
96
+ {
97
+ xpath: "//application",
98
+ action: 'addElement',
99
+ elementName: 'activity',
100
+ attributes: {
101
+ 'android:name': 'com.tencent.connect.common.AssistActivity',
102
+ 'android:theme': '@android:style/Theme.Translucent.NoTitleBar',
103
+ 'android:screenOrientation': 'portrait'
104
+ }
105
+ }
106
+ ],
107
+ dcloudPropertiesConfig: {
108
+ featureName: 'OAuth',
109
+ featureImpl: 'io.dcloud.feature.oauth.OAuthFeatureImpl',
110
+ moduleName: 'OAuth-QQ',
111
+ moduleImpl: 'io.dcloud.feature.oauth.qq.QQOAuthService'
112
+ }
113
+ };
114
+ const result = await integrateThirdPartyModule(projectPath, moduleDir, packageName, moduleConfig, deps);
115
+ return {
116
+ success: result.success,
117
+ message: result.message,
118
+ error: result.error,
119
+ logs: [...logs, ...result.logs]
120
+ };
121
+ }
122
+ catch (error) {
123
+ return {
124
+ success: false,
125
+ error: `集成QQ登录失败: ${error instanceof Error ? error.message : String(error)}`,
126
+ logs
127
+ };
128
+ }
129
+ }
130
+ //# sourceMappingURL=integrateQQLogin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrateQQLogin.js","sourceRoot":"","sources":["../../../src/functions/android/integrateQQLogin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type IntegrateThirdPartyModuleDeps } from './integrateThirdPartyModule';
2
+ export interface ShareTraceConfig {
3
+ appKey: string;
4
+ }
5
+ export declare function integrateShareTrace(projectPath: string, moduleDir: string, packageName: string, config: ShareTraceConfig, deps: IntegrateThirdPartyModuleDeps): Promise<{
6
+ success: boolean;
7
+ message?: string;
8
+ error?: string;
9
+ logs: string[];
10
+ }>;
@@ -0,0 +1,181 @@
1
+ import { integrateThirdPartyModule } from './integrateThirdPartyModule';
2
+ function ensureMavenCentral(rootBuildGradlePath, deps) {
3
+ try {
4
+ if (!deps.existsSync(rootBuildGradlePath)) {
5
+ return {
6
+ success: false,
7
+ error: `根目录build.gradle文件不存在: ${rootBuildGradlePath}`
8
+ };
9
+ }
10
+ let gradleContent = deps.readFileSync(rootBuildGradlePath, 'utf8');
11
+ const mavenCentralRegex = /mavenCentral\(\)/;
12
+ if (mavenCentralRegex.test(gradleContent)) {
13
+ return {
14
+ success: true,
15
+ message: 'mavenCentral仓库已存在'
16
+ };
17
+ }
18
+ const allprojectsRegex = /allprojects\s*\{/;
19
+ if (allprojectsRegex.test(gradleContent)) {
20
+ const allprojectsMatch = gradleContent.match(allprojectsRegex);
21
+ if (allprojectsMatch) {
22
+ let braceCount = 0;
23
+ let inAllprojectsBlock = false;
24
+ let allprojectsBlockEnd = -1;
25
+ const startPos = allprojectsMatch.index + allprojectsMatch[0].length;
26
+ for (let i = startPos; i < gradleContent.length; i++) {
27
+ if (gradleContent[i] === '{') {
28
+ if (!inAllprojectsBlock)
29
+ inAllprojectsBlock = true;
30
+ braceCount++;
31
+ }
32
+ if (gradleContent[i] === '}') {
33
+ braceCount--;
34
+ if (braceCount === 0 && inAllprojectsBlock) {
35
+ allprojectsBlockEnd = i;
36
+ break;
37
+ }
38
+ }
39
+ }
40
+ if (allprojectsBlockEnd !== -1) {
41
+ const allprojectsContent = gradleContent.slice(startPos, allprojectsBlockEnd);
42
+ const repositoriesRegex = /repositories\s*\{/;
43
+ if (repositoriesRegex.test(allprojectsContent)) {
44
+ const reposMatch = allprojectsContent.match(repositoriesRegex);
45
+ if (reposMatch) {
46
+ let reposBraceCount = 0;
47
+ let inReposBlock = false;
48
+ let reposBlockEnd = -1;
49
+ const reposStartPos = reposMatch.index + reposMatch[0].length;
50
+ for (let i = reposStartPos; i < allprojectsContent.length; i++) {
51
+ if (allprojectsContent[i] === '{') {
52
+ if (!inReposBlock)
53
+ inReposBlock = true;
54
+ reposBraceCount++;
55
+ }
56
+ if (allprojectsContent[i] === '}') {
57
+ reposBraceCount--;
58
+ if (reposBraceCount === 0 && inReposBlock) {
59
+ reposBlockEnd = startPos + reposStartPos + i;
60
+ break;
61
+ }
62
+ }
63
+ }
64
+ if (reposBlockEnd !== -1) {
65
+ const reposContent = gradleContent.slice(startPos + reposStartPos, reposBlockEnd);
66
+ const lastRepoMatch = reposContent.match(/(?:maven\s*\{[^}]*\}|google\(\)|jcenter\(\)|mavenCentral\(\))[\s\n]*$/m);
67
+ let insertPos;
68
+ if (lastRepoMatch && lastRepoMatch.index !== undefined) {
69
+ insertPos = startPos + reposStartPos + lastRepoMatch.index + lastRepoMatch[0].length;
70
+ }
71
+ else {
72
+ insertPos = reposBlockEnd;
73
+ }
74
+ const mavenCentralRepo = ` mavenCentral()`;
75
+ gradleContent = gradleContent.slice(0, insertPos) + '\n' + mavenCentralRepo + gradleContent.slice(insertPos);
76
+ deps.writeFileSync(rootBuildGradlePath, gradleContent, 'utf8');
77
+ return {
78
+ success: true,
79
+ message: '已在allprojects/repositories中添加mavenCentral仓库'
80
+ };
81
+ }
82
+ }
83
+ }
84
+ else {
85
+ const insertPos = allprojectsBlockEnd;
86
+ const reposBlock = `
87
+ repositories {
88
+ mavenCentral()
89
+ }`;
90
+ gradleContent = gradleContent.slice(0, insertPos) + reposBlock + gradleContent.slice(insertPos);
91
+ deps.writeFileSync(rootBuildGradlePath, gradleContent, 'utf8');
92
+ return {
93
+ success: true,
94
+ message: '已在allprojects中创建repositories并添加mavenCentral仓库'
95
+ };
96
+ }
97
+ }
98
+ }
99
+ }
100
+ else {
101
+ const mavenCentralBlock = `
102
+ allprojects {
103
+ repositories {
104
+ mavenCentral()
105
+ }
106
+ }`;
107
+ gradleContent = mavenCentralBlock + '\n' + gradleContent;
108
+ deps.writeFileSync(rootBuildGradlePath, gradleContent, 'utf8');
109
+ return {
110
+ success: true,
111
+ message: '已创建allprojects并添加mavenCentral仓库'
112
+ };
113
+ }
114
+ return {
115
+ success: false,
116
+ error: '无法找到合适的插入位置'
117
+ };
118
+ }
119
+ catch (error) {
120
+ return {
121
+ success: false,
122
+ error: `添加mavenCentral仓库失败: ${error instanceof Error ? error.message : String(error)}`
123
+ };
124
+ }
125
+ }
126
+ export async function integrateShareTrace(projectPath, moduleDir, packageName, config, deps) {
127
+ const logs = [];
128
+ try {
129
+ logs.push('开始集成ShareTrace模块');
130
+ const moduleConfig = {
131
+ name: 'ShareTrace',
132
+ gradleDependencies: [
133
+ 'com.sharetrace:sharetrace-android-sdk:2.2.1'
134
+ ],
135
+ manifestModifications: [
136
+ {
137
+ xpath: "//meta-data[@android:name='com.sharetrace.APP_KEY']",
138
+ action: 'removeElement'
139
+ },
140
+ {
141
+ xpath: "//application",
142
+ action: 'addElement',
143
+ elementName: 'meta-data',
144
+ attributes: {
145
+ 'android:name': 'com.sharetrace.APP_KEY',
146
+ 'android:value': config.appKey
147
+ }
148
+ }
149
+ ]
150
+ };
151
+ const result = await integrateThirdPartyModule(projectPath, moduleDir, packageName, moduleConfig, deps);
152
+ logs.push(...result.logs);
153
+ logs.push('配置mavenCentral仓库');
154
+ const rootBuildGradlePath = deps.join(projectPath, 'build.gradle');
155
+ const mavenCentralResult = ensureMavenCentral(rootBuildGradlePath, {
156
+ existsSync: deps.existsSync,
157
+ readFileSync: deps.readFileSync,
158
+ writeFileSync: deps.writeFileSync
159
+ });
160
+ if (mavenCentralResult.success) {
161
+ logs.push(mavenCentralResult.message || 'mavenCentral仓库配置完成');
162
+ }
163
+ else {
164
+ logs.push(`mavenCentral仓库配置失败: ${mavenCentralResult.error}`);
165
+ }
166
+ return {
167
+ success: result.success,
168
+ message: result.message,
169
+ error: result.error,
170
+ logs
171
+ };
172
+ }
173
+ catch (error) {
174
+ return {
175
+ success: false,
176
+ error: `集成ShareTrace失败: ${error instanceof Error ? error.message : String(error)}`,
177
+ logs
178
+ };
179
+ }
180
+ }
181
+ //# sourceMappingURL=integrateShareTrace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrateShareTrace.js","sourceRoot":"","sources":["../../../src/functions/android/integrateShareTrace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type IntegrateThirdPartyModuleDeps } from './integrateThirdPartyModule';
2
+ export interface SinaLoginConfig {
3
+ appKey: string;
4
+ redirectUri: string;
5
+ openDefaultAarPath: string;
6
+ oauthAarPath: string;
7
+ }
8
+ export declare function integrateSinaLogin(projectPath: string, moduleDir: string, packageName: string, config: SinaLoginConfig, deps: IntegrateThirdPartyModuleDeps): Promise<{
9
+ success: boolean;
10
+ message?: string;
11
+ error?: string;
12
+ logs: string[];
13
+ }>;
@@ -0,0 +1,85 @@
1
+ import { integrateThirdPartyModule } from './integrateThirdPartyModule';
2
+ export async function integrateSinaLogin(projectPath, moduleDir, packageName, config, deps) {
3
+ const logs = [];
4
+ try {
5
+ logs.push('开始集成新浪微博登录模块');
6
+ const libFiles = [
7
+ {
8
+ source: config.openDefaultAarPath,
9
+ targetName: 'openDefault-12.5.0.aar'
10
+ },
11
+ {
12
+ source: config.oauthAarPath,
13
+ targetName: 'oauth-sina-release.aar'
14
+ }
15
+ ];
16
+ const moduleConfig = {
17
+ name: '新浪微博登录',
18
+ libFiles,
19
+ manifestModifications: [
20
+ {
21
+ xpath: "//meta-data[@android:name='SINA_REDIRECT_URI']",
22
+ action: 'removeElement'
23
+ },
24
+ {
25
+ xpath: "//meta-data[@android:name='SINA_APPKEY']",
26
+ action: 'removeElement'
27
+ },
28
+ {
29
+ xpath: "//application",
30
+ action: 'addElement',
31
+ elementName: 'meta-data',
32
+ attributes: {
33
+ 'android:name': 'SINA_REDIRECT_URI',
34
+ 'android:value': config.redirectUri
35
+ }
36
+ },
37
+ {
38
+ xpath: "//application",
39
+ action: 'addElement',
40
+ elementName: 'meta-data',
41
+ attributes: {
42
+ 'android:name': 'SINA_APPKEY',
43
+ 'android:value': `_${config.appKey}`
44
+ }
45
+ },
46
+ {
47
+ xpath: "//activity[@android:name='com.sina.weibo.sdk.web.WeiboSdkWebActivity']",
48
+ action: 'removeElement'
49
+ },
50
+ {
51
+ xpath: "//application",
52
+ action: 'addElement',
53
+ elementName: 'activity',
54
+ attributes: {
55
+ 'android:name': 'com.sina.weibo.sdk.web.WeiboSdkWebActivity',
56
+ 'android:configChanges': 'keyboardHidden|orientation',
57
+ 'android:exported': 'false',
58
+ 'android:windowSoftInputMode': 'adjustResize'
59
+ }
60
+ }
61
+ ],
62
+ dcloudPropertiesConfig: {
63
+ featureName: 'OAuth',
64
+ featureImpl: 'io.dcloud.feature.oauth.OAuthFeatureImpl',
65
+ moduleName: 'OAuth-Sina',
66
+ moduleImpl: 'io.dcloud.feature.oauth.sina.SinaOAuthService'
67
+ }
68
+ };
69
+ const result = await integrateThirdPartyModule(projectPath, moduleDir, packageName, moduleConfig, deps);
70
+ return {
71
+ success: result.success,
72
+ message: result.message,
73
+ error: result.error,
74
+ logs: [...logs, ...result.logs]
75
+ };
76
+ }
77
+ catch (error) {
78
+ return {
79
+ success: false,
80
+ error: `集成新浪微博登录失败: ${error instanceof Error ? error.message : String(error)}`,
81
+ logs
82
+ };
83
+ }
84
+ }
85
+ //# sourceMappingURL=integrateSinaLogin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrateSinaLogin.js","sourceRoot":"","sources":["../../../src/functions/android/integrateSinaLogin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAmE,MAAM,6BAA6B,CAAA;AA0BxI,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,SAAiB,EACjB,WAAmB,EACnB,MAAuB,EACvB,IAAmC;IAEnC,MAAM,IAAI,GAAa,EAAE,CAAA;IAEzB,IAAI,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAGzB,MAAM,QAAQ,GAAmD;YAC/D;gBACE,MAAM,EAAE,MAAM,CAAC,kBAAkB;gBACjC,UAAU,EAAE,wBAAwB;aACrC;YACD;gBACE,MAAM,EAAE,MAAM,CAAC,YAAY;gBAC3B,UAAU,EAAE,wBAAwB;aACrC;SACF,CAAA;QAGD,MAAM,YAAY,GAA2B;YAC3C,IAAI,EAAE,QAAQ;YACd,QAAQ;YAER,qBAAqB,EAAE;gBAErB;oBACE,KAAK,EAAE,gDAAgD;oBACvD,MAAM,EAAE,eAAe;iBACxB;gBACD;oBACE,KAAK,EAAE,0CAA0C;oBACjD,MAAM,EAAE,eAAe;iBACxB;gBAED;oBACE,KAAK,EAAE,eAAe;oBACtB,MAAM,EAAE,YAAY;oBACpB,WAAW,EAAE,WAAW;oBACxB,UAAU,EAAE;wBACV,cAAc,EAAE,mBAAmB;wBACnC,eAAe,EAAE,MAAM,CAAC,WAAW;qBACpC;iBACF;gBAED;oBACE,KAAK,EAAE,eAAe;oBACtB,MAAM,EAAE,YAAY;oBACpB,WAAW,EAAE,WAAW;oBACxB,UAAU,EAAE;wBACV,cAAc,EAAE,aAAa;wBAC7B,eAAe,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE;qBACrC;iBACF;gBAED;oBACE,KAAK,EAAE,wEAAwE;oBAC/E,MAAM,EAAE,eAAe;iBACxB;gBAED;oBACE,KAAK,EAAE,eAAe;oBACtB,MAAM,EAAE,YAAY;oBACpB,WAAW,EAAE,UAAU;oBACvB,UAAU,EAAE;wBACV,cAAc,EAAE,4CAA4C;wBAC5D,uBAAuB,EAAE,4BAA4B;wBACrD,kBAAkB,EAAE,OAAO;wBAC3B,6BAA6B,EAAE,cAAc;qBAC9C;iBACF;aACF;YAED,sBAAsB,EAAE;gBACtB,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,0CAA0C;gBACvD,UAAU,EAAE,YAAY;gBACxB,UAAU,EAAE,+CAA+C;aAC5D;SACF,CAAA;QAGD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAC5C,WAAW,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,IAAI,CACL,CAAA;QAED,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;SAChC,CAAA;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,eAAe,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9E,IAAI;SACL,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { FileSystem, Path } from '../../../references/node.d';
2
+ import type { XMLParserConstructor, XMLSerializerConstructor } from '../../../references/xml.d';
3
+ import type { XPath } from '../../../references/xpath.d';
4
+ import { type ManifestModification } from './modifyManifest';
5
+ export interface IntegrateThirdPartyModuleDeps {
6
+ existsSync: FileSystem['existsSync'];
7
+ readFileSync: FileSystem['readFileSync'];
8
+ writeFileSync: FileSystem['writeFileSync'];
9
+ copyFileSync: FileSystem['copyFileSync'];
10
+ mkdirSync: FileSystem['mkdirSync'];
11
+ join: Path['join'];
12
+ dirname: Path['dirname'];
13
+ xmlParser: XMLParserConstructor;
14
+ xmlSerializer: XMLSerializerConstructor;
15
+ xpath: XPath;
16
+ }
17
+ export interface ThirdPartyModuleConfig {
18
+ name: string;
19
+ libFiles?: Array<{
20
+ source: string;
21
+ targetName?: string;
22
+ }>;
23
+ gradleDependencies?: string[];
24
+ sourceFiles?: Array<{
25
+ source: string;
26
+ targetDir: string;
27
+ targetName?: string;
28
+ packageReplacements?: Array<{
29
+ oldPackage: string;
30
+ newPackage: string;
31
+ }>;
32
+ }>;
33
+ manifestModifications?: ManifestModification[];
34
+ dcloudPropertiesConfig?: {
35
+ featureName: string;
36
+ featureImpl: string;
37
+ moduleName: string;
38
+ moduleImpl: string;
39
+ };
40
+ }
41
+ export declare function integrateThirdPartyModule(projectPath: string, moduleDir: string, packageName: string, config: ThirdPartyModuleConfig, deps: IntegrateThirdPartyModuleDeps): Promise<{
42
+ success: boolean;
43
+ message?: string;
44
+ error?: string;
45
+ logs: string[];
46
+ }>;