@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.
- package/README.md +120 -0
- package/bundled/android/sample.txt +1 -0
- package/dist/android/adapter.d.ts +3 -0
- package/dist/android/adapter.d.ts.map +1 -0
- package/dist/android/adapter.js +8 -0
- package/dist/android/adapter.js.map +1 -0
- package/dist/android/assembleIntegrationJson.d.ts +8 -0
- package/dist/android/assembleIntegrationJson.d.ts.map +1 -0
- package/dist/android/assembleIntegrationJson.js +31 -0
- package/dist/android/assembleIntegrationJson.js.map +1 -0
- package/dist/android/detect.d.ts +11 -0
- package/dist/android/detect.d.ts.map +1 -0
- package/dist/android/detect.js +87 -0
- package/dist/android/detect.js.map +1 -0
- package/dist/android/downloadGoogleServicesJson.d.ts +20 -0
- package/dist/android/downloadGoogleServicesJson.d.ts.map +1 -0
- package/dist/android/downloadGoogleServicesJson.js +43 -0
- package/dist/android/downloadGoogleServicesJson.js.map +1 -0
- package/dist/android/fetchRemoteConfig.d.ts +5 -0
- package/dist/android/fetchRemoteConfig.d.ts.map +1 -0
- package/dist/android/fetchRemoteConfig.js +24 -0
- package/dist/android/fetchRemoteConfig.js.map +1 -0
- package/dist/android/gradle.d.ts +30 -0
- package/dist/android/gradle.d.ts.map +1 -0
- package/dist/android/gradle.js +87 -0
- package/dist/android/gradle.js.map +1 -0
- package/dist/android/manifest.d.ts +10 -0
- package/dist/android/manifest.d.ts.map +1 -0
- package/dist/android/manifest.js +45 -0
- package/dist/android/manifest.js.map +1 -0
- package/dist/android/meetSdkRemoteGradle.d.ts +86 -0
- package/dist/android/meetSdkRemoteGradle.d.ts.map +1 -0
- package/dist/android/meetSdkRemoteGradle.js +479 -0
- package/dist/android/meetSdkRemoteGradle.js.map +1 -0
- package/dist/android/snapchatManifestPlaceholders.d.ts +15 -0
- package/dist/android/snapchatManifestPlaceholders.d.ts.map +1 -0
- package/dist/android/snapchatManifestPlaceholders.js +53 -0
- package/dist/android/snapchatManifestPlaceholders.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +291 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/fetchConfigWrite.d.ts +10 -0
- package/dist/config/fetchConfigWrite.d.ts.map +1 -0
- package/dist/config/fetchConfigWrite.js +21 -0
- package/dist/config/fetchConfigWrite.js.map +1 -0
- package/dist/config/loadAndroidIntegration.d.ts +4 -0
- package/dist/config/loadAndroidIntegration.d.ts.map +1 -0
- package/dist/config/loadAndroidIntegration.js +34 -0
- package/dist/config/loadAndroidIntegration.js.map +1 -0
- package/dist/config/loadManifest.d.ts +3 -0
- package/dist/config/loadManifest.d.ts.map +1 -0
- package/dist/config/loadManifest.js +33 -0
- package/dist/config/loadManifest.js.map +1 -0
- package/dist/config/meetSdkDefaultConfig.d.ts +5 -0
- package/dist/config/meetSdkDefaultConfig.d.ts.map +1 -0
- package/dist/config/meetSdkDefaultConfig.js +15 -0
- package/dist/config/meetSdkDefaultConfig.js.map +1 -0
- package/dist/config/meetSdkRemoteConfig.d.ts +240 -0
- package/dist/config/meetSdkRemoteConfig.d.ts.map +1 -0
- package/dist/config/meetSdkRemoteConfig.js +892 -0
- package/dist/config/meetSdkRemoteConfig.js.map +1 -0
- package/dist/config/topsdkFeatureModules.d.ts +19 -0
- package/dist/config/topsdkFeatureModules.d.ts.map +1 -0
- package/dist/config/topsdkFeatureModules.js +47 -0
- package/dist/config/topsdkFeatureModules.js.map +1 -0
- package/dist/contracts/types.d.ts +95 -0
- package/dist/contracts/types.d.ts.map +1 -0
- package/dist/contracts/types.js +2 -0
- package/dist/contracts/types.js.map +1 -0
- package/dist/core/engine.d.ts +3 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +18 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/patch.d.ts +2 -0
- package/dist/core/patch.d.ts.map +1 -0
- package/dist/core/patch.js +61 -0
- package/dist/core/patch.js.map +1 -0
- package/dist/core/pipeline.d.ts +12 -0
- package/dist/core/pipeline.d.ts.map +1 -0
- package/dist/core/pipeline.js +102 -0
- package/dist/core/pipeline.js.map +1 -0
- package/dist/core/previewPatches.d.ts +8 -0
- package/dist/core/previewPatches.d.ts.map +1 -0
- package/dist/core/previewPatches.js +25 -0
- package/dist/core/previewPatches.js.map +1 -0
- package/dist/core/reporter.d.ts +3 -0
- package/dist/core/reporter.d.ts.map +1 -0
- package/dist/core/reporter.js +24 -0
- package/dist/core/reporter.js.map +1 -0
- package/dist/core/resolveFetchChannelType.d.ts +27 -0
- package/dist/core/resolveFetchChannelType.d.ts.map +1 -0
- package/dist/core/resolveFetchChannelType.js +54 -0
- package/dist/core/resolveFetchChannelType.js.map +1 -0
- package/dist/core/workspace.d.ts +5 -0
- package/dist/core/workspace.d.ts.map +1 -0
- package/dist/core/workspace.js +24 -0
- package/dist/core/workspace.js.map +1 -0
- package/dist/entry.d.ts +3 -0
- package/dist/entry.d.ts.map +1 -0
- package/dist/entry.js +7 -0
- package/dist/entry.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/ios/channelConfig.d.ts +7 -0
- package/dist/ios/channelConfig.d.ts.map +1 -0
- package/dist/ios/channelConfig.js +51 -0
- package/dist/ios/channelConfig.js.map +1 -0
- package/dist/ios/codeUtils.d.ts +15 -0
- package/dist/ios/codeUtils.d.ts.map +1 -0
- package/dist/ios/codeUtils.js +166 -0
- package/dist/ios/codeUtils.js.map +1 -0
- package/dist/ios/detect.d.ts +3 -0
- package/dist/ios/detect.d.ts.map +1 -0
- package/dist/ios/detect.js +65 -0
- package/dist/ios/detect.js.map +1 -0
- package/dist/ios/fileManager.d.ts +12 -0
- package/dist/ios/fileManager.d.ts.map +1 -0
- package/dist/ios/fileManager.js +46 -0
- package/dist/ios/fileManager.js.map +1 -0
- package/dist/ios/infoPlist.d.ts +11 -0
- package/dist/ios/infoPlist.d.ts.map +1 -0
- package/dist/ios/infoPlist.js +48 -0
- package/dist/ios/infoPlist.js.map +1 -0
- package/dist/ios/integrate.d.ts +12 -0
- package/dist/ios/integrate.d.ts.map +1 -0
- package/dist/ios/integrate.js +263 -0
- package/dist/ios/integrate.js.map +1 -0
- package/dist/ios/pbxprojEditor.d.ts +20 -0
- package/dist/ios/pbxprojEditor.d.ts.map +1 -0
- package/dist/ios/pbxprojEditor.js +198 -0
- package/dist/ios/pbxprojEditor.js.map +1 -0
- package/dist/ios/pluginConfig.d.ts +6 -0
- package/dist/ios/pluginConfig.d.ts.map +1 -0
- package/dist/ios/pluginConfig.js +64 -0
- package/dist/ios/pluginConfig.js.map +1 -0
- package/dist/ios/reserved.d.ts +4 -0
- package/dist/ios/reserved.d.ts.map +1 -0
- package/dist/ios/reserved.js +6 -0
- package/dist/ios/reserved.js.map +1 -0
- package/dist/ios/sdkBundle.d.ts +7 -0
- package/dist/ios/sdkBundle.d.ts.map +1 -0
- package/dist/ios/sdkBundle.js +30 -0
- package/dist/ios/sdkBundle.js.map +1 -0
- package/dist/ios/template.d.ts +3 -0
- package/dist/ios/template.d.ts.map +1 -0
- package/dist/ios/template.js +24 -0
- package/dist/ios/template.js.map +1 -0
- package/dist/ios/types.d.ts +43 -0
- package/dist/ios/types.d.ts.map +1 -0
- package/dist/ios/types.js +11 -0
- package/dist/ios/types.js.map +1 -0
- package/dist/mcp/server.d.ts +4 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +139 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/service.d.ts +49 -0
- package/dist/mcp/service.d.ts.map +1 -0
- package/dist/mcp/service.js +113 -0
- package/dist/mcp/service.js.map +1 -0
- package/dist/mcp-entry.d.ts +3 -0
- package/dist/mcp-entry.d.ts.map +1 -0
- package/dist/mcp-entry.js +7 -0
- package/dist/mcp-entry.js.map +1 -0
- package/dist/ops/fileStore.d.ts +17 -0
- package/dist/ops/fileStore.d.ts.map +1 -0
- package/dist/ops/fileStore.js +55 -0
- package/dist/ops/fileStore.js.map +1 -0
- package/dist/ops/handlers.d.ts +10 -0
- package/dist/ops/handlers.d.ts.map +1 -0
- package/dist/ops/handlers.js +268 -0
- package/dist/ops/handlers.js.map +1 -0
- package/dist/platforms/android/adapter.d.ts +3 -0
- package/dist/platforms/android/adapter.d.ts.map +1 -0
- package/dist/platforms/android/adapter.js +8 -0
- package/dist/platforms/android/adapter.js.map +1 -0
- package/dist/platforms/android/detect.d.ts +3 -0
- package/dist/platforms/android/detect.d.ts.map +1 -0
- package/dist/platforms/android/detect.js +79 -0
- package/dist/platforms/android/detect.js.map +1 -0
- package/dist/platforms/android/gradle.d.ts +30 -0
- package/dist/platforms/android/gradle.d.ts.map +1 -0
- package/dist/platforms/android/gradle.js +83 -0
- package/dist/platforms/android/gradle.js.map +1 -0
- package/dist/platforms/android/manifest.d.ts +7 -0
- package/dist/platforms/android/manifest.d.ts.map +1 -0
- package/dist/platforms/android/manifest.js +24 -0
- package/dist/platforms/android/manifest.js.map +1 -0
- package/dist/platforms/ios/adapter.d.ts +3 -0
- package/dist/platforms/ios/adapter.d.ts.map +1 -0
- package/dist/platforms/ios/adapter.js +8 -0
- package/dist/platforms/ios/adapter.js.map +1 -0
- package/dist/platforms/ios/detect.d.ts +8 -0
- package/dist/platforms/ios/detect.d.ts.map +1 -0
- package/dist/platforms/ios/detect.js +67 -0
- package/dist/platforms/ios/detect.js.map +1 -0
- package/dist/platforms/ios/plist.d.ts +11 -0
- package/dist/platforms/ios/plist.d.ts.map +1 -0
- package/dist/platforms/ios/plist.js +24 -0
- package/dist/platforms/ios/plist.js.map +1 -0
- package/dist/platforms/ios/podfile.d.ts +7 -0
- package/dist/platforms/ios/podfile.d.ts.map +1 -0
- package/dist/platforms/ios/podfile.js +15 -0
- package/dist/platforms/ios/podfile.js.map +1 -0
- package/dist/remote/fetchJson.d.ts +5 -0
- package/dist/remote/fetchJson.d.ts.map +1 -0
- package/dist/remote/fetchJson.js +24 -0
- package/dist/remote/fetchJson.js.map +1 -0
- package/dist/remote/topsdkDownloadSdkConfig.d.ts +23 -0
- package/dist/remote/topsdkDownloadSdkConfig.d.ts.map +1 -0
- package/dist/remote/topsdkDownloadSdkConfig.js +56 -0
- package/dist/remote/topsdkDownloadSdkConfig.js.map +1 -0
- package/dist/remote/topsdkGetSdkConfig.d.ts +46 -0
- package/dist/remote/topsdkGetSdkConfig.d.ts.map +1 -0
- package/dist/remote/topsdkGetSdkConfig.js +95 -0
- package/dist/remote/topsdkGetSdkConfig.js.map +1 -0
- package/dist/remote/topsdkSign.d.ts +6 -0
- package/dist/remote/topsdkSign.d.ts.map +1 -0
- package/dist/remote/topsdkSign.js +10 -0
- package/dist/remote/topsdkSign.js.map +1 -0
- package/docs/ANDROID.md +133 -0
- package/docs/API.md +47 -0
- package/docs/CURSOR-MCP-SETUP.md +72 -0
- package/docs/MCP-SKILL.md +63 -0
- package/docs/README.md +12 -0
- package/docs/api/downloadSDKConfig.md +96 -0
- package/docs/api/getChannelConfig-meetgames.md +106 -0
- package/docs/api/getSDKConfig.md +38 -0
- package/docs//346/212/200/346/234/257/346/226/271/346/241/210/350/260/203/347/240/224.md +329 -0
- package/docs//351/234/200/346/261/202/346/226/207/346/241/243.md +320 -0
- package/fixtures/api-samples/getChannelConfig-meetgames.sample.json +123 -0
- package/fixtures/meetsdk-remote-config.download-shape.json +20 -0
- package/fixtures/meetsdk-remote-config.mock.json +69 -0
- package/fixtures/recipes/android-default.fixture.yaml +15 -0
- package/fixtures/recipes/android-integration.fixture.json +29 -0
- package/fixtures/topsdk-config-reference.json +39 -0
- package/meetsdk-android.json +151 -0
- package/package.json +61 -0
- package/recipes/android-default.yaml +15 -0
- package/recipes/integrate-default.yaml +16 -0
- package/recipes/ios-default.yaml +5 -0
- package/schema/android-integration.schema.json +65 -0
- package/schema/manifest.schema.json +45 -0
- package/schema/meetsdk-remote-config.schema.json +45 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const MANIFEST_PERM_START = "<!-- MEET_INTEGRATE PERMISSIONS START -->";
|
|
2
|
+
export const MANIFEST_PERM_END = "<!-- MEET_INTEGRATE PERMISSIONS END -->";
|
|
3
|
+
export function insertPermissions(content, permissions) {
|
|
4
|
+
const lines = [
|
|
5
|
+
MANIFEST_PERM_START,
|
|
6
|
+
...permissions.map((p) => ` <uses-permission android:name="${p}" />`),
|
|
7
|
+
MANIFEST_PERM_END,
|
|
8
|
+
].join("\n");
|
|
9
|
+
const start = content.indexOf(MANIFEST_PERM_START);
|
|
10
|
+
const end = content.indexOf(MANIFEST_PERM_END);
|
|
11
|
+
if (start >= 0 && end > start) {
|
|
12
|
+
const newBlock = lines;
|
|
13
|
+
const updated = content.slice(0, start) + newBlock + content.slice(end + MANIFEST_PERM_END.length);
|
|
14
|
+
return { content: updated, changed: true };
|
|
15
|
+
}
|
|
16
|
+
const closeManifest = content.lastIndexOf("</manifest>");
|
|
17
|
+
if (closeManifest < 0) {
|
|
18
|
+
return { content, changed: false };
|
|
19
|
+
}
|
|
20
|
+
const insert = `\n${lines}\n`;
|
|
21
|
+
const updated = content.slice(0, closeManifest) + insert + content.slice(closeManifest);
|
|
22
|
+
return { content: updated, changed: true };
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/platforms/android/manifest.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,2CAA2C,CAAC;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,yCAAyC,CAAC;AAE3E,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,WAAqB;IACtE,MAAM,KAAK,GAAG;QACZ,mBAAmB;QACnB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sCAAsC,CAAC,MAAM,CAAC;QACxE,iBAAiB;KAClB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/C,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,MAAM,OAAO,GACX,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACrF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACzD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACxF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/platforms/ios/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGjF,eAAO,MAAM,kBAAkB,EAAE,eAKhC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/platforms/ios/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,EAAE,EAAE,KAAK;IACT,MAAM,CAAC,WAAmB;QACxB,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IOSDetectResult } from "../../contracts/types.js";
|
|
2
|
+
/** Shallow walk (skips Pods) to locate the first Info.plist */
|
|
3
|
+
export declare function findInfoPlist(iosRoot: string): string | undefined;
|
|
4
|
+
/**
|
|
5
|
+
* Resolves a reasonable iOS root: prefers ./ios when present, else project root.
|
|
6
|
+
*/
|
|
7
|
+
export declare function detectIOS(projectRoot: string): IOSDetectResult;
|
|
8
|
+
//# sourceMappingURL=detect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/platforms/ios/detect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAkBjE;AAkBD;;GAEG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAkB9D"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
/** Shallow walk (skips Pods) to locate the first Info.plist */
|
|
4
|
+
export function findInfoPlist(iosRoot) {
|
|
5
|
+
const stack = [iosRoot];
|
|
6
|
+
while (stack.length) {
|
|
7
|
+
const d = stack.pop();
|
|
8
|
+
let entries;
|
|
9
|
+
try {
|
|
10
|
+
entries = fs.readdirSync(d, { withFileTypes: true });
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
for (const ent of entries) {
|
|
16
|
+
if (ent.name === "Pods" || ent.name.startsWith("."))
|
|
17
|
+
continue;
|
|
18
|
+
const p = path.join(d, ent.name);
|
|
19
|
+
if (ent.isDirectory())
|
|
20
|
+
stack.push(p);
|
|
21
|
+
else if (ent.name === "Info.plist")
|
|
22
|
+
return p;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
function findXcodeproj(dir) {
|
|
28
|
+
if (!fs.existsSync(dir))
|
|
29
|
+
return undefined;
|
|
30
|
+
for (const name of fs.readdirSync(dir)) {
|
|
31
|
+
if (name.endsWith(".xcodeproj"))
|
|
32
|
+
return path.join(dir, name);
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
function findWorkspace(dir) {
|
|
37
|
+
if (!fs.existsSync(dir))
|
|
38
|
+
return undefined;
|
|
39
|
+
for (const name of fs.readdirSync(dir)) {
|
|
40
|
+
if (name.endsWith(".xcworkspace"))
|
|
41
|
+
return path.join(dir, name);
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Resolves a reasonable iOS root: prefers ./ios when present, else project root.
|
|
47
|
+
*/
|
|
48
|
+
export function detectIOS(projectRoot) {
|
|
49
|
+
const candidates = [path.join(projectRoot, "ios"), projectRoot];
|
|
50
|
+
for (const base of candidates) {
|
|
51
|
+
const podfile = path.join(base, "Podfile");
|
|
52
|
+
const xcodeproj = findXcodeproj(base);
|
|
53
|
+
const workspace = findWorkspace(base);
|
|
54
|
+
const hasPodfile = fs.existsSync(podfile);
|
|
55
|
+
if (hasPodfile || xcodeproj) {
|
|
56
|
+
return {
|
|
57
|
+
ok: true,
|
|
58
|
+
iosRoot: base,
|
|
59
|
+
podfilePath: hasPodfile ? podfile : undefined,
|
|
60
|
+
xcodeprojPath: xcodeproj,
|
|
61
|
+
workspacePath: workspace,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return { ok: false, error: "No Podfile or .xcodeproj found under project root or ./ios" };
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/platforms/ios/detect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const PLIST_START = "<!-- MEET_INTEGRATE PLIST START -->";
|
|
2
|
+
export declare const PLIST_END = "<!-- MEET_INTEGRATE PLIST END -->";
|
|
3
|
+
/**
|
|
4
|
+
* Inserts a managed XML comment block inside Info.plist (before root </dict>).
|
|
5
|
+
* For binary plists this returns unchanged (caller should skip).
|
|
6
|
+
*/
|
|
7
|
+
export declare function insertPlistManagedBlock(content: string, innerXmlLines: string[]): {
|
|
8
|
+
content: string;
|
|
9
|
+
changed: boolean;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=plist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plist.d.ts","sourceRoot":"","sources":["../../../src/platforms/ios/plist.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,wCAAwC,CAAC;AACjE,eAAO,MAAM,SAAS,sCAAsC,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAevH"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const PLIST_START = "<!-- MEET_INTEGRATE PLIST START -->";
|
|
2
|
+
export const PLIST_END = "<!-- MEET_INTEGRATE PLIST END -->";
|
|
3
|
+
/**
|
|
4
|
+
* Inserts a managed XML comment block inside Info.plist (before root </dict>).
|
|
5
|
+
* For binary plists this returns unchanged (caller should skip).
|
|
6
|
+
*/
|
|
7
|
+
export function insertPlistManagedBlock(content, innerXmlLines) {
|
|
8
|
+
if (!content.includes("<?xml") && !content.includes("<plist")) {
|
|
9
|
+
return { content, changed: false };
|
|
10
|
+
}
|
|
11
|
+
const block = [PLIST_START, ...innerXmlLines, PLIST_END].join("\n");
|
|
12
|
+
const start = content.indexOf(PLIST_START);
|
|
13
|
+
const end = content.indexOf(PLIST_END);
|
|
14
|
+
if (start >= 0 && end > start) {
|
|
15
|
+
return { content: content.slice(0, start) + block + content.slice(end + PLIST_END.length), changed: true };
|
|
16
|
+
}
|
|
17
|
+
const rootDictClose = content.lastIndexOf("</dict>");
|
|
18
|
+
if (rootDictClose < 0)
|
|
19
|
+
return { content, changed: false };
|
|
20
|
+
const insert = `\n ${block.replace(/\n/g, "\n ")}\n`;
|
|
21
|
+
const updated = content.slice(0, rootDictClose) + insert + content.slice(rootDictClose);
|
|
22
|
+
return { content: updated, changed: true };
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=plist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plist.js","sourceRoot":"","sources":["../../../src/platforms/ios/plist.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,qCAAqC,CAAC;AACjE,MAAM,CAAC,MAAM,SAAS,GAAG,mCAAmC,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,aAAuB;IAC9E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,GAAG,aAAa,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7G,CAAC;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,aAAa,GAAG,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACxF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const PODFILE_START = "# >>> MEET_INTEGRATE PODFILE START";
|
|
2
|
+
export declare const PODFILE_END = "# >>> MEET_INTEGRATE PODFILE END";
|
|
3
|
+
export declare function insertPodfileBlock(content: string, podLines: string[]): {
|
|
4
|
+
content: string;
|
|
5
|
+
changed: boolean;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=podfile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"podfile.d.ts","sourceRoot":"","sources":["../../../src/platforms/ios/podfile.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,uCAAuC,CAAC;AAClE,eAAO,MAAM,WAAW,qCAAqC,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAW7G"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const PODFILE_START = "# >>> MEET_INTEGRATE PODFILE START";
|
|
2
|
+
export const PODFILE_END = "# >>> MEET_INTEGRATE PODFILE END";
|
|
3
|
+
export function insertPodfileBlock(content, podLines) {
|
|
4
|
+
const snippet = [PODFILE_START, ...podLines, PODFILE_END].join("\n");
|
|
5
|
+
const start = content.indexOf(PODFILE_START);
|
|
6
|
+
const end = content.indexOf(PODFILE_END);
|
|
7
|
+
if (start >= 0 && end > start) {
|
|
8
|
+
const updated = content.slice(0, start) + snippet + content.slice(end + PODFILE_END.length);
|
|
9
|
+
return { content: updated, changed: true };
|
|
10
|
+
}
|
|
11
|
+
const trimmed = content.trimEnd();
|
|
12
|
+
const sep = trimmed.endsWith("\n") ? "\n" : "\n\n";
|
|
13
|
+
return { content: `${trimmed}${sep}${snippet}\n`, changed: true };
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=podfile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"podfile.js","sourceRoot":"","sources":["../../../src/platforms/ios/podfile.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,oCAAoC,CAAC;AAClE,MAAM,CAAC,MAAM,WAAW,GAAG,kCAAkC,CAAC;AAE9D,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,QAAkB;IACpE,MAAM,OAAO,GAAG,CAAC,aAAa,EAAE,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAC5F,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IACnD,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchJson.d.ts","sourceRoot":"","sources":["../../src/remote/fetchJson.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBpF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GET a URL and parse JSON (Node 18+ fetch).
|
|
3
|
+
*/
|
|
4
|
+
export async function fetchJsonGet(url, init) {
|
|
5
|
+
const res = await fetch(url, {
|
|
6
|
+
redirect: "follow",
|
|
7
|
+
...init,
|
|
8
|
+
headers: {
|
|
9
|
+
Accept: "application/json",
|
|
10
|
+
...(init?.headers ?? {}),
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
if (!res.ok) {
|
|
14
|
+
throw new Error(`GET ${url} failed: HTTP ${res.status}`);
|
|
15
|
+
}
|
|
16
|
+
const text = await res.text();
|
|
17
|
+
try {
|
|
18
|
+
return JSON.parse(text);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
throw new Error("Remote response is not valid JSON");
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=fetchJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchJson.js","sourceRoot":"","sources":["../../src/remote/fetchJson.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,IAAkB;IAChE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,QAAQ,EAAE,QAAQ;QAClB,GAAG,IAAI;QACP,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;SACzB;KACF,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,iBAAiB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,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,mCAAmC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { defaultTopSdkBaseUrl, type TopSdkApiEnv } from "./topsdkGetSdkConfig.js";
|
|
2
|
+
export { defaultTopSdkBaseUrl, type TopSdkApiEnv };
|
|
3
|
+
/**
|
|
4
|
+
* GET `console/openSDK/downloadSDKConfig` — no sign; query by appId + channelType only.
|
|
5
|
+
*/
|
|
6
|
+
export declare function buildTopSdkDownloadSdkConfigUrl(params: {
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
appId: string;
|
|
9
|
+
channelType: string;
|
|
10
|
+
}): string;
|
|
11
|
+
/** gp-sdk error envelope when the handler throws before streaming JSON. */
|
|
12
|
+
export declare function parseTopSdkApiErrorBody(body: unknown): string | null;
|
|
13
|
+
export declare function fetchTopSdkDownloadSdkConfig(params: {
|
|
14
|
+
baseUrl: string;
|
|
15
|
+
appId: string;
|
|
16
|
+
channelType: string;
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
}): Promise<{
|
|
19
|
+
url: string;
|
|
20
|
+
body: unknown;
|
|
21
|
+
text: string;
|
|
22
|
+
}>;
|
|
23
|
+
//# sourceMappingURL=topsdkDownloadSdkConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topsdkDownloadSdkConfig.d.ts","sourceRoot":"","sources":["../../src/remote/topsdkDownloadSdkConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,CAAC;AASnD;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAKT;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,WAAW,EAAE,MAAM,CAAC;IACpB,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,CAsBxD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { defaultTopSdkBaseUrl } from "./topsdkGetSdkConfig.js";
|
|
2
|
+
export { defaultTopSdkBaseUrl };
|
|
3
|
+
const DOWNLOAD_SDK_CONFIG_PATH = "console/openSDK/downloadSDKConfig";
|
|
4
|
+
function joinBaseAndPath(baseUrl, path) {
|
|
5
|
+
const base = baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
|
|
6
|
+
return new URL(path, base);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* GET `console/openSDK/downloadSDKConfig` — no sign; query by appId + channelType only.
|
|
10
|
+
*/
|
|
11
|
+
export function buildTopSdkDownloadSdkConfigUrl(params) {
|
|
12
|
+
const u = joinBaseAndPath(params.baseUrl, DOWNLOAD_SDK_CONFIG_PATH);
|
|
13
|
+
u.searchParams.set("appId", params.appId);
|
|
14
|
+
u.searchParams.set("channelType", params.channelType);
|
|
15
|
+
return u.toString();
|
|
16
|
+
}
|
|
17
|
+
function isRecord(v) {
|
|
18
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
19
|
+
}
|
|
20
|
+
/** gp-sdk error envelope when the handler throws before streaming JSON. */
|
|
21
|
+
export function parseTopSdkApiErrorBody(body) {
|
|
22
|
+
if (!isRecord(body))
|
|
23
|
+
return null;
|
|
24
|
+
const code = body.code;
|
|
25
|
+
if (code === undefined || code === null)
|
|
26
|
+
return null;
|
|
27
|
+
if (Number(code) === 200)
|
|
28
|
+
return null;
|
|
29
|
+
const message = typeof body.message === "string" ? body.message : typeof body.error === "string" ? body.error : JSON.stringify(body);
|
|
30
|
+
return `TOPSDK API error (code=${code}): ${message}`;
|
|
31
|
+
}
|
|
32
|
+
export async function fetchTopSdkDownloadSdkConfig(params) {
|
|
33
|
+
const url = buildTopSdkDownloadSdkConfigUrl(params);
|
|
34
|
+
const res = await fetch(url, {
|
|
35
|
+
redirect: "follow",
|
|
36
|
+
signal: params.signal,
|
|
37
|
+
headers: { Accept: "application/json" },
|
|
38
|
+
});
|
|
39
|
+
if (!res.ok) {
|
|
40
|
+
throw new Error(`GET ${url} failed: HTTP ${res.status}`);
|
|
41
|
+
}
|
|
42
|
+
const text = await res.text();
|
|
43
|
+
let body;
|
|
44
|
+
try {
|
|
45
|
+
body = JSON.parse(text);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
throw new Error("Remote response is not valid JSON");
|
|
49
|
+
}
|
|
50
|
+
const apiErr = parseTopSdkApiErrorBody(body);
|
|
51
|
+
if (apiErr) {
|
|
52
|
+
throw new Error(apiErr);
|
|
53
|
+
}
|
|
54
|
+
return { url, body, text };
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=topsdkDownloadSdkConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topsdkDownloadSdkConfig.js","sourceRoot":"","sources":["../../src/remote/topsdkDownloadSdkConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Console API host by environment.
|
|
3
|
+
* - `prod`: 正式服(与文档 `api-sdk-gameplus.meetsocial.com` 一致)
|
|
4
|
+
* - `pre`: 预发
|
|
5
|
+
* - `test`: 测试服(开发调试使用)
|
|
6
|
+
*/
|
|
7
|
+
export type TopSdkApiEnv = "prod" | "pre" | "test";
|
|
8
|
+
export declare function defaultTopSdkBaseUrl(env: TopSdkApiEnv): string;
|
|
9
|
+
/**
|
|
10
|
+
* Same query semantics as topsdk-tool-ios `ChannelConfigManager.getSdkConfig` /
|
|
11
|
+
* topsdk-tool `config_utils.getSdkConfig`: GET `console/openSDK/getSDKConfig` with
|
|
12
|
+
* appId, authType (multi), channelType, sign, timestamp.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildTopSdkGetSdkConfigUrl(params: {
|
|
15
|
+
baseUrl: string;
|
|
16
|
+
appId: string;
|
|
17
|
+
appSecret: string;
|
|
18
|
+
authTypes: readonly string[];
|
|
19
|
+
channelType: string;
|
|
20
|
+
timestampMillis?: number;
|
|
21
|
+
}): {
|
|
22
|
+
url: string;
|
|
23
|
+
timestampMillis: number;
|
|
24
|
+
};
|
|
25
|
+
/** Strips auth types not sent to the API (same list as topsdk-tool-ios ChannelConfigManager). */
|
|
26
|
+
export declare function filterTopSdkAuthTypesForRequest(authTypes: readonly string[]): string[];
|
|
27
|
+
/**
|
|
28
|
+
* Upper-case names aligned with gp-sdk `ThirdPlatformType#getType`(不含 `MOCK`)。
|
|
29
|
+
* 当调用方未传任何 `authType` 时用于 `getSDKConfig`:服务端只返回该渠道已配置的子集。
|
|
30
|
+
*/
|
|
31
|
+
export declare const TOPSDK_GET_SDK_CONFIG_DISCOVERY_AUTH_TYPES: readonly string[];
|
|
32
|
+
/** 显式列表为空时,用发现列表再按 `filterTopSdkAuthTypesForRequest` 过滤。 */
|
|
33
|
+
export declare function resolveAuthTypesForGetSdkConfigRequest(explicit: readonly string[]): string[];
|
|
34
|
+
export declare function fetchTopSdkGetSdkConfig(params: {
|
|
35
|
+
baseUrl: string;
|
|
36
|
+
appId: string;
|
|
37
|
+
appSecret: string;
|
|
38
|
+
authTypes: readonly string[];
|
|
39
|
+
channelType: string;
|
|
40
|
+
signal?: AbortSignal;
|
|
41
|
+
}): Promise<{
|
|
42
|
+
url: string;
|
|
43
|
+
timestampMillis: number;
|
|
44
|
+
body: unknown;
|
|
45
|
+
}>;
|
|
46
|
+
//# sourceMappingURL=topsdkGetSdkConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topsdkGetSdkConfig.d.ts","sourceRoot":"","sources":["../../src/remote/topsdkGetSdkConfig.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAI9D;AASD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAY3C;AAED,iGAAiG;AACjG,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAGtF;AAED;;;GAGG;AACH,eAAO,MAAM,0CAA0C,EAAE,SAAS,MAAM,EA4BvE,CAAC;AAEF,4DAA4D;AAC5D,wBAAgB,sCAAsC,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAG5F;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAkBnE"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { fetchJsonGet } from "./fetchJson.js";
|
|
2
|
+
import { topsdkMd5Base64Sign } from "./topsdkSign.js";
|
|
3
|
+
export function defaultTopSdkBaseUrl(env) {
|
|
4
|
+
if (env === "test")
|
|
5
|
+
return "https://test-api-sdk-gameplus.meetsocial.com:1157/";
|
|
6
|
+
if (env === "pre")
|
|
7
|
+
return "https://pre-api-sdk-gameplus.meetsocial.com/";
|
|
8
|
+
return "https://api-sdk-gameplus.meetsocial.com/";
|
|
9
|
+
}
|
|
10
|
+
const SDK_CONFIG_PATH = "console/openSDK/getSDKConfig";
|
|
11
|
+
function joinBaseAndPath(baseUrl, path) {
|
|
12
|
+
const base = baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
|
|
13
|
+
return new URL(path, base);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Same query semantics as topsdk-tool-ios `ChannelConfigManager.getSdkConfig` /
|
|
17
|
+
* topsdk-tool `config_utils.getSdkConfig`: GET `console/openSDK/getSDKConfig` with
|
|
18
|
+
* appId, authType (multi), channelType, sign, timestamp.
|
|
19
|
+
*/
|
|
20
|
+
export function buildTopSdkGetSdkConfigUrl(params) {
|
|
21
|
+
const timestampMillis = params.timestampMillis ?? Date.now();
|
|
22
|
+
const sign = topsdkMd5Base64Sign(params.appId, params.appSecret, timestampMillis);
|
|
23
|
+
const u = joinBaseAndPath(params.baseUrl, SDK_CONFIG_PATH);
|
|
24
|
+
u.searchParams.set("appId", params.appId);
|
|
25
|
+
for (const t of params.authTypes) {
|
|
26
|
+
u.searchParams.append("authType", t);
|
|
27
|
+
}
|
|
28
|
+
u.searchParams.set("channelType", params.channelType);
|
|
29
|
+
u.searchParams.set("sign", sign);
|
|
30
|
+
u.searchParams.set("timestamp", String(timestampMillis));
|
|
31
|
+
return { url: u.toString(), timestampMillis };
|
|
32
|
+
}
|
|
33
|
+
/** Strips auth types not sent to the API (same list as topsdk-tool-ios ChannelConfigManager). */
|
|
34
|
+
export function filterTopSdkAuthTypesForRequest(authTypes) {
|
|
35
|
+
const skip = new Set(["GUEST", "UI", "IAPPAY"]);
|
|
36
|
+
return authTypes.map((t) => t.trim()).filter(Boolean).filter((t) => !skip.has(t.toUpperCase()));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Upper-case names aligned with gp-sdk `ThirdPlatformType#getType`(不含 `MOCK`)。
|
|
40
|
+
* 当调用方未传任何 `authType` 时用于 `getSDKConfig`:服务端只返回该渠道已配置的子集。
|
|
41
|
+
*/
|
|
42
|
+
export const TOPSDK_GET_SDK_CONFIG_DISCOVERY_AUTH_TYPES = [
|
|
43
|
+
"NORMAL",
|
|
44
|
+
"GUEST",
|
|
45
|
+
"FACEBOOK",
|
|
46
|
+
"GOOGLE",
|
|
47
|
+
"TOKEN",
|
|
48
|
+
"SNAPCHAT",
|
|
49
|
+
"TWITTER",
|
|
50
|
+
"INSTAGRAM",
|
|
51
|
+
"AMAZON",
|
|
52
|
+
"APPLE",
|
|
53
|
+
"GAMEPLUS",
|
|
54
|
+
"NAVER",
|
|
55
|
+
"KAKAO",
|
|
56
|
+
"LINE",
|
|
57
|
+
"XSOLLA",
|
|
58
|
+
"ONESTORE",
|
|
59
|
+
"SSO",
|
|
60
|
+
"APPSFLYER",
|
|
61
|
+
"ADJUST",
|
|
62
|
+
"FIREBASE",
|
|
63
|
+
"MEETGAMES",
|
|
64
|
+
"EMAIL",
|
|
65
|
+
"HUAWEI",
|
|
66
|
+
"XIAOMI",
|
|
67
|
+
"CATAPPULT",
|
|
68
|
+
"SAMSUNG",
|
|
69
|
+
"TIKTOK",
|
|
70
|
+
];
|
|
71
|
+
/** 显式列表为空时,用发现列表再按 `filterTopSdkAuthTypesForRequest` 过滤。 */
|
|
72
|
+
export function resolveAuthTypesForGetSdkConfigRequest(explicit) {
|
|
73
|
+
const merged = explicit.length > 0 ? explicit : [...TOPSDK_GET_SDK_CONFIG_DISCOVERY_AUTH_TYPES];
|
|
74
|
+
return filterTopSdkAuthTypesForRequest(merged);
|
|
75
|
+
}
|
|
76
|
+
export async function fetchTopSdkGetSdkConfig(params) {
|
|
77
|
+
const filtered = resolveAuthTypesForGetSdkConfigRequest(params.authTypes);
|
|
78
|
+
if (filtered.length === 0) {
|
|
79
|
+
return {
|
|
80
|
+
url: joinBaseAndPath(params.baseUrl, SDK_CONFIG_PATH).toString(),
|
|
81
|
+
timestampMillis: Date.now(),
|
|
82
|
+
body: { code: 200, data: { channelAuthConfig: [] }, message: "skipped_no_auth_types_after_filter" },
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const { url, timestampMillis } = buildTopSdkGetSdkConfigUrl({
|
|
86
|
+
baseUrl: params.baseUrl,
|
|
87
|
+
appId: params.appId,
|
|
88
|
+
appSecret: params.appSecret,
|
|
89
|
+
authTypes: filtered,
|
|
90
|
+
channelType: params.channelType,
|
|
91
|
+
});
|
|
92
|
+
const body = await fetchJsonGet(url, { signal: params.signal });
|
|
93
|
+
return { url, timestampMillis, body };
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=topsdkGetSdkConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topsdkGetSdkConfig.js","sourceRoot":"","sources":["../../src/remote/topsdkGetSdkConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Same algorithm as topsdk-tool-ios `TOPSDKUtils/ChannelConfigManager.md5_base64_byte`:
|
|
3
|
+
* base64( md5_binary( appId + appSecret + timestampMillis ) )
|
|
4
|
+
*/
|
|
5
|
+
export declare function topsdkMd5Base64Sign(appId: string, appSecret: string, timestampMillis: number): string;
|
|
6
|
+
//# sourceMappingURL=topsdkSign.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topsdkSign.d.ts","sourceRoot":"","sources":["../../src/remote/topsdkSign.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAGrG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
/**
|
|
3
|
+
* Same algorithm as topsdk-tool-ios `TOPSDKUtils/ChannelConfigManager.md5_base64_byte`:
|
|
4
|
+
* base64( md5_binary( appId + appSecret + timestampMillis ) )
|
|
5
|
+
*/
|
|
6
|
+
export function topsdkMd5Base64Sign(appId, appSecret, timestampMillis) {
|
|
7
|
+
const plain = `${appId}${appSecret}${String(timestampMillis)}`;
|
|
8
|
+
return crypto.createHash("md5").update(plain, "utf8").digest("base64");
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=topsdkSign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topsdkSign.js","sourceRoot":"","sources":["../../src/remote/topsdkSign.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,SAAiB,EAAE,eAAuB;IAC3F,MAAM,KAAK,GAAG,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;IAC/D,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACzE,CAAC"}
|