react-native-kookit 0.1.1 → 0.1.4

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 (1196) hide show
  1. package/ANDROID_SETUP.md +188 -0
  2. package/EXPO_PLUGIN_README.md +136 -0
  3. package/README.md +219 -3
  4. package/README_NEW.md +143 -0
  5. package/RELEASE_CHECKLIST.md +115 -0
  6. package/TROUBLESHOOTING.md +132 -0
  7. package/android/src/main/java/expo/modules/kookit/ReactNativeKookitModule.kt +12 -1
  8. package/android/src/main/java/expo/modules/kookit/VolumeKeyReflectionHandler.kt +54 -0
  9. package/app.plugin.js +8 -0
  10. package/build/ReactNativeKookitModule.d.ts +16 -0
  11. package/build/ReactNativeKookitModule.d.ts.map +1 -1
  12. package/build/ReactNativeKookitModule.js.map +1 -1
  13. package/package-with-plugin.json +51 -0
  14. package/package.json +15 -4
  15. package/plugin/build/withVolumeKeyIntercept.d.ts +7 -0
  16. package/plugin/build/withVolumeKeyIntercept.d.ts.map +1 -0
  17. package/plugin/build/withVolumeKeyIntercept.js +143 -0
  18. package/plugin/build/withVolumeKeyIntercept.js.map +1 -0
  19. package/plugin/node_modules/.package-lock.json +752 -0
  20. package/plugin/node_modules/@babel/code-frame/LICENSE +22 -0
  21. package/plugin/node_modules/@babel/code-frame/README.md +19 -0
  22. package/plugin/node_modules/@babel/code-frame/lib/index.js +167 -0
  23. package/plugin/node_modules/@babel/code-frame/package.json +25 -0
  24. package/plugin/node_modules/@babel/helper-validator-identifier/LICENSE +22 -0
  25. package/plugin/node_modules/@babel/helper-validator-identifier/README.md +19 -0
  26. package/plugin/node_modules/@babel/helper-validator-identifier/lib/identifier.js +70 -0
  27. package/plugin/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +1 -0
  28. package/plugin/node_modules/@babel/helper-validator-identifier/lib/index.js +57 -0
  29. package/plugin/node_modules/@babel/helper-validator-identifier/lib/index.js.map +1 -0
  30. package/plugin/node_modules/@babel/helper-validator-identifier/lib/keyword.js +35 -0
  31. package/plugin/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +1 -0
  32. package/plugin/node_modules/@babel/helper-validator-identifier/package.json +31 -0
  33. package/plugin/node_modules/@babel/highlight/LICENSE +22 -0
  34. package/plugin/node_modules/@babel/highlight/README.md +19 -0
  35. package/plugin/node_modules/@babel/highlight/lib/index.js +119 -0
  36. package/plugin/node_modules/@babel/highlight/lib/index.js.map +1 -0
  37. package/plugin/node_modules/@babel/highlight/node_modules/ansi-styles/index.js +165 -0
  38. package/plugin/node_modules/@babel/highlight/node_modules/ansi-styles/license +9 -0
  39. package/plugin/node_modules/@babel/highlight/node_modules/ansi-styles/package.json +56 -0
  40. package/plugin/node_modules/@babel/highlight/node_modules/ansi-styles/readme.md +147 -0
  41. package/plugin/node_modules/@babel/highlight/node_modules/chalk/index.js +228 -0
  42. package/plugin/node_modules/@babel/highlight/node_modules/chalk/index.js.flow +93 -0
  43. package/plugin/node_modules/@babel/highlight/node_modules/chalk/license +9 -0
  44. package/plugin/node_modules/@babel/highlight/node_modules/chalk/package.json +71 -0
  45. package/plugin/node_modules/@babel/highlight/node_modules/chalk/readme.md +314 -0
  46. package/plugin/node_modules/@babel/highlight/node_modules/chalk/templates.js +128 -0
  47. package/plugin/node_modules/@babel/highlight/node_modules/chalk/types/index.d.ts +97 -0
  48. package/plugin/node_modules/@babel/highlight/node_modules/color-convert/CHANGELOG.md +54 -0
  49. package/plugin/node_modules/@babel/highlight/node_modules/color-convert/LICENSE +21 -0
  50. package/plugin/node_modules/@babel/highlight/node_modules/color-convert/README.md +68 -0
  51. package/plugin/node_modules/@babel/highlight/node_modules/color-convert/conversions.js +868 -0
  52. package/plugin/node_modules/@babel/highlight/node_modules/color-convert/index.js +78 -0
  53. package/plugin/node_modules/@babel/highlight/node_modules/color-convert/package.json +46 -0
  54. package/plugin/node_modules/@babel/highlight/node_modules/color-convert/route.js +97 -0
  55. package/plugin/node_modules/@babel/highlight/node_modules/color-name/.eslintrc.json +43 -0
  56. package/plugin/node_modules/@babel/highlight/node_modules/color-name/LICENSE +8 -0
  57. package/plugin/node_modules/@babel/highlight/node_modules/color-name/README.md +11 -0
  58. package/plugin/node_modules/@babel/highlight/node_modules/color-name/index.js +152 -0
  59. package/plugin/node_modules/@babel/highlight/node_modules/color-name/package.json +25 -0
  60. package/plugin/node_modules/@babel/highlight/node_modules/color-name/test.js +7 -0
  61. package/plugin/node_modules/@babel/highlight/node_modules/has-flag/index.js +8 -0
  62. package/plugin/node_modules/@babel/highlight/node_modules/has-flag/license +9 -0
  63. package/plugin/node_modules/@babel/highlight/node_modules/has-flag/package.json +44 -0
  64. package/plugin/node_modules/@babel/highlight/node_modules/has-flag/readme.md +70 -0
  65. package/plugin/node_modules/@babel/highlight/node_modules/supports-color/browser.js +5 -0
  66. package/plugin/node_modules/@babel/highlight/node_modules/supports-color/index.js +131 -0
  67. package/plugin/node_modules/@babel/highlight/node_modules/supports-color/license +9 -0
  68. package/plugin/node_modules/@babel/highlight/node_modules/supports-color/package.json +53 -0
  69. package/plugin/node_modules/@babel/highlight/node_modules/supports-color/readme.md +66 -0
  70. package/plugin/node_modules/@babel/highlight/package.json +30 -0
  71. package/plugin/node_modules/@expo/config-plugins/LICENSE +22 -0
  72. package/plugin/node_modules/@expo/config-plugins/README.md +34 -0
  73. package/plugin/node_modules/@expo/config-plugins/build/Plugin.types.d.ts +177 -0
  74. package/plugin/node_modules/@expo/config-plugins/build/Plugin.types.js +51 -0
  75. package/plugin/node_modules/@expo/config-plugins/build/Plugin.types.js.map +1 -0
  76. package/plugin/node_modules/@expo/config-plugins/build/android/AllowBackup.d.ts +6 -0
  77. package/plugin/node_modules/@expo/config-plugins/build/android/AllowBackup.js +45 -0
  78. package/plugin/node_modules/@expo/config-plugins/build/android/AllowBackup.js.map +1 -0
  79. package/plugin/node_modules/@expo/config-plugins/build/android/BuildProperties.d.ts +28 -0
  80. package/plugin/node_modules/@expo/config-plugins/build/android/BuildProperties.js +93 -0
  81. package/plugin/node_modules/@expo/config-plugins/build/android/BuildProperties.js.map +1 -0
  82. package/plugin/node_modules/@expo/config-plugins/build/android/Colors.d.ts +29 -0
  83. package/plugin/node_modules/@expo/config-plugins/build/android/Colors.js +106 -0
  84. package/plugin/node_modules/@expo/config-plugins/build/android/Colors.js.map +1 -0
  85. package/plugin/node_modules/@expo/config-plugins/build/android/EasBuild.d.ts +3 -0
  86. package/plugin/node_modules/@expo/config-plugins/build/android/EasBuild.js +67 -0
  87. package/plugin/node_modules/@expo/config-plugins/build/android/EasBuild.js.map +1 -0
  88. package/plugin/node_modules/@expo/config-plugins/build/android/EasBuildGradleScript.d.ts +2 -0
  89. package/plugin/node_modules/@expo/config-plugins/build/android/EasBuildGradleScript.js +82 -0
  90. package/plugin/node_modules/@expo/config-plugins/build/android/EasBuildGradleScript.js.map +1 -0
  91. package/plugin/node_modules/@expo/config-plugins/build/android/GoogleMapsApiKey.d.ts +5 -0
  92. package/plugin/node_modules/@expo/config-plugins/build/android/GoogleMapsApiKey.js +46 -0
  93. package/plugin/node_modules/@expo/config-plugins/build/android/GoogleMapsApiKey.js.map +1 -0
  94. package/plugin/node_modules/@expo/config-plugins/build/android/GoogleServices.d.ts +17 -0
  95. package/plugin/node_modules/@expo/config-plugins/build/android/GoogleServices.js +138 -0
  96. package/plugin/node_modules/@expo/config-plugins/build/android/GoogleServices.js.map +1 -0
  97. package/plugin/node_modules/@expo/config-plugins/build/android/IntentFilters.d.ts +8 -0
  98. package/plugin/node_modules/@expo/config-plugins/build/android/IntentFilters.js +83 -0
  99. package/plugin/node_modules/@expo/config-plugins/build/android/IntentFilters.js.map +1 -0
  100. package/plugin/node_modules/@expo/config-plugins/build/android/Manifest.d.ts +157 -0
  101. package/plugin/node_modules/@expo/config-plugins/build/android/Manifest.js +221 -0
  102. package/plugin/node_modules/@expo/config-plugins/build/android/Manifest.js.map +1 -0
  103. package/plugin/node_modules/@expo/config-plugins/build/android/Name.d.ts +20 -0
  104. package/plugin/node_modules/@expo/config-plugins/build/android/Name.js +91 -0
  105. package/plugin/node_modules/@expo/config-plugins/build/android/Name.js.map +1 -0
  106. package/plugin/node_modules/@expo/config-plugins/build/android/Orientation.d.ts +6 -0
  107. package/plugin/node_modules/@expo/config-plugins/build/android/Orientation.js +39 -0
  108. package/plugin/node_modules/@expo/config-plugins/build/android/Orientation.js.map +1 -0
  109. package/plugin/node_modules/@expo/config-plugins/build/android/Package.d.ts +23 -0
  110. package/plugin/node_modules/@expo/config-plugins/build/android/Package.js +323 -0
  111. package/plugin/node_modules/@expo/config-plugins/build/android/Package.js.map +1 -0
  112. package/plugin/node_modules/@expo/config-plugins/build/android/Paths.d.ts +30 -0
  113. package/plugin/node_modules/@expo/config-plugins/build/android/Paths.js +154 -0
  114. package/plugin/node_modules/@expo/config-plugins/build/android/Paths.js.map +1 -0
  115. package/plugin/node_modules/@expo/config-plugins/build/android/Permissions.d.ts +20 -0
  116. package/plugin/node_modules/@expo/config-plugins/build/android/Permissions.js +207 -0
  117. package/plugin/node_modules/@expo/config-plugins/build/android/Permissions.js.map +1 -0
  118. package/plugin/node_modules/@expo/config-plugins/build/android/PrimaryColor.d.ts +6 -0
  119. package/plugin/node_modules/@expo/config-plugins/build/android/PrimaryColor.js +62 -0
  120. package/plugin/node_modules/@expo/config-plugins/build/android/PrimaryColor.js.map +1 -0
  121. package/plugin/node_modules/@expo/config-plugins/build/android/Properties.d.ts +12 -0
  122. package/plugin/node_modules/@expo/config-plugins/build/android/Properties.js +55 -0
  123. package/plugin/node_modules/@expo/config-plugins/build/android/Properties.js.map +1 -0
  124. package/plugin/node_modules/@expo/config-plugins/build/android/Resources.d.ts +87 -0
  125. package/plugin/node_modules/@expo/config-plugins/build/android/Resources.js +150 -0
  126. package/plugin/node_modules/@expo/config-plugins/build/android/Resources.js.map +1 -0
  127. package/plugin/node_modules/@expo/config-plugins/build/android/Scheme.d.ts +20 -0
  128. package/plugin/node_modules/@expo/config-plugins/build/android/Scheme.js +217 -0
  129. package/plugin/node_modules/@expo/config-plugins/build/android/Scheme.js.map +1 -0
  130. package/plugin/node_modules/@expo/config-plugins/build/android/StatusBar.d.ts +16 -0
  131. package/plugin/node_modules/@expo/config-plugins/build/android/StatusBar.js +112 -0
  132. package/plugin/node_modules/@expo/config-plugins/build/android/StatusBar.js.map +1 -0
  133. package/plugin/node_modules/@expo/config-plugins/build/android/Strings.d.ts +6 -0
  134. package/plugin/node_modules/@expo/config-plugins/build/android/Strings.js +54 -0
  135. package/plugin/node_modules/@expo/config-plugins/build/android/Strings.js.map +1 -0
  136. package/plugin/node_modules/@expo/config-plugins/build/android/Styles.d.ts +61 -0
  137. package/plugin/node_modules/@expo/config-plugins/build/android/Styles.js +169 -0
  138. package/plugin/node_modules/@expo/config-plugins/build/android/Styles.js.map +1 -0
  139. package/plugin/node_modules/@expo/config-plugins/build/android/Updates.d.ts +21 -0
  140. package/plugin/node_modules/@expo/config-plugins/build/android/Updates.js +159 -0
  141. package/plugin/node_modules/@expo/config-plugins/build/android/Updates.js.map +1 -0
  142. package/plugin/node_modules/@expo/config-plugins/build/android/Version.d.ts +16 -0
  143. package/plugin/node_modules/@expo/config-plugins/build/android/Version.js +87 -0
  144. package/plugin/node_modules/@expo/config-plugins/build/android/Version.js.map +1 -0
  145. package/plugin/node_modules/@expo/config-plugins/build/android/WindowSoftInputMode.d.ts +6 -0
  146. package/plugin/node_modules/@expo/config-plugins/build/android/WindowSoftInputMode.js +48 -0
  147. package/plugin/node_modules/@expo/config-plugins/build/android/WindowSoftInputMode.js.map +1 -0
  148. package/plugin/node_modules/@expo/config-plugins/build/android/codeMod.d.ts +20 -0
  149. package/plugin/node_modules/@expo/config-plugins/build/android/codeMod.js +93 -0
  150. package/plugin/node_modules/@expo/config-plugins/build/android/codeMod.js.map +1 -0
  151. package/plugin/node_modules/@expo/config-plugins/build/android/index.d.ts +25 -0
  152. package/plugin/node_modules/@expo/config-plugins/build/android/index.js +308 -0
  153. package/plugin/node_modules/@expo/config-plugins/build/android/index.js.map +1 -0
  154. package/plugin/node_modules/@expo/config-plugins/build/index.d.ts +36 -0
  155. package/plugin/node_modules/@expo/config-plugins/build/index.js +428 -0
  156. package/plugin/node_modules/@expo/config-plugins/build/index.js.map +1 -0
  157. package/plugin/node_modules/@expo/config-plugins/build/ios/Bitcode.d.ts +33 -0
  158. package/plugin/node_modules/@expo/config-plugins/build/ios/Bitcode.js +110 -0
  159. package/plugin/node_modules/@expo/config-plugins/build/ios/Bitcode.js.map +1 -0
  160. package/plugin/node_modules/@expo/config-plugins/build/ios/BuildProperties.d.ts +27 -0
  161. package/plugin/node_modules/@expo/config-plugins/build/ios/BuildProperties.js +67 -0
  162. package/plugin/node_modules/@expo/config-plugins/build/ios/BuildProperties.js.map +1 -0
  163. package/plugin/node_modules/@expo/config-plugins/build/ios/BuildScheme.d.ts +10 -0
  164. package/plugin/node_modules/@expo/config-plugins/build/ios/BuildScheme.js +112 -0
  165. package/plugin/node_modules/@expo/config-plugins/build/ios/BuildScheme.js.map +1 -0
  166. package/plugin/node_modules/@expo/config-plugins/build/ios/BundleIdentifier.d.ts +50 -0
  167. package/plugin/node_modules/@expo/config-plugins/build/ios/BundleIdentifier.js +241 -0
  168. package/plugin/node_modules/@expo/config-plugins/build/ios/BundleIdentifier.js.map +1 -0
  169. package/plugin/node_modules/@expo/config-plugins/build/ios/DeviceFamily.d.ts +19 -0
  170. package/plugin/node_modules/@expo/config-plugins/build/ios/DeviceFamily.js +92 -0
  171. package/plugin/node_modules/@expo/config-plugins/build/ios/DeviceFamily.js.map +1 -0
  172. package/plugin/node_modules/@expo/config-plugins/build/ios/Entitlements.d.ts +9 -0
  173. package/plugin/node_modules/@expo/config-plugins/build/ios/Entitlements.js +132 -0
  174. package/plugin/node_modules/@expo/config-plugins/build/ios/Entitlements.js.map +1 -0
  175. package/plugin/node_modules/@expo/config-plugins/build/ios/Google.d.ts +14 -0
  176. package/plugin/node_modules/@expo/config-plugins/build/ios/Google.js +139 -0
  177. package/plugin/node_modules/@expo/config-plugins/build/ios/Google.js.map +1 -0
  178. package/plugin/node_modules/@expo/config-plugins/build/ios/IosConfig.types.d.ts +48 -0
  179. package/plugin/node_modules/@expo/config-plugins/build/ios/IosConfig.types.js +2 -0
  180. package/plugin/node_modules/@expo/config-plugins/build/ios/IosConfig.types.js.map +1 -0
  181. package/plugin/node_modules/@expo/config-plugins/build/ios/Locales.d.ts +14 -0
  182. package/plugin/node_modules/@expo/config-plugins/build/ios/Locales.js +132 -0
  183. package/plugin/node_modules/@expo/config-plugins/build/ios/Locales.js.map +1 -0
  184. package/plugin/node_modules/@expo/config-plugins/build/ios/Maps.d.ts +17 -0
  185. package/plugin/node_modules/@expo/config-plugins/build/ios/Maps.js +211 -0
  186. package/plugin/node_modules/@expo/config-plugins/build/ios/Maps.js.map +1 -0
  187. package/plugin/node_modules/@expo/config-plugins/build/ios/Name.d.ts +20 -0
  188. package/plugin/node_modules/@expo/config-plugins/build/ios/Name.js +111 -0
  189. package/plugin/node_modules/@expo/config-plugins/build/ios/Name.js.map +1 -0
  190. package/plugin/node_modules/@expo/config-plugins/build/ios/Orientation.d.ts +7 -0
  191. package/plugin/node_modules/@expo/config-plugins/build/ios/Orientation.js +42 -0
  192. package/plugin/node_modules/@expo/config-plugins/build/ios/Orientation.js.map +1 -0
  193. package/plugin/node_modules/@expo/config-plugins/build/ios/Paths.d.ts +38 -0
  194. package/plugin/node_modules/@expo/config-plugins/build/ios/Paths.js +311 -0
  195. package/plugin/node_modules/@expo/config-plugins/build/ios/Paths.js.map +1 -0
  196. package/plugin/node_modules/@expo/config-plugins/build/ios/Permissions.d.ts +9 -0
  197. package/plugin/node_modules/@expo/config-plugins/build/ios/Permissions.js +58 -0
  198. package/plugin/node_modules/@expo/config-plugins/build/ios/Permissions.js.map +1 -0
  199. package/plugin/node_modules/@expo/config-plugins/build/ios/PrivacyInfo.d.ts +20 -0
  200. package/plugin/node_modules/@expo/config-plugins/build/ios/PrivacyInfo.js +129 -0
  201. package/plugin/node_modules/@expo/config-plugins/build/ios/PrivacyInfo.js.map +1 -0
  202. package/plugin/node_modules/@expo/config-plugins/build/ios/ProvisioningProfile.d.ts +8 -0
  203. package/plugin/node_modules/@expo/config-plugins/build/ios/ProvisioningProfile.js +67 -0
  204. package/plugin/node_modules/@expo/config-plugins/build/ios/ProvisioningProfile.js.map +1 -0
  205. package/plugin/node_modules/@expo/config-plugins/build/ios/RequiresFullScreen.d.ts +5 -0
  206. package/plugin/node_modules/@expo/config-plugins/build/ios/RequiresFullScreen.js +101 -0
  207. package/plugin/node_modules/@expo/config-plugins/build/ios/RequiresFullScreen.js.map +1 -0
  208. package/plugin/node_modules/@expo/config-plugins/build/ios/Scheme.d.ts +11 -0
  209. package/plugin/node_modules/@expo/config-plugins/build/ios/Scheme.js +111 -0
  210. package/plugin/node_modules/@expo/config-plugins/build/ios/Scheme.js.map +1 -0
  211. package/plugin/node_modules/@expo/config-plugins/build/ios/Swift.d.ts +34 -0
  212. package/plugin/node_modules/@expo/config-plugins/build/ios/Swift.js +196 -0
  213. package/plugin/node_modules/@expo/config-plugins/build/ios/Swift.js.map +1 -0
  214. package/plugin/node_modules/@expo/config-plugins/build/ios/Target.d.ts +27 -0
  215. package/plugin/node_modules/@expo/config-plugins/build/ios/Target.js +136 -0
  216. package/plugin/node_modules/@expo/config-plugins/build/ios/Target.js.map +1 -0
  217. package/plugin/node_modules/@expo/config-plugins/build/ios/Updates.d.ts +17 -0
  218. package/plugin/node_modules/@expo/config-plugins/build/ios/Updates.js +121 -0
  219. package/plugin/node_modules/@expo/config-plugins/build/ios/Updates.js.map +1 -0
  220. package/plugin/node_modules/@expo/config-plugins/build/ios/UsesNonExemptEncryption.d.ts +5 -0
  221. package/plugin/node_modules/@expo/config-plugins/build/ios/UsesNonExemptEncryption.js +38 -0
  222. package/plugin/node_modules/@expo/config-plugins/build/ios/UsesNonExemptEncryption.js.map +1 -0
  223. package/plugin/node_modules/@expo/config-plugins/build/ios/Version.d.ts +8 -0
  224. package/plugin/node_modules/@expo/config-plugins/build/ios/Version.js +44 -0
  225. package/plugin/node_modules/@expo/config-plugins/build/ios/Version.js.map +1 -0
  226. package/plugin/node_modules/@expo/config-plugins/build/ios/XcodeProjectFile.d.ts +31 -0
  227. package/plugin/node_modules/@expo/config-plugins/build/ios/XcodeProjectFile.js +99 -0
  228. package/plugin/node_modules/@expo/config-plugins/build/ios/XcodeProjectFile.js.map +1 -0
  229. package/plugin/node_modules/@expo/config-plugins/build/ios/codeMod.d.ts +81 -0
  230. package/plugin/node_modules/@expo/config-plugins/build/ios/codeMod.js +264 -0
  231. package/plugin/node_modules/@expo/config-plugins/build/ios/codeMod.js.map +1 -0
  232. package/plugin/node_modules/@expo/config-plugins/build/ios/index.d.ts +27 -0
  233. package/plugin/node_modules/@expo/config-plugins/build/ios/index.js +342 -0
  234. package/plugin/node_modules/@expo/config-plugins/build/ios/index.js.map +1 -0
  235. package/plugin/node_modules/@expo/config-plugins/build/ios/utils/Xcodeproj.d.ts +93 -0
  236. package/plugin/node_modules/@expo/config-plugins/build/ios/utils/Xcodeproj.js +484 -0
  237. package/plugin/node_modules/@expo/config-plugins/build/ios/utils/Xcodeproj.js.map +1 -0
  238. package/plugin/node_modules/@expo/config-plugins/build/ios/utils/getInfoPlistPath.d.ts +12 -0
  239. package/plugin/node_modules/@expo/config-plugins/build/ios/utils/getInfoPlistPath.js +49 -0
  240. package/plugin/node_modules/@expo/config-plugins/build/ios/utils/getInfoPlistPath.js.map +1 -0
  241. package/plugin/node_modules/@expo/config-plugins/build/ios/utils/string.d.ts +1 -0
  242. package/plugin/node_modules/@expo/config-plugins/build/ios/utils/string.js +10 -0
  243. package/plugin/node_modules/@expo/config-plugins/build/ios/utils/string.js.map +1 -0
  244. package/plugin/node_modules/@expo/config-plugins/build/plugins/android-plugins.d.ts +89 -0
  245. package/plugin/node_modules/@expo/config-plugins/build/plugins/android-plugins.js +210 -0
  246. package/plugin/node_modules/@expo/config-plugins/build/plugins/android-plugins.js.map +1 -0
  247. package/plugin/node_modules/@expo/config-plugins/build/plugins/createBaseMod.d.ts +31 -0
  248. package/plugin/node_modules/@expo/config-plugins/build/plugins/createBaseMod.js +129 -0
  249. package/plugin/node_modules/@expo/config-plugins/build/plugins/createBaseMod.js.map +1 -0
  250. package/plugin/node_modules/@expo/config-plugins/build/plugins/ios-plugins.d.ts +77 -0
  251. package/plugin/node_modules/@expo/config-plugins/build/plugins/ios-plugins.js +205 -0
  252. package/plugin/node_modules/@expo/config-plugins/build/plugins/ios-plugins.js.map +1 -0
  253. package/plugin/node_modules/@expo/config-plugins/build/plugins/mod-compiler.d.ts +39 -0
  254. package/plugin/node_modules/@expo/config-plugins/build/plugins/mod-compiler.js +226 -0
  255. package/plugin/node_modules/@expo/config-plugins/build/plugins/mod-compiler.js.map +1 -0
  256. package/plugin/node_modules/@expo/config-plugins/build/plugins/withAndroidBaseMods.d.ts +40 -0
  257. package/plugin/node_modules/@expo/config-plugins/build/plugins/withAndroidBaseMods.js +510 -0
  258. package/plugin/node_modules/@expo/config-plugins/build/plugins/withAndroidBaseMods.js.map +1 -0
  259. package/plugin/node_modules/@expo/config-plugins/build/plugins/withDangerousMod.d.ts +10 -0
  260. package/plugin/node_modules/@expo/config-plugins/build/plugins/withDangerousMod.js +30 -0
  261. package/plugin/node_modules/@expo/config-plugins/build/plugins/withDangerousMod.js.map +1 -0
  262. package/plugin/node_modules/@expo/config-plugins/build/plugins/withFinalizedMod.d.ts +10 -0
  263. package/plugin/node_modules/@expo/config-plugins/build/plugins/withFinalizedMod.js +30 -0
  264. package/plugin/node_modules/@expo/config-plugins/build/plugins/withFinalizedMod.js.map +1 -0
  265. package/plugin/node_modules/@expo/config-plugins/build/plugins/withIosBaseMods.d.ts +33 -0
  266. package/plugin/node_modules/@expo/config-plugins/build/plugins/withIosBaseMods.js +442 -0
  267. package/plugin/node_modules/@expo/config-plugins/build/plugins/withIosBaseMods.js.map +1 -0
  268. package/plugin/node_modules/@expo/config-plugins/build/plugins/withMod.d.ts +46 -0
  269. package/plugin/node_modules/@expo/config-plugins/build/plugins/withMod.js +208 -0
  270. package/plugin/node_modules/@expo/config-plugins/build/plugins/withMod.js.map +1 -0
  271. package/plugin/node_modules/@expo/config-plugins/build/plugins/withPlugins.d.ts +8 -0
  272. package/plugin/node_modules/@expo/config-plugins/build/plugins/withPlugins.js +35 -0
  273. package/plugin/node_modules/@expo/config-plugins/build/plugins/withPlugins.js.map +1 -0
  274. package/plugin/node_modules/@expo/config-plugins/build/plugins/withRunOnce.d.ts +20 -0
  275. package/plugin/node_modules/@expo/config-plugins/build/plugins/withRunOnce.js +55 -0
  276. package/plugin/node_modules/@expo/config-plugins/build/plugins/withRunOnce.js.map +1 -0
  277. package/plugin/node_modules/@expo/config-plugins/build/plugins/withStaticPlugin.d.ts +17 -0
  278. package/plugin/node_modules/@expo/config-plugins/build/plugins/withStaticPlugin.js +138 -0
  279. package/plugin/node_modules/@expo/config-plugins/build/plugins/withStaticPlugin.js.map +1 -0
  280. package/plugin/node_modules/@expo/config-plugins/build/utils/BuildProperties.types.d.ts +25 -0
  281. package/plugin/node_modules/@expo/config-plugins/build/utils/BuildProperties.types.js +2 -0
  282. package/plugin/node_modules/@expo/config-plugins/build/utils/BuildProperties.types.js.map +1 -0
  283. package/plugin/node_modules/@expo/config-plugins/build/utils/Updates.d.ts +29 -0
  284. package/plugin/node_modules/@expo/config-plugins/build/utils/Updates.js +217 -0
  285. package/plugin/node_modules/@expo/config-plugins/build/utils/Updates.js.map +1 -0
  286. package/plugin/node_modules/@expo/config-plugins/build/utils/XML.d.ts +27 -0
  287. package/plugin/node_modules/@expo/config-plugins/build/utils/XML.js +161 -0
  288. package/plugin/node_modules/@expo/config-plugins/build/utils/XML.js.map +1 -0
  289. package/plugin/node_modules/@expo/config-plugins/build/utils/commonCodeMod.d.ts +32 -0
  290. package/plugin/node_modules/@expo/config-plugins/build/utils/commonCodeMod.js +63 -0
  291. package/plugin/node_modules/@expo/config-plugins/build/utils/commonCodeMod.js.map +1 -0
  292. package/plugin/node_modules/@expo/config-plugins/build/utils/errors.d.ts +15 -0
  293. package/plugin/node_modules/@expo/config-plugins/build/utils/errors.js +27 -0
  294. package/plugin/node_modules/@expo/config-plugins/build/utils/errors.js.map +1 -0
  295. package/plugin/node_modules/@expo/config-plugins/build/utils/fs.d.ts +4 -0
  296. package/plugin/node_modules/@expo/config-plugins/build/utils/fs.js +45 -0
  297. package/plugin/node_modules/@expo/config-plugins/build/utils/fs.js.map +1 -0
  298. package/plugin/node_modules/@expo/config-plugins/build/utils/generateCode.d.ts +36 -0
  299. package/plugin/node_modules/@expo/config-plugins/build/utils/generateCode.js +128 -0
  300. package/plugin/node_modules/@expo/config-plugins/build/utils/generateCode.js.map +1 -0
  301. package/plugin/node_modules/@expo/config-plugins/build/utils/history.d.ts +11 -0
  302. package/plugin/node_modules/@expo/config-plugins/build/utils/history.js +24 -0
  303. package/plugin/node_modules/@expo/config-plugins/build/utils/history.js.map +1 -0
  304. package/plugin/node_modules/@expo/config-plugins/build/utils/matchBrackets.d.ts +7 -0
  305. package/plugin/node_modules/@expo/config-plugins/build/utils/matchBrackets.js +65 -0
  306. package/plugin/node_modules/@expo/config-plugins/build/utils/matchBrackets.js.map +1 -0
  307. package/plugin/node_modules/@expo/config-plugins/build/utils/modules.d.ts +3 -0
  308. package/plugin/node_modules/@expo/config-plugins/build/utils/modules.js +42 -0
  309. package/plugin/node_modules/@expo/config-plugins/build/utils/modules.js.map +1 -0
  310. package/plugin/node_modules/@expo/config-plugins/build/utils/obj.d.ts +2 -0
  311. package/plugin/node_modules/@expo/config-plugins/build/utils/obj.js +20 -0
  312. package/plugin/node_modules/@expo/config-plugins/build/utils/obj.js.map +1 -0
  313. package/plugin/node_modules/@expo/config-plugins/build/utils/plugin-resolver.d.ts +33 -0
  314. package/plugin/node_modules/@expo/config-plugins/build/utils/plugin-resolver.js +218 -0
  315. package/plugin/node_modules/@expo/config-plugins/build/utils/plugin-resolver.js.map +1 -0
  316. package/plugin/node_modules/@expo/config-plugins/build/utils/sortObject.d.ts +4 -0
  317. package/plugin/node_modules/@expo/config-plugins/build/utils/sortObject.js +42 -0
  318. package/plugin/node_modules/@expo/config-plugins/build/utils/sortObject.js.map +1 -0
  319. package/plugin/node_modules/@expo/config-plugins/build/utils/versions.d.ts +3 -0
  320. package/plugin/node_modules/@expo/config-plugins/build/utils/versions.js +42 -0
  321. package/plugin/node_modules/@expo/config-plugins/build/utils/versions.js.map +1 -0
  322. package/plugin/node_modules/@expo/config-plugins/build/utils/warnings.d.ts +26 -0
  323. package/plugin/node_modules/@expo/config-plugins/build/utils/warnings.js +52 -0
  324. package/plugin/node_modules/@expo/config-plugins/build/utils/warnings.js.map +1 -0
  325. package/plugin/node_modules/@expo/config-plugins/package.json +62 -0
  326. package/plugin/node_modules/@expo/config-types/LICENSE +22 -0
  327. package/plugin/node_modules/@expo/config-types/README.md +38 -0
  328. package/plugin/node_modules/@expo/config-types/build/ExpoConfig.d.ts +878 -0
  329. package/plugin/node_modules/@expo/config-types/build/ExpoConfig.js +6 -0
  330. package/plugin/node_modules/@expo/config-types/package.json +48 -0
  331. package/plugin/node_modules/@expo/json-file/LICENSE +22 -0
  332. package/plugin/node_modules/@expo/json-file/README.md +29 -0
  333. package/plugin/node_modules/@expo/json-file/build/JsonFile.d.ts +61 -0
  334. package/plugin/node_modules/@expo/json-file/build/JsonFile.js +283 -0
  335. package/plugin/node_modules/@expo/json-file/build/JsonFile.js.map +1 -0
  336. package/plugin/node_modules/@expo/json-file/build/JsonFileError.d.ts +13 -0
  337. package/plugin/node_modules/@expo/json-file/build/JsonFileError.js +35 -0
  338. package/plugin/node_modules/@expo/json-file/build/JsonFileError.js.map +1 -0
  339. package/plugin/node_modules/@expo/json-file/package.json +47 -0
  340. package/plugin/node_modules/@expo/plist/README.md +8 -0
  341. package/plugin/node_modules/@expo/plist/build/build.d.ts +11 -0
  342. package/plugin/node_modules/@expo/plist/build/build.js +152 -0
  343. package/plugin/node_modules/@expo/plist/build/build.js.map +1 -0
  344. package/plugin/node_modules/@expo/plist/build/index.d.ts +16 -0
  345. package/plugin/node_modules/@expo/plist/build/index.js +6 -0
  346. package/plugin/node_modules/@expo/plist/build/index.js.map +1 -0
  347. package/plugin/node_modules/@expo/plist/build/parse.d.ts +8 -0
  348. package/plugin/node_modules/@expo/plist/build/parse.js +201 -0
  349. package/plugin/node_modules/@expo/plist/build/parse.js.map +1 -0
  350. package/plugin/node_modules/@expo/plist/package.json +45 -0
  351. package/plugin/node_modules/@expo/sdk-runtime-versions/README.md +5 -0
  352. package/plugin/node_modules/@expo/sdk-runtime-versions/build/index.d.ts +4 -0
  353. package/plugin/node_modules/@expo/sdk-runtime-versions/build/index.js +21 -0
  354. package/plugin/node_modules/@expo/sdk-runtime-versions/build/index.js.map +1 -0
  355. package/plugin/node_modules/@expo/sdk-runtime-versions/package.json +29 -0
  356. package/plugin/node_modules/@types/node/LICENSE +21 -0
  357. package/plugin/node_modules/@types/node/README.md +15 -0
  358. package/plugin/node_modules/@types/node/assert/strict.d.ts +8 -0
  359. package/plugin/node_modules/@types/node/assert.d.ts +1044 -0
  360. package/plugin/node_modules/@types/node/async_hooks.d.ts +605 -0
  361. package/plugin/node_modules/@types/node/buffer.buffer.d.ts +462 -0
  362. package/plugin/node_modules/@types/node/buffer.d.ts +1932 -0
  363. package/plugin/node_modules/@types/node/child_process.d.ts +1548 -0
  364. package/plugin/node_modules/@types/node/cluster.d.ts +578 -0
  365. package/plugin/node_modules/@types/node/compatibility/disposable.d.ts +16 -0
  366. package/plugin/node_modules/@types/node/compatibility/index.d.ts +9 -0
  367. package/plugin/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
  368. package/plugin/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  369. package/plugin/node_modules/@types/node/console.d.ts +452 -0
  370. package/plugin/node_modules/@types/node/constants.d.ts +21 -0
  371. package/plugin/node_modules/@types/node/crypto.d.ts +4570 -0
  372. package/plugin/node_modules/@types/node/dgram.d.ts +596 -0
  373. package/plugin/node_modules/@types/node/diagnostics_channel.d.ts +578 -0
  374. package/plugin/node_modules/@types/node/dns/promises.d.ts +479 -0
  375. package/plugin/node_modules/@types/node/dns.d.ts +871 -0
  376. package/plugin/node_modules/@types/node/dom-events.d.ts +99 -0
  377. package/plugin/node_modules/@types/node/domain.d.ts +170 -0
  378. package/plugin/node_modules/@types/node/events.d.ts +931 -0
  379. package/plugin/node_modules/@types/node/fs/promises.d.ts +1248 -0
  380. package/plugin/node_modules/@types/node/fs.d.ts +4362 -0
  381. package/plugin/node_modules/@types/node/globals.d.ts +335 -0
  382. package/plugin/node_modules/@types/node/globals.typedarray.d.ts +21 -0
  383. package/plugin/node_modules/@types/node/http.d.ts +2031 -0
  384. package/plugin/node_modules/@types/node/http2.d.ts +2623 -0
  385. package/plugin/node_modules/@types/node/https.d.ts +544 -0
  386. package/plugin/node_modules/@types/node/index.d.ts +91 -0
  387. package/plugin/node_modules/@types/node/inspector.d.ts +3966 -0
  388. package/plugin/node_modules/@types/node/module.d.ts +539 -0
  389. package/plugin/node_modules/@types/node/net.d.ts +1011 -0
  390. package/plugin/node_modules/@types/node/os.d.ts +495 -0
  391. package/plugin/node_modules/@types/node/package.json +140 -0
  392. package/plugin/node_modules/@types/node/path.d.ts +200 -0
  393. package/plugin/node_modules/@types/node/perf_hooks.d.ts +963 -0
  394. package/plugin/node_modules/@types/node/process.d.ts +1956 -0
  395. package/plugin/node_modules/@types/node/punycode.d.ts +117 -0
  396. package/plugin/node_modules/@types/node/querystring.d.ts +152 -0
  397. package/plugin/node_modules/@types/node/readline/promises.d.ts +162 -0
  398. package/plugin/node_modules/@types/node/readline.d.ts +589 -0
  399. package/plugin/node_modules/@types/node/repl.d.ts +430 -0
  400. package/plugin/node_modules/@types/node/sea.d.ts +153 -0
  401. package/plugin/node_modules/@types/node/stream/consumers.d.ts +38 -0
  402. package/plugin/node_modules/@types/node/stream/promises.d.ts +90 -0
  403. package/plugin/node_modules/@types/node/stream/web.d.ts +533 -0
  404. package/plugin/node_modules/@types/node/stream.d.ts +1668 -0
  405. package/plugin/node_modules/@types/node/string_decoder.d.ts +67 -0
  406. package/plugin/node_modules/@types/node/test.d.ts +1807 -0
  407. package/plugin/node_modules/@types/node/timers/promises.d.ts +108 -0
  408. package/plugin/node_modules/@types/node/timers.d.ts +286 -0
  409. package/plugin/node_modules/@types/node/tls.d.ts +1231 -0
  410. package/plugin/node_modules/@types/node/trace_events.d.ts +197 -0
  411. package/plugin/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +460 -0
  412. package/plugin/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +19 -0
  413. package/plugin/node_modules/@types/node/ts5.6/index.d.ts +91 -0
  414. package/plugin/node_modules/@types/node/tty.d.ts +208 -0
  415. package/plugin/node_modules/@types/node/url.d.ts +964 -0
  416. package/plugin/node_modules/@types/node/util.d.ts +2331 -0
  417. package/plugin/node_modules/@types/node/v8.d.ts +808 -0
  418. package/plugin/node_modules/@types/node/vm.d.ts +1030 -0
  419. package/plugin/node_modules/@types/node/wasi.d.ts +181 -0
  420. package/plugin/node_modules/@types/node/worker_threads.d.ts +724 -0
  421. package/plugin/node_modules/@types/node/zlib.d.ts +539 -0
  422. package/plugin/node_modules/@xmldom/xmldom/CHANGELOG.md +401 -0
  423. package/plugin/node_modules/@xmldom/xmldom/LICENSE +8 -0
  424. package/plugin/node_modules/@xmldom/xmldom/index.d.ts +43 -0
  425. package/plugin/node_modules/@xmldom/xmldom/lib/.eslintrc.yml +2 -0
  426. package/plugin/node_modules/@xmldom/xmldom/lib/conventions.js +177 -0
  427. package/plugin/node_modules/@xmldom/xmldom/lib/dom-parser.js +268 -0
  428. package/plugin/node_modules/@xmldom/xmldom/lib/dom.js +1808 -0
  429. package/plugin/node_modules/@xmldom/xmldom/lib/entities.js +2166 -0
  430. package/plugin/node_modules/@xmldom/xmldom/lib/index.js +4 -0
  431. package/plugin/node_modules/@xmldom/xmldom/lib/sax.js +656 -0
  432. package/plugin/node_modules/@xmldom/xmldom/package.json +60 -0
  433. package/plugin/node_modules/@xmldom/xmldom/readme.md +338 -0
  434. package/plugin/node_modules/ansi-styles/index.d.ts +345 -0
  435. package/plugin/node_modules/ansi-styles/index.js +163 -0
  436. package/plugin/node_modules/ansi-styles/license +9 -0
  437. package/plugin/node_modules/ansi-styles/package.json +56 -0
  438. package/plugin/node_modules/ansi-styles/readme.md +152 -0
  439. package/plugin/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  440. package/plugin/node_modules/balanced-match/LICENSE.md +21 -0
  441. package/plugin/node_modules/balanced-match/README.md +97 -0
  442. package/plugin/node_modules/balanced-match/index.js +62 -0
  443. package/plugin/node_modules/balanced-match/package.json +48 -0
  444. package/plugin/node_modules/base64-js/LICENSE +21 -0
  445. package/plugin/node_modules/base64-js/README.md +34 -0
  446. package/plugin/node_modules/base64-js/base64js.min.js +1 -0
  447. package/plugin/node_modules/base64-js/index.d.ts +3 -0
  448. package/plugin/node_modules/base64-js/index.js +150 -0
  449. package/plugin/node_modules/base64-js/package.json +47 -0
  450. package/plugin/node_modules/big-integer/BigInteger.d.ts +2393 -0
  451. package/plugin/node_modules/big-integer/BigInteger.js +1453 -0
  452. package/plugin/node_modules/big-integer/BigInteger.min.js +1 -0
  453. package/plugin/node_modules/big-integer/LICENSE +24 -0
  454. package/plugin/node_modules/big-integer/README.md +589 -0
  455. package/plugin/node_modules/big-integer/bower.json +29 -0
  456. package/plugin/node_modules/big-integer/package.json +48 -0
  457. package/plugin/node_modules/big-integer/tsconfig.json +24 -0
  458. package/plugin/node_modules/bplist-creator/LICENSE +18 -0
  459. package/plugin/node_modules/bplist-creator/README.md +64 -0
  460. package/plugin/node_modules/bplist-creator/bplistCreator.js +460 -0
  461. package/plugin/node_modules/bplist-creator/package.json +28 -0
  462. package/plugin/node_modules/bplist-creator/test/airplay.bplist +0 -0
  463. package/plugin/node_modules/bplist-creator/test/binaryData.bplist +0 -0
  464. package/plugin/node_modules/bplist-creator/test/creatorTest.js +211 -0
  465. package/plugin/node_modules/bplist-creator/test/iTunes-small.bplist +0 -0
  466. package/plugin/node_modules/bplist-creator/test/integers.bplist +0 -0
  467. package/plugin/node_modules/bplist-creator/test/sample1.bplist +0 -0
  468. package/plugin/node_modules/bplist-creator/test/sample2.bplist +0 -0
  469. package/plugin/node_modules/bplist-creator/test/uid.bplist +0 -0
  470. package/plugin/node_modules/bplist-creator/test/utf16.bplist +0 -0
  471. package/plugin/node_modules/bplist-parser/.editorconfig +12 -0
  472. package/plugin/node_modules/bplist-parser/.eslintignore +1 -0
  473. package/plugin/node_modules/bplist-parser/.eslintrc.js +295 -0
  474. package/plugin/node_modules/bplist-parser/README.md +48 -0
  475. package/plugin/node_modules/bplist-parser/bplistParser.d.ts +6 -0
  476. package/plugin/node_modules/bplist-parser/bplistParser.js +366 -0
  477. package/plugin/node_modules/bplist-parser/package.json +35 -0
  478. package/plugin/node_modules/brace-expansion/LICENSE +21 -0
  479. package/plugin/node_modules/brace-expansion/README.md +129 -0
  480. package/plugin/node_modules/brace-expansion/index.js +201 -0
  481. package/plugin/node_modules/brace-expansion/package.json +50 -0
  482. package/plugin/node_modules/chalk/index.d.ts +415 -0
  483. package/plugin/node_modules/chalk/license +9 -0
  484. package/plugin/node_modules/chalk/package.json +68 -0
  485. package/plugin/node_modules/chalk/readme.md +341 -0
  486. package/plugin/node_modules/chalk/source/index.js +229 -0
  487. package/plugin/node_modules/chalk/source/templates.js +134 -0
  488. package/plugin/node_modules/chalk/source/util.js +39 -0
  489. package/plugin/node_modules/color-convert/CHANGELOG.md +54 -0
  490. package/plugin/node_modules/color-convert/LICENSE +21 -0
  491. package/plugin/node_modules/color-convert/README.md +68 -0
  492. package/plugin/node_modules/color-convert/conversions.js +839 -0
  493. package/plugin/node_modules/color-convert/index.js +81 -0
  494. package/plugin/node_modules/color-convert/package.json +48 -0
  495. package/plugin/node_modules/color-convert/route.js +97 -0
  496. package/plugin/node_modules/color-name/LICENSE +8 -0
  497. package/plugin/node_modules/color-name/README.md +11 -0
  498. package/plugin/node_modules/color-name/index.js +152 -0
  499. package/plugin/node_modules/color-name/package.json +28 -0
  500. package/plugin/node_modules/concat-map/.travis.yml +4 -0
  501. package/plugin/node_modules/concat-map/LICENSE +18 -0
  502. package/plugin/node_modules/concat-map/README.markdown +62 -0
  503. package/plugin/node_modules/concat-map/example/map.js +6 -0
  504. package/plugin/node_modules/concat-map/index.js +13 -0
  505. package/plugin/node_modules/concat-map/package.json +43 -0
  506. package/plugin/node_modules/concat-map/test/map.js +39 -0
  507. package/plugin/node_modules/debug/LICENSE +20 -0
  508. package/plugin/node_modules/debug/README.md +481 -0
  509. package/plugin/node_modules/debug/package.json +64 -0
  510. package/plugin/node_modules/debug/src/browser.js +272 -0
  511. package/plugin/node_modules/debug/src/common.js +292 -0
  512. package/plugin/node_modules/debug/src/index.js +10 -0
  513. package/plugin/node_modules/debug/src/node.js +263 -0
  514. package/plugin/node_modules/escape-string-regexp/index.js +11 -0
  515. package/plugin/node_modules/escape-string-regexp/license +21 -0
  516. package/plugin/node_modules/escape-string-regexp/package.json +41 -0
  517. package/plugin/node_modules/escape-string-regexp/readme.md +27 -0
  518. package/plugin/node_modules/find-up/index.d.ts +138 -0
  519. package/plugin/node_modules/find-up/index.js +89 -0
  520. package/plugin/node_modules/find-up/license +9 -0
  521. package/plugin/node_modules/find-up/package.json +54 -0
  522. package/plugin/node_modules/find-up/readme.md +151 -0
  523. package/plugin/node_modules/fs.realpath/LICENSE +43 -0
  524. package/plugin/node_modules/fs.realpath/README.md +33 -0
  525. package/plugin/node_modules/fs.realpath/index.js +66 -0
  526. package/plugin/node_modules/fs.realpath/old.js +303 -0
  527. package/plugin/node_modules/fs.realpath/package.json +26 -0
  528. package/plugin/node_modules/getenv/LICENSE.md +20 -0
  529. package/plugin/node_modules/getenv/README.md +197 -0
  530. package/plugin/node_modules/getenv/index.js +150 -0
  531. package/plugin/node_modules/getenv/package.json +38 -0
  532. package/plugin/node_modules/glob/LICENSE +21 -0
  533. package/plugin/node_modules/glob/README.md +375 -0
  534. package/plugin/node_modules/glob/changelog.md +67 -0
  535. package/plugin/node_modules/glob/common.js +240 -0
  536. package/plugin/node_modules/glob/glob.js +790 -0
  537. package/plugin/node_modules/glob/package.json +46 -0
  538. package/plugin/node_modules/glob/sync.js +486 -0
  539. package/plugin/node_modules/graceful-fs/LICENSE +15 -0
  540. package/plugin/node_modules/graceful-fs/README.md +143 -0
  541. package/plugin/node_modules/graceful-fs/clone.js +23 -0
  542. package/plugin/node_modules/graceful-fs/graceful-fs.js +448 -0
  543. package/plugin/node_modules/graceful-fs/legacy-streams.js +118 -0
  544. package/plugin/node_modules/graceful-fs/package.json +53 -0
  545. package/plugin/node_modules/graceful-fs/polyfills.js +355 -0
  546. package/plugin/node_modules/has-flag/index.d.ts +39 -0
  547. package/plugin/node_modules/has-flag/index.js +8 -0
  548. package/plugin/node_modules/has-flag/license +9 -0
  549. package/plugin/node_modules/has-flag/package.json +46 -0
  550. package/plugin/node_modules/has-flag/readme.md +89 -0
  551. package/plugin/node_modules/imurmurhash/README.md +122 -0
  552. package/plugin/node_modules/imurmurhash/imurmurhash.js +138 -0
  553. package/plugin/node_modules/imurmurhash/imurmurhash.min.js +12 -0
  554. package/plugin/node_modules/imurmurhash/package.json +40 -0
  555. package/plugin/node_modules/inflight/LICENSE +15 -0
  556. package/plugin/node_modules/inflight/README.md +37 -0
  557. package/plugin/node_modules/inflight/inflight.js +54 -0
  558. package/plugin/node_modules/inflight/package.json +29 -0
  559. package/plugin/node_modules/inherits/LICENSE +16 -0
  560. package/plugin/node_modules/inherits/README.md +42 -0
  561. package/plugin/node_modules/inherits/inherits.js +9 -0
  562. package/plugin/node_modules/inherits/inherits_browser.js +27 -0
  563. package/plugin/node_modules/inherits/package.json +29 -0
  564. package/plugin/node_modules/js-tokens/CHANGELOG.md +151 -0
  565. package/plugin/node_modules/js-tokens/LICENSE +21 -0
  566. package/plugin/node_modules/js-tokens/README.md +240 -0
  567. package/plugin/node_modules/js-tokens/index.js +23 -0
  568. package/plugin/node_modules/js-tokens/package.json +30 -0
  569. package/plugin/node_modules/json5/LICENSE.md +23 -0
  570. package/plugin/node_modules/json5/README.md +282 -0
  571. package/plugin/node_modules/json5/dist/index.js +1737 -0
  572. package/plugin/node_modules/json5/dist/index.min.js +1 -0
  573. package/plugin/node_modules/json5/dist/index.min.mjs +1 -0
  574. package/plugin/node_modules/json5/dist/index.mjs +1426 -0
  575. package/plugin/node_modules/json5/lib/cli.js +152 -0
  576. package/plugin/node_modules/json5/lib/index.d.ts +4 -0
  577. package/plugin/node_modules/json5/lib/index.js +9 -0
  578. package/plugin/node_modules/json5/lib/parse.d.ts +15 -0
  579. package/plugin/node_modules/json5/lib/parse.js +1114 -0
  580. package/plugin/node_modules/json5/lib/register.js +13 -0
  581. package/plugin/node_modules/json5/lib/require.js +4 -0
  582. package/plugin/node_modules/json5/lib/stringify.d.ts +89 -0
  583. package/plugin/node_modules/json5/lib/stringify.js +261 -0
  584. package/plugin/node_modules/json5/lib/unicode.d.ts +3 -0
  585. package/plugin/node_modules/json5/lib/unicode.js +4 -0
  586. package/plugin/node_modules/json5/lib/util.d.ts +5 -0
  587. package/plugin/node_modules/json5/lib/util.js +35 -0
  588. package/plugin/node_modules/json5/package.json +72 -0
  589. package/plugin/node_modules/locate-path/index.d.ts +83 -0
  590. package/plugin/node_modules/locate-path/index.js +68 -0
  591. package/plugin/node_modules/locate-path/license +9 -0
  592. package/plugin/node_modules/locate-path/package.json +46 -0
  593. package/plugin/node_modules/locate-path/readme.md +125 -0
  594. package/plugin/node_modules/minimatch/LICENSE +15 -0
  595. package/plugin/node_modules/minimatch/README.md +230 -0
  596. package/plugin/node_modules/minimatch/minimatch.js +947 -0
  597. package/plugin/node_modules/minimatch/package.json +33 -0
  598. package/plugin/node_modules/ms/index.js +162 -0
  599. package/plugin/node_modules/ms/license.md +21 -0
  600. package/plugin/node_modules/ms/package.json +38 -0
  601. package/plugin/node_modules/ms/readme.md +59 -0
  602. package/plugin/node_modules/once/LICENSE +15 -0
  603. package/plugin/node_modules/once/README.md +79 -0
  604. package/plugin/node_modules/once/once.js +42 -0
  605. package/plugin/node_modules/once/package.json +33 -0
  606. package/plugin/node_modules/p-limit/index.d.ts +42 -0
  607. package/plugin/node_modules/p-limit/index.js +71 -0
  608. package/plugin/node_modules/p-limit/license +9 -0
  609. package/plugin/node_modules/p-limit/package.json +52 -0
  610. package/plugin/node_modules/p-limit/readme.md +101 -0
  611. package/plugin/node_modules/p-locate/index.d.ts +53 -0
  612. package/plugin/node_modules/p-locate/index.js +50 -0
  613. package/plugin/node_modules/p-locate/license +9 -0
  614. package/plugin/node_modules/p-locate/package.json +54 -0
  615. package/plugin/node_modules/p-locate/readme.md +93 -0
  616. package/plugin/node_modules/path-exists/index.d.ts +28 -0
  617. package/plugin/node_modules/path-exists/index.js +23 -0
  618. package/plugin/node_modules/path-exists/license +9 -0
  619. package/plugin/node_modules/path-exists/package.json +39 -0
  620. package/plugin/node_modules/path-exists/readme.md +52 -0
  621. package/plugin/node_modules/path-is-absolute/index.js +20 -0
  622. package/plugin/node_modules/path-is-absolute/license +21 -0
  623. package/plugin/node_modules/path-is-absolute/package.json +43 -0
  624. package/plugin/node_modules/path-is-absolute/readme.md +59 -0
  625. package/plugin/node_modules/picocolors/LICENSE +15 -0
  626. package/plugin/node_modules/picocolors/README.md +21 -0
  627. package/plugin/node_modules/picocolors/package.json +25 -0
  628. package/plugin/node_modules/picocolors/picocolors.browser.js +4 -0
  629. package/plugin/node_modules/picocolors/picocolors.d.ts +5 -0
  630. package/plugin/node_modules/picocolors/picocolors.js +75 -0
  631. package/plugin/node_modules/picocolors/types.d.ts +51 -0
  632. package/plugin/node_modules/plist/.github/workflows/ci.yml +24 -0
  633. package/plugin/node_modules/plist/.jshintrc +4 -0
  634. package/plugin/node_modules/plist/History.md +196 -0
  635. package/plugin/node_modules/plist/LICENSE +24 -0
  636. package/plugin/node_modules/plist/Makefile +75 -0
  637. package/plugin/node_modules/plist/README.md +146 -0
  638. package/plugin/node_modules/plist/dist/plist-build.js +5348 -0
  639. package/plugin/node_modules/plist/dist/plist-parse.js +7456 -0
  640. package/plugin/node_modules/plist/dist/plist.js +9888 -0
  641. package/plugin/node_modules/plist/examples/browser/index.html +14 -0
  642. package/plugin/node_modules/plist/index.js +13 -0
  643. package/plugin/node_modules/plist/lib/build.js +143 -0
  644. package/plugin/node_modules/plist/lib/parse.js +227 -0
  645. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/CHANGELOG.md +459 -0
  646. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/LICENSE +8 -0
  647. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/SECURITY.md +50 -0
  648. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/index.d.ts +43 -0
  649. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/lib/.eslintrc.yml +2 -0
  650. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/lib/conventions.js +203 -0
  651. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/lib/dom-parser.js +322 -0
  652. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/lib/dom.js +1840 -0
  653. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/lib/entities.js +2166 -0
  654. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/lib/index.js +4 -0
  655. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/lib/sax.js +662 -0
  656. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/package.json +71 -0
  657. package/plugin/node_modules/plist/node_modules/@xmldom/xmldom/readme.md +356 -0
  658. package/plugin/node_modules/plist/node_modules/xmlbuilder/.nycrc +6 -0
  659. package/plugin/node_modules/plist/node_modules/xmlbuilder/.vscode/launch.json +23 -0
  660. package/plugin/node_modules/plist/node_modules/xmlbuilder/CHANGELOG.md +593 -0
  661. package/plugin/node_modules/plist/node_modules/xmlbuilder/LICENSE +21 -0
  662. package/plugin/node_modules/plist/node_modules/xmlbuilder/README.md +103 -0
  663. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/Derivation.js +10 -0
  664. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/DocumentPosition.js +12 -0
  665. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/NodeType.js +25 -0
  666. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/OperationType.js +11 -0
  667. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/Utility.js +88 -0
  668. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/WriterState.js +10 -0
  669. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLAttribute.js +130 -0
  670. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLCData.js +41 -0
  671. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLCharacterData.js +86 -0
  672. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLComment.js +41 -0
  673. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +80 -0
  674. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +20 -0
  675. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +55 -0
  676. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDOMStringList.js +44 -0
  677. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDTDAttList.js +66 -0
  678. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDTDElement.js +44 -0
  679. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDTDEntity.js +115 -0
  680. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDTDNotation.js +66 -0
  681. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDeclaration.js +51 -0
  682. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDocType.js +235 -0
  683. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDocument.js +282 -0
  684. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDocumentCB.js +650 -0
  685. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +21 -0
  686. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLDummy.js +39 -0
  687. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLElement.js +334 -0
  688. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +77 -0
  689. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLNode.js +999 -0
  690. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLNodeFilter.js +51 -0
  691. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLNodeList.js +45 -0
  692. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +56 -0
  693. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLRaw.js +40 -0
  694. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLStreamWriter.js +209 -0
  695. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLStringWriter.js +40 -0
  696. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLStringifier.js +291 -0
  697. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLText.js +82 -0
  698. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLTypeInfo.js +23 -0
  699. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +27 -0
  700. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/XMLWriterBase.js +485 -0
  701. package/plugin/node_modules/plist/node_modules/xmlbuilder/lib/index.js +120 -0
  702. package/plugin/node_modules/plist/node_modules/xmlbuilder/package.json +51 -0
  703. package/plugin/node_modules/plist/node_modules/xmlbuilder/perf/basic/escaping.coffee +244 -0
  704. package/plugin/node_modules/plist/node_modules/xmlbuilder/perf/basic/object.coffee +21 -0
  705. package/plugin/node_modules/plist/node_modules/xmlbuilder/perf/index.coffee +161 -0
  706. package/plugin/node_modules/plist/node_modules/xmlbuilder/perf/perf.list +11 -0
  707. package/plugin/node_modules/plist/node_modules/xmlbuilder/typings/index.d.ts +1771 -0
  708. package/plugin/node_modules/plist/package.json +44 -0
  709. package/plugin/node_modules/resolve-from/index.d.ts +31 -0
  710. package/plugin/node_modules/resolve-from/index.js +47 -0
  711. package/plugin/node_modules/resolve-from/license +9 -0
  712. package/plugin/node_modules/resolve-from/package.json +36 -0
  713. package/plugin/node_modules/resolve-from/readme.md +72 -0
  714. package/plugin/node_modules/sax/LICENSE +41 -0
  715. package/plugin/node_modules/sax/README.md +228 -0
  716. package/plugin/node_modules/sax/lib/sax.js +1597 -0
  717. package/plugin/node_modules/sax/package.json +29 -0
  718. package/plugin/node_modules/semver/LICENSE +15 -0
  719. package/plugin/node_modules/semver/README.md +664 -0
  720. package/plugin/node_modules/semver/bin/semver.js +191 -0
  721. package/plugin/node_modules/semver/classes/comparator.js +143 -0
  722. package/plugin/node_modules/semver/classes/index.js +7 -0
  723. package/plugin/node_modules/semver/classes/range.js +556 -0
  724. package/plugin/node_modules/semver/classes/semver.js +319 -0
  725. package/plugin/node_modules/semver/functions/clean.js +8 -0
  726. package/plugin/node_modules/semver/functions/cmp.js +54 -0
  727. package/plugin/node_modules/semver/functions/coerce.js +62 -0
  728. package/plugin/node_modules/semver/functions/compare-build.js +9 -0
  729. package/plugin/node_modules/semver/functions/compare-loose.js +5 -0
  730. package/plugin/node_modules/semver/functions/compare.js +7 -0
  731. package/plugin/node_modules/semver/functions/diff.js +60 -0
  732. package/plugin/node_modules/semver/functions/eq.js +5 -0
  733. package/plugin/node_modules/semver/functions/gt.js +5 -0
  734. package/plugin/node_modules/semver/functions/gte.js +5 -0
  735. package/plugin/node_modules/semver/functions/inc.js +21 -0
  736. package/plugin/node_modules/semver/functions/lt.js +5 -0
  737. package/plugin/node_modules/semver/functions/lte.js +5 -0
  738. package/plugin/node_modules/semver/functions/major.js +5 -0
  739. package/plugin/node_modules/semver/functions/minor.js +5 -0
  740. package/plugin/node_modules/semver/functions/neq.js +5 -0
  741. package/plugin/node_modules/semver/functions/parse.js +18 -0
  742. package/plugin/node_modules/semver/functions/patch.js +5 -0
  743. package/plugin/node_modules/semver/functions/prerelease.js +8 -0
  744. package/plugin/node_modules/semver/functions/rcompare.js +5 -0
  745. package/plugin/node_modules/semver/functions/rsort.js +5 -0
  746. package/plugin/node_modules/semver/functions/satisfies.js +12 -0
  747. package/plugin/node_modules/semver/functions/sort.js +5 -0
  748. package/plugin/node_modules/semver/functions/valid.js +8 -0
  749. package/plugin/node_modules/semver/index.js +91 -0
  750. package/plugin/node_modules/semver/internal/constants.js +37 -0
  751. package/plugin/node_modules/semver/internal/debug.js +11 -0
  752. package/plugin/node_modules/semver/internal/identifiers.js +25 -0
  753. package/plugin/node_modules/semver/internal/lrucache.js +42 -0
  754. package/plugin/node_modules/semver/internal/parse-options.js +17 -0
  755. package/plugin/node_modules/semver/internal/re.js +223 -0
  756. package/plugin/node_modules/semver/package.json +78 -0
  757. package/plugin/node_modules/semver/preload.js +4 -0
  758. package/plugin/node_modules/semver/range.bnf +16 -0
  759. package/plugin/node_modules/semver/ranges/gtr.js +6 -0
  760. package/plugin/node_modules/semver/ranges/intersects.js +9 -0
  761. package/plugin/node_modules/semver/ranges/ltr.js +6 -0
  762. package/plugin/node_modules/semver/ranges/max-satisfying.js +27 -0
  763. package/plugin/node_modules/semver/ranges/min-satisfying.js +26 -0
  764. package/plugin/node_modules/semver/ranges/min-version.js +63 -0
  765. package/plugin/node_modules/semver/ranges/outside.js +82 -0
  766. package/plugin/node_modules/semver/ranges/simplify.js +49 -0
  767. package/plugin/node_modules/semver/ranges/subset.js +249 -0
  768. package/plugin/node_modules/semver/ranges/to-comparators.js +10 -0
  769. package/plugin/node_modules/semver/ranges/valid.js +13 -0
  770. package/plugin/node_modules/signal-exit/LICENSE.txt +16 -0
  771. package/plugin/node_modules/signal-exit/README.md +39 -0
  772. package/plugin/node_modules/signal-exit/index.js +202 -0
  773. package/plugin/node_modules/signal-exit/package.json +38 -0
  774. package/plugin/node_modules/signal-exit/signals.js +53 -0
  775. package/plugin/node_modules/simple-plist/LICENSE +20 -0
  776. package/plugin/node_modules/simple-plist/README.md +130 -0
  777. package/plugin/node_modules/simple-plist/dist/index.d.ts +24 -0
  778. package/plugin/node_modules/simple-plist/dist/index.js +41 -0
  779. package/plugin/node_modules/simple-plist/dist/parse.d.ts +8 -0
  780. package/plugin/node_modules/simple-plist/dist/parse.js +45 -0
  781. package/plugin/node_modules/simple-plist/dist/readFile.d.ts +4 -0
  782. package/plugin/node_modules/simple-plist/dist/readFile.js +36 -0
  783. package/plugin/node_modules/simple-plist/dist/readFileSync.d.ts +3 -0
  784. package/plugin/node_modules/simple-plist/dist/readFileSync.js +26 -0
  785. package/plugin/node_modules/simple-plist/dist/stringify.d.ts +2 -0
  786. package/plugin/node_modules/simple-plist/dist/stringify.js +21 -0
  787. package/plugin/node_modules/simple-plist/dist/types.d.ts +4 -0
  788. package/plugin/node_modules/simple-plist/dist/types.js +12 -0
  789. package/plugin/node_modules/simple-plist/dist/writeBinaryFile.d.ts +5 -0
  790. package/plugin/node_modules/simple-plist/dist/writeBinaryFile.js +30 -0
  791. package/plugin/node_modules/simple-plist/dist/writeBinaryFileSync.d.ts +4 -0
  792. package/plugin/node_modules/simple-plist/dist/writeBinaryFileSync.js +22 -0
  793. package/plugin/node_modules/simple-plist/dist/writeFile.d.ts +5 -0
  794. package/plugin/node_modules/simple-plist/dist/writeFile.js +30 -0
  795. package/plugin/node_modules/simple-plist/dist/writeFileSync.d.ts +4 -0
  796. package/plugin/node_modules/simple-plist/dist/writeFileSync.js +23 -0
  797. package/plugin/node_modules/simple-plist/package.json +53 -0
  798. package/plugin/node_modules/slash/index.d.ts +25 -0
  799. package/plugin/node_modules/slash/index.js +11 -0
  800. package/plugin/node_modules/slash/license +9 -0
  801. package/plugin/node_modules/slash/package.json +35 -0
  802. package/plugin/node_modules/slash/readme.md +44 -0
  803. package/plugin/node_modules/slugify/CHANGELOG.md +94 -0
  804. package/plugin/node_modules/slugify/LICENSE +21 -0
  805. package/plugin/node_modules/slugify/README.md +98 -0
  806. package/plugin/node_modules/slugify/package.json +42 -0
  807. package/plugin/node_modules/slugify/slugify.d.ts +24 -0
  808. package/plugin/node_modules/slugify/slugify.js +69 -0
  809. package/plugin/node_modules/stream-buffers/.mailmap +2 -0
  810. package/plugin/node_modules/stream-buffers/.travis.yml +28 -0
  811. package/plugin/node_modules/stream-buffers/README.md +157 -0
  812. package/plugin/node_modules/stream-buffers/UNLICENSE +24 -0
  813. package/plugin/node_modules/stream-buffers/coverage/coverage.json +1 -0
  814. package/plugin/node_modules/stream-buffers/coverage/lcov-report/base.css +182 -0
  815. package/plugin/node_modules/stream-buffers/coverage/lcov-report/index.html +73 -0
  816. package/plugin/node_modules/stream-buffers/coverage/lcov-report/lib/constants.js.html +63 -0
  817. package/plugin/node_modules/stream-buffers/coverage/lcov-report/lib/index.html +112 -0
  818. package/plugin/node_modules/stream-buffers/coverage/lcov-report/lib/readable_streambuffer.js.html +453 -0
  819. package/plugin/node_modules/stream-buffers/coverage/lcov-report/lib/streambuffer.js.html +54 -0
  820. package/plugin/node_modules/stream-buffers/coverage/lcov-report/lib/writable_streambuffer.js.html +336 -0
  821. package/plugin/node_modules/stream-buffers/coverage/lcov-report/prettify.css +1 -0
  822. package/plugin/node_modules/stream-buffers/coverage/lcov-report/prettify.js +1 -0
  823. package/plugin/node_modules/stream-buffers/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  824. package/plugin/node_modules/stream-buffers/coverage/lcov-report/sorter.js +156 -0
  825. package/plugin/node_modules/stream-buffers/coverage/lcov.info +305 -0
  826. package/plugin/node_modules/stream-buffers/lib/constants.js +6 -0
  827. package/plugin/node_modules/stream-buffers/lib/readable_streambuffer.js +136 -0
  828. package/plugin/node_modules/stream-buffers/lib/streambuffer.js +3 -0
  829. package/plugin/node_modules/stream-buffers/lib/writable_streambuffer.js +97 -0
  830. package/plugin/node_modules/stream-buffers/package.json +28 -0
  831. package/plugin/node_modules/supports-color/browser.js +5 -0
  832. package/plugin/node_modules/supports-color/index.js +135 -0
  833. package/plugin/node_modules/supports-color/license +9 -0
  834. package/plugin/node_modules/supports-color/package.json +53 -0
  835. package/plugin/node_modules/supports-color/readme.md +76 -0
  836. package/plugin/node_modules/typescript/LICENSE.txt +55 -0
  837. package/plugin/node_modules/typescript/README.md +50 -0
  838. package/plugin/node_modules/typescript/SECURITY.md +41 -0
  839. package/plugin/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
  840. package/plugin/node_modules/typescript/bin/tsc +2 -0
  841. package/plugin/node_modules/typescript/bin/tsserver +2 -0
  842. package/plugin/node_modules/typescript/lib/_tsc.js +133792 -0
  843. package/plugin/node_modules/typescript/lib/_tsserver.js +659 -0
  844. package/plugin/node_modules/typescript/lib/_typingsInstaller.js +222 -0
  845. package/plugin/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
  846. package/plugin/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
  847. package/plugin/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
  848. package/plugin/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
  849. package/plugin/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
  850. package/plugin/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
  851. package/plugin/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
  852. package/plugin/node_modules/typescript/lib/lib.d.ts +22 -0
  853. package/plugin/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
  854. package/plugin/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
  855. package/plugin/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
  856. package/plugin/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
  857. package/plugin/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
  858. package/plugin/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
  859. package/plugin/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
  860. package/plugin/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
  861. package/plugin/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
  862. package/plugin/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
  863. package/plugin/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
  864. package/plugin/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
  865. package/plugin/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
  866. package/plugin/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
  867. package/plugin/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
  868. package/plugin/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
  869. package/plugin/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
  870. package/plugin/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
  871. package/plugin/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
  872. package/plugin/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
  873. package/plugin/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
  874. package/plugin/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
  875. package/plugin/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
  876. package/plugin/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
  877. package/plugin/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
  878. package/plugin/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
  879. package/plugin/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
  880. package/plugin/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
  881. package/plugin/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
  882. package/plugin/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
  883. package/plugin/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
  884. package/plugin/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
  885. package/plugin/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
  886. package/plugin/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
  887. package/plugin/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
  888. package/plugin/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
  889. package/plugin/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
  890. package/plugin/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
  891. package/plugin/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
  892. package/plugin/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
  893. package/plugin/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
  894. package/plugin/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
  895. package/plugin/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
  896. package/plugin/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
  897. package/plugin/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
  898. package/plugin/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
  899. package/plugin/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
  900. package/plugin/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
  901. package/plugin/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
  902. package/plugin/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
  903. package/plugin/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
  904. package/plugin/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
  905. package/plugin/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
  906. package/plugin/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
  907. package/plugin/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
  908. package/plugin/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
  909. package/plugin/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
  910. package/plugin/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
  911. package/plugin/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
  912. package/plugin/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
  913. package/plugin/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
  914. package/plugin/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
  915. package/plugin/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
  916. package/plugin/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
  917. package/plugin/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
  918. package/plugin/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
  919. package/plugin/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
  920. package/plugin/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
  921. package/plugin/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
  922. package/plugin/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
  923. package/plugin/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
  924. package/plugin/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
  925. package/plugin/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
  926. package/plugin/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
  927. package/plugin/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
  928. package/plugin/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
  929. package/plugin/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
  930. package/plugin/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
  931. package/plugin/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
  932. package/plugin/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
  933. package/plugin/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
  934. package/plugin/node_modules/typescript/lib/lib.es6.d.ts +23 -0
  935. package/plugin/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
  936. package/plugin/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
  937. package/plugin/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
  938. package/plugin/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
  939. package/plugin/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
  940. package/plugin/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
  941. package/plugin/node_modules/typescript/lib/lib.esnext.float16.d.ts +443 -0
  942. package/plugin/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
  943. package/plugin/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
  944. package/plugin/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
  945. package/plugin/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
  946. package/plugin/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
  947. package/plugin/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
  948. package/plugin/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
  949. package/plugin/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
  950. package/plugin/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
  951. package/plugin/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
  952. package/plugin/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
  953. package/plugin/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
  954. package/plugin/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
  955. package/plugin/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
  956. package/plugin/node_modules/typescript/lib/tsc.js +8 -0
  957. package/plugin/node_modules/typescript/lib/tsserver.js +8 -0
  958. package/plugin/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
  959. package/plugin/node_modules/typescript/lib/tsserverlibrary.js +21 -0
  960. package/plugin/node_modules/typescript/lib/typesMap.json +497 -0
  961. package/plugin/node_modules/typescript/lib/typescript.d.ts +11438 -0
  962. package/plugin/node_modules/typescript/lib/typescript.js +200253 -0
  963. package/plugin/node_modules/typescript/lib/typingsInstaller.js +8 -0
  964. package/plugin/node_modules/typescript/lib/watchGuard.js +53 -0
  965. package/plugin/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
  966. package/plugin/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
  967. package/plugin/node_modules/typescript/package.json +120 -0
  968. package/plugin/node_modules/undici-types/LICENSE +21 -0
  969. package/plugin/node_modules/undici-types/README.md +6 -0
  970. package/plugin/node_modules/undici-types/agent.d.ts +31 -0
  971. package/plugin/node_modules/undici-types/api.d.ts +43 -0
  972. package/plugin/node_modules/undici-types/balanced-pool.d.ts +29 -0
  973. package/plugin/node_modules/undici-types/cache.d.ts +36 -0
  974. package/plugin/node_modules/undici-types/client.d.ts +108 -0
  975. package/plugin/node_modules/undici-types/connector.d.ts +34 -0
  976. package/plugin/node_modules/undici-types/content-type.d.ts +21 -0
  977. package/plugin/node_modules/undici-types/cookies.d.ts +28 -0
  978. package/plugin/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
  979. package/plugin/node_modules/undici-types/dispatcher.d.ts +256 -0
  980. package/plugin/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
  981. package/plugin/node_modules/undici-types/errors.d.ts +149 -0
  982. package/plugin/node_modules/undici-types/eventsource.d.ts +61 -0
  983. package/plugin/node_modules/undici-types/fetch.d.ts +209 -0
  984. package/plugin/node_modules/undici-types/file.d.ts +39 -0
  985. package/plugin/node_modules/undici-types/filereader.d.ts +54 -0
  986. package/plugin/node_modules/undici-types/formdata.d.ts +108 -0
  987. package/plugin/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  988. package/plugin/node_modules/undici-types/global-origin.d.ts +7 -0
  989. package/plugin/node_modules/undici-types/handlers.d.ts +15 -0
  990. package/plugin/node_modules/undici-types/header.d.ts +4 -0
  991. package/plugin/node_modules/undici-types/index.d.ts +71 -0
  992. package/plugin/node_modules/undici-types/interceptors.d.ts +17 -0
  993. package/plugin/node_modules/undici-types/mock-agent.d.ts +50 -0
  994. package/plugin/node_modules/undici-types/mock-client.d.ts +25 -0
  995. package/plugin/node_modules/undici-types/mock-errors.d.ts +12 -0
  996. package/plugin/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  997. package/plugin/node_modules/undici-types/mock-pool.d.ts +25 -0
  998. package/plugin/node_modules/undici-types/package.json +55 -0
  999. package/plugin/node_modules/undici-types/patch.d.ts +33 -0
  1000. package/plugin/node_modules/undici-types/pool-stats.d.ts +19 -0
  1001. package/plugin/node_modules/undici-types/pool.d.ts +39 -0
  1002. package/plugin/node_modules/undici-types/proxy-agent.d.ts +28 -0
  1003. package/plugin/node_modules/undici-types/readable.d.ts +65 -0
  1004. package/plugin/node_modules/undici-types/retry-agent.d.ts +8 -0
  1005. package/plugin/node_modules/undici-types/retry-handler.d.ts +116 -0
  1006. package/plugin/node_modules/undici-types/util.d.ts +18 -0
  1007. package/plugin/node_modules/undici-types/webidl.d.ts +228 -0
  1008. package/plugin/node_modules/undici-types/websocket.d.ts +150 -0
  1009. package/plugin/node_modules/uuid/CHANGELOG.md +156 -0
  1010. package/plugin/node_modules/uuid/CONTRIBUTING.md +20 -0
  1011. package/plugin/node_modules/uuid/LICENSE.md +21 -0
  1012. package/plugin/node_modules/uuid/README.md +406 -0
  1013. package/plugin/node_modules/uuid/deprecate.js +20 -0
  1014. package/plugin/node_modules/uuid/dist/bin/uuid +2 -0
  1015. package/plugin/node_modules/uuid/dist/bytesToUuid.js +27 -0
  1016. package/plugin/node_modules/uuid/dist/esm-browser/bytesToUuid.js +18 -0
  1017. package/plugin/node_modules/uuid/dist/esm-browser/index.js +4 -0
  1018. package/plugin/node_modules/uuid/dist/esm-browser/md5.js +218 -0
  1019. package/plugin/node_modules/uuid/dist/esm-browser/rng.js +15 -0
  1020. package/plugin/node_modules/uuid/dist/esm-browser/sha1.js +91 -0
  1021. package/plugin/node_modules/uuid/dist/esm-browser/v1.js +95 -0
  1022. package/plugin/node_modules/uuid/dist/esm-browser/v3.js +4 -0
  1023. package/plugin/node_modules/uuid/dist/esm-browser/v35.js +56 -0
  1024. package/plugin/node_modules/uuid/dist/esm-browser/v4.js +27 -0
  1025. package/plugin/node_modules/uuid/dist/esm-browser/v5.js +4 -0
  1026. package/plugin/node_modules/uuid/dist/esm-node/bytesToUuid.js +18 -0
  1027. package/plugin/node_modules/uuid/dist/esm-node/index.js +4 -0
  1028. package/plugin/node_modules/uuid/dist/esm-node/md5.js +13 -0
  1029. package/plugin/node_modules/uuid/dist/esm-node/rng.js +4 -0
  1030. package/plugin/node_modules/uuid/dist/esm-node/sha1.js +13 -0
  1031. package/plugin/node_modules/uuid/dist/esm-node/v1.js +95 -0
  1032. package/plugin/node_modules/uuid/dist/esm-node/v3.js +4 -0
  1033. package/plugin/node_modules/uuid/dist/esm-node/v35.js +56 -0
  1034. package/plugin/node_modules/uuid/dist/esm-node/v4.js +27 -0
  1035. package/plugin/node_modules/uuid/dist/esm-node/v5.js +4 -0
  1036. package/plugin/node_modules/uuid/dist/index.js +39 -0
  1037. package/plugin/node_modules/uuid/dist/md5-browser.js +225 -0
  1038. package/plugin/node_modules/uuid/dist/md5.js +24 -0
  1039. package/plugin/node_modules/uuid/dist/rng-browser.js +23 -0
  1040. package/plugin/node_modules/uuid/dist/rng.js +16 -0
  1041. package/plugin/node_modules/uuid/dist/sha1-browser.js +96 -0
  1042. package/plugin/node_modules/uuid/dist/sha1.js +24 -0
  1043. package/plugin/node_modules/uuid/dist/umd/uuid.min.js +1 -0
  1044. package/plugin/node_modules/uuid/dist/umd/uuidv1.min.js +1 -0
  1045. package/plugin/node_modules/uuid/dist/umd/uuidv3.min.js +1 -0
  1046. package/plugin/node_modules/uuid/dist/umd/uuidv4.min.js +1 -0
  1047. package/plugin/node_modules/uuid/dist/umd/uuidv5.min.js +1 -0
  1048. package/plugin/node_modules/uuid/dist/uuid-bin.js +67 -0
  1049. package/plugin/node_modules/uuid/dist/v1.js +108 -0
  1050. package/plugin/node_modules/uuid/dist/v3.js +17 -0
  1051. package/plugin/node_modules/uuid/dist/v35.js +69 -0
  1052. package/plugin/node_modules/uuid/dist/v4.js +41 -0
  1053. package/plugin/node_modules/uuid/dist/v5.js +17 -0
  1054. package/plugin/node_modules/uuid/package.json +115 -0
  1055. package/plugin/node_modules/uuid/v1.js +8 -0
  1056. package/plugin/node_modules/uuid/v3.js +8 -0
  1057. package/plugin/node_modules/uuid/v4.js +8 -0
  1058. package/plugin/node_modules/uuid/v5.js +8 -0
  1059. package/plugin/node_modules/wrappy/LICENSE +15 -0
  1060. package/plugin/node_modules/wrappy/README.md +36 -0
  1061. package/plugin/node_modules/wrappy/package.json +29 -0
  1062. package/plugin/node_modules/wrappy/wrappy.js +33 -0
  1063. package/plugin/node_modules/write-file-atomic/CHANGELOG.md +25 -0
  1064. package/plugin/node_modules/write-file-atomic/LICENSE +6 -0
  1065. package/plugin/node_modules/write-file-atomic/README.md +56 -0
  1066. package/plugin/node_modules/write-file-atomic/index.js +238 -0
  1067. package/plugin/node_modules/write-file-atomic/package.json +41 -0
  1068. package/plugin/node_modules/xcode/AUTHORS +6 -0
  1069. package/plugin/node_modules/xcode/CONTRIBUTING.md +37 -0
  1070. package/plugin/node_modules/xcode/LICENSE +202 -0
  1071. package/plugin/node_modules/xcode/Makefile +24 -0
  1072. package/plugin/node_modules/xcode/NOTICE +5 -0
  1073. package/plugin/node_modules/xcode/README.md +72 -0
  1074. package/plugin/node_modules/xcode/RELEASENOTES.md +77 -0
  1075. package/plugin/node_modules/xcode/index.js +18 -0
  1076. package/plugin/node_modules/xcode/lib/parseJob.js +32 -0
  1077. package/plugin/node_modules/xcode/lib/parser/pbxproj.js +1904 -0
  1078. package/plugin/node_modules/xcode/lib/parser/pbxproj.pegjs +280 -0
  1079. package/plugin/node_modules/xcode/lib/pbxFile.js +233 -0
  1080. package/plugin/node_modules/xcode/lib/pbxProject.js +2201 -0
  1081. package/plugin/node_modules/xcode/lib/pbxWriter.js +309 -0
  1082. package/plugin/node_modules/xcode/package.json +61 -0
  1083. package/plugin/node_modules/xml2js/LICENSE +19 -0
  1084. package/plugin/node_modules/xml2js/README.md +507 -0
  1085. package/plugin/node_modules/xml2js/lib/bom.js +12 -0
  1086. package/plugin/node_modules/xml2js/lib/builder.js +127 -0
  1087. package/plugin/node_modules/xml2js/lib/defaults.js +72 -0
  1088. package/plugin/node_modules/xml2js/lib/parser.js +396 -0
  1089. package/plugin/node_modules/xml2js/lib/processors.js +34 -0
  1090. package/plugin/node_modules/xml2js/lib/xml2js.js +39 -0
  1091. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/CHANGELOG.md +470 -0
  1092. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/LICENSE +21 -0
  1093. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/README.md +86 -0
  1094. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/appveyor.yml +20 -0
  1095. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/Derivation.js +10 -0
  1096. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/DocumentPosition.js +12 -0
  1097. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/NodeType.js +23 -0
  1098. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/OperationType.js +11 -0
  1099. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/Utility.js +83 -0
  1100. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/WriterState.js +10 -0
  1101. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLAttribute.js +108 -0
  1102. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCData.js +36 -0
  1103. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCharacterData.js +79 -0
  1104. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLComment.js +36 -0
  1105. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +64 -0
  1106. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +16 -0
  1107. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +32 -0
  1108. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMStringList.js +28 -0
  1109. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDAttList.js +55 -0
  1110. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDElement.js +38 -0
  1111. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDEntity.js +97 -0
  1112. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDNotation.js +52 -0
  1113. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDeclaration.js +43 -0
  1114. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocType.js +186 -0
  1115. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocument.js +242 -0
  1116. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocumentCB.js +528 -0
  1117. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +24 -0
  1118. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDummy.js +31 -0
  1119. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLElement.js +298 -0
  1120. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +58 -0
  1121. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNode.js +785 -0
  1122. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNodeFilter.js +48 -0
  1123. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNodeList.js +28 -0
  1124. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +49 -0
  1125. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLRaw.js +35 -0
  1126. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStreamWriter.js +176 -0
  1127. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringWriter.js +35 -0
  1128. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringifier.js +240 -0
  1129. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLText.js +69 -0
  1130. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLTypeInfo.js +21 -0
  1131. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +16 -0
  1132. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/XMLWriterBase.js +428 -0
  1133. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/lib/index.js +65 -0
  1134. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/package.json +39 -0
  1135. package/plugin/node_modules/xml2js/node_modules/xmlbuilder/typings/index.d.ts +153 -0
  1136. package/plugin/node_modules/xml2js/package.json +93 -0
  1137. package/plugin/node_modules/xmlbuilder/.nycrc +6 -0
  1138. package/plugin/node_modules/xmlbuilder/CHANGELOG.md +568 -0
  1139. package/plugin/node_modules/xmlbuilder/LICENSE +21 -0
  1140. package/plugin/node_modules/xmlbuilder/README.md +103 -0
  1141. package/plugin/node_modules/xmlbuilder/lib/Derivation.js +10 -0
  1142. package/plugin/node_modules/xmlbuilder/lib/DocumentPosition.js +12 -0
  1143. package/plugin/node_modules/xmlbuilder/lib/NodeType.js +25 -0
  1144. package/plugin/node_modules/xmlbuilder/lib/OperationType.js +11 -0
  1145. package/plugin/node_modules/xmlbuilder/lib/Utility.js +88 -0
  1146. package/plugin/node_modules/xmlbuilder/lib/WriterState.js +10 -0
  1147. package/plugin/node_modules/xmlbuilder/lib/XMLAttribute.js +130 -0
  1148. package/plugin/node_modules/xmlbuilder/lib/XMLCData.js +41 -0
  1149. package/plugin/node_modules/xmlbuilder/lib/XMLCharacterData.js +86 -0
  1150. package/plugin/node_modules/xmlbuilder/lib/XMLComment.js +41 -0
  1151. package/plugin/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +80 -0
  1152. package/plugin/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +20 -0
  1153. package/plugin/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +55 -0
  1154. package/plugin/node_modules/xmlbuilder/lib/XMLDOMStringList.js +44 -0
  1155. package/plugin/node_modules/xmlbuilder/lib/XMLDTDAttList.js +66 -0
  1156. package/plugin/node_modules/xmlbuilder/lib/XMLDTDElement.js +44 -0
  1157. package/plugin/node_modules/xmlbuilder/lib/XMLDTDEntity.js +115 -0
  1158. package/plugin/node_modules/xmlbuilder/lib/XMLDTDNotation.js +66 -0
  1159. package/plugin/node_modules/xmlbuilder/lib/XMLDeclaration.js +51 -0
  1160. package/plugin/node_modules/xmlbuilder/lib/XMLDocType.js +235 -0
  1161. package/plugin/node_modules/xmlbuilder/lib/XMLDocument.js +282 -0
  1162. package/plugin/node_modules/xmlbuilder/lib/XMLDocumentCB.js +650 -0
  1163. package/plugin/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +21 -0
  1164. package/plugin/node_modules/xmlbuilder/lib/XMLDummy.js +39 -0
  1165. package/plugin/node_modules/xmlbuilder/lib/XMLElement.js +334 -0
  1166. package/plugin/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +77 -0
  1167. package/plugin/node_modules/xmlbuilder/lib/XMLNode.js +999 -0
  1168. package/plugin/node_modules/xmlbuilder/lib/XMLNodeFilter.js +51 -0
  1169. package/plugin/node_modules/xmlbuilder/lib/XMLNodeList.js +45 -0
  1170. package/plugin/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +56 -0
  1171. package/plugin/node_modules/xmlbuilder/lib/XMLRaw.js +40 -0
  1172. package/plugin/node_modules/xmlbuilder/lib/XMLStreamWriter.js +209 -0
  1173. package/plugin/node_modules/xmlbuilder/lib/XMLStringWriter.js +40 -0
  1174. package/plugin/node_modules/xmlbuilder/lib/XMLStringifier.js +287 -0
  1175. package/plugin/node_modules/xmlbuilder/lib/XMLText.js +82 -0
  1176. package/plugin/node_modules/xmlbuilder/lib/XMLTypeInfo.js +23 -0
  1177. package/plugin/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +27 -0
  1178. package/plugin/node_modules/xmlbuilder/lib/XMLWriterBase.js +485 -0
  1179. package/plugin/node_modules/xmlbuilder/lib/index.js +120 -0
  1180. package/plugin/node_modules/xmlbuilder/package.json +51 -0
  1181. package/plugin/node_modules/xmlbuilder/perf/basic/escaping.coffee +244 -0
  1182. package/plugin/node_modules/xmlbuilder/perf/basic/object.coffee +21 -0
  1183. package/plugin/node_modules/xmlbuilder/perf/index.coffee +161 -0
  1184. package/plugin/node_modules/xmlbuilder/perf/perf.list +11 -0
  1185. package/plugin/node_modules/xmlbuilder/typings/index.d.ts +1761 -0
  1186. package/plugin/node_modules/yocto-queue/index.d.ts +56 -0
  1187. package/plugin/node_modules/yocto-queue/index.js +68 -0
  1188. package/plugin/node_modules/yocto-queue/license +9 -0
  1189. package/plugin/node_modules/yocto-queue/package.json +43 -0
  1190. package/plugin/node_modules/yocto-queue/readme.md +64 -0
  1191. package/plugin/package-lock.json +763 -0
  1192. package/plugin/package.json +16 -0
  1193. package/plugin/src/withVolumeKeyIntercept.ts +184 -0
  1194. package/plugin/tsconfig.json +18 -0
  1195. package/plugin/tsconfig.tsbuildinfo +1 -0
  1196. package/src/ReactNativeKookitModule.ts +20 -0
