zcw-shared 2.4.0 → 2.8.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.
- package/dist/functions/android/integrateThirdPartyModule.d.ts +5 -0
- package/dist/functions/android/integrateThirdPartyModule.js +70 -0
- package/dist/functions/android/integrateThirdPartyModule.js.map +1 -1
- package/dist/functions/android/integrateUniPushAndroid.d.ts +23 -0
- package/dist/functions/android/integrateUniPushAndroid.js +266 -0
- package/dist/functions/android/integrateUniPushAndroid.js.map +1 -0
- package/dist/functions/api/auth.d.ts +14 -0
- package/dist/functions/api/auth.js +109 -0
- package/dist/functions/api/auth.js.map +1 -0
- package/dist/functions/api/schemas/auth.schema.d.ts +363 -0
- package/dist/functions/api/schemas/auth.schema.js +39 -0
- package/dist/functions/api/schemas/auth.schema.js.map +1 -0
- package/dist/functions/api/schemas/video.schema.d.ts +391 -0
- package/dist/functions/api/schemas/video.schema.js +55 -0
- package/dist/functions/api/schemas/video.schema.js.map +1 -0
- package/dist/functions/api/video.d.ts +62 -0
- package/dist/functions/api/video.js +243 -0
- package/dist/functions/api/video.js.map +1 -0
- package/dist/functions/browser/isElectron.d.ts +5 -0
- package/dist/functions/browser/isElectron.js +4 -0
- package/dist/functions/browser/isElectron.js.map +1 -0
- package/dist/functions/dom/isTextTruncated.d.ts +4 -0
- package/dist/functions/dom/isTextTruncated.js +16 -0
- package/dist/functions/dom/isTextTruncated.js.map +1 -0
- package/dist/functions/dom/localFileInput.d.ts +14 -0
- package/dist/functions/dom/localFileInput.js +27 -0
- package/dist/functions/dom/localFileInput.js.map +1 -0
- package/dist/functions/file/getIconfontNameByExtension.js +53 -56
- package/dist/functions/file/getIconfontNameByExtension.js.map +1 -1
- package/dist/functions/im/parseImMentionSegments.d.ts +15 -0
- package/dist/functions/im/parseImMentionSegments.js +56 -0
- package/dist/functions/im/parseImMentionSegments.js.map +1 -0
- package/dist/functions/ios/integrateThirdPartyModule.d.ts +9 -1
- package/dist/functions/ios/integrateThirdPartyModule.js +112 -2
- package/dist/functions/ios/integrateThirdPartyModule.js.map +1 -1
- package/dist/functions/ios/integrateUniPushIOS.d.ts +18 -0
- package/dist/functions/ios/integrateUniPushIOS.js +200 -0
- package/dist/functions/ios/integrateUniPushIOS.js.map +1 -0
- package/dist/functions/oss/uploadViaSignedPut.d.ts +35 -0
- package/dist/functions/oss/uploadViaSignedPut.js +86 -0
- package/dist/functions/oss/uploadViaSignedPut.js.map +1 -0
- package/dist/functions/uniapp/app-plus/buildAndroidApp.js +38 -0
- package/dist/functions/uniapp/app-plus/buildAndroidApp.js.map +1 -1
- package/dist/functions/uniapp/app-plus/buildIOSApp.js +38 -0
- package/dist/functions/uniapp/app-plus/buildIOSApp.js.map +1 -1
- package/dist/vue-hooks/dom/useAppendToBody.d.ts +25 -0
- package/dist/vue-hooks/dom/useAppendToBody.js +31 -0
- package/dist/vue-hooks/dom/useAppendToBody.js.map +1 -0
- package/dist/vue-hooks/dom/useDraggable.d.ts +8 -3
- package/dist/vue-hooks/dom/useDraggable.js +57 -19
- package/dist/vue-hooks/dom/useDraggable.js.map +1 -1
- package/package.json +11 -1
- package/references/dom.d.ts +8 -3
- package/types/im-api.d.ts +26 -2
- package/types/im-chat.d.ts +42 -1
- package/types/im-message-display.d.ts +89 -0
- package/types/uniapp-android-build.d.ts +31 -0
- package/types/uniapp-ios-build.d.ts +26 -0
- package/types/user.d.ts +2 -1
- package/dist/functions/async/sleep.d.ts +0 -5
- package/dist/functions/async/sleep.js +0 -6
- package/dist/functions/async/sleep.js.map +0 -1
- package/dist/functions/async/timeout.d.ts +0 -6
- package/dist/functions/async/timeout.js +0 -12
- package/dist/functions/async/timeout.js.map +0 -1
- package/dist/functions/browser/computePosition.d.ts +0 -6
- package/dist/functions/browser/computePosition.js +0 -49
- package/dist/functions/browser/computePosition.js.map +0 -1
- package/dist/functions/browser/createSharedKeyboardCenter.d.ts +0 -18
- package/dist/functions/browser/createSharedKeyboardCenter.js +0 -58
- package/dist/functions/browser/createSharedKeyboardCenter.js.map +0 -1
- package/dist/functions/browser/createThrottledEventListener.d.ts +0 -11
- package/dist/functions/browser/createThrottledEventListener.js +0 -51
- package/dist/functions/browser/createThrottledEventListener.js.map +0 -1
- package/dist/functions/browser/demonstrateResourceLoading.d.ts +0 -32
- package/dist/functions/browser/demonstrateResourceLoading.js +0 -169
- package/dist/functions/browser/demonstrateResourceLoading.js.map +0 -1
- package/dist/functions/browser/detectOverflow.d.ts +0 -12
- package/dist/functions/browser/detectOverflow.js +0 -17
- package/dist/functions/browser/detectOverflow.js.map +0 -1
- package/dist/functions/browser/getAlignment.d.ts +0 -2
- package/dist/functions/browser/getAlignment.js +0 -5
- package/dist/functions/browser/getAlignment.js.map +0 -1
- package/dist/functions/browser/getBasePlacement.d.ts +0 -2
- package/dist/functions/browser/getBasePlacement.js +0 -4
- package/dist/functions/browser/getBasePlacement.js.map +0 -1
- package/dist/functions/browser/getCrossAxisFlip.d.ts +0 -2
- package/dist/functions/browser/getCrossAxisFlip.js +0 -11
- package/dist/functions/browser/getCrossAxisFlip.js.map +0 -1
- package/dist/functions/browser/getElementRect.d.ts +0 -3
- package/dist/functions/browser/getElementRect.js +0 -14
- package/dist/functions/browser/getElementRect.js.map +0 -1
- package/dist/functions/browser/getFlipPlacements.d.ts +0 -2
- package/dist/functions/browser/getFlipPlacements.js +0 -13
- package/dist/functions/browser/getFlipPlacements.js.map +0 -1
- package/dist/functions/browser/getMainAxisFlip.d.ts +0 -2
- package/dist/functions/browser/getMainAxisFlip.js +0 -17
- package/dist/functions/browser/getMainAxisFlip.js.map +0 -1
- package/dist/functions/browser/getRelativePosition.d.ts +0 -3
- package/dist/functions/browser/getRelativePosition.js +0 -14
- package/dist/functions/browser/getRelativePosition.js.map +0 -1
- package/dist/functions/browser/getViewportRect.d.ts +0 -7
- package/dist/functions/browser/getViewportRect.js +0 -15
- package/dist/functions/browser/getViewportRect.js.map +0 -1
- package/dist/functions/browser/isValidPlacement.d.ts +0 -2
- package/dist/functions/browser/isValidPlacement.js +0 -16
- package/dist/functions/browser/isValidPlacement.js.map +0 -1
- package/dist/functions/browser/pickFile.d.ts +0 -15
- package/dist/functions/browser/pickFile.js +0 -48
- package/dist/functions/browser/pickFile.js.map +0 -1
- package/dist/functions/build/generateExports.d.ts +0 -26
- package/dist/functions/build/generateExports.js +0 -34
- package/dist/functions/build/generateExports.js.map +0 -1
- package/dist/functions/core/diff/diff.d.ts +0 -25
- package/dist/functions/core/diff/diff.js +0 -316
- package/dist/functions/core/diff/diff.js.map +0 -1
- package/dist/functions/core/diff/vueDiff.d.ts +0 -38
- package/dist/functions/core/diff/vueDiff.js +0 -333
- package/dist/functions/core/diff/vueDiff.js.map +0 -1
- package/dist/functions/core/generator/generatorUtils.d.ts +0 -16
- package/dist/functions/core/generator/generatorUtils.js +0 -139
- package/dist/functions/core/generator/generatorUtils.js.map +0 -1
- package/dist/functions/core/type/isType.d.ts +0 -11
- package/dist/functions/core/type/isType.js +0 -30
- package/dist/functions/core/type/isType.js.map +0 -1
- package/dist/functions/data/array-object/chunk.d.ts +0 -1
- package/dist/functions/data/array-object/chunk.js +0 -11
- package/dist/functions/data/array-object/chunk.js.map +0 -1
- package/dist/functions/data/array-object/deepClone.d.ts +0 -12
- package/dist/functions/data/array-object/deepClone.js +0 -131
- package/dist/functions/data/array-object/deepClone.js.map +0 -1
- package/dist/functions/data/array-object/evolve.d.ts +0 -3
- package/dist/functions/data/array-object/evolve.js +0 -15
- package/dist/functions/data/array-object/evolve.js.map +0 -1
- package/dist/functions/data/array-object/flatten.d.ts +0 -7
- package/dist/functions/data/array-object/flatten.js +0 -60
- package/dist/functions/data/array-object/flatten.js.map +0 -1
- package/dist/functions/data/array-object/flattenObject.d.ts +0 -5
- package/dist/functions/data/array-object/flattenObject.js +0 -102
- package/dist/functions/data/array-object/flattenObject.js.map +0 -1
- package/dist/functions/data/array-object/groupBy.d.ts +0 -1
- package/dist/functions/data/array-object/groupBy.js +0 -14
- package/dist/functions/data/array-object/groupBy.js.map +0 -1
- package/dist/functions/data/array-object/omit.d.ts +0 -1
- package/dist/functions/data/array-object/omit.js +0 -8
- package/dist/functions/data/array-object/omit.js.map +0 -1
- package/dist/functions/data/array-object/pick.d.ts +0 -1
- package/dist/functions/data/array-object/pick.js +0 -10
- package/dist/functions/data/array-object/pick.js.map +0 -1
- package/dist/functions/data/array-object/shuffle.d.ts +0 -1
- package/dist/functions/data/array-object/shuffle.js +0 -9
- package/dist/functions/data/array-object/shuffle.js.map +0 -1
- package/dist/functions/data/array-object/sortBy.d.ts +0 -1
- package/dist/functions/data/array-object/sortBy.js +0 -13
- package/dist/functions/data/array-object/sortBy.js.map +0 -1
- package/dist/functions/data/array-object/unique.d.ts +0 -10
- package/dist/functions/data/array-object/unique.js +0 -85
- package/dist/functions/data/array-object/unique.js.map +0 -1
- package/dist/functions/data/date/dateRange.d.ts +0 -1
- package/dist/functions/data/date/dateRange.js +0 -18
- package/dist/functions/data/date/dateRange.js.map +0 -1
- package/dist/functions/data/date/formatDate.d.ts +0 -1
- package/dist/functions/data/date/formatDate.js +0 -21
- package/dist/functions/data/date/formatDate.js.map +0 -1
- package/dist/functions/data/date/timeAgo.d.ts +0 -1
- package/dist/functions/data/date/timeAgo.js +0 -49
- package/dist/functions/data/date/timeAgo.js.map +0 -1
- package/dist/functions/data/number/average.d.ts +0 -1
- package/dist/functions/data/number/average.js +0 -8
- package/dist/functions/data/number/average.js.map +0 -1
- package/dist/functions/data/number/clamp.d.ts +0 -1
- package/dist/functions/data/number/clamp.js +0 -7
- package/dist/functions/data/number/clamp.js.map +0 -1
- package/dist/functions/data/number/formatNumber.d.ts +0 -8
- package/dist/functions/data/number/formatNumber.js +0 -16
- package/dist/functions/data/number/formatNumber.js.map +0 -1
- package/dist/functions/data/number/median.d.ts +0 -1
- package/dist/functions/data/number/median.js +0 -14
- package/dist/functions/data/number/median.js.map +0 -1
- package/dist/functions/data/number/percentile.d.ts +0 -1
- package/dist/functions/data/number/percentile.js +0 -18
- package/dist/functions/data/number/percentile.js.map +0 -1
- package/dist/functions/data/number/random.d.ts +0 -4
- package/dist/functions/data/number/random.js +0 -9
- package/dist/functions/data/number/random.js.map +0 -1
- package/dist/functions/data/number/range.d.ts +0 -1
- package/dist/functions/data/number/range.js +0 -18
- package/dist/functions/data/number/range.js.map +0 -1
- package/dist/functions/data/number/sum.d.ts +0 -1
- package/dist/functions/data/number/sum.js +0 -4
- package/dist/functions/data/number/sum.js.map +0 -1
- package/dist/functions/data/randomRegion.d.ts +0 -24
- package/dist/functions/data/randomRegion.js +0 -74
- package/dist/functions/data/randomRegion.js.map +0 -1
- package/dist/functions/data/string/base64.d.ts +0 -5
- package/dist/functions/data/string/base64.js +0 -6
- package/dist/functions/data/string/base64.js.map +0 -1
- package/dist/functions/data/string/capitalize.d.ts +0 -1
- package/dist/functions/data/string/capitalize.js +0 -6
- package/dist/functions/data/string/capitalize.js.map +0 -1
- package/dist/functions/data/string/caseConverter.d.ts +0 -19
- package/dist/functions/data/string/caseConverter.js +0 -94
- package/dist/functions/data/string/caseConverter.js.map +0 -1
- package/dist/functions/data/string/desensitize.d.ts +0 -13
- package/dist/functions/data/string/desensitize.js +0 -107
- package/dist/functions/data/string/desensitize.js.map +0 -1
- package/dist/functions/data/string/htmlEscape.d.ts +0 -20
- package/dist/functions/data/string/htmlEscape.js +0 -80
- package/dist/functions/data/string/htmlEscape.js.map +0 -1
- package/dist/functions/data/string/levenshtein.d.ts +0 -1
- package/dist/functions/data/string/levenshtein.js +0 -27
- package/dist/functions/data/string/levenshtein.js.map +0 -1
- package/dist/functions/data/string/normalize.d.ts +0 -8
- package/dist/functions/data/string/normalize.js +0 -37
- package/dist/functions/data/string/normalize.js.map +0 -1
- package/dist/functions/data/string/pad.d.ts +0 -13
- package/dist/functions/data/string/pad.js +0 -50
- package/dist/functions/data/string/pad.js.map +0 -1
- package/dist/functions/data/string/palindrome.d.ts +0 -3
- package/dist/functions/data/string/palindrome.js +0 -15
- package/dist/functions/data/string/palindrome.js.map +0 -1
- package/dist/functions/data/string/similarity.d.ts +0 -1
- package/dist/functions/data/string/similarity.js +0 -13
- package/dist/functions/data/string/similarity.js.map +0 -1
- package/dist/functions/data/string/template.d.ts +0 -4
- package/dist/functions/data/string/template.js +0 -21
- package/dist/functions/data/string/template.js.map +0 -1
- package/dist/functions/data/string/testRegex.d.ts +0 -20
- package/dist/functions/data/string/testRegex.js +0 -300
- package/dist/functions/data/string/testRegex.js.map +0 -1
- package/dist/functions/data/string/wordCount.d.ts +0 -5
- package/dist/functions/data/string/wordCount.js +0 -11
- package/dist/functions/data/string/wordCount.js.map +0 -1
- package/dist/functions/data/tree/buildTree.d.ts +0 -7
- package/dist/functions/data/tree/buildTree.js +0 -27
- package/dist/functions/data/tree/buildTree.js.map +0 -1
- package/dist/functions/data/tree/filterTree.d.ts +0 -4
- package/dist/functions/data/tree/filterTree.js +0 -21
- package/dist/functions/data/tree/filterTree.js.map +0 -1
- package/dist/functions/data/tree/findNode.d.ts +0 -4
- package/dist/functions/data/tree/findNode.js +0 -21
- package/dist/functions/data/tree/findNode.js.map +0 -1
- package/dist/functions/data/tree/flattenTree.d.ts +0 -6
- package/dist/functions/data/tree/flattenTree.js +0 -21
- package/dist/functions/data/tree/flattenTree.js.map +0 -1
- package/dist/functions/file/walk.d.ts +0 -18
- package/dist/functions/file/walk.js +0 -58
- package/dist/functions/file/walk.js.map +0 -1
- package/dist/functions/hybrid/detectBridgeEnvironment.d.ts +0 -11
- package/dist/functions/hybrid/detectBridgeEnvironment.js +0 -26
- package/dist/functions/hybrid/detectBridgeEnvironment.js.map +0 -1
- package/dist/functions/integrations/ag-grid/generateLicense.d.ts +0 -7
- package/dist/functions/integrations/ag-grid/generateLicense.js +0 -12
- package/dist/functions/integrations/ag-grid/generateLicense.js.map +0 -1
- package/dist/functions/integrations/uniapp/app-plus/buildAndroidApp.d.ts +0 -30
- package/dist/functions/integrations/uniapp/app-plus/buildAndroidApp.js +0 -884
- package/dist/functions/integrations/uniapp/app-plus/buildAndroidApp.js.map +0 -1
- package/dist/functions/integrations/uniapp/app-plus/buildIOSApp.d.ts +0 -31
- package/dist/functions/integrations/uniapp/app-plus/buildIOSApp.js +0 -900
- package/dist/functions/integrations/uniapp/app-plus/buildIOSApp.js.map +0 -1
- package/dist/functions/integrations/uniapp/build.d.ts +0 -21
- package/dist/functions/integrations/uniapp/build.js +0 -83
- package/dist/functions/integrations/uniapp/build.js.map +0 -1
- package/dist/functions/integrations/uniapp/detectAndroidProjectStructure.d.ts +0 -11
- package/dist/functions/integrations/uniapp/detectAndroidProjectStructure.js +0 -30
- package/dist/functions/integrations/uniapp/detectAndroidProjectStructure.js.map +0 -1
- package/dist/functions/integrations/uniapp/detectProjectType.d.ts +0 -20
- package/dist/functions/integrations/uniapp/detectProjectType.js +0 -68
- package/dist/functions/integrations/uniapp/detectProjectType.js.map +0 -1
- package/dist/functions/integrations/uniapp/parseManifest.d.ts +0 -20
- package/dist/functions/integrations/uniapp/parseManifest.js +0 -51
- package/dist/functions/integrations/uniapp/parseManifest.js.map +0 -1
- package/dist/functions/integrations/uniapp/waitForPages.d.ts +0 -7
- package/dist/functions/integrations/uniapp/waitForPages.js +0 -20
- package/dist/functions/integrations/uniapp/waitForPages.js.map +0 -1
- package/dist/functions/integrations/vue/dynamicMount.d.ts +0 -18
- package/dist/functions/integrations/vue/dynamicMount.js +0 -25
- package/dist/functions/integrations/vue/dynamicMount.js.map +0 -1
- package/dist/functions/integrations/vue/extractColorsFromVueFile.d.ts +0 -3
- package/dist/functions/integrations/vue/extractColorsFromVueFile.js +0 -18
- package/dist/functions/integrations/vue/extractColorsFromVueFile.js.map +0 -1
- package/dist/functions/integrations/vue/extractColorsFromVueSection.d.ts +0 -3
- package/dist/functions/integrations/vue/extractColorsFromVueSection.js +0 -53
- package/dist/functions/integrations/vue/extractColorsFromVueSection.js.map +0 -1
- package/dist/functions/integrations/vue/filterSections.d.ts +0 -2
- package/dist/functions/integrations/vue/filterSections.js +0 -11
- package/dist/functions/integrations/vue/filterSections.js.map +0 -1
- package/dist/functions/integrations/vue/isVNode.d.ts +0 -2
- package/dist/functions/integrations/vue/isVNode.js +0 -6
- package/dist/functions/integrations/vue/isVNode.js.map +0 -1
- package/dist/functions/integrations/vue/isVueComponent.d.ts +0 -2
- package/dist/functions/integrations/vue/isVueComponent.js +0 -6
- package/dist/functions/integrations/vue/isVueComponent.js.map +0 -1
- package/dist/functions/integrations/vue/parseVueFile.d.ts +0 -2
- package/dist/functions/integrations/vue/parseVueFile.js +0 -53
- package/dist/functions/integrations/vue/parseVueFile.js.map +0 -1
- package/dist/functions/integrations/wechat/miniapp/downloadFile.d.ts +0 -6
- package/dist/functions/integrations/wechat/miniapp/downloadFile.js +0 -39
- package/dist/functions/integrations/wechat/miniapp/downloadFile.js.map +0 -1
- package/dist/functions/patterns/MyPromise.d.ts +0 -32
- package/dist/functions/patterns/MyPromise.js +0 -254
- package/dist/functions/patterns/MyPromise.js.map +0 -1
- package/dist/functions/patterns/functionBind.d.ts +0 -4
- package/dist/functions/patterns/functionBind.js +0 -33
- package/dist/functions/patterns/functionBind.js.map +0 -1
- package/dist/functions/patterns/myInstanceof.d.ts +0 -5
- package/dist/functions/patterns/myInstanceof.js +0 -56
- package/dist/functions/patterns/myInstanceof.js.map +0 -1
- package/dist/functions/patterns/myNew.d.ts +0 -3
- package/dist/functions/patterns/myNew.js +0 -19
- package/dist/functions/patterns/myNew.js.map +0 -1
- package/dist/functions/platform/android/buildProject.d.ts +0 -13
- package/dist/functions/platform/android/buildProject.js +0 -122
- package/dist/functions/platform/android/buildProject.js.map +0 -1
- package/dist/functions/platform/android/configureAppIcon.d.ts +0 -17
- package/dist/functions/platform/android/configureAppIcon.js +0 -106
- package/dist/functions/platform/android/configureAppIcon.js.map +0 -1
- package/dist/functions/platform/android/configureLaunchScreen.d.ts +0 -21
- package/dist/functions/platform/android/configureLaunchScreen.js +0 -328
- package/dist/functions/platform/android/configureLaunchScreen.js.map +0 -1
- package/dist/functions/platform/android/detectAndroidModules.d.ts +0 -8
- package/dist/functions/platform/android/detectAndroidModules.js +0 -21
- package/dist/functions/platform/android/detectAndroidModules.js.map +0 -1
- package/dist/functions/platform/android/integrateFacebookLogin.d.ts +0 -12
- package/dist/functions/platform/android/integrateFacebookLogin.js +0 -91
- package/dist/functions/platform/android/integrateFacebookLogin.js.map +0 -1
- package/dist/functions/platform/android/integrateGoogleLogin.d.ts +0 -10
- package/dist/functions/platform/android/integrateGoogleLogin.js +0 -199
- package/dist/functions/platform/android/integrateGoogleLogin.js.map +0 -1
- package/dist/functions/platform/android/integrateMiuiLogin.d.ts +0 -13
- package/dist/functions/platform/android/integrateMiuiLogin.js +0 -115
- package/dist/functions/platform/android/integrateMiuiLogin.js.map +0 -1
- package/dist/functions/platform/android/integrateQQLogin.d.ts +0 -12
- package/dist/functions/platform/android/integrateQQLogin.js +0 -130
- package/dist/functions/platform/android/integrateQQLogin.js.map +0 -1
- package/dist/functions/platform/android/integrateShareTrace.d.ts +0 -10
- package/dist/functions/platform/android/integrateShareTrace.js +0 -181
- package/dist/functions/platform/android/integrateShareTrace.js.map +0 -1
- package/dist/functions/platform/android/integrateSinaLogin.d.ts +0 -13
- package/dist/functions/platform/android/integrateSinaLogin.js +0 -85
- package/dist/functions/platform/android/integrateSinaLogin.js.map +0 -1
- package/dist/functions/platform/android/integrateThirdPartyModule.d.ts +0 -46
- package/dist/functions/platform/android/integrateThirdPartyModule.js +0 -251
- package/dist/functions/platform/android/integrateThirdPartyModule.js.map +0 -1
- package/dist/functions/platform/android/integrateUniAppNativePlugin.d.ts +0 -22
- package/dist/functions/platform/android/integrateUniAppNativePlugin.js +0 -631
- package/dist/functions/platform/android/integrateUniAppNativePlugin.js.map +0 -1
- package/dist/functions/platform/android/integrateUniverifyLogin.d.ts +0 -11
- package/dist/functions/platform/android/integrateUniverifyLogin.js +0 -314
- package/dist/functions/platform/android/integrateUniverifyLogin.js.map +0 -1
- package/dist/functions/platform/android/integrateWechatLogin.d.ts +0 -13
- package/dist/functions/platform/android/integrateWechatLogin.js +0 -154
- package/dist/functions/platform/android/integrateWechatLogin.js.map +0 -1
- package/dist/functions/platform/android/integrateWechatShare.d.ts +0 -13
- package/dist/functions/platform/android/integrateWechatShare.js +0 -154
- package/dist/functions/platform/android/integrateWechatShare.js.map +0 -1
- package/dist/functions/platform/android/modifyGradle.d.ts +0 -28
- package/dist/functions/platform/android/modifyGradle.js +0 -119
- package/dist/functions/platform/android/modifyGradle.js.map +0 -1
- package/dist/functions/platform/android/modifyManifest.d.ts +0 -39
- package/dist/functions/platform/android/modifyManifest.js +0 -225
- package/dist/functions/platform/android/modifyManifest.js.map +0 -1
- package/dist/functions/platform/android/permission.d.ts +0 -54
- package/dist/functions/platform/android/permission.js +0 -85
- package/dist/functions/platform/android/permission.js.map +0 -1
- package/dist/functions/platform/ios/configureAppIcon.d.ts +0 -17
- package/dist/functions/platform/ios/configureAppIcon.js +0 -149
- package/dist/functions/platform/ios/configureAppIcon.js.map +0 -1
- package/dist/functions/platform/ios/configureLaunchScreen.d.ts +0 -17
- package/dist/functions/platform/ios/configureLaunchScreen.js +0 -150
- package/dist/functions/platform/ios/configureLaunchScreen.js.map +0 -1
- package/dist/functions/platform/ios/configurePermissions.d.ts +0 -19
- package/dist/functions/platform/ios/configurePermissions.js +0 -120
- package/dist/functions/platform/ios/configurePermissions.js.map +0 -1
- package/dist/functions/platform/ios/integrateNativePlugin.d.ts +0 -35
- package/dist/functions/platform/ios/integrateNativePlugin.js +0 -994
- package/dist/functions/platform/ios/integrateNativePlugin.js.map +0 -1
- package/dist/functions/platform/ios/integrateQQShare.d.ts +0 -14
- package/dist/functions/platform/ios/integrateQQShare.js +0 -132
- package/dist/functions/platform/ios/integrateQQShare.js.map +0 -1
- package/dist/functions/platform/ios/integrateSinaShare.d.ts +0 -16
- package/dist/functions/platform/ios/integrateSinaShare.js +0 -108
- package/dist/functions/platform/ios/integrateSinaShare.js.map +0 -1
- package/dist/functions/platform/ios/integrateThirdPartyModule.d.ts +0 -62
- package/dist/functions/platform/ios/integrateThirdPartyModule.js +0 -883
- package/dist/functions/platform/ios/integrateThirdPartyModule.js.map +0 -1
- package/dist/functions/platform/ios/integrateWechatOauth.d.ts +0 -14
- package/dist/functions/platform/ios/integrateWechatOauth.js +0 -107
- package/dist/functions/platform/ios/integrateWechatOauth.js.map +0 -1
- package/dist/functions/platform/ios/integrateWechatShare.d.ts +0 -14
- package/dist/functions/platform/ios/integrateWechatShare.js +0 -101
- package/dist/functions/platform/ios/integrateWechatShare.js.map +0 -1
- package/dist/functions/platform/ios/modifyInfoPlistKeyValue.d.ts +0 -2
- package/dist/functions/platform/ios/modifyInfoPlistKeyValue.js +0 -45
- package/dist/functions/platform/ios/modifyInfoPlistKeyValue.js.map +0 -1
- package/dist/functions/platform/ios/safelyModifyProjectPbxproj.d.ts +0 -16
- package/dist/functions/platform/ios/safelyModifyProjectPbxproj.js +0 -136
- package/dist/functions/platform/ios/safelyModifyProjectPbxproj.js.map +0 -1
- package/dist/functions/platform/ios/useAltool.d.ts +0 -39
- package/dist/functions/platform/ios/useAltool.js +0 -350
- package/dist/functions/platform/ios/useAltool.js.map +0 -1
- package/dist/functions/style/buildTokens.d.ts +0 -76
- package/dist/functions/style/buildTokens.js +0 -183
- package/dist/functions/style/buildTokens.js.map +0 -1
- package/dist/functions/style/extractCssVariables.d.ts +0 -16
- package/dist/functions/style/extractCssVariables.js +0 -256
- package/dist/functions/style/extractCssVariables.js.map +0 -1
- package/dist/functions/style/generateVariables.d.ts +0 -7
- package/dist/functions/style/generateVariables.js +0 -135
- package/dist/functions/style/generateVariables.js.map +0 -1
- package/dist/functions/style/mixColors.d.ts +0 -1
- package/dist/functions/style/mixColors.js +0 -38
- package/dist/functions/style/mixColors.js.map +0 -1
- package/dist/functions/style/parseDesignTokens.d.ts +0 -10
- package/dist/functions/style/parseDesignTokens.js +0 -216
- package/dist/functions/style/parseDesignTokens.js.map +0 -1
- package/dist/functions/uniapp/app-plus/buildAndroidPlugin.d.ts +0 -3
- package/dist/functions/uniapp/app-plus/buildAndroidPlugin.js +0 -509
- package/dist/functions/uniapp/app-plus/buildAndroidPlugin.js.map +0 -1
- package/dist/functions/uniapp/app-plus/buildIOSPlugin.d.ts +0 -3
- package/dist/functions/uniapp/app-plus/buildIOSPlugin.js +0 -406
- package/dist/functions/uniapp/app-plus/buildIOSPlugin.js.map +0 -1
- package/dist/functions/validation/parseJwtPayload.d.ts +0 -7
- package/dist/functions/validation/parseJwtPayload.js +0 -33
- package/dist/functions/validation/parseJwtPayload.js.map +0 -1
- package/dist/functions/validation/validate.d.ts +0 -11
- package/dist/functions/validation/validate.js +0 -44
- package/dist/functions/validation/validate.js.map +0 -1
|
@@ -1,631 +0,0 @@
|
|
|
1
|
-
import { integrateThirdPartyModule, } from "./integrateThirdPartyModule";
|
|
2
|
-
async function extractPlugin(pluginPath, extractDir, deps) {
|
|
3
|
-
try {
|
|
4
|
-
if (!deps.existsSync(pluginPath)) {
|
|
5
|
-
return {
|
|
6
|
-
success: false,
|
|
7
|
-
error: `插件路径不存在: ${pluginPath}`,
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
const stat = deps.statSync(pluginPath);
|
|
11
|
-
if (stat.isDirectory()) {
|
|
12
|
-
return {
|
|
13
|
-
success: true,
|
|
14
|
-
extractedPath: pluginPath,
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
if (stat.isFile()) {
|
|
18
|
-
const fileName = deps.basename(pluginPath);
|
|
19
|
-
const ext = fileName.split(".").pop()?.toLowerCase();
|
|
20
|
-
if (ext !== "zip") {
|
|
21
|
-
return {
|
|
22
|
-
success: false,
|
|
23
|
-
error: `不支持的插件格式: ${ext},仅支持 zip 格式`,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
const pluginName = fileName.replace(/\.zip$/i, "");
|
|
27
|
-
const targetDir = deps.join(extractDir, pluginName);
|
|
28
|
-
if (!deps.existsSync(targetDir)) {
|
|
29
|
-
deps.mkdirSync(targetDir, { recursive: true });
|
|
30
|
-
}
|
|
31
|
-
return new Promise((resolve) => {
|
|
32
|
-
deps.exec(`unzip -q -o "${pluginPath}" -d "${targetDir}"`, (error, stdout, stderr) => {
|
|
33
|
-
if (error) {
|
|
34
|
-
resolve({
|
|
35
|
-
success: false,
|
|
36
|
-
error: `解压插件失败: ${error.message}${stderr ? `\n${stderr}` : ""}`,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
let extractedPath = targetDir;
|
|
41
|
-
try {
|
|
42
|
-
const entries = deps.readdirSync(targetDir);
|
|
43
|
-
if (entries.length === 1) {
|
|
44
|
-
const singleEntry = deps.join(targetDir, entries[0]);
|
|
45
|
-
const singleStat = deps.statSync(singleEntry);
|
|
46
|
-
if (singleStat.isDirectory()) {
|
|
47
|
-
const packageJsonPath = deps.join(singleEntry, "package.json");
|
|
48
|
-
const androidDir = deps.join(singleEntry, "android");
|
|
49
|
-
if (deps.existsSync(packageJsonPath) ||
|
|
50
|
-
deps.existsSync(androidDir)) {
|
|
51
|
-
extractedPath = singleEntry;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
catch (e) {
|
|
57
|
-
}
|
|
58
|
-
resolve({
|
|
59
|
-
success: true,
|
|
60
|
-
extractedPath: extractedPath,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
return {
|
|
67
|
-
success: false,
|
|
68
|
-
error: "插件路径既不是文件也不是目录",
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
return {
|
|
73
|
-
success: false,
|
|
74
|
-
error: `解压插件失败: ${error instanceof Error ? error.message : String(error)}`,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
function readPluginPackageJson(pluginDir, deps) {
|
|
79
|
-
try {
|
|
80
|
-
const packageJsonPath = deps.join(pluginDir, "package.json");
|
|
81
|
-
if (!deps.existsSync(packageJsonPath)) {
|
|
82
|
-
return {
|
|
83
|
-
success: false,
|
|
84
|
-
error: `插件 package.json 不存在: ${packageJsonPath}`,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
const content = deps.readFileSync(packageJsonPath, "utf8");
|
|
88
|
-
const packageJson = deps.parse(content);
|
|
89
|
-
return {
|
|
90
|
-
success: true,
|
|
91
|
-
packageJson,
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
return {
|
|
96
|
-
success: false,
|
|
97
|
-
error: `读取插件 package.json 失败: ${error instanceof Error ? error.message : String(error)}`,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
function findLibFilesRecursive(dir, deps) {
|
|
102
|
-
const libFiles = [];
|
|
103
|
-
if (!deps.existsSync(dir)) {
|
|
104
|
-
return libFiles;
|
|
105
|
-
}
|
|
106
|
-
try {
|
|
107
|
-
const entries = deps.readdirSync(dir);
|
|
108
|
-
for (const entry of entries) {
|
|
109
|
-
const entryPath = deps.join(dir, entry);
|
|
110
|
-
const stat = deps.statSync(entryPath);
|
|
111
|
-
if (stat.isFile()) {
|
|
112
|
-
const ext = entry.split(".").pop()?.toLowerCase();
|
|
113
|
-
if (ext === "aar" || ext === "jar") {
|
|
114
|
-
libFiles.push(entryPath);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
else if (stat.isDirectory()) {
|
|
118
|
-
libFiles.push(...findLibFilesRecursive(entryPath, deps));
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
}
|
|
124
|
-
return libFiles;
|
|
125
|
-
}
|
|
126
|
-
function findAndroidLibFiles(pluginDir, deps) {
|
|
127
|
-
const androidDir = deps.join(pluginDir, "android");
|
|
128
|
-
return findLibFilesRecursive(androidDir, deps);
|
|
129
|
-
}
|
|
130
|
-
function copyAndroidFilesRecursive(sourceDir, projectPath, moduleDir, packageName, excludeFiles, deps) {
|
|
131
|
-
const logs = [];
|
|
132
|
-
let count = 0;
|
|
133
|
-
const excludeSet = new Set(excludeFiles.map((f) => deps.join(f).replace(/\\/g, "/")));
|
|
134
|
-
function copyRecursive(currentSource, currentTarget, relativePath = "") {
|
|
135
|
-
if (!deps.existsSync(currentSource)) {
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
try {
|
|
139
|
-
const entries = deps.readdirSync(currentSource);
|
|
140
|
-
for (const entry of entries) {
|
|
141
|
-
const sourcePath = deps.join(currentSource, entry);
|
|
142
|
-
const normalizedSource = sourcePath.replace(/\\/g, "/");
|
|
143
|
-
if (excludeSet.has(normalizedSource)) {
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
const stat = deps.statSync(sourcePath);
|
|
147
|
-
const targetPath = deps.join(currentTarget, entry);
|
|
148
|
-
const newRelativePath = relativePath
|
|
149
|
-
? deps.join(relativePath, entry)
|
|
150
|
-
: entry;
|
|
151
|
-
if (stat.isFile()) {
|
|
152
|
-
const ext = entry.split(".").pop()?.toLowerCase();
|
|
153
|
-
if (ext === "java" || ext === "kt") {
|
|
154
|
-
const javaTargetDir = deps.join(projectPath, moduleDir, "src", "main", "java", ...packageName.split("."));
|
|
155
|
-
const javaTargetPath = deps.join(javaTargetDir, newRelativePath);
|
|
156
|
-
const targetDir = deps.dirname(javaTargetPath);
|
|
157
|
-
if (!deps.existsSync(targetDir)) {
|
|
158
|
-
deps.mkdirSync(targetDir, { recursive: true });
|
|
159
|
-
}
|
|
160
|
-
let content = deps.readFileSync(sourcePath, "utf8");
|
|
161
|
-
deps.writeFileSync(javaTargetPath, content, "utf8");
|
|
162
|
-
logs.push(`已拷贝 Java 源文件: ${newRelativePath}`);
|
|
163
|
-
count++;
|
|
164
|
-
}
|
|
165
|
-
else if (ext === "xml" &&
|
|
166
|
-
(newRelativePath.includes("res/") ||
|
|
167
|
-
newRelativePath.includes("AndroidManifest"))) {
|
|
168
|
-
if (entry === "AndroidManifest.xml") {
|
|
169
|
-
logs.push(`跳过 AndroidManifest.xml(需要手动合并)`);
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
const resTargetPath = deps.join(projectPath, moduleDir, "src", "main", "res", newRelativePath.replace(/^res\//, ""));
|
|
173
|
-
const targetDir = deps.dirname(resTargetPath);
|
|
174
|
-
if (!deps.existsSync(targetDir)) {
|
|
175
|
-
deps.mkdirSync(targetDir, { recursive: true });
|
|
176
|
-
}
|
|
177
|
-
deps.copyFileSync(sourcePath, resTargetPath);
|
|
178
|
-
logs.push(`已拷贝资源文件: ${newRelativePath}`);
|
|
179
|
-
count++;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
const otherTargetPath = deps.join(projectPath, moduleDir, "src", "main", newRelativePath);
|
|
184
|
-
const targetDir = deps.dirname(otherTargetPath);
|
|
185
|
-
if (!deps.existsSync(targetDir)) {
|
|
186
|
-
deps.mkdirSync(targetDir, { recursive: true });
|
|
187
|
-
}
|
|
188
|
-
deps.copyFileSync(sourcePath, otherTargetPath);
|
|
189
|
-
logs.push(`已拷贝文件: ${newRelativePath}`);
|
|
190
|
-
count++;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
else if (stat.isDirectory()) {
|
|
194
|
-
copyRecursive(sourcePath, targetPath, newRelativePath);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
catch (error) {
|
|
199
|
-
logs.push(`拷贝文件时出错: ${error instanceof Error ? error.message : String(error)}`);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
const androidTargetBase = deps.join(projectPath, moduleDir, "src", "main");
|
|
203
|
-
copyRecursive(sourceDir, androidTargetBase, "");
|
|
204
|
-
return { count, logs };
|
|
205
|
-
}
|
|
206
|
-
function extractPluginConfig(packageJson) {
|
|
207
|
-
try {
|
|
208
|
-
let plugins = null;
|
|
209
|
-
let androidConfig = null;
|
|
210
|
-
const nativePlugins = packageJson.nativePlugins || packageJson["uni-app"]?.nativePlugins;
|
|
211
|
-
if (nativePlugins &&
|
|
212
|
-
Array.isArray(nativePlugins) &&
|
|
213
|
-
nativePlugins.length > 0) {
|
|
214
|
-
for (const pluginGroup of nativePlugins) {
|
|
215
|
-
if (pluginGroup.plugins && Array.isArray(pluginGroup.plugins)) {
|
|
216
|
-
plugins = pluginGroup.plugins;
|
|
217
|
-
break;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
if (!plugins && packageJson._dp_nativeplugin) {
|
|
222
|
-
androidConfig = packageJson._dp_nativeplugin.android;
|
|
223
|
-
const androidPlugins = androidConfig?.plugins;
|
|
224
|
-
if (androidPlugins &&
|
|
225
|
-
Array.isArray(androidPlugins) &&
|
|
226
|
-
androidPlugins.length > 0) {
|
|
227
|
-
plugins = androidPlugins;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
if (!plugins || plugins.length === 0) {
|
|
231
|
-
return {
|
|
232
|
-
success: false,
|
|
233
|
-
error: "package.json 中未找到 nativePlugins 或 _dp_nativeplugin 配置",
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
for (const plugin of plugins) {
|
|
237
|
-
if (plugin.type === "module" && plugin.name && plugin.class) {
|
|
238
|
-
let parameters = undefined;
|
|
239
|
-
if (androidConfig?.parameters &&
|
|
240
|
-
typeof androidConfig.parameters === "object") {
|
|
241
|
-
parameters = {};
|
|
242
|
-
for (const [paramName, paramConfig] of Object.entries(androidConfig.parameters)) {
|
|
243
|
-
if (paramConfig &&
|
|
244
|
-
typeof paramConfig === "object" &&
|
|
245
|
-
"key" in paramConfig) {
|
|
246
|
-
parameters[paramName] = {
|
|
247
|
-
key: paramConfig.key,
|
|
248
|
-
des: paramConfig.des || "",
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
return {
|
|
254
|
-
success: true,
|
|
255
|
-
pluginItem: {
|
|
256
|
-
type: plugin.type,
|
|
257
|
-
name: plugin.name,
|
|
258
|
-
class: plugin.class,
|
|
259
|
-
},
|
|
260
|
-
parameters,
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
return {
|
|
265
|
-
success: false,
|
|
266
|
-
error: "package.json 中未找到有效的 module 类型插件配置",
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
catch (error) {
|
|
270
|
-
return {
|
|
271
|
-
success: false,
|
|
272
|
-
error: `提取插件配置失败: ${error instanceof Error ? error.message : String(error)}`,
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
function readOrCreateUniPluginsConfig(assetsDir, deps) {
|
|
277
|
-
const configPath = deps.join(assetsDir, "dcloud_uniplugins.json");
|
|
278
|
-
try {
|
|
279
|
-
if (!deps.existsSync(assetsDir)) {
|
|
280
|
-
deps.mkdirSync(assetsDir, { recursive: true });
|
|
281
|
-
}
|
|
282
|
-
let config = {
|
|
283
|
-
nativePlugins: [],
|
|
284
|
-
};
|
|
285
|
-
if (deps.existsSync(configPath)) {
|
|
286
|
-
const content = deps.readFileSync(configPath, "utf8");
|
|
287
|
-
try {
|
|
288
|
-
config = deps.parse(content);
|
|
289
|
-
if (!config.nativePlugins || !Array.isArray(config.nativePlugins)) {
|
|
290
|
-
config.nativePlugins = [];
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
catch (parseError) {
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
return {
|
|
297
|
-
success: true,
|
|
298
|
-
config,
|
|
299
|
-
};
|
|
300
|
-
}
|
|
301
|
-
catch (error) {
|
|
302
|
-
return {
|
|
303
|
-
success: false,
|
|
304
|
-
error: `读取或创建 dcloud_uniplugins.json 失败: ${error instanceof Error ? error.message : String(error)}`,
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
function updateUniPluginsConfig(assetsDir, pluginItem, deps) {
|
|
309
|
-
try {
|
|
310
|
-
const configPath = deps.join(assetsDir, "dcloud_uniplugins.json");
|
|
311
|
-
const readResult = readOrCreateUniPluginsConfig(assetsDir, deps);
|
|
312
|
-
if (!readResult.success) {
|
|
313
|
-
return readResult;
|
|
314
|
-
}
|
|
315
|
-
const config = readResult.config;
|
|
316
|
-
let found = false;
|
|
317
|
-
for (const nativePlugin of config.nativePlugins) {
|
|
318
|
-
if (nativePlugin.plugins && Array.isArray(nativePlugin.plugins)) {
|
|
319
|
-
const existingIndex = nativePlugin.plugins.findIndex((p) => p.name === pluginItem.name);
|
|
320
|
-
if (existingIndex !== -1) {
|
|
321
|
-
nativePlugin.plugins[existingIndex] = pluginItem;
|
|
322
|
-
found = true;
|
|
323
|
-
break;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
if (!found) {
|
|
328
|
-
let targetNativePlugin = config.nativePlugins.find((np) => np.plugins && Array.isArray(np.plugins));
|
|
329
|
-
if (!targetNativePlugin) {
|
|
330
|
-
targetNativePlugin = {
|
|
331
|
-
plugins: [],
|
|
332
|
-
};
|
|
333
|
-
config.nativePlugins.push(targetNativePlugin);
|
|
334
|
-
}
|
|
335
|
-
targetNativePlugin.plugins.push(pluginItem);
|
|
336
|
-
}
|
|
337
|
-
const configContent = JSON.stringify(config, null, 2);
|
|
338
|
-
deps.writeFileSync(configPath, configContent, "utf8");
|
|
339
|
-
return {
|
|
340
|
-
success: true,
|
|
341
|
-
message: found
|
|
342
|
-
? `已更新插件配置: ${pluginItem.name}`
|
|
343
|
-
: `已添加插件配置: ${pluginItem.name}`,
|
|
344
|
-
};
|
|
345
|
-
}
|
|
346
|
-
catch (error) {
|
|
347
|
-
return {
|
|
348
|
-
success: false,
|
|
349
|
-
error: `更新 dcloud_uniplugins.json 失败: ${error instanceof Error ? error.message : String(error)}`,
|
|
350
|
-
};
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
export async function integrateUniAppNativePlugin(projectPath, moduleDir, packageName, pluginPath, deps, parameters) {
|
|
354
|
-
const logs = [];
|
|
355
|
-
try {
|
|
356
|
-
logs.push(`开始集成 UniApp 原生插件: ${pluginPath}`);
|
|
357
|
-
logs.push("步骤 1: 解压插件");
|
|
358
|
-
const tempDir = deps.join(projectPath, ".temp");
|
|
359
|
-
if (deps.existsSync(tempDir)) {
|
|
360
|
-
logs.push("清理已存在的临时目录...");
|
|
361
|
-
await new Promise((resolve) => {
|
|
362
|
-
deps.exec(`rm -rf "${tempDir}"`, (error) => {
|
|
363
|
-
if (error) {
|
|
364
|
-
logs.push(`警告: 清理临时目录失败: ${error.message}`);
|
|
365
|
-
}
|
|
366
|
-
else {
|
|
367
|
-
logs.push("临时目录已清理");
|
|
368
|
-
}
|
|
369
|
-
resolve();
|
|
370
|
-
});
|
|
371
|
-
});
|
|
372
|
-
}
|
|
373
|
-
if (!deps.existsSync(tempDir)) {
|
|
374
|
-
deps.mkdirSync(tempDir, { recursive: true });
|
|
375
|
-
logs.push("已创建临时目录");
|
|
376
|
-
}
|
|
377
|
-
const extractResult = await extractPlugin(pluginPath, tempDir, {
|
|
378
|
-
existsSync: deps.existsSync,
|
|
379
|
-
readdirSync: deps.readdirSync,
|
|
380
|
-
statSync: deps.statSync,
|
|
381
|
-
join: deps.join,
|
|
382
|
-
exec: deps.exec,
|
|
383
|
-
basename: deps.basename,
|
|
384
|
-
dirname: deps.dirname,
|
|
385
|
-
mkdirSync: deps.mkdirSync,
|
|
386
|
-
});
|
|
387
|
-
if (!extractResult.success) {
|
|
388
|
-
return {
|
|
389
|
-
success: false,
|
|
390
|
-
error: extractResult.error,
|
|
391
|
-
logs,
|
|
392
|
-
};
|
|
393
|
-
}
|
|
394
|
-
const pluginDir = extractResult.extractedPath;
|
|
395
|
-
logs.push(`插件已解压到: ${pluginDir}`);
|
|
396
|
-
logs.push("步骤 2: 读取插件配置");
|
|
397
|
-
const packageJsonResult = readPluginPackageJson(pluginDir, {
|
|
398
|
-
existsSync: deps.existsSync,
|
|
399
|
-
readFileSync: deps.readFileSync,
|
|
400
|
-
join: deps.join,
|
|
401
|
-
parse: deps.parse,
|
|
402
|
-
});
|
|
403
|
-
if (!packageJsonResult.success) {
|
|
404
|
-
return {
|
|
405
|
-
success: false,
|
|
406
|
-
error: packageJsonResult.error,
|
|
407
|
-
logs,
|
|
408
|
-
};
|
|
409
|
-
}
|
|
410
|
-
const packageJson = packageJsonResult.packageJson;
|
|
411
|
-
const pluginName = packageJson.name || "UniApp Native Plugin";
|
|
412
|
-
logs.push(`插件名称: ${pluginName}`);
|
|
413
|
-
logs.push("步骤 3: 提取插件配置");
|
|
414
|
-
const pluginConfigResult = extractPluginConfig(packageJson);
|
|
415
|
-
let pluginItem = null;
|
|
416
|
-
let pluginParameters = undefined;
|
|
417
|
-
if (!pluginConfigResult.success) {
|
|
418
|
-
logs.push(`警告: ${pluginConfigResult.error}`);
|
|
419
|
-
logs.push("将继续处理库文件,但 dcloud_uniplugins.json 可能无法正确配置");
|
|
420
|
-
}
|
|
421
|
-
else {
|
|
422
|
-
pluginItem = pluginConfigResult.pluginItem;
|
|
423
|
-
pluginParameters = pluginConfigResult.parameters;
|
|
424
|
-
logs.push(`插件配置: ${pluginItem.name} (${pluginItem.class})`);
|
|
425
|
-
if (pluginParameters) {
|
|
426
|
-
logs.push(`插件参数: ${Object.keys(pluginParameters).join(", ")}`);
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
logs.push("步骤 4: 查找 Android 库文件");
|
|
430
|
-
const androidLibFiles = findAndroidLibFiles(pluginDir, {
|
|
431
|
-
existsSync: deps.existsSync,
|
|
432
|
-
readdirSync: deps.readdirSync,
|
|
433
|
-
statSync: deps.statSync,
|
|
434
|
-
join: deps.join,
|
|
435
|
-
});
|
|
436
|
-
if (androidLibFiles.length === 0) {
|
|
437
|
-
logs.push("警告: 未找到 android 目录下的 aar/jar 文件");
|
|
438
|
-
}
|
|
439
|
-
else {
|
|
440
|
-
logs.push(`找到 ${androidLibFiles.length} 个库文件: ${androidLibFiles
|
|
441
|
-
.map((f) => deps.basename(f))
|
|
442
|
-
.join(", ")}`);
|
|
443
|
-
}
|
|
444
|
-
if (androidLibFiles.length > 0) {
|
|
445
|
-
logs.push("步骤 5: 拷贝库文件到 libs 目录");
|
|
446
|
-
const libFiles = androidLibFiles.map((filePath) => ({
|
|
447
|
-
source: filePath,
|
|
448
|
-
targetName: deps.basename(filePath),
|
|
449
|
-
}));
|
|
450
|
-
const manifestModifications = [];
|
|
451
|
-
if (pluginParameters && parameters) {
|
|
452
|
-
logs.push("步骤 5.1: 配置插件参数到 AndroidManifest.xml");
|
|
453
|
-
for (const [paramName, paramDef] of Object.entries(pluginParameters)) {
|
|
454
|
-
const paramValue = parameters[paramName];
|
|
455
|
-
if (paramValue !== undefined &&
|
|
456
|
-
paramValue !== null &&
|
|
457
|
-
paramValue !== "") {
|
|
458
|
-
manifestModifications.push({
|
|
459
|
-
xpath: `//meta-data[@android:name='${paramDef.key}']`,
|
|
460
|
-
action: "removeElement",
|
|
461
|
-
});
|
|
462
|
-
manifestModifications.push({
|
|
463
|
-
xpath: "//application",
|
|
464
|
-
action: "addElement",
|
|
465
|
-
elementName: "meta-data",
|
|
466
|
-
attributes: {
|
|
467
|
-
"android:name": paramDef.key,
|
|
468
|
-
"android:value": paramValue,
|
|
469
|
-
},
|
|
470
|
-
});
|
|
471
|
-
logs.push(`已配置参数: ${paramName} (${paramDef.key}) = ${paramValue}`);
|
|
472
|
-
}
|
|
473
|
-
else {
|
|
474
|
-
logs.push(`跳过参数: ${paramName} (未提供值)`);
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
let pluginDependencies = undefined;
|
|
479
|
-
const androidConfig = packageJson._dp_nativeplugin?.android;
|
|
480
|
-
if (androidConfig?.dependencies) {
|
|
481
|
-
if (Array.isArray(androidConfig.dependencies)) {
|
|
482
|
-
pluginDependencies = androidConfig.dependencies.filter((dep) => typeof dep === "string");
|
|
483
|
-
if (pluginDependencies && pluginDependencies.length > 0) {
|
|
484
|
-
logs.push(`找到插件依赖: ${pluginDependencies.join(", ")}`);
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
else {
|
|
488
|
-
logs.push(`警告: android.dependencies 不是数组类型`);
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
else {
|
|
492
|
-
logs.push(`调试: androidConfig.dependencies 不存在,androidConfig=${JSON.stringify(androidConfig)}`);
|
|
493
|
-
}
|
|
494
|
-
const moduleConfig = {
|
|
495
|
-
name: pluginName,
|
|
496
|
-
libFiles: libFiles,
|
|
497
|
-
gradleDependencies: pluginDependencies,
|
|
498
|
-
manifestModifications: manifestModifications.length > 0 ? manifestModifications : undefined,
|
|
499
|
-
};
|
|
500
|
-
const thirdPartyResult = await integrateThirdPartyModule(projectPath, moduleDir, packageName, moduleConfig, deps);
|
|
501
|
-
logs.push(...thirdPartyResult.logs);
|
|
502
|
-
if (!thirdPartyResult.success) {
|
|
503
|
-
return {
|
|
504
|
-
success: false,
|
|
505
|
-
error: thirdPartyResult.error,
|
|
506
|
-
logs,
|
|
507
|
-
};
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
else {
|
|
511
|
-
logs.push("步骤 5: 跳过(未找到库文件)");
|
|
512
|
-
}
|
|
513
|
-
logs.push("步骤 6: 拷贝 android 目录下的其他文件");
|
|
514
|
-
const androidDir = deps.join(pluginDir, "android");
|
|
515
|
-
if (deps.existsSync(androidDir)) {
|
|
516
|
-
const copiedFiles = copyAndroidFilesRecursive(androidDir, projectPath, moduleDir, packageName, androidLibFiles, deps);
|
|
517
|
-
logs.push(...copiedFiles.logs);
|
|
518
|
-
if (copiedFiles.count > 0) {
|
|
519
|
-
logs.push(`已拷贝 ${copiedFiles.count} 个其他文件`);
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
|
-
else {
|
|
523
|
-
logs.push("android 目录不存在,跳过其他文件拷贝");
|
|
524
|
-
}
|
|
525
|
-
logs.push("步骤 7: 更新 dcloud_uniplugins.json 配置");
|
|
526
|
-
const assetsDir = deps.join(projectPath, moduleDir, "src", "main", "assets");
|
|
527
|
-
let plugins = null;
|
|
528
|
-
const androidConfig = packageJson._dp_nativeplugin?.android;
|
|
529
|
-
if (androidConfig?.plugins && Array.isArray(androidConfig.plugins)) {
|
|
530
|
-
plugins = androidConfig.plugins;
|
|
531
|
-
}
|
|
532
|
-
if (plugins && plugins.length > 0) {
|
|
533
|
-
for (const plugin of plugins) {
|
|
534
|
-
if (plugin.type === "module" && plugin.name && plugin.class) {
|
|
535
|
-
const pluginItem = {
|
|
536
|
-
type: plugin.type,
|
|
537
|
-
name: plugin.name,
|
|
538
|
-
class: plugin.class,
|
|
539
|
-
};
|
|
540
|
-
const updateResult = updateUniPluginsConfig(assetsDir, pluginItem, {
|
|
541
|
-
existsSync: deps.existsSync,
|
|
542
|
-
readFileSync: deps.readFileSync,
|
|
543
|
-
writeFileSync: deps.writeFileSync,
|
|
544
|
-
mkdirSync: deps.mkdirSync,
|
|
545
|
-
join: deps.join,
|
|
546
|
-
parse: deps.parse,
|
|
547
|
-
});
|
|
548
|
-
if (updateResult.success) {
|
|
549
|
-
logs.push(updateResult.message || `已添加插件配置: ${pluginItem.name}`);
|
|
550
|
-
}
|
|
551
|
-
else {
|
|
552
|
-
logs.push(`警告: 添加插件 ${pluginItem.name} 配置失败: ${updateResult.error}`);
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
logs.push(`dcloud_uniplugins.json 配置完成,共添加 ${plugins.filter((p) => p.type === "module" && p.name && p.class)
|
|
557
|
-
.length} 个插件`);
|
|
558
|
-
}
|
|
559
|
-
else if (pluginItem) {
|
|
560
|
-
const updateResult = updateUniPluginsConfig(assetsDir, pluginItem, {
|
|
561
|
-
existsSync: deps.existsSync,
|
|
562
|
-
readFileSync: deps.readFileSync,
|
|
563
|
-
writeFileSync: deps.writeFileSync,
|
|
564
|
-
mkdirSync: deps.mkdirSync,
|
|
565
|
-
join: deps.join,
|
|
566
|
-
parse: deps.parse,
|
|
567
|
-
});
|
|
568
|
-
if (updateResult.success) {
|
|
569
|
-
logs.push(updateResult.message || "dcloud_uniplugins.json 配置完成");
|
|
570
|
-
}
|
|
571
|
-
else {
|
|
572
|
-
logs.push(`警告: dcloud_uniplugins.json 配置失败: ${updateResult.error}`);
|
|
573
|
-
}
|
|
574
|
-
}
|
|
575
|
-
else {
|
|
576
|
-
logs.push("步骤 7: 跳过 dcloud_uniplugins.json 配置(插件配置提取失败)");
|
|
577
|
-
}
|
|
578
|
-
logs.push("步骤 8: 清理临时文件");
|
|
579
|
-
try {
|
|
580
|
-
if (deps.existsSync(tempDir)) {
|
|
581
|
-
await new Promise((resolve) => {
|
|
582
|
-
deps.exec(`rm -rf "${tempDir}"`, (error) => {
|
|
583
|
-
if (error) {
|
|
584
|
-
logs.push(`警告: 清理临时目录失败: ${tempDir} (${error.message})`);
|
|
585
|
-
}
|
|
586
|
-
else {
|
|
587
|
-
logs.push(`已清理临时目录: ${tempDir}`);
|
|
588
|
-
}
|
|
589
|
-
resolve();
|
|
590
|
-
});
|
|
591
|
-
});
|
|
592
|
-
}
|
|
593
|
-
else {
|
|
594
|
-
logs.push(`临时目录不存在,跳过清理: ${tempDir}`);
|
|
595
|
-
}
|
|
596
|
-
}
|
|
597
|
-
catch (cleanupError) {
|
|
598
|
-
logs.push(`警告: 清理临时文件时出错: ${cleanupError instanceof Error
|
|
599
|
-
? cleanupError.message
|
|
600
|
-
: String(cleanupError)}`);
|
|
601
|
-
}
|
|
602
|
-
logs.push(`UniApp 原生插件集成完成: ${pluginName}`);
|
|
603
|
-
return {
|
|
604
|
-
success: true,
|
|
605
|
-
message: `成功集成 UniApp 原生插件: ${pluginName}`,
|
|
606
|
-
logs,
|
|
607
|
-
};
|
|
608
|
-
}
|
|
609
|
-
catch (error) {
|
|
610
|
-
try {
|
|
611
|
-
const tempDir = deps.join(projectPath, ".temp");
|
|
612
|
-
if (deps.existsSync(tempDir)) {
|
|
613
|
-
await new Promise((resolve) => {
|
|
614
|
-
deps.exec(`rm -rf "${tempDir}"`, (error) => {
|
|
615
|
-
if (error) {
|
|
616
|
-
logs.push(`警告: 清理临时目录失败: ${error.message}`);
|
|
617
|
-
}
|
|
618
|
-
resolve();
|
|
619
|
-
});
|
|
620
|
-
});
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
catch { }
|
|
624
|
-
return {
|
|
625
|
-
success: false,
|
|
626
|
-
error: `集成 UniApp 原生插件失败: ${error instanceof Error ? error.message : String(error)}`,
|
|
627
|
-
logs,
|
|
628
|
-
};
|
|
629
|
-
}
|
|
630
|
-
}
|
|
631
|
-
//# sourceMappingURL=integrateUniAppNativePlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"integrateUniAppNativePlugin.js","sourceRoot":"","sources":["../../../../src/functions/platform/android/integrateUniAppNativePlugin.ts"],"names":[],"mappings":"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"}
|