zcw-shared 1.33.0 → 1.35.0

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 (93) 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/integrateWechatShare.d.ts +13 -0
  30. package/dist/functions/android/integrateWechatShare.js +154 -0
  31. package/dist/functions/android/integrateWechatShare.js.map +1 -0
  32. package/dist/functions/android/modifyManifest.d.ts +7 -0
  33. package/dist/functions/android/modifyManifest.js +24 -0
  34. package/dist/functions/android/modifyManifest.js.map +1 -1
  35. package/dist/functions/async/cancellableFetch.d.ts +12 -0
  36. package/dist/functions/async/cancellableFetch.js +27 -0
  37. package/dist/functions/async/cancellableFetch.js.map +1 -0
  38. package/dist/functions/async/cancellableXHR.d.ts +21 -0
  39. package/dist/functions/async/cancellableXHR.js +96 -0
  40. package/dist/functions/async/cancellableXHR.js.map +1 -0
  41. package/dist/functions/functional/constant.d.ts +1 -0
  42. package/dist/functions/functional/constant.js +4 -0
  43. package/dist/functions/functional/constant.js.map +1 -0
  44. package/dist/functions/functional/identity.d.ts +1 -0
  45. package/dist/functions/functional/identity.js +4 -0
  46. package/dist/functions/functional/identity.js.map +1 -0
  47. package/dist/functions/functional/noop.d.ts +1 -0
  48. package/dist/functions/functional/noop.js +3 -0
  49. package/dist/functions/functional/noop.js.map +1 -0
  50. package/dist/functions/image/compressImageToWidth.d.ts +12 -0
  51. package/dist/functions/image/compressImageToWidth.js +44 -0
  52. package/dist/functions/image/compressImageToWidth.js.map +1 -0
  53. package/dist/functions/image/generateFavIcon.d.ts +8 -0
  54. package/dist/functions/image/generateFavIcon.js +13 -0
  55. package/dist/functions/image/generateFavIcon.js.map +1 -0
  56. package/dist/functions/image/renderBankCard.d.ts +52 -0
  57. package/dist/functions/image/renderBankCard.js +177 -0
  58. package/dist/functions/image/renderBankCard.js.map +1 -0
  59. package/dist/functions/image/renderBusinessLicense.d.ts +47 -0
  60. package/dist/functions/image/renderBusinessLicense.js +187 -0
  61. package/dist/functions/image/renderBusinessLicense.js.map +1 -0
  62. package/dist/functions/image/renderDrivingLicense.d.ts +48 -0
  63. package/dist/functions/image/renderDrivingLicense.js +201 -0
  64. package/dist/functions/image/renderDrivingLicense.js.map +1 -0
  65. package/dist/functions/image/renderLicensePlate.d.ts +47 -0
  66. package/dist/functions/image/renderLicensePlate.js +85 -0
  67. package/dist/functions/image/renderLicensePlate.js.map +1 -0
  68. package/dist/functions/software/publishToPgyer.d.ts +16 -0
  69. package/dist/functions/software/publishToPgyer.js +96 -0
  70. package/dist/functions/software/publishToPgyer.js.map +1 -0
  71. package/dist/functions/tencent-cloud/deploy.tcb.js +1 -1
  72. package/dist/functions/tencent-cloud/deploy.tcb.js.map +1 -1
  73. package/dist/functions/uniapp/app-plus/buildAndroidApp.js +290 -0
  74. package/dist/functions/uniapp/app-plus/buildAndroidApp.js.map +1 -1
  75. package/dist/functions/validation/generateFakeBankCard.d.ts +87 -0
  76. package/dist/functions/validation/generateFakeBankCard.js +152 -0
  77. package/dist/functions/validation/generateFakeBankCard.js.map +1 -0
  78. package/dist/functions/validation/generateFakeBusinessLicense.d.ts +21 -0
  79. package/dist/functions/validation/generateFakeBusinessLicense.js +160 -0
  80. package/dist/functions/validation/generateFakeBusinessLicense.js.map +1 -0
  81. package/dist/functions/validation/generateFakeDrivingLicense.d.ts +31 -0
  82. package/dist/functions/validation/generateFakeDrivingLicense.js +119 -0
  83. package/dist/functions/validation/generateFakeDrivingLicense.js.map +1 -0
  84. package/dist/functions/validation/generateFakeLicensePlate.d.ts +13 -0
  85. package/dist/functions/validation/generateFakeLicensePlate.js +87 -0
  86. package/dist/functions/validation/generateFakeLicensePlate.js.map +1 -0
  87. package/package.json +26 -4
  88. package/references/blob.d.ts +4 -0
  89. package/references/fetch.d.ts +22 -0
  90. package/references/sharp.d.ts +1 -0
  91. package/references/xhr.d.ts +47 -0
  92. package/types/pgyer.d.ts +64 -0
  93. package/types/uniapp-android-build.d.ts +124 -0