@@ -0,0 +1,2201 @@
1
+ /**
2
+ Licensed to the Apache Software Foundation (ASF) under one
3
+ or more contributor license agreements. See the NOTICE file
4
+ distributed with this work for additional information
5
+ regarding copyright ownership. The ASF licenses this file
6
+ to you under the Apache License, Version 2.0 (the
7
+ 'License'); you may not use this file except in compliance
8
+ with the License. You may obtain a copy of the License at
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+ Unless required by applicable law or agreed to in writing,
11
+ software distributed under the License is distributed on an
12
+ 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
+ KIND, either express or implied. See the License for the
14
+ specific language governing permissions and limitations
15
+ under the License.
16
+ */
17
+
18
+ var util = require('util'),
19
+ f = util.format,
20
+ EventEmitter = require('events').EventEmitter,
21
+ path = require('path'),
22
+ uuid = require('uuid'),
23
+ fork = require('child_process').fork,
24
+ pbxWriter = require('./pbxWriter'),
25
+ pbxFile = require('./pbxFile'),
26
+ fs = require('fs'),
27
+ parser = require('./parser/pbxproj'),
28
+ plist = require('simple-plist'),
29
+ COMMENT_KEY = /_comment$/
30
+
31
+ function pbxProject(filename) {
32
+ if (!(this instanceof pbxProject))
33
+ return new pbxProject(filename);
34
+
35
+ this.filepath = path.resolve(filename)
36
+ }
37
+
38
+ util.inherits(pbxProject, EventEmitter)
39
+
40
+ pbxProject.prototype.parse = function(cb) {
41
+ var worker = fork(__dirname + '/parseJob.js', [this.filepath])
42
+
43
+ worker.on('message', function(msg) {
44
+ if (msg.name == 'SyntaxError' || msg.code) {
45
+ this.emit('error', msg);
46
+ } else {
47
+ this.hash = msg;
48
+ this.emit('end', null, msg)
49
+ }
50
+ }.bind(this));
51
+
52
+ if (cb) {
53
+ this.on('error', cb);
54
+ this.on('end', cb);
55
+ }
56
+
57
+ return this;
58
+ }
59
+
60
+ pbxProject.prototype.parseSync = function() {
61
+ var file_contents = fs.readFileSync(this.filepath, 'utf-8');
62
+
63
+ this.hash = parser.parse(file_contents);
64
+ return this;
65
+ }
66
+
67
+ pbxProject.prototype.writeSync = function(options) {
68
+ this.writer = new pbxWriter(this.hash, options);
69
+ return this.writer.writeSync();
70
+ }
71
+
72
+ pbxProject.prototype.allUuids = function() {
73
+ var sections = this.hash.project.objects,
74
+ uuids = [],
75
+ section;
76
+
77
+ for (key in sections) {
78
+ section = sections[key]
79
+ uuids = uuids.concat(Object.keys(section))
80
+ }
81
+
82
+ uuids = uuids.filter(function(str) {
83
+ return !COMMENT_KEY.test(str) && str.length == 24;
84
+ });
85
+
86
+ return uuids;
87
+ }
88
+
89
+ pbxProject.prototype.generateUuid = function() {
90
+ var id = uuid.v4()
91
+ .replace(/-/g, '')
92
+ .substr(0, 24)
93
+ .toUpperCase()
94
+
95
+ if (this.allUuids().indexOf(id) >= 0) {
96
+ return this.generateUuid();
97
+ } else {
98
+ return id;
99
+ }
100
+ }
101
+
102
+ pbxProject.prototype.addPluginFile = function(path, opt) {
103
+ var file = new pbxFile(path, opt);
104
+
105
+ file.plugin = true; // durr
106
+ correctForPluginsPath(file, this);
107
+
108
+ // null is better for early errors
109
+ if (this.hasFile(file.path)) return null;
110
+
111
+ file.fileRef = this.generateUuid();
112
+
113
+ this.addToPbxFileReferenceSection(file); // PBXFileReference
114
+ this.addToPluginsPbxGroup(file); // PBXGroup
115
+
116
+ return file;
117
+ }
118
+
119
+ pbxProject.prototype.removePluginFile = function(path, opt) {
120
+ var file = new pbxFile(path, opt);
121
+ correctForPluginsPath(file, this);
122
+
123
+ this.removeFromPbxFileReferenceSection(file); // PBXFileReference
124
+ this.removeFromPluginsPbxGroup(file); // PBXGroup
125
+
126
+ return file;
127
+ }
128
+
129
+ pbxProject.prototype.addProductFile = function(targetPath, opt) {
130
+ var file = new pbxFile(targetPath, opt);
131
+
132
+ file.includeInIndex = 0;
133
+ file.fileRef = this.generateUuid();
134
+ file.target = opt ? opt.target : undefined;
135
+ file.group = opt ? opt.group : undefined;
136
+ file.uuid = this.generateUuid();
137
+ file.path = file.basename;
138
+
139
+ this.addToPbxFileReferenceSection(file);
140
+ this.addToProductsPbxGroup(file); // PBXGroup
141
+
142
+ return file;
143
+ }
144
+
145
+ pbxProject.prototype.removeProductFile = function(path, opt) {
146
+ var file = new pbxFile(path, opt);
147
+
148
+ this.removeFromProductsPbxGroup(file); // PBXGroup
149
+
150
+ return file;
151
+ }
152
+
153
+ /**
154
+ *
155
+ * @param path {String}
156
+ * @param opt {Object} see pbxFile for avail options
157
+ * @param group {String} group key
158
+ * @returns {Object} file; see pbxFile
159
+ */
160
+ pbxProject.prototype.addSourceFile = function (path, opt, group) {
161
+ var file;
162
+ if (group) {
163
+ file = this.addFile(path, group, opt);
164
+ }
165
+ else {
166
+ file = this.addPluginFile(path, opt);
167
+ }
168
+
169
+ if (!file) return false;
170
+
171
+ file.target = opt ? opt.target : undefined;
172
+ file.uuid = this.generateUuid();
173
+
174
+ this.addToPbxBuildFileSection(file); // PBXBuildFile
175
+ this.addToPbxSourcesBuildPhase(file); // PBXSourcesBuildPhase
176
+
177
+ return file;
178
+ }
179
+
180
+ /**
181
+ *
182
+ * @param path {String}
183
+ * @param opt {Object} see pbxFile for avail options
184
+ * @param group {String} group key
185
+ * @returns {Object} file; see pbxFile
186
+ */
187
+ pbxProject.prototype.removeSourceFile = function (path, opt, group) {
188
+ var file;
189
+ if (group) {
190
+ file = this.removeFile(path, group, opt);
191
+ }
192
+ else {
193
+ file = this.removePluginFile(path, opt);
194
+ }
195
+ file.target = opt ? opt.target : undefined;
196
+ this.removeFromPbxBuildFileSection(file); // PBXBuildFile
197
+ this.removeFromPbxSourcesBuildPhase(file); // PBXSourcesBuildPhase
198
+
199
+ return file;
200
+ }
201
+
202
+ /**
203
+ *
204
+ * @param path {String}
205
+ * @param opt {Object} see pbxFile for avail options
206
+ * @param group {String} group key
207
+ * @returns {Object} file; see pbxFile
208
+ */
209
+ pbxProject.prototype.addHeaderFile = function (path, opt, group) {
210
+ if (group) {
211
+ return this.addFile(path, group, opt);
212
+ }
213
+ else {
214
+ return this.addPluginFile(path, opt);
215
+ }
216
+ }
217
+
218
+ /**
219
+ *
220
+ * @param path {String}
221
+ * @param opt {Object} see pbxFile for avail options
222
+ * @param group {String} group key
223
+ * @returns {Object} file; see pbxFile
224
+ */
225
+ pbxProject.prototype.removeHeaderFile = function (path, opt, group) {
226
+ if (group) {
227
+ return this.removeFile(path, group, opt);
228
+ }
229
+ else {
230
+ return this.removePluginFile(path, opt);
231
+ }
232
+ }
233
+
234
+ /**
235
+ *
236
+ * @param path {String}
237
+ * @param opt {Object} see pbxFile for avail options
238
+ * @param group {String} group key
239
+ * @returns {Object} file; see pbxFile
240
+ */
241
+ pbxProject.prototype.addResourceFile = function(path, opt, group) {
242
+ opt = opt || {};
243
+
244
+ var file;
245
+
246
+ if (opt.plugin) {
247
+ file = this.addPluginFile(path, opt);
248
+ if (!file) return false;
249
+ } else {
250
+ file = new pbxFile(path, opt);
251
+ if (this.hasFile(file.path)) return false;
252
+ }
253
+
254
+ file.uuid = this.generateUuid();
255
+ file.target = opt ? opt.target : undefined;
256
+
257
+ if (!opt.plugin) {
258
+ correctForResourcesPath(file, this);
259
+ file.fileRef = this.generateUuid();
260
+ }
261
+
262
+ if (!opt.variantGroup) {
263
+ this.addToPbxBuildFileSection(file); // PBXBuildFile
264
+ this.addToPbxResourcesBuildPhase(file); // PBXResourcesBuildPhase
265
+ }
266
+
267
+ if (!opt.plugin) {
268
+ this.addToPbxFileReferenceSection(file); // PBXFileReference
269
+ if (group) {
270
+ if (this.getPBXGroupByKey(group)) {
271
+ this.addToPbxGroup(file, group); //Group other than Resources (i.e. 'splash')
272
+ }
273
+ else if (this.getPBXVariantGroupByKey(group)) {
274
+ this.addToPbxVariantGroup(file, group); // PBXVariantGroup
275
+ }
276
+ }
277
+ else {
278
+ this.addToResourcesPbxGroup(file); // PBXGroup
279
+ }
280
+
281
+ }
282
+
283
+ return file;
284
+ }
285
+
286
+ /**
287
+ *
288
+ * @param path {String}
289
+ * @param opt {Object} see pbxFile for avail options
290
+ * @param group {String} group key
291
+ * @returns {Object} file; see pbxFile
292
+ */
293
+ pbxProject.prototype.removeResourceFile = function(path, opt, group) {
294
+ var file = new pbxFile(path, opt);
295
+ file.target = opt ? opt.target : undefined;
296
+
297
+ correctForResourcesPath(file, this);
298
+
299
+ this.removeFromPbxBuildFileSection(file); // PBXBuildFile
300
+ this.removeFromPbxFileReferenceSection(file); // PBXFileReference
301
+ if (group) {
302
+ if (this.getPBXGroupByKey(group)) {
303
+ this.removeFromPbxGroup(file, group); //Group other than Resources (i.e. 'splash')
304
+ }
305
+ else if (this.getPBXVariantGroupByKey(group)) {
306
+ this.removeFromPbxVariantGroup(file, group); // PBXVariantGroup
307
+ }
308
+ }
309
+ else {
310
+ this.removeFromResourcesPbxGroup(file); // PBXGroup
311
+ }
312
+ this.removeFromPbxResourcesBuildPhase(file); // PBXResourcesBuildPhase
313
+
314
+ return file;
315
+ }
316
+
317
+ pbxProject.prototype.addFramework = function(fpath, opt) {
318
+ var customFramework = opt && opt.customFramework == true;
319
+ var link = !opt || (opt.link == undefined || opt.link); //defaults to true if not specified
320
+ var embed = opt && opt.embed; //defaults to false if not specified
321
+
322
+ if (opt) {
323
+ delete opt.embed;
324
+ }
325
+
326
+ var file = new pbxFile(fpath, opt);
327
+
328
+ file.uuid = this.generateUuid();
329
+ file.fileRef = this.generateUuid();
330
+ file.target = opt ? opt.target : undefined;
331
+
332
+ if (this.hasFile(file.path)) return false;
333
+
334
+ this.addToPbxBuildFileSection(file); // PBXBuildFile
335
+ this.addToPbxFileReferenceSection(file); // PBXFileReference
336
+ this.addToFrameworksPbxGroup(file); // PBXGroup
337
+
338
+ if (link) {
339
+ this.addToPbxFrameworksBuildPhase(file); // PBXFrameworksBuildPhase
340
+ }
341
+
342
+ if (customFramework) {
343
+ this.addToFrameworkSearchPaths(file);
344
+
345
+ if (embed) {
346
+ opt.embed = embed;
347
+ var embeddedFile = new pbxFile(fpath, opt);
348
+
349
+ embeddedFile.uuid = this.generateUuid();
350
+ embeddedFile.fileRef = file.fileRef;
351
+
352
+ //keeping a separate PBXBuildFile entry for Embed Frameworks
353
+ this.addToPbxBuildFileSection(embeddedFile); // PBXBuildFile
354
+
355
+ this.addToPbxEmbedFrameworksBuildPhase(embeddedFile); // PBXCopyFilesBuildPhase
356
+
357
+ return embeddedFile;
358
+ }
359
+ }
360
+
361
+ return file;
362
+ }
363
+
364
+ pbxProject.prototype.removeFramework = function(fpath, opt) {
365
+ var embed = opt && opt.embed;
366
+
367
+ if (opt) {
368
+ delete opt.embed;
369
+ }
370
+
371
+ var file = new pbxFile(fpath, opt);
372
+ file.target = opt ? opt.target : undefined;
373
+
374
+ this.removeFromPbxBuildFileSection(file); // PBXBuildFile
375
+ this.removeFromPbxFileReferenceSection(file); // PBXFileReference
376
+ this.removeFromFrameworksPbxGroup(file); // PBXGroup
377
+ this.removeFromPbxFrameworksBuildPhase(file); // PBXFrameworksBuildPhase
378
+
379
+ if (opt && opt.customFramework) {
380
+ this.removeFromFrameworkSearchPaths(file);
381
+ }
382
+
383
+ opt = opt || {};
384
+ opt.embed = true;
385
+ var embeddedFile = new pbxFile(fpath, opt);
386
+
387
+ embeddedFile.fileRef = file.fileRef;
388
+
389
+ this.removeFromPbxBuildFileSection(embeddedFile); // PBXBuildFile
390
+ this.removeFromPbxEmbedFrameworksBuildPhase(embeddedFile); // PBXCopyFilesBuildPhase
391
+
392
+ return file;
393
+ }
394
+
395
+
396
+ pbxProject.prototype.addCopyfile = function(fpath, opt) {
397
+ var file = new pbxFile(fpath, opt);
398
+
399
+ // catch duplicates
400
+ if (this.hasFile(file.path)) {
401
+ file = this.hasFile(file.path);
402
+ }
403
+
404
+ file.fileRef = file.uuid = this.generateUuid();
405
+ file.target = opt ? opt.target : undefined;
406
+
407
+ this.addToPbxBuildFileSection(file); // PBXBuildFile
408
+ this.addToPbxFileReferenceSection(file); // PBXFileReference
409
+ this.addToPbxCopyfilesBuildPhase(file); // PBXCopyFilesBuildPhase
410
+
411
+ return file;
412
+ }
413
+
414
+ pbxProject.prototype.pbxCopyfilesBuildPhaseObj = function(target) {
415
+ return this.buildPhaseObject('PBXCopyFilesBuildPhase', 'Copy Files', target);
416
+ }
417
+
418
+ pbxProject.prototype.addToPbxCopyfilesBuildPhase = function(file) {
419
+ var sources = this.buildPhaseObject('PBXCopyFilesBuildPhase', 'Copy Files', file.target);
420
+ sources.files.push(pbxBuildPhaseObj(file));
421
+ }
422
+
423
+ pbxProject.prototype.removeCopyfile = function(fpath, opt) {
424
+ var file = new pbxFile(fpath, opt);
425
+ file.target = opt ? opt.target : undefined;
426
+
427
+ this.removeFromPbxBuildFileSection(file); // PBXBuildFile
428
+ this.removeFromPbxFileReferenceSection(file); // PBXFileReference
429
+ this.removeFromPbxCopyfilesBuildPhase(file); // PBXFrameworksBuildPhase
430
+
431
+ return file;
432
+ }
433
+
434
+ pbxProject.prototype.removeFromPbxCopyfilesBuildPhase = function(file) {
435
+ var sources = this.pbxCopyfilesBuildPhaseObj(file.target);
436
+ for (i in sources.files) {
437
+ if (sources.files[i].comment == longComment(file)) {
438
+ sources.files.splice(i, 1);
439
+ break;
440
+ }
441
+ }
442
+ }
443
+
444
+ pbxProject.prototype.addStaticLibrary = function(path, opt) {
445
+ opt = opt || {};
446
+
447
+ var file;
448
+
449
+ if (opt.plugin) {
450
+ file = this.addPluginFile(path, opt);
451
+ if (!file) return false;
452
+ } else {
453
+ file = new pbxFile(path, opt);
454
+ if (this.hasFile(file.path)) return false;
455
+ }
456
+
457
+ file.uuid = this.generateUuid();
458
+ file.target = opt ? opt.target : undefined;
459
+
460
+ if (!opt.plugin) {
461
+ file.fileRef = this.generateUuid();
462
+ this.addToPbxFileReferenceSection(file); // PBXFileReference
463
+ }
464
+
465
+ this.addToPbxBuildFileSection(file); // PBXBuildFile
466
+ this.addToPbxFrameworksBuildPhase(file); // PBXFrameworksBuildPhase
467
+ this.addToLibrarySearchPaths(file); // make sure it gets built!
468
+
469
+ return file;
470
+ }
471
+
472
+ // helper addition functions
473
+ pbxProject.prototype.addToPbxBuildFileSection = function(file) {
474
+ var commentKey = f("%s_comment", file.uuid);
475
+
476
+ this.pbxBuildFileSection()[file.uuid] = pbxBuildFileObj(file);
477
+ this.pbxBuildFileSection()[commentKey] = pbxBuildFileComment(file);
478
+ }
479
+
480
+ pbxProject.prototype.removeFromPbxBuildFileSection = function(file) {
481
+ var uuid;
482
+
483
+ for (uuid in this.pbxBuildFileSection()) {
484
+ if (this.pbxBuildFileSection()[uuid].fileRef_comment == file.basename) {
485
+ file.uuid = uuid;
486
+ delete this.pbxBuildFileSection()[uuid];
487
+
488
+ var commentKey = f("%s_comment", uuid);
489
+ delete this.pbxBuildFileSection()[commentKey];
490
+ }
491
+ }
492
+ }
493
+
494
+ pbxProject.prototype.addPbxGroup = function(filePathsArray, name, path, sourceTree) {
495
+ var groups = this.hash.project.objects['PBXGroup'],
496
+ pbxGroupUuid = this.generateUuid(),
497
+ commentKey = f("%s_comment", pbxGroupUuid),
498
+ pbxGroup = {
499
+ isa: 'PBXGroup',
500
+ children: [],
501
+ name: name,
502
+ path: path,
503
+ sourceTree: sourceTree ? sourceTree : '"<group>"'
504
+ },
505
+ fileReferenceSection = this.pbxFileReferenceSection(),
506
+ filePathToReference = {};
507
+
508
+ for (var key in fileReferenceSection) {
509
+ // only look for comments
510
+ if (!COMMENT_KEY.test(key)) continue;
511
+
512
+ var fileReferenceKey = key.split(COMMENT_KEY)[0],
513
+ fileReference = fileReferenceSection[fileReferenceKey];
514
+
515
+ filePathToReference[fileReference.path] = { fileRef: fileReferenceKey, basename: fileReferenceSection[key] };
516
+ }
517
+
518
+ for (var index = 0; index < filePathsArray.length; index++) {
519
+ var filePath = filePathsArray[index],
520
+ filePathQuoted = "\"" + filePath + "\"";
521
+ if (filePathToReference[filePath]) {
522
+ pbxGroup.children.push(pbxGroupChild(filePathToReference[filePath]));
523
+ continue;
524
+ } else if (filePathToReference[filePathQuoted]) {
525
+ pbxGroup.children.push(pbxGroupChild(filePathToReference[filePathQuoted]));
526
+ continue;
527
+ }
528
+
529
+ var file = new pbxFile(filePath);
530
+ file.uuid = this.generateUuid();
531
+ file.fileRef = this.generateUuid();
532
+ this.addToPbxFileReferenceSection(file); // PBXFileReference
533
+ this.addToPbxBuildFileSection(file); // PBXBuildFile
534
+ pbxGroup.children.push(pbxGroupChild(file));
535
+ }
536
+
537
+ if (groups) {
538
+ groups[pbxGroupUuid] = pbxGroup;
539
+ groups[commentKey] = name;
540
+ }
541
+
542
+ return { uuid: pbxGroupUuid, pbxGroup: pbxGroup };
543
+ }
544
+
545
+ pbxProject.prototype.removePbxGroup = function (groupName) {
546
+ var section = this.hash.project.objects['PBXGroup'],
547
+ key, itemKey;
548
+
549
+ for (key in section) {
550
+ // only look for comments
551
+ if (!COMMENT_KEY.test(key)) continue;
552
+
553
+ if (section[key] == groupName) {
554
+ itemKey = key.split(COMMENT_KEY)[0];
555
+ delete section[itemKey];
556
+ }
557
+ }
558
+ }
559
+
560
+ pbxProject.prototype.addToPbxProjectSection = function(target) {
561
+
562
+ var newTarget = {
563
+ value: target.uuid,
564
+ comment: pbxNativeTargetComment(target.pbxNativeTarget)
565
+ };
566
+
567
+ this.pbxProjectSection()[this.getFirstProject()['uuid']]['targets'].push(newTarget);
568
+ }
569
+
570
+ pbxProject.prototype.addToPbxNativeTargetSection = function(target) {
571
+ var commentKey = f("%s_comment", target.uuid);
572
+
573
+ this.pbxNativeTargetSection()[target.uuid] = target.pbxNativeTarget;
574
+ this.pbxNativeTargetSection()[commentKey] = target.pbxNativeTarget.name;
575
+ }
576
+
577
+ pbxProject.prototype.addToPbxFileReferenceSection = function(file) {
578
+ var commentKey = f("%s_comment", file.fileRef);
579
+
580
+ this.pbxFileReferenceSection()[file.fileRef] = pbxFileReferenceObj(file);
581
+ this.pbxFileReferenceSection()[commentKey] = pbxFileReferenceComment(file);
582
+ }
583
+
584
+ pbxProject.prototype.removeFromPbxFileReferenceSection = function(file) {
585
+
586
+ var i;
587
+ var refObj = pbxFileReferenceObj(file);
588
+ for (i in this.pbxFileReferenceSection()) {
589
+ if (this.pbxFileReferenceSection()[i].name == refObj.name ||
590
+ ('"' + this.pbxFileReferenceSection()[i].name + '"') == refObj.name ||
591
+ this.pbxFileReferenceSection()[i].path == refObj.path ||
592
+ ('"' + this.pbxFileReferenceSection()[i].path + '"') == refObj.path) {
593
+ file.fileRef = file.uuid = i;
594
+ delete this.pbxFileReferenceSection()[i];
595
+ break;
596
+ }
597
+ }
598
+ var commentKey = f("%s_comment", file.fileRef);
599
+ if (this.pbxFileReferenceSection()[commentKey] != undefined) {
600
+ delete this.pbxFileReferenceSection()[commentKey];
601
+ }
602
+
603
+ return file;
604
+ }
605
+
606
+ pbxProject.prototype.addToXcVersionGroupSection = function(file) {
607
+ if (!file.models || !file.currentModel) {
608
+ throw new Error("Cannot create a XCVersionGroup section from not a data model document file");
609
+ }
610
+
611
+ var commentKey = f("%s_comment", file.fileRef);
612
+
613
+ if (!this.xcVersionGroupSection()[file.fileRef]) {
614
+ this.xcVersionGroupSection()[file.fileRef] = {
615
+ isa: 'XCVersionGroup',
616
+ children: file.models.map(function (el) { return el.fileRef; }),
617
+ currentVersion: file.currentModel.fileRef,
618
+ name: path.basename(file.path),
619
+ path: file.path,
620
+ sourceTree: '"<group>"',
621
+ versionGroupType: 'wrapper.xcdatamodel'
622
+ };
623
+ this.xcVersionGroupSection()[commentKey] = path.basename(file.path);
624
+ }
625
+ }
626
+
627
+ pbxProject.prototype.addToPluginsPbxGroup = function(file) {
628
+ var pluginsGroup = this.pbxGroupByName('Plugins');
629
+ if (!pluginsGroup) {
630
+ this.addPbxGroup([file.path], 'Plugins');
631
+ } else {
632
+ pluginsGroup.children.push(pbxGroupChild(file));
633
+ }
634
+ }
635
+
636
+ pbxProject.prototype.removeFromPluginsPbxGroup = function(file) {
637
+ if (!this.pbxGroupByName('Plugins')) {
638
+ return null;
639
+ }
640
+ var pluginsGroupChildren = this.pbxGroupByName('Plugins').children, i;
641
+ for (i in pluginsGroupChildren) {
642
+ if (pbxGroupChild(file).value == pluginsGroupChildren[i].value &&
643
+ pbxGroupChild(file).comment == pluginsGroupChildren[i].comment) {
644
+ pluginsGroupChildren.splice(i, 1);
645
+ break;
646
+ }
647
+ }
648
+ }
649
+
650
+ pbxProject.prototype.addToResourcesPbxGroup = function(file) {
651
+ var pluginsGroup = this.pbxGroupByName('Resources');
652
+ if (!pluginsGroup) {
653
+ this.addPbxGroup([file.path], 'Resources');
654
+ } else {
655
+ pluginsGroup.children.push(pbxGroupChild(file));
656
+ }
657
+ }
658
+
659
+ pbxProject.prototype.removeFromResourcesPbxGroup = function(file) {
660
+ if (!this.pbxGroupByName('Resources')) {
661
+ return null;
662
+ }
663
+ var pluginsGroupChildren = this.pbxGroupByName('Resources').children, i;
664
+ for (i in pluginsGroupChildren) {
665
+ if (pbxGroupChild(file).value == pluginsGroupChildren[i].value &&
666
+ pbxGroupChild(file).comment == pluginsGroupChildren[i].comment) {
667
+ pluginsGroupChildren.splice(i, 1);
668
+ break;
669
+ }
670
+ }
671
+ }
672
+
673
+ pbxProject.prototype.addToFrameworksPbxGroup = function(file) {
674
+ var pluginsGroup = this.pbxGroupByName('Frameworks');
675
+ if (!pluginsGroup) {
676
+ this.addPbxGroup([file.path], 'Frameworks');
677
+ } else {
678
+ pluginsGroup.children.push(pbxGroupChild(file));
679
+ }
680
+ }
681
+
682
+ pbxProject.prototype.removeFromFrameworksPbxGroup = function(file) {
683
+ if (!this.pbxGroupByName('Frameworks')) {
684
+ return null;
685
+ }
686
+ var pluginsGroupChildren = this.pbxGroupByName('Frameworks').children;
687
+
688
+ for (i in pluginsGroupChildren) {
689
+ if (pbxGroupChild(file).value == pluginsGroupChildren[i].value &&
690
+ pbxGroupChild(file).comment == pluginsGroupChildren[i].comment) {
691
+ pluginsGroupChildren.splice(i, 1);
692
+ break;
693
+ }
694
+ }
695
+ }
696
+
697
+ pbxProject.prototype.addToPbxEmbedFrameworksBuildPhase = function (file) {
698
+ var sources = this.pbxEmbedFrameworksBuildPhaseObj(file.target);
699
+ if (sources) {
700
+ sources.files.push(pbxBuildPhaseObj(file));
701
+ }
702
+ }
703
+
704
+ pbxProject.prototype.removeFromPbxEmbedFrameworksBuildPhase = function (file) {
705
+ var sources = this.pbxEmbedFrameworksBuildPhaseObj(file.target);
706
+ if (sources) {
707
+ var files = [];
708
+ for (i in sources.files) {
709
+ if (sources.files[i].comment != longComment(file)) {
710
+ files.push(sources.files[i]);
711
+ }
712
+ }
713
+ sources.files = files;
714
+ }
715
+ }
716
+
717
+ pbxProject.prototype.addToProductsPbxGroup = function(file) {
718
+ var productsGroup = this.pbxGroupByName('Products');
719
+ if (!productsGroup) {
720
+ this.addPbxGroup([file.path], 'Products');
721
+ } else {
722
+ productsGroup.children.push(pbxGroupChild(file));
723
+ }
724
+ }
725
+
726
+ pbxProject.prototype.removeFromProductsPbxGroup = function(file) {
727
+ if (!this.pbxGroupByName('Products')) {
728
+ return null;
729
+ }
730
+ var productsGroupChildren = this.pbxGroupByName('Products').children, i;
731
+ for (i in productsGroupChildren) {
732
+ if (pbxGroupChild(file).value == productsGroupChildren[i].value &&
733
+ pbxGroupChild(file).comment == productsGroupChildren[i].comment) {
734
+ productsGroupChildren.splice(i, 1);
735
+ break;
736
+ }
737
+ }
738
+ }
739
+
740
+ pbxProject.prototype.addToPbxSourcesBuildPhase = function(file) {
741
+ var sources = this.pbxSourcesBuildPhaseObj(file.target);
742
+ sources.files.push(pbxBuildPhaseObj(file));
743
+ }
744
+
745
+ pbxProject.prototype.removeFromPbxSourcesBuildPhase = function(file) {
746
+
747
+ var sources = this.pbxSourcesBuildPhaseObj(file.target), i;
748
+ for (i in sources.files) {
749
+ if (sources.files[i].comment == longComment(file)) {
750
+ sources.files.splice(i, 1);
751
+ break;
752
+ }
753
+ }
754
+ }
755
+
756
+ pbxProject.prototype.addToPbxResourcesBuildPhase = function(file) {
757
+ var sources = this.pbxResourcesBuildPhaseObj(file.target);
758
+ sources.files.push(pbxBuildPhaseObj(file));
759
+ }
760
+
761
+ pbxProject.prototype.removeFromPbxResourcesBuildPhase = function(file) {
762
+ var sources = this.pbxResourcesBuildPhaseObj(file.target), i;
763
+
764
+ for (i in sources.files) {
765
+ if (sources.files[i].comment == longComment(file)) {
766
+ sources.files.splice(i, 1);
767
+ break;
768
+ }
769
+ }
770
+ }
771
+
772
+ pbxProject.prototype.addToPbxFrameworksBuildPhase = function(file) {
773
+ var sources = this.pbxFrameworksBuildPhaseObj(file.target);
774
+ sources.files.push(pbxBuildPhaseObj(file));
775
+ }
776
+
777
+ pbxProject.prototype.removeFromPbxFrameworksBuildPhase = function(file) {
778
+ var sources = this.pbxFrameworksBuildPhaseObj(file.target);
779
+ for (i in sources.files) {
780
+ if (sources.files[i].comment == longComment(file)) {
781
+ sources.files.splice(i, 1);
782
+ break;
783
+ }
784
+ }
785
+ }
786
+
787
+ pbxProject.prototype.addXCConfigurationList = function(configurationObjectsArray, defaultConfigurationName, comment) {
788
+ var pbxBuildConfigurationSection = this.pbxXCBuildConfigurationSection(),
789
+ pbxXCConfigurationListSection = this.pbxXCConfigurationList(),
790
+ xcConfigurationListUuid = this.generateUuid(),
791
+ commentKey = f("%s_comment", xcConfigurationListUuid),
792
+ xcConfigurationList = {
793
+ isa: 'XCConfigurationList',
794
+ buildConfigurations: [],
795
+ defaultConfigurationIsVisible: 0,
796
+ defaultConfigurationName: defaultConfigurationName
797
+ };
798
+
799
+ for (var index = 0; index < configurationObjectsArray.length; index++) {
800
+ var configuration = configurationObjectsArray[index],
801
+ configurationUuid = this.generateUuid(),
802
+ configurationCommentKey = f("%s_comment", configurationUuid);
803
+
804
+ pbxBuildConfigurationSection[configurationUuid] = configuration;
805
+ pbxBuildConfigurationSection[configurationCommentKey] = configuration.name;
806
+ xcConfigurationList.buildConfigurations.push({ value: configurationUuid, comment: configuration.name });
807
+ }
808
+
809
+ if (pbxXCConfigurationListSection) {
810
+ pbxXCConfigurationListSection[xcConfigurationListUuid] = xcConfigurationList;
811
+ pbxXCConfigurationListSection[commentKey] = comment;
812
+ }
813
+
814
+ return { uuid: xcConfigurationListUuid, xcConfigurationList: xcConfigurationList };
815
+ }
816
+
817
+ pbxProject.prototype.addTargetDependency = function(target, dependencyTargets) {
818
+ if (!target)
819
+ return undefined;
820
+
821
+ var nativeTargets = this.pbxNativeTargetSection();
822
+
823
+ if (typeof nativeTargets[target] == "undefined")
824
+ throw new Error("Invalid target: " + target);
825
+
826
+ for (var index = 0; index < dependencyTargets.length; index++) {
827
+ var dependencyTarget = dependencyTargets[index];
828
+ if (typeof nativeTargets[dependencyTarget] == "undefined")
829
+ throw new Error("Invalid target: " + dependencyTarget);
830
+ }
831
+
832
+ var pbxTargetDependency = 'PBXTargetDependency',
833
+ pbxContainerItemProxy = 'PBXContainerItemProxy',
834
+ pbxTargetDependencySection = this.hash.project.objects[pbxTargetDependency],
835
+ pbxContainerItemProxySection = this.hash.project.objects[pbxContainerItemProxy];
836
+
837
+ for (var index = 0; index < dependencyTargets.length; index++) {
838
+ var dependencyTargetUuid = dependencyTargets[index],
839
+ dependencyTargetCommentKey = f("%s_comment", dependencyTargetUuid),
840
+ targetDependencyUuid = this.generateUuid(),
841
+ targetDependencyCommentKey = f("%s_comment", targetDependencyUuid),
842
+ itemProxyUuid = this.generateUuid(),
843
+ itemProxyCommentKey = f("%s_comment", itemProxyUuid),
844
+ itemProxy = {
845
+ isa: pbxContainerItemProxy,
846
+ containerPortal: this.hash.project['rootObject'],
847
+ containerPortal_comment: this.hash.project['rootObject_comment'],
848
+ proxyType: 1,
849
+ remoteGlobalIDString: dependencyTargetUuid,
850
+ remoteInfo: nativeTargets[dependencyTargetUuid].name
851
+ },
852
+ targetDependency = {
853
+ isa: pbxTargetDependency,
854
+ target: dependencyTargetUuid,
855
+ target_comment: nativeTargets[dependencyTargetCommentKey],
856
+ targetProxy: itemProxyUuid,
857
+ targetProxy_comment: pbxContainerItemProxy
858
+ };
859
+
860
+ if (pbxContainerItemProxySection && pbxTargetDependencySection) {
861
+ pbxContainerItemProxySection[itemProxyUuid] = itemProxy;
862
+ pbxContainerItemProxySection[itemProxyCommentKey] = pbxContainerItemProxy;
863
+ pbxTargetDependencySection[targetDependencyUuid] = targetDependency;
864
+ pbxTargetDependencySection[targetDependencyCommentKey] = pbxTargetDependency;
865
+ nativeTargets[target].dependencies.push({ value: targetDependencyUuid, comment: pbxTargetDependency })
866
+ }
867
+ }
868
+
869
+ return { uuid: target, target: nativeTargets[target] };
870
+ }
871
+
872
+ pbxProject.prototype.addBuildPhase = function(filePathsArray, buildPhaseType, comment, target, optionsOrFolderType, subfolderPath) {
873
+ var buildPhaseSection,
874
+ fileReferenceSection = this.pbxFileReferenceSection(),
875
+ buildFileSection = this.pbxBuildFileSection(),
876
+ buildPhaseUuid = this.generateUuid(),
877
+ buildPhaseTargetUuid = target || this.getFirstTarget().uuid,
878
+ commentKey = f("%s_comment", buildPhaseUuid),
879
+ buildPhase = {
880
+ isa: buildPhaseType,
881
+ buildActionMask: 2147483647,
882
+ files: [],
883
+ runOnlyForDeploymentPostprocessing: 0
884
+ },
885
+ filePathToBuildFile = {};
886
+
887
+ if (buildPhaseType === 'PBXCopyFilesBuildPhase') {
888
+ buildPhase = pbxCopyFilesBuildPhaseObj(buildPhase, optionsOrFolderType, subfolderPath, comment);
889
+ } else if (buildPhaseType === 'PBXShellScriptBuildPhase') {
890
+ buildPhase = pbxShellScriptBuildPhaseObj(buildPhase, optionsOrFolderType, comment)
891
+ }
892
+
893
+ if (!this.hash.project.objects[buildPhaseType]) {
894
+ this.hash.project.objects[buildPhaseType] = new Object();
895
+ }
896
+
897
+ if (!this.hash.project.objects[buildPhaseType][buildPhaseUuid]) {
898
+ this.hash.project.objects[buildPhaseType][buildPhaseUuid] = buildPhase;
899
+ this.hash.project.objects[buildPhaseType][commentKey] = comment;
900
+ }
901
+
902
+ if (this.hash.project.objects['PBXNativeTarget'][buildPhaseTargetUuid]['buildPhases']) {
903
+ this.hash.project.objects['PBXNativeTarget'][buildPhaseTargetUuid]['buildPhases'].push({
904
+ value: buildPhaseUuid,
905
+ comment: comment
906
+ })
907
+
908
+ }
909
+
910
+
911
+ for (var key in buildFileSection) {
912
+ // only look for comments
913
+ if (!COMMENT_KEY.test(key)) continue;
914
+
915
+ var buildFileKey = key.split(COMMENT_KEY)[0],
916
+ buildFile = buildFileSection[buildFileKey];
917
+ fileReference = fileReferenceSection[buildFile.fileRef];
918
+
919
+ if (!fileReference) continue;
920
+
921
+ var pbxFileObj = new pbxFile(fileReference.path);
922
+
923
+ filePathToBuildFile[fileReference.path] = { uuid: buildFileKey, basename: pbxFileObj.basename, group: pbxFileObj.group };
924
+ }
925
+
926
+ for (var index = 0; index < filePathsArray.length; index++) {
927
+ var filePath = filePathsArray[index],
928
+ filePathQuoted = "\"" + filePath + "\"",
929
+ file = new pbxFile(filePath);
930
+
931
+ if (filePathToBuildFile[filePath]) {
932
+ buildPhase.files.push(pbxBuildPhaseObj(filePathToBuildFile[filePath]));
933
+ continue;
934
+ } else if (filePathToBuildFile[filePathQuoted]) {
935
+ buildPhase.files.push(pbxBuildPhaseObj(filePathToBuildFile[filePathQuoted]));
936
+ continue;
937
+ }
938
+
939
+ file.uuid = this.generateUuid();
940
+ file.fileRef = this.generateUuid();
941
+ this.addToPbxFileReferenceSection(file); // PBXFileReference
942
+ this.addToPbxBuildFileSection(file); // PBXBuildFile
943
+ buildPhase.files.push(pbxBuildPhaseObj(file));
944
+ }
945
+
946
+ if (buildPhaseSection) {
947
+ buildPhaseSection[buildPhaseUuid] = buildPhase;
948
+ buildPhaseSection[commentKey] = comment;
949
+ }
950
+
951
+ return { uuid: buildPhaseUuid, buildPhase: buildPhase };
952
+ }
953
+
954
+ // helper access functions
955
+ pbxProject.prototype.pbxProjectSection = function() {
956
+ return this.hash.project.objects['PBXProject'];
957
+ }
958
+ pbxProject.prototype.pbxBuildFileSection = function() {
959
+ return this.hash.project.objects['PBXBuildFile'];
960
+ }
961
+
962
+ pbxProject.prototype.pbxXCBuildConfigurationSection = function() {
963
+ return this.hash.project.objects['XCBuildConfiguration'];
964
+ }
965
+
966
+ pbxProject.prototype.pbxFileReferenceSection = function() {
967
+ return this.hash.project.objects['PBXFileReference'];
968
+ }
969
+
970
+ pbxProject.prototype.pbxNativeTargetSection = function() {
971
+ return this.hash.project.objects['PBXNativeTarget'];
972
+ }
973
+
974
+ pbxProject.prototype.xcVersionGroupSection = function () {
975
+ if (typeof this.hash.project.objects['XCVersionGroup'] !== 'object') {
976
+ this.hash.project.objects['XCVersionGroup'] = {};
977
+ }
978
+
979
+ return this.hash.project.objects['XCVersionGroup'];
980
+ }
981
+
982
+ pbxProject.prototype.pbxXCConfigurationList = function() {
983
+ return this.hash.project.objects['XCConfigurationList'];
984
+ }
985
+
986
+ pbxProject.prototype.pbxGroupByName = function(name) {
987
+ var groups = this.hash.project.objects['PBXGroup'],
988
+ key, groupKey;
989
+
990
+ for (key in groups) {
991
+ // only look for comments
992
+ if (!COMMENT_KEY.test(key)) continue;
993
+
994
+ if (groups[key] == name) {
995
+ groupKey = key.split(COMMENT_KEY)[0];
996
+ return groups[groupKey];
997
+ }
998
+ }
999
+
1000
+ return null;
1001
+ }
1002
+
1003
+ pbxProject.prototype.pbxTargetByName = function(name) {
1004
+ return this.pbxItemByComment(name, 'PBXNativeTarget');
1005
+ }
1006
+
1007
+ pbxProject.prototype.findTargetKey = function(name) {
1008
+ var targets = this.hash.project.objects['PBXNativeTarget'];
1009
+
1010
+ for (var key in targets) {
1011
+ // only look for comments
1012
+ if (COMMENT_KEY.test(key)) continue;
1013
+
1014
+ var target = targets[key];
1015
+ if (target.name === name) {
1016
+ return key;
1017
+ }
1018
+ }
1019
+
1020
+ return null;
1021
+ }
1022
+
1023
+ pbxProject.prototype.pbxItemByComment = function(name, pbxSectionName) {
1024
+ var section = this.hash.project.objects[pbxSectionName],
1025
+ key, itemKey;
1026
+
1027
+ for (key in section) {
1028
+ // only look for comments
1029
+ if (!COMMENT_KEY.test(key)) continue;
1030
+
1031
+ if (section[key] == name) {
1032
+ itemKey = key.split(COMMENT_KEY)[0];
1033
+ return section[itemKey];
1034
+ }
1035
+ }
1036
+
1037
+ return null;
1038
+ }
1039
+
1040
+ pbxProject.prototype.pbxSourcesBuildPhaseObj = function(target) {
1041
+ return this.buildPhaseObject('PBXSourcesBuildPhase', 'Sources', target);
1042
+ }
1043
+
1044
+ pbxProject.prototype.pbxResourcesBuildPhaseObj = function(target) {
1045
+ return this.buildPhaseObject('PBXResourcesBuildPhase', 'Resources', target);
1046
+ }
1047
+
1048
+ pbxProject.prototype.pbxFrameworksBuildPhaseObj = function(target) {
1049
+ return this.buildPhaseObject('PBXFrameworksBuildPhase', 'Frameworks', target);
1050
+ }
1051
+
1052
+ pbxProject.prototype.pbxEmbedFrameworksBuildPhaseObj = function (target) {
1053
+ return this.buildPhaseObject('PBXCopyFilesBuildPhase', 'Embed Frameworks', target);
1054
+ };
1055
+
1056
+ // Find Build Phase from group/target
1057
+ pbxProject.prototype.buildPhase = function(group, target) {
1058
+
1059
+ if (!target)
1060
+ return undefined;
1061
+
1062
+ var nativeTargets = this.pbxNativeTargetSection();
1063
+ if (typeof nativeTargets[target] == "undefined")
1064
+ throw new Error("Invalid target: " + target);
1065
+
1066
+ var nativeTarget = nativeTargets[target];
1067
+ var buildPhases = nativeTarget.buildPhases;
1068
+ for(var i in buildPhases)
1069
+ {
1070
+ var buildPhase = buildPhases[i];
1071
+ if (buildPhase.comment==group)
1072
+ return buildPhase.value + "_comment";
1073
+ }
1074
+ }
1075
+
1076
+ pbxProject.prototype.buildPhaseObject = function(name, group, target) {
1077
+ var section = this.hash.project.objects[name],
1078
+ obj, sectionKey, key;
1079
+ var buildPhase = this.buildPhase(group, target);
1080
+
1081
+ for (key in section) {
1082
+
1083
+ // only look for comments
1084
+ if (!COMMENT_KEY.test(key)) continue;
1085
+
1086
+ // select the proper buildPhase
1087
+ if (buildPhase && buildPhase!=key)
1088
+ continue;
1089
+ if (section[key] == group) {
1090
+ sectionKey = key.split(COMMENT_KEY)[0];
1091
+ return section[sectionKey];
1092
+ }
1093
+ }
1094
+ return null;
1095
+ }
1096
+
1097
+ pbxProject.prototype.addBuildProperty = function(prop, value, build_name) {
1098
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1099
+ key, configuration;
1100
+
1101
+ for (key in configurations){
1102
+ configuration = configurations[key];
1103
+ if (!build_name || configuration.name === build_name){
1104
+ configuration.buildSettings[prop] = value;
1105
+ }
1106
+ }
1107
+ }
1108
+
1109
+ pbxProject.prototype.removeBuildProperty = function(prop, build_name) {
1110
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1111
+ key, configuration;
1112
+
1113
+ for (key in configurations){
1114
+ configuration = configurations[key];
1115
+ if (configuration.buildSettings[prop] &&
1116
+ !build_name || configuration.name === build_name){
1117
+ delete configuration.buildSettings[prop];
1118
+ }
1119
+ }
1120
+ }
1121
+
1122
+ /**
1123
+ *
1124
+ * @param prop {String}
1125
+ * @param value {String|Array|Object|Number|Boolean}
1126
+ * @param build {String} Release or Debug
1127
+ * @param targetName {String} the target which will be updated
1128
+ */
1129
+ pbxProject.prototype.updateBuildProperty = function(prop, value, build, targetName) {
1130
+ let validConfigs = [];
1131
+
1132
+ if(targetName) {
1133
+ const target = this.pbxTargetByName(targetName);
1134
+ const targetBuildConfigs = target && target.buildConfigurationList;
1135
+
1136
+ const xcConfigList = this.pbxXCConfigurationList();
1137
+
1138
+ // Collect the UUID's from the configuration of our target
1139
+ for (const configName in xcConfigList) {
1140
+ if (!COMMENT_KEY.test(configName) && targetBuildConfigs === configName) {
1141
+ const buildVariants = xcConfigList[configName].buildConfigurations;
1142
+
1143
+ for (const item of buildVariants) {
1144
+ validConfigs.push(item.value);
1145
+ }
1146
+
1147
+ break;
1148
+ }
1149
+ }
1150
+ }
1151
+
1152
+ var configs = this.pbxXCBuildConfigurationSection();
1153
+ for (var configName in configs) {
1154
+ if (!COMMENT_KEY.test(configName)) {
1155
+ if (targetName && !validConfigs.includes(configName)) continue;
1156
+
1157
+ var config = configs[configName];
1158
+ if ( (build && config.name === build) || (!build) ) {
1159
+ config.buildSettings[prop] = value;
1160
+ }
1161
+ }
1162
+ }
1163
+ }
1164
+
1165
+ pbxProject.prototype.updateProductName = function(name) {
1166
+ this.updateBuildProperty('PRODUCT_NAME', '"' + name + '"');
1167
+ }
1168
+
1169
+ pbxProject.prototype.removeFromFrameworkSearchPaths = function(file) {
1170
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1171
+ INHERITED = '"$(inherited)"',
1172
+ SEARCH_PATHS = 'FRAMEWORK_SEARCH_PATHS',
1173
+ config, buildSettings, searchPaths;
1174
+ var new_path = searchPathForFile(file, this);
1175
+
1176
+ for (config in configurations) {
1177
+ buildSettings = configurations[config].buildSettings;
1178
+
1179
+ if (unquote(buildSettings['PRODUCT_NAME']) != this.productName)
1180
+ continue;
1181
+
1182
+ searchPaths = buildSettings[SEARCH_PATHS];
1183
+
1184
+ if (searchPaths && Array.isArray(searchPaths)) {
1185
+ var matches = searchPaths.filter(function(p) {
1186
+ return p.indexOf(new_path) > -1;
1187
+ });
1188
+ matches.forEach(function(m) {
1189
+ var idx = searchPaths.indexOf(m);
1190
+ searchPaths.splice(idx, 1);
1191
+ });
1192
+ }
1193
+ }
1194
+ }
1195
+
1196
+ pbxProject.prototype.addToFrameworkSearchPaths = function(file) {
1197
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1198
+ INHERITED = '"$(inherited)"',
1199
+ config, buildSettings, searchPaths;
1200
+
1201
+ for (config in configurations) {
1202
+ buildSettings = configurations[config].buildSettings;
1203
+
1204
+ if (unquote(buildSettings['PRODUCT_NAME']) != this.productName)
1205
+ continue;
1206
+
1207
+ if (!buildSettings['FRAMEWORK_SEARCH_PATHS']
1208
+ || buildSettings['FRAMEWORK_SEARCH_PATHS'] === INHERITED) {
1209
+ buildSettings['FRAMEWORK_SEARCH_PATHS'] = [INHERITED];
1210
+ }
1211
+
1212
+ buildSettings['FRAMEWORK_SEARCH_PATHS'].push(searchPathForFile(file, this));
1213
+ }
1214
+ }
1215
+
1216
+ pbxProject.prototype.removeFromLibrarySearchPaths = function(file) {
1217
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1218
+ INHERITED = '"$(inherited)"',
1219
+ SEARCH_PATHS = 'LIBRARY_SEARCH_PATHS',
1220
+ config, buildSettings, searchPaths;
1221
+ var new_path = searchPathForFile(file, this);
1222
+
1223
+ for (config in configurations) {
1224
+ buildSettings = configurations[config].buildSettings;
1225
+
1226
+ if (unquote(buildSettings['PRODUCT_NAME']) != this.productName)
1227
+ continue;
1228
+
1229
+ searchPaths = buildSettings[SEARCH_PATHS];
1230
+
1231
+ if (searchPaths && Array.isArray(searchPaths)) {
1232
+ var matches = searchPaths.filter(function(p) {
1233
+ return p.indexOf(new_path) > -1;
1234
+ });
1235
+ matches.forEach(function(m) {
1236
+ var idx = searchPaths.indexOf(m);
1237
+ searchPaths.splice(idx, 1);
1238
+ });
1239
+ }
1240
+
1241
+ }
1242
+ }
1243
+
1244
+ pbxProject.prototype.addToLibrarySearchPaths = function(file) {
1245
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1246
+ INHERITED = '"$(inherited)"',
1247
+ config, buildSettings, searchPaths;
1248
+
1249
+ for (config in configurations) {
1250
+ buildSettings = configurations[config].buildSettings;
1251
+
1252
+ if (unquote(buildSettings['PRODUCT_NAME']) != this.productName)
1253
+ continue;
1254
+
1255
+ if (!buildSettings['LIBRARY_SEARCH_PATHS']
1256
+ || buildSettings['LIBRARY_SEARCH_PATHS'] === INHERITED) {
1257
+ buildSettings['LIBRARY_SEARCH_PATHS'] = [INHERITED];
1258
+ }
1259
+
1260
+ if (typeof file === 'string') {
1261
+ buildSettings['LIBRARY_SEARCH_PATHS'].push(file);
1262
+ } else {
1263
+ buildSettings['LIBRARY_SEARCH_PATHS'].push(searchPathForFile(file, this));
1264
+ }
1265
+ }
1266
+ }
1267
+
1268
+ pbxProject.prototype.removeFromHeaderSearchPaths = function(file) {
1269
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1270
+ INHERITED = '"$(inherited)"',
1271
+ SEARCH_PATHS = 'HEADER_SEARCH_PATHS',
1272
+ config, buildSettings, searchPaths;
1273
+ var new_path = searchPathForFile(file, this);
1274
+
1275
+ for (config in configurations) {
1276
+ buildSettings = configurations[config].buildSettings;
1277
+
1278
+ if (unquote(buildSettings['PRODUCT_NAME']) != this.productName)
1279
+ continue;
1280
+
1281
+ if (buildSettings[SEARCH_PATHS]) {
1282
+ var matches = buildSettings[SEARCH_PATHS].filter(function(p) {
1283
+ return p.indexOf(new_path) > -1;
1284
+ });
1285
+ matches.forEach(function(m) {
1286
+ var idx = buildSettings[SEARCH_PATHS].indexOf(m);
1287
+ buildSettings[SEARCH_PATHS].splice(idx, 1);
1288
+ });
1289
+ }
1290
+
1291
+ }
1292
+ }
1293
+ pbxProject.prototype.addToHeaderSearchPaths = function(file) {
1294
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1295
+ INHERITED = '"$(inherited)"',
1296
+ config, buildSettings, searchPaths;
1297
+
1298
+ for (config in configurations) {
1299
+ buildSettings = configurations[config].buildSettings;
1300
+
1301
+ if (unquote(buildSettings['PRODUCT_NAME']) != this.productName)
1302
+ continue;
1303
+
1304
+ if (!buildSettings['HEADER_SEARCH_PATHS']) {
1305
+ buildSettings['HEADER_SEARCH_PATHS'] = [INHERITED];
1306
+ }
1307
+
1308
+ if (typeof file === 'string') {
1309
+ buildSettings['HEADER_SEARCH_PATHS'].push(file);
1310
+ } else {
1311
+ buildSettings['HEADER_SEARCH_PATHS'].push(searchPathForFile(file, this));
1312
+ }
1313
+ }
1314
+ }
1315
+
1316
+ pbxProject.prototype.addToOtherLinkerFlags = function (flag) {
1317
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1318
+ INHERITED = '"$(inherited)"',
1319
+ OTHER_LDFLAGS = 'OTHER_LDFLAGS',
1320
+ config, buildSettings;
1321
+
1322
+ for (config in configurations) {
1323
+ buildSettings = configurations[config].buildSettings;
1324
+
1325
+ if (unquote(buildSettings['PRODUCT_NAME']) != this.productName)
1326
+ continue;
1327
+
1328
+ if (!buildSettings[OTHER_LDFLAGS]
1329
+ || buildSettings[OTHER_LDFLAGS] === INHERITED) {
1330
+ buildSettings[OTHER_LDFLAGS] = [INHERITED];
1331
+ }
1332
+
1333
+ buildSettings[OTHER_LDFLAGS].push(flag);
1334
+ }
1335
+ }
1336
+
1337
+ pbxProject.prototype.removeFromOtherLinkerFlags = function (flag) {
1338
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1339
+ OTHER_LDFLAGS = 'OTHER_LDFLAGS',
1340
+ config, buildSettings;
1341
+
1342
+ for (config in configurations) {
1343
+ buildSettings = configurations[config].buildSettings;
1344
+
1345
+ if (unquote(buildSettings['PRODUCT_NAME']) != this.productName) {
1346
+ continue;
1347
+ }
1348
+
1349
+ if (buildSettings[OTHER_LDFLAGS]) {
1350
+ var matches = buildSettings[OTHER_LDFLAGS].filter(function (p) {
1351
+ return p.indexOf(flag) > -1;
1352
+ });
1353
+ matches.forEach(function (m) {
1354
+ var idx = buildSettings[OTHER_LDFLAGS].indexOf(m);
1355
+ buildSettings[OTHER_LDFLAGS].splice(idx, 1);
1356
+ });
1357
+ }
1358
+ }
1359
+ }
1360
+
1361
+ pbxProject.prototype.addToBuildSettings = function (buildSetting, value) {
1362
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1363
+ config, buildSettings;
1364
+
1365
+ for (config in configurations) {
1366
+ buildSettings = configurations[config].buildSettings;
1367
+
1368
+ buildSettings[buildSetting] = value;
1369
+ }
1370
+ }
1371
+
1372
+ pbxProject.prototype.removeFromBuildSettings = function (buildSetting) {
1373
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1374
+ config, buildSettings;
1375
+
1376
+ for (config in configurations) {
1377
+ buildSettings = configurations[config].buildSettings;
1378
+
1379
+ if (buildSettings[buildSetting]) {
1380
+ delete buildSettings[buildSetting];
1381
+ }
1382
+ }
1383
+ }
1384
+
1385
+ // a JS getter. hmmm
1386
+ pbxProject.prototype.__defineGetter__("productName", function() {
1387
+ var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
1388
+ config, productName;
1389
+
1390
+ for (config in configurations) {
1391
+ productName = configurations[config].buildSettings['PRODUCT_NAME'];
1392
+
1393
+ if (productName) {
1394
+ return unquote(productName);
1395
+ }
1396
+ }
1397
+ });
1398
+
1399
+ // check if file is present
1400
+ pbxProject.prototype.hasFile = function(filePath) {
1401
+ var files = nonComments(this.pbxFileReferenceSection()),
1402
+ file, id;
1403
+ for (id in files) {
1404
+ file = files[id];
1405
+ if (file.path == filePath || file.path == ('"' + filePath + '"')) {
1406
+ return file;
1407
+ }
1408
+ }
1409
+
1410
+ return false;
1411
+ }
1412
+
1413
+ pbxProject.prototype.addTarget = function(name, type, subfolder, bundleId) {
1414
+
1415
+ // Setup uuid and name of new target
1416
+ var targetUuid = this.generateUuid(),
1417
+ targetType = type,
1418
+ targetSubfolder = subfolder || name,
1419
+ targetName = name.trim(),
1420
+ targetBundleId = bundleId;
1421
+
1422
+ // Check type against list of allowed target types
1423
+ if (!targetName) {
1424
+ throw new Error("Target name missing.");
1425
+ }
1426
+
1427
+ // Check type against list of allowed target types
1428
+ if (!targetType) {
1429
+ throw new Error("Target type missing.");
1430
+ }
1431
+
1432
+ // Check type against list of allowed target types
1433
+ if (!producttypeForTargettype(targetType)) {
1434
+ throw new Error("Target type invalid: " + targetType);
1435
+ }
1436
+
1437
+ // Build Configuration: Create
1438
+ var buildConfigurationsList = [
1439
+ {
1440
+ name: 'Debug',
1441
+ isa: 'XCBuildConfiguration',
1442
+ buildSettings: {
1443
+ GCC_PREPROCESSOR_DEFINITIONS: ['"DEBUG=1"', '"$(inherited)"'],
1444
+ INFOPLIST_FILE: '"' + path.join(targetSubfolder, targetSubfolder + '-Info.plist' + '"'),
1445
+ LD_RUNPATH_SEARCH_PATHS: '"$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"',
1446
+ PRODUCT_NAME: '"' + targetName + '"',
1447
+ SKIP_INSTALL: 'YES'
1448
+ }
1449
+ },
1450
+ {
1451
+ name: 'Release',
1452
+ isa: 'XCBuildConfiguration',
1453
+ buildSettings: {
1454
+ INFOPLIST_FILE: '"' + path.join(targetSubfolder, targetSubfolder + '-Info.plist' + '"'),
1455
+ LD_RUNPATH_SEARCH_PATHS: '"$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"',
1456
+ PRODUCT_NAME: '"' + targetName + '"',
1457
+ SKIP_INSTALL: 'YES'
1458
+ }
1459
+ }
1460
+ ];
1461
+
1462
+ // Add optional bundleId to build configuration
1463
+ if (targetBundleId) {
1464
+ buildConfigurationsList = buildConfigurationsList.map((elem) => {
1465
+ elem.buildSettings.PRODUCT_BUNDLE_IDENTIFIER = '"' + targetBundleId + '"';
1466
+ return elem;
1467
+ });
1468
+ }
1469
+
1470
+ // Build Configuration: Add
1471
+ var buildConfigurations = this.addXCConfigurationList(buildConfigurationsList, 'Release', 'Build configuration list for PBXNativeTarget "' + targetName +'"');
1472
+
1473
+ // Product: Create
1474
+ var productName = targetName,
1475
+ productType = producttypeForTargettype(targetType),
1476
+ productFileType = filetypeForProducttype(productType),
1477
+ productFile = this.addProductFile(productName, { group: 'Copy Files', 'target': targetUuid, 'explicitFileType': productFileType}),
1478
+ productFileName = productFile.basename;
1479
+
1480
+
1481
+ // Product: Add to build file list
1482
+ this.addToPbxBuildFileSection(productFile);
1483
+
1484
+ // Target: Create
1485
+ var target = {
1486
+ uuid: targetUuid,
1487
+ pbxNativeTarget: {
1488
+ isa: 'PBXNativeTarget',
1489
+ name: '"' + targetName + '"',
1490
+ productName: '"' + targetName + '"',
1491
+ productReference: productFile.fileRef,
1492
+ productType: '"' + producttypeForTargettype(targetType) + '"',
1493
+ buildConfigurationList: buildConfigurations.uuid,
1494
+ buildPhases: [],
1495
+ buildRules: [],
1496
+ dependencies: []
1497
+ }
1498
+ };
1499
+
1500
+ // Target: Add to PBXNativeTarget section
1501
+ this.addToPbxNativeTargetSection(target)
1502
+
1503
+ // Product: Embed (only for "extension"-type targets)
1504
+ if (targetType === 'app_extension') {
1505
+
1506
+ // Create CopyFiles phase in first target
1507
+ this.addBuildPhase([], 'PBXCopyFilesBuildPhase', 'Copy Files', this.getFirstTarget().uuid, targetType)
1508
+
1509
+ // Add product to CopyFiles phase
1510
+ this.addToPbxCopyfilesBuildPhase(productFile)
1511
+
1512
+ // this.addBuildPhaseToTarget(newPhase.buildPhase, this.getFirstTarget().uuid)
1513
+ } else if (targetType === 'watch2_app') {
1514
+ // Create CopyFiles phase in first target
1515
+ this.addBuildPhase(
1516
+ [targetName + '.app'],
1517
+ 'PBXCopyFilesBuildPhase',
1518
+ 'Embed Watch Content',
1519
+ this.getFirstTarget().uuid,
1520
+ targetType,
1521
+ '"$(CONTENTS_FOLDER_PATH)/Watch"'
1522
+ );
1523
+ } else if (targetType === 'watch2_extension') {
1524
+ // Create CopyFiles phase in watch target (if exists)
1525
+ var watch2Target = this.getTarget(producttypeForTargettype('watch2_app'));
1526
+ if (watch2Target) {
1527
+ this.addBuildPhase(
1528
+ [targetName + '.appex'],
1529
+ 'PBXCopyFilesBuildPhase',
1530
+ 'Embed App Extensions',
1531
+ watch2Target.uuid,
1532
+ targetType
1533
+ );
1534
+ }
1535
+ }
1536
+
1537
+ // Target: Add uuid to root project
1538
+ this.addToPbxProjectSection(target);
1539
+
1540
+ // Target: Add dependency for this target to other targets
1541
+ if (targetType === 'watch2_extension') {
1542
+ var watch2Target = this.getTarget(producttypeForTargettype('watch2_app'));
1543
+ if (watch2Target) {
1544
+ this.addTargetDependency(watch2Target.uuid, [target.uuid]);
1545
+ }
1546
+ } else {
1547
+ this.addTargetDependency(this.getFirstTarget().uuid, [target.uuid]);
1548
+ }
1549
+
1550
+
1551
+ // Return target on success
1552
+ return target;
1553
+
1554
+ };
1555
+
1556
+ // helper object creation functions
1557
+ function pbxBuildFileObj(file) {
1558
+ var obj = Object.create(null);
1559
+
1560
+ obj.isa = 'PBXBuildFile';
1561
+ obj.fileRef = file.fileRef;
1562
+ obj.fileRef_comment = file.basename;
1563
+ if (file.settings) obj.settings = file.settings;
1564
+
1565
+ return obj;
1566
+ }
1567
+
1568
+ function pbxFileReferenceObj(file) {
1569
+ var fileObject = {
1570
+ isa: "PBXFileReference",
1571
+ name: "\"" + file.basename + "\"",
1572
+ path: "\"" + file.path.replace(/\\/g, '/') + "\"",
1573
+ sourceTree: file.sourceTree,
1574
+ fileEncoding: file.fileEncoding,
1575
+ lastKnownFileType: file.lastKnownFileType,
1576
+ explicitFileType: file.explicitFileType,
1577
+ includeInIndex: file.includeInIndex
1578
+ };
1579
+
1580
+ return fileObject;
1581
+ }
1582
+
1583
+ function pbxGroupChild(file) {
1584
+ var obj = Object.create(null);
1585
+
1586
+ obj.value = file.fileRef;
1587
+ obj.comment = file.basename;
1588
+
1589
+ return obj;
1590
+ }
1591
+
1592
+ function pbxBuildPhaseObj(file) {
1593
+ var obj = Object.create(null);
1594
+
1595
+ obj.value = file.uuid;
1596
+ obj.comment = longComment(file);
1597
+
1598
+ return obj;
1599
+ }
1600
+
1601
+ function pbxCopyFilesBuildPhaseObj(obj, folderType, subfolderPath, phaseName) {
1602
+
1603
+ // Add additional properties for 'CopyFiles' build phase
1604
+ var DESTINATION_BY_TARGETTYPE = {
1605
+ application: 'wrapper',
1606
+ app_extension: 'plugins',
1607
+ bundle: 'wrapper',
1608
+ command_line_tool: 'wrapper',
1609
+ dynamic_library: 'products_directory',
1610
+ framework: 'shared_frameworks',
1611
+ frameworks: 'frameworks',
1612
+ static_library: 'products_directory',
1613
+ unit_test_bundle: 'wrapper',
1614
+ watch_app: 'wrapper',
1615
+ watch2_app: 'products_directory',
1616
+ watch_extension: 'plugins',
1617
+ watch2_extension: 'plugins'
1618
+ }
1619
+ var SUBFOLDERSPEC_BY_DESTINATION = {
1620
+ absolute_path: 0,
1621
+ executables: 6,
1622
+ frameworks: 10,
1623
+ java_resources: 15,
1624
+ plugins: 13,
1625
+ products_directory: 16,
1626
+ resources: 7,
1627
+ shared_frameworks: 11,
1628
+ shared_support: 12,
1629
+ wrapper: 1,
1630
+ xpc_services: 0
1631
+ }
1632
+
1633
+ obj.name = '"' + phaseName + '"';
1634
+ obj.dstPath = subfolderPath || '""';
1635
+ obj.dstSubfolderSpec = SUBFOLDERSPEC_BY_DESTINATION[DESTINATION_BY_TARGETTYPE[folderType]];
1636
+
1637
+ return obj;
1638
+ }
1639
+
1640
+ function pbxShellScriptBuildPhaseObj(obj, options, phaseName) {
1641
+ obj.name = '"' + phaseName + '"';
1642
+ obj.inputPaths = options.inputPaths || [];
1643
+ obj.outputPaths = options.outputPaths || [];
1644
+ obj.shellPath = options.shellPath;
1645
+ obj.shellScript = '"' + options.shellScript.replace(/"/g, '\\"') + '"';
1646
+
1647
+ return obj;
1648
+ }
1649
+
1650
+ function pbxBuildFileComment(file) {
1651
+ return longComment(file);
1652
+ }
1653
+
1654
+ function pbxFileReferenceComment(file) {
1655
+ return file.basename || path.basename(file.path);
1656
+ }
1657
+
1658
+ function pbxNativeTargetComment(target) {
1659
+ return target.name;
1660
+ }
1661
+
1662
+ function longComment(file) {
1663
+ return f("%s in %s", file.basename, file.group);
1664
+ }
1665
+
1666
+ // respect <group> path
1667
+ function correctForPluginsPath(file, project) {
1668
+ return correctForPath(file, project, 'Plugins');
1669
+ }
1670
+
1671
+ function correctForResourcesPath(file, project) {
1672
+ return correctForPath(file, project, 'Resources');
1673
+ }
1674
+
1675
+ function correctForFrameworksPath(file, project) {
1676
+ return correctForPath(file, project, 'Frameworks');
1677
+ }
1678
+
1679
+ function correctForPath(file, project, group) {
1680
+ var r_group_dir = new RegExp('^' + group + '[\\\\/]');
1681
+
1682
+ if (project.pbxGroupByName(group).path)
1683
+ file.path = file.path.replace(r_group_dir, '');
1684
+
1685
+ return file;
1686
+ }
1687
+
1688
+ function searchPathForFile(file, proj) {
1689
+ var plugins = proj.pbxGroupByName('Plugins'),
1690
+ pluginsPath = plugins ? plugins.path : null,
1691
+ fileDir = path.dirname(file.path);
1692
+
1693
+ if (fileDir == '.') {
1694
+ fileDir = '';
1695
+ } else {
1696
+ fileDir = '/' + fileDir;
1697
+ }
1698
+
1699
+ if (file.plugin && pluginsPath) {
1700
+ return '"\\"$(SRCROOT)/' + unquote(pluginsPath) + '\\""';
1701
+ } else if (file.customFramework && file.dirname) {
1702
+ return '"\\"' + file.dirname + '\\""';
1703
+ } else {
1704
+ return '"\\"$(SRCROOT)/' + proj.productName + fileDir + '\\""';
1705
+ }
1706
+ }
1707
+
1708
+ function nonComments(obj) {
1709
+ var keys = Object.keys(obj),
1710
+ newObj = {}, i = 0;
1711
+
1712
+ for (i; i < keys.length; i++) {
1713
+ if (!COMMENT_KEY.test(keys[i])) {
1714
+ newObj[keys[i]] = obj[keys[i]];
1715
+ }
1716
+ }
1717
+
1718
+ return newObj;
1719
+ }
1720
+
1721
+ function unquote(str) {
1722
+ if (str) return str.replace(/^"(.*)"$/, "$1");
1723
+ }
1724
+
1725
+
1726
+ function buildPhaseNameForIsa (isa) {
1727
+
1728
+ BUILDPHASENAME_BY_ISA = {
1729
+ PBXCopyFilesBuildPhase: 'Copy Files',
1730
+ PBXResourcesBuildPhase: 'Resources',
1731
+ PBXSourcesBuildPhase: 'Sources',
1732
+ PBXFrameworksBuildPhase: 'Frameworks'
1733
+ }
1734
+
1735
+ return BUILDPHASENAME_BY_ISA[isa]
1736
+ }
1737
+
1738
+ function producttypeForTargettype (targetType) {
1739
+
1740
+ PRODUCTTYPE_BY_TARGETTYPE = {
1741
+ application: 'com.apple.product-type.application',
1742
+ app_extension: 'com.apple.product-type.app-extension',
1743
+ bundle: 'com.apple.product-type.bundle',
1744
+ command_line_tool: 'com.apple.product-type.tool',
1745
+ dynamic_library: 'com.apple.product-type.library.dynamic',
1746
+ framework: 'com.apple.product-type.framework',
1747
+ static_library: 'com.apple.product-type.library.static',
1748
+ unit_test_bundle: 'com.apple.product-type.bundle.unit-test',
1749
+ watch_app: 'com.apple.product-type.application.watchapp',
1750
+ watch2_app: 'com.apple.product-type.application.watchapp2',
1751
+ watch_extension: 'com.apple.product-type.watchkit-extension',
1752
+ watch2_extension: 'com.apple.product-type.watchkit2-extension'
1753
+ };
1754
+
1755
+ return PRODUCTTYPE_BY_TARGETTYPE[targetType]
1756
+ }
1757
+
1758
+ function filetypeForProducttype (productType) {
1759
+
1760
+ FILETYPE_BY_PRODUCTTYPE = {
1761
+ 'com.apple.product-type.application': '"wrapper.application"',
1762
+ 'com.apple.product-type.app-extension': '"wrapper.app-extension"',
1763
+ 'com.apple.product-type.bundle': '"wrapper.plug-in"',
1764
+ 'com.apple.product-type.tool': '"compiled.mach-o.dylib"',
1765
+ 'com.apple.product-type.library.dynamic': '"compiled.mach-o.dylib"',
1766
+ 'com.apple.product-type.framework': '"wrapper.framework"',
1767
+ 'com.apple.product-type.library.static': '"archive.ar"',
1768
+ 'com.apple.product-type.bundle.unit-test': '"wrapper.cfbundle"',
1769
+ 'com.apple.product-type.application.watchapp': '"wrapper.application"',
1770
+ 'com.apple.product-type.application.watchapp2': '"wrapper.application"',
1771
+ 'com.apple.product-type.watchkit-extension': '"wrapper.app-extension"',
1772
+ 'com.apple.product-type.watchkit2-extension': '"wrapper.app-extension"'
1773
+ };
1774
+
1775
+ return FILETYPE_BY_PRODUCTTYPE[productType]
1776
+ }
1777
+
1778
+ pbxProject.prototype.getFirstProject = function() {
1779
+
1780
+ // Get pbxProject container
1781
+ var pbxProjectContainer = this.pbxProjectSection();
1782
+
1783
+ // Get first pbxProject UUID
1784
+ var firstProjectUuid = Object.keys(pbxProjectContainer)[0];
1785
+
1786
+ // Get first pbxProject
1787
+ var firstProject = pbxProjectContainer[firstProjectUuid];
1788
+
1789
+ return {
1790
+ uuid: firstProjectUuid,
1791
+ firstProject: firstProject
1792
+ }
1793
+ }
1794
+
1795
+ pbxProject.prototype.getFirstTarget = function() {
1796
+ // Get first target's UUID
1797
+ var firstTargetUuid = this.getFirstProject()['firstProject']['targets'][0].value;
1798
+
1799
+ // Get first pbxNativeTarget
1800
+ var firstTarget = this.pbxNativeTargetSection()[firstTargetUuid];
1801
+
1802
+ return {
1803
+ uuid: firstTargetUuid,
1804
+ firstTarget: firstTarget
1805
+ }
1806
+ }
1807
+
1808
+ pbxProject.prototype.getTarget = function(productType) {
1809
+ // Find target by product type
1810
+ var targets = this.getFirstProject()['firstProject']['targets'];
1811
+ var nativeTargets = this.pbxNativeTargetSection();
1812
+ for (var i = 0; i < targets.length; i++) {
1813
+ var target = targets[i];
1814
+ var targetUuid = target.value;
1815
+ if (nativeTargets[targetUuid]['productType'] === '"' + productType + '"') {
1816
+ // Get pbxNativeTarget
1817
+ var nativeTarget = this.pbxNativeTargetSection()[targetUuid];
1818
+ return {
1819
+ uuid: targetUuid,
1820
+ target: nativeTarget
1821
+ };
1822
+ }
1823
+ }
1824
+
1825
+ return null;
1826
+ }
1827
+
1828
+ /*** NEW ***/
1829
+
1830
+ pbxProject.prototype.addToPbxGroupType = function (file, groupKey, groupType) {
1831
+ var group = this.getPBXGroupByKeyAndType(groupKey, groupType);
1832
+ if (group && group.children !== undefined) {
1833
+ if (typeof file === 'string') {
1834
+ //Group Key
1835
+ var childGroup = {
1836
+ value:file,
1837
+ };
1838
+ if (this.getPBXGroupByKey(file)) {
1839
+ childGroup.comment = this.getPBXGroupByKey(file).name;
1840
+ }
1841
+ else if (this.getPBXVariantGroupByKey(file)) {
1842
+ childGroup.comment = this.getPBXVariantGroupByKey(file).name;
1843
+ }
1844
+
1845
+ group.children.push(childGroup);
1846
+ }
1847
+ else {
1848
+ //File Object
1849
+ group.children.push(pbxGroupChild(file));
1850
+ }
1851
+ }
1852
+ }
1853
+
1854
+ pbxProject.prototype.addToPbxVariantGroup = function (file, groupKey) {
1855
+ this.addToPbxGroupType(file, groupKey, 'PBXVariantGroup');
1856
+ }
1857
+
1858
+ pbxProject.prototype.addToPbxGroup = function (file, groupKey) {
1859
+ this.addToPbxGroupType(file, groupKey, 'PBXGroup');
1860
+ }
1861
+
1862
+
1863
+
1864
+ pbxProject.prototype.pbxCreateGroupWithType = function(name, pathName, groupType) {
1865
+ //Create object
1866
+ var model = {
1867
+ isa: '"' + groupType + '"',
1868
+ children: [],
1869
+ name: name,
1870
+ sourceTree: '"<group>"'
1871
+ };
1872
+ if (pathName) model.path = pathName;
1873
+ var key = this.generateUuid();
1874
+
1875
+ //Create comment
1876
+ var commendId = key + '_comment';
1877
+
1878
+ //add obj and commentObj to groups;
1879
+ var groups = this.hash.project.objects[groupType];
1880
+ if (!groups) {
1881
+ groups = this.hash.project.objects[groupType] = new Object();
1882
+ }
1883
+ groups[commendId] = name;
1884
+ groups[key] = model;
1885
+
1886
+ return key;
1887
+ }
1888
+
1889
+ pbxProject.prototype.pbxCreateVariantGroup = function(name) {
1890
+ return this.pbxCreateGroupWithType(name, undefined, 'PBXVariantGroup')
1891
+ }
1892
+
1893
+ pbxProject.prototype.pbxCreateGroup = function(name, pathName) {
1894
+ return this.pbxCreateGroupWithType(name, pathName, 'PBXGroup');
1895
+ }
1896
+
1897
+
1898
+
1899
+ pbxProject.prototype.removeFromPbxGroupAndType = function (file, groupKey, groupType) {
1900
+ var group = this.getPBXGroupByKeyAndType(groupKey, groupType);
1901
+ if (group) {
1902
+ var groupChildren = group.children, i;
1903
+ for(i in groupChildren) {
1904
+ if(pbxGroupChild(file).value == groupChildren[i].value &&
1905
+ pbxGroupChild(file).comment == groupChildren[i].comment) {
1906
+ groupChildren.splice(i, 1);
1907
+ break;
1908
+ }
1909
+ }
1910
+ }
1911
+ }
1912
+
1913
+ pbxProject.prototype.removeFromPbxGroup = function (file, groupKey) {
1914
+ this.removeFromPbxGroupAndType(file, groupKey, 'PBXGroup');
1915
+ }
1916
+
1917
+ pbxProject.prototype.removeFromPbxVariantGroup = function (file, groupKey) {
1918
+ this.removeFromPbxGroupAndType(file, groupKey, 'PBXVariantGroup');
1919
+ }
1920
+
1921
+
1922
+
1923
+ pbxProject.prototype.getPBXGroupByKeyAndType = function(key, groupType) {
1924
+ return this.hash.project.objects[groupType][key];
1925
+ };
1926
+
1927
+ pbxProject.prototype.getPBXGroupByKey = function(key) {
1928
+ return this.hash.project.objects['PBXGroup'][key];
1929
+ };
1930
+
1931
+ pbxProject.prototype.getPBXVariantGroupByKey = function(key) {
1932
+ return this.hash.project.objects['PBXVariantGroup'][key];
1933
+ };
1934
+
1935
+
1936
+
1937
+ pbxProject.prototype.findPBXGroupKeyAndType = function(criteria, groupType) {
1938
+ var groups = this.hash.project.objects[groupType];
1939
+ var target;
1940
+
1941
+ for (var key in groups) {
1942
+ // only look for comments
1943
+ if (COMMENT_KEY.test(key)) continue;
1944
+
1945
+ var group = groups[key];
1946
+ if (criteria && criteria.path && criteria.name) {
1947
+ if (criteria.path === group.path && criteria.name === group.name) {
1948
+ target = key;
1949
+ break
1950
+ }
1951
+ }
1952
+ else if (criteria && criteria.path) {
1953
+ if (criteria.path === group.path) {
1954
+ target = key;
1955
+ break
1956
+ }
1957
+ }
1958
+ else if (criteria && criteria.name) {
1959
+ if (criteria.name === group.name) {
1960
+ target = key;
1961
+ break
1962
+ }
1963
+ }
1964
+ }
1965
+
1966
+ return target;
1967
+ }
1968
+
1969
+ pbxProject.prototype.findPBXGroupKey = function(criteria) {
1970
+ return this.findPBXGroupKeyAndType(criteria, 'PBXGroup');
1971
+ }
1972
+
1973
+ pbxProject.prototype.findPBXVariantGroupKey = function(criteria) {
1974
+ return this.findPBXGroupKeyAndType(criteria, 'PBXVariantGroup');
1975
+ }
1976
+
1977
+ pbxProject.prototype.addLocalizationVariantGroup = function(name) {
1978
+ var groupKey = this.pbxCreateVariantGroup(name);
1979
+
1980
+ var resourceGroupKey = this.findPBXGroupKey({name: 'Resources'});
1981
+ this.addToPbxGroup(groupKey, resourceGroupKey);
1982
+
1983
+ var localizationVariantGroup = {
1984
+ uuid: this.generateUuid(),
1985
+ fileRef: groupKey,
1986
+ basename: name
1987
+ }
1988
+ this.addToPbxBuildFileSection(localizationVariantGroup); // PBXBuildFile
1989
+ this.addToPbxResourcesBuildPhase(localizationVariantGroup); //PBXResourcesBuildPhase
1990
+
1991
+ return localizationVariantGroup;
1992
+ };
1993
+
1994
+ pbxProject.prototype.addKnownRegion = function (name) {
1995
+ if (!this.pbxProjectSection()[this.getFirstProject()['uuid']]['knownRegions']) {
1996
+ this.pbxProjectSection()[this.getFirstProject()['uuid']]['knownRegions'] = [];
1997
+ }
1998
+ if (!this.hasKnownRegion(name)) {
1999
+ this.pbxProjectSection()[this.getFirstProject()['uuid']]['knownRegions'].push(name);
2000
+ }
2001
+ }
2002
+
2003
+ pbxProject.prototype.removeKnownRegion = function (name) {
2004
+ var regions = this.pbxProjectSection()[this.getFirstProject()['uuid']]['knownRegions'];
2005
+ if (regions) {
2006
+ for (var i = 0; i < regions.length; i++) {
2007
+ if (regions[i] === name) {
2008
+ regions.splice(i, 1);
2009
+ break;
2010
+ }
2011
+ }
2012
+ this.pbxProjectSection()[this.getFirstProject()['uuid']]['knownRegions'] = regions;
2013
+ }
2014
+ }
2015
+
2016
+ pbxProject.prototype.hasKnownRegion = function (name) {
2017
+ var regions = this.pbxProjectSection()[this.getFirstProject()['uuid']]['knownRegions'];
2018
+ if (regions) {
2019
+ for (var i in regions) {
2020
+ if (regions[i] === name) {
2021
+ return true;
2022
+ }
2023
+ }
2024
+ }
2025
+ return false;
2026
+ }
2027
+
2028
+ pbxProject.prototype.getPBXObject = function(name) {
2029
+ return this.hash.project.objects[name];
2030
+ }
2031
+
2032
+
2033
+
2034
+ pbxProject.prototype.addFile = function (path, group, opt) {
2035
+ var file = new pbxFile(path, opt);
2036
+
2037
+ // null is better for early errors
2038
+ if (this.hasFile(file.path)) return null;
2039
+
2040
+ file.fileRef = this.generateUuid();
2041
+
2042
+ this.addToPbxFileReferenceSection(file); // PBXFileReference
2043
+
2044
+ if (this.getPBXGroupByKey(group)) {
2045
+ this.addToPbxGroup(file, group); // PBXGroup
2046
+ }
2047
+ else if (this.getPBXVariantGroupByKey(group)) {
2048
+ this.addToPbxVariantGroup(file, group); // PBXVariantGroup
2049
+ }
2050
+
2051
+ return file;
2052
+ }
2053
+
2054
+ pbxProject.prototype.removeFile = function (path, group, opt) {
2055
+ var file = new pbxFile(path, opt);
2056
+
2057
+ this.removeFromPbxFileReferenceSection(file); // PBXFileReference
2058
+
2059
+ if (this.getPBXGroupByKey(group)) {
2060
+ this.removeFromPbxGroup(file, group); // PBXGroup
2061
+ }
2062
+ else if (this.getPBXVariantGroupByKey(group)) {
2063
+ this.removeFromPbxVariantGroup(file, group); // PBXVariantGroup
2064
+ }
2065
+
2066
+ return file;
2067
+ }
2068
+
2069
+
2070
+
2071
+ pbxProject.prototype.getBuildProperty = function(prop, build, targetName) {
2072
+ var target;
2073
+ let validConfigs = [];
2074
+
2075
+ if (targetName) {
2076
+ const target = this.pbxTargetByName(targetName);
2077
+ const targetBuildConfigs = target && target.buildConfigurationList;
2078
+
2079
+ const xcConfigList = this.pbxXCConfigurationList();
2080
+
2081
+ // Collect the UUID's from the configuration of our target
2082
+ for (const configName in xcConfigList) {
2083
+ if (!COMMENT_KEY.test(configName) && targetBuildConfigs === configName) {
2084
+ const buildVariants = xcConfigList[configName].buildConfigurations;
2085
+
2086
+ for (const item of buildVariants) {
2087
+ validConfigs.push(item.value);
2088
+ }
2089
+
2090
+ break;
2091
+ }
2092
+ }
2093
+ }
2094
+
2095
+ var configs = this.pbxXCBuildConfigurationSection();
2096
+ for (var configName in configs) {
2097
+ if (!COMMENT_KEY.test(configName)) {
2098
+ if (targetName && !validConfigs.includes(configName)) continue;
2099
+ var config = configs[configName];
2100
+ if ( (build && config.name === build) || (build === undefined) ) {
2101
+ if (config.buildSettings[prop] !== undefined) {
2102
+ target = config.buildSettings[prop];
2103
+ }
2104
+ }
2105
+ }
2106
+ }
2107
+ return target;
2108
+ }
2109
+
2110
+ pbxProject.prototype.getBuildConfigByName = function(name) {
2111
+ var target = {};
2112
+ var configs = this.pbxXCBuildConfigurationSection();
2113
+ for (var configName in configs) {
2114
+ if (!COMMENT_KEY.test(configName)) {
2115
+ var config = configs[configName];
2116
+ if (config.name === name) {
2117
+ target[configName] = config;
2118
+ }
2119
+ }
2120
+ }
2121
+ return target;
2122
+ }
2123
+
2124
+ pbxProject.prototype.addDataModelDocument = function(filePath, group, opt) {
2125
+ if (!group) {
2126
+ group = 'Resources';
2127
+ }
2128
+ if (!this.getPBXGroupByKey(group)) {
2129
+ group = this.findPBXGroupKey({ name: group });
2130
+ }
2131
+
2132
+ var file = new pbxFile(filePath, opt);
2133
+
2134
+ if (!file || this.hasFile(file.path)) return null;
2135
+
2136
+ file.fileRef = this.generateUuid();
2137
+ this.addToPbxGroup(file, group);
2138
+
2139
+ if (!file) return false;
2140
+
2141
+ file.target = opt ? opt.target : undefined;
2142
+ file.uuid = this.generateUuid();
2143
+
2144
+ this.addToPbxBuildFileSection(file);
2145
+ this.addToPbxSourcesBuildPhase(file);
2146
+
2147
+ file.models = [];
2148
+ var currentVersionName;
2149
+ var modelFiles = fs.readdirSync(file.path);
2150
+ for (var index in modelFiles) {
2151
+ var modelFileName = modelFiles[index];
2152
+ var modelFilePath = path.join(filePath, modelFileName);
2153
+
2154
+ if (modelFileName == '.xccurrentversion') {
2155
+ currentVersionName = plist.readFileSync(modelFilePath)._XCCurrentVersionName;
2156
+ continue;
2157
+ }
2158
+
2159
+ var modelFile = new pbxFile(modelFilePath);
2160
+ modelFile.fileRef = this.generateUuid();
2161
+
2162
+ this.addToPbxFileReferenceSection(modelFile);
2163
+
2164
+ file.models.push(modelFile);
2165
+
2166
+ if (currentVersionName && currentVersionName === modelFileName) {
2167
+ file.currentModel = modelFile;
2168
+ }
2169
+ }
2170
+
2171
+ if (!file.currentModel) {
2172
+ file.currentModel = file.models[0];
2173
+ }
2174
+
2175
+ this.addToXcVersionGroupSection(file);
2176
+
2177
+ return file;
2178
+ }
2179
+
2180
+ pbxProject.prototype.addTargetAttribute = function(prop, value, target) {
2181
+ var attributes = this.getFirstProject()['firstProject']['attributes'];
2182
+ if (attributes['TargetAttributes'] === undefined) {
2183
+ attributes['TargetAttributes'] = {};
2184
+ }
2185
+ target = target || this.getFirstTarget();
2186
+ if (attributes['TargetAttributes'][target.uuid] === undefined) {
2187
+ attributes['TargetAttributes'][target.uuid] = {};
2188
+ }
2189
+ attributes['TargetAttributes'][target.uuid][prop] = value;
2190
+ }
2191
+
2192
+ pbxProject.prototype.removeTargetAttribute = function(prop, target) {
2193
+ var attributes = this.getFirstProject()['firstProject']['attributes'];
2194
+ target = target || this.getFirstTarget();
2195
+ if (attributes['TargetAttributes'] &&
2196
+ attributes['TargetAttributes'][target.uuid]) {
2197
+ delete attributes['TargetAttributes'][target.uuid][prop];
2198
+ }
2199
+ }
2200
+
2201
+ module.exports = pbxProject;