@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
@@ -0,0 +1,229 @@
1
+ import { spawn } from "node:child_process";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { syncMeetSdkIosVersionToConfig } from "../config/meetSdkIosConfig.js";
5
+ import { resolveIosSdkCacheLayout, withCacheLock, writeIosSdkCacheMetadata } from "../cache.js";
6
+ export const defaultSdkHomeApiBaseUrl = "https://business-api.meetgames.com";
7
+ export const DEFAULT_IOS_SDK_PLUGINS = ["guest", "facebook", "google", "apple", "apple_pay", "dataAppsFlyer"];
8
+ export const DEFAULT_IOS_SDK_PACKAGE_TYPE = "native";
9
+ const SDK_HOME_VERSION_PATH = "sdk/home/version";
10
+ const SDK_HOME_DOWNLOAD_URL_PATH = "sdk/home/sdk-download/getDownLoadUrl";
11
+ function isRecord(value) {
12
+ return typeof value === "object" && value !== null && !Array.isArray(value);
13
+ }
14
+ function joinBaseAndPath(baseUrl, subPath) {
15
+ const base = baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
16
+ return new URL(subPath, base);
17
+ }
18
+ function pluginsToCsv(plugins) {
19
+ if (typeof plugins === "string")
20
+ return plugins;
21
+ return (plugins ?? DEFAULT_IOS_SDK_PLUGINS).join(",");
22
+ }
23
+ function pluginsToList(plugins) {
24
+ return pluginsToCsv(plugins)
25
+ .split(",")
26
+ .map((s) => s.trim())
27
+ .filter(Boolean);
28
+ }
29
+ export function buildSdkHomeVersionUrl(baseUrl) {
30
+ return joinBaseAndPath(baseUrl, SDK_HOME_VERSION_PATH).toString();
31
+ }
32
+ export function buildSdkHomeDownloadUrl(params) {
33
+ const u = joinBaseAndPath(params.baseUrl, SDK_HOME_DOWNLOAD_URL_PATH);
34
+ u.searchParams.set("version", params.version);
35
+ u.searchParams.set("platform", params.platform ?? "ios");
36
+ u.searchParams.set("plugins", pluginsToCsv(params.plugins));
37
+ u.searchParams.set("packageType", params.packageType || DEFAULT_IOS_SDK_PACKAGE_TYPE);
38
+ return u.toString();
39
+ }
40
+ function parseJsonResponseEnvelope(body, label) {
41
+ if (!isRecord(body))
42
+ throw new Error(`${label} response is not an object`);
43
+ const code = body.code;
44
+ if (Number(code) !== 200) {
45
+ const message = typeof body.message === "string" ? body.message : JSON.stringify(body);
46
+ throw new Error(`${label} API error (code=${String(code)}): ${message}`);
47
+ }
48
+ return body;
49
+ }
50
+ async function fetchJson(url, signal) {
51
+ let res;
52
+ try {
53
+ res = await fetch(url, { redirect: "follow", signal, headers: { Accept: "application/json" } });
54
+ }
55
+ catch (e) {
56
+ const cause = e instanceof Error && "cause" in e && e.cause instanceof Error ? e.cause.message : null;
57
+ const detail = cause && cause !== (e instanceof Error ? e.message : String(e)) ? ` (${cause})` : "";
58
+ throw new Error(`GET ${url} failed: ${e instanceof Error ? e.message : String(e)}${detail}`);
59
+ }
60
+ if (!res.ok) {
61
+ const text = await res.text().catch(() => "");
62
+ const detail = text.trim() ? `: ${text.trim().slice(0, 1000)}` : "";
63
+ throw new Error(`GET ${url} failed: HTTP ${res.status}${detail}`);
64
+ }
65
+ const text = await res.text();
66
+ try {
67
+ return JSON.parse(text);
68
+ }
69
+ catch {
70
+ throw new Error(`GET ${url} did not return valid JSON`);
71
+ }
72
+ }
73
+ export async function fetchSdkHomeIosVersion(params = {}) {
74
+ const { url, versions } = await fetchSdkHomeVersions(params);
75
+ return { url, ios: versions.ios };
76
+ }
77
+ function parseSdkHomePlatformVersion(value, platform) {
78
+ if (!isRecord(value) || typeof value.ver !== "string" || typeof value.date !== "string") {
79
+ throw new Error(`sdk-home version response does not contain data.result.${platform}.ver/date`);
80
+ }
81
+ return { ver: value.ver, date: value.date };
82
+ }
83
+ export async function fetchSdkHomeVersions(params = {}) {
84
+ const baseUrl = params.baseUrl || defaultSdkHomeApiBaseUrl;
85
+ const url = buildSdkHomeVersionUrl(baseUrl);
86
+ const body = parseJsonResponseEnvelope(await fetchJson(url, params.signal), "sdk-home version");
87
+ const data = body.data;
88
+ const result = isRecord(data) ? data.result : undefined;
89
+ if (!isRecord(result)) {
90
+ throw new Error("sdk-home version response does not contain data.result");
91
+ }
92
+ return {
93
+ url,
94
+ versions: {
95
+ android: parseSdkHomePlatformVersion(result.android, "android"),
96
+ ios: parseSdkHomePlatformVersion(result.ios, "ios"),
97
+ },
98
+ };
99
+ }
100
+ export async function fetchSdkHomeIosDownloadUrl(params) {
101
+ const url = buildSdkHomeDownloadUrl(params);
102
+ const body = parseJsonResponseEnvelope(await fetchJson(url, params.signal), "sdk-home getDownLoadUrl");
103
+ if (typeof body.data !== "string" || !body.data.trim()) {
104
+ throw new Error("sdk-home getDownLoadUrl response does not contain a download URL in data");
105
+ }
106
+ return { url, sdkZipUrl: body.data };
107
+ }
108
+ export function resolveIosSdkZipFileName(version) {
109
+ return `topSDK-ios--V${version}.zip`;
110
+ }
111
+ export function resolveIosSdkRootFromDirectory(bundledDir) {
112
+ if (!fs.existsSync(bundledDir)) {
113
+ throw new Error(`iOS SDK not found at ${bundledDir} (expected sdk/ and plugins/ inside).`);
114
+ }
115
+ if (fs.existsSync(path.join(bundledDir, "sdk")) && fs.existsSync(path.join(bundledDir, "plugins"))) {
116
+ return bundledDir;
117
+ }
118
+ const children = fs
119
+ .readdirSync(bundledDir, { withFileTypes: true })
120
+ .filter((d) => d.isDirectory() && !d.name.startsWith("."))
121
+ .map((d) => path.join(bundledDir, d.name));
122
+ for (const dir of children) {
123
+ if (fs.existsSync(path.join(dir, "sdk")) && fs.existsSync(path.join(dir, "plugins"))) {
124
+ return dir;
125
+ }
126
+ }
127
+ throw new Error(`iOS SDK layout invalid under ${bundledDir}: need sdk/ + plugins/ at top level or under one version directory.`);
128
+ }
129
+ export async function downloadBinaryFile(url, absPath, signal) {
130
+ let res;
131
+ try {
132
+ res = await fetch(url, { redirect: "follow", signal });
133
+ }
134
+ catch (e) {
135
+ const cause = e instanceof Error && "cause" in e && e.cause instanceof Error ? e.cause.message : null;
136
+ const detail = cause && cause !== (e instanceof Error ? e.message : String(e)) ? ` (${cause})` : "";
137
+ throw new Error(`GET ${url} failed: ${e instanceof Error ? e.message : String(e)}${detail}`);
138
+ }
139
+ if (!res.ok) {
140
+ throw new Error(`GET ${url} failed: HTTP ${res.status} ${res.statusText}`);
141
+ }
142
+ const buf = Buffer.from(await res.arrayBuffer());
143
+ fs.mkdirSync(path.dirname(absPath), { recursive: true });
144
+ fs.writeFileSync(absPath, buf);
145
+ }
146
+ export async function extractZip(zipPath, destDir) {
147
+ fs.mkdirSync(destDir, { recursive: true });
148
+ await new Promise((resolve, reject) => {
149
+ const child = spawn("unzip", ["-q", "-o", zipPath, "-d", destDir], { stdio: ["ignore", "pipe", "pipe"] });
150
+ let stdout = "";
151
+ let stderr = "";
152
+ child.stdout.on("data", (chunk) => {
153
+ stdout += String(chunk);
154
+ });
155
+ child.stderr.on("data", (chunk) => {
156
+ stderr += String(chunk);
157
+ });
158
+ child.on("error", (e) => reject(new Error(`failed to start unzip: ${e.message}`)));
159
+ child.on("close", (code) => {
160
+ if (code === 0) {
161
+ resolve();
162
+ }
163
+ else {
164
+ const detail = [stderr.trim(), stdout.trim()].filter(Boolean).join("\n");
165
+ reject(new Error(`unzip failed with exit code ${code}${detail ? `: ${detail}` : ""}`));
166
+ }
167
+ });
168
+ });
169
+ }
170
+ export async function downloadIosSdkToBundled(packageRoot, options = {}) {
171
+ const baseUrl = options.baseUrl || defaultSdkHomeApiBaseUrl;
172
+ const packageType = options.packageType || DEFAULT_IOS_SDK_PACKAGE_TYPE;
173
+ const plugins = pluginsToList(options.plugins);
174
+ const versionResult = options.version
175
+ ? { url: buildSdkHomeVersionUrl(baseUrl), ios: { ver: options.version, date: "" } }
176
+ : await fetchSdkHomeIosVersion({ baseUrl, signal: options.signal });
177
+ const version = versionResult.ios.ver;
178
+ const downloadResult = await fetchSdkHomeIosDownloadUrl({
179
+ baseUrl,
180
+ version,
181
+ plugins,
182
+ packageType,
183
+ signal: options.signal,
184
+ });
185
+ const cacheLayout = resolveIosSdkCacheLayout({ version, packageType, plugins });
186
+ const extractDir = cacheLayout.extractDir;
187
+ const zipPath = cacheLayout.zipPath;
188
+ const downloadAndExtract = async () => {
189
+ await downloadBinaryFile(downloadResult.sdkZipUrl, zipPath, options.signal);
190
+ fs.rmSync(extractDir, { recursive: true, force: true });
191
+ await extractZip(zipPath, extractDir);
192
+ };
193
+ await withCacheLock(cacheLayout.lockDir, downloadAndExtract);
194
+ const iosConfigPath = syncMeetSdkIosVersionToConfig({
195
+ packageRoot,
196
+ version,
197
+ date: versionResult.ios.date,
198
+ packageType,
199
+ plugins,
200
+ });
201
+ const resolvedSdkRoot = resolveIosSdkRootFromDirectory(extractDir);
202
+ const cacheMetadataPath = cacheLayout.metadataPath;
203
+ writeIosSdkCacheMetadata({
204
+ metadataPath: cacheMetadataPath,
205
+ version,
206
+ date: versionResult.ios.date,
207
+ packageType,
208
+ plugins,
209
+ versionUrl: versionResult.url,
210
+ downloadApiUrl: downloadResult.url,
211
+ sdkZipUrl: downloadResult.sdkZipUrl,
212
+ zipPath,
213
+ extractDir,
214
+ resolvedSdkRoot,
215
+ });
216
+ return {
217
+ version,
218
+ versionDate: versionResult.ios.date,
219
+ versionUrl: versionResult.url,
220
+ downloadApiUrl: downloadResult.url,
221
+ sdkZipUrl: downloadResult.sdkZipUrl,
222
+ zipPath,
223
+ extractDir,
224
+ resolvedSdkRoot,
225
+ iosConfigPath,
226
+ cacheMetadataPath,
227
+ };
228
+ }
229
+ //# sourceMappingURL=sdkHomeDownload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkHomeDownload.js","sourceRoot":"","sources":["../../src/remote/sdkHomeDownload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEhG,MAAM,CAAC,MAAM,wBAAwB,GAAG,oCAAoC,CAAC;AAC7E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,CAAU,CAAC;AACvH,MAAM,CAAC,MAAM,4BAA4B,GAAG,QAAQ,CAAC;AAErD,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACjD,MAAM,0BAA0B,GAAG,sCAAsC,CAAC;AA2C1E,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,OAAe;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;IAC7D,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,YAAY,CAAC,OAA+C;IACnE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,aAAa,CAAC,OAA+C;IACpE,OAAO,YAAY,CAAC,OAAO,CAAC;SACzB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,eAAe,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAiC;IACvE,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;IACtE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,IAAI,4BAA4B,CAAC,CAAC;IACtF,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAa,EAAE,KAAa;IAC7D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,MAAM,CAAC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,MAAoB;IACxD,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAClG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACtG,MAAM,MAAM,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpG,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,iBAAiB,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,4BAA4B,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,SAGzC,EAAE;IACJ,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc,EAAE,QAA2B;IAC9E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxF,MAAM,IAAI,KAAK,CAAC,0DAA0D,QAAQ,WAAW,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAGvC,EAAE;IACJ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,wBAAwB,CAAC;IAC3D,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,yBAAyB,CAAC,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO;QACL,GAAG;QACH,QAAQ,EAAE;YACR,OAAO,EAAE,2BAA2B,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;YAC/D,GAAG,EAAE,2BAA2B,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;SACpD;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,MAEhD;IACC,MAAM,GAAG,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,yBAAyB,CAAC,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,CAAC;IACvG,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,OAAO,gBAAgB,OAAO,MAAM,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,UAAkB;IAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,uCAAuC,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;QACnG,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,QAAQ,GAAG,EAAE;SAChB,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SAChD,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,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,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,CAAC,gCAAgC,UAAU,qEAAqE,CAAC,CAAC;AACnI,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAW,EAAE,OAAe,EAAE,MAAoB;IACzF,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACtG,MAAM,MAAM,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpG,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,iBAAiB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACjD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,OAAe;IAC/D,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1G,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzE,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACzF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAmB,EACnB,UAAiC,EAAE;IAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,wBAAwB,CAAC;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,4BAA4B,CAAC;IACxE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO;QACnC,CAAC,CAAC,EAAE,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QACnF,CAAC,CAAC,MAAM,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;IACtC,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC;QACtD,OAAO;QACP,OAAO;QACP,OAAO;QACP,WAAW;QACX,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,wBAAwB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAC1C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAEpC,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;QACnD,MAAM,kBAAkB,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5E,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC,CAAC;IACF,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,6BAA6B,CAAC;QAClD,WAAW;QACX,OAAO;QACP,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI;QAC5B,WAAW;QACX,OAAO;KACR,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,WAAW,CAAC,YAAY,CAAC;IACnD,wBAAwB,CAAC;QACvB,YAAY,EAAE,iBAAiB;QAC/B,OAAO;QACP,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI;QAC5B,WAAW;QACX,OAAO;QACP,UAAU,EAAE,aAAa,CAAC,GAAG;QAC7B,cAAc,EAAE,cAAc,CAAC,GAAG;QAClC,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,OAAO;QACP,UAAU;QACV,eAAe;KAChB,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI;QACnC,UAAU,EAAE,aAAa,CAAC,GAAG;QAC7B,cAAc,EAAE,cAAc,CAAC,GAAG;QAClC,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,OAAO;QACP,UAAU;QACV,eAAe;QACf,aAAa;QACb,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"topsdkDownloadSdkConfig.d.ts","sourceRoot":"","sources":["../../src/remote/topsdkDownloadSdkConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,CAAC;AASnD;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAS3C;AAMD,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOpE;AAED,wBAAsB,4BAA4B,CAAC,MAAM,EAAE;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA6BxD"}
1
+ {"version":3,"file":"topsdkDownloadSdkConfig.d.ts","sourceRoot":"","sources":["../../src/remote/topsdkDownloadSdkConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,CAAC;AASnD;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAS3C;AAMD,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOpE;AAED,wBAAsB,4BAA4B,CAAC,MAAM,EAAE;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAsCxD"}
@@ -51,7 +51,17 @@ export async function fetchTopSdkDownloadSdkConfig(params) {
51
51
  throw new Error(`GET ${url} failed: ${e instanceof Error ? e.message : String(e)}${detail}`);
52
52
  }
53
53
  if (!res.ok) {
54
- throw new Error(`GET ${url} failed: HTTP ${res.status}`);
54
+ let detail = "";
55
+ try {
56
+ const text = await res.text();
57
+ if (text.trim()) {
58
+ detail = `: ${text.trim().slice(0, 1000)}`;
59
+ }
60
+ }
61
+ catch {
62
+ // Keep the original status-only error if the response body cannot be read.
63
+ }
64
+ throw new Error(`GET ${url} failed: HTTP ${res.status}${detail}`);
55
65
  }
56
66
  const text = await res.text();
57
67
  let body;
@@ -1 +1 @@
1
- {"version":3,"file":"topsdkDownloadSdkConfig.js","sourceRoot":"","sources":["../../src/remote/topsdkDownloadSdkConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"topsdkDownloadSdkConfig.js","sourceRoot":"","sources":["../../src/remote/topsdkDownloadSdkConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class UserFacingError extends Error {
2
+ readonly code: string;
3
+ readonly details?: string;
4
+ constructor(code: string, message: string, details?: string);
5
+ }
6
+ export declare function errorMessage(error: unknown): string;
7
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEd,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAM5D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGnD"}
@@ -0,0 +1,16 @@
1
+ export class UserFacingError extends Error {
2
+ code;
3
+ details;
4
+ constructor(code, message, details) {
5
+ super(message);
6
+ this.name = "UserFacingError";
7
+ this.code = code;
8
+ this.details = details;
9
+ }
10
+ }
11
+ export function errorMessage(error) {
12
+ if (error instanceof Error)
13
+ return error.message;
14
+ return String(error);
15
+ }
16
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAS;IACb,OAAO,CAAU;IAE1B,YAAY,IAAY,EAAE,OAAe,EAAE,OAAgB;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
package/docs/API.md CHANGED
@@ -1,47 +1,261 @@
1
- # meet-sdk-tool 相关 HTTP 接口汇总
1
+ # API 说明
2
2
 
3
- 本文档汇总 **meet-sdk-tool** 可能接触或对齐的远程接口,便于联调与字段对照。样例 JSON 放在 [`fixtures/api-samples/`](../fixtures/api-samples/)(**已脱敏**,勿把含 `appSecret` / 私钥的原文提交到仓库)。
3
+ `meet-sdk-tool` 当前有两类远端接口:
4
4
 
5
- ## 与本工具 CLI 的关系
5
+ | 接口 | 服务 | 用途 |
6
+ |---|---|---|
7
+ | `GET {baseUrl}/console/openSDK/downloadSDKConfig` | gp-sdk console | 生成并下载宿主工程集成所需的 `meetsdk-remote-config.json` |
8
+ | `GET https://business-api.meetgames.com/sdk/home/version` | sdk-home | 获取下载中心展示的 Android / iOS 最新 SDK 版本和发布日期 |
9
+ | `GET https://business-api.meetgames.com/sdk/home/sdk-download/getDownLoadUrl` | sdk-home | 根据版本、平台、插件和包类型获取 SDK zip 临时下载地址 |
6
10
 
7
- | 接口 | meet-sdk-tool 是否调用 | CLI / 命令 |
8
- |------|------------------------|------------|
9
- | [downloadSDKConfig](./api/downloadSDKConfig.md) | **是(当前主路径)** | `fetch-config`、`setup` |
10
- | [getSDKConfig](./api/getSDKConfig.md) | 否(库内有实现,可映射 JSON) | — |
11
- | [getChannelConfig(MeetGames 运营后台)](./api/getChannelConfig-meetgames.md) | **否** | — |
11
+ `downloadSDKConfig` 用于宿主工程配置,并由工具原样缓存到 `~/.cache/meet-sdk-tool`;sdk-home 版本接口用于 Android 接入时解析最新 SDK 版本并写入 `config/meetsdk-android.json`,也用于 iOS SDK 下载时解析最新版本;sdk-home 下载接口用于同步 iOS SDK 资源到 `~/.cache/meet-sdk-tool/sdk/ios`。
12
12
 
13
- `integrate` / `doctor` **不请求 HTTP**,只读本地 `meetsdk-remote-config.json` 与工程文件。
13
+ ## CLI 使用关系
14
14
 
15
- ## 环境 Base URL
15
+ | 命令 | 是否请求接口 | 说明 |
16
+ |---|---:|---|
17
+ | `fetch-config` | 是 | 拉取并写入缓存中的 `meetsdk-remote-config.json` |
18
+ | `setup` | 是 | 第一步执行 `fetch-config`;Android 集成阶段还会读取 sdk-home 最新 Android 版本并写入 `config/meetsdk-android.json` |
19
+ | `doctor` | 是 | 第一步执行 `fetch-config`;Android 检查阶段还会读取 sdk-home 最新 Android 版本并写入 `config/meetsdk-android.json` |
20
+ | `integrate` | Android 是 / iOS 否 | Android 读取 sdk-home 最新 Android 版本,写入 `config/meetsdk-android.json`,再写入 Gradle;iOS 读取缓存 `meetsdk-remote-config.json` 和缓存 SDK |
21
+ | `download-ios-sdk` | 是 | 先读 sdk-home 最新 iOS 版本,再取 SDK zip URL,下载并解压到 `~/.cache/meet-sdk-tool/sdk/ios`,成功后写入 metadata |
16
22
 
17
- | 环境 | gp-sdk `openSDK`(download / getSDKConfig) | 说明 |
18
- |------|-------------------------------------------|------|
19
- | `prod` | `https://api-sdk-gameplus.meetsocial.com/` | CLI `--env prod`(默认) |
20
- | `pre` | `https://pre-api-sdk-gameplus.meetsocial.com/` | CLI `--env pre` |
21
- | `test` | `https://test-api-sdk-gameplus.meetsocial.com/` | CLI `--env test` |
22
- | 覆盖 | 环境变量 `TOPSDK_API_BASE_URL` | 如本机 console:`http://localhost:18080/` |
23
+ ## downloadSDKConfig
23
24
 
24
- MeetGames **业务网关**(如 `getChannelConfig`)与 gp-sdk 主机不同,见各接口文档。
25
+ ### 请求
25
26
 
26
- ## 文档索引
27
+ | 项 | 值 |
28
+ |---|---|
29
+ | 方法 | `GET` |
30
+ | 路径 | `{baseUrl}console/openSDK/downloadSDKConfig` |
31
+ | Query | `appId`、`channelType`、`sign`、`timestamp` |
32
+ | 签名 | `sign = base64(md5_binary(appId + appSecret + timestamp))` |
33
+ | timestamp | 毫秒时间戳 |
27
34
 
28
- 1. [downloadSDKConfig](./api/downloadSDKConfig.md) — gp-sdk 组装 `meetsdk-remote-config.json` 并下载
29
- 2. [getSDKConfig](./api/getSDKConfig.md) — gp-sdk 旧接口,需 sign,返回 `channelAuthConfig`
30
- 3. [getChannelConfig(MeetGames)](./api/getChannelConfig-meetgames.md) — 运营后台渠道配置 VO,含 `authConfigs` / `thirdDataPlatform` / `parameterConfig`
35
+ 示例:
31
36
 
32
- ## 本地落盘格式
37
+ ```http
38
+ GET http://127.0.0.1:8081/console/openSDK/downloadSDKConfig?appId=791251136341225472&channelType=APPLE&sign=...&timestamp=...
39
+ ```
33
40
 
34
- 无论通过哪条接口理解字段,**集成流水线只消费**工程根目录的:
41
+ CLI:
35
42
 
36
- [`meetsdk-remote-config.json`](../fixtures/meetsdk-remote-config.mock.json)(结构见 [`src/config/meetSdkRemoteConfig.ts`](../src/config/meetSdkRemoteConfig.ts)、JSON Schema [`schema/meetsdk-remote-config.schema.json`](../schema/meetsdk-remote-config.schema.json))
43
+ ```bash
44
+ TOPSDK_API_BASE_URL=http://127.0.0.1:8081/ \
45
+ node dist/entry.js fetch-config \
46
+ --app-id 791251136341225472 \
47
+ --app-secret 'YOUR_APP_SECRET' \
48
+ --channel-type APPLE \
49
+ --project-root ./fixtures/ios-test-project/tooltest \
50
+ --env test \
51
+ --verbose
52
+ ```
37
53
 
38
- 固定 Gradle 仓库、SDK 版本、依赖坐标由 [`meetsdk-android.json`](../meetsdk-android.json) 在 `integrate` 时合并。
54
+ ### Base URL
39
55
 
40
- ## 代码入口
56
+ | 环境 | Base URL |
57
+ |---|---|
58
+ | `prod` | `https://api-sdk-gameplus.meetsocial.com/` |
59
+ | `pre` | `https://pre-api-sdk-gameplus.meetsocial.com/` |
60
+ | `test` | `https://test-api-sdk-gameplus.meetsocial.com/` |
61
+ | 本地覆盖 | `TOPSDK_API_BASE_URL=http://127.0.0.1:8081/` |
41
62
 
42
- | 能力 | 源文件 |
43
- |------|--------|
44
- | downloadSDKConfig 客户端 | [`src/remote/topsdkDownloadSdkConfig.ts`](../src/remote/topsdkDownloadSdkConfig.ts) |
45
- | getSDKConfig 客户端 | [`src/remote/topsdkGetSdkConfig.ts`](../src/remote/topsdkGetSdkConfig.ts) |
46
- | 响应 meetsdk 形 | [`src/config/meetSdkRemoteConfig.ts`](../src/config/meetSdkRemoteConfig.ts) |
47
- | gp-sdk 服务端组装 | `gp-sdk/console/.../SdkConfigDownloadServiceImpl.java` |
63
+ `TOPSDK_API_BASE_URL` 优先级最高。
64
+
65
+ ### 响应
66
+
67
+ 响应 body 是完整 `meetsdk-remote-config.json`,不是 `{ code, data }` 包装。
68
+
69
+ `fetch-config`、`setup`、`doctor` 会把响应原文写入:
70
+
71
+ ```text
72
+ ~/.cache/meet-sdk-tool/configs/<env>/<appId>/<channelType>/meetsdk-remote-config.json
73
+ ```
74
+
75
+ ### JSON 数据来源
76
+
77
+ | JSON 路径 | 数据来源 | 说明 |
78
+ |---|---|---|
79
+ | `packageName` | `channel.package_name` | Android package / iOS bundle 相关标识 |
80
+ | `channel` | `channel.channel_type` | 例如 `GOOGLE` / `APPLE` |
81
+ | `devicePlatform` | `channel.device_platform` | `android` / `ios` |
82
+ | `topsdk.appId` | `app.id` | 应用 ID |
83
+ | `topsdk.appSecret` | `app.secret` | 应用密钥 |
84
+ | `sdkModules.login.*` | `channel_auth` | key 使用 authType 小写;字段使用 `DTOChannelAuth` 原字段 |
85
+ | `sdkModules.payment.*` | `channel_payment` | IAP 平台配置 |
86
+ | `sdkModules.analytics.*` | `channel_third_data_platform` | AppsFlyer / Firebase / Adjust 等 |
87
+
88
+ ### 字段规则
89
+
90
+ `downloadSDKConfig` 只输出数据库原始字段中有 value 的 key。
91
+
92
+ 登录渠道字段来自 `DTOChannelAuth`:
93
+
94
+ ```text
95
+ clientId
96
+ secret
97
+ redirect
98
+ scheme
99
+ name
100
+ ```
101
+
102
+ 如果数据库没有 `scheme`,JSON 不输出 `scheme`。
103
+ 如果数据库没有 `name`,JSON 不输出 `name`。
104
+ 服务端不做推导、不写空字符串占位。
105
+
106
+ 示例:
107
+
108
+ ```json
109
+ {
110
+ "sdkModules": {
111
+ "login": {
112
+ "facebook": {
113
+ "clientId": "883695101201170",
114
+ "scheme": "fb883695101201170",
115
+ "secret": "client-token",
116
+ "name": "top-demo"
117
+ }
118
+ }
119
+ }
120
+ }
121
+ ```
122
+
123
+ ### 固定 SDK 配置
124
+
125
+ `downloadSDKConfig` 不返回 SDK 版本、Maven 仓库、依赖坐标、Firebase Gradle plugin 等固定集成配置。
126
+
127
+ Maven 仓库、依赖坐标、Firebase Gradle plugin 等由工具内置文件提供:
128
+
129
+ ```text
130
+ config/meetsdk-android.json
131
+ ```
132
+
133
+ Android SDK 版本也存放在 `config/meetsdk-android.json`。`integrate` / `doctor` 处理 Android 工程时,会调用 sdk-home `version` 接口读取 `data.result.android.ver` / `date`,写入 `config/meetsdk-android.json` 的 `topsdk.version` / `topsdk.date`,再合并为 Gradle 的 `topsdk_version`。
134
+
135
+ iOS SDK 固定配置存放在:
136
+
137
+ ```text
138
+ config/meetsdk-ios.json
139
+ ```
140
+
141
+ 该文件用于记录当前缓存 iOS SDK 对应的版本、发布日期、包类型和插件组合。
142
+
143
+ ## sdk-home 版本与 SDK 下载接口
144
+
145
+ 这两个接口对应 MeetGames 下载页:
146
+
147
+ ```text
148
+ https://business.meetgames.com/sdkDownloadDetail?type=ios
149
+ ```
150
+
151
+ 工具侧用途是读取下载中心维护的 SDK 版本与 SDK 包下载地址。它们不返回宿主工程渠道参数,也不替代 `downloadSDKConfig`。
152
+
153
+ ### Base URL
154
+
155
+ | 环境 | Base URL |
156
+ |---|---|
157
+ | 生产 | `https://business-api.meetgames.com` |
158
+ | 覆盖 | `MEETGAMES_SDK_HOME_API_BASE_URL=https://...` 或 CLI `--sdk-api-base-url` |
159
+
160
+ ### version
161
+
162
+ 用途:获取下载中心当前展示的最新 SDK 版本。
163
+
164
+ - Android `integrate` / `setup` / `doctor` 会读取 `data.result.android.ver` / `date`,先写入 `config/meetsdk-android.json`,再用于写入或校验 Gradle 中的 `topsdk_version`。
165
+ - `download-ios-sdk` 未显式传 `--version` 时,会读取 `data.result.ios.ver` / `date` 作为下载版本;下载和解压成功后写入缓存 metadata。
166
+
167
+ 请求:
168
+
169
+ ```http
170
+ GET https://business-api.meetgames.com/sdk/home/version
171
+ ```
172
+
173
+ 响应示例:
174
+
175
+ ```json
176
+ {
177
+ "code": 200,
178
+ "error": null,
179
+ "message": null,
180
+ "data": {
181
+ "result": {
182
+ "android": {
183
+ "date": "2026-05-25",
184
+ "ver": "1.6.1.3"
185
+ },
186
+ "ios": {
187
+ "date": "2026-06-09",
188
+ "ver": "1.6.0.5"
189
+ }
190
+ },
191
+ "success": true
192
+ }
193
+ }
194
+ ```
195
+
196
+ 工具只读取:
197
+
198
+ ```text
199
+ data.result.android.ver
200
+ data.result.android.date
201
+ data.result.ios.ver
202
+ data.result.ios.date
203
+ ```
204
+
205
+ ### getDownLoadUrl
206
+
207
+ 用途:让 sdk-home 根据页面选项定位或生成 SDK zip,并返回 OSS / COS 临时下载地址。`download-ios-sdk` 用返回的 `data` 下载 zip,保存为:
208
+
209
+ ```text
210
+ ~/.cache/meet-sdk-tool/sdk/ios/<package-type>/<version>/<plugins-hash>/topSDK-ios--V{version}.zip
211
+ ```
212
+
213
+ 随后解压到:
214
+
215
+ ```text
216
+ ~/.cache/meet-sdk-tool/sdk/ios/<package-type>/<version>/<plugins-hash>/extracted
217
+ ```
218
+
219
+ 下载和解压成功后,工具会更新:
220
+
221
+ ```text
222
+ <package-root>/config/meetsdk-ios.json
223
+ ```
224
+
225
+ 请求:
226
+
227
+ | Query | 说明 | 默认值 |
228
+ |---|---|---|
229
+ | `version` | SDK 版本;默认来自 `version` 接口的 `data.result.ios.ver` | 最新 iOS 版本 |
230
+ | `platform` | 平台 | `ios` |
231
+ | `plugins` | 逗号分隔插件列表 | `guest,facebook,google,apple,apple_pay,dataAppsFlyer` |
232
+ | `packageType` | 包类型 / 引擎 | `native` |
233
+
234
+ 示例:
235
+
236
+ ```http
237
+ GET https://business-api.meetgames.com/sdk/home/sdk-download/getDownLoadUrl?version=1.6.0.5&platform=ios&plugins=guest,facebook,google,apple,apple_pay,dataAppsFlyer&packageType=native
238
+ ```
239
+
240
+ 响应示例:
241
+
242
+ ```json
243
+ {
244
+ "code": 200,
245
+ "error": null,
246
+ "message": null,
247
+ "data": "https://gz-publicread-fspan-1302967645.cos.ap-guangzhou.myqcloud.com/sdk-home/xxx.zip?sign=..."
248
+ }
249
+ ```
250
+
251
+ `data` 是短期有效下载 URL。不要把该 URL 固化到配置或文档中;需要下载时重新请求 `getDownLoadUrl`。
252
+
253
+ ## 归档接口
254
+
255
+ 旧接口和对照接口已归档:
256
+
257
+ | 文档 | 说明 |
258
+ |---|---|
259
+ | [archive/api/downloadSDKConfig.md](./archive/api/downloadSDKConfig.md) | 历史详细接口说明 |
260
+ | [archive/api/getSDKConfig.md](./archive/api/getSDKConfig.md) | 旧 `getSDKConfig` 接口 |
261
+ | [archive/api/getChannelConfig-meetgames.md](./archive/api/getChannelConfig-meetgames.md) | MeetGames 后台接口对照 |