@expo/config-plugins 5.0.4 → 6.0.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 (190) hide show
  1. package/build/Plugin.types.d.ts +7 -7
  2. package/build/Plugin.types.js +0 -9
  3. package/build/Plugin.types.js.map +1 -1
  4. package/build/android/AllowBackup.js +0 -15
  5. package/build/android/AllowBackup.js.map +1 -1
  6. package/build/android/BuildProperties.js +2 -16
  7. package/build/android/BuildProperties.js.map +1 -1
  8. package/build/android/Colors.js +3 -25
  9. package/build/android/Colors.js.map +1 -1
  10. package/build/android/EasBuild.js +2 -22
  11. package/build/android/EasBuild.js.map +1 -1
  12. package/build/android/EasBuildGradleScript.js.map +1 -1
  13. package/build/android/GoogleMapsApiKey.js +0 -12
  14. package/build/android/GoogleMapsApiKey.js.map +1 -1
  15. package/build/android/GoogleServices.js +10 -48
  16. package/build/android/GoogleServices.js.map +1 -1
  17. package/build/android/IntentFilters.d.ts +1 -1
  18. package/build/android/IntentFilters.js +8 -24
  19. package/build/android/IntentFilters.js.map +1 -1
  20. package/build/android/Manifest.d.ts +19 -19
  21. package/build/android/Manifest.js +7 -66
  22. package/build/android/Manifest.js.map +1 -1
  23. package/build/android/Name.js +6 -27
  24. package/build/android/Name.js.map +1 -1
  25. package/build/android/Orientation.js +2 -12
  26. package/build/android/Orientation.js.map +1 -1
  27. package/build/android/Package.js +26 -111
  28. package/build/android/Package.js.map +1 -1
  29. package/build/android/Paths.d.ts +2 -2
  30. package/build/android/Paths.js +0 -47
  31. package/build/android/Paths.js.map +1 -1
  32. package/build/android/Permissions.js +8 -52
  33. package/build/android/Permissions.js.map +1 -1
  34. package/build/android/PrimaryColor.js +0 -18
  35. package/build/android/PrimaryColor.js.map +1 -1
  36. package/build/android/Properties.d.ts +1 -1
  37. package/build/android/Properties.js +0 -9
  38. package/build/android/Properties.js.map +1 -1
  39. package/build/android/Resources.d.ts +4 -4
  40. package/build/android/Resources.js +9 -29
  41. package/build/android/Resources.js.map +1 -1
  42. package/build/android/Scheme.d.ts +1 -1
  43. package/build/android/Scheme.js +13 -66
  44. package/build/android/Scheme.js.map +1 -1
  45. package/build/android/StatusBar.js +5 -33
  46. package/build/android/StatusBar.js.map +1 -1
  47. package/build/android/Strings.js +0 -14
  48. package/build/android/Strings.js.map +1 -1
  49. package/build/android/Styles.js +7 -34
  50. package/build/android/Styles.js.map +1 -1
  51. package/build/android/Updates.d.ts +2 -0
  52. package/build/android/Updates.js +50 -47
  53. package/build/android/Updates.js.map +1 -1
  54. package/build/android/Version.js +3 -29
  55. package/build/android/Version.js.map +1 -1
  56. package/build/android/WindowSoftInputMode.js +0 -14
  57. package/build/android/WindowSoftInputMode.js.map +1 -1
  58. package/build/android/codeMod.js +6 -22
  59. package/build/android/codeMod.js.map +1 -1
  60. package/build/android/index.js +0 -94
  61. package/build/android/index.js.map +1 -1
  62. package/build/index.js +2 -65
  63. package/build/index.js.map +1 -1
  64. package/build/ios/Bitcode.d.ts +1 -1
  65. package/build/ios/Bitcode.js +8 -28
  66. package/build/ios/Bitcode.js.map +1 -1
  67. package/build/ios/BuildProperties.js +2 -14
  68. package/build/ios/BuildProperties.js.map +1 -1
  69. package/build/ios/BuildScheme.js +2 -34
  70. package/build/ios/BuildScheme.js.map +1 -1
  71. package/build/ios/BundleIdentifier.js +13 -72
  72. package/build/ios/BundleIdentifier.js.map +1 -1
  73. package/build/ios/DeviceFamily.js +6 -24
  74. package/build/ios/DeviceFamily.js.map +1 -1
  75. package/build/ios/Entitlements.js +4 -45
  76. package/build/ios/Entitlements.js.map +1 -1
  77. package/build/ios/Google.d.ts +2 -2
  78. package/build/ios/Google.js +11 -66
  79. package/build/ios/Google.js.map +1 -1
  80. package/build/ios/IosConfig.types.d.ts +6 -11
  81. package/build/ios/IosConfig.types.js.map +1 -1
  82. package/build/ios/Locales.d.ts +3 -3
  83. package/build/ios/Locales.js +12 -43
  84. package/build/ios/Locales.js.map +1 -1
  85. package/build/ios/Maps.js +15 -53
  86. package/build/ios/Maps.js.map +1 -1
  87. package/build/ios/Name.js +7 -31
  88. package/build/ios/Name.js.map +1 -1
  89. package/build/ios/Orientation.js +2 -10
  90. package/build/ios/Orientation.js.map +1 -1
  91. package/build/ios/Paths.d.ts +2 -2
  92. package/build/ios/Paths.js +8 -73
  93. package/build/ios/Paths.js.map +1 -1
  94. package/build/ios/Permissions.js +1 -16
  95. package/build/ios/Permissions.js.map +1 -1
  96. package/build/ios/ProvisioningProfile.d.ts +1 -1
  97. package/build/ios/ProvisioningProfile.js +0 -18
  98. package/build/ios/ProvisioningProfile.js.map +1 -1
  99. package/build/ios/RequiresFullScreen.js +19 -31
  100. package/build/ios/RequiresFullScreen.js.map +1 -1
  101. package/build/ios/Scheme.js +10 -32
  102. package/build/ios/Scheme.js.map +1 -1
  103. package/build/ios/Swift.js +16 -50
  104. package/build/ios/Swift.js.map +1 -1
  105. package/build/ios/Target.js +0 -30
  106. package/build/ios/Target.js.map +1 -1
  107. package/build/ios/Updates.js +10 -49
  108. package/build/ios/Updates.js.map +1 -1
  109. package/build/ios/UsesNonExemptEncryption.js +4 -10
  110. package/build/ios/UsesNonExemptEncryption.js.map +1 -1
  111. package/build/ios/Version.js +4 -11
  112. package/build/ios/Version.js.map +1 -1
  113. package/build/ios/XcodeProjectFile.js +5 -23
  114. package/build/ios/XcodeProjectFile.js.map +1 -1
  115. package/build/ios/codeMod.js +19 -60
  116. package/build/ios/codeMod.js.map +1 -1
  117. package/build/ios/index.js +0 -97
  118. package/build/ios/index.js.map +1 -1
  119. package/build/ios/utils/Xcodeproj.d.ts +6 -6
  120. package/build/ios/utils/Xcodeproj.js +15 -101
  121. package/build/ios/utils/Xcodeproj.js.map +1 -1
  122. package/build/ios/utils/getInfoPlistPath.js +2 -15
  123. package/build/ios/utils/getInfoPlistPath.js.map +1 -1
  124. package/build/ios/utils/string.js +0 -1
  125. package/build/ios/utils/string.js.map +1 -1
  126. package/build/plugins/android-plugins.d.ts +2 -2
  127. package/build/plugins/android-plugins.js +11 -42
  128. package/build/plugins/android-plugins.js.map +1 -1
  129. package/build/plugins/createBaseMod.d.ts +3 -3
  130. package/build/plugins/createBaseMod.js +8 -25
  131. package/build/plugins/createBaseMod.js.map +1 -1
  132. package/build/plugins/ios-plugins.d.ts +2 -2
  133. package/build/plugins/ios-plugins.js +8 -48
  134. package/build/plugins/ios-plugins.js.map +1 -1
  135. package/build/plugins/mod-compiler.js +21 -72
  136. package/build/plugins/mod-compiler.js.map +1 -1
  137. package/build/plugins/withAndroidBaseMods.d.ts +1 -1
  138. package/build/plugins/withAndroidBaseMods.js +4 -89
  139. package/build/plugins/withAndroidBaseMods.js.map +1 -1
  140. package/build/plugins/withDangerousMod.js +0 -5
  141. package/build/plugins/withDangerousMod.js.map +1 -1
  142. package/build/plugins/withIosBaseMods.d.ts +1 -1
  143. package/build/plugins/withIosBaseMods.js +26 -118
  144. package/build/plugins/withIosBaseMods.js.map +1 -1
  145. package/build/plugins/withMod.d.ts +1 -1
  146. package/build/plugins/withMod.js +24 -59
  147. package/build/plugins/withMod.js.map +1 -1
  148. package/build/plugins/withPlugins.js +0 -9
  149. package/build/plugins/withPlugins.js.map +1 -1
  150. package/build/plugins/withRunOnce.js +3 -9
  151. package/build/plugins/withRunOnce.js.map +1 -1
  152. package/build/plugins/withStaticPlugin.js +21 -43
  153. package/build/plugins/withStaticPlugin.js.map +1 -1
  154. package/build/utils/BuildProperties.types.d.ts +2 -2
  155. package/build/utils/BuildProperties.types.js.map +1 -1
  156. package/build/utils/Updates.d.ts +3 -1
  157. package/build/utils/Updates.js +18 -77
  158. package/build/utils/Updates.js.map +1 -1
  159. package/build/utils/XML.d.ts +1 -1
  160. package/build/utils/XML.js +7 -44
  161. package/build/utils/XML.js.map +1 -1
  162. package/build/utils/commonCodeMod.js +2 -10
  163. package/build/utils/commonCodeMod.js.map +1 -1
  164. package/build/utils/errors.d.ts +1 -1
  165. package/build/utils/errors.js +3 -11
  166. package/build/utils/errors.js.map +1 -1
  167. package/build/utils/fs.js +1 -12
  168. package/build/utils/fs.js.map +1 -1
  169. package/build/utils/generateCode.d.ts +1 -1
  170. package/build/utils/generateCode.js +8 -25
  171. package/build/utils/generateCode.js.map +1 -1
  172. package/build/utils/history.d.ts +1 -1
  173. package/build/utils/history.js +0 -6
  174. package/build/utils/history.js.map +1 -1
  175. package/build/utils/matchBrackets.d.ts +3 -3
  176. package/build/utils/matchBrackets.js +2 -17
  177. package/build/utils/matchBrackets.js.map +1 -1
  178. package/build/utils/modules.js +0 -10
  179. package/build/utils/modules.js.map +1 -1
  180. package/build/utils/obj.js +0 -4
  181. package/build/utils/obj.js.map +1 -1
  182. package/build/utils/plugin-resolver.js +25 -69
  183. package/build/utils/plugin-resolver.js.map +1 -1
  184. package/build/utils/sortObject.js +4 -10
  185. package/build/utils/sortObject.js.map +1 -1
  186. package/build/utils/versions.js +0 -10
  187. package/build/utils/versions.js.map +1 -1
  188. package/build/utils/warnings.js +1 -9
  189. package/build/utils/warnings.js.map +1 -1
  190. package/package.json +5 -5
