@leonxin/meetgames 0.1.8 → 0.1.12

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 (228) hide show
  1. package/.agents/skills/meet-sdk-regression/SKILL.md +93 -0
  2. package/.cursor/mcp.example.json +16 -0
  3. package/.cursor/mcp.json +11 -0
  4. package/.cursor/skills/meetgames-mcp/SKILL.md +48 -0
  5. package/.vite/vitest/results.json +1 -0
  6. package/README.md +36 -13
  7. package/{meetsdk-android.json → config/meetsdk-android.json} +2 -1
  8. package/config/meetsdk-ios.json +15 -0
  9. package/dist/android/adapter.d.ts.map +1 -1
  10. package/dist/android/adapter.js +2 -2
  11. package/dist/android/adapter.js.map +1 -1
  12. package/dist/android/detect.d.ts +2 -2
  13. package/dist/android/detect.d.ts.map +1 -1
  14. package/dist/android/detect.js +36 -8
  15. package/dist/android/detect.js.map +1 -1
  16. package/dist/cache.d.ts +44 -0
  17. package/dist/cache.d.ts.map +1 -0
  18. package/dist/cache.js +101 -0
  19. package/dist/cache.js.map +1 -0
  20. package/dist/cli.d.ts.map +1 -1
  21. package/dist/cli.js +181 -49
  22. package/dist/cli.js.map +1 -1
  23. package/dist/config/meetSdkDefaultConfig.d.ts +19 -2
  24. package/dist/config/meetSdkDefaultConfig.d.ts.map +1 -1
  25. package/dist/config/meetSdkDefaultConfig.js +69 -6
  26. package/dist/config/meetSdkDefaultConfig.js.map +1 -1
  27. package/dist/config/meetSdkIosConfig.d.ts +21 -0
  28. package/dist/config/meetSdkIosConfig.d.ts.map +1 -0
  29. package/dist/config/meetSdkIosConfig.js +68 -0
  30. package/dist/config/meetSdkIosConfig.js.map +1 -0
  31. package/dist/config/meetSdkRemoteConfig.d.ts +19 -1
  32. package/dist/config/meetSdkRemoteConfig.d.ts.map +1 -1
  33. package/dist/config/meetSdkRemoteConfig.js +64 -25
  34. package/dist/config/meetSdkRemoteConfig.js.map +1 -1
  35. package/dist/contracts/types.d.ts +27 -6
  36. package/dist/contracts/types.d.ts.map +1 -1
  37. package/dist/core/doctor.d.ts +17 -0
  38. package/dist/core/doctor.d.ts.map +1 -0
  39. package/dist/core/doctor.js +444 -0
  40. package/dist/core/doctor.js.map +1 -0
  41. package/dist/core/pipeline.d.ts.map +1 -1
  42. package/dist/core/pipeline.js +0 -15
  43. package/dist/core/pipeline.js.map +1 -1
  44. package/dist/core/platform.d.ts +12 -0
  45. package/dist/core/platform.d.ts.map +1 -0
  46. package/dist/core/platform.js +40 -0
  47. package/dist/core/platform.js.map +1 -0
  48. package/dist/core/previewPatches.d.ts +1 -1
  49. package/dist/core/previewPatches.js +2 -2
  50. package/dist/core/previewPatches.js.map +1 -1
  51. package/dist/core/reporter.js +1 -1
  52. package/dist/core/reporter.js.map +1 -1
  53. package/dist/core/workspace.d.ts +2 -2
  54. package/dist/core/workspace.d.ts.map +1 -1
  55. package/dist/core/workspace.js +6 -5
  56. package/dist/core/workspace.js.map +1 -1
  57. package/dist/index.d.ts +4 -1
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +4 -1
  60. package/dist/index.js.map +1 -1
  61. package/dist/ios/channelConfig.d.ts +1 -0
  62. package/dist/ios/channelConfig.d.ts.map +1 -1
  63. package/dist/ios/channelConfig.js +82 -0
  64. package/dist/ios/channelConfig.js.map +1 -1
  65. package/dist/ios/codeUtils.d.ts +1 -0
  66. package/dist/ios/codeUtils.d.ts.map +1 -1
  67. package/dist/ios/codeUtils.js +11 -2
  68. package/dist/ios/codeUtils.js.map +1 -1
  69. package/dist/ios/detect.d.ts +2 -2
  70. package/dist/ios/detect.d.ts.map +1 -1
  71. package/dist/ios/detect.js +49 -10
  72. package/dist/ios/detect.js.map +1 -1
  73. package/dist/ios/entitlements.d.ts +4 -0
  74. package/dist/ios/entitlements.d.ts.map +1 -0
  75. package/dist/ios/entitlements.js +53 -0
  76. package/dist/ios/entitlements.js.map +1 -0
  77. package/dist/ios/fileManager.d.ts.map +1 -1
  78. package/dist/ios/fileManager.js +3 -2
  79. package/dist/ios/fileManager.js.map +1 -1
  80. package/dist/ios/infoPlist.d.ts +1 -1
  81. package/dist/ios/infoPlist.d.ts.map +1 -1
  82. package/dist/ios/infoPlist.js.map +1 -1
  83. package/dist/ios/integrate.d.ts.map +1 -1
  84. package/dist/ios/integrate.js +214 -39
  85. package/dist/ios/integrate.js.map +1 -1
  86. package/dist/ios/pbxprojEditor.d.ts +2 -0
  87. package/dist/ios/pbxprojEditor.d.ts.map +1 -1
  88. package/dist/ios/pbxprojEditor.js +250 -6
  89. package/dist/ios/pbxprojEditor.js.map +1 -1
  90. package/dist/ios/pluginConfig.d.ts +1 -0
  91. package/dist/ios/pluginConfig.d.ts.map +1 -1
  92. package/dist/ios/pluginConfig.js +36 -4
  93. package/dist/ios/pluginConfig.js.map +1 -1
  94. package/dist/ios/sdkBundle.d.ts +1 -6
  95. package/dist/ios/sdkBundle.d.ts.map +1 -1
  96. package/dist/ios/sdkBundle.js +47 -17
  97. package/dist/ios/sdkBundle.js.map +1 -1
  98. package/dist/ios/template.d.ts +1 -0
  99. package/dist/ios/template.d.ts.map +1 -1
  100. package/dist/ios/template.js +14 -1
  101. package/dist/ios/template.js.map +1 -1
  102. package/dist/ios/types.d.ts +2 -2
  103. package/dist/ios/types.d.ts.map +1 -1
  104. package/dist/mcp/server.d.ts.map +1 -1
  105. package/dist/mcp/server.js +22 -15
  106. package/dist/mcp/server.js.map +1 -1
  107. package/dist/mcp/service.d.ts +11 -6
  108. package/dist/mcp/service.d.ts.map +1 -1
  109. package/dist/mcp/service.js +61 -18
  110. package/dist/mcp/service.js.map +1 -1
  111. package/dist/ops/handlers.d.ts.map +1 -1
  112. package/dist/ops/handlers.js +34 -23
  113. package/dist/ops/handlers.js.map +1 -1
  114. package/dist/remote/sdkHomeDownload.d.ts +65 -0
  115. package/dist/remote/sdkHomeDownload.d.ts.map +1 -0
  116. package/dist/remote/sdkHomeDownload.js +229 -0
  117. package/dist/remote/sdkHomeDownload.js.map +1 -0
  118. package/dist/remote/topsdkDownloadSdkConfig.d.ts.map +1 -1
  119. package/dist/remote/topsdkDownloadSdkConfig.js +11 -1
  120. package/dist/remote/topsdkDownloadSdkConfig.js.map +1 -1
  121. package/dist/shared/errors.d.ts +7 -0
  122. package/dist/shared/errors.d.ts.map +1 -0
  123. package/dist/shared/errors.js +16 -0
  124. package/dist/shared/errors.js.map +1 -0
  125. package/docs/API.md +246 -32
  126. package/docs/CLI.md +291 -0
  127. package/docs/INTEGRATION.md +116 -0
  128. package/docs/MCP.md +86 -0
  129. package/docs/README.md +18 -10
  130. package/docs/{api → archive/api}/downloadSDKConfig.md +9 -7
  131. package/docs/{api → archive/api}/getChannelConfig-meetgames.md +2 -2
  132. package/docs/archive/ios-migration.md +2139 -0
  133. package/docs/{ → archive/product/}/346/212/200/346/234/257/346/226/271/346/241/210/350/260/203/347/240/224.md +7 -7
  134. package/docs/{ → archive/product/}/351/234/200/346/261/202/346/226/207/346/241/243.md +16 -15
  135. package/package.json +7 -36
  136. package/recipes/android-default.yaml +0 -5
  137. package/recipes/integrate-default.yaml +0 -5
  138. package/src/android/adapter.ts +9 -0
  139. package/src/android/assembleIntegrationJson.ts +33 -0
  140. package/src/android/detect.ts +132 -0
  141. package/src/android/downloadGoogleServicesJson.ts +56 -0
  142. package/src/android/gradle.ts +116 -0
  143. package/src/android/manifest.ts +50 -0
  144. package/src/android/meetSdkRemoteGradle.ts +837 -0
  145. package/src/cache.ts +164 -0
  146. package/src/cli.ts +496 -0
  147. package/src/config/fetchConfigWrite.ts +30 -0
  148. package/src/config/loadAndroidIntegration.ts +41 -0
  149. package/src/config/loadManifest.ts +40 -0
  150. package/src/config/meetSdkDefaultConfig.ts +100 -0
  151. package/src/config/meetSdkIosConfig.ts +89 -0
  152. package/src/config/meetSdkRemoteConfig.ts +1215 -0
  153. package/src/config/topsdkFeatureModules.ts +92 -0
  154. package/src/contracts/types.ts +129 -0
  155. package/src/core/doctor.ts +485 -0
  156. package/src/core/patch.ts +64 -0
  157. package/src/core/pipeline.ts +107 -0
  158. package/src/core/platform.ts +47 -0
  159. package/src/core/previewPatches.ts +23 -0
  160. package/src/core/reporter.ts +24 -0
  161. package/src/core/workspace.ts +31 -0
  162. package/src/entry.ts +7 -0
  163. package/src/index.ts +140 -0
  164. package/src/ios/channelConfig.ts +128 -0
  165. package/src/ios/codeUtils.ts +160 -0
  166. package/src/ios/detect.ts +105 -0
  167. package/src/ios/entitlements.ts +61 -0
  168. package/src/ios/fileManager.ts +48 -0
  169. package/src/ios/infoPlist.ts +55 -0
  170. package/src/ios/integrate.ts +517 -0
  171. package/src/ios/pbxprojEditor.ts +450 -0
  172. package/src/ios/pluginConfig.ts +97 -0
  173. package/src/ios/reserved.ts +8 -0
  174. package/src/ios/sdkBundle.ts +59 -0
  175. package/src/ios/template.ts +36 -0
  176. package/src/ios/types.ts +65 -0
  177. package/src/mcp/server.ts +176 -0
  178. package/src/mcp/service.ts +253 -0
  179. package/src/mcp-entry.ts +7 -0
  180. package/src/ops/fileStore.ts +56 -0
  181. package/src/ops/handlers.ts +308 -0
  182. package/src/remote/fetchJson.ts +22 -0
  183. package/src/remote/sdkHomeDownload.ts +295 -0
  184. package/src/remote/topsdkDownloadSdkConfig.ts +93 -0
  185. package/src/remote/topsdkGetSdkConfig.ts +122 -0
  186. package/src/remote/topsdkSign.ts +10 -0
  187. package/src/shared/errors.ts +16 -0
  188. package/tests/assemble.test.ts +12 -0
  189. package/tests/doctor.test.ts +91 -0
  190. package/tests/downloadGoogleServicesJson.test.ts +47 -0
  191. package/tests/fetch-remote.test.ts +23 -0
  192. package/tests/fetchConfigOverrides.test.ts +28 -0
  193. package/tests/fetchConfigWrite.test.ts +54 -0
  194. package/tests/fixtures-hosts.test.ts +78 -0
  195. package/tests/gradle.test.ts +33 -0
  196. package/tests/integration-json.test.ts +29 -0
  197. package/tests/ios.codeUtils.test.ts +23 -0
  198. package/tests/ios.sdkBundle.test.ts +21 -0
  199. package/tests/loadManifest.test.ts +15 -0
  200. package/tests/manifest-xml.test.ts +30 -0
  201. package/tests/mcp.e2e.ts +214 -0
  202. package/tests/mcp.service.test.ts +53 -0
  203. package/tests/meetSdkRemoteConfig.test.ts +481 -0
  204. package/tests/meetSdkRemoteGradle.test.ts +414 -0
  205. package/tests/pipeline.android.test.ts +95 -0
  206. package/tests/pipeline.integration-json.test.ts +58 -0
  207. package/tests/pipeline.ios.test.ts +392 -0
  208. package/tests/pipeline.preview.patch.test.ts +85 -0
  209. package/tests/platformSelection.test.ts +77 -0
  210. package/tests/sdkHomeDownload.test.ts +124 -0
  211. package/tests/sdkVersionConfig.test.ts +131 -0
  212. package/tests/topsdk.test.ts +53 -0
  213. package/tests/topsdkDownloadSdkConfig.test.ts +81 -0
  214. package/tests/topsdkFeatureModules.test.ts +116 -0
  215. package/tsconfig.json +19 -0
  216. package/vitest.config.ts +9 -0
  217. package/vitest.mcp.config.ts +11 -0
  218. package/bundled/android/sample.txt +0 -1
  219. package/docs/ANDROID.md +0 -133
  220. package/docs/CURSOR-MCP-SETUP.md +0 -72
  221. package/docs/MCP-SKILL.md +0 -63
  222. package/fixtures/api-samples/getChannelConfig-meetgames.sample.json +0 -123
  223. package/fixtures/meetsdk-remote-config.download-shape.json +0 -20
  224. package/fixtures/meetsdk-remote-config.mock.json +0 -69
  225. package/fixtures/recipes/android-default.fixture.yaml +0 -15
  226. package/fixtures/recipes/android-integration.fixture.json +0 -29
  227. package/fixtures/topsdk-config-reference.json +0 -39
  228. /package/docs/{api → archive/api}/getSDKConfig.md +0 -0
