@sentry/wizard 3.39.0 → 3.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/README.md +21 -21
  3. package/bin.ts +5 -0
  4. package/codecov.yml +15 -0
  5. package/dist/bin.js +4 -0
  6. package/dist/bin.js.map +1 -1
  7. package/dist/e2e-tests/jest.config.d.ts +1 -0
  8. package/dist/e2e-tests/jest.config.js +1 -0
  9. package/dist/e2e-tests/jest.config.js.map +1 -1
  10. package/dist/e2e-tests/tests/flutter.test.d.ts +1 -0
  11. package/dist/e2e-tests/tests/flutter.test.js +190 -0
  12. package/dist/e2e-tests/tests/flutter.test.js.map +1 -0
  13. package/dist/e2e-tests/utils/index.d.ts +11 -0
  14. package/dist/e2e-tests/utils/index.js +36 -1
  15. package/dist/e2e-tests/utils/index.js.map +1 -1
  16. package/dist/lib/Constants.d.ts +1 -0
  17. package/dist/lib/Constants.js +5 -0
  18. package/dist/lib/Constants.js.map +1 -1
  19. package/dist/package.json +3 -2
  20. package/dist/src/apple/apple-wizard.js +2 -3
  21. package/dist/src/apple/apple-wizard.js.map +1 -1
  22. package/dist/src/apple/code-tools.d.ts +10 -0
  23. package/dist/src/apple/code-tools.js +16 -12
  24. package/dist/src/apple/code-tools.js.map +1 -1
  25. package/dist/src/apple/fastlane.d.ts +23 -0
  26. package/dist/src/apple/fastlane.js +11 -7
  27. package/dist/src/apple/fastlane.js.map +1 -1
  28. package/dist/src/apple/templates.d.ts +1 -1
  29. package/dist/src/apple/templates.js +0 -2
  30. package/dist/src/apple/templates.js.map +1 -1
  31. package/dist/src/apple/xcode-manager.d.ts +13 -9
  32. package/dist/src/apple/xcode-manager.js +146 -61
  33. package/dist/src/apple/xcode-manager.js.map +1 -1
  34. package/dist/src/flutter/code-tools.d.ts +17 -0
  35. package/dist/src/flutter/code-tools.js +263 -0
  36. package/dist/src/flutter/code-tools.js.map +1 -0
  37. package/dist/src/flutter/flutter-wizard.d.ts +2 -0
  38. package/dist/src/flutter/flutter-wizard.js +171 -0
  39. package/dist/src/flutter/flutter-wizard.js.map +1 -0
  40. package/dist/src/flutter/templates.d.ts +9 -0
  41. package/dist/src/flutter/templates.js +40 -0
  42. package/dist/src/flutter/templates.js.map +1 -0
  43. package/dist/src/nextjs/nextjs-wizard.js +5 -3
  44. package/dist/src/nextjs/nextjs-wizard.js.map +1 -1
  45. package/dist/src/nuxt/nuxt-wizard.js +6 -4
  46. package/dist/src/nuxt/nuxt-wizard.js.map +1 -1
  47. package/dist/src/nuxt/sdk-setup.d.ts +1 -1
  48. package/dist/src/nuxt/sdk-setup.js +2 -1
  49. package/dist/src/nuxt/sdk-setup.js.map +1 -1
  50. package/dist/src/react-native/react-native-wizard.js +5 -3
  51. package/dist/src/react-native/react-native-wizard.js.map +1 -1
  52. package/dist/src/remix/remix-wizard.js +5 -3
  53. package/dist/src/remix/remix-wizard.js.map +1 -1
  54. package/dist/src/run.d.ts +2 -1
  55. package/dist/src/run.js +40 -32
  56. package/dist/src/run.js.map +1 -1
  57. package/dist/src/sveltekit/sveltekit-wizard.js +5 -3
  58. package/dist/src/sveltekit/sveltekit-wizard.js.map +1 -1
  59. package/dist/src/utils/clack-utils.d.ts +4 -2
  60. package/dist/src/utils/clack-utils.js +18 -12
  61. package/dist/src/utils/clack-utils.js.map +1 -1
  62. package/dist/src/utils/package-manager.d.ts +1 -0
  63. package/dist/src/utils/package-manager.js +5 -0
  64. package/dist/src/utils/package-manager.js.map +1 -1
  65. package/dist/src/utils/types.d.ts +9 -0
  66. package/dist/src/utils/types.js.map +1 -1
  67. package/dist/test/apple/cocoapod.test.d.ts +1 -0
  68. package/dist/test/apple/cocoapod.test.js +409 -0
  69. package/dist/test/apple/cocoapod.test.js.map +1 -0
  70. package/dist/test/apple/code-tools.test.d.ts +1 -0
  71. package/dist/test/apple/code-tools.test.js +673 -0
  72. package/dist/test/apple/code-tools.test.js.map +1 -0
  73. package/dist/test/apple/fastfile.test.d.ts +1 -0
  74. package/dist/test/apple/fastfile.test.js +431 -0
  75. package/dist/test/apple/fastfile.test.js.map +1 -0
  76. package/dist/test/apple/templates.test.d.ts +1 -0
  77. package/dist/test/apple/templates.test.js +73 -0
  78. package/dist/test/apple/templates.test.js.map +1 -0
  79. package/dist/test/apple/xcode-manager.test.d.ts +1 -0
  80. package/dist/test/apple/xcode-manager.test.js +834 -0
  81. package/dist/test/apple/xcode-manager.test.js.map +1 -0
  82. package/dist/test/flutter/code-tools.test.d.ts +1 -0
  83. package/dist/test/flutter/code-tools.test.js +84 -0
  84. package/dist/test/flutter/code-tools.test.js.map +1 -0
  85. package/dist/test/flutter/templates.test.d.ts +1 -0
  86. package/dist/test/flutter/templates.test.js +41 -0
  87. package/dist/test/flutter/templates.test.js.map +1 -0
  88. package/dist/test/utils/clack-utils.test.js +89 -0
  89. package/dist/test/utils/clack-utils.test.js.map +1 -1
  90. package/e2e-tests/README.md +5 -1
  91. package/e2e-tests/jest.config.ts +1 -0
  92. package/e2e-tests/test-applications/apple/damaged-missing-configuration-list/Project.xcodeproj/project.pbxproj +52 -0
  93. package/e2e-tests/test-applications/apple/damaged-missing-configuration-list/Project.xcodeproj/xcshareddata/xcschemes/Project1.xcscheme +78 -0
  94. package/e2e-tests/test-applications/apple/no-targets/Project.xcodeproj/project.pbxproj +62 -0
  95. package/e2e-tests/test-applications/apple/no-targets/Project.xcodeproj/xcshareddata/xcschemes/Project1.xcscheme +78 -0
  96. package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project.xcodeproj/project.pbxproj +470 -0
  97. package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project.xcodeproj/xcshareddata/xcschemes/Project1.xcscheme +78 -0
  98. package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project1/ContentView.swift +7 -0
  99. package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project1/Project1App.swift +10 -0
  100. package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project2/ContentView.swift +7 -0
  101. package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project2/Project2App.swift +10 -0
  102. package/e2e-tests/test-applications/apple/spm-swiftui-single-target/Project.xcodeproj/project.pbxproj +382 -0
  103. package/e2e-tests/test-applications/apple/spm-swiftui-single-target/Project.xcodeproj/xcshareddata/xcschemes/Project.xcscheme +78 -0
  104. package/e2e-tests/test-applications/apple/spm-swiftui-single-target/Sources/ContentView.swift +7 -0
  105. package/e2e-tests/test-applications/apple/spm-swiftui-single-target/Sources/MainApp.swift +10 -0
  106. package/e2e-tests/test-applications/flutter-test-app/.metadata +45 -0
  107. package/e2e-tests/test-applications/flutter-test-app/README.md +16 -0
  108. package/e2e-tests/test-applications/flutter-test-app/analysis_options.yaml +28 -0
  109. package/e2e-tests/test-applications/flutter-test-app/android/app/build.gradle +44 -0
  110. package/e2e-tests/test-applications/flutter-test-app/android/app/src/debug/AndroidManifest.xml +7 -0
  111. package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/AndroidManifest.xml +45 -0
  112. package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/kotlin/com/example/flutter_magic/MainActivity.kt +5 -0
  113. package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/drawable/launch_background.xml +12 -0
  114. package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/drawable-v21/launch_background.xml +12 -0
  115. package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  116. package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  117. package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  118. package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  119. package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  120. package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/values/styles.xml +18 -0
  121. package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/values-night/styles.xml +18 -0
  122. package/e2e-tests/test-applications/flutter-test-app/android/app/src/profile/AndroidManifest.xml +7 -0
  123. package/e2e-tests/test-applications/flutter-test-app/android/build.gradle +18 -0
  124. package/e2e-tests/test-applications/flutter-test-app/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  125. package/e2e-tests/test-applications/flutter-test-app/android/gradle.properties +3 -0
  126. package/e2e-tests/test-applications/flutter-test-app/android/settings.gradle +25 -0
  127. package/e2e-tests/test-applications/flutter-test-app/lib/main.dart +125 -0
  128. package/e2e-tests/test-applications/flutter-test-app/linux/CMakeLists.txt +145 -0
  129. package/e2e-tests/test-applications/flutter-test-app/linux/flutter/CMakeLists.txt +88 -0
  130. package/e2e-tests/test-applications/flutter-test-app/linux/flutter/generated_plugin_registrant.cc +11 -0
  131. package/e2e-tests/test-applications/flutter-test-app/linux/flutter/generated_plugin_registrant.h +15 -0
  132. package/e2e-tests/test-applications/flutter-test-app/linux/flutter/generated_plugins.cmake +23 -0
  133. package/e2e-tests/test-applications/flutter-test-app/linux/main.cc +6 -0
  134. package/e2e-tests/test-applications/flutter-test-app/linux/my_application.cc +124 -0
  135. package/e2e-tests/test-applications/flutter-test-app/linux/my_application.h +18 -0
  136. package/e2e-tests/test-applications/flutter-test-app/macos/Flutter/Flutter-Debug.xcconfig +2 -0
  137. package/e2e-tests/test-applications/flutter-test-app/macos/Flutter/Flutter-Release.xcconfig +2 -0
  138. package/e2e-tests/test-applications/flutter-test-app/macos/Flutter/GeneratedPluginRegistrant.swift +10 -0
  139. package/e2e-tests/test-applications/flutter-test-app/macos/Podfile +43 -0
  140. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/AppDelegate.swift +9 -0
  141. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +68 -0
  142. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png +0 -0
  143. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png +0 -0
  144. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png +0 -0
  145. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png +0 -0
  146. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png +0 -0
  147. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png +0 -0
  148. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png +0 -0
  149. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Base.lproj/MainMenu.xib +343 -0
  150. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Configs/AppInfo.xcconfig +14 -0
  151. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Configs/Debug.xcconfig +2 -0
  152. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Configs/Release.xcconfig +2 -0
  153. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Configs/Warnings.xcconfig +13 -0
  154. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/DebugProfile.entitlements +12 -0
  155. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Info.plist +32 -0
  156. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/MainFlutterWindow.swift +15 -0
  157. package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Release.entitlements +8 -0
  158. package/e2e-tests/test-applications/flutter-test-app/macos/Runner.xcodeproj/project.pbxproj +705 -0
  159. package/e2e-tests/test-applications/flutter-test-app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  160. package/e2e-tests/test-applications/flutter-test-app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +98 -0
  161. package/e2e-tests/test-applications/flutter-test-app/macos/Runner.xcworkspace/contents.xcworkspacedata +7 -0
  162. package/e2e-tests/test-applications/flutter-test-app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  163. package/e2e-tests/test-applications/flutter-test-app/macos/RunnerTests/RunnerTests.swift +12 -0
  164. package/e2e-tests/test-applications/flutter-test-app/pubspec.lock +213 -0
  165. package/e2e-tests/test-applications/flutter-test-app/pubspec.yaml +89 -0
  166. package/e2e-tests/test-applications/flutter-test-app/test/widget_test.dart +30 -0
  167. package/e2e-tests/test-applications/flutter-test-app/web/favicon.png +0 -0
  168. package/e2e-tests/test-applications/flutter-test-app/web/icons/Icon-192.png +0 -0
  169. package/e2e-tests/test-applications/flutter-test-app/web/icons/Icon-512.png +0 -0
  170. package/e2e-tests/test-applications/flutter-test-app/web/icons/Icon-maskable-192.png +0 -0
  171. package/e2e-tests/test-applications/flutter-test-app/web/icons/Icon-maskable-512.png +0 -0
  172. package/e2e-tests/test-applications/flutter-test-app/web/index.html +38 -0
  173. package/e2e-tests/test-applications/flutter-test-app/web/manifest.json +35 -0
  174. package/e2e-tests/test-applications/flutter-test-app/windows/CMakeLists.txt +108 -0
  175. package/e2e-tests/test-applications/flutter-test-app/windows/flutter/CMakeLists.txt +109 -0
  176. package/e2e-tests/test-applications/flutter-test-app/windows/flutter/generated_plugin_registrant.cc +11 -0
  177. package/e2e-tests/test-applications/flutter-test-app/windows/flutter/generated_plugin_registrant.h +15 -0
  178. package/e2e-tests/test-applications/flutter-test-app/windows/flutter/generated_plugins.cmake +23 -0
  179. package/e2e-tests/test-applications/flutter-test-app/windows/runner/CMakeLists.txt +40 -0
  180. package/e2e-tests/test-applications/flutter-test-app/windows/runner/Runner.rc +121 -0
  181. package/e2e-tests/test-applications/flutter-test-app/windows/runner/flutter_window.cpp +71 -0
  182. package/e2e-tests/test-applications/flutter-test-app/windows/runner/flutter_window.h +33 -0
  183. package/e2e-tests/test-applications/flutter-test-app/windows/runner/main.cpp +43 -0
  184. package/e2e-tests/test-applications/flutter-test-app/windows/runner/resource.h +16 -0
  185. package/e2e-tests/test-applications/flutter-test-app/windows/runner/resources/app_icon.ico +0 -0
  186. package/e2e-tests/test-applications/flutter-test-app/windows/runner/runner.exe.manifest +14 -0
  187. package/e2e-tests/test-applications/flutter-test-app/windows/runner/utils.cpp +65 -0
  188. package/e2e-tests/test-applications/flutter-test-app/windows/runner/utils.h +19 -0
  189. package/e2e-tests/test-applications/flutter-test-app/windows/runner/win32_window.cpp +288 -0
  190. package/e2e-tests/test-applications/flutter-test-app/windows/runner/win32_window.h +102 -0
  191. package/e2e-tests/tests/flutter.test.ts +127 -0
  192. package/e2e-tests/utils/index.ts +33 -0
  193. package/lib/Constants.ts +5 -0
  194. package/package.json +3 -2
  195. package/src/apple/apple-wizard.ts +2 -3
  196. package/src/apple/code-tools.ts +21 -6
  197. package/src/apple/fastlane.ts +18 -2
  198. package/src/apple/templates.ts +2 -2
  199. package/src/apple/xcode-manager.ts +186 -99
  200. package/src/flutter/code-tools.ts +284 -0
  201. package/src/flutter/flutter-wizard.ts +164 -0
  202. package/src/flutter/templates.ts +90 -0
  203. package/src/nextjs/nextjs-wizard.ts +5 -2
  204. package/src/nuxt/nuxt-wizard.ts +6 -3
  205. package/src/nuxt/sdk-setup.ts +2 -0
  206. package/src/react-native/react-native-wizard.ts +5 -2
  207. package/src/remix/remix-wizard.ts +5 -2
  208. package/src/run.ts +9 -0
  209. package/src/sveltekit/sveltekit-wizard.ts +5 -2
  210. package/src/utils/clack-utils.ts +16 -4
  211. package/src/utils/package-manager.ts +6 -0
  212. package/src/utils/types.ts +10 -0
  213. package/test/apple/cocoapod.test.ts +306 -0
  214. package/test/apple/code-tools.test.ts +1042 -0
  215. package/test/apple/fastfile.test.ts +550 -0
  216. package/test/apple/templates.test.ts +191 -0
  217. package/test/apple/xcode-manager.test.ts +1066 -0
  218. package/test/flutter/code-tools.test.ts +212 -0
  219. package/test/flutter/templates.test.ts +100 -0
  220. package/test/utils/clack-utils.test.ts +92 -0
  221. package/types/xcode.d.ts +526 -0