@@ -8,73 +8,54 @@ exports.ensureSwiftBridgingHeaderSetup = ensureSwiftBridgingHeaderSetup;
8
8
  exports.getDesignatedSwiftBridgingHeaderFileReference = getDesignatedSwiftBridgingHeaderFileReference;
9
9
  exports.linkBridgingHeaderFile = linkBridgingHeaderFile;
10
10
  exports.withSwiftBridgingHeader = exports.withNoopSwiftFile = void 0;
11
-
12
11
  function _fs() {
13
12
  const data = _interopRequireDefault(require("fs"));
14
-
15
13
  _fs = function () {
16
14
  return data;
17
15
  };
18
-
19
16
  return data;
20
17
  }
21
-
22
18
  function _path() {
23
19
  const data = _interopRequireDefault(require("path"));
24
-
25
20
  _path = function () {
26
21
  return data;
27
22
  };
28
-
29
23
  return data;
30
24
  }
31
-
32
25
  function _iosPlugins() {
33
26
  const data = require("../plugins/ios-plugins");
34
-
35
27
  _iosPlugins = function () {
36
28
  return data;
37
29
  };
38
-
39
30
  return data;
40
31
  }
41
-
42
32
  function _Paths() {
43
33
  const data = require("./Paths");
44
-
45
34
  _Paths = function () {
46
35
  return data;
47
36
  };
48
-
49
37
  return data;
50
38
  }
51
-
52
39
  function _XcodeProjectFile() {
53
40
  const data = require("./XcodeProjectFile");
54
-
55
41
  _XcodeProjectFile = function () {
56
42
  return data;
57
43
  };
58
-
59
44
  return data;
60
45
  }
