@leonxin/meetgames 0.1.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 (246) hide show
  1. package/README.md +120 -0
  2. package/bundled/android/sample.txt +1 -0
  3. package/dist/android/adapter.d.ts +3 -0
  4. package/dist/android/adapter.d.ts.map +1 -0
  5. package/dist/android/adapter.js +8 -0
  6. package/dist/android/adapter.js.map +1 -0
  7. package/dist/android/assembleIntegrationJson.d.ts +8 -0
  8. package/dist/android/assembleIntegrationJson.d.ts.map +1 -0
  9. package/dist/android/assembleIntegrationJson.js +31 -0
  10. package/dist/android/assembleIntegrationJson.js.map +1 -0
  11. package/dist/android/detect.d.ts +11 -0
  12. package/dist/android/detect.d.ts.map +1 -0
  13. package/dist/android/detect.js +87 -0
  14. package/dist/android/detect.js.map +1 -0
  15. package/dist/android/downloadGoogleServicesJson.d.ts +20 -0
  16. package/dist/android/downloadGoogleServicesJson.d.ts.map +1 -0
  17. package/dist/android/downloadGoogleServicesJson.js +43 -0
  18. package/dist/android/downloadGoogleServicesJson.js.map +1 -0
  19. package/dist/android/fetchRemoteConfig.d.ts +5 -0
  20. package/dist/android/fetchRemoteConfig.d.ts.map +1 -0
  21. package/dist/android/fetchRemoteConfig.js +24 -0
  22. package/dist/android/fetchRemoteConfig.js.map +1 -0
  23. package/dist/android/gradle.d.ts +30 -0
  24. package/dist/android/gradle.d.ts.map +1 -0
  25. package/dist/android/gradle.js +87 -0
  26. package/dist/android/gradle.js.map +1 -0
  27. package/dist/android/manifest.d.ts +10 -0
  28. package/dist/android/manifest.d.ts.map +1 -0
  29. package/dist/android/manifest.js +45 -0
  30. package/dist/android/manifest.js.map +1 -0
  31. package/dist/android/meetSdkRemoteGradle.d.ts +86 -0
  32. package/dist/android/meetSdkRemoteGradle.d.ts.map +1 -0
  33. package/dist/android/meetSdkRemoteGradle.js +479 -0
  34. package/dist/android/meetSdkRemoteGradle.js.map +1 -0
  35. package/dist/android/snapchatManifestPlaceholders.d.ts +15 -0
  36. package/dist/android/snapchatManifestPlaceholders.d.ts.map +1 -0
  37. package/dist/android/snapchatManifestPlaceholders.js +53 -0
  38. package/dist/android/snapchatManifestPlaceholders.js.map +1 -0
  39. package/dist/cli.d.ts +2 -0
  40. package/dist/cli.d.ts.map +1 -0
  41. package/dist/cli.js +291 -0
  42. package/dist/cli.js.map +1 -0
  43. package/dist/config/fetchConfigWrite.d.ts +10 -0
  44. package/dist/config/fetchConfigWrite.d.ts.map +1 -0
  45. package/dist/config/fetchConfigWrite.js +21 -0
  46. package/dist/config/fetchConfigWrite.js.map +1 -0
  47. package/dist/config/loadAndroidIntegration.d.ts +4 -0
  48. package/dist/config/loadAndroidIntegration.d.ts.map +1 -0
  49. package/dist/config/loadAndroidIntegration.js +34 -0
  50. package/dist/config/loadAndroidIntegration.js.map +1 -0
  51. package/dist/config/loadManifest.d.ts +3 -0
  52. package/dist/config/loadManifest.d.ts.map +1 -0
  53. package/dist/config/loadManifest.js +33 -0
  54. package/dist/config/loadManifest.js.map +1 -0
  55. package/dist/config/meetSdkDefaultConfig.d.ts +5 -0
  56. package/dist/config/meetSdkDefaultConfig.d.ts.map +1 -0
  57. package/dist/config/meetSdkDefaultConfig.js +15 -0
  58. package/dist/config/meetSdkDefaultConfig.js.map +1 -0
  59. package/dist/config/meetSdkRemoteConfig.d.ts +240 -0
  60. package/dist/config/meetSdkRemoteConfig.d.ts.map +1 -0
  61. package/dist/config/meetSdkRemoteConfig.js +892 -0
  62. package/dist/config/meetSdkRemoteConfig.js.map +1 -0
  63. package/dist/config/topsdkFeatureModules.d.ts +19 -0
  64. package/dist/config/topsdkFeatureModules.d.ts.map +1 -0
  65. package/dist/config/topsdkFeatureModules.js +47 -0
  66. package/dist/config/topsdkFeatureModules.js.map +1 -0
  67. package/dist/contracts/types.d.ts +95 -0
  68. package/dist/contracts/types.d.ts.map +1 -0
  69. package/dist/contracts/types.js +2 -0
  70. package/dist/contracts/types.js.map +1 -0
  71. package/dist/core/engine.d.ts +3 -0
  72. package/dist/core/engine.d.ts.map +1 -0
  73. package/dist/core/engine.js +18 -0
  74. package/dist/core/engine.js.map +1 -0
  75. package/dist/core/patch.d.ts +2 -0
  76. package/dist/core/patch.d.ts.map +1 -0
  77. package/dist/core/patch.js +61 -0
  78. package/dist/core/patch.js.map +1 -0
  79. package/dist/core/pipeline.d.ts +12 -0
  80. package/dist/core/pipeline.d.ts.map +1 -0
  81. package/dist/core/pipeline.js +102 -0
  82. package/dist/core/pipeline.js.map +1 -0
  83. package/dist/core/previewPatches.d.ts +8 -0
  84. package/dist/core/previewPatches.d.ts.map +1 -0
  85. package/dist/core/previewPatches.js +25 -0
  86. package/dist/core/previewPatches.js.map +1 -0
  87. package/dist/core/reporter.d.ts +3 -0
  88. package/dist/core/reporter.d.ts.map +1 -0
  89. package/dist/core/reporter.js +24 -0
  90. package/dist/core/reporter.js.map +1 -0
  91. package/dist/core/resolveFetchChannelType.d.ts +27 -0
  92. package/dist/core/resolveFetchChannelType.d.ts.map +1 -0
  93. package/dist/core/resolveFetchChannelType.js +54 -0
  94. package/dist/core/resolveFetchChannelType.js.map +1 -0
  95. package/dist/core/workspace.d.ts +5 -0
  96. package/dist/core/workspace.d.ts.map +1 -0
  97. package/dist/core/workspace.js +24 -0
  98. package/dist/core/workspace.js.map +1 -0
  99. package/dist/entry.d.ts +3 -0
  100. package/dist/entry.d.ts.map +1 -0
  101. package/dist/entry.js +7 -0
  102. package/dist/entry.js.map +1 -0
  103. package/dist/index.d.ts +23 -0
  104. package/dist/index.d.ts.map +1 -0
  105. package/dist/index.js +22 -0
  106. package/dist/index.js.map +1 -0
  107. package/dist/ios/channelConfig.d.ts +7 -0
  108. package/dist/ios/channelConfig.d.ts.map +1 -0
  109. package/dist/ios/channelConfig.js +51 -0
  110. package/dist/ios/channelConfig.js.map +1 -0
  111. package/dist/ios/codeUtils.d.ts +15 -0
  112. package/dist/ios/codeUtils.d.ts.map +1 -0
  113. package/dist/ios/codeUtils.js +166 -0
  114. package/dist/ios/codeUtils.js.map +1 -0
  115. package/dist/ios/detect.d.ts +3 -0
  116. package/dist/ios/detect.d.ts.map +1 -0
  117. package/dist/ios/detect.js +65 -0
  118. package/dist/ios/detect.js.map +1 -0
  119. package/dist/ios/fileManager.d.ts +12 -0
  120. package/dist/ios/fileManager.d.ts.map +1 -0
  121. package/dist/ios/fileManager.js +46 -0
  122. package/dist/ios/fileManager.js.map +1 -0
  123. package/dist/ios/infoPlist.d.ts +11 -0
  124. package/dist/ios/infoPlist.d.ts.map +1 -0
  125. package/dist/ios/infoPlist.js +48 -0
  126. package/dist/ios/infoPlist.js.map +1 -0
  127. package/dist/ios/integrate.d.ts +12 -0
  128. package/dist/ios/integrate.d.ts.map +1 -0
  129. package/dist/ios/integrate.js +263 -0
  130. package/dist/ios/integrate.js.map +1 -0
  131. package/dist/ios/pbxprojEditor.d.ts +20 -0
  132. package/dist/ios/pbxprojEditor.d.ts.map +1 -0
  133. package/dist/ios/pbxprojEditor.js +198 -0
  134. package/dist/ios/pbxprojEditor.js.map +1 -0
  135. package/dist/ios/pluginConfig.d.ts +6 -0
  136. package/dist/ios/pluginConfig.d.ts.map +1 -0
  137. package/dist/ios/pluginConfig.js +64 -0
  138. package/dist/ios/pluginConfig.js.map +1 -0
  139. package/dist/ios/reserved.d.ts +4 -0
  140. package/dist/ios/reserved.d.ts.map +1 -0
  141. package/dist/ios/reserved.js +6 -0
  142. package/dist/ios/reserved.js.map +1 -0
  143. package/dist/ios/sdkBundle.d.ts +7 -0
  144. package/dist/ios/sdkBundle.d.ts.map +1 -0
  145. package/dist/ios/sdkBundle.js +30 -0
  146. package/dist/ios/sdkBundle.js.map +1 -0
  147. package/dist/ios/template.d.ts +3 -0
  148. package/dist/ios/template.d.ts.map +1 -0
  149. package/dist/ios/template.js +24 -0
  150. package/dist/ios/template.js.map +1 -0
  151. package/dist/ios/types.d.ts +43 -0
  152. package/dist/ios/types.d.ts.map +1 -0
  153. package/dist/ios/types.js +11 -0
  154. package/dist/ios/types.js.map +1 -0
  155. package/dist/mcp/server.d.ts +4 -0
  156. package/dist/mcp/server.d.ts.map +1 -0
  157. package/dist/mcp/server.js +139 -0
  158. package/dist/mcp/server.js.map +1 -0
  159. package/dist/mcp/service.d.ts +49 -0
  160. package/dist/mcp/service.d.ts.map +1 -0
  161. package/dist/mcp/service.js +113 -0
  162. package/dist/mcp/service.js.map +1 -0
  163. package/dist/mcp-entry.d.ts +3 -0
  164. package/dist/mcp-entry.d.ts.map +1 -0
  165. package/dist/mcp-entry.js +7 -0
  166. package/dist/mcp-entry.js.map +1 -0
  167. package/dist/ops/fileStore.d.ts +17 -0
  168. package/dist/ops/fileStore.d.ts.map +1 -0
  169. package/dist/ops/fileStore.js +55 -0
  170. package/dist/ops/fileStore.js.map +1 -0
  171. package/dist/ops/handlers.d.ts +10 -0
  172. package/dist/ops/handlers.d.ts.map +1 -0
  173. package/dist/ops/handlers.js +268 -0
  174. package/dist/ops/handlers.js.map +1 -0
  175. package/dist/platforms/android/adapter.d.ts +3 -0
  176. package/dist/platforms/android/adapter.d.ts.map +1 -0
  177. package/dist/platforms/android/adapter.js +8 -0
  178. package/dist/platforms/android/adapter.js.map +1 -0
  179. package/dist/platforms/android/detect.d.ts +3 -0
  180. package/dist/platforms/android/detect.d.ts.map +1 -0
  181. package/dist/platforms/android/detect.js +79 -0
  182. package/dist/platforms/android/detect.js.map +1 -0
  183. package/dist/platforms/android/gradle.d.ts +30 -0
  184. package/dist/platforms/android/gradle.d.ts.map +1 -0
  185. package/dist/platforms/android/gradle.js +83 -0
  186. package/dist/platforms/android/gradle.js.map +1 -0
  187. package/dist/platforms/android/manifest.d.ts +7 -0
  188. package/dist/platforms/android/manifest.d.ts.map +1 -0
  189. package/dist/platforms/android/manifest.js +24 -0
  190. package/dist/platforms/android/manifest.js.map +1 -0
  191. package/dist/platforms/ios/adapter.d.ts +3 -0
  192. package/dist/platforms/ios/adapter.d.ts.map +1 -0
  193. package/dist/platforms/ios/adapter.js +8 -0
  194. package/dist/platforms/ios/adapter.js.map +1 -0
  195. package/dist/platforms/ios/detect.d.ts +8 -0
  196. package/dist/platforms/ios/detect.d.ts.map +1 -0
  197. package/dist/platforms/ios/detect.js +67 -0
  198. package/dist/platforms/ios/detect.js.map +1 -0
  199. package/dist/platforms/ios/plist.d.ts +11 -0
  200. package/dist/platforms/ios/plist.d.ts.map +1 -0
  201. package/dist/platforms/ios/plist.js +24 -0
  202. package/dist/platforms/ios/plist.js.map +1 -0
  203. package/dist/platforms/ios/podfile.d.ts +7 -0
  204. package/dist/platforms/ios/podfile.d.ts.map +1 -0
  205. package/dist/platforms/ios/podfile.js +15 -0
  206. package/dist/platforms/ios/podfile.js.map +1 -0
  207. package/dist/remote/fetchJson.d.ts +5 -0
  208. package/dist/remote/fetchJson.d.ts.map +1 -0
  209. package/dist/remote/fetchJson.js +24 -0
  210. package/dist/remote/fetchJson.js.map +1 -0
  211. package/dist/remote/topsdkDownloadSdkConfig.d.ts +23 -0
  212. package/dist/remote/topsdkDownloadSdkConfig.d.ts.map +1 -0
  213. package/dist/remote/topsdkDownloadSdkConfig.js +56 -0
  214. package/dist/remote/topsdkDownloadSdkConfig.js.map +1 -0
  215. package/dist/remote/topsdkGetSdkConfig.d.ts +46 -0
  216. package/dist/remote/topsdkGetSdkConfig.d.ts.map +1 -0
  217. package/dist/remote/topsdkGetSdkConfig.js +95 -0
  218. package/dist/remote/topsdkGetSdkConfig.js.map +1 -0
  219. package/dist/remote/topsdkSign.d.ts +6 -0
  220. package/dist/remote/topsdkSign.d.ts.map +1 -0
  221. package/dist/remote/topsdkSign.js +10 -0
  222. package/dist/remote/topsdkSign.js.map +1 -0
  223. package/docs/ANDROID.md +133 -0
  224. package/docs/API.md +47 -0
  225. package/docs/CURSOR-MCP-SETUP.md +72 -0
  226. package/docs/MCP-SKILL.md +63 -0
  227. package/docs/README.md +12 -0
  228. package/docs/api/downloadSDKConfig.md +96 -0
  229. package/docs/api/getChannelConfig-meetgames.md +106 -0
  230. package/docs/api/getSDKConfig.md +38 -0
  231. package/docs//346/212/200/346/234/257/346/226/271/346/241/210/350/260/203/347/240/224.md +329 -0
  232. package/docs//351/234/200/346/261/202/346/226/207/346/241/243.md +320 -0
  233. package/fixtures/api-samples/getChannelConfig-meetgames.sample.json +123 -0
  234. package/fixtures/meetsdk-remote-config.download-shape.json +20 -0
  235. package/fixtures/meetsdk-remote-config.mock.json +69 -0
  236. package/fixtures/recipes/android-default.fixture.yaml +15 -0
  237. package/fixtures/recipes/android-integration.fixture.json +29 -0
  238. package/fixtures/topsdk-config-reference.json +39 -0
  239. package/meetsdk-android.json +151 -0
  240. package/package.json +61 -0
  241. package/recipes/android-default.yaml +15 -0
  242. package/recipes/integrate-default.yaml +16 -0
  243. package/recipes/ios-default.yaml +5 -0
  244. package/schema/android-integration.schema.json +65 -0
  245. package/schema/manifest.schema.json +45 -0
  246. package/schema/meetsdk-remote-config.schema.json +45 -0
