zcw-shared 1.46.2 → 1.47.2

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 (480) hide show
  1. package/dist/functions/async/sleep.d.ts +5 -0
  2. package/dist/functions/async/sleep.js +6 -0
  3. package/dist/functions/async/sleep.js.map +1 -0
  4. package/dist/functions/async/timeout.d.ts +6 -0
  5. package/dist/functions/async/timeout.js +12 -0
  6. package/dist/functions/async/timeout.js.map +1 -0
  7. package/dist/functions/browser/computePosition.d.ts +6 -0
  8. package/dist/functions/browser/computePosition.js +49 -0
  9. package/dist/functions/browser/computePosition.js.map +1 -0
  10. package/dist/functions/browser/createSharedKeyboardCenter.d.ts +18 -0
  11. package/dist/functions/browser/createSharedKeyboardCenter.js +58 -0
  12. package/dist/functions/browser/createSharedKeyboardCenter.js.map +1 -0
  13. package/dist/functions/browser/createThrottledEventListener.d.ts +11 -0
  14. package/dist/functions/browser/createThrottledEventListener.js +51 -0
  15. package/dist/functions/browser/createThrottledEventListener.js.map +1 -0
  16. package/dist/functions/browser/demonstrateResourceLoading.d.ts +32 -0
  17. package/dist/functions/browser/demonstrateResourceLoading.js +169 -0
  18. package/dist/functions/browser/demonstrateResourceLoading.js.map +1 -0
  19. package/dist/functions/browser/detectOverflow.d.ts +12 -0
  20. package/dist/functions/browser/detectOverflow.js +17 -0
  21. package/dist/functions/browser/detectOverflow.js.map +1 -0
  22. package/dist/functions/browser/getAlignment.d.ts +2 -0
  23. package/dist/functions/browser/getAlignment.js +5 -0
  24. package/dist/functions/browser/getAlignment.js.map +1 -0
  25. package/dist/functions/browser/getBasePlacement.d.ts +2 -0
  26. package/dist/functions/browser/getBasePlacement.js +4 -0
  27. package/dist/functions/browser/getBasePlacement.js.map +1 -0
  28. package/dist/functions/browser/getCrossAxisFlip.d.ts +2 -0
  29. package/dist/functions/browser/getCrossAxisFlip.js +11 -0
  30. package/dist/functions/browser/getCrossAxisFlip.js.map +1 -0
  31. package/dist/functions/browser/getElementRect.d.ts +3 -0
  32. package/dist/functions/browser/getElementRect.js +14 -0
  33. package/dist/functions/browser/getElementRect.js.map +1 -0
  34. package/dist/functions/browser/getFlipPlacements.d.ts +2 -0
  35. package/dist/functions/browser/getFlipPlacements.js +13 -0
  36. package/dist/functions/browser/getFlipPlacements.js.map +1 -0
  37. package/dist/functions/browser/getMainAxisFlip.d.ts +2 -0
  38. package/dist/functions/browser/getMainAxisFlip.js +17 -0
  39. package/dist/functions/browser/getMainAxisFlip.js.map +1 -0
  40. package/dist/functions/browser/getRelativePosition.d.ts +3 -0
  41. package/dist/functions/browser/getRelativePosition.js +14 -0
  42. package/dist/functions/browser/getRelativePosition.js.map +1 -0
  43. package/dist/functions/browser/getViewportRect.d.ts +7 -0
  44. package/dist/functions/browser/getViewportRect.js +15 -0
  45. package/dist/functions/browser/getViewportRect.js.map +1 -0
  46. package/dist/functions/browser/isValidPlacement.d.ts +2 -0
  47. package/dist/functions/browser/isValidPlacement.js +16 -0
  48. package/dist/functions/browser/isValidPlacement.js.map +1 -0
  49. package/dist/functions/browser/pickFile.d.ts +15 -0
  50. package/dist/functions/browser/pickFile.js +48 -0
  51. package/dist/functions/browser/pickFile.js.map +1 -0
  52. package/dist/functions/build/generateExports.d.ts +26 -0
  53. package/dist/functions/build/generateExports.js +34 -0
  54. package/dist/functions/build/generateExports.js.map +1 -0
  55. package/dist/functions/core/diff/diff.d.ts +25 -0
  56. package/dist/functions/core/diff/diff.js +316 -0
  57. package/dist/functions/core/diff/diff.js.map +1 -0
  58. package/dist/functions/core/diff/vueDiff.d.ts +38 -0
  59. package/dist/functions/core/diff/vueDiff.js +333 -0
  60. package/dist/functions/core/diff/vueDiff.js.map +1 -0
  61. package/dist/functions/core/generator/generatorUtils.d.ts +16 -0
  62. package/dist/functions/core/generator/generatorUtils.js +139 -0
  63. package/dist/functions/core/generator/generatorUtils.js.map +1 -0
  64. package/dist/functions/core/type/isType.d.ts +11 -0
  65. package/dist/functions/core/type/isType.js +30 -0
  66. package/dist/functions/core/type/isType.js.map +1 -0
  67. package/dist/functions/data/array-object/chunk.d.ts +1 -0
  68. package/dist/functions/data/array-object/chunk.js +11 -0
  69. package/dist/functions/data/array-object/chunk.js.map +1 -0
  70. package/dist/functions/data/array-object/deepClone.d.ts +12 -0
  71. package/dist/functions/data/array-object/deepClone.js +131 -0
  72. package/dist/functions/data/array-object/deepClone.js.map +1 -0
  73. package/dist/functions/data/array-object/evolve.d.ts +3 -0
  74. package/dist/functions/data/array-object/evolve.js +15 -0
  75. package/dist/functions/data/array-object/evolve.js.map +1 -0
  76. package/dist/functions/data/array-object/flatten.d.ts +7 -0
  77. package/dist/functions/data/array-object/flatten.js +60 -0
  78. package/dist/functions/data/array-object/flatten.js.map +1 -0
  79. package/dist/functions/data/array-object/flattenObject.d.ts +5 -0
  80. package/dist/functions/data/array-object/flattenObject.js +102 -0
  81. package/dist/functions/data/array-object/flattenObject.js.map +1 -0
  82. package/dist/functions/data/array-object/groupBy.d.ts +1 -0
  83. package/dist/functions/data/array-object/groupBy.js +14 -0
  84. package/dist/functions/data/array-object/groupBy.js.map +1 -0
  85. package/dist/functions/data/array-object/omit.d.ts +1 -0
  86. package/dist/functions/data/array-object/omit.js +8 -0
  87. package/dist/functions/data/array-object/omit.js.map +1 -0
  88. package/dist/functions/data/array-object/pick.d.ts +1 -0
  89. package/dist/functions/data/array-object/pick.js +10 -0
  90. package/dist/functions/data/array-object/pick.js.map +1 -0
  91. package/dist/functions/data/array-object/shuffle.d.ts +1 -0
  92. package/dist/functions/data/array-object/shuffle.js +9 -0
  93. package/dist/functions/data/array-object/shuffle.js.map +1 -0
  94. package/dist/functions/data/array-object/sortBy.d.ts +1 -0
  95. package/dist/functions/data/array-object/sortBy.js +13 -0
  96. package/dist/functions/data/array-object/sortBy.js.map +1 -0
  97. package/dist/functions/data/array-object/unique.d.ts +10 -0
  98. package/dist/functions/data/array-object/unique.js +85 -0
  99. package/dist/functions/data/array-object/unique.js.map +1 -0
  100. package/dist/functions/data/date/dateRange.d.ts +1 -0
  101. package/dist/functions/data/date/dateRange.js +18 -0
  102. package/dist/functions/data/date/dateRange.js.map +1 -0
  103. package/dist/functions/data/date/formatDate.d.ts +1 -0
  104. package/dist/functions/data/date/formatDate.js +21 -0
  105. package/dist/functions/data/date/formatDate.js.map +1 -0
  106. package/dist/functions/data/date/timeAgo.d.ts +1 -0
  107. package/dist/functions/data/date/timeAgo.js +49 -0
  108. package/dist/functions/data/date/timeAgo.js.map +1 -0
  109. package/dist/functions/data/number/average.d.ts +1 -0
  110. package/dist/functions/data/number/average.js +8 -0
  111. package/dist/functions/data/number/average.js.map +1 -0
  112. package/dist/functions/data/number/clamp.d.ts +1 -0
  113. package/dist/functions/data/number/clamp.js +7 -0
  114. package/dist/functions/data/number/clamp.js.map +1 -0
  115. package/dist/functions/data/number/formatNumber.d.ts +8 -0
  116. package/dist/functions/data/number/formatNumber.js +16 -0
  117. package/dist/functions/data/number/formatNumber.js.map +1 -0
  118. package/dist/functions/data/number/median.d.ts +1 -0
  119. package/dist/functions/data/number/median.js +14 -0
  120. package/dist/functions/data/number/median.js.map +1 -0
  121. package/dist/functions/data/number/percentile.d.ts +1 -0
  122. package/dist/functions/data/number/percentile.js +18 -0
  123. package/dist/functions/data/number/percentile.js.map +1 -0
  124. package/dist/functions/data/number/random.d.ts +4 -0
  125. package/dist/functions/data/number/random.js +9 -0
  126. package/dist/functions/data/number/random.js.map +1 -0
  127. package/dist/functions/data/number/range.d.ts +1 -0
  128. package/dist/functions/data/number/range.js +18 -0
  129. package/dist/functions/data/number/range.js.map +1 -0
  130. package/dist/functions/data/number/sum.d.ts +1 -0
  131. package/dist/functions/data/number/sum.js +4 -0
  132. package/dist/functions/data/number/sum.js.map +1 -0
  133. package/dist/functions/data/randomRegion.d.ts +24 -0
  134. package/dist/functions/data/randomRegion.js +74 -0
  135. package/dist/functions/data/randomRegion.js.map +1 -0
  136. package/dist/functions/data/string/base64.d.ts +5 -0
  137. package/dist/functions/data/string/base64.js +6 -0
  138. package/dist/functions/data/string/base64.js.map +1 -0
  139. package/dist/functions/data/string/capitalize.d.ts +1 -0
  140. package/dist/functions/data/string/capitalize.js +6 -0
  141. package/dist/functions/data/string/capitalize.js.map +1 -0
  142. package/dist/functions/data/string/caseConverter.d.ts +19 -0
  143. package/dist/functions/data/string/caseConverter.js +94 -0
  144. package/dist/functions/data/string/caseConverter.js.map +1 -0
  145. package/dist/functions/data/string/desensitize.d.ts +13 -0
  146. package/dist/functions/data/string/desensitize.js +107 -0
  147. package/dist/functions/data/string/desensitize.js.map +1 -0
  148. package/dist/functions/data/string/htmlEscape.d.ts +20 -0
  149. package/dist/functions/data/string/htmlEscape.js +80 -0
  150. package/dist/functions/data/string/htmlEscape.js.map +1 -0
  151. package/dist/functions/data/string/levenshtein.d.ts +1 -0
  152. package/dist/functions/data/string/levenshtein.js +27 -0
  153. package/dist/functions/data/string/levenshtein.js.map +1 -0
  154. package/dist/functions/data/string/normalize.d.ts +8 -0
  155. package/dist/functions/data/string/normalize.js +37 -0
  156. package/dist/functions/data/string/normalize.js.map +1 -0
  157. package/dist/functions/data/string/pad.d.ts +13 -0
  158. package/dist/functions/data/string/pad.js +50 -0
  159. package/dist/functions/data/string/pad.js.map +1 -0
  160. package/dist/functions/data/string/palindrome.d.ts +3 -0
  161. package/dist/functions/data/string/palindrome.js +15 -0
  162. package/dist/functions/data/string/palindrome.js.map +1 -0
  163. package/dist/functions/data/string/similarity.d.ts +1 -0
  164. package/dist/functions/data/string/similarity.js +13 -0
  165. package/dist/functions/data/string/similarity.js.map +1 -0
  166. package/dist/functions/data/string/template.d.ts +4 -0
  167. package/dist/functions/data/string/template.js +21 -0
  168. package/dist/functions/data/string/template.js.map +1 -0
  169. package/dist/functions/data/string/testRegex.d.ts +20 -0
  170. package/dist/functions/data/string/testRegex.js +300 -0
  171. package/dist/functions/data/string/testRegex.js.map +1 -0
  172. package/dist/functions/data/string/wordCount.d.ts +5 -0
  173. package/dist/functions/data/string/wordCount.js +11 -0
  174. package/dist/functions/data/string/wordCount.js.map +1 -0
  175. package/dist/functions/data/tree/buildTree.d.ts +7 -0
  176. package/dist/functions/data/tree/buildTree.js +27 -0
  177. package/dist/functions/data/tree/buildTree.js.map +1 -0
  178. package/dist/functions/data/tree/filterTree.d.ts +4 -0
  179. package/dist/functions/data/tree/filterTree.js +21 -0
  180. package/dist/functions/data/tree/filterTree.js.map +1 -0
  181. package/dist/functions/data/tree/findNode.d.ts +4 -0
  182. package/dist/functions/data/tree/findNode.js +21 -0
  183. package/dist/functions/data/tree/findNode.js.map +1 -0
  184. package/dist/functions/data/tree/flattenTree.d.ts +6 -0
  185. package/dist/functions/data/tree/flattenTree.js +21 -0
  186. package/dist/functions/data/tree/flattenTree.js.map +1 -0
  187. package/dist/functions/file/walk.d.ts +18 -0
  188. package/dist/functions/file/walk.js +58 -0
  189. package/dist/functions/file/walk.js.map +1 -0
  190. package/dist/functions/integrations/ag-grid/generateLicense.d.ts +7 -0
  191. package/dist/functions/integrations/ag-grid/generateLicense.js +12 -0
  192. package/dist/functions/integrations/ag-grid/generateLicense.js.map +1 -0
  193. package/dist/functions/integrations/uniapp/app-plus/buildAndroidApp.d.ts +30 -0
  194. package/dist/functions/integrations/uniapp/app-plus/buildAndroidApp.js +884 -0
  195. package/dist/functions/integrations/uniapp/app-plus/buildAndroidApp.js.map +1 -0
  196. package/dist/functions/integrations/uniapp/app-plus/buildIOSApp.d.ts +31 -0
  197. package/dist/functions/integrations/uniapp/app-plus/buildIOSApp.js +900 -0
  198. package/dist/functions/integrations/uniapp/app-plus/buildIOSApp.js.map +1 -0
  199. package/dist/functions/integrations/uniapp/build.d.ts +21 -0
  200. package/dist/functions/integrations/uniapp/build.js +83 -0
  201. package/dist/functions/integrations/uniapp/build.js.map +1 -0
  202. package/dist/functions/integrations/uniapp/detectAndroidProjectStructure.d.ts +11 -0
  203. package/dist/functions/integrations/uniapp/detectAndroidProjectStructure.js +30 -0
  204. package/dist/functions/integrations/uniapp/detectAndroidProjectStructure.js.map +1 -0
  205. package/dist/functions/integrations/uniapp/detectProjectType.d.ts +20 -0
  206. package/dist/functions/integrations/uniapp/detectProjectType.js +68 -0
  207. package/dist/functions/integrations/uniapp/detectProjectType.js.map +1 -0
  208. package/dist/functions/integrations/uniapp/parseManifest.d.ts +20 -0
  209. package/dist/functions/integrations/uniapp/parseManifest.js +51 -0
  210. package/dist/functions/integrations/uniapp/parseManifest.js.map +1 -0
  211. package/dist/functions/integrations/uniapp/waitForPages.d.ts +7 -0
  212. package/dist/functions/integrations/uniapp/waitForPages.js +20 -0
  213. package/dist/functions/integrations/uniapp/waitForPages.js.map +1 -0
  214. package/dist/functions/integrations/vue/dynamicMount.d.ts +18 -0
  215. package/dist/functions/integrations/vue/dynamicMount.js +25 -0
  216. package/dist/functions/integrations/vue/dynamicMount.js.map +1 -0
  217. package/dist/functions/integrations/vue/extractColorsFromVueFile.d.ts +3 -0
  218. package/dist/functions/integrations/vue/extractColorsFromVueFile.js +18 -0
  219. package/dist/functions/integrations/vue/extractColorsFromVueFile.js.map +1 -0
  220. package/dist/functions/integrations/vue/extractColorsFromVueSection.d.ts +3 -0
  221. package/dist/functions/integrations/vue/extractColorsFromVueSection.js +53 -0
  222. package/dist/functions/integrations/vue/extractColorsFromVueSection.js.map +1 -0
  223. package/dist/functions/integrations/vue/filterSections.d.ts +2 -0
  224. package/dist/functions/integrations/vue/filterSections.js +11 -0
  225. package/dist/functions/integrations/vue/filterSections.js.map +1 -0
  226. package/dist/functions/integrations/vue/isVNode.d.ts +2 -0
  227. package/dist/functions/integrations/vue/isVNode.js +6 -0
  228. package/dist/functions/integrations/vue/isVNode.js.map +1 -0
  229. package/dist/functions/integrations/vue/isVueComponent.d.ts +2 -0
  230. package/dist/functions/integrations/vue/isVueComponent.js +6 -0
  231. package/dist/functions/integrations/vue/isVueComponent.js.map +1 -0
  232. package/dist/functions/integrations/vue/parseVueFile.d.ts +2 -0
  233. package/dist/functions/integrations/vue/parseVueFile.js +53 -0
  234. package/dist/functions/integrations/vue/parseVueFile.js.map +1 -0
  235. package/dist/functions/integrations/wechat/miniapp/downloadFile.d.ts +6 -0
  236. package/dist/functions/integrations/wechat/miniapp/downloadFile.js +39 -0
  237. package/dist/functions/integrations/wechat/miniapp/downloadFile.js.map +1 -0
  238. package/dist/functions/ios/integrateCameraGallery.d.ts +16 -0
  239. package/dist/functions/ios/integrateCameraGallery.js +95 -0
  240. package/dist/functions/ios/integrateCameraGallery.js.map +1 -0
  241. package/dist/functions/ios/integrateThirdPartyModule.d.ts +5 -0
  242. package/dist/functions/ios/integrateThirdPartyModule.js +99 -0
  243. package/dist/functions/ios/integrateThirdPartyModule.js.map +1 -1
  244. package/dist/functions/patterns/MyPromise.d.ts +32 -0
  245. package/dist/functions/patterns/MyPromise.js +254 -0
  246. package/dist/functions/patterns/MyPromise.js.map +1 -0
  247. package/dist/functions/patterns/functionBind.d.ts +4 -0
  248. package/dist/functions/patterns/functionBind.js +33 -0
  249. package/dist/functions/patterns/functionBind.js.map +1 -0
  250. package/dist/functions/patterns/myInstanceof.d.ts +5 -0
  251. package/dist/functions/patterns/myInstanceof.js +56 -0
  252. package/dist/functions/patterns/myInstanceof.js.map +1 -0
  253. package/dist/functions/patterns/myNew.d.ts +3 -0
  254. package/dist/functions/patterns/myNew.js +19 -0
  255. package/dist/functions/patterns/myNew.js.map +1 -0
  256. package/dist/functions/platform/android/buildProject.d.ts +13 -0
  257. package/dist/functions/platform/android/buildProject.js +122 -0
  258. package/dist/functions/platform/android/buildProject.js.map +1 -0
  259. package/dist/functions/platform/android/configureAppIcon.d.ts +17 -0
  260. package/dist/functions/platform/android/configureAppIcon.js +106 -0
  261. package/dist/functions/platform/android/configureAppIcon.js.map +1 -0
  262. package/dist/functions/platform/android/configureLaunchScreen.d.ts +21 -0
  263. package/dist/functions/platform/android/configureLaunchScreen.js +328 -0
  264. package/dist/functions/platform/android/configureLaunchScreen.js.map +1 -0
  265. package/dist/functions/platform/android/detectAndroidModules.d.ts +8 -0
  266. package/dist/functions/platform/android/detectAndroidModules.js +21 -0
  267. package/dist/functions/platform/android/detectAndroidModules.js.map +1 -0
  268. package/dist/functions/platform/android/integrateFacebookLogin.d.ts +12 -0
  269. package/dist/functions/platform/android/integrateFacebookLogin.js +91 -0
  270. package/dist/functions/platform/android/integrateFacebookLogin.js.map +1 -0
  271. package/dist/functions/platform/android/integrateGoogleLogin.d.ts +10 -0
  272. package/dist/functions/platform/android/integrateGoogleLogin.js +199 -0
  273. package/dist/functions/platform/android/integrateGoogleLogin.js.map +1 -0
  274. package/dist/functions/platform/android/integrateMiuiLogin.d.ts +13 -0
  275. package/dist/functions/platform/android/integrateMiuiLogin.js +115 -0
  276. package/dist/functions/platform/android/integrateMiuiLogin.js.map +1 -0
  277. package/dist/functions/platform/android/integrateQQLogin.d.ts +12 -0
  278. package/dist/functions/platform/android/integrateQQLogin.js +130 -0
  279. package/dist/functions/platform/android/integrateQQLogin.js.map +1 -0
  280. package/dist/functions/platform/android/integrateShareTrace.d.ts +10 -0
  281. package/dist/functions/platform/android/integrateShareTrace.js +181 -0
  282. package/dist/functions/platform/android/integrateShareTrace.js.map +1 -0
  283. package/dist/functions/platform/android/integrateSinaLogin.d.ts +13 -0
  284. package/dist/functions/platform/android/integrateSinaLogin.js +85 -0
  285. package/dist/functions/platform/android/integrateSinaLogin.js.map +1 -0
  286. package/dist/functions/platform/android/integrateThirdPartyModule.d.ts +46 -0
  287. package/dist/functions/platform/android/integrateThirdPartyModule.js +251 -0
  288. package/dist/functions/platform/android/integrateThirdPartyModule.js.map +1 -0
  289. package/dist/functions/platform/android/integrateUniAppNativePlugin.d.ts +22 -0
  290. package/dist/functions/platform/android/integrateUniAppNativePlugin.js +631 -0
  291. package/dist/functions/platform/android/integrateUniAppNativePlugin.js.map +1 -0
  292. package/dist/functions/platform/android/integrateUniverifyLogin.d.ts +11 -0
  293. package/dist/functions/platform/android/integrateUniverifyLogin.js +314 -0
  294. package/dist/functions/platform/android/integrateUniverifyLogin.js.map +1 -0
  295. package/dist/functions/platform/android/integrateWechatLogin.d.ts +13 -0
  296. package/dist/functions/platform/android/integrateWechatLogin.js +154 -0
  297. package/dist/functions/platform/android/integrateWechatLogin.js.map +1 -0
  298. package/dist/functions/platform/android/integrateWechatShare.d.ts +13 -0
  299. package/dist/functions/platform/android/integrateWechatShare.js +154 -0
  300. package/dist/functions/platform/android/integrateWechatShare.js.map +1 -0
  301. package/dist/functions/platform/android/modifyGradle.d.ts +28 -0
  302. package/dist/functions/platform/android/modifyGradle.js +119 -0
  303. package/dist/functions/platform/android/modifyGradle.js.map +1 -0
  304. package/dist/functions/platform/android/modifyManifest.d.ts +39 -0
  305. package/dist/functions/platform/android/modifyManifest.js +225 -0
  306. package/dist/functions/platform/android/modifyManifest.js.map +1 -0
  307. package/dist/functions/platform/android/permission.d.ts +54 -0
  308. package/dist/functions/platform/android/permission.js +85 -0
  309. package/dist/functions/platform/android/permission.js.map +1 -0
  310. package/dist/functions/platform/ios/configureAppIcon.d.ts +17 -0
  311. package/dist/functions/platform/ios/configureAppIcon.js +149 -0
  312. package/dist/functions/platform/ios/configureAppIcon.js.map +1 -0
  313. package/dist/functions/platform/ios/configureLaunchScreen.d.ts +17 -0
  314. package/dist/functions/platform/ios/configureLaunchScreen.js +150 -0
  315. package/dist/functions/platform/ios/configureLaunchScreen.js.map +1 -0
  316. package/dist/functions/platform/ios/configurePermissions.d.ts +19 -0
  317. package/dist/functions/platform/ios/configurePermissions.js +120 -0
  318. package/dist/functions/platform/ios/configurePermissions.js.map +1 -0
  319. package/dist/functions/platform/ios/integrateNativePlugin.d.ts +35 -0
  320. package/dist/functions/platform/ios/integrateNativePlugin.js +994 -0
  321. package/dist/functions/platform/ios/integrateNativePlugin.js.map +1 -0
  322. package/dist/functions/platform/ios/integrateQQShare.d.ts +14 -0
  323. package/dist/functions/platform/ios/integrateQQShare.js +132 -0
  324. package/dist/functions/platform/ios/integrateQQShare.js.map +1 -0
  325. package/dist/functions/platform/ios/integrateSinaShare.d.ts +16 -0
  326. package/dist/functions/platform/ios/integrateSinaShare.js +108 -0
  327. package/dist/functions/platform/ios/integrateSinaShare.js.map +1 -0
  328. package/dist/functions/platform/ios/integrateThirdPartyModule.d.ts +62 -0
  329. package/dist/functions/platform/ios/integrateThirdPartyModule.js +883 -0
  330. package/dist/functions/platform/ios/integrateThirdPartyModule.js.map +1 -0
  331. package/dist/functions/platform/ios/integrateWechatOauth.d.ts +14 -0
  332. package/dist/functions/platform/ios/integrateWechatOauth.js +107 -0
  333. package/dist/functions/platform/ios/integrateWechatOauth.js.map +1 -0
  334. package/dist/functions/platform/ios/integrateWechatShare.d.ts +14 -0
  335. package/dist/functions/platform/ios/integrateWechatShare.js +101 -0
  336. package/dist/functions/platform/ios/integrateWechatShare.js.map +1 -0
  337. package/dist/functions/platform/ios/modifyInfoPlistKeyValue.d.ts +2 -0
  338. package/dist/functions/platform/ios/modifyInfoPlistKeyValue.js +45 -0
  339. package/dist/functions/platform/ios/modifyInfoPlistKeyValue.js.map +1 -0
  340. package/dist/functions/platform/ios/safelyModifyProjectPbxproj.d.ts +16 -0
  341. package/dist/functions/platform/ios/safelyModifyProjectPbxproj.js +136 -0
  342. package/dist/functions/platform/ios/safelyModifyProjectPbxproj.js.map +1 -0
  343. package/dist/functions/platform/ios/useAltool.d.ts +39 -0
  344. package/dist/functions/platform/ios/useAltool.js +350 -0
  345. package/dist/functions/platform/ios/useAltool.js.map +1 -0
  346. package/dist/functions/style/buildTokens.d.ts +76 -0
  347. package/dist/functions/style/buildTokens.js +183 -0
  348. package/dist/functions/style/buildTokens.js.map +1 -0
  349. package/dist/functions/style/extractCssVariables.d.ts +16 -0
  350. package/dist/functions/style/extractCssVariables.js +256 -0
  351. package/dist/functions/style/extractCssVariables.js.map +1 -0
  352. package/dist/functions/style/generateVariables.d.ts +7 -0
  353. package/dist/functions/style/generateVariables.js +135 -0
  354. package/dist/functions/style/generateVariables.js.map +1 -0
  355. package/dist/functions/style/mixColors.d.ts +1 -0
  356. package/dist/functions/style/mixColors.js +38 -0
  357. package/dist/functions/style/mixColors.js.map +1 -0
  358. package/dist/functions/style/parseDesignTokens.d.ts +10 -0
  359. package/dist/functions/style/parseDesignTokens.js +216 -0
  360. package/dist/functions/style/parseDesignTokens.js.map +1 -0
  361. package/dist/functions/uniapp/app-plus/buildIOSApp.js +36 -0
  362. package/dist/functions/uniapp/app-plus/buildIOSApp.js.map +1 -1
  363. package/dist/functions/uniapp/camera/showCamera.d.ts +11 -0
  364. package/dist/functions/uniapp/camera/showCamera.js +22 -0
  365. package/dist/functions/uniapp/camera/showCamera.js.map +1 -0
  366. package/dist/functions/uniapp/customer-service/adapters/openCustomerServiceInMiniapp.d.ts +23 -0
  367. package/dist/functions/uniapp/customer-service/adapters/openCustomerServiceInMiniapp.js +69 -0
  368. package/dist/functions/uniapp/customer-service/adapters/openCustomerServiceInMiniapp.js.map +1 -0
  369. package/dist/functions/uniapp/customer-service/showWxCustomerService.d.ts +28 -0
  370. package/dist/functions/uniapp/customer-service/showWxCustomerService.js +25 -0
  371. package/dist/functions/uniapp/customer-service/showWxCustomerService.js.map +1 -0
  372. package/dist/functions/uniapp/file/adapters/readWriteFileInApp.d.ts +10 -0
  373. package/dist/functions/uniapp/file/adapters/readWriteFileInApp.js +97 -0
  374. package/dist/functions/uniapp/file/adapters/readWriteFileInApp.js.map +1 -0
  375. package/dist/functions/uniapp/file/adapters/readWriteFileInH5.d.ts +30 -0
  376. package/dist/functions/uniapp/file/adapters/readWriteFileInH5.js +83 -0
  377. package/dist/functions/uniapp/file/adapters/readWriteFileInH5.js.map +1 -0
  378. package/dist/functions/uniapp/file/adapters/readWriteFileInMiniapp.d.ts +10 -0
  379. package/dist/functions/uniapp/file/adapters/readWriteFileInMiniapp.js +97 -0
  380. package/dist/functions/uniapp/file/adapters/readWriteFileInMiniapp.js.map +1 -0
  381. package/dist/functions/uniapp/file/showFile.d.ts +35 -0
  382. package/dist/functions/uniapp/file/showFile.js +66 -0
  383. package/dist/functions/uniapp/file/showFile.js.map +1 -0
  384. package/dist/functions/uniapp/image/adapters/chooseImageInApp.d.ts +9 -0
  385. package/dist/functions/uniapp/image/adapters/chooseImageInApp.js +52 -0
  386. package/dist/functions/uniapp/image/adapters/chooseImageInApp.js.map +1 -0
  387. package/dist/functions/uniapp/image/adapters/chooseImageInH5.d.ts +9 -0
  388. package/dist/functions/uniapp/image/adapters/chooseImageInH5.js +52 -0
  389. package/dist/functions/uniapp/image/adapters/chooseImageInH5.js.map +1 -0
  390. package/dist/functions/uniapp/image/adapters/chooseImageInMiniapp.d.ts +9 -0
  391. package/dist/functions/uniapp/image/adapters/chooseImageInMiniapp.js +52 -0
  392. package/dist/functions/uniapp/image/adapters/chooseImageInMiniapp.js.map +1 -0
  393. package/dist/functions/uniapp/image/showImage.d.ts +11 -0
  394. package/dist/functions/uniapp/image/showImage.js +23 -0
  395. package/dist/functions/uniapp/image/showImage.js.map +1 -0
  396. package/dist/functions/uniapp/login/adapters/wechatLoginInApp.d.ts +10 -0
  397. package/dist/functions/uniapp/login/adapters/wechatLoginInApp.js +49 -0
  398. package/dist/functions/uniapp/login/adapters/wechatLoginInApp.js.map +1 -0
  399. package/dist/functions/uniapp/login/adapters/wechatLoginInMiniapp.d.ts +9 -0
  400. package/dist/functions/uniapp/login/adapters/wechatLoginInMiniapp.js +27 -0
  401. package/dist/functions/uniapp/login/adapters/wechatLoginInMiniapp.js.map +1 -0
  402. package/dist/functions/uniapp/login/showLogin.d.ts +13 -0
  403. package/dist/functions/uniapp/login/showLogin.js +43 -0
  404. package/dist/functions/uniapp/login/showLogin.js.map +1 -0
  405. package/dist/functions/uniapp/pay/adapters/wechatPayInApp.d.ts +8 -0
  406. package/dist/functions/uniapp/pay/adapters/wechatPayInApp.js +36 -0
  407. package/dist/functions/uniapp/pay/adapters/wechatPayInApp.js.map +1 -0
  408. package/dist/functions/uniapp/pay/adapters/wechatPayInH5.d.ts +13 -0
  409. package/dist/functions/uniapp/pay/adapters/wechatPayInH5.js +44 -0
  410. package/dist/functions/uniapp/pay/adapters/wechatPayInH5.js.map +1 -0
  411. package/dist/functions/uniapp/pay/adapters/wechatPayInMiniapp.d.ts +8 -0
  412. package/dist/functions/uniapp/pay/adapters/wechatPayInMiniapp.js +37 -0
  413. package/dist/functions/uniapp/pay/adapters/wechatPayInMiniapp.js.map +1 -0
  414. package/dist/functions/uniapp/pay/showPay.d.ts +18 -0
  415. package/dist/functions/uniapp/pay/showPay.js +60 -0
  416. package/dist/functions/uniapp/pay/showPay.js.map +1 -0
  417. package/dist/functions/uniapp/phone/adapters/getPhoneInMiniapp.d.ts +6 -0
  418. package/dist/functions/uniapp/phone/adapters/getPhoneInMiniapp.js +41 -0
  419. package/dist/functions/uniapp/phone/adapters/getPhoneInMiniapp.js.map +1 -0
  420. package/dist/functions/uniapp/phone/showWxPhone.d.ts +8 -0
  421. package/dist/functions/uniapp/phone/showWxPhone.js +25 -0
  422. package/dist/functions/uniapp/phone/showWxPhone.js.map +1 -0
  423. package/dist/functions/uniapp/record/adapters/recordInApp.d.ts +12 -0
  424. package/dist/functions/uniapp/record/adapters/recordInApp.js +64 -0
  425. package/dist/functions/uniapp/record/adapters/recordInApp.js.map +1 -0
  426. package/dist/functions/uniapp/record/adapters/recordInH5.d.ts +21 -0
  427. package/dist/functions/uniapp/record/adapters/recordInH5.js +82 -0
  428. package/dist/functions/uniapp/record/adapters/recordInH5.js.map +1 -0
  429. package/dist/functions/uniapp/record/adapters/recordInMiniapp.d.ts +12 -0
  430. package/dist/functions/uniapp/record/adapters/recordInMiniapp.js +64 -0
  431. package/dist/functions/uniapp/record/adapters/recordInMiniapp.js.map +1 -0
  432. package/dist/functions/uniapp/record/showRecord.d.ts +23 -0
  433. package/dist/functions/uniapp/record/showRecord.js +95 -0
  434. package/dist/functions/uniapp/record/showRecord.js.map +1 -0
  435. package/dist/functions/uniapp/scan-code/adapters/scanCodeInApp.d.ts +9 -0
  436. package/dist/functions/uniapp/scan-code/adapters/scanCodeInApp.js +30 -0
  437. package/dist/functions/uniapp/scan-code/adapters/scanCodeInApp.js.map +1 -0
  438. package/dist/functions/uniapp/scan-code/adapters/scanCodeInMiniapp.d.ts +9 -0
  439. package/dist/functions/uniapp/scan-code/adapters/scanCodeInMiniapp.js +30 -0
  440. package/dist/functions/uniapp/scan-code/adapters/scanCodeInMiniapp.js.map +1 -0
  441. package/dist/functions/uniapp/scan-code/showScanCode.d.ts +12 -0
  442. package/dist/functions/uniapp/scan-code/showScanCode.js +28 -0
  443. package/dist/functions/uniapp/scan-code/showScanCode.js.map +1 -0
  444. package/dist/functions/uniapp/subscribe-message/adapters/wechatSubscribeMessageInMiniapp.d.ts +9 -0
  445. package/dist/functions/uniapp/subscribe-message/adapters/wechatSubscribeMessageInMiniapp.js +41 -0
  446. package/dist/functions/uniapp/subscribe-message/adapters/wechatSubscribeMessageInMiniapp.js.map +1 -0
  447. package/dist/functions/uniapp/subscribe-message/showWxSubscribeMessage.d.ts +11 -0
  448. package/dist/functions/uniapp/subscribe-message/showWxSubscribeMessage.js +25 -0
  449. package/dist/functions/uniapp/subscribe-message/showWxSubscribeMessage.js.map +1 -0
  450. package/dist/functions/uniapp/user-info/wxGetUserInfo.d.ts +43 -0
  451. package/dist/functions/uniapp/user-info/wxGetUserInfo.js +55 -0
  452. package/dist/functions/uniapp/user-info/wxGetUserInfo.js.map +1 -0
  453. package/dist/functions/uniapp/video/adapters/chooseVideoInApp.d.ts +9 -0
  454. package/dist/functions/uniapp/video/adapters/chooseVideoInApp.js +31 -0
  455. package/dist/functions/uniapp/video/adapters/chooseVideoInApp.js.map +1 -0
  456. package/dist/functions/uniapp/video/adapters/chooseVideoInH5.d.ts +9 -0
  457. package/dist/functions/uniapp/video/adapters/chooseVideoInH5.js +30 -0
  458. package/dist/functions/uniapp/video/adapters/chooseVideoInH5.js.map +1 -0
  459. package/dist/functions/uniapp/video/adapters/chooseVideoInMiniapp.d.ts +9 -0
  460. package/dist/functions/uniapp/video/adapters/chooseVideoInMiniapp.js +31 -0
  461. package/dist/functions/uniapp/video/adapters/chooseVideoInMiniapp.js.map +1 -0
  462. package/dist/functions/uniapp/video/showVideo.d.ts +11 -0
  463. package/dist/functions/uniapp/video/showVideo.js +23 -0
  464. package/dist/functions/uniapp/video/showVideo.js.map +1 -0
  465. package/dist/functions/validation/parseJwtPayload.d.ts +7 -0
  466. package/dist/functions/validation/parseJwtPayload.js +33 -0
  467. package/dist/functions/validation/parseJwtPayload.js.map +1 -0
  468. package/dist/functions/validation/validate.d.ts +11 -0
  469. package/dist/functions/validation/validate.js +44 -0
  470. package/dist/functions/validation/validate.js.map +1 -0
  471. package/dist/vue-hooks/browser/useBridgeMessage.d.ts +2 -1
  472. package/dist/vue-hooks/browser/useBridgeMessage.js +13 -11
  473. package/dist/vue-hooks/browser/useBridgeMessage.js.map +1 -1
  474. package/package.json +37 -2
  475. package/references/blob.d.ts +2 -0
  476. package/references/device.d.ts +46 -0
  477. package/references/dom.d.ts +6 -0
  478. package/references/uniapp.d.ts +221 -8
  479. package/types/uniapp-ios-build.d.ts +22 -0
  480. package/types/uniapp.d.ts +298 -0
@@ -0,0 +1,631 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrateUniAppNativePlugin.js","sourceRoot":"","sources":["../../../../src/functions/platform/android/integrateUniAppNativePlugin.ts"],"names":[],"mappings":"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"}