@@ -0,0 +1,526 @@
1
+ // The xcode package is not typed, so we need to manually maintain this file.
2
+ // This typing is created by hand and needs to be updated when the types change.
3
+ // As most fields are from parsing Xcode project files, it is hard to tell which fields are optional.
4
+ // Therefore most fields are marked as nullable, except the ones we are certain about.
5
+
6
+ declare module 'xcode' {
7
+ interface PBXFileOptions {
8
+ lastKnownFileType?: string;
9
+ group?: string;
10
+ customFramework?: boolean;
11
+ defaultEncoding?: string;
12
+ explicitFileType?: string;
13
+ sourceTree?: string;
14
+ weak?: boolean;
15
+ compilerFlags?: string;
16
+ embed?: boolean;
17
+ sign?: boolean;
18
+ }
19
+
20
+ class PBXFile {
21
+ basename?: string;
22
+ lastKnownFileType?: string;
23
+ group?: string;
24
+ customFramework?: boolean;
25
+ dirname?: string;
26
+ path?: string;
27
+ fileEncoding?: string;
28
+ explicitFileType?: string;
29
+ defaultEncoding?: string;
30
+ sourceTree?: string;
31
+ includeInIndex?: number;
32
+ settings?: {
33
+ ATTRIBUTES?: string[];
34
+ COMPILER_FLAGS?: string;
35
+ };
36
+
37
+ constructor(filepath: string, opt?: PBXFileOptions);
38
+ }
39
+
40
+ export interface PBXBuildFile {
41
+ isa: 'PBXBuildFile';
42
+ fileRef?: string;
43
+ fileRef_comment?: string;
44
+ productRef?: string;
45
+ productRef_comment?: string;
46
+ settings?: {
47
+ ATTRIBUTES?: string[];
48
+ COMPILER_FLAGS?: string;
49
+ };
50
+ }
51
+
52
+ interface PBXWriterOptions {
53
+ omitEmptyValues?: boolean;
54
+ }
55
+
56
+ class PBXWriter {
57
+ constructor(contents: string, options: PBXWriterOptions);
58
+
59
+ write(output: string): void;
60
+ writeFlush(output: string): void;
61
+ writeSync(): string;
62
+ writeHeadComment(): void;
63
+ writeProject(): void;
64
+ writeObject(object: Record<string, Array | object | string | number>): void;
65
+ writeObjectsSections(
66
+ objects: Record<string, Array | object | string | number>,
67
+ ): void;
68
+ writeArray(
69
+ arr: Array<
70
+ | {
71
+ value?: string;
72
+ comment?: string;
73
+ }
74
+ | Record<string, Array | object | string | number>
75
+ >,
76
+ name: string,
77
+ ): void;
78
+
79
+ writeSectionComment(name: string, begin: boolean): void;
80
+ writeSection(
81
+ section: Record<string, Array | object | string | number>,
82
+ ): void;
83
+ writeInlineObject(
84
+ name: string,
85
+ comment: string,
86
+ object: Record<string, Array | object | string | number>,
87
+ ): void;
88
+ }
89
+
90
+ export interface PBXNativeTarget {
91
+ name: string;
92
+ productType: string;
93
+
94
+ buildConfigurationList?: string;
95
+ buildConfigurationList_comment?: string;
96
+ buildPhases?: {
97
+ value: string;
98
+ comment?: string;
99
+ }[];
100
+ buildRules?: {
101
+ [key: string]: unknown;
102
+ }[];
103
+ dependencies?: {
104
+ [key: string]: unknown;
105
+ }[];
106
+ fileSystemSynchronizedGroups?: {
107
+ value: string;
108
+ comment?: string;
109
+ }[];
110
+ packageProductDependencies?: {
111
+ value: string;
112
+ comment: string;
113
+ }[];
114
+ productName?: string;
115
+ productReference?: string;
116
+ productReference_comment?: string;
117
+ productType?: string;
118
+ }
119
+
120
+ export interface XCConfigurationList {
121
+ buildConfigurations?: {
122
+ value: string;
123
+ }[];
124
+ }
125
+
126
+ export interface PBXGroup {
127
+ path?: string;
128
+ children?: {
129
+ value: string;
130
+ comment?: string;
131
+ }[];
132
+ }
133
+
134
+ interface PBXCopyFilesBuildPhase {
135
+ [key: string]: unknown;
136
+ }
137
+
138
+ export interface XCBuildConfiguration {
139
+ buildSettings?: {
140
+ [key: string]: string;
141
+ };
142
+ }
143
+
144
+ export interface PBXFrameworksBuildPhase {
145
+ files?: {
146
+ value: string;
147
+ comment?: string;
148
+ }[];
149
+ }
150
+
151
+ interface XCRemoteSwiftPackageReference {
152
+ isa: 'XCRemoteSwiftPackageReference';
153
+ repositoryURL: string;
154
+ requirement: {
155
+ kind: string;
156
+ minimumVersion: string;
157
+ };
158
+ }
159
+
160
+ interface XCSwiftPackageProductDependency {
161
+ isa: 'XCSwiftPackageProductDependency';
162
+ package: string;
163
+ productName: string;
164
+ package_comment?: string;
165
+ }
166
+
167
+ export interface PBXShellScriptBuildPhase {
168
+ shellScript: string;
169
+ inputFileListPaths?: string[];
170
+ outputFileListPaths?: string[];
171
+ inputPaths?: string[];
172
+ outputPaths?: string[];
173
+ shellPath?: string;
174
+ }
175
+
176
+ export interface PBXSourcesBuildPhase {
177
+ files?: {
178
+ value: string;
179
+ comment?: string;
180
+ }[];
181
+ }
182
+
183
+ export interface PBXFileReference {
184
+ path: string;
185
+ }
186
+
187
+ export interface PBXObjects {
188
+ PBXBuildFile?: {
189
+ [key: string]: PBXBuildFile | string;
190
+ };
191
+ PBXCopyFilesBuildPhase?: {
192
+ [key: string]: PBXCopyFilesBuildPhase | string;
193
+ };
194
+ PBXFileReference?: {
195
+ [key: string]: PBXFileReference | string;
196
+ };
197
+ PBXFrameworksBuildPhase?: {
198
+ [key: string]: PBXFrameworksBuildPhase | string;
199
+ };
200
+ PBXGroup?: {
201
+ [key: string]: PBXGroup | string;
202
+ };
203
+ PBXNativeTarget?: {
204
+ [key: string]: PBXNativeTarget | string;
205
+ };
206
+ PBXProject?: {
207
+ [key: string]: PBXProject | string;
208
+ };
209
+ PBXShellScriptBuildPhase?: {
210
+ [key: string]: PBXShellScriptBuildPhase | string;
211
+ };
212
+ PBXSourcesBuildPhase?: {
213
+ [key: string]: PBXSourcesBuildPhase | string;
214
+ };
215
+
216
+ XCBuildConfiguration?: {
217
+ [key: string]: XCBuildConfiguration | string;
218
+ };
219
+ /**
220
+ * The XCConfigurationList is not always present in the project file.
221
+ *
222
+ * If the configuration list is not present, Xcode will declare the project as damaged.
223
+ */
224
+ XCConfigurationList?: {
225
+ [key: string]: XCConfigurationList | string;
226
+ };
227
+ XCRemoteSwiftPackageReference?: {
228
+ [key: string]: XCRemoteSwiftPackageReference | string;
229
+ };
230
+ XCSwiftPackageProductDependency?: {
231
+ [key: string]: XCSwiftPackageProductDependency | string;
232
+ };
233
+
234
+ mainGroup: string;
235
+ packageReferences?: {
236
+ value: string;
237
+ comment?: string;
238
+ }[];
239
+ }
240
+
241
+ export interface PBXProject {
242
+ attributes?: {
243
+ BuildIndependentTargetsInParallel?: number;
244
+ LastSwiftUpdateCheck?: number;
245
+ LastUpgradeCheck?: number;
246
+ TargetAttributes?: {
247
+ [key: string]: {
248
+ CreatedOnToolsVersion?: string;
249
+ };
250
+ };
251
+ };
252
+ buildConfigurationList?: string;
253
+ buildConfigurationList_comment?: string;
254
+ developmentRegion?: string;
255
+ hasScannedForEncodings?: number;
256
+ knownRegions?: string[];
257
+ mainGroup?: string;
258
+ minimizedProjectReferenceProxies?: number;
259
+ preferredProjectObjectVersion?: number;
260
+ productRefGroup?: string;
261
+ productRefGroup_comment?: string;
262
+ projectDirPath?: string;
263
+ projectRoot?: string;
264
+ targets?: {
265
+ value: string;
266
+ comment?: string;
267
+ }[];
268
+ }
269
+
270
+ export class Project extends import('events').EventEmitter {
271
+ hash: {
272
+ project: {
273
+ objects: PBXObjects;
274
+ };
275
+ };
276
+
277
+ filepath: string;
278
+
279
+ constructor(filename: string);
280
+
281
+ parse(cb: (err: Error | null) => void): void;
282
+ parseSync(): void;
283
+
284
+ writeSync(options?: PBXWriterOptions): string;
285
+ allUuids(): string[];
286
+ generateUuid(): string;
287
+
288
+ addPluginFile(path: string, opt?: PBXFileOptions): void;
289
+ removePluginFile(path: string, opt?: PBXFileOptions): void;
290
+
291
+ addProductFile(targetPath: string, opt?: PBXFileOptions): void;
292
+ removeProductFile(path: string, opt?: PBXFileOptions): void;
293
+
294
+ addSourceFile(path: string, opt?: PBXFileOptions, group?: string): void;
295
+ removeSourceFile(path: string, opt?: PBXFileOptions, group?: string): void;
296
+
297
+ addHeaderFile(path: string, opt?: PBXFileOptions, group?: string): void;
298
+ removeHeaderFile(path: string, opt?: PBXFileOptions, group?: string): void;
299
+
300
+ addResourceFile(path: string, opt?: PBXFileOptions, group?: string): void;
301
+ removeResourceFile(
302
+ path: string,
303
+ opt?: PBXFileOptions,
304
+ group?: string,
305
+ ): void;
306
+
307
+ addFramework(fpath: string, opt?: PBXFileOptions): void;
308
+ removeFramework(fpath: string, opt?: PBXFileOptions): void;
309
+
310
+ addCopyfile(fpath: string, opt?: PBXFileOptions): void;
311
+ removeCopyfile(fpath: string, opt?: PBXFileOptions): void;
312
+
313
+ pbxCopyfilesBuildPhaseObj(target: string): PBXObjects;
314
+ addToPbxCopyfilesBuildPhase(file: PBXObjects): void;
315
+ removeFromPbxCopyfilesBuildPhase(file: PBXObjects): void;
316
+
317
+ addStaticLibrary(
318
+ path: string,
319
+ opt: {
320
+ plugin?: boolean;
321
+ target?: string;
322
+ },
323
+ ): void;
324
+
325
+ addToPbxBuildFileSection(file: PBXFile): void;
326
+ removeFromPbxBuildFileSection(file: PBXFile): void;
327
+
328
+ addPbxGroup(
329
+ filePathsArray: string[],
330
+ name: string,
331
+ path: string,
332
+ sourceTree: string,
333
+ ): void;
334
+ removePbxGroup(name: string): void;
335
+
336
+ addToPbxProjectSection(target: PBXNativeTarget): void;
337
+ addToPbxNativeTargetSection(target: PBXNativeTarget): void;
338
+ addToPbxFileReferenceSection(file: PBXFile): void;
339
+
340
+ removeFromPbxFileReferenceSection(file: PBXFile): void;
341
+
342
+ addToXcVersionGroupSection(file: PBXFile): void;
343
+
344
+ addToPluginsPbxGroup(file: PBXFile): void;
345
+ removeFromPluginsPbxGroup(file: PBXFile): void;
346
+
347
+ addToResourcesPbxGroup(file: PBXFile): void;
348
+ removeFromResourcesPbxGroup(file: PBXFile): void;
349
+
350
+ addToFrameworksPbxGroup(file: PBXFile): void;
351
+ removeFromFrameworksPbxGroup(file: PBXFile): void;
352
+
353
+ addToProductsPbxGroup(file: PBXFile): void;
354
+ removeFromProductsPbxGroup(file: PBXFile): void;
355
+
356
+ addToPbxSourcesBuildPhase(file: PBXFile): void;
357
+ removeFromPbxSourcesBuildPhase(file: PBXFile): void;
358
+
359
+ addToPbxResourcesBuildPhase(file: PBXFile): void;
360
+ removeFromPbxResourcesBuildPhase(file: PBXFile): void;
361
+
362
+ addToPbxFrameworksBuildPhase(file: PBXFile): void;
363
+ removeFromPbxFrameworksBuildPhase(file: PBXFile): void;
364
+
365
+ addXCConfigurationList(
366
+ configurationObjectsArray: string[],
367
+ defaultConfigurationName: string,
368
+ comment: string,
369
+ ): void;
370
+
371
+ addTargetDependency(target: string, dependencyTargets: string[]): void;
372
+
373
+ addBuildPhase(
374
+ filePathsArray: string[],
375
+ buildPhaseType: 'PBXShellScriptBuildPhase',
376
+ comment: string,
377
+ target: string,
378
+ optionsOrFolderType:
379
+ | {
380
+ inputPaths: string[];
381
+ outputPaths?: string[];
382
+ inputFileListPaths: string[];
383
+ outputFileListPaths: string[];
384
+ shellPath: string;
385
+ shellScript: string;
386
+ }
387
+ | string,
388
+ subfolderPath?: string,
389
+ ): void;
390
+
391
+ pbxProjectSection(): PBXObjects;
392
+ pbxBuildFileSection(): PBXObjects;
393
+ pbxXCBuildConfigurationSection(): PBXObjects;
394
+ pbxFileReferenceSection(): PBXObjects;
395
+ pbxNativeTargetSection(): PBXObjects;
396
+ xcVersionGroupSection(): PBXObjects;
397
+
398
+ pbxXCConfigurationList(): PBXObjects;
399
+ pbxGroupByName(name: string): PBXObjects;
400
+ pbxTargetByName(name: string): PBXObjects;
401
+ findTargetKey(name: string): string;
402
+
403
+ pbxItemByComment(name: string, pbxSectionName: string): PBXObjects;
404
+ pbxSourcesBuildPhaseObj(target: string): PBXObjects;
405
+ pbxResourcesBuildPhaseObj(target: string): PBXObjects;
406
+ pbxFrameworksBuildPhaseObj(target: string): PBXObjects;
407
+ pbxEmbedFrameworksBuildPhaseObj(target: string): PBXObjects;
408
+
409
+ buildPhase(group: string, target: string): PBXObjects;
410
+ buildPhaseObject(name: string, group: string, target: string): PBXObjects;
411
+
412
+ addBuildProperty(prop: string, value: string, build_name: string): void;
413
+ removeBuildProperty(prop: string, build_name: string): void;
414
+
415
+ updateBuildProperty(
416
+ prop: string,
417
+ value: string,
418
+ build: string,
419
+ targetName: string,
420
+ ): void;
421
+
422
+ updateProductName(name: string): void;
423
+ removeFromFrameworkSearchPaths(file: string): void;
424
+
425
+ addToFrameworkSearchPaths(file: string): void;
426
+ removeFromLibrarySearchPaths(file: string): void;
427
+
428
+ addToLibrarySearchPaths(file: string): void;
429
+ removeFromHeaderSearchPaths(file: string): void;
430
+
431
+ addToHeaderSearchPaths(file: string): void;
432
+ addToOtherLinkerFlags(flag: string): void;
433
+ removeFromOtherLinkerFlags(flag: string): void;
434
+
435
+ addToBuildSettings(buildSetting: string, value: string): void;
436
+ removeFromBuildSettings(buildSetting: string): void;
437
+
438
+ readonly productName: string;
439
+
440
+ hasFile(filePath: string): boolean;
441
+
442
+ addTarget(
443
+ name: string,
444
+ type: string,
445
+ subfolder: string,
446
+ bundleId: string,
447
+ ): void;
448
+
449
+ getFirstProject(): {
450
+ uuid: string;
451
+ firstProject: PBXObjects;
452
+ };
453
+ getFirstTarget(): {
454
+ uuid: string;
455
+ firstTarget: PBXObjects;
456
+ } | null;
457
+ getTarget(productType: string): {
458
+ uuid: string;
459
+ target: PBXObjects;
460
+ } | null;
461
+
462
+ addToPbxGroupType(file: string, groupKey: string, groupType: string): void;
463
+ addToPbxVariantGroup(file: string, groupKey: string): void;
464
+ addToPbxGroup(file: string, groupKey: string): void;
465
+
466
+ pbxCreateGroupWithType(
467
+ name: string,
468
+ pathName: string,
469
+ groupType: string,
470
+ ): void;
471
+ pbxCreateVariantGroup(name: string): void;
472
+ pbxCreateGroup(name: string, pathName: string): void;
473
+
474
+ removeFromPbxGroupAndType(
475
+ file: string,
476
+ groupKey: string,
477
+ groupType: string,
478
+ ): void;
479
+ removeFromPbxGroup(file: string, groupKey: string): void;
480
+ removeFromPbxVariantGroup(file: string, groupKey: string): void;
481
+
482
+ getPBXGroupByKeyAndType(key: string, groupType: string): PBXObjects;
483
+ getPBXGroupByKey(key: string): PBXObjects;
484
+ getPBXVariantGroupByKey(key: string): PBXObjects;
485
+
486
+ findPBXGroupKeyAndType(
487
+ criteria: {
488
+ path?: string;
489
+ },
490
+ groupType: string,
491
+ ): string;
492
+
493
+ findPBXGroupKey(criteria: { path?: string }): string;
494
+
495
+ findPBXVariantGroupKey(criteria: { path?: string }): string;
496
+
497
+ addLocalizationVariantGroup(name: string): void;
498
+
499
+ addKnownRegion(name: string): void;
500
+ removeKnownRegion(name: string): void;
501
+
502
+ hasKnownRegion(name: string): boolean;
503
+
504
+ getPBXObject(name: string): PBXObjects;
505
+
506
+ addFile(path: string, group: string, opt?: PBXFileOptions): void;
507
+ removeFile(path: string, group: string, opt?: PBXFileOptions): void;
508
+
509
+ getBuildProperty(prop: string, build: string, targetName: string): string;
510
+ getBuildConfigByName(name: string): PBXObjects;
511
+
512
+ addDataModelDocument(
513
+ filePath: string,
514
+ group: string,
515
+ opt?: PBXFileOptions,
516
+ ): void;
517
+ addTargetAttribute(prop: string, value: string, target: string): void;
518
+ removeTargetAttribute(prop: string, target: string): void;
519
+ }
520
+
521
+ export const project: (filename: string) => Project;
522
+
523
+ export default {
524
+ project: project,
525
+ };
526
+ }