package/README.md CHANGED
@@ -383,7 +383,7 @@ export interface AndroidBuildOptions {
383
383
  // Node.js 环境
384
384
  import fs from 'fs'
385
385
  import path from 'path'
386
- import { buildProject } from 'shared/functions/android/buildProject'
386
+ import { buildProject } from 'zcw-shared/functions/android/buildProject'
387
387
 
388
388
  const result = await buildProject(options, {
389
389
  existsSync: fs.existsSync,
@@ -397,7 +397,7 @@ const result = await buildProject(options, {
397
397
 
398
398
  // 浏览器 Vue 环境
399
399
  import { ref, shallowRef, watch } from 'vue'
400
- import { useAsyncState } from 'shared/vue-hooks/state/useAsyncState'
400
+ import { useAsyncState } from 'zcw-shared/vue-hooks/state/useAsyncState'
401
401
 
402
402
  // 传入 Vue 运行时函数和浏览器 API(注意:运行时函数通过依赖注入传入,类型通过 import type 导入)
403
403
  const { state, isLoading } = useAsyncState(
@@ -413,7 +413,7 @@ const { state, isLoading } = useAsyncState(
413
413
  )
414
414
 
415
415
  // 浏览器 DOM 操作
416
- import { getViewportRect } from 'shared/functions/dom/getViewportRect'
416
+ import { getViewportRect } from 'zcw-shared/functions/dom/getViewportRect'
417
417
 
418
418
  const viewport = getViewportRect({
419
419
  innerWidth: window.innerWidth,
@@ -445,17 +445,17 @@ const viewport = getViewportRect({
445
445
 
446
446
  ```typescript
447
447
  // 导入单个函数
448
- import { convertColor } from 'shared/functions/color/convertColor'
449
- import type { RgbColor } from 'shared/types/color'
448
+ import { convertColor } from 'zcw-shared/functions/color/convertColor'
449
+ import type { RgbColor } from 'zcw-shared/types/color'
450
450
 
451
451
  // 导入环境类型
452
- import type { FileSystem } from 'shared/references/node'
452
+ import type { FileSystem } from 'zcw-shared/references/node'
453
453
 
454
454
  // 导入常量
455
- import { COLOR_VALIDATION_PATTERNS } from 'shared/constants/colorPatterns'
455
+ import { COLOR_VALIDATION_PATTERNS } from 'zcw-shared/constants/colorPatterns'
456
456
 
457
457
  // 导入Hooks
458
- import { useStorage } from 'shared/hooks/useStorage'
458
+ import { useStorage } from 'zcw-shared/hooks/useStorage'
459
459
  ```
460
460
 
461
461
  ### Playground 集成
@@ -475,8 +475,8 @@ import { useStorage } from 'shared/hooks/useStorage'
475
475
 
476
476
  ```typescript
477
477
  // playground/tests/convertColor.test.ts
478
- import { convertColor } from 'shared/functions/color/convertColor'
479
- import type { RgbColor } from 'shared/types/color'
478
+ import { convertColor } from 'zcw-shared/functions/color/convertColor'
479
+ import type { RgbColor } from 'zcw-shared/types/color'
480
480
  ```
481
481
 
482
482
  ## Playground 测试指南
@@ -506,8 +506,8 @@ playground/tests/
506
506
  #### 1. 基础功能测试
507
507
 
508
508
  ```typescript
509
- import { convertColor } from 'shared/functions/color/convertColor'
510
- import type { ColorFormat } from 'shared/types/color'
509
+ import { convertColor } from 'zcw-shared/functions/color/convertColor'
510
+ import type { ColorFormat } from 'zcw-shared/types/color'
511
511
 
512
512
  // 基础测试用例
513
513
  const testCases = [
@@ -549,7 +549,7 @@ const edgeCases = [
549
549
  对于需要特殊环境模拟的函数:
550
550
 
551
551
  ```typescript
552
- import { buildProject } from 'shared/functions/android/buildProject'
552
+ import { buildProject } from 'zcw-shared/functions/android/buildProject'
553
553
 
554
554
  // 创建模拟的依赖函数
555
555
  const mockDeps = {
@@ -0,0 +1,12 @@
1
+ import { type IntegrateThirdPartyModuleDeps } from './integrateThirdPartyModule';
2
+ export interface FacebookLoginConfig {
3
+ appId: string;
4
+ clientToken: string;
5
+ oauthAarPath: string;
6
+ }
7
+ export declare function integrateFacebookLogin(projectPath: string, moduleDir: string, packageName: string, config: FacebookLoginConfig, deps: IntegrateThirdPartyModuleDeps): Promise<{
8
+ success: boolean;
9
+ message?: string;
10
+ error?: string;
11
+ logs: string[];
12
+ }>;
@@ -0,0 +1,91 @@
1
+ import { integrateThirdPartyModule } from './integrateThirdPartyModule';
2
+ export async function integrateFacebookLogin(projectPath, moduleDir, packageName, config, deps) {
3
+ const logs = [];
4
+ try {
5
+ logs.push('开始集成Facebook登录模块');
6
+ const libFiles = [
7
+ {
8
+ source: config.oauthAarPath,
9
+ targetName: 'oauth-facebook-release.aar'
10
+ }
11
+ ];
12
+ const moduleConfig = {
13
+ name: 'Facebook登录',
14
+ libFiles,
15
+ gradleDependencies: [
16
+ 'com.facebook.android:facebook-login:17.0.2'
17
+ ],
18
+ dcloudPropertiesConfig: {
19
+ featureName: 'OAuth',
20
+ featureImpl: 'io.dcloud.feature.oauth.OAuthFeatureImpl',
21
+ moduleName: 'OAuth-Facebook',
22
+ moduleImpl: 'io.dcloud.feature.facebook.FacebookOAuthService'
23
+ }
24
+ };
25
+ const result = await integrateThirdPartyModule(projectPath, moduleDir, packageName, moduleConfig, deps);
26
+ logs.push(...result.logs);
27
+ logs.push('配置strings.xml(Facebook资源)');
28
+ const stringsXmlPath = deps.join(projectPath, moduleDir, 'src', 'main', 'res', 'values', 'strings.xml');
29
+ if (!deps.existsSync(stringsXmlPath)) {
30
+ const stringsDir = deps.dirname(stringsXmlPath);
31
+ if (!deps.existsSync(stringsDir)) {
32
+ deps.mkdirSync(stringsDir, { recursive: true });
33
+ }
34
+ const initialXml = `<?xml version="1.0" encoding="utf-8"?>
35
+ <resources>
36
+ </resources>`;
37
+ deps.writeFileSync(stringsXmlPath, initialXml, 'utf8');
38
+ }
39
+ let xmlContent = deps.readFileSync(stringsXmlPath, 'utf8');
40
+ const parser = new deps.xmlParser();
41
+ const xmlDoc = parser.parseFromString(xmlContent, 'text/xml');
42
+ const resourcesElements = xmlDoc.getElementsByTagName('resources');
43
+ if (resourcesElements.length === 0) {
44
+ logs.push('strings.xml格式错误:找不到resources元素');
45
+ }
46
+ else {
47
+ const resourcesElement = resourcesElements[0];
48
+ const existingStrings = xmlDoc.getElementsByTagName('string');
49
+ const stringsToAdd = [
50
+ { name: 'facebook_app_id', value: config.appId },
51
+ { name: 'fb_login_protocol_scheme', value: `fb${config.appId}` },
52
+ { name: 'facebook_client_token', value: config.clientToken }
53
+ ];
54
+ for (const { name, value } of stringsToAdd) {
55
+ let exists = false;
56
+ for (let i = 0; i < existingStrings.length; i++) {
57
+ const strElement = existingStrings[i];
58
+ if (strElement.getAttribute('name') === name) {
59
+ strElement.textContent = value;
60
+ exists = true;
61
+ break;
62
+ }
63
+ }
64
+ if (!exists) {
65
+ const newString = xmlDoc.createElement('string');
66
+ newString.setAttribute('name', name);
67
+ newString.textContent = value;
68
+ resourcesElement.appendChild(newString);
69
+ }
70
+ }
71
+ const serializer = new deps.xmlSerializer();
72
+ const newXmlContent = serializer.serializeToString(xmlDoc);
73
+ deps.writeFileSync(stringsXmlPath, newXmlContent, 'utf8');
74
+ logs.push('strings.xml配置完成');
75
+ }
76
+ return {
77
+ success: result.success,
78
+ message: result.message,
79
+ error: result.error,
80
+ logs
81
+ };
82
+ }
83
+ catch (error) {
84
+ return {
85
+ success: false,
86
+ error: `集成Facebook登录失败: ${error instanceof Error ? error.message : String(error)}`,
87
+ logs
88
+ };
89
+ }
90
+ }
91
+ //# sourceMappingURL=integrateFacebookLogin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrateFacebookLogin.js","sourceRoot":"","sources":["../../../src/functions/android/integrateFacebookLogin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type IntegrateThirdPartyModuleDeps } from './integrateThirdPartyModule';
2
+ export interface GoogleLoginConfig {
3
+ oauthAarPath: string;
4
+ }
5
+ export declare function integrateGoogleLogin(projectPath: string, moduleDir: string, packageName: string, config: GoogleLoginConfig, deps: IntegrateThirdPartyModuleDeps): Promise<{
6
+ success: boolean;
7
+ message?: string;
8
+ error?: string;
9
+ logs: string[];
10
+ }>;
@@ -0,0 +1,199 @@
1
+ import { integrateThirdPartyModule } from './integrateThirdPartyModule';
2
+ function addGoogleServicesPlugin(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 buildscriptRegex = /buildscript\s*\{/;
12
+ if (buildscriptRegex.test(gradleContent)) {
13
+ const buildscriptMatch = gradleContent.match(buildscriptRegex);
14
+ if (buildscriptMatch) {
15
+ let braceCount = 0;
16
+ let inBuildscriptBlock = false;
17
+ let buildscriptBlockEnd = -1;
18
+ const startPos = buildscriptMatch.index + buildscriptMatch[0].length;
19
+ for (let i = startPos; i < gradleContent.length; i++) {
20
+ if (gradleContent[i] === '{') {
21
+ if (!inBuildscriptBlock)
22
+ inBuildscriptBlock = true;
23
+ braceCount++;
24
+ }
25
+ if (gradleContent[i] === '}') {
26
+ braceCount--;
27
+ if (braceCount === 0 && inBuildscriptBlock) {
28
+ buildscriptBlockEnd = i;
29
+ break;
30
+ }
31
+ }
32
+ }
33
+ if (buildscriptBlockEnd !== -1) {
34
+ const buildscriptContent = gradleContent.slice(startPos, buildscriptBlockEnd);
35
+ const googleServicesRegex = /com\.google\.gms:google-services:/;
36
+ if (googleServicesRegex.test(buildscriptContent)) {
37
+ return {
38
+ success: true,
39
+ message: 'google-services插件已存在于buildscript/dependencies中'
40
+ };
41
+ }
42
+ }
43
+ }
44
+ }
45
+ if (buildscriptRegex.test(gradleContent)) {
46
+ const buildscriptMatch = gradleContent.match(buildscriptRegex);
47
+ if (buildscriptMatch) {
48
+ let braceCount = 0;
49
+ let inBuildscriptBlock = false;
50
+ let buildscriptBlockEnd = -1;
51
+ const startPos = buildscriptMatch.index + buildscriptMatch[0].length;
52
+ for (let i = startPos; i < gradleContent.length; i++) {
53
+ if (gradleContent[i] === '{') {
54
+ if (!inBuildscriptBlock)
55
+ inBuildscriptBlock = true;
56
+ braceCount++;
57
+ }
58
+ if (gradleContent[i] === '}') {
59
+ braceCount--;
60
+ if (braceCount === 0 && inBuildscriptBlock) {
61
+ buildscriptBlockEnd = i;
62
+ break;
63
+ }
64
+ }
65
+ }
66
+ if (buildscriptBlockEnd !== -1) {
67
+ const buildscriptContent = gradleContent.slice(startPos, buildscriptBlockEnd);
68
+ const dependenciesRegex = /dependencies\s*\{/;
69
+ if (dependenciesRegex.test(buildscriptContent)) {
70
+ const depsMatch = buildscriptContent.match(dependenciesRegex);
71
+ if (depsMatch) {
72
+ let depsBraceCount = 0;
73
+ let inDepsBlock = false;
74
+ let depsBlockEnd = -1;
75
+ const depsStartPos = depsMatch.index + depsMatch[0].length;
76
+ for (let i = depsStartPos; i < buildscriptContent.length; i++) {
77
+ if (buildscriptContent[i] === '{') {
78
+ if (!inDepsBlock)
79
+ inDepsBlock = true;
80
+ depsBraceCount++;
81
+ }
82
+ if (buildscriptContent[i] === '}') {
83
+ depsBraceCount--;
84
+ if (depsBraceCount === 0 && inDepsBlock) {
85
+ depsBlockEnd = startPos + depsStartPos + i;
86
+ break;
87
+ }
88
+ }
89
+ }
90
+ if (depsBlockEnd !== -1) {
91
+ const googleServicesDep = ` classpath 'com.google.gms:google-services:4.2.0'`;
92
+ gradleContent = gradleContent.slice(0, depsBlockEnd) + '\n' + googleServicesDep + '\n ' + gradleContent.slice(depsBlockEnd);
93
+ deps.writeFileSync(rootBuildGradlePath, gradleContent, 'utf8');
94
+ return {
95
+ success: true,
96
+ message: '已在buildscript/dependencies中添加google-services插件'
97
+ };
98
+ }
99
+ }
100
+ }
101
+ else {
102
+ const insertPos = buildscriptBlockEnd;
103
+ const depsBlock = `
104
+ dependencies {
105
+ classpath 'com.google.gms:google-services:4.2.0'
106
+ }`;
107
+ gradleContent = gradleContent.slice(0, insertPos) + depsBlock + gradleContent.slice(insertPos);
108
+ deps.writeFileSync(rootBuildGradlePath, gradleContent, 'utf8');
109
+ return {
110
+ success: true,
111
+ message: '已在buildscript中创建dependencies并添加google-services插件'
112
+ };
113
+ }
114
+ }
115
+ }
116
+ }
117
+ else {
118
+ const googleServicesBlock = `
119
+ buildscript {
120
+ repositories {
121
+ google()
122
+ }
123
+ dependencies {
124
+ classpath 'com.google.gms:google-services:4.2.0'
125
+ }
126
+ }`;
127
+ gradleContent = googleServicesBlock + '\n' + gradleContent;
128
+ deps.writeFileSync(rootBuildGradlePath, gradleContent, 'utf8');
129
+ return {
130
+ success: true,
131
+ message: '已创建buildscript并添加google-services插件'
132
+ };
133
+ }
134
+ return {
135
+ success: false,
136
+ error: '无法找到合适的插入位置'
137
+ };
138
+ }
139
+ catch (error) {
140
+ return {
141
+ success: false,
142
+ error: `添加google-services插件失败: ${error instanceof Error ? error.message : String(error)}`
143
+ };
144
+ }
145
+ }
146
+ export async function integrateGoogleLogin(projectPath, moduleDir, packageName, config, deps) {
147
+ const logs = [];
148
+ try {
149
+ logs.push('开始集成Google登录模块');
150
+ const libFiles = [
151
+ {
152
+ source: config.oauthAarPath,
153
+ targetName: 'oauth-google-release.aar'
154
+ }
155
+ ];
156
+ const moduleConfig = {
157
+ name: 'Google登录',
158
+ libFiles,
159
+ gradleDependencies: [
160
+ 'com.google.android.gms:play-services-auth:19.2.0'
161
+ ],
162
+ dcloudPropertiesConfig: {
163
+ featureName: 'OAuth',
164
+ featureImpl: 'io.dcloud.feature.oauth.OAuthFeatureImpl',
165
+ moduleName: 'OAuth-Google',
166
+ moduleImpl: 'io.dcloud.feature.google.GoogleOAuthService'
167
+ }
168
+ };
169
+ const result = await integrateThirdPartyModule(projectPath, moduleDir, packageName, moduleConfig, deps);
170
+ logs.push(...result.logs);
171
+ logs.push('配置google-services插件');
172
+ const rootBuildGradlePath = deps.join(projectPath, 'build.gradle');
173
+ const pluginResult = addGoogleServicesPlugin(rootBuildGradlePath, {
174
+ existsSync: deps.existsSync,
175
+ readFileSync: deps.readFileSync,
176
+ writeFileSync: deps.writeFileSync
177
+ });
178
+ if (pluginResult.success) {
179
+ logs.push(pluginResult.message || 'google-services插件配置完成');
180
+ }
181
+ else {
182
+ logs.push(`google-services插件配置失败: ${pluginResult.error}`);
183
+ }
184
+ return {
185
+ success: result.success,
186
+ message: result.message,
187
+ error: result.error,
188
+ logs
189
+ };
190
+ }
191
+ catch (error) {
192
+ return {
193
+ success: false,
194
+ error: `集成Google登录失败: ${error instanceof Error ? error.message : String(error)}`,
195
+ logs
196
+ };
197
+ }
198
+ }
199
+ //# sourceMappingURL=integrateGoogleLogin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrateGoogleLogin.js","sourceRoot":"","sources":["../../../src/functions/android/integrateGoogleLogin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type IntegrateThirdPartyModuleDeps } from './integrateThirdPartyModule';
2
+ export interface MiuiLoginConfig {
3
+ appId: string;
4
+ appSecret: string;
5
+ redirectUri: string;
6
+ oauthAarPath: string;
7
+ }
8
+ export declare function integrateMiuiLogin(projectPath: string, moduleDir: string, packageName: string, config: MiuiLoginConfig, deps: IntegrateThirdPartyModuleDeps): Promise<{
9
+ success: boolean;
10
+ message?: string;
11
+ error?: string;
12
+ logs: string[];
13
+ }>;
@@ -0,0 +1,115 @@
1
+ import { integrateThirdPartyModule } from './integrateThirdPartyModule';
2
+ export async function integrateMiuiLogin(projectPath, moduleDir, packageName, config, deps) {
3
+ const logs = [];
4
+ try {
5
+ logs.push('开始集成小米登录模块');
6
+ const libFiles = [
7
+ {
8
+ source: config.oauthAarPath,
9
+ targetName: 'oauth-miui-release.aar'
10
+ }
11
+ ];
12
+ const moduleConfig = {
13
+ name: '小米登录',
14
+ libFiles,
15
+ manifestModifications: [
16
+ {
17
+ xpath: "//uses-permission[@android:name='android.permission.MODIFY_AUDIO_SETTINGS']",
18
+ action: 'removeElement'
19
+ },
20
+ {
21
+ xpath: "//uses-permission[@android:name='com.xiaomi.permission.AUTH_SERVICE']",
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: "//manifest",
34
+ action: 'addElement',
35
+ elementName: 'uses-permission',
36
+ attributes: {
37
+ 'android:name': 'com.xiaomi.permission.AUTH_SERVICE'
38
+ }
39
+ },
40
+ {
41
+ xpath: "//meta-data[@android:name='MIUI_APPID']",
42
+ action: 'removeElement'
43
+ },
44
+ {
45
+ xpath: "//meta-data[@android:name='MIUI_APPSECRET']",
46
+ action: 'removeElement'
47
+ },
48
+ {
49
+ xpath: "//meta-data[@android:name='MIUI_REDIRECT_URI']",
50
+ action: 'removeElement'
51
+ },
52
+ {
53
+ xpath: "//application",
54
+ action: 'addElement',
55
+ elementName: 'meta-data',
56
+ attributes: {
57
+ 'android:name': 'MIUI_APPID',
58
+ 'android:value': `_${config.appId}`
59
+ }
60
+ },
61
+ {
62
+ xpath: "//application",
63
+ action: 'addElement',
64
+ elementName: 'meta-data',
65
+ attributes: {
66
+ 'android:name': 'MIUI_APPSECRET',
67
+ 'android:value': config.appSecret
68
+ }
69
+ },
70
+ {
71
+ xpath: "//application",
72
+ action: 'addElement',
73
+ elementName: 'meta-data',
74
+ attributes: {
75
+ 'android:name': 'MIUI_REDIRECT_URI',
76
+ 'android:value': config.redirectUri
77
+ }
78
+ },
79
+ {
80
+ xpath: "//activity[@android:name='com.xiaomi.account.openauth.AuthorizeActivity']",
81
+ action: 'removeElement'
82
+ },
83
+ {
84
+ xpath: "//application",
85
+ action: 'addElement',
86
+ elementName: 'activity',
87
+ attributes: {
88
+ 'android:name': 'com.xiaomi.account.openauth.AuthorizeActivity'
89
+ }
90
+ }
91
+ ],
92
+ dcloudPropertiesConfig: {
93
+ featureName: 'OAuth',
94
+ featureImpl: 'io.dcloud.feature.oauth.OAuthFeatureImpl',
95
+ moduleName: 'OAuth-MiUi',
96
+ moduleImpl: 'io.dcloud.feature.oauth.miui.MiUiOAuthService'
97
+ }
98
+ };
99
+ const result = await integrateThirdPartyModule(projectPath, moduleDir, packageName, moduleConfig, deps);
100
+ return {
101
+ success: result.success,
102
+ message: result.message,
103
+ error: result.error,
104
+ logs: [...logs, ...result.logs]
105
+ };
106
+ }
107
+ catch (error) {
108
+ return {
109
+ success: false,
110
+ error: `集成小米登录失败: ${error instanceof Error ? error.message : String(error)}`,
111
+ logs
112
+ };
113
+ }
114
+ }
115
+ //# sourceMappingURL=integrateMiuiLogin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrateMiuiLogin.js","sourceRoot":"","sources":["../../../src/functions/android/integrateMiuiLogin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { type IntegrateThirdPartyModuleDeps } from './integrateThirdPartyModule';
2
+ export interface QQLoginConfig {
3
+ appId: string;
4
+ oauthAarPath: string;
5
+ openSdkJarPath: string;
6
+ }
7
+ export declare function integrateQQLogin(projectPath: string, moduleDir: string, packageName: string, config: QQLoginConfig, deps: IntegrateThirdPartyModuleDeps): Promise<{
8
+ success: boolean;
9
+ message?: string;
10
+ error?: string;
11
+ logs: string[];
12
+ }>;