@@ -0,0 +1,48 @@
1
+ import { build as buildPlist, parse as parsePlist } from "plist";
2
+ export function parsePlistXml(xml) {
3
+ const parsed = parsePlist(xml);
4
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
5
+ return {};
6
+ }
7
+ return parsed;
8
+ }
9
+ export function buildPlistXml(data) {
10
+ return buildPlist(data);
11
+ }
12
+ export function addPlistParam(data, key, value) {
13
+ data[key] = value;
14
+ }
15
+ export function setAppTransportSecurity(data, open) {
16
+ const security = data.NSAppTransportSecurity ?? {};
17
+ security.NSAllowsArbitraryLoads = open;
18
+ data.NSAppTransportSecurity = security;
19
+ }
20
+ export function addQueriesScheme(data, scheme) {
21
+ if (!scheme)
22
+ return;
23
+ const schemes = Array.isArray(data.LSApplicationQueriesSchemes)
24
+ ? [...data.LSApplicationQueriesSchemes]
25
+ : [];
26
+ if (schemes.includes(scheme))
27
+ return;
28
+ schemes.push(scheme);
29
+ data.LSApplicationQueriesSchemes = schemes;
30
+ }
31
+ export function addUrlScheme(data, urlScheme) {
32
+ if (!urlScheme)
33
+ return;
34
+ const types = Array.isArray(data.CFBundleURLTypes)
35
+ ? [...data.CFBundleURLTypes]
36
+ : [];
37
+ for (const entry of types) {
38
+ const urls = entry.CFBundleURLSchemes;
39
+ if (urls?.includes(urlScheme))
40
+ return;
41
+ }
42
+ types.push({
43
+ CFBundleTypeRole: "Editor",
44
+ CFBundleURLSchemes: [urlScheme],
45
+ });
46
+ data.CFBundleURLTypes = types;
47
+ }
48
+ //# sourceMappingURL=infoPlist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infoPlist.js","sourceRoot":"","sources":["../../src/ios/infoPlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,OAAO,CAAC;AAOjE,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA6B;IACzD,OAAO,UAAU,CAAC,IAAwC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA6B,EAAE,GAAW,EAAE,KAAa;IACrF,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAA6B,EAAE,IAAa;IAClF,MAAM,QAAQ,GACX,IAAI,CAAC,sBAA8D,IAAI,EAAE,CAAC;IAC7E,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACvC,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAA6B,EAAE,MAAc;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;QAC7D,CAAC,CAAC,CAAC,GAAI,IAAI,CAAC,2BAAwC,CAAC;QACrD,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO;IACrC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,IAAI,CAAC,2BAA2B,GAAG,OAAO,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAA6B,EAAE,SAAiB;IAC3E,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAChD,CAAC,CAAC,CAAC,GAAI,IAAI,CAAC,gBAAmD,CAAC;QAChE,CAAC,CAAC,EAAE,CAAC;IACP,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,kBAA0C,CAAC;QAC9D,IAAI,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO;IACxC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC;QACT,gBAAgB,EAAE,QAAQ;QAC1B,kBAAkB,EAAE,CAAC,SAAS,CAAC;KAChC,CAAC,CAAC;IACH,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAChC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { StepResult, WorkspaceContext } from "../contracts/types.js";
2
+ import type { TextFileStore } from "../ops/fileStore.js";
3
+ import type { BinaryCopy } from "../ops/handlers.js";
4
+ import { type PerformSetting } from "./types.js";
5
+ export interface IosIntegrateOptions {
6
+ dryRun?: boolean;
7
+ targetName?: string;
8
+ executeAppDelegate?: boolean;
9
+ performSettings?: readonly PerformSetting[];
10
+ }
11
+ export declare function runIosIntegrateTopSdk(ctx: WorkspaceContext, store: TextFileStore, binaryCopies: BinaryCopy[], options?: IosIntegrateOptions): Promise<StepResult>;
12
+ //# sourceMappingURL=integrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrate.d.ts","sourceRoot":"","sources":["../../src/ios/integrate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAM1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AA4B3E,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC7C;AAyID,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE,UAAU,EAAE,EAC1B,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,UAAU,CAAC,CAoGrB"}
@@ -0,0 +1,263 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { MEETSDK_REMOTE_CONFIG_FILENAME, tryParseAsMeetSdkRemoteConfig, validateMeetSdkRemoteConfig, } from "../config/meetSdkRemoteConfig.js";
4
+ import { buildChannelConfigMap, enabledIosPluginFolders } from "./channelConfig.js";
5
+ import { CodeUtils, findDelegateFiles } from "./codeUtils.js";
6
+ import { DEFAULT_PERFORM_SETTINGS } from "./types.js";
7
+ import { TopSdkFileManager } from "./fileManager.js";
8
+ import { addPlistParam, addQueriesScheme, addUrlScheme, buildPlistXml, parsePlistXml, setAppTransportSecurity, } from "./infoPlist.js";
9
+ import { addOtherLinkerFlag, addSourceOrResourceFile, addSystemFramework, addSystemLib, addThirdPartyFramework, ensureInfoPlistInProject, findInfoPlistPathsFromPbx, loadPbxFromStore, savePbxToStore, setBuildSetting, } from "./pbxprojEditor.js";
10
+ import { findPluginByFolder, listSdkCoreConfigs } from "./pluginConfig.js";
11
+ import { resolveIosSdkRoot } from "./sdkBundle.js";
12
+ import { applyChannelTemplate } from "./template.js";
13
+ function ok(changed, warnings = []) {
14
+ return { ok: true, changedFiles: changed, warnings, errors: [] };
15
+ }
16
+ function fail(errors) {
17
+ return { ok: false, changedFiles: [], warnings: [], errors };
18
+ }
19
+ function applyPlugin(loaded, pbx, fm, channelConfig, perform, binaryCopies, dryRun) {
20
+ const { config, sourceDir } = loaded;
21
+ const srcRoot = pbx.srcRoot;
22
+ if (perform.includes("frameworks") && config.frameworks?.length) {
23
+ for (const fw of config.frameworks) {
24
+ if (fw.system) {
25
+ addSystemFramework(pbx, fw.name);
26
+ continue;
27
+ }
28
+ const src = path.join(sourceDir, fw.name);
29
+ if (!fs.existsSync(src))
30
+ continue;
31
+ const relTo = path.join(fm.topSdkRel, path.basename(src)).split(path.sep).join("/");
32
+ if (dryRun) {
33
+ binaryCopies.push({ fromAbs: src, relTo });
34
+ }
35
+ else {
36
+ fm.copyFramework(src);
37
+ }
38
+ addThirdPartyFramework(pbx, relTo, Boolean(fw.embed));
39
+ }
40
+ }
41
+ if (perform.includes("libs") && config.libs?.length) {
42
+ for (const lib of config.libs) {
43
+ if (lib.system) {
44
+ addSystemLib(pbx, lib.name);
45
+ continue;
46
+ }
47
+ const src = path.join(sourceDir, lib.name);
48
+ if (!fs.existsSync(src))
49
+ continue;
50
+ const relTo = path.join(fm.topSdkRel, path.basename(src)).split(path.sep).join("/");
51
+ if (dryRun)
52
+ binaryCopies.push({ fromAbs: src, relTo });
53
+ else
54
+ fm.copyFile(src);
55
+ addSourceOrResourceFile(pbx, relTo);
56
+ }
57
+ }
58
+ if (perform.includes("sources") && config.sources?.length) {
59
+ for (const source of config.sources) {
60
+ const src = path.join(sourceDir, source);
61
+ if (!fs.existsSync(src))
62
+ continue;
63
+ if (fs.statSync(src).isDirectory() &&
64
+ !src.endsWith(".bundle") &&
65
+ !src.endsWith(".framework") &&
66
+ !src.endsWith(".xcdatamodeld")) {
67
+ if (!dryRun) {
68
+ const copied = fm.copyDir(src);
69
+ const walk = (dir) => {
70
+ for (const name of fs.readdirSync(dir)) {
71
+ const full = path.join(dir, name);
72
+ if (fs.statSync(full).isDirectory()) {
73
+ if (name.endsWith(".bundle")) {
74
+ addSourceOrResourceFile(pbx, fm.relFromSrc(full));
75
+ }
76
+ else {
77
+ walk(full);
78
+ }
79
+ continue;
80
+ }
81
+ if (/\.(h|m|mm|plist|a)$/.test(name)) {
82
+ addSourceOrResourceFile(pbx, fm.relFromSrc(full));
83
+ }
84
+ }
85
+ };
86
+ walk(copied);
87
+ }
88
+ }
89
+ else {
90
+ const relTo = path.join(fm.topSdkRel, path.basename(src)).split(path.sep).join("/");
91
+ if (dryRun)
92
+ binaryCopies.push({ fromAbs: src, relTo });
93
+ else if (fs.statSync(src).isDirectory())
94
+ fm.copyDir(src);
95
+ else
96
+ fm.copyFile(src);
97
+ addSourceOrResourceFile(pbx, relTo);
98
+ }
99
+ }
100
+ }
101
+ if (perform.includes("buildSettings") && config.buildSettings) {
102
+ for (const [k, v] of Object.entries(config.buildSettings)) {
103
+ setBuildSetting(pbx, k, v);
104
+ }
105
+ }
106
+ if (perform.includes("OtherLinkerFlags") && config.OtherLinkerFlags?.length) {
107
+ for (const flag of config.OtherLinkerFlags) {
108
+ addOtherLinkerFlag(pbx, flag);
109
+ }
110
+ }
111
+ }
112
+ function mergePlistParams(docs, loaded, channelConfig, perform) {
113
+ if (!perform.includes("infoParams") && !perform.includes("urlScheme") && !perform.includes("queriesSchemes")) {
114
+ return;
115
+ }
116
+ for (const doc of docs) {
117
+ if (perform.includes("infoParams") && loaded.config.infoParams) {
118
+ for (const [key, raw] of Object.entries(loaded.config.infoParams)) {
119
+ addPlistParam(doc.data, key, applyChannelTemplate(raw, channelConfig));
120
+ }
121
+ }
122
+ if (perform.includes("queriesSchemes") && loaded.config.queriesSchemes?.length) {
123
+ for (const scheme of loaded.config.queriesSchemes) {
124
+ addQueriesScheme(doc.data, scheme);
125
+ }
126
+ }
127
+ if (perform.includes("urlScheme") && loaded.config.urlScheme) {
128
+ let scheme = applyChannelTemplate(loaded.config.urlScheme, channelConfig);
129
+ if (scheme.endsWith("://"))
130
+ scheme = scheme.replace("://", "");
131
+ addUrlScheme(doc.data, scheme);
132
+ }
133
+ }
134
+ }
135
+ export async function runIosIntegrateTopSdk(ctx, store, binaryCopies, options = {}) {
136
+ if (!ctx.ios?.ok)
137
+ return fail(["iOS project not detected"]);
138
+ const warnings = [];
139
+ const changed = new Set();
140
+ const configPath = path.join(ctx.projectRoot, MEETSDK_REMOTE_CONFIG_FILENAME);
141
+ if (!fs.existsSync(configPath)) {
142
+ return fail([`${MEETSDK_REMOTE_CONFIG_FILENAME} not found; run fetch-config or setup first`]);
143
+ }
144
+ let remote;
145
+ try {
146
+ remote = tryParseAsMeetSdkRemoteConfig(JSON.parse(fs.readFileSync(configPath, "utf8")));
147
+ }
148
+ catch (e) {
149
+ return fail([e instanceof Error ? e.message : String(e)]);
150
+ }
151
+ if (!remote) {
152
+ return fail([`invalid ${MEETSDK_REMOTE_CONFIG_FILENAME}`]);
153
+ }
154
+ const validation = validateMeetSdkRemoteConfig(remote);
155
+ if (!validation.ok) {
156
+ warnings.push(`remote config missing fields: ${validation.missing.join(", ")}`);
157
+ }
158
+ let sdkRoot;
159
+ try {
160
+ sdkRoot = resolveIosSdkRoot(ctx.packageRoot);
161
+ }
162
+ catch (e) {
163
+ return fail([e instanceof Error ? e.message : String(e)]);
164
+ }
165
+ const targetName = options.targetName ?? ctx.ios.targetName ?? path.basename(ctx.ios.xcodeprojPath, ".xcodeproj");
166
+ const perform = options.performSettings ?? DEFAULT_PERFORM_SETTINGS;
167
+ const executeAppDelegate = options.executeAppDelegate !== false;
168
+ const dryRun = Boolean(options.dryRun);
169
+ const channelConfig = buildChannelConfigMap(remote);
170
+ const coreConfigs = listSdkCoreConfigs(sdkRoot);
171
+ const pluginFolders = enabledIosPluginFolders(remote);
172
+ const pluginConfigs = [];
173
+ for (const folder of pluginFolders) {
174
+ const p = findPluginByFolder(sdkRoot, folder);
175
+ if (p)
176
+ pluginConfigs.push(p);
177
+ else
178
+ warnings.push(`iOS plugin folder not in SDK package: plugins/${folder}`);
179
+ }
180
+ const xcodeprojPath = ctx.ios.xcodeprojPath;
181
+ const pbx = await loadPbxFromStore(store, ctx.projectRoot, xcodeprojPath, targetName);
182
+ const fm = new TopSdkFileManager(pbx.srcRoot);
183
+ for (const loaded of coreConfigs) {
184
+ applyPlugin(loaded, pbx, fm, channelConfig, perform, binaryCopies, dryRun);
185
+ }
186
+ for (const loaded of pluginConfigs) {
187
+ applyPlugin(loaded, pbx, fm, channelConfig, perform, binaryCopies, dryRun);
188
+ }
189
+ const plistDocs = await ensureInfoPlists(store, ctx, pbx, targetName, changed);
190
+ for (const loaded of [...coreConfigs, ...pluginConfigs]) {
191
+ mergePlistParams(plistDocs, loaded, channelConfig, perform);
192
+ if (perform.includes("infoParams")) {
193
+ setAppTransportSecurity(plistDocs[0]?.data ?? {}, true);
194
+ }
195
+ }
196
+ for (const doc of plistDocs) {
197
+ const rel = path.relative(ctx.projectRoot, path.join(pbx.srcRoot, doc.relPath)).split(path.sep).join("/");
198
+ store.write(rel, buildPlistXml(doc.data));
199
+ changed.add(rel);
200
+ }
201
+ savePbxToStore(store, pbx);
202
+ changed.add(pbx.rel);
203
+ if (executeAppDelegate) {
204
+ const delegateRelPaths = [];
205
+ for (const abs of findDelegateFiles(pbx.srcRoot)) {
206
+ delegateRelPaths.push(path.relative(ctx.projectRoot, abs).split(path.sep).join("/"));
207
+ }
208
+ if (!delegateRelPaths.length) {
209
+ warnings.push("no UIApplicationDelegate .m/.mm found; skipped AppDelegate injection (SwiftUI @main is not supported yet)");
210
+ }
211
+ for (const rel of delegateRelPaths) {
212
+ const cu = CodeUtils.fromFile(path.join(ctx.projectRoot, rel));
213
+ let okInject = true;
214
+ for (const loaded of [...coreConfigs, ...pluginConfigs]) {
215
+ for (const code of loaded.config.appDelegateCodes ?? []) {
216
+ if (code.type === "header") {
217
+ if (!cu.addHeader(code.content))
218
+ okInject = false;
219
+ }
220
+ else if ((code.type === "method" || code.type === "code") && code.method) {
221
+ if (!cu.addCodeToMethod(code.method, code.content, Boolean(code.addToReturn)))
222
+ okInject = false;
223
+ }
224
+ }
225
+ }
226
+ if (!okInject)
227
+ warnings.push(`AppDelegate injection incomplete for ${rel}`);
228
+ const before = store.read(rel);
229
+ cu.applyToStore((c) => store.write(rel, c));
230
+ if (store.read(rel) !== before)
231
+ changed.add(rel);
232
+ }
233
+ }
234
+ return ok([...changed], warnings);
235
+ }
236
+ async function ensureInfoPlists(store, ctx, pbx, targetName, changed) {
237
+ const absPaths = findInfoPlistPathsFromPbx(pbx);
238
+ if (absPaths.length) {
239
+ return absPaths.map((abs) => {
240
+ const rel = path.relative(ctx.projectRoot, abs).split(path.sep).join("/");
241
+ const xml = store.read(rel) || (fs.existsSync(abs) ? fs.readFileSync(abs, "utf8") : "");
242
+ return { relPath: path.relative(pbx.srcRoot, abs).split(path.sep).join("/"), data: parsePlistXml(xml) };
243
+ });
244
+ }
245
+ const relPlist = path.join(targetName, "Info.plist").split(path.sep).join("/");
246
+ ensureInfoPlistInProject(pbx, targetName, relPlist);
247
+ const abs = path.join(pbx.srcRoot, relPlist);
248
+ fs.mkdirSync(path.dirname(abs), { recursive: true });
249
+ const data = {
250
+ CFBundleDevelopmentRegion: "$(DEVELOPMENT_LANGUAGE)",
251
+ CFBundleExecutable: "$(EXECUTABLE_NAME)",
252
+ CFBundleIdentifier: "$(PRODUCT_BUNDLE_IDENTIFIER)",
253
+ CFBundleName: "$(PRODUCT_NAME)",
254
+ CFBundlePackageType: "APPL",
255
+ CFBundleShortVersionString: "1.0",
256
+ CFBundleVersion: "1",
257
+ };
258
+ const relFromProject = path.relative(ctx.projectRoot, abs).split(path.sep).join("/");
259
+ store.write(relFromProject, buildPlistXml(data));
260
+ changed.add(relFromProject);
261
+ return [{ relPath: relPlist, data }];
262
+ }
263
+ //# sourceMappingURL=integrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrate.js","sourceRoot":"","sources":["../../src/ios/integrate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { TextFileStore } from "../ops/fileStore.js";
2
+ type XcodeProject = any;
3
+ export interface PbxContext {
4
+ rel: string;
5
+ proj: XcodeProject;
6
+ srcRoot: string;
7
+ targetName: string;
8
+ }
9
+ export declare function loadPbxFromStore(store: TextFileStore, projectRoot: string, xcodeprojPath: string, targetName: string): Promise<PbxContext>;
10
+ export declare function savePbxToStore(store: TextFileStore, ctx: PbxContext): void;
11
+ export declare function addThirdPartyFramework(ctx: PbxContext, relPathFromSrcRoot: string, embed: boolean): void;
12
+ export declare function addSystemFramework(ctx: PbxContext, frameworkName: string): void;
13
+ export declare function addSystemLib(ctx: PbxContext, libName: string): void;
14
+ export declare function addSourceOrResourceFile(ctx: PbxContext, relPathFromSrcRoot: string): void;
15
+ export declare function setBuildSetting(ctx: PbxContext, key: string, value: string): void;
16
+ export declare function addOtherLinkerFlag(ctx: PbxContext, flag: string): void;
17
+ export declare function findInfoPlistPathsFromPbx(ctx: PbxContext): string[];
18
+ export declare function ensureInfoPlistInProject(ctx: PbxContext, _targetName: string, relPlist: string): void;
19
+ export {};
20
+ //# sourceMappingURL=pbxprojEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbxprojEditor.d.ts","sourceRoot":"","sources":["../../src/ios/pbxprojEditor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,KAAK,YAAY,GAAG,GAAG,CAAC;AAOxB,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAeD,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CAcrB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAE1E;AA4BD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CASxG;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAO/E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAOnE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAezF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAiBjF;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAwBtE;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CA0BnE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAGrG"}
@@ -0,0 +1,198 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { createRequire } from "node:module";
5
+ const require = createRequire(import.meta.url);
6
+ const xcode = require("xcode");
7
+ function parseProjectFromContent(content) {
8
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), "meet-pbx-"));
9
+ const pbxprojPath = path.join(dir, "project.pbxproj");
10
+ fs.writeFileSync(pbxprojPath, content, "utf8");
11
+ return new Promise((resolve, reject) => {
12
+ const proj = xcode.project(pbxprojPath);
13
+ proj.parse((err) => {
14
+ if (err)
15
+ reject(err);
16
+ else
17
+ resolve(proj);
18
+ });
19
+ });
20
+ }
21
+ export async function loadPbxFromStore(store, projectRoot, xcodeprojPath, targetName) {
22
+ const rel = path.relative(projectRoot, path.join(xcodeprojPath, "project.pbxproj")).split(path.sep).join("/");
23
+ const content = store.read(rel);
24
+ const proj = await parseProjectFromContent(content);
25
+ const xcodeprojDir = path.dirname(xcodeprojPath);
26
+ let srcRoot = xcodeprojDir;
27
+ const first = proj.getFirstProject?.()?.firstProject;
28
+ const projectDirPath = first?.projectDirPath
29
+ ? String(first.projectDirPath).replace(/^"|"$/g, "").trim()
30
+ : "";
31
+ if (projectDirPath.length > 0) {
32
+ srcRoot = path.resolve(xcodeprojDir, projectDirPath);
33
+ }
34
+ return { rel, proj, srcRoot, targetName };
35
+ }
36
+ export function savePbxToStore(store, ctx) {
37
+ store.write(ctx.rel, ctx.proj.writeSync());
38
+ }
39
+ function targetUuid(proj, targetName) {
40
+ const targets = proj.pbxNativeTargetSection?.() ?? {};
41
+ for (const [uuid, t] of Object.entries(targets)) {
42
+ if (uuid.endsWith("_comment"))
43
+ continue;
44
+ const name = t.name?.replace(/"/g, "");
45
+ if (name === targetName)
46
+ return uuid;
47
+ }
48
+ return undefined;
49
+ }
50
+ function targetKey(proj, targetName) {
51
+ const uuid = targetUuid(proj, targetName);
52
+ if (!uuid)
53
+ throw new Error(`Xcode target not found: ${targetName}`);
54
+ return uuid;
55
+ }
56
+ function ensureResourcesBuildPhase(proj, targetName) {
57
+ const target = targetKey(proj, targetName);
58
+ try {
59
+ proj.pbxResourcesBuildPhaseObj(target);
60
+ return;
61
+ }
62
+ catch {
63
+ proj.addBuildPhase([], "PBXResourcesBuildPhase", "Resources", target);
64
+ }
65
+ }
66
+ export function addThirdPartyFramework(ctx, relPathFromSrcRoot, embed) {
67
+ const file = relPathFromSrcRoot.split(path.sep).join("/");
68
+ const target = targetKey(ctx.proj, ctx.targetName);
69
+ ctx.proj.addFramework(file, {
70
+ customFramework: true,
71
+ embed,
72
+ sign: true,
73
+ target,
74
+ });
75
+ }
76
+ export function addSystemFramework(ctx, frameworkName) {
77
+ const target = targetKey(ctx.proj, ctx.targetName);
78
+ ctx.proj.addFramework(`System/Library/Frameworks/${frameworkName}`, {
79
+ customFramework: false,
80
+ weak: false,
81
+ target,
82
+ });
83
+ }
84
+ export function addSystemLib(ctx, libName) {
85
+ const target = targetKey(ctx.proj, ctx.targetName);
86
+ ctx.proj.addFramework(`usr/lib/${libName}`, {
87
+ customFramework: false,
88
+ weak: false,
89
+ target,
90
+ });
91
+ }
92
+ export function addSourceOrResourceFile(ctx, relPathFromSrcRoot) {
93
+ const file = relPathFromSrcRoot.split(path.sep).join("/");
94
+ const target = targetKey(ctx.proj, ctx.targetName);
95
+ if (file.endsWith(".h")) {
96
+ ctx.proj.addHeaderFile(file, { target });
97
+ }
98
+ else if (file.endsWith(".m") || file.endsWith(".mm") || file.endsWith(".swift")) {
99
+ ctx.proj.addSourceFile(file, { target });
100
+ }
101
+ else {
102
+ ensureResourcesBuildPhase(ctx.proj, ctx.targetName);
103
+ const opt = { target };
104
+ if (file.endsWith(".xcdatamodeld")) {
105
+ opt.lastKnownFileType = "wrapper.xcdatamodel";
106
+ }
107
+ ctx.proj.addResourceFile(file, opt);
108
+ }
109
+ }
110
+ export function setBuildSetting(ctx, key, value) {
111
+ const uuid = targetUuid(ctx.proj, ctx.targetName);
112
+ if (!uuid)
113
+ return;
114
+ const native = ctx.proj.pbxNativeTargetSection?.()[uuid];
115
+ const listId = native?.buildConfigurationList;
116
+ const lists = ctx.proj.pbxXCConfigurationList?.() ?? {};
117
+ if (!listId || !lists[listId])
118
+ return;
119
+ const list = lists[listId];
120
+ const buildConfigs = ctx.proj.pbxXCBuildConfigurationSection?.() ?? {};
121
+ for (const entry of list.buildConfigurations ?? []) {
122
+ const cfgId = typeof entry === "string" ? entry : entry.value;
123
+ const cfg = buildConfigs[cfgId];
124
+ if (!cfg || typeof cfg !== "object")
125
+ continue;
126
+ const settings = cfg.buildSettings ?? {};
127
+ settings[key] = value;
128
+ cfg.buildSettings = settings;
129
+ }
130
+ }
131
+ export function addOtherLinkerFlag(ctx, flag) {
132
+ const uuid = targetUuid(ctx.proj, ctx.targetName);
133
+ if (!uuid)
134
+ return;
135
+ const native = ctx.proj.pbxNativeTargetSection?.()[uuid];
136
+ const listId = native?.buildConfigurationList;
137
+ const lists = ctx.proj.pbxXCConfigurationList?.() ?? {};
138
+ if (!listId || !lists[listId])
139
+ return;
140
+ const list = lists[listId];
141
+ const buildConfigs = ctx.proj.pbxXCBuildConfigurationSection?.() ?? {};
142
+ for (const entry of list.buildConfigurations ?? []) {
143
+ const cfgId = typeof entry === "string" ? entry : entry.value;
144
+ const cfg = buildConfigs[cfgId];
145
+ if (!cfg || typeof cfg !== "object")
146
+ continue;
147
+ const settings = cfg.buildSettings ?? {};
148
+ const cur = settings.OTHER_LDFLAGS;
149
+ if (typeof cur === "string") {
150
+ if (!cur.includes(flag))
151
+ settings.OTHER_LDFLAGS = `${cur} ${flag}`.trim();
152
+ }
153
+ else if (Array.isArray(cur)) {
154
+ if (!cur.includes(flag))
155
+ settings.OTHER_LDFLAGS = [...cur, flag];
156
+ }
157
+ else {
158
+ settings.OTHER_LDFLAGS = [flag];
159
+ }
160
+ cfg.buildSettings = settings;
161
+ }
162
+ }
163
+ export function findInfoPlistPathsFromPbx(ctx) {
164
+ const paths = new Set();
165
+ const uuid = targetUuid(ctx.proj, ctx.targetName);
166
+ if (!uuid)
167
+ return [];
168
+ const native = ctx.proj.pbxNativeTargetSection?.()[uuid];
169
+ const listId = native?.buildConfigurationList;
170
+ const lists = ctx.proj.pbxXCConfigurationList?.() ?? {};
171
+ if (!listId || !lists[listId])
172
+ return [];
173
+ const list = lists[listId];
174
+ const buildConfigs = ctx.proj.pbxXCBuildConfigurationSection?.() ?? {};
175
+ for (const entry of list.buildConfigurations ?? []) {
176
+ const cfgId = typeof entry === "string" ? entry : entry.value;
177
+ const cfg = buildConfigs[cfgId];
178
+ const settings = cfg?.buildSettings;
179
+ const info = settings?.INFOPLIST_FILE;
180
+ if (!info)
181
+ continue;
182
+ let resolved = info.replace(/"/g, "");
183
+ if (resolved.includes("$(SRCROOT)")) {
184
+ resolved = resolved.replace(/\$\(SRCROOT\)/g, ctx.srcRoot);
185
+ }
186
+ else if (!path.isAbsolute(resolved)) {
187
+ resolved = path.join(ctx.srcRoot, resolved);
188
+ }
189
+ resolved = path.normalize(resolved);
190
+ paths.add(resolved);
191
+ }
192
+ return [...paths];
193
+ }
194
+ export function ensureInfoPlistInProject(ctx, _targetName, relPlist) {
195
+ setBuildSetting(ctx, "GENERATE_INFOPLIST_FILE", "NO");
196
+ setBuildSetting(ctx, "INFOPLIST_FILE", relPlist);
197
+ }
198
+ //# sourceMappingURL=pbxprojEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbxprojEditor.js","sourceRoot":"","sources":["../../src/ios/pbxprojEditor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { LoadedPluginConfig } from "./types.js";
2
+ export declare function loadPluginConfig(configPath: string, sdkRoot: string): LoadedPluginConfig;
3
+ /** Core SDK manifests: `sdk/*.json` (e.g. topsdkConfig.t.json). */
4
+ export declare function listSdkCoreConfigs(sdkRoot: string): LoadedPluginConfig[];
5
+ export declare function findPluginByFolder(sdkRoot: string, folderName: string): LoadedPluginConfig | null;
6
+ //# sourceMappingURL=pluginConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginConfig.d.ts","sourceRoot":"","sources":["../../src/ios/pluginConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAoB,MAAM,YAAY,CAAC;AAyCvE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAMxF;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CASxE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAKjG"}