61
-
62
46
  function _Xcodeproj() {
63
47
  const data = require("./utils/Xcodeproj");
64
-
65
48
  _Xcodeproj = function () {
66
49
  return data;
67
50
  };
68
-
69
51
  return data;
70
52
  }
71
-
72
53
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
73
-
74
54
  const templateBridgingHeader = `//
75
55
  // Use this file to import your target's public headers that you would like to expose to Swift.
76
56
  //
77
57
  `;
58
+
78
59
  /**
79
60
  * Ensure a Swift bridging header is created for the project.
80
61
  * This helps fix problems related to using modules that are written in Swift (lottie, FBSDK).
@@ -83,7 +64,6 @@ const templateBridgingHeader = `//
83
64
  * 2. Writes the file and links to Xcode as a resource file.
84
65
  * 3. Sets the build configuration `SWIFT_OBJC_BRIDGING_HEADER = [PROJECT_NAME]-Bridging-Header.h`
85
66
  */
86
-
87
67
  const withSwiftBridgingHeader = config => {
88
68
  return (0, _iosPlugins().withXcodeProject)(config, config => {
89
69
  config.modResults = ensureSwiftBridgingHeaderSetup({
@@ -93,9 +73,7 @@ const withSwiftBridgingHeader = config => {
93
73
  return config;
94
74
  });
95
75
  };
96
-
97
76
  exports.withSwiftBridgingHeader = withSwiftBridgingHeader;
98
-
99
77
  function ensureSwiftBridgingHeaderSetup({
100
78
  projectRoot,
101
79
  project
@@ -106,24 +84,22 @@ function ensureSwiftBridgingHeaderSetup({
106
84
  project
107
85
  })) {
108
86
  const projectName = (0, _Xcodeproj().getProjectName)(projectRoot);
109
- const bridgingHeader = createBridgingHeaderFileName(projectName); // Ensure a bridging header is created in the Xcode project.
110
-
87
+ const bridgingHeader = createBridgingHeaderFileName(projectName);
88
+ // Ensure a bridging header is created in the Xcode project.
111
89
  project = createBridgingHeaderFile({
112
90
  project,
113
91
  projectName,
114
92
  projectRoot,
115
93
  bridgingHeader
116
- }); // Designate the newly created file as the Swift bridging header in the Xcode project.
117
-
94
+ });
95
+ // Designate the newly created file as the Swift bridging header in the Xcode project.
118
96
  project = linkBridgingHeaderFile({
119
97
  project,
120
98
  bridgingHeader: _path().default.join(projectName, bridgingHeader)
121
99
  });
122
100
  }
123
-
124
101
  return project;
125
102
  }
126
-
127
103
  function shouldCreateSwiftBridgingHeader({
128
104
  projectRoot,
129
105
  project
@@ -134,20 +110,18 @@ function shouldCreateSwiftBridgingHeader({
134
110
  project
135
111
  });
136
112
  }
113
+
137
114
  /**
138
115
  * @returns String matching the default name used when Xcode automatically creates a bridging header file.
139
116
  */
140
-
141
-
142
117
  function createBridgingHeaderFileName(projectName) {
143
118
  return `${projectName}-Bridging-Header.h`;
144
119
  }
145
-
146
120
  function getDesignatedSwiftBridgingHeaderFileReference({
147
121
  project
148
122
  }) {
149
- const configurations = project.pbxXCBuildConfigurationSection(); // @ts-ignore
150
-
123
+ const configurations = project.pbxXCBuildConfigurationSection();
124
+ // @ts-ignore
151
125
  for (const {
152
126
  buildSettings
153
127
  } of Object.values(configurations || {})) {
@@ -159,22 +133,20 @@ function getDesignatedSwiftBridgingHeaderFileReference({
159
133
  }
160
134
  }
161
135
  }
162
-
163
136
  return null;
164
137
  }
138
+
165
139
  /**
166
140
  *
167
141
  * @param bridgingHeader The bridging header filename ex: `ExpoAPIs-Bridging-Header.h`
168
142
  * @returns
169
143
  */
170
-
171
-
172
144
  function linkBridgingHeaderFile({
173
145
  project,
174
146
  bridgingHeader
175
147
  }) {
176
- const configurations = project.pbxXCBuildConfigurationSection(); // @ts-ignore
177
-
148
+ const configurations = project.pbxXCBuildConfigurationSection();
149
+ // @ts-ignore
178
150
  for (const {
179
151
  buildSettings
180
152
  } of Object.values(configurations || {})) {
@@ -184,10 +156,8 @@ function linkBridgingHeaderFile({
184
156
  buildSettings.SWIFT_OBJC_BRIDGING_HEADER = bridgingHeader;
185
157
  }
186
158
  }
187
-
188
159
  return project;
189
160
  }
190
-
191
161
  function createBridgingHeaderFile({
192
162
  projectRoot,
193
163
  projectName,
@@ -195,16 +165,15 @@ function createBridgingHeaderFile({
195
165
  bridgingHeader
196
166
  }) {
197
167
  const bridgingHeaderProjectPath = _path().default.join((0, _Paths().getSourceRoot)(projectRoot), bridgingHeader);
198
-
199
168
  if (!_fs().default.existsSync(bridgingHeaderProjectPath)) {
200
169
  // Create the file
201
170
  _fs().default.writeFileSync(bridgingHeaderProjectPath, templateBridgingHeader, 'utf8');
202
- } // This is non-standard, Xcode generates the bridging header in `/ios` which is kinda annoying.
203
- // Instead, this'll generate the default header in the application code folder `/ios/myproject/`.
204
-
205
-
206
- const filePath = `${projectName}/${bridgingHeader}`; // Ensure the file is linked with Xcode resource files
171
+ }
207
172
 
173
+ // This is non-standard, Xcode generates the bridging header in `/ios` which is kinda annoying.
174
+ // Instead, this'll generate the default header in the application code folder `/ios/myproject/`.
175
+ const filePath = `${projectName}/${bridgingHeader}`;
176
+ // Ensure the file is linked with Xcode resource files
208
177
  if (!project.hasFile(filePath)) {
209
178
  project = (0, _Xcodeproj().addResourceFileToGroup)({
210
179
  filepath: filePath,
@@ -215,16 +184,13 @@ function createBridgingHeaderFile({
215
184
  verbose: false
216
185
  });
217
186
  }
218
-
219
187
  return project;
220
188
  }
221
-
222
189
  const withNoopSwiftFile = config => {
223
190
  return (0, _XcodeProjectFile().withBuildSourceFile)(config, {
224
191
  filePath: 'noop-file.swift',
225
192
  contents: ['//', '// @generated', '// A blank Swift file must be created for native modules with Swift files to work correctly.', '//', ''].join('\n')
226
193
  });
227
194
  };
228
-
229
195
  exports.withNoopSwiftFile = withNoopSwiftFile;
230
196
  //# sourceMappingURL=Swift.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Swift.js","names":["templateBridgingHeader","withSwiftBridgingHeader","config","withXcodeProject","modResults","ensureSwiftBridgingHeaderSetup","project","projectRoot","modRequest","shouldCreateSwiftBridgingHeader","projectName","getProjectName","bridgingHeader","createBridgingHeaderFileName","createBridgingHeaderFile","linkBridgingHeaderFile","path","join","isObjc","getAppDelegate","language","getDesignatedSwiftBridgingHeaderFileReference","configurations","pbxXCBuildConfigurationSection","buildSettings","Object","values","PRODUCT_NAME","SWIFT_OBJC_BRIDGING_HEADER","bridgingHeaderProjectPath","getSourceRoot","fs","existsSync","writeFileSync","filePath","hasFile","addResourceFileToGroup","filepath","groupName","isBuildFile","verbose","withNoopSwiftFile","withBuildSourceFile","contents"],"sources":["../../src/ios/Swift.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nimport { ConfigPlugin, XcodeProject } from '../Plugin.types';\nimport { withXcodeProject } from '../plugins/ios-plugins';\nimport { getAppDelegate, getSourceRoot } from './Paths';\nimport { withBuildSourceFile } from './XcodeProjectFile';\nimport { addResourceFileToGroup, getProjectName } from './utils/Xcodeproj';\n\nconst templateBridgingHeader = `//\n// Use this file to import your target's public headers that you would like to expose to Swift.\n//\n`;\n\n/**\n * Ensure a Swift bridging header is created for the project.\n * This helps fix problems related to using modules that are written in Swift (lottie, FBSDK).\n *\n * 1. Ensures the file exists given the project path.\n * 2. Writes the file and links to Xcode as a resource file.\n * 3. Sets the build configuration `SWIFT_OBJC_BRIDGING_HEADER = [PROJECT_NAME]-Bridging-Header.h`\n */\nexport const withSwiftBridgingHeader: ConfigPlugin = (config) => {\n return withXcodeProject(config, (config) => {\n config.modResults = ensureSwiftBridgingHeaderSetup({\n project: config.modResults,\n projectRoot: config.modRequest.projectRoot,\n });\n return config;\n });\n};\n\nexport function ensureSwiftBridgingHeaderSetup({\n projectRoot,\n project,\n}: {\n projectRoot: string;\n project: XcodeProject;\n}) {\n // Only create a bridging header if using objective-c\n if (shouldCreateSwiftBridgingHeader({ projectRoot, project })) {\n const projectName = getProjectName(projectRoot);\n const bridgingHeader = createBridgingHeaderFileName(projectName);\n // Ensure a bridging header is created in the Xcode project.\n project = createBridgingHeaderFile({\n project,\n projectName,\n projectRoot,\n bridgingHeader,\n });\n // Designate the newly created file as the Swift bridging header in the Xcode project.\n project = linkBridgingHeaderFile({\n project,\n bridgingHeader: path.join(projectName, bridgingHeader),\n });\n }\n return project;\n}\n\nfunction shouldCreateSwiftBridgingHeader({\n projectRoot,\n project,\n}: {\n projectRoot: string;\n project: XcodeProject;\n}): boolean {\n // Only create a bridging header if the project is using in Objective C (AppDelegate is written in Objc).\n const isObjc = getAppDelegate(projectRoot).language === 'objc';\n return isObjc && !getDesignatedSwiftBridgingHeaderFileReference({ project });\n}\n\n/**\n * @returns String matching the default name used when Xcode automatically creates a bridging header file.\n */\nfunction createBridgingHeaderFileName(projectName: string): string {\n return `${projectName}-Bridging-Header.h`;\n}\n\nexport function getDesignatedSwiftBridgingHeaderFileReference({\n project,\n}: {\n project: XcodeProject;\n}): string | null {\n const configurations = project.pbxXCBuildConfigurationSection();\n // @ts-ignore\n for (const { buildSettings } of Object.values(configurations || {})) {\n // Guessing that this is the best way to emulate Xcode.\n // Using `project.addToBuildSettings` modifies too many targets.\n if (typeof buildSettings?.PRODUCT_NAME !== 'undefined') {\n if (\n typeof buildSettings.SWIFT_OBJC_BRIDGING_HEADER === 'string' &&\n buildSettings.SWIFT_OBJC_BRIDGING_HEADER\n ) {\n return buildSettings.SWIFT_OBJC_BRIDGING_HEADER;\n }\n }\n }\n return null;\n}\n\n/**\n *\n * @param bridgingHeader The bridging header filename ex: `ExpoAPIs-Bridging-Header.h`\n * @returns\n */\nexport function linkBridgingHeaderFile({\n project,\n bridgingHeader,\n}: {\n project: XcodeProject;\n bridgingHeader: string;\n}): XcodeProject {\n const configurations = project.pbxXCBuildConfigurationSection();\n // @ts-ignore\n for (const { buildSettings } of Object.values(configurations || {})) {\n // Guessing that this is the best way to emulate Xcode.\n // Using `project.addToBuildSettings` modifies too many targets.\n if (typeof buildSettings?.PRODUCT_NAME !== 'undefined') {\n buildSettings.SWIFT_OBJC_BRIDGING_HEADER = bridgingHeader;\n }\n }\n\n return project;\n}\n\nexport function createBridgingHeaderFile({\n projectRoot,\n projectName,\n project,\n bridgingHeader,\n}: {\n project: XcodeProject;\n projectName: string;\n projectRoot: string;\n bridgingHeader: string;\n}): XcodeProject {\n const bridgingHeaderProjectPath = path.join(getSourceRoot(projectRoot), bridgingHeader);\n if (!fs.existsSync(bridgingHeaderProjectPath)) {\n // Create the file\n fs.writeFileSync(bridgingHeaderProjectPath, templateBridgingHeader, 'utf8');\n }\n\n // This is non-standard, Xcode generates the bridging header in `/ios` which is kinda annoying.\n // Instead, this'll generate the default header in the application code folder `/ios/myproject/`.\n const filePath = `${projectName}/${bridgingHeader}`;\n // Ensure the file is linked with Xcode resource files\n if (!project.hasFile(filePath)) {\n project = addResourceFileToGroup({\n filepath: filePath,\n groupName: projectName,\n project,\n // Not sure why, but this is how Xcode generates it.\n isBuildFile: false,\n verbose: false,\n });\n }\n return project;\n}\n\nexport const withNoopSwiftFile: ConfigPlugin = (config) => {\n return withBuildSourceFile(config, {\n filePath: 'noop-file.swift',\n contents: [\n '//',\n '// @generated',\n '// A blank Swift file must be created for native modules with Swift files to work correctly.',\n '//',\n '',\n ].join('\\n'),\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Swift.js","names":["templateBridgingHeader","withSwiftBridgingHeader","config","withXcodeProject","modResults","ensureSwiftBridgingHeaderSetup","project","projectRoot","modRequest","shouldCreateSwiftBridgingHeader","projectName","getProjectName","bridgingHeader","createBridgingHeaderFileName","createBridgingHeaderFile","linkBridgingHeaderFile","path","join","isObjc","getAppDelegate","language","getDesignatedSwiftBridgingHeaderFileReference","configurations","pbxXCBuildConfigurationSection","buildSettings","Object","values","PRODUCT_NAME","SWIFT_OBJC_BRIDGING_HEADER","bridgingHeaderProjectPath","getSourceRoot","fs","existsSync","writeFileSync","filePath","hasFile","addResourceFileToGroup","filepath","groupName","isBuildFile","verbose","withNoopSwiftFile","withBuildSourceFile","contents"],"sources":["../../src/ios/Swift.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nimport { ConfigPlugin, XcodeProject } from '../Plugin.types';\nimport { withXcodeProject } from '../plugins/ios-plugins';\nimport { getAppDelegate, getSourceRoot } from './Paths';\nimport { withBuildSourceFile } from './XcodeProjectFile';\nimport { addResourceFileToGroup, getProjectName } from './utils/Xcodeproj';\n\nconst templateBridgingHeader = `//\n// Use this file to import your target's public headers that you would like to expose to Swift.\n//\n`;\n\n/**\n * Ensure a Swift bridging header is created for the project.\n * This helps fix problems related to using modules that are written in Swift (lottie, FBSDK).\n *\n * 1. Ensures the file exists given the project path.\n * 2. Writes the file and links to Xcode as a resource file.\n * 3. Sets the build configuration `SWIFT_OBJC_BRIDGING_HEADER = [PROJECT_NAME]-Bridging-Header.h`\n */\nexport const withSwiftBridgingHeader: ConfigPlugin = (config) => {\n return withXcodeProject(config, (config) => {\n config.modResults = ensureSwiftBridgingHeaderSetup({\n project: config.modResults,\n projectRoot: config.modRequest.projectRoot,\n });\n return config;\n });\n};\n\nexport function ensureSwiftBridgingHeaderSetup({\n projectRoot,\n project,\n}: {\n projectRoot: string;\n project: XcodeProject;\n}) {\n // Only create a bridging header if using objective-c\n if (shouldCreateSwiftBridgingHeader({ projectRoot, project })) {\n const projectName = getProjectName(projectRoot);\n const bridgingHeader = createBridgingHeaderFileName(projectName);\n // Ensure a bridging header is created in the Xcode project.\n project = createBridgingHeaderFile({\n project,\n projectName,\n projectRoot,\n bridgingHeader,\n });\n // Designate the newly created file as the Swift bridging header in the Xcode project.\n project = linkBridgingHeaderFile({\n project,\n bridgingHeader: path.join(projectName, bridgingHeader),\n });\n }\n return project;\n}\n\nfunction shouldCreateSwiftBridgingHeader({\n projectRoot,\n project,\n}: {\n projectRoot: string;\n project: XcodeProject;\n}): boolean {\n // Only create a bridging header if the project is using in Objective C (AppDelegate is written in Objc).\n const isObjc = getAppDelegate(projectRoot).language === 'objc';\n return isObjc && !getDesignatedSwiftBridgingHeaderFileReference({ project });\n}\n\n/**\n * @returns String matching the default name used when Xcode automatically creates a bridging header file.\n */\nfunction createBridgingHeaderFileName(projectName: string): string {\n return `${projectName}-Bridging-Header.h`;\n}\n\nexport function getDesignatedSwiftBridgingHeaderFileReference({\n project,\n}: {\n project: XcodeProject;\n}): string | null {\n const configurations = project.pbxXCBuildConfigurationSection();\n // @ts-ignore\n for (const { buildSettings } of Object.values(configurations || {})) {\n // Guessing that this is the best way to emulate Xcode.\n // Using `project.addToBuildSettings` modifies too many targets.\n if (typeof buildSettings?.PRODUCT_NAME !== 'undefined') {\n if (\n typeof buildSettings.SWIFT_OBJC_BRIDGING_HEADER === 'string' &&\n buildSettings.SWIFT_OBJC_BRIDGING_HEADER\n ) {\n return buildSettings.SWIFT_OBJC_BRIDGING_HEADER;\n }\n }\n }\n return null;\n}\n\n/**\n *\n * @param bridgingHeader The bridging header filename ex: `ExpoAPIs-Bridging-Header.h`\n * @returns\n */\nexport function linkBridgingHeaderFile({\n project,\n bridgingHeader,\n}: {\n project: XcodeProject;\n bridgingHeader: string;\n}): XcodeProject {\n const configurations = project.pbxXCBuildConfigurationSection();\n // @ts-ignore\n for (const { buildSettings } of Object.values(configurations || {})) {\n // Guessing that this is the best way to emulate Xcode.\n // Using `project.addToBuildSettings` modifies too many targets.\n if (typeof buildSettings?.PRODUCT_NAME !== 'undefined') {\n buildSettings.SWIFT_OBJC_BRIDGING_HEADER = bridgingHeader;\n }\n }\n\n return project;\n}\n\nexport function createBridgingHeaderFile({\n projectRoot,\n projectName,\n project,\n bridgingHeader,\n}: {\n project: XcodeProject;\n projectName: string;\n projectRoot: string;\n bridgingHeader: string;\n}): XcodeProject {\n const bridgingHeaderProjectPath = path.join(getSourceRoot(projectRoot), bridgingHeader);\n if (!fs.existsSync(bridgingHeaderProjectPath)) {\n // Create the file\n fs.writeFileSync(bridgingHeaderProjectPath, templateBridgingHeader, 'utf8');\n }\n\n // This is non-standard, Xcode generates the bridging header in `/ios` which is kinda annoying.\n // Instead, this'll generate the default header in the application code folder `/ios/myproject/`.\n const filePath = `${projectName}/${bridgingHeader}`;\n // Ensure the file is linked with Xcode resource files\n if (!project.hasFile(filePath)) {\n project = addResourceFileToGroup({\n filepath: filePath,\n groupName: projectName,\n project,\n // Not sure why, but this is how Xcode generates it.\n isBuildFile: false,\n verbose: false,\n });\n }\n return project;\n}\n\nexport const withNoopSwiftFile: ConfigPlugin = (config) => {\n return withBuildSourceFile(config, {\n filePath: 'noop-file.swift',\n contents: [\n '//',\n '// @generated',\n '// A blank Swift file must be created for native modules with Swift files to work correctly.',\n '//',\n '',\n ].join('\\n'),\n });\n};\n"],"mappings":"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"}
@@ -11,40 +11,29 @@ exports.findSignableTargets = findSignableTargets;
11
11
  exports.getNativeTargets = getNativeTargets;
12
12
  exports.getXCBuildConfigurationFromPbxproj = getXCBuildConfigurationFromPbxproj;
13
13
  exports.isTargetOfType = isTargetOfType;
14
-
15
14
  function _BuildScheme() {
16
15
  const data = require("./BuildScheme");
17
-
18
16
  _BuildScheme = function () {
19
17
  return data;
20
18
  };
21
-
22
19
  return data;
23
20
  }
24
-
25
21
  function _Xcodeproj() {
26
22
  const data = require("./utils/Xcodeproj");
27
-
28
23
  _Xcodeproj = function () {
29
24
  return data;
30
25
  };
31
-
32
26
  return data;
33
27
  }
34
-
35
28
  function _string() {
36
29
  const data = require("./utils/string");
37
-
38
30
  _string = function () {
39
31
  return data;
40
32
  };
41
-
42
33
  return data;
43
34
  }
44
-
45
35
  let TargetType;
46
36
  exports.TargetType = TargetType;
47
-
48
37
  (function (TargetType) {
49
38
  TargetType["APPLICATION"] = "com.apple.product-type.application";
50
39
  TargetType["EXTENSION"] = "com.apple.product-type.app-extension";
@@ -53,7 +42,6 @@ exports.TargetType = TargetType;
53
42
  TargetType["STICKER_PACK_EXTENSION"] = "com.apple.product-type.app-extension.messages-sticker-pack";
54
43
  TargetType["OTHER"] = "other";
55
44
  })(TargetType || (exports.TargetType = TargetType = {}));
56
-
57
45
  function getXCBuildConfigurationFromPbxproj(project, {
58
46
  targetName,
59
47
  buildConfiguration = 'Release'
@@ -65,7 +53,6 @@ function getXCBuildConfigurationFromPbxproj(project, {
65
53
  });
66
54
  return xcBuildConfiguration !== null && xcBuildConfiguration !== void 0 ? xcBuildConfiguration : null;
67
55
  }
68
-
69
56
  async function findApplicationTargetWithDependenciesAsync(projectRoot, scheme) {
70
57
  const applicationTargetName = await (0, _BuildScheme().getApplicationTargetNameForSchemeAsync)(projectRoot, scheme);
71
58
  const project = (0, _Xcodeproj().getPbxproj)(projectRoot);
@@ -77,12 +64,10 @@ async function findApplicationTargetWithDependenciesAsync(projectRoot, scheme) {
77
64
  dependencies
78
65
  };
79
66
  }
80
-
81
67
  function getTargetDependencies(project, parentTarget) {
82
68
  if (!parentTarget.dependencies || parentTarget.dependencies.length === 0) {
83
69
  return undefined;
84
70
  }
85
-
86
71
  return parentTarget.dependencies.map(({
87
72
  value
88
73
  }) => {
@@ -98,16 +83,13 @@ function getTargetDependencies(project, parentTarget) {
98
83
  };
99
84
  });
100
85
  }
101
-
102
86
  function isTargetOfType(target, targetType) {
103
87
  return (0, _string().trimQuotes)(target.productType) === targetType;
104
88
  }
105
-
106
89
  function getNativeTargets(project) {
107
90
  const section = project.pbxNativeTargetSection();
108
91
  return Object.entries(section).filter(_Xcodeproj().isNotComment);
109
92
  }
110
-
111
93
  function findSignableTargets(project) {
112
94
  const targets = getNativeTargets(project);
113
95
  const signableTargetTypes = [TargetType.APPLICATION, TargetType.APP_CLIP, TargetType.EXTENSION, TargetType.WATCH, TargetType.STICKER_PACK_EXTENSION];
@@ -117,47 +99,35 @@ function findSignableTargets(project) {
117
99
  return true;
118
100
  }
119
101
  }
120
-
121
102
  return false;
122
103
  });
123
-
124
104
  if (applicationTargets.length === 0) {
125
105
  throw new Error(`Could not find any signable targets in project.pbxproj`);
126
106
  }
127
-
128
107
  return applicationTargets;
129
108
  }
130
-
131
109
  function findFirstNativeTarget(project) {
132
110
  const targets = getNativeTargets(project);
133
111
  const applicationTargets = targets.filter(([, target]) => isTargetOfType(target, TargetType.APPLICATION));
134
-
135
112
  if (applicationTargets.length === 0) {
136
113
  throw new Error(`Could not find any application target in project.pbxproj`);
137
114
  }
138
-
139
115
  return applicationTargets[0];
140
116
  }
141
-
142
117
  function findNativeTargetByName(project, targetName) {
143
118
  const nativeTargets = getNativeTargets(project);
144
119
  const nativeTargetEntry = nativeTargets.find(([, i]) => (0, _string().trimQuotes)(i.name) === targetName);
145
-
146
120
  if (!nativeTargetEntry) {
147
121
  throw new Error(`Could not find target '${targetName}' in project.pbxproj`);
148
122
  }
149
-
150
123
  return nativeTargetEntry;
151
124
  }
152
-
153
125
  function findNativeTargetById(project, targetId) {
154
126
  const nativeTargets = getNativeTargets(project);
155
127
  const nativeTargetEntry = nativeTargets.find(([key]) => key === targetId);
156
-
157
128
  if (!nativeTargetEntry) {
158
129
  throw new Error(`Could not find target with id '${targetId}' in project.pbxproj`);
159
130
  }
160
-
161
131
  return nativeTargetEntry;
162
132
  }
163
133
  //# sourceMappingURL=Target.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Target.js","names":["TargetType","getXCBuildConfigurationFromPbxproj","project","targetName","buildConfiguration","nativeTarget","findNativeTargetByName","findFirstNativeTarget","xcBuildConfiguration","getBuildConfigurationForListIdAndName","configurationListId","buildConfigurationList","findApplicationTargetWithDependenciesAsync","projectRoot","scheme","applicationTargetName","getApplicationTargetNameForSchemeAsync","getPbxproj","applicationTarget","dependencies","getTargetDependencies","name","trimQuotes","type","APPLICATION","parentTarget","length","undefined","map","value","target","targetId","getPBXGroupByKeyAndType","findNativeTargetById","isTargetOfType","EXTENSION","OTHER","targetType","productType","getNativeTargets","section","pbxNativeTargetSection","Object","entries","filter","isNotComment","findSignableTargets","targets","signableTargetTypes","APP_CLIP","WATCH","STICKER_PACK_EXTENSION","applicationTargets","Error","nativeTargets","nativeTargetEntry","find","i","key"],"sources":["../../src/ios/Target.ts"],"sourcesContent":["import { PBXNativeTarget, PBXTargetDependency, XCBuildConfiguration, XcodeProject } from 'xcode';\n\nimport { getApplicationTargetNameForSchemeAsync } from './BuildScheme';\nimport {\n getBuildConfigurationForListIdAndName,\n getPbxproj,\n isNotComment,\n NativeTargetSectionEntry,\n} from './utils/Xcodeproj';\nimport { trimQuotes } from './utils/string';\n\nexport enum TargetType {\n APPLICATION = 'com.apple.product-type.application',\n EXTENSION = 'com.apple.product-type.app-extension',\n WATCH = 'com.apple.product-type.application.watchapp',\n APP_CLIP = 'com.apple.product-type.application.on-demand-install-capable',\n STICKER_PACK_EXTENSION = 'com.apple.product-type.app-extension.messages-sticker-pack',\n OTHER = 'other',\n}\n\nexport interface Target {\n name: string;\n type: TargetType;\n dependencies?: Target[];\n}\n\nexport function getXCBuildConfigurationFromPbxproj(\n project: XcodeProject,\n {\n targetName,\n buildConfiguration = 'Release',\n }: { targetName?: string; buildConfiguration?: string } = {}\n): XCBuildConfiguration | null {\n const [, nativeTarget] = targetName\n ? findNativeTargetByName(project, targetName)\n : findFirstNativeTarget(project);\n const [, xcBuildConfiguration] = getBuildConfigurationForListIdAndName(project, {\n configurationListId: nativeTarget.buildConfigurationList,\n buildConfiguration,\n });\n return xcBuildConfiguration ?? null;\n}\n\nexport async function findApplicationTargetWithDependenciesAsync(\n projectRoot: string,\n scheme: string\n): Promise<Target> {\n const applicationTargetName = await getApplicationTargetNameForSchemeAsync(projectRoot, scheme);\n const project = getPbxproj(projectRoot);\n const [, applicationTarget] = findNativeTargetByName(project, applicationTargetName);\n const dependencies = getTargetDependencies(project, applicationTarget);\n return {\n name: trimQuotes(applicationTarget.name),\n type: TargetType.APPLICATION,\n dependencies,\n };\n}\n\nfunction getTargetDependencies(\n project: XcodeProject,\n parentTarget: PBXNativeTarget\n): Target[] | undefined {\n if (!parentTarget.dependencies || parentTarget.dependencies.length === 0) {\n return undefined;\n }\n return parentTarget.dependencies.map(({ value }) => {\n const { target: targetId } = project.getPBXGroupByKeyAndType(\n value,\n 'PBXTargetDependency'\n ) as PBXTargetDependency;\n\n const [, target] = findNativeTargetById(project, targetId);\n\n const type = isTargetOfType(target, TargetType.EXTENSION)\n ? TargetType.EXTENSION\n : TargetType.OTHER;\n return {\n name: trimQuotes(target.name),\n type,\n dependencies: getTargetDependencies(project, target),\n };\n });\n}\n\nexport function isTargetOfType(target: PBXNativeTarget, targetType: TargetType): boolean {\n return trimQuotes(target.productType) === targetType;\n}\n\nexport function getNativeTargets(project: XcodeProject): NativeTargetSectionEntry[] {\n const section = project.pbxNativeTargetSection();\n return Object.entries(section).filter(isNotComment);\n}\n\nexport function findSignableTargets(project: XcodeProject): NativeTargetSectionEntry[] {\n const targets = getNativeTargets(project);\n\n const signableTargetTypes = [\n TargetType.APPLICATION,\n TargetType.APP_CLIP,\n TargetType.EXTENSION,\n TargetType.WATCH,\n TargetType.STICKER_PACK_EXTENSION,\n ];\n\n const applicationTargets = targets.filter(([, target]) => {\n for (const targetType of signableTargetTypes) {\n if (isTargetOfType(target, targetType)) {\n return true;\n }\n }\n return false;\n });\n if (applicationTargets.length === 0) {\n throw new Error(`Could not find any signable targets in project.pbxproj`);\n }\n return applicationTargets;\n}\n\nexport function findFirstNativeTarget(project: XcodeProject): NativeTargetSectionEntry {\n const targets = getNativeTargets(project);\n const applicationTargets = targets.filter(([, target]) =>\n isTargetOfType(target, TargetType.APPLICATION)\n );\n if (applicationTargets.length === 0) {\n throw new Error(`Could not find any application target in project.pbxproj`);\n }\n return applicationTargets[0];\n}\n\nexport function findNativeTargetByName(\n project: XcodeProject,\n targetName: string\n): NativeTargetSectionEntry {\n const nativeTargets = getNativeTargets(project);\n const nativeTargetEntry = nativeTargets.find(([, i]) => trimQuotes(i.name) === targetName);\n if (!nativeTargetEntry) {\n throw new Error(`Could not find target '${targetName}' in project.pbxproj`);\n }\n return nativeTargetEntry;\n}\n\nfunction findNativeTargetById(project: XcodeProject, targetId: string): NativeTargetSectionEntry {\n const nativeTargets = getNativeTargets(project);\n const nativeTargetEntry = nativeTargets.find(([key]) => key === targetId);\n if (!nativeTargetEntry) {\n throw new Error(`Could not find target with id '${targetId}' in project.pbxproj`);\n }\n return nativeTargetEntry;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Target.js","names":["TargetType","getXCBuildConfigurationFromPbxproj","project","targetName","buildConfiguration","nativeTarget","findNativeTargetByName","findFirstNativeTarget","xcBuildConfiguration","getBuildConfigurationForListIdAndName","configurationListId","buildConfigurationList","findApplicationTargetWithDependenciesAsync","projectRoot","scheme","applicationTargetName","getApplicationTargetNameForSchemeAsync","getPbxproj","applicationTarget","dependencies","getTargetDependencies","name","trimQuotes","type","APPLICATION","parentTarget","length","undefined","map","value","target","targetId","getPBXGroupByKeyAndType","findNativeTargetById","isTargetOfType","EXTENSION","OTHER","targetType","productType","getNativeTargets","section","pbxNativeTargetSection","Object","entries","filter","isNotComment","findSignableTargets","targets","signableTargetTypes","APP_CLIP","WATCH","STICKER_PACK_EXTENSION","applicationTargets","Error","nativeTargets","nativeTargetEntry","find","i","key"],"sources":["../../src/ios/Target.ts"],"sourcesContent":["import { PBXNativeTarget, PBXTargetDependency, XCBuildConfiguration, XcodeProject } from 'xcode';\n\nimport { getApplicationTargetNameForSchemeAsync } from './BuildScheme';\nimport {\n getBuildConfigurationForListIdAndName,\n getPbxproj,\n isNotComment,\n NativeTargetSectionEntry,\n} from './utils/Xcodeproj';\nimport { trimQuotes } from './utils/string';\n\nexport enum TargetType {\n APPLICATION = 'com.apple.product-type.application',\n EXTENSION = 'com.apple.product-type.app-extension',\n WATCH = 'com.apple.product-type.application.watchapp',\n APP_CLIP = 'com.apple.product-type.application.on-demand-install-capable',\n STICKER_PACK_EXTENSION = 'com.apple.product-type.app-extension.messages-sticker-pack',\n OTHER = 'other',\n}\n\nexport interface Target {\n name: string;\n type: TargetType;\n dependencies?: Target[];\n}\n\nexport function getXCBuildConfigurationFromPbxproj(\n project: XcodeProject,\n {\n targetName,\n buildConfiguration = 'Release',\n }: { targetName?: string; buildConfiguration?: string } = {}\n): XCBuildConfiguration | null {\n const [, nativeTarget] = targetName\n ? findNativeTargetByName(project, targetName)\n : findFirstNativeTarget(project);\n const [, xcBuildConfiguration] = getBuildConfigurationForListIdAndName(project, {\n configurationListId: nativeTarget.buildConfigurationList,\n buildConfiguration,\n });\n return xcBuildConfiguration ?? null;\n}\n\nexport async function findApplicationTargetWithDependenciesAsync(\n projectRoot: string,\n scheme: string\n): Promise<Target> {\n const applicationTargetName = await getApplicationTargetNameForSchemeAsync(projectRoot, scheme);\n const project = getPbxproj(projectRoot);\n const [, applicationTarget] = findNativeTargetByName(project, applicationTargetName);\n const dependencies = getTargetDependencies(project, applicationTarget);\n return {\n name: trimQuotes(applicationTarget.name),\n type: TargetType.APPLICATION,\n dependencies,\n };\n}\n\nfunction getTargetDependencies(\n project: XcodeProject,\n parentTarget: PBXNativeTarget\n): Target[] | undefined {\n if (!parentTarget.dependencies || parentTarget.dependencies.length === 0) {\n return undefined;\n }\n return parentTarget.dependencies.map(({ value }) => {\n const { target: targetId } = project.getPBXGroupByKeyAndType(\n value,\n 'PBXTargetDependency'\n ) as PBXTargetDependency;\n\n const [, target] = findNativeTargetById(project, targetId);\n\n const type = isTargetOfType(target, TargetType.EXTENSION)\n ? TargetType.EXTENSION\n : TargetType.OTHER;\n return {\n name: trimQuotes(target.name),\n type,\n dependencies: getTargetDependencies(project, target),\n };\n });\n}\n\nexport function isTargetOfType(target: PBXNativeTarget, targetType: TargetType): boolean {\n return trimQuotes(target.productType) === targetType;\n}\n\nexport function getNativeTargets(project: XcodeProject): NativeTargetSectionEntry[] {\n const section = project.pbxNativeTargetSection();\n return Object.entries(section).filter(isNotComment);\n}\n\nexport function findSignableTargets(project: XcodeProject): NativeTargetSectionEntry[] {\n const targets = getNativeTargets(project);\n\n const signableTargetTypes = [\n TargetType.APPLICATION,\n TargetType.APP_CLIP,\n TargetType.EXTENSION,\n TargetType.WATCH,\n TargetType.STICKER_PACK_EXTENSION,\n ];\n\n const applicationTargets = targets.filter(([, target]) => {\n for (const targetType of signableTargetTypes) {\n if (isTargetOfType(target, targetType)) {\n return true;\n }\n }\n return false;\n });\n if (applicationTargets.length === 0) {\n throw new Error(`Could not find any signable targets in project.pbxproj`);\n }\n return applicationTargets;\n}\n\nexport function findFirstNativeTarget(project: XcodeProject): NativeTargetSectionEntry {\n const targets = getNativeTargets(project);\n const applicationTargets = targets.filter(([, target]) =>\n isTargetOfType(target, TargetType.APPLICATION)\n );\n if (applicationTargets.length === 0) {\n throw new Error(`Could not find any application target in project.pbxproj`);\n }\n return applicationTargets[0];\n}\n\nexport function findNativeTargetByName(\n project: XcodeProject,\n targetName: string\n): NativeTargetSectionEntry {\n const nativeTargets = getNativeTargets(project);\n const nativeTargetEntry = nativeTargets.find(([, i]) => trimQuotes(i.name) === targetName);\n if (!nativeTargetEntry) {\n throw new Error(`Could not find target '${targetName}' in project.pbxproj`);\n }\n return nativeTargetEntry;\n}\n\nfunction findNativeTargetById(project: XcodeProject, targetId: string): NativeTargetSectionEntry {\n const nativeTargets = getNativeTargets(project);\n const nativeTargetEntry = nativeTargets.find(([key]) => key === targetId);\n if (!nativeTargetEntry) {\n throw new Error(`Could not find target with id '${targetId}' in project.pbxproj`);\n }\n return nativeTargetEntry;\n}\n"],"mappings":"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"}