@@ -18,10 +18,25 @@ function parseProjectFromContent(content) {
18
18
  });
19
19
  });
20
20
  }
21
+ function ensureObjectSection(proj, sectionName) {
22
+ const objects = proj.hash?.project?.objects;
23
+ if (!objects)
24
+ return;
25
+ if (!objects[sectionName])
26
+ objects[sectionName] = {};
27
+ }
28
+ function objectSection(proj, sectionName) {
29
+ ensureObjectSection(proj, sectionName);
30
+ return proj.hash.project.objects[sectionName];
31
+ }
21
32
  export async function loadPbxFromStore(store, projectRoot, xcodeprojPath, targetName) {
22
33
  const rel = path.relative(projectRoot, path.join(xcodeprojPath, "project.pbxproj")).split(path.sep).join("/");
23
34
  const content = store.read(rel);
24
35
  const proj = await parseProjectFromContent(content);
36
+ // Newer Xcode projects can omit empty sections, while the `xcode` package assumes
37
+ // sections such as PBXBuildFile already exist before adding frameworks/resources.
38
+ ensureObjectSection(proj, "PBXBuildFile");
39
+ ensureObjectSection(proj, "PBXFileReference");
25
40
  const xcodeprojDir = path.dirname(xcodeprojPath);
26
41
  let srcRoot = xcodeprojDir;
27
42
  const first = proj.getFirstProject?.()?.firstProject;
@@ -34,8 +49,69 @@ export async function loadPbxFromStore(store, projectRoot, xcodeprojPath, target
34
49
  return { rel, proj, srcRoot, targetName };
35
50
  }
36
51
  export function savePbxToStore(store, ctx) {
52
+ stripUndefinedValues(ctx.proj.hash?.project?.objects);
53
+ sanitizePbxBuildSettings(ctx.proj);
37
54
  store.write(ctx.rel, ctx.proj.writeSync());
38
55
  }
56
+ function stripUndefinedValues(value) {
57
+ if (Array.isArray(value)) {
58
+ for (const item of value)
59
+ stripUndefinedValues(item);
60
+ return;
61
+ }
62
+ if (!value || typeof value !== "object")
63
+ return;
64
+ const record = value;
65
+ for (const [key, nested] of Object.entries(record)) {
66
+ if (nested === undefined || nested === "undefined") {
67
+ delete record[key];
68
+ continue;
69
+ }
70
+ stripUndefinedValues(nested);
71
+ }
72
+ }
73
+ function sanitizePbxBuildSettings(proj) {
74
+ const buildConfigs = proj.pbxXCBuildConfigurationSection?.() ?? {};
75
+ for (const [uuid, cfg] of Object.entries(buildConfigs)) {
76
+ if (uuid.endsWith("_comment") || !cfg || typeof cfg !== "object")
77
+ continue;
78
+ const settings = cfg.buildSettings;
79
+ if (!settings)
80
+ continue;
81
+ for (const [key, raw] of Object.entries(settings)) {
82
+ if (typeof raw === "string") {
83
+ settings[key] = quotePbxStringIfNeeded(raw);
84
+ continue;
85
+ }
86
+ if (Array.isArray(raw)) {
87
+ settings[key] = raw.map((value) => (typeof value === "string" ? quotePbxStringIfNeeded(value) : value));
88
+ }
89
+ }
90
+ }
91
+ }
92
+ function isPbxQuotedString(value) {
93
+ return value.length >= 2 && value.startsWith('"') && value.endsWith('"');
94
+ }
95
+ function unquotePbxString(value) {
96
+ if (!isPbxQuotedString(value))
97
+ return value;
98
+ return value.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\");
99
+ }
100
+ function quotePbxStringIfNeeded(value) {
101
+ if (isPbxQuotedString(value))
102
+ return value;
103
+ if (!pbxStringNeedsQuotes(value))
104
+ return value;
105
+ return `"${value.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
106
+ }
107
+ function pbxStringNeedsQuotes(value) {
108
+ if (value.length === 0 || value.startsWith("-"))
109
+ return true;
110
+ return /[^A-Za-z0-9_.$/{}()+-]/.test(value);
111
+ }
112
+ function samePbxStringValue(a, b) {
113
+ return typeof a === "string" && unquotePbxString(a) === unquotePbxString(b);
114
+ }
39
115
  function targetUuid(proj, targetName) {
40
116
  const targets = proj.pbxNativeTargetSection?.() ?? {};
41
117
  for (const [uuid, t] of Object.entries(targets)) {
@@ -73,6 +149,99 @@ export function addThirdPartyFramework(ctx, relPathFromSrcRoot, embed) {
73
149
  target,
74
150
  });
75
151
  }
152
+ export function addCopyFile(ctx, relPathFromSrcRoot) {
153
+ const file = relPathFromSrcRoot.split(path.sep).join("/");
154
+ const target = targetKey(ctx.proj, ctx.targetName);
155
+ if (copyFilesPhaseJson(ctx, target).includes(path.basename(file)))
156
+ return;
157
+ ensureCopyFilesBuildPhase(ctx, target);
158
+ addCopyFileManually(ctx, target, file);
159
+ }
160
+ function copyFilesPhaseJson(ctx, target) {
161
+ try {
162
+ return JSON.stringify(ctx.proj.pbxCopyfilesBuildPhaseObj?.(target) ?? {});
163
+ }
164
+ catch {
165
+ return "";
166
+ }
167
+ }
168
+ function findFileRefUuid(ctx, file) {
169
+ const basename = path.basename(file);
170
+ const fileRefSection = objectSection(ctx.proj, "PBXFileReference");
171
+ for (const [uuid, raw] of Object.entries(fileRefSection)) {
172
+ if (uuid.endsWith("_comment") || !raw || typeof raw !== "object")
173
+ continue;
174
+ const ref = raw;
175
+ const comment = fileRefSection[`${uuid}_comment`];
176
+ const refPath = String(ref.path ?? "").replace(/^"|"$/g, "");
177
+ const refName = String(ref.name ?? "").replace(/^"|"$/g, "");
178
+ if (comment === basename || refPath === file || refPath.endsWith(`/${basename}`) || refName === basename) {
179
+ return uuid;
180
+ }
181
+ }
182
+ return null;
183
+ }
184
+ function ensureCopyFilesBuildPhase(ctx, target) {
185
+ const section = objectSection(ctx.proj, "PBXCopyFilesBuildPhase");
186
+ for (const [uuid, raw] of Object.entries(section)) {
187
+ if (uuid.endsWith("_comment") || !raw || typeof raw !== "object")
188
+ continue;
189
+ const phase = raw;
190
+ const name = String(phase.name ?? "").replace(/^"|"$/g, "");
191
+ if (name === "Copy Files" || section[`${uuid}_comment`] === "Copy Files") {
192
+ phase.files = phase.files ?? [];
193
+ return phase;
194
+ }
195
+ }
196
+ const uuid = ctx.proj.generateUuid();
197
+ const phase = {
198
+ isa: "PBXCopyFilesBuildPhase",
199
+ buildActionMask: 2147483647,
200
+ dstPath: '""',
201
+ dstSubfolderSpec: 10,
202
+ files: [],
203
+ name: '"Copy Files"',
204
+ runOnlyForDeploymentPostprocessing: 0,
205
+ };
206
+ section[uuid] = phase;
207
+ section[`${uuid}_comment`] = "Copy Files";
208
+ const native = ctx.proj.pbxNativeTargetSection?.()[target];
209
+ native.buildPhases ??= [];
210
+ if (!native.buildPhases.some((p) => p.value === uuid)) {
211
+ native.buildPhases.push({ value: uuid, comment: "Copy Files" });
212
+ }
213
+ return phase;
214
+ }
215
+ function addCopyFileManually(ctx, target, file) {
216
+ const basename = path.basename(file);
217
+ const phase = ensureCopyFilesBuildPhase(ctx, target);
218
+ const files = (phase.files ??= []);
219
+ if (JSON.stringify(files).includes(basename))
220
+ return;
221
+ let fileRefUuid = findFileRefUuid(ctx, file) ?? "";
222
+ if (!fileRefUuid) {
223
+ fileRefUuid = ctx.proj.generateUuid();
224
+ const fileRefSection = objectSection(ctx.proj, "PBXFileReference");
225
+ fileRefSection[fileRefUuid] = {
226
+ isa: "PBXFileReference",
227
+ name: `"${basename}"`,
228
+ path: `"${file}"`,
229
+ sourceTree: '"<group>"',
230
+ lastKnownFileType: "wrapper.framework",
231
+ includeInIndex: 0,
232
+ };
233
+ fileRefSection[`${fileRefUuid}_comment`] = basename;
234
+ }
235
+ const buildUuid = ctx.proj.generateUuid();
236
+ const buildFileSection = objectSection(ctx.proj, "PBXBuildFile");
237
+ buildFileSection[buildUuid] = {
238
+ isa: "PBXBuildFile",
239
+ fileRef: fileRefUuid,
240
+ fileRef_comment: basename,
241
+ };
242
+ buildFileSection[`${buildUuid}_comment`] = `${basename} in Copy Files`;
243
+ files.push({ value: buildUuid, comment: `${basename} in Copy Files` });
244
+ }
76
245
  export function addSystemFramework(ctx, frameworkName) {
77
246
  const target = targetKey(ctx.proj, ctx.targetName);
78
247
  ctx.proj.addFramework(`System/Library/Frameworks/${frameworkName}`, {
@@ -104,9 +273,56 @@ export function addSourceOrResourceFile(ctx, relPathFromSrcRoot) {
104
273
  if (file.endsWith(".xcdatamodeld")) {
105
274
  opt.lastKnownFileType = "wrapper.xcdatamodel";
106
275
  }
107
- ctx.proj.addResourceFile(file, opt);
276
+ try {
277
+ ctx.proj.addResourceFile(file, opt);
278
+ }
279
+ catch (e) {
280
+ if (!String(e instanceof Error ? e.message : e).includes("path"))
281
+ throw e;
282
+ addResourceFileManually(ctx, file, typeof opt.lastKnownFileType === "string" ? opt.lastKnownFileType : undefined);
283
+ }
108
284
  }
109
285
  }
286
+ function resourceFileType(file, lastKnownFileType) {
287
+ if (lastKnownFileType)
288
+ return lastKnownFileType;
289
+ if (file.endsWith(".bundle"))
290
+ return "wrapper.plug-in";
291
+ if (file.endsWith(".xcdatamodeld"))
292
+ return "wrapper.xcdatamodel";
293
+ if (file.endsWith(".xcassets"))
294
+ return "folder.assetcatalog";
295
+ if (file.endsWith(".plist"))
296
+ return "text.plist.xml";
297
+ return "unknown";
298
+ }
299
+ function addResourceFileManually(ctx, file, lastKnownFileType) {
300
+ const basename = path.basename(file);
301
+ const resources = ctx.proj.pbxResourcesBuildPhaseObj(targetKey(ctx.proj, ctx.targetName));
302
+ const files = (resources.files ??= []);
303
+ if (JSON.stringify(files).includes(basename))
304
+ return;
305
+ const fileRefUuid = ctx.proj.generateUuid();
306
+ const buildUuid = ctx.proj.generateUuid();
307
+ const fileRefSection = objectSection(ctx.proj, "PBXFileReference");
308
+ const buildFileSection = objectSection(ctx.proj, "PBXBuildFile");
309
+ fileRefSection[fileRefUuid] = {
310
+ isa: "PBXFileReference",
311
+ name: `"${basename}"`,
312
+ path: `"${file}"`,
313
+ sourceTree: '"<group>"',
314
+ lastKnownFileType: resourceFileType(file, lastKnownFileType),
315
+ includeInIndex: 0,
316
+ };
317
+ fileRefSection[`${fileRefUuid}_comment`] = basename;
318
+ buildFileSection[buildUuid] = {
319
+ isa: "PBXBuildFile",
320
+ fileRef: fileRefUuid,
321
+ fileRef_comment: basename,
322
+ };
323
+ buildFileSection[`${buildUuid}_comment`] = `${basename} in Resources`;
324
+ files.push({ value: buildUuid, comment: `${basename} in Resources` });
325
+ }
110
326
  export function setBuildSetting(ctx, key, value) {
111
327
  const uuid = targetUuid(ctx.proj, ctx.targetName);
112
328
  if (!uuid)
@@ -146,20 +362,48 @@ export function addOtherLinkerFlag(ctx, flag) {
146
362
  continue;
147
363
  const settings = cfg.buildSettings ?? {};
148
364
  const cur = settings.OTHER_LDFLAGS;
365
+ const normalizedFlag = unquotePbxString(flag);
366
+ const nextFlag = quotePbxStringIfNeeded(normalizedFlag);
149
367
  if (typeof cur === "string") {
150
- if (!cur.includes(flag))
151
- settings.OTHER_LDFLAGS = `${cur} ${flag}`.trim();
368
+ if (!unquotePbxString(cur).split(/\s+/).includes(normalizedFlag)) {
369
+ settings.OTHER_LDFLAGS = [quotePbxStringIfNeeded(cur), nextFlag];
370
+ }
152
371
  }
153
372
  else if (Array.isArray(cur)) {
154
- if (!cur.includes(flag))
155
- settings.OTHER_LDFLAGS = [...cur, flag];
373
+ const values = cur.map((value) => (typeof value === "string" ? quotePbxStringIfNeeded(value) : value));
374
+ if (!values.some((value) => samePbxStringValue(value, normalizedFlag)))
375
+ values.push(nextFlag);
376
+ settings.OTHER_LDFLAGS = values;
156
377
  }
157
378
  else {
158
- settings.OTHER_LDFLAGS = [flag];
379
+ settings.OTHER_LDFLAGS = [nextFlag];
159
380
  }
160
381
  cfg.buildSettings = settings;
161
382
  }
162
383
  }
384
+ export function getTargetBuildSettings(ctx) {
385
+ const uuid = targetUuid(ctx.proj, ctx.targetName);
386
+ if (!uuid)
387
+ return [];
388
+ const native = ctx.proj.pbxNativeTargetSection?.()[uuid];
389
+ const listId = native?.buildConfigurationList;
390
+ const lists = ctx.proj.pbxXCConfigurationList?.() ?? {};
391
+ if (!listId || !lists[listId])
392
+ return [];
393
+ const list = lists[listId];
394
+ const buildConfigs = ctx.proj.pbxXCBuildConfigurationSection?.() ?? {};
395
+ const out = [];
396
+ for (const entry of list.buildConfigurations ?? []) {
397
+ const cfgId = typeof entry === "string" ? entry : entry.value;
398
+ const cfg = buildConfigs[cfgId];
399
+ if (!cfg || typeof cfg !== "object")
400
+ continue;
401
+ const settings = cfg.buildSettings ?? {};
402
+ cfg.buildSettings = settings;
403
+ out.push(settings);
404
+ }
405
+ return out;
406
+ }
163
407
  export function findInfoPlistPathsFromPbx(ctx) {
164
408
  const paths = new Set();
165
409
  const uuid = targetUuid(ctx.proj, ctx.targetName);
@@ -1 +1 @@
1
- {"version":3,"file":"pbxprojEditor.js","sourceRoot":"","sources":["../../src/ios/pbxprojEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pbxprojEditor.js","sourceRoot":"","sources":["../../src/ios/pbxprojEditor.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export declare function loadPluginConfig(configPath: string, sdkRoot: string): L
3
3
  /** Core SDK manifests: `sdk/*.json` (e.g. topsdkConfig.t.json). */
4
4
  export declare function listSdkCoreConfigs(sdkRoot: string): LoadedPluginConfig[];
5
5
  export declare function findPluginByFolder(sdkRoot: string, folderName: string): LoadedPluginConfig | null;
6
+ export declare function validateLoadedPluginResources(loaded: LoadedPluginConfig): string[];
6
7
  //# sourceMappingURL=pluginConfig.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"pluginConfig.d.ts","sourceRoot":"","sources":["../../src/ios/pluginConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAoB,MAAM,YAAY,CAAC;AAwCvE,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;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,EAAE,CA2BlF"}
@@ -26,19 +26,18 @@ function parseConfigJson(filePath) {
26
26
  }
27
27
  return config;
28
28
  }
29
- function resolveSourceDir(sdkRoot, config) {
29
+ function resolveSourceDir(sdkRoot, config, pluginDir) {
30
30
  const sdkDir = path.join(sdkRoot, "sdk");
31
- const pluginsDir = path.join(sdkRoot, "plugins");
32
31
  if (config.type === 0) {
33
32
  return path.join(sdkDir, "source");
34
33
  }
35
- return path.join(pluginsDir, config.name, "source");
34
+ return path.join(pluginDir, "source");
36
35
  }
37
36
  export function loadPluginConfig(configPath, sdkRoot) {
38
37
  const abs = path.resolve(configPath);
39
38
  const pluginDir = path.dirname(abs);
40
39
  const config = parseConfigJson(abs);
41
- const sourceDir = resolveSourceDir(sdkRoot, config);
40
+ const sourceDir = resolveSourceDir(sdkRoot, config, pluginDir);
42
41
  return { configPath: abs, pluginDir, sourceDir, config };
43
42
  }
44
43
  /** Core SDK manifests: `sdk/*.json` (e.g. topsdkConfig.t.json). */
@@ -61,4 +60,37 @@ export function findPluginByFolder(sdkRoot, folderName) {
61
60
  return null;
62
61
  return loadPluginConfig(cfg, sdkRoot);
63
62
  }
63
+ export function validateLoadedPluginResources(loaded) {
64
+ const errors = [];
65
+ const { config, sourceDir, pluginDir, configPath } = loaded;
66
+ const dirName = path.basename(pluginDir);
67
+ const isKnownDataManagerAlias = config.type === 4 && dirName.endsWith("Manager");
68
+ if (config.type !== 0 && dirName !== config.name && !isKnownDataManagerAlias) {
69
+ errors.push(`plugin config name mismatch: ${configPath} name=${config.name} dir=${path.basename(pluginDir)}`);
70
+ }
71
+ if (!fs.existsSync(sourceDir)) {
72
+ errors.push(`plugin source directory not found: ${sourceDir}`);
73
+ return errors;
74
+ }
75
+ for (const source of config.sources ?? []) {
76
+ const p = path.join(sourceDir, source);
77
+ if (!fs.existsSync(p))
78
+ errors.push(`missing source resource for ${config.name}: ${source}`);
79
+ }
80
+ for (const fw of config.frameworks ?? []) {
81
+ if (fw.system)
82
+ continue;
83
+ const p = path.join(sourceDir, fw.name);
84
+ if (!fs.existsSync(p))
85
+ errors.push(`missing framework resource for ${config.name}: ${fw.name}`);
86
+ }
87
+ for (const lib of config.libs ?? []) {
88
+ if (lib.system)
89
+ continue;
90
+ const p = path.join(sourceDir, lib.name);
91
+ if (!fs.existsSync(p))
92
+ errors.push(`missing lib resource for ${config.name}: ${lib.name}`);
93
+ }
94
+ return errors;
95
+ }
64
96
  //# sourceMappingURL=pluginConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pluginConfig.js","sourceRoot":"","sources":["../../src/ios/pluginConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pluginConfig.js","sourceRoot":"","sources":["../../src/ios/pluginConfig.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,2 @@
1
- export declare function defaultBundledIosSdkRoot(packageRoot: string): string;
2
- /**
3
- * TopSDK iOS package root: `bundled/ios-sdk` or a single child dir (e.g. `ios--V1.6.0.4/`).
4
- * Native iOS only; SDK is vendored in the tool package.
5
- */
6
- export declare function resolveIosSdkRoot(packageRoot: string): string;
1
+ export declare function resolveIosSdkRoot(_packageRoot: string): string;
7
2
  //# sourceMappingURL=sdkBundle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdkBundle.d.ts","sourceRoot":"","sources":["../../src/ios/sdkBundle.ts"],"names":[],"mappings":"AAKA,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAoB7D"}
1
+ {"version":3,"file":"sdkBundle.d.ts","sourceRoot":"","sources":["../../src/ios/sdkBundle.ts"],"names":[],"mappings":"AAmDA,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAO9D"}
@@ -1,30 +1,60 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
- const BUNDLED_IOS_REL = path.join("bundled", "ios-sdk");
4
- export function defaultBundledIosSdkRoot(packageRoot) {
5
- return path.join(packageRoot, BUNDLED_IOS_REL);
6
- }
3
+ import { MEET_SDK_TOOL_CACHE_ROOT } from "../cache.js";
7
4
  /**
8
- * TopSDK iOS package root: `bundled/ios-sdk` or a single child dir (e.g. `ios--V1.6.0.4/`).
9
- * Native iOS only; SDK is vendored in the tool package.
5
+ * TopSDK iOS package root from cache.
6
+ * Native iOS only.
10
7
  */
11
- export function resolveIosSdkRoot(packageRoot) {
12
- const bundled = defaultBundledIosSdkRoot(packageRoot);
13
- if (!fs.existsSync(bundled)) {
14
- throw new Error(`iOS SDK not found at ${BUNDLED_IOS_REL} (expected sdk/ and plugins/ inside).`);
15
- }
16
- if (fs.existsSync(path.join(bundled, "sdk"))) {
17
- return bundled;
18
- }
8
+ function findIosSdkRoot(container) {
9
+ if (!fs.existsSync(container))
10
+ return null;
19
11
  const children = fs
20
- .readdirSync(bundled, { withFileTypes: true })
12
+ .readdirSync(container, { withFileTypes: true })
21
13
  .filter((d) => d.isDirectory() && !d.name.startsWith("."))
22
- .map((d) => path.join(bundled, d.name));
14
+ .map((d) => path.join(container, d.name))
15
+ .sort()
16
+ .reverse();
23
17
  for (const dir of children) {
24
18
  if (fs.existsSync(path.join(dir, "sdk")) && fs.existsSync(path.join(dir, "plugins"))) {
25
19
  return dir;
26
20
  }
27
21
  }
28
- throw new Error(`iOS SDK layout invalid under ${BUNDLED_IOS_REL}: need sdk/ + plugins/ at top level or under one version directory.`);
22
+ if (fs.existsSync(path.join(container, "sdk")) && fs.existsSync(path.join(container, "plugins"))) {
23
+ return container;
24
+ }
25
+ return null;
26
+ }
27
+ function findLatestCachedIosSdkRoot() {
28
+ const iosCache = path.join(MEET_SDK_TOOL_CACHE_ROOT, "sdk", "ios");
29
+ if (!fs.existsSync(iosCache))
30
+ return null;
31
+ const candidates = [];
32
+ const walk = (dir) => {
33
+ for (const ent of fs.readdirSync(dir, { withFileTypes: true })) {
34
+ if (!ent.isDirectory() || ent.name.startsWith("."))
35
+ continue;
36
+ const abs = path.join(dir, ent.name);
37
+ if (ent.name === "extracted") {
38
+ candidates.push(abs);
39
+ }
40
+ else {
41
+ walk(abs);
42
+ }
43
+ }
44
+ };
45
+ walk(iosCache);
46
+ candidates.sort((a, b) => fs.statSync(b).mtimeMs - fs.statSync(a).mtimeMs);
47
+ for (const candidate of candidates) {
48
+ const found = findIosSdkRoot(candidate);
49
+ if (found)
50
+ return found;
51
+ }
52
+ return null;
53
+ }
54
+ export function resolveIosSdkRoot(_packageRoot) {
55
+ const cached = findLatestCachedIosSdkRoot();
56
+ if (cached)
57
+ return cached;
58
+ throw new Error(`iOS SDK not found in ${path.join(MEET_SDK_TOOL_CACHE_ROOT, "sdk", "ios")}; run download-ios-sdk or setup first.`);
29
59
  }
30
60
  //# sourceMappingURL=sdkBundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdkBundle.js","sourceRoot":"","sources":["../../src/ios/sdkBundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAExD,MAAM,UAAU,wBAAwB,CAAC,WAAmB;IAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,MAAM,OAAO,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,wBAAwB,eAAe,uCAAuC,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,QAAQ,GAAG,EAAE;SAChB,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YACrF,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,gCAAgC,eAAe,qEAAqE,CACrH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sdkBundle.js","sourceRoot":"","sources":["../../src/ios/sdkBundle.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  /** Substitute `{path.to.value}` placeholders using channel config (topsdk-tool-ios `checkStr`). */
2
2
  export declare function applyChannelTemplate(value: string, channelConfig: Record<string, unknown>): string;
3
+ export declare function applyChannelTemplateValue(value: unknown, channelConfig: Record<string, unknown>): unknown;
3
4
  //# sourceMappingURL=template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/ios/template.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAoBlG"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/ios/template.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAoBlG;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAYzG"}
@@ -4,7 +4,7 @@ export function applyChannelTemplate(value, channelConfig) {
4
4
  const re = /\{([^}]+)\}/g;
5
5
  let m;
6
6
  while ((m = re.exec(value)) !== null) {
7
- const token = m[1];
7
+ const token = m[1].startsWith("$C.") ? m[1].slice(3) : m[1];
8
8
  const parts = token.split(".");
9
9
  let cur = channelConfig;
10
10
  for (const p of parts) {
@@ -21,4 +21,17 @@ export function applyChannelTemplate(value, channelConfig) {
21
21
  }
22
22
  return result;
23
23
  }
24
+ export function applyChannelTemplateValue(value, channelConfig) {
25
+ if (typeof value === "string")
26
+ return applyChannelTemplate(value, channelConfig);
27
+ if (Array.isArray(value))
28
+ return value.map((item) => applyChannelTemplateValue(item, channelConfig));
29
+ if (value && typeof value === "object") {
30
+ return Object.fromEntries(Object.entries(value).map(([key, item]) => [
31
+ key,
32
+ applyChannelTemplateValue(item, channelConfig),
33
+ ]));
34
+ }
35
+ return value;
36
+ }
24
37
  //# sourceMappingURL=template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/ios/template.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,aAAsC;IACxF,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,EAAE,GAAG,cAAc,CAAC;IAC1B,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,GAAY,aAAa,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAK,GAA+B,EAAE,CAAC;gBAC5E,GAAG,GAAI,GAA+B,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,GAAG,GAAG,EAAE,CAAC;gBACT,MAAM;YACR,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/ios/template.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,aAAsC;IACxF,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,EAAE,GAAG,cAAc,CAAC;IAC1B,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,GAAY,aAAa,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAK,GAA+B,EAAE,CAAC;gBAC5E,GAAG,GAAI,GAA+B,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,GAAG,GAAG,EAAE,CAAC;gBACT,MAAM;YACR,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc,EAAE,aAAsC;IAC9F,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACjF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IACrG,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;YACpE,GAAG;YACH,yBAAyB,CAAC,IAAI,EAAE,aAAa,CAAC;SAC/C,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -26,9 +26,9 @@ export interface PluginConfigJson {
26
26
  OtherLinkerFlags?: string[];
27
27
  queriesSchemes?: string[];
28
28
  urlScheme?: string;
29
- infoParams?: Record<string, string>;
29
+ infoParams?: Record<string, unknown>;
30
30
  requireConfigs?: string[];
31
- pluginParams?: unknown[];
31
+ pluginParams?: Record<string, string>;
32
32
  appDelegateCodes?: CodeConfig[];
33
33
  sceneDelegateCodes?: CodeConfig[];
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ios/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,YAAY,GACZ,MAAM,GACN,eAAe,GACf,kBAAkB,GAClB,gBAAgB,GAChB,YAAY,GACZ,WAAW,CAAC;AAEhB,eAAO,MAAM,wBAAwB,EAAE,SAAS,cAAc,EAS7D,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ios/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,YAAY,GACZ,MAAM,GACN,eAAe,GACf,kBAAkB,GAClB,gBAAgB,GAChB,YAAY,GACZ,WAAW,CAAC;AAEhB,eAAO,MAAM,wBAAwB,EAAE,SAAS,cAAc,EAS7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoBpE,wBAAgB,wBAAwB,IAAI,SAAS,CA8IpD;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAI7D"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoBpE,wBAAgB,wBAAwB,IAAI,SAAS,CAqJpD;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAI7D"}