@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,64 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ const CONFIG_FILENAMES = ["config.t.json", "config.json"];
4
+ function findConfigFileInDir(dir) {
5
+ for (const name of CONFIG_FILENAMES) {
6
+ const p = path.join(dir, name);
7
+ if (fs.existsSync(p))
8
+ return p;
9
+ }
10
+ return null;
11
+ }
12
+ function normalizePluginConfig(raw) {
13
+ const flags = raw.OtherLinkerFlags ??
14
+ raw.otherLinkerFlags ??
15
+ [];
16
+ return {
17
+ ...raw,
18
+ OtherLinkerFlags: flags,
19
+ };
20
+ }
21
+ function parseConfigJson(filePath) {
22
+ const raw = JSON.parse(fs.readFileSync(filePath, "utf8"));
23
+ const config = normalizePluginConfig(raw);
24
+ if (!config.name || typeof config.type !== "number") {
25
+ throw new Error(`invalid plugin config (missing name/type): ${filePath}`);
26
+ }
27
+ return config;
28
+ }
29
+ function resolveSourceDir(sdkRoot, config) {
30
+ const sdkDir = path.join(sdkRoot, "sdk");
31
+ const pluginsDir = path.join(sdkRoot, "plugins");
32
+ if (config.type === 0) {
33
+ return path.join(sdkDir, "source");
34
+ }
35
+ return path.join(pluginsDir, config.name, "source");
36
+ }
37
+ export function loadPluginConfig(configPath, sdkRoot) {
38
+ const abs = path.resolve(configPath);
39
+ const pluginDir = path.dirname(abs);
40
+ const config = parseConfigJson(abs);
41
+ const sourceDir = resolveSourceDir(sdkRoot, config);
42
+ return { configPath: abs, pluginDir, sourceDir, config };
43
+ }
44
+ /** Core SDK manifests: `sdk/*.json` (e.g. topsdkConfig.t.json). */
45
+ export function listSdkCoreConfigs(sdkRoot) {
46
+ const sdkDir = path.join(sdkRoot, "sdk");
47
+ if (!fs.existsSync(sdkDir))
48
+ return [];
49
+ const out = [];
50
+ for (const name of fs.readdirSync(sdkDir)) {
51
+ if (!name.endsWith(".json") || name.startsWith("."))
52
+ continue;
53
+ out.push(loadPluginConfig(path.join(sdkDir, name), sdkRoot));
54
+ }
55
+ return out;
56
+ }
57
+ export function findPluginByFolder(sdkRoot, folderName) {
58
+ const pluginDir = path.join(sdkRoot, "plugins", folderName);
59
+ const cfg = findConfigFileInDir(pluginDir);
60
+ if (!cfg)
61
+ return null;
62
+ return loadPluginConfig(cfg, sdkRoot);
63
+ }
64
+ //# sourceMappingURL=pluginConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginConfig.js","sourceRoot":"","sources":["../../src/ios/pluginConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { IosToolingReserved } from "../contracts/types.js";
2
+ export declare const iosToolingReserved: IosToolingReserved;
3
+ export { detectIOS as detectIOSPlaceholder } from "./detect.js";
4
+ //# sourceMappingURL=reserved.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved.d.ts","sourceRoot":"","sources":["../../src/ios/reserved.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,eAAO,MAAM,kBAAkB,EAAE,kBAGhC,CAAC;AAEF,OAAO,EAAE,SAAS,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ export const iosToolingReserved = {
2
+ status: "implemented",
3
+ plan: ["framework-copy", "pbxproj", "plist", "app-delegate"],
4
+ };
5
+ export { detectIOS as detectIOSPlaceholder } from "./detect.js";
6
+ //# sourceMappingURL=reserved.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved.js","sourceRoot":"","sources":["../../src/ios/reserved.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD,MAAM,EAAE,aAAa;IACrB,IAAI,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC;CAC7D,CAAC;AAEF,OAAO,EAAE,SAAS,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,7 @@
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;
7
+ //# sourceMappingURL=sdkBundle.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,30 @@
1
+ import fs from "node:fs";
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
+ }
7
+ /**
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.
10
+ */
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
+ }
19
+ const children = fs
20
+ .readdirSync(bundled, { withFileTypes: true })
21
+ .filter((d) => d.isDirectory() && !d.name.startsWith("."))
22
+ .map((d) => path.join(bundled, d.name));
23
+ for (const dir of children) {
24
+ if (fs.existsSync(path.join(dir, "sdk")) && fs.existsSync(path.join(dir, "plugins"))) {
25
+ return dir;
26
+ }
27
+ }
28
+ throw new Error(`iOS SDK layout invalid under ${BUNDLED_IOS_REL}: need sdk/ + plugins/ at top level or under one version directory.`);
29
+ }
30
+ //# sourceMappingURL=sdkBundle.js.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ /** Substitute `{path.to.value}` placeholders using channel config (topsdk-tool-ios `checkStr`). */
2
+ export declare function applyChannelTemplate(value: string, channelConfig: Record<string, unknown>): string;
3
+ //# sourceMappingURL=template.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,24 @@
1
+ /** Substitute `{path.to.value}` placeholders using channel config (topsdk-tool-ios `checkStr`). */
2
+ export function applyChannelTemplate(value, channelConfig) {
3
+ let result = value;
4
+ const re = /\{([^}]+)\}/g;
5
+ let m;
6
+ while ((m = re.exec(value)) !== null) {
7
+ const token = m[1];
8
+ const parts = token.split(".");
9
+ let cur = channelConfig;
10
+ for (const p of parts) {
11
+ if (cur && typeof cur === "object" && p in cur) {
12
+ cur = cur[p];
13
+ }
14
+ else {
15
+ cur = "";
16
+ break;
17
+ }
18
+ }
19
+ const replacement = cur == null ? "" : String(cur);
20
+ result = result.replace(m[0], replacement);
21
+ }
22
+ return result;
23
+ }
24
+ //# sourceMappingURL=template.js.map
@@ -0,0 +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"}
@@ -0,0 +1,43 @@
1
+ export interface FrameworkConfig {
2
+ name: string;
3
+ system: boolean;
4
+ embed: boolean;
5
+ copyFile?: boolean;
6
+ }
7
+ export interface LibConfig {
8
+ name: string;
9
+ system: boolean;
10
+ }
11
+ export interface CodeConfig {
12
+ type: "header" | "method" | "code";
13
+ method?: string;
14
+ content: string;
15
+ addToReturn?: boolean;
16
+ }
17
+ export interface PluginConfigJson {
18
+ name: string;
19
+ pluginVersion: string;
20
+ key: string;
21
+ type: number;
22
+ frameworks?: FrameworkConfig[];
23
+ libs?: LibConfig[];
24
+ sources?: string[];
25
+ buildSettings?: Record<string, string>;
26
+ OtherLinkerFlags?: string[];
27
+ queriesSchemes?: string[];
28
+ urlScheme?: string;
29
+ infoParams?: Record<string, string>;
30
+ requireConfigs?: string[];
31
+ pluginParams?: unknown[];
32
+ appDelegateCodes?: CodeConfig[];
33
+ sceneDelegateCodes?: CodeConfig[];
34
+ }
35
+ export interface LoadedPluginConfig {
36
+ configPath: string;
37
+ pluginDir: string;
38
+ sourceDir: string;
39
+ config: PluginConfigJson;
40
+ }
41
+ export type PerformSetting = "sources" | "frameworks" | "libs" | "buildSettings" | "OtherLinkerFlags" | "queriesSchemes" | "infoParams" | "urlScheme";
42
+ export declare const DEFAULT_PERFORM_SETTINGS: readonly PerformSetting[];
43
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,11 @@
1
+ export const DEFAULT_PERFORM_SETTINGS = [
2
+ "sources",
3
+ "frameworks",
4
+ "libs",
5
+ "buildSettings",
6
+ "OtherLinkerFlags",
7
+ "queriesSchemes",
8
+ "infoParams",
9
+ "urlScheme",
10
+ ];
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ios/types.ts"],"names":[],"mappings":"AAuDA,MAAM,CAAC,MAAM,wBAAwB,GAA8B;IACjE,SAAS;IACT,YAAY;IACZ,MAAM;IACN,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,YAAY;IACZ,WAAW;CACZ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function createMeetgamesMcpServer(): McpServer;
3
+ export declare function startMeetgamesMcpServer(): Promise<void>;
4
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +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,CA0IpD;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAI7D"}
@@ -0,0 +1,139 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
+ import * as z from "zod";
4
+ import { meetgamesDoctor, meetgamesFetchConfig, meetgamesIntegrate, meetgamesSetup } from "./service.js";
5
+ function toErrorResult(error) {
6
+ const message = error instanceof Error ? error.message : String(error);
7
+ return {
8
+ content: [{ type: "text", text: `Error: ${message}` }],
9
+ isError: true,
10
+ };
11
+ }
12
+ function toSuccessResult(data) {
13
+ return {
14
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
15
+ structuredContent: data,
16
+ };
17
+ }
18
+ export function createMeetgamesMcpServer() {
19
+ const server = new McpServer({
20
+ name: "meetgames-mcp",
21
+ version: "0.1.0",
22
+ });
23
+ server.registerTool("meetgames_doctor", {
24
+ description: "Inspect project workspace and return engine/android detection summary.",
25
+ inputSchema: {
26
+ projectRoot: z.string().optional().describe("Absolute or relative project root; default is current working directory."),
27
+ },
28
+ }, async ({ projectRoot }) => {
29
+ try {
30
+ return toSuccessResult(meetgamesDoctor({ projectRoot }));
31
+ }
32
+ catch (error) {
33
+ return toErrorResult(error);
34
+ }
35
+ });
36
+ server.registerTool("meetgames_fetch_config", {
37
+ description: "Download TOPSDK meetsdk-remote-config.json via downloadSDKConfig and write it into project root.",
38
+ inputSchema: {
39
+ projectRoot: z.string().optional().describe("Absolute or relative project root; default is current working directory."),
40
+ env: z.enum(["prod", "pre", "test"]).optional().describe("TOPSDK API environment."),
41
+ appId: z.string().optional().describe("Application id; required if not in local config."),
42
+ channelType: z.string().optional().describe("Channel type e.g. GOOGLE; required if not in local config."),
43
+ authTypes: z.array(z.string()).optional().describe("Ignored (legacy); downloadSDKConfig does not use authType."),
44
+ },
45
+ }, async ({ projectRoot, env, appId, channelType, authTypes }) => {
46
+ try {
47
+ const result = await meetgamesFetchConfig({
48
+ projectRoot,
49
+ env,
50
+ appId,
51
+ channelType,
52
+ authTypes,
53
+ });
54
+ return toSuccessResult(result);
55
+ }
56
+ catch (error) {
57
+ return toErrorResult(error);
58
+ }
59
+ });
60
+ server.registerTool("meetgames_integrate_dry_run", {
61
+ description: "Run integrate with built-in recipe in dry-run mode and return report + patch.",
62
+ inputSchema: {
63
+ projectRoot: z.string().optional().describe("Absolute or relative project root; default is current working directory."),
64
+ },
65
+ }, async ({ projectRoot }) => {
66
+ try {
67
+ const result = await meetgamesIntegrate({ projectRoot, dryRun: true });
68
+ if (result.hasErrors) {
69
+ return {
70
+ ...toSuccessResult(result),
71
+ isError: true,
72
+ };
73
+ }
74
+ return toSuccessResult(result);
75
+ }
76
+ catch (error) {
77
+ return toErrorResult(error);
78
+ }
79
+ });
80
+ server.registerTool("meetgames_integrate_apply", {
81
+ description: "Run integrate with built-in recipe and write changes to disk.",
82
+ inputSchema: {
83
+ projectRoot: z.string().optional().describe("Absolute or relative project root; default is current working directory."),
84
+ },
85
+ }, async ({ projectRoot }) => {
86
+ try {
87
+ const result = await meetgamesIntegrate({ projectRoot, dryRun: false });
88
+ if (result.hasErrors) {
89
+ return {
90
+ ...toSuccessResult(result),
91
+ isError: true,
92
+ };
93
+ }
94
+ return toSuccessResult(result);
95
+ }
96
+ catch (error) {
97
+ return toErrorResult(error);
98
+ }
99
+ });
100
+ server.registerTool("meetgames_setup", {
101
+ description: "Download meetsdk-remote-config.json then run default integrate recipe (fetch-config + integrate).",
102
+ inputSchema: {
103
+ projectRoot: z.string().optional().describe("Absolute or relative project root; default is current working directory."),
104
+ env: z.enum(["prod", "pre", "test"]).optional().describe("TOPSDK API environment."),
105
+ appId: z.string().optional().describe("Application id; required if not in local config."),
106
+ channelType: z.string().optional().describe("Channel type e.g. GOOGLE; required if not in local config."),
107
+ authTypes: z.array(z.string()).optional().describe("Ignored (legacy)."),
108
+ dryRun: z.boolean().optional().describe("If true, integrate step previews only; fetch always writes config."),
109
+ },
110
+ }, async ({ projectRoot, env, appId, channelType, authTypes, dryRun }) => {
111
+ try {
112
+ const result = await meetgamesSetup({
113
+ projectRoot,
114
+ env,
115
+ appId,
116
+ channelType,
117
+ authTypes,
118
+ dryRun: dryRun ?? false,
119
+ });
120
+ if (result.integrate.hasErrors) {
121
+ return {
122
+ ...toSuccessResult(result),
123
+ isError: true,
124
+ };
125
+ }
126
+ return toSuccessResult(result);
127
+ }
128
+ catch (error) {
129
+ return toErrorResult(error);
130
+ }
131
+ });
132
+ return server;
133
+ }
134
+ export async function startMeetgamesMcpServer() {
135
+ const server = createMeetgamesMcpServer();
136
+ const transport = new StdioServerTransport();
137
+ await server.connect(transport);
138
+ }
139
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { PipelineReport } from "../contracts/types.js";
2
+ import type { BinaryCopy } from "../ops/handlers.js";
3
+ import { type TopSdkApiEnv } from "../remote/topsdkDownloadSdkConfig.js";
4
+ export declare function meetgamesDoctor(params: {
5
+ projectRoot?: string;
6
+ }): {
7
+ projectRoot: string;
8
+ packageRoot: string;
9
+ engine: string;
10
+ android: object | undefined;
11
+ ios: object | undefined;
12
+ iosReserved: object | undefined;
13
+ };
14
+ export declare function meetgamesFetchConfig(params: {
15
+ projectRoot?: string;
16
+ env?: TopSdkApiEnv;
17
+ appId?: string;
18
+ channelType?: string;
19
+ authTypes?: string[];
20
+ }): Promise<{
21
+ outputPath: string;
22
+ requestUrl: string;
23
+ env: TopSdkApiEnv;
24
+ warnings: string[];
25
+ }>;
26
+ export declare function meetgamesIntegrate(params: {
27
+ projectRoot?: string;
28
+ dryRun: boolean;
29
+ }): Promise<{
30
+ dryRun: boolean;
31
+ manifestPath: string;
32
+ report: PipelineReport;
33
+ patch: string;
34
+ binaryCopies: BinaryCopy[];
35
+ hasErrors: boolean;
36
+ }>;
37
+ /** 先 downloadSDKConfig 落盘,再跑默认 integrate 配方(与 CLI `setup` 一致)。 */
38
+ export declare function meetgamesSetup(params: {
39
+ projectRoot?: string;
40
+ env?: TopSdkApiEnv;
41
+ appId?: string;
42
+ channelType?: string;
43
+ authTypes?: string[];
44
+ dryRun: boolean;
45
+ }): Promise<{
46
+ fetch: Awaited<ReturnType<typeof meetgamesFetchConfig>>;
47
+ integrate: Awaited<ReturnType<typeof meetgamesIntegrate>>;
48
+ }>;
49
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/mcp/service.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAsD,KAAK,YAAY,EAAE,MAAM,sCAAsC,CAAC;AA8B7H,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAYA;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,GAAG,OAAO,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,YAAY,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC,CA2CD;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC;IACV,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAeD;AAED,kEAAkE;AAClE,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC;IACV,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;IACxD,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;CAC3D,CAAC,CAaD"}
@@ -0,0 +1,113 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { loadManifestFile } from "../config/loadManifest.js";
4
+ import { MEETSDK_REMOTE_CONFIG_FILENAME, readMeetSdkRemoteChannel, tryParseAsMeetSdkRemoteConfig, } from "../config/meetSdkRemoteConfig.js";
5
+ import { validateDownloadSdkConfigForWrite, writeDownloadSdkConfigRaw, } from "../config/fetchConfigWrite.js";
6
+ import { runPipeline } from "../core/pipeline.js";
7
+ import { buildWorkspaceContext, resolvePackageRoot } from "../core/workspace.js";
8
+ import { defaultTopSdkBaseUrl, fetchTopSdkDownloadSdkConfig } from "../remote/topsdkDownloadSdkConfig.js";
9
+ const DEFAULT_MANIFEST_REL = "recipes/integrate-default.yaml";
10
+ function ensureProjectRoot(projectRoot) {
11
+ const root = path.resolve(projectRoot?.trim() || process.cwd());
12
+ if (!fs.existsSync(root) || !fs.statSync(root).isDirectory()) {
13
+ throw new Error(`project root does not exist or is not a directory: ${root}`);
14
+ }
15
+ return root;
16
+ }
17
+ function readLocalMeetSdkRemoteConfig(projectRoot) {
18
+ const configPath = path.join(projectRoot, MEETSDK_REMOTE_CONFIG_FILENAME);
19
+ if (!fs.existsSync(configPath))
20
+ return null;
21
+ try {
22
+ return tryParseAsMeetSdkRemoteConfig(JSON.parse(fs.readFileSync(configPath, "utf8")));
23
+ }
24
+ catch {
25
+ return null;
26
+ }
27
+ }
28
+ function ensureDefaultManifestPath(packageRoot) {
29
+ const manifestPath = path.join(packageRoot, DEFAULT_MANIFEST_REL);
30
+ if (!fs.existsSync(manifestPath)) {
31
+ throw new Error(`default manifest not found: ${manifestPath}`);
32
+ }
33
+ return manifestPath;
34
+ }
35
+ export function meetgamesDoctor(params) {
36
+ const projectRoot = ensureProjectRoot(params.projectRoot);
37
+ const packageRoot = resolvePackageRoot();
38
+ const ctx = buildWorkspaceContext(projectRoot, packageRoot);
39
+ return {
40
+ projectRoot: ctx.projectRoot,
41
+ packageRoot: ctx.packageRoot,
42
+ engine: ctx.engine,
43
+ android: ctx.android,
44
+ ios: ctx.ios,
45
+ iosReserved: ctx.iosReserved,
46
+ };
47
+ }
48
+ export async function meetgamesFetchConfig(params) {
49
+ const projectRoot = ensureProjectRoot(params.projectRoot);
50
+ const out = path.join(projectRoot, MEETSDK_REMOTE_CONFIG_FILENAME);
51
+ const localConfig = readLocalMeetSdkRemoteConfig(projectRoot);
52
+ const appId = params.appId || localConfig?.topsdk.appId || "";
53
+ const channelType = params.channelType ||
54
+ (localConfig ? readMeetSdkRemoteChannel(localConfig) : "") ||
55
+ process.env.TOPSDK_CHANNEL_TYPE ||
56
+ "";
57
+ const env = params.env ?? "prod";
58
+ const warnings = [];
59
+ if (params.authTypes?.length) {
60
+ warnings.push("--auth-type is ignored; fetch uses downloadSDKConfig.");
61
+ }
62
+ if (!appId || !channelType) {
63
+ throw new Error(`fetch-config requires appId and channelType (${MEETSDK_REMOTE_CONFIG_FILENAME}, CLI, or TOPSDK_CHANNEL_TYPE).`);
64
+ }
65
+ const baseUrl = process.env.TOPSDK_API_BASE_URL?.trim() || defaultTopSdkBaseUrl(env);
66
+ const res = await fetchTopSdkDownloadSdkConfig({
67
+ baseUrl,
68
+ appId,
69
+ channelType,
70
+ });
71
+ const validation = validateDownloadSdkConfigForWrite(res.body);
72
+ if (!validation) {
73
+ throw new Error(`downloadSDKConfig response is not a valid ${MEETSDK_REMOTE_CONFIG_FILENAME} document`);
74
+ }
75
+ warnings.push(...validation.warnings);
76
+ if (!validation.parsed.topsdk.version) {
77
+ warnings.push("downloadSDKConfig has no topsdk.version; integrate merges built-in meetsdk-android.json at integrate time only.");
78
+ }
79
+ writeDownloadSdkConfigRaw(out, res.text);
80
+ return { outputPath: out, requestUrl: res.url, env, warnings };
81
+ }
82
+ export async function meetgamesIntegrate(params) {
83
+ const projectRoot = ensureProjectRoot(params.projectRoot);
84
+ const packageRoot = resolvePackageRoot();
85
+ const manifestPath = ensureDefaultManifestPath(packageRoot);
86
+ const manifest = loadManifestFile(manifestPath);
87
+ const ctx = buildWorkspaceContext(projectRoot, packageRoot);
88
+ const { report, patch, binaryCopies } = await runPipeline(ctx, manifest, { dryRun: params.dryRun });
89
+ return {
90
+ dryRun: params.dryRun,
91
+ manifestPath,
92
+ report,
93
+ patch,
94
+ binaryCopies,
95
+ hasErrors: report.errors.length > 0,
96
+ };
97
+ }
98
+ /** 先 downloadSDKConfig 落盘,再跑默认 integrate 配方(与 CLI `setup` 一致)。 */
99
+ export async function meetgamesSetup(params) {
100
+ const fetch = await meetgamesFetchConfig({
101
+ projectRoot: params.projectRoot,
102
+ env: params.env,
103
+ appId: params.appId,
104
+ channelType: params.channelType,
105
+ authTypes: params.authTypes,
106
+ });
107
+ const integrate = await meetgamesIntegrate({
108
+ projectRoot: params.projectRoot,
109
+ dryRun: params.dryRun,
110
+ });
111
+ return { fetch, integrate };
112
+ }
113
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/mcp/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=mcp-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-entry.d.ts","sourceRoot":"","sources":["../src/mcp-entry.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ import { startMeetgamesMcpServer } from "./mcp/server.js";
3
+ startMeetgamesMcpServer().catch((err) => {
4
+ console.error(err);
5
+ process.exit(1);
6
+ });
7
+ //# sourceMappingURL=mcp-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-entry.js","sourceRoot":"","sources":["../src/mcp-entry.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,uBAAuB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC/C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /** Tracks text file originals and pending content for dry-run / apply */
2
+ export declare class TextFileStore {
3
+ private readonly projectRoot;
4
+ private readonly map;
5
+ constructor(projectRoot: string);
6
+ rel(abs: string): string;
7
+ read(rel: string): string;
8
+ write(rel: string, content: string): void;
9
+ /** Files where current !== original */
10
+ changedEntries(): Array<{
11
+ rel: string;
12
+ original: string;
13
+ current: string;
14
+ }>;
15
+ flushToDisk(): void;
16
+ }
17
+ //# sourceMappingURL=fileStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileStore.d.ts","sourceRoot":"","sources":["../../src/ops/fileStore.ts"],"names":[],"mappings":"AAGA,yEAAyE;AACzE,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4D;gBAEpE,WAAW,EAAE,MAAM;IAI/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIxB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAUzB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAYzC,uCAAuC;IACvC,cAAc,IAAI,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ3E,WAAW,IAAI,IAAI;CAQpB"}