@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.
- package/.agents/skills/meet-sdk-regression/SKILL.md +93 -0
- package/.cursor/mcp.example.json +16 -0
- package/.cursor/mcp.json +11 -0
- package/.cursor/skills/meetgames-mcp/SKILL.md +48 -0
- package/.vite/vitest/results.json +1 -0
- package/README.md +36 -13
- package/{meetsdk-android.json → config/meetsdk-android.json} +2 -1
- package/config/meetsdk-ios.json +15 -0
- package/dist/android/adapter.d.ts.map +1 -1
- package/dist/android/adapter.js +2 -2
- package/dist/android/adapter.js.map +1 -1
- package/dist/android/detect.d.ts +2 -2
- package/dist/android/detect.d.ts.map +1 -1
- package/dist/android/detect.js +36 -8
- package/dist/android/detect.js.map +1 -1
- package/dist/cache.d.ts +44 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +101 -0
- package/dist/cache.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +181 -49
- package/dist/cli.js.map +1 -1
- package/dist/config/meetSdkDefaultConfig.d.ts +19 -2
- package/dist/config/meetSdkDefaultConfig.d.ts.map +1 -1
- package/dist/config/meetSdkDefaultConfig.js +69 -6
- package/dist/config/meetSdkDefaultConfig.js.map +1 -1
- package/dist/config/meetSdkIosConfig.d.ts +21 -0
- package/dist/config/meetSdkIosConfig.d.ts.map +1 -0
- package/dist/config/meetSdkIosConfig.js +68 -0
- package/dist/config/meetSdkIosConfig.js.map +1 -0
- package/dist/config/meetSdkRemoteConfig.d.ts +19 -1
- package/dist/config/meetSdkRemoteConfig.d.ts.map +1 -1
- package/dist/config/meetSdkRemoteConfig.js +64 -25
- package/dist/config/meetSdkRemoteConfig.js.map +1 -1
- package/dist/contracts/types.d.ts +27 -6
- package/dist/contracts/types.d.ts.map +1 -1
- package/dist/core/doctor.d.ts +17 -0
- package/dist/core/doctor.d.ts.map +1 -0
- package/dist/core/doctor.js +444 -0
- package/dist/core/doctor.js.map +1 -0
- package/dist/core/pipeline.d.ts.map +1 -1
- package/dist/core/pipeline.js +0 -15
- package/dist/core/pipeline.js.map +1 -1
- package/dist/core/platform.d.ts +12 -0
- package/dist/core/platform.d.ts.map +1 -0
- package/dist/core/platform.js +40 -0
- package/dist/core/platform.js.map +1 -0
- package/dist/core/previewPatches.d.ts +1 -1
- package/dist/core/previewPatches.js +2 -2
- package/dist/core/previewPatches.js.map +1 -1
- package/dist/core/reporter.js +1 -1
- package/dist/core/reporter.js.map +1 -1
- package/dist/core/workspace.d.ts +2 -2
- package/dist/core/workspace.d.ts.map +1 -1
- package/dist/core/workspace.js +6 -5
- package/dist/core/workspace.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/ios/channelConfig.d.ts +1 -0
- package/dist/ios/channelConfig.d.ts.map +1 -1
- package/dist/ios/channelConfig.js +82 -0
- package/dist/ios/channelConfig.js.map +1 -1
- package/dist/ios/codeUtils.d.ts +1 -0
- package/dist/ios/codeUtils.d.ts.map +1 -1
- package/dist/ios/codeUtils.js +11 -2
- package/dist/ios/codeUtils.js.map +1 -1
- package/dist/ios/detect.d.ts +2 -2
- package/dist/ios/detect.d.ts.map +1 -1
- package/dist/ios/detect.js +49 -10
- package/dist/ios/detect.js.map +1 -1
- package/dist/ios/entitlements.d.ts +4 -0
- package/dist/ios/entitlements.d.ts.map +1 -0
- package/dist/ios/entitlements.js +53 -0
- package/dist/ios/entitlements.js.map +1 -0
- package/dist/ios/fileManager.d.ts.map +1 -1
- package/dist/ios/fileManager.js +3 -2
- package/dist/ios/fileManager.js.map +1 -1
- package/dist/ios/infoPlist.d.ts +1 -1
- package/dist/ios/infoPlist.d.ts.map +1 -1
- package/dist/ios/infoPlist.js.map +1 -1
- package/dist/ios/integrate.d.ts.map +1 -1
- package/dist/ios/integrate.js +214 -39
- package/dist/ios/integrate.js.map +1 -1
- package/dist/ios/pbxprojEditor.d.ts +2 -0
- package/dist/ios/pbxprojEditor.d.ts.map +1 -1
- package/dist/ios/pbxprojEditor.js +250 -6
- package/dist/ios/pbxprojEditor.js.map +1 -1
- package/dist/ios/pluginConfig.d.ts +1 -0
- package/dist/ios/pluginConfig.d.ts.map +1 -1
- package/dist/ios/pluginConfig.js +36 -4
- package/dist/ios/pluginConfig.js.map +1 -1
- package/dist/ios/sdkBundle.d.ts +1 -6
- package/dist/ios/sdkBundle.d.ts.map +1 -1
- package/dist/ios/sdkBundle.js +47 -17
- package/dist/ios/sdkBundle.js.map +1 -1
- package/dist/ios/template.d.ts +1 -0
- package/dist/ios/template.d.ts.map +1 -1
- package/dist/ios/template.js +14 -1
- package/dist/ios/template.js.map +1 -1
- package/dist/ios/types.d.ts +2 -2
- package/dist/ios/types.d.ts.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +22 -15
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/service.d.ts +11 -6
- package/dist/mcp/service.d.ts.map +1 -1
- package/dist/mcp/service.js +61 -18
- package/dist/mcp/service.js.map +1 -1
- package/dist/ops/handlers.d.ts.map +1 -1
- package/dist/ops/handlers.js +34 -23
- package/dist/ops/handlers.js.map +1 -1
- package/dist/remote/sdkHomeDownload.d.ts +65 -0
- package/dist/remote/sdkHomeDownload.d.ts.map +1 -0
- package/dist/remote/sdkHomeDownload.js +229 -0
- package/dist/remote/sdkHomeDownload.js.map +1 -0
- package/dist/remote/topsdkDownloadSdkConfig.d.ts.map +1 -1
- package/dist/remote/topsdkDownloadSdkConfig.js +11 -1
- package/dist/remote/topsdkDownloadSdkConfig.js.map +1 -1
- package/dist/shared/errors.d.ts +7 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/errors.js +16 -0
- package/dist/shared/errors.js.map +1 -0
- package/docs/API.md +246 -32
- package/docs/CLI.md +291 -0
- package/docs/INTEGRATION.md +116 -0
- package/docs/MCP.md +86 -0
- package/docs/README.md +18 -10
- package/docs/{api → archive/api}/downloadSDKConfig.md +9 -7
- package/docs/{api → archive/api}/getChannelConfig-meetgames.md +2 -2
- package/docs/archive/ios-migration.md +2139 -0
- 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
- package/docs/{ → archive/product/}/351/234/200/346/261/202/346/226/207/346/241/243.md +16 -15
- package/package.json +7 -36
- package/recipes/android-default.yaml +0 -5
- package/recipes/integrate-default.yaml +0 -5
- package/src/android/adapter.ts +9 -0
- package/src/android/assembleIntegrationJson.ts +33 -0
- package/src/android/detect.ts +132 -0
- package/src/android/downloadGoogleServicesJson.ts +56 -0
- package/src/android/gradle.ts +116 -0
- package/src/android/manifest.ts +50 -0
- package/src/android/meetSdkRemoteGradle.ts +837 -0
- package/src/cache.ts +164 -0
- package/src/cli.ts +496 -0
- package/src/config/fetchConfigWrite.ts +30 -0
- package/src/config/loadAndroidIntegration.ts +41 -0
- package/src/config/loadManifest.ts +40 -0
- package/src/config/meetSdkDefaultConfig.ts +100 -0
- package/src/config/meetSdkIosConfig.ts +89 -0
- package/src/config/meetSdkRemoteConfig.ts +1215 -0
- package/src/config/topsdkFeatureModules.ts +92 -0
- package/src/contracts/types.ts +129 -0
- package/src/core/doctor.ts +485 -0
- package/src/core/patch.ts +64 -0
- package/src/core/pipeline.ts +107 -0
- package/src/core/platform.ts +47 -0
- package/src/core/previewPatches.ts +23 -0
- package/src/core/reporter.ts +24 -0
- package/src/core/workspace.ts +31 -0
- package/src/entry.ts +7 -0
- package/src/index.ts +140 -0
- package/src/ios/channelConfig.ts +128 -0
- package/src/ios/codeUtils.ts +160 -0
- package/src/ios/detect.ts +105 -0
- package/src/ios/entitlements.ts +61 -0
- package/src/ios/fileManager.ts +48 -0
- package/src/ios/infoPlist.ts +55 -0
- package/src/ios/integrate.ts +517 -0
- package/src/ios/pbxprojEditor.ts +450 -0
- package/src/ios/pluginConfig.ts +97 -0
- package/src/ios/reserved.ts +8 -0
- package/src/ios/sdkBundle.ts +59 -0
- package/src/ios/template.ts +36 -0
- package/src/ios/types.ts +65 -0
- package/src/mcp/server.ts +176 -0
- package/src/mcp/service.ts +253 -0
- package/src/mcp-entry.ts +7 -0
- package/src/ops/fileStore.ts +56 -0
- package/src/ops/handlers.ts +308 -0
- package/src/remote/fetchJson.ts +22 -0
- package/src/remote/sdkHomeDownload.ts +295 -0
- package/src/remote/topsdkDownloadSdkConfig.ts +93 -0
- package/src/remote/topsdkGetSdkConfig.ts +122 -0
- package/src/remote/topsdkSign.ts +10 -0
- package/src/shared/errors.ts +16 -0
- package/tests/assemble.test.ts +12 -0
- package/tests/doctor.test.ts +91 -0
- package/tests/downloadGoogleServicesJson.test.ts +47 -0
- package/tests/fetch-remote.test.ts +23 -0
- package/tests/fetchConfigOverrides.test.ts +28 -0
- package/tests/fetchConfigWrite.test.ts +54 -0
- package/tests/fixtures-hosts.test.ts +78 -0
- package/tests/gradle.test.ts +33 -0
- package/tests/integration-json.test.ts +29 -0
- package/tests/ios.codeUtils.test.ts +23 -0
- package/tests/ios.sdkBundle.test.ts +21 -0
- package/tests/loadManifest.test.ts +15 -0
- package/tests/manifest-xml.test.ts +30 -0
- package/tests/mcp.e2e.ts +214 -0
- package/tests/mcp.service.test.ts +53 -0
- package/tests/meetSdkRemoteConfig.test.ts +481 -0
- package/tests/meetSdkRemoteGradle.test.ts +414 -0
- package/tests/pipeline.android.test.ts +95 -0
- package/tests/pipeline.integration-json.test.ts +58 -0
- package/tests/pipeline.ios.test.ts +392 -0
- package/tests/pipeline.preview.patch.test.ts +85 -0
- package/tests/platformSelection.test.ts +77 -0
- package/tests/sdkHomeDownload.test.ts +124 -0
- package/tests/sdkVersionConfig.test.ts +131 -0
- package/tests/topsdk.test.ts +53 -0
- package/tests/topsdkDownloadSdkConfig.test.ts +81 -0
- package/tests/topsdkFeatureModules.test.ts +116 -0
- package/tsconfig.json +19 -0
- package/vitest.config.ts +9 -0
- package/vitest.mcp.config.ts +11 -0
- package/bundled/android/sample.txt +0 -1
- package/docs/ANDROID.md +0 -133
- package/docs/CURSOR-MCP-SETUP.md +0 -72
- package/docs/MCP-SKILL.md +0 -63
- package/fixtures/api-samples/getChannelConfig-meetgames.sample.json +0 -123
- package/fixtures/meetsdk-remote-config.download-shape.json +0 -20
- package/fixtures/meetsdk-remote-config.mock.json +0 -69
- package/fixtures/recipes/android-default.fixture.yaml +0 -15
- package/fixtures/recipes/android-integration.fixture.json +0 -29
- package/fixtures/topsdk-config-reference.json +0 -39
- /package/docs/{api → archive/api}/getSDKConfig.md +0 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: meet-sdk-regression
|
|
3
|
+
description: Run and diagnose meet-sdk-tool SDK integration regression checks, including CLI, MCP stdio, Android, and iOS fixture coverage.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Meet SDK Tool Regression
|
|
7
|
+
|
|
8
|
+
Use this skill when the user asks to verify,联调,回归, or diagnose changes in `meet-sdk-tool`.
|
|
9
|
+
|
|
10
|
+
## Scope
|
|
11
|
+
|
|
12
|
+
This skill is for the local `meet-sdk-tool` repository. It validates the SDK integration toolchain across:
|
|
13
|
+
|
|
14
|
+
- TypeScript build output.
|
|
15
|
+
- Vitest unit and fixture integration tests.
|
|
16
|
+
- Android and iOS integration fixtures under `fixtures/`.
|
|
17
|
+
- MCP stdio server startup, tool listing, and tool calls.
|
|
18
|
+
- Fetch/setup flows using local mock HTTP responses where tests provide them.
|
|
19
|
+
|
|
20
|
+
Do not use this skill for publishing to npm, changing production SDK credentials, or running against a real customer project unless the user explicitly asks.
|
|
21
|
+
|
|
22
|
+
## Standard Commands
|
|
23
|
+
|
|
24
|
+
Run from the repository root:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm run build
|
|
28
|
+
npm test
|
|
29
|
+
npm run test:mcp
|
|
30
|
+
npm run test:regression
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Use the shortest command that matches the change:
|
|
34
|
+
|
|
35
|
+
- Pure parser/config/utility change: `npm test`
|
|
36
|
+
- MCP server, MCP tool schema, or MCP service change: `npm run test:mcp`
|
|
37
|
+
- Pipeline, Android, iOS, remote config, CLI, or release-sensitive change: `npm run test:regression`
|
|
38
|
+
|
|
39
|
+
## Pass Criteria
|
|
40
|
+
|
|
41
|
+
A regression run passes only when all of these are true:
|
|
42
|
+
|
|
43
|
+
- `npm run build` exits 0.
|
|
44
|
+
- `npm test` exits 0 with no failed tests.
|
|
45
|
+
- Skipped tests are acceptable only for optional fixture variants under `fixtures/` when their required project files or per-project `meetsdk-remote-config.json` are absent.
|
|
46
|
+
- `npm run test:mcp` exits 0.
|
|
47
|
+
- MCP E2E lists exactly these public tools:
|
|
48
|
+
- `meetgames_doctor`
|
|
49
|
+
- `meetgames_fetch_config`
|
|
50
|
+
- `meetgames_integrate_dry_run`
|
|
51
|
+
- `meetgames_integrate_apply`
|
|
52
|
+
- `meetgames_setup`
|
|
53
|
+
- MCP E2E can call `doctor`, `integrate_dry_run`, `integrate_apply`, `fetch_config`, and `setup(dryRun=true)` against temporary fixtures.
|
|
54
|
+
- Dry-run tests do not write integration output into the target project.
|
|
55
|
+
- Apply tests write only into temporary fixture copies.
|
|
56
|
+
- Host project fixtures are read from `fixtures/android-test-project/` and `fixtures/ios-test-project/`; `test-projects/_preview/` is only generated dry-run output.
|
|
57
|
+
- Remote calls used by tests are mocked or redirected to local test servers.
|
|
58
|
+
|
|
59
|
+
## Workflow
|
|
60
|
+
|
|
61
|
+
1. Inspect the change area before running commands.
|
|
62
|
+
2. Run the targeted command first when the change is narrow.
|
|
63
|
+
3. Run `npm run test:regression` before considering the task complete when behavior changed.
|
|
64
|
+
4. If a test fails, read the first failing assertion and the fixture it used before editing code.
|
|
65
|
+
5. Keep fixes scoped to the failing behavior; do not update snapshots or fixture expectations unless the behavior change is intentional.
|
|
66
|
+
6. After a fix, rerun the failed test command, then rerun `npm run test:regression`.
|
|
67
|
+
|
|
68
|
+
## Failure Triage
|
|
69
|
+
|
|
70
|
+
Build failures usually mean exported types, `NodeNext` import paths, or generated `dist/` entry assumptions changed.
|
|
71
|
+
|
|
72
|
+
`npm test` failures usually indicate core behavior regressions in config parsing, platform detection, Gradle edits, Xcode edits, iOS plugin mapping, or dry-run patch generation.
|
|
73
|
+
|
|
74
|
+
`npm run test:mcp` failures usually mean one of these changed:
|
|
75
|
+
|
|
76
|
+
- `dist/mcp-entry.js` was not built.
|
|
77
|
+
- MCP tool names or schemas changed without updating tests/docs.
|
|
78
|
+
- A tool now returns a different `structuredContent` shape.
|
|
79
|
+
- A tool made an unmocked remote request.
|
|
80
|
+
- `dryRun` or `apply` write semantics changed.
|
|
81
|
+
- Temporary fixture setup is missing a required project file.
|
|
82
|
+
|
|
83
|
+
Network-looking failures in tests should be treated as test bugs unless the command was intentionally pointed at a real service. The default automated regression path should not depend on external network availability.
|
|
84
|
+
|
|
85
|
+
## Reporting
|
|
86
|
+
|
|
87
|
+
When reporting results, include:
|
|
88
|
+
|
|
89
|
+
- Commands run.
|
|
90
|
+
- Pass/fail status.
|
|
91
|
+
- Number of test files and tests when available.
|
|
92
|
+
- The first failing file/assertion if anything failed.
|
|
93
|
+
- Whether any real network or real project path was used.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"meetgames-mcp-local-node": {
|
|
4
|
+
"command": "node",
|
|
5
|
+
"args": [
|
|
6
|
+
"/Users/work/Workspace/Projects/meet-sdk-tool/dist/mcp-entry.js"
|
|
7
|
+
],
|
|
8
|
+
"cwd": "/Users/work/Workspace/Projects/meet-sdk-tool"
|
|
9
|
+
},
|
|
10
|
+
"meetgames-mcp-global-bin": {
|
|
11
|
+
"command": "meetgames-mcp",
|
|
12
|
+
"args": [],
|
|
13
|
+
"cwd": "/Users/work/Workspace/Projects/meet-sdk-tool"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
package/.cursor/mcp.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: meetgames-mcp
|
|
3
|
+
description: Use meetgames MCP tools for predictable Android integration workflows. Use when running doctor, fetch-config, dry-run integration, or apply integration for meet-sdk-tool projects.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Meetgames MCP
|
|
8
|
+
|
|
9
|
+
Use this skill when operating the `meetgames` integration workflow through MCP tools.
|
|
10
|
+
|
|
11
|
+
## Goals
|
|
12
|
+
|
|
13
|
+
- Keep operations predictable and repeatable.
|
|
14
|
+
- Minimize accidental writes by preferring dry-run first.
|
|
15
|
+
- Keep project-specific values in `meetsdk-remote-config.json`.
|
|
16
|
+
|
|
17
|
+
## Tool order
|
|
18
|
+
|
|
19
|
+
**Default (one-shot):**
|
|
20
|
+
|
|
21
|
+
1. `meetgames_doctor` (optional)
|
|
22
|
+
2. `meetgames_setup` with `dryRun: true` → review `integrate.patch` / errors
|
|
23
|
+
3. `meetgames_setup` with `dryRun: false` (only after review)
|
|
24
|
+
|
|
25
|
+
**Step-by-step:**
|
|
26
|
+
|
|
27
|
+
1. `meetgames_doctor`
|
|
28
|
+
2. `meetgames_fetch_config` (only when config should be refreshed from backend)
|
|
29
|
+
3. `meetgames_integrate_dry_run`
|
|
30
|
+
4. Review `report.errors`, `report.warnings`, `patch`
|
|
31
|
+
5. `meetgames_integrate_apply` (only after dry-run is accepted)
|
|
32
|
+
|
|
33
|
+
## Operational rules
|
|
34
|
+
|
|
35
|
+
- Always pass `projectRoot` explicitly when it is known.
|
|
36
|
+
- Treat `isError: true` or `report.errors.length > 0` as hard stop.
|
|
37
|
+
- Do not call `meetgames_integrate_apply` before a successful dry-run unless the user explicitly asks to skip preview.
|
|
38
|
+
- Do not edit recipe paths through MCP; integration always uses built-in `recipes/integrate-default.yaml`.
|
|
39
|
+
- Prefer `meetgames_setup` when both remote config and integration are needed; use step-by-step tools when only one phase should run.
|
|
40
|
+
|
|
41
|
+
## Response format
|
|
42
|
+
|
|
43
|
+
After each tool call, report:
|
|
44
|
+
|
|
45
|
+
- What was executed
|
|
46
|
+
- Whether it changed files or only previewed
|
|
47
|
+
- Any warnings/errors
|
|
48
|
+
- Next recommended action
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"2.1.9","results":[[":tests/meetSdkRemoteGradle.test.ts",{"duration":11.436916999999994,"failed":false}],[":tests/meetSdkRemoteConfig.test.ts",{"duration":7.487458000000004,"failed":false}],[":tests/pipeline.ios.test.ts",{"duration":974.107125,"failed":false}],[":tests/topsdkFeatureModules.test.ts",{"duration":2.0586250000000064,"failed":false}],[":tests/topsdkDownloadSdkConfig.test.ts",{"duration":4.965624999999989,"failed":false}],[":tests/pipeline.android.test.ts",{"duration":210.77375000000006,"failed":false}],[":tests/pipeline.preview.patch.test.ts",{"duration":248.23275,"failed":false}],[":tests/topsdk.test.ts",{"duration":3.366041999999993,"failed":false}],[":tests/fetchConfigWrite.test.ts",{"duration":2.470207999999957,"failed":false}],[":tests/downloadGoogleServicesJson.test.ts",{"duration":1.3860410000000059,"failed":false}],[":tests/pipeline.integration-json.test.ts",{"duration":142.87016700000004,"failed":false}],[":tests/manifest-xml.test.ts",{"duration":6.438333,"failed":false}],[":tests/test-projects-hosts.test.ts",{"duration":4.310625000000016,"failed":false}],[":tests/mcp.service.test.ts",{"duration":158.16700000000003,"failed":false}],[":tests/gradle.test.ts",{"duration":2.6391669999999863,"failed":false}],[":tests/ios.codeUtils.test.ts",{"duration":1.1439169999999876,"failed":false}],[":tests/integration-json.test.ts",{"duration":81.065292,"failed":false}],[":tests/fetchConfigOverrides.test.ts",{"duration":2.4532499999999686,"failed":false}],[":tests/ios.sdkBundle.test.ts",{"duration":2.014208999999994,"failed":false}],[":tests/assemble.test.ts",{"duration":1.2230839999999716,"failed":false}],[":tests/fetch-remote.test.ts",{"duration":1.452792000000045,"failed":false}],[":tests/loadManifest.test.ts",{"duration":22.402125000000012,"failed":false}]]}
|
package/README.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Meet SDK 集成 CLI:从 gp-sdk 拉取渠道配置,自动修改 Android Gradle / Manifest 与 iOS Xcode 工程。
|
|
4
4
|
|
|
5
|
-
- **远程配置**(每游戏不同):`meetsdk-remote-config.json` — 由 `fetch-config` 从 `downloadSDKConfig`
|
|
6
|
-
- **固定 SDK
|
|
5
|
+
- **远程配置**(每游戏不同):`meetsdk-remote-config.json` — 由 `fetch-config` 从 `downloadSDKConfig` **原样写入 `~/.cache/meet-sdk-tool`**
|
|
6
|
+
- **固定 SDK 配置**(全游戏通用):`config/meetsdk-android.json` / `config/meetsdk-ios.json` — 存放和游戏无关的 SDK 版本、仓库、依赖坐标等配置;Android / iOS 版本由 sdk-home `version` 接口获取后写入对应文件
|
|
7
7
|
|
|
8
8
|
要求 **Node.js ≥ 18**。宿主工程需为**纯原生** Android / iOS 项目。
|
|
9
9
|
|
|
@@ -25,7 +25,7 @@ npx @leonxin/meetgames@latest --help
|
|
|
25
25
|
# 1. 检测工程
|
|
26
26
|
meetgames doctor --project-root /path/to/android-project
|
|
27
27
|
|
|
28
|
-
# 2. 拉取远程配置 →
|
|
28
|
+
# 2. 拉取远程配置 → ~/.cache/meet-sdk-tool
|
|
29
29
|
meetgames fetch-config \
|
|
30
30
|
--project-root /path/to/android-project \
|
|
31
31
|
--app-id 791251136341225472 \
|
|
@@ -48,6 +48,7 @@ meetgames setup \
|
|
|
48
48
|
| 变量 | 说明 |
|
|
49
49
|
|------|------|
|
|
50
50
|
| `TOPSDK_API_BASE_URL` | 覆盖 API 根地址(本地 gp-sdk console 联调) |
|
|
51
|
+
| `MEETGAMES_SDK_HOME_API_BASE_URL` | 覆盖 sdk-home API 根地址;用于 Android 最新版本查询和 iOS SDK 下载 |
|
|
51
52
|
| `TOPSDK_CHANNEL_TYPE` | 默认渠道类型 |
|
|
52
53
|
| `TOPSDK_APP_ID` | 默认 appId |
|
|
53
54
|
|
|
@@ -60,6 +61,7 @@ TOPSDK_API_BASE_URL=http://localhost:8081/ \
|
|
|
60
61
|
meetgames fetch-config \
|
|
61
62
|
--project-root . \
|
|
62
63
|
--app-id <appId> \
|
|
64
|
+
--app-secret <appSecret> \
|
|
63
65
|
--channel-type GOOGLE
|
|
64
66
|
```
|
|
65
67
|
|
|
@@ -68,12 +70,27 @@ meetgames fetch-config \
|
|
|
68
70
|
| 命令 | 作用 |
|
|
69
71
|
|------|------|
|
|
70
72
|
| `doctor` | 检测工程类型与路径 |
|
|
71
|
-
| `fetch-config` | GET `downloadSDKConfig`,原样写入
|
|
72
|
-
| `integrate` | 按内置 recipe 修改 Gradle / Manifest / iOS
|
|
73
|
+
| `fetch-config` | GET `downloadSDKConfig`,原样写入 `~/.cache/meet-sdk-tool` |
|
|
74
|
+
| `integrate` | 按内置 recipe 修改 Gradle / Manifest / iOS 工程;Android 会从 sdk-home 读取最新 SDK 版本并写入 `config/meetsdk-android.json` |
|
|
73
75
|
| `setup` | `fetch-config` + `integrate` |
|
|
76
|
+
| `download-ios-sdk` | 从 sdk-home 获取 iOS SDK 下载地址,下载 zip 并解压到 `~/.cache/meet-sdk-tool/sdk/ios` |
|
|
74
77
|
|
|
75
78
|
常用参数:`--project-root`、`--dry-run`、`--verbose`、`--patch-file`(integrate 预览 diff)。
|
|
76
79
|
|
|
80
|
+
多 App 入口工程建议显式指定目标:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Android 多 application module
|
|
84
|
+
meetgames integrate \
|
|
85
|
+
--project-root /path/to/android-project \
|
|
86
|
+
--app-target :app
|
|
87
|
+
|
|
88
|
+
# iOS 多 App target
|
|
89
|
+
meetgames integrate \
|
|
90
|
+
--project-root /path/to/ios-project \
|
|
91
|
+
--app-target GameRelease
|
|
92
|
+
```
|
|
93
|
+
|
|
77
94
|
## 从源码开发
|
|
78
95
|
|
|
79
96
|
源码为内部私有仓库,请向团队获取访问权限后 clone,或在本地直接开发:
|
|
@@ -84,7 +101,12 @@ npm install
|
|
|
84
101
|
npm run build
|
|
85
102
|
npm test
|
|
86
103
|
|
|
87
|
-
node dist/entry.js doctor
|
|
104
|
+
node dist/entry.js doctor \
|
|
105
|
+
--app-id <APP_ID> \
|
|
106
|
+
--app-secret '<APP_SECRET>' \
|
|
107
|
+
--channel-type GOOGLE \
|
|
108
|
+
--project-root fixtures/android-test-project/android-latest-project \
|
|
109
|
+
--env test
|
|
88
110
|
```
|
|
89
111
|
|
|
90
112
|
## 发布到 npm
|
|
@@ -101,19 +123,20 @@ npm publish --access public
|
|
|
101
123
|
|
|
102
124
|
| 文档 | 说明 |
|
|
103
125
|
|------|------|
|
|
104
|
-
| [docs/
|
|
105
|
-
| [docs/
|
|
106
|
-
| [docs/
|
|
107
|
-
| [docs/
|
|
126
|
+
| [docs/README.md](docs/README.md) | 文档索引 |
|
|
127
|
+
| [docs/CLI.md](docs/CLI.md) | CLI 子命令、参数、生效范围与环境变量 |
|
|
128
|
+
| [docs/INTEGRATION.md](docs/INTEGRATION.md) | Android / iOS SDK 自动接入说明 |
|
|
129
|
+
| [docs/API.md](docs/API.md) | `downloadSDKConfig` 接口和配置字段说明 |
|
|
130
|
+
| [docs/MCP.md](docs/MCP.md) | MCP 工具与 Cursor 配置 |
|
|
108
131
|
|
|
109
132
|
## npm 包内容说明
|
|
110
133
|
|
|
111
134
|
发布包**不包含**:
|
|
112
135
|
|
|
113
|
-
- `
|
|
114
|
-
- `
|
|
136
|
+
- `preview-patches/`(本地 dry-run patch 输出)
|
|
137
|
+
- `fixtures/ios-sdk/`(仓库测试用 iOS SDK fixture;运行时使用 `~/.cache/meet-sdk-tool/sdk/ios`)
|
|
115
138
|
|
|
116
|
-
|
|
139
|
+
`config/meetsdk-android.json`、`config/meetsdk-ios.json` 与 `recipes/` 会随包分发。
|
|
117
140
|
|
|
118
141
|
## License
|
|
119
142
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/android/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/android/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6C,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG/G,eAAO,MAAM,sBAAsB,EAAE,sBAKpC,CAAC"}
|
package/dist/android/adapter.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { detectAndroid } from "./detect.js";
|
|
2
2
|
export const androidPlatformAdapter = {
|
|
3
3
|
id: "android",
|
|
4
|
-
detect(projectRoot) {
|
|
5
|
-
return detectAndroid(projectRoot);
|
|
4
|
+
detect(projectRoot, options) {
|
|
5
|
+
return detectAndroid(projectRoot, options);
|
|
6
6
|
},
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/android/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,sBAAsB,GAA2B;IAC5D,EAAE,EAAE,SAAS;IACb,MAAM,CAAC,WAAmB;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/android/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,sBAAsB,GAA2B;IAC5D,EAAE,EAAE,SAAS;IACb,MAAM,CAAC,WAAmB,EAAE,OAA8B;QACxD,OAAO,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC"}
|
package/dist/android/detect.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AndroidDetectResult } from "../contracts/types.js";
|
|
2
|
-
export declare function detectAndroid(projectRoot: string): AndroidDetectResult;
|
|
1
|
+
import type { AndroidDetectOptions, AndroidDetectResult } from "../contracts/types.js";
|
|
2
|
+
export declare function detectAndroid(projectRoot: string, options?: AndroidDetectOptions): AndroidDetectResult;
|
|
3
3
|
/** Relative path from project root to the detected application module directory (e.g. `app`, `launcher`). */
|
|
4
4
|
export declare function applicationModuleRelPath(projectRoot: string, android: Extract<AndroidDetectResult, {
|
|
5
5
|
ok: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/android/detect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/android/detect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AA0DvF,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,mBAAmB,CAsD1G;AAED,6GAA6G;AAC7G,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,GAClD,MAAM,CAER;AAED,2FAA2F;AAC3F,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,GAClD,MAAM,CAGR"}
|
package/dist/android/detect.js
CHANGED
|
@@ -32,7 +32,24 @@ function moduleNameToDir(projectRoot, moduleName) {
|
|
|
32
32
|
function defaultManifestPath(moduleDir) {
|
|
33
33
|
return path.join(moduleDir, "src", "main", "AndroidManifest.xml");
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
function normalizeModuleSelector(value) {
|
|
36
|
+
const trimmed = value.trim().replace(/\\/g, "/").replace(/^\/+|\/+$/g, "");
|
|
37
|
+
if (!trimmed)
|
|
38
|
+
return "";
|
|
39
|
+
const asGradlePath = trimmed.replace(/\//g, ":");
|
|
40
|
+
return asGradlePath.startsWith(":") ? asGradlePath : `:${asGradlePath}`;
|
|
41
|
+
}
|
|
42
|
+
function applicationModuleList(modules) {
|
|
43
|
+
return modules.map((x) => x.moduleName).join(", ");
|
|
44
|
+
}
|
|
45
|
+
function successResult(projectRoot, moduleName, moduleDir) {
|
|
46
|
+
const manifestPath = defaultManifestPath(moduleDir);
|
|
47
|
+
if (!fs.existsSync(manifestPath)) {
|
|
48
|
+
return { ok: false, error: `AndroidManifest.xml not found at ${manifestPath}` };
|
|
49
|
+
}
|
|
50
|
+
return { ok: true, moduleName, moduleDir, manifestPath };
|
|
51
|
+
}
|
|
52
|
+
export function detectAndroid(projectRoot, options = {}) {
|
|
36
53
|
const settingsGradle = path.join(projectRoot, "settings.gradle");
|
|
37
54
|
const settingsGradleKts = path.join(projectRoot, "settings.gradle.kts");
|
|
38
55
|
let settingsContent = "";
|
|
@@ -61,19 +78,30 @@ export function detectAndroid(projectRoot) {
|
|
|
61
78
|
applicationModules.push({ moduleName, moduleDir });
|
|
62
79
|
}
|
|
63
80
|
}
|
|
81
|
+
const requestedModule = options.appTarget ? normalizeModuleSelector(options.appTarget) : "";
|
|
64
82
|
if (applicationModules.length === 0) {
|
|
65
83
|
return { ok: false, error: "NO_APPLICATION_MODULE_FOUND" };
|
|
66
84
|
}
|
|
85
|
+
if (requestedModule) {
|
|
86
|
+
const selected = applicationModules.find((x) => normalizeModuleSelector(x.moduleName) === requestedModule);
|
|
87
|
+
if (!selected) {
|
|
88
|
+
const list = applicationModuleList(applicationModules);
|
|
89
|
+
return {
|
|
90
|
+
ok: false,
|
|
91
|
+
error: `ANDROID_APPLICATION_MODULE_NOT_FOUND: ${requestedModule}; available application modules: ${list}`,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
return successResult(projectRoot, selected.moduleName, selected.moduleDir);
|
|
95
|
+
}
|
|
67
96
|
if (applicationModules.length > 1) {
|
|
68
|
-
const list = applicationModules
|
|
69
|
-
return {
|
|
97
|
+
const list = applicationModuleList(applicationModules);
|
|
98
|
+
return {
|
|
99
|
+
ok: false,
|
|
100
|
+
error: `MULTIPLE_APPLICATION_MODULES_FOUND: ${list}; pass --app-target <module> to select one`,
|
|
101
|
+
};
|
|
70
102
|
}
|
|
71
103
|
const { moduleName, moduleDir } = applicationModules[0];
|
|
72
|
-
|
|
73
|
-
if (!fs.existsSync(manifestPath)) {
|
|
74
|
-
return { ok: false, error: `AndroidManifest.xml not found at ${manifestPath}` };
|
|
75
|
-
}
|
|
76
|
-
return { ok: true, moduleName, moduleDir, manifestPath };
|
|
104
|
+
return successResult(projectRoot, moduleName, moduleDir);
|
|
77
105
|
}
|
|
78
106
|
/** Relative path from project root to the detected application module directory (e.g. `app`, `launcher`). */
|
|
79
107
|
export function applicationModuleRelPath(projectRoot, android) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/android/detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,SAAS,aAAa,CAAC,eAAuB;IAC5C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,YAAY,GAAG,qBAAqB,CAAC;IAC3C,IAAI,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/C,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,GAAG;aACd,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACxB,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAAC,kBAA0B;IACrD,MAAM,WAAW,GAAG,sDAAsD,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACpG,MAAM,YAAY,GAAG,qDAAqD,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACpG,MAAM,WAAW,GAAG,+EAA+E,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC7H,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,6CAA6C,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChG,OAAO,WAAW,IAAI,YAAY,IAAI,WAAW,IAAI,CAAC,eAAe,IAAI,gBAAgB,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,eAAe,CAAC,WAAmB,EAAE,UAAkB;IAC9D,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACjF,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/android/detect.ts"],"names":[],"mappings":"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"}
|
package/dist/cache.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export declare const MEET_SDK_TOOL_CACHE_ROOT: string;
|
|
2
|
+
export declare function ensureCacheRoot(): string;
|
|
3
|
+
export declare function resolveRemoteConfigCachePath(params: {
|
|
4
|
+
env: string;
|
|
5
|
+
appId: string;
|
|
6
|
+
channelType: string;
|
|
7
|
+
}): string;
|
|
8
|
+
export declare function writeRemoteConfigCache(params: {
|
|
9
|
+
env: string;
|
|
10
|
+
appId: string;
|
|
11
|
+
channelType: string;
|
|
12
|
+
requestUrl: string;
|
|
13
|
+
rawText: string;
|
|
14
|
+
warnings?: readonly string[];
|
|
15
|
+
}): {
|
|
16
|
+
configPath: string;
|
|
17
|
+
metadataPath: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function resolveIosSdkCacheLayout(params: {
|
|
20
|
+
version: string;
|
|
21
|
+
packageType: string;
|
|
22
|
+
plugins: readonly string[];
|
|
23
|
+
}): {
|
|
24
|
+
baseDir: string;
|
|
25
|
+
zipPath: string;
|
|
26
|
+
extractDir: string;
|
|
27
|
+
metadataPath: string;
|
|
28
|
+
lockDir: string;
|
|
29
|
+
};
|
|
30
|
+
export declare function writeIosSdkCacheMetadata(params: {
|
|
31
|
+
metadataPath: string;
|
|
32
|
+
version: string;
|
|
33
|
+
date?: string;
|
|
34
|
+
packageType: string;
|
|
35
|
+
plugins: readonly string[];
|
|
36
|
+
versionUrl: string;
|
|
37
|
+
downloadApiUrl: string;
|
|
38
|
+
sdkZipUrl: string;
|
|
39
|
+
zipPath: string;
|
|
40
|
+
extractDir: string;
|
|
41
|
+
resolvedSdkRoot: string;
|
|
42
|
+
}): void;
|
|
43
|
+
export declare function withCacheLock<T>(lockDir: string, fn: () => Promise<T>): Promise<T>;
|
|
44
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,wBAAwB,QAAqD,CAAC;AAuB3F,wBAAgB,eAAe,IAAI,MAAM,CAQxC;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAST;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAsB/C;AAMD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAgBlG;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,IAAI,CAyBP;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAalF"}
|
package/dist/cache.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import os from "node:os";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { MEETSDK_REMOTE_CONFIG_FILENAME } from "./config/meetSdkRemoteConfig.js";
|
|
6
|
+
export const MEET_SDK_TOOL_CACHE_ROOT = path.join(os.homedir(), ".cache", "meet-sdk-tool");
|
|
7
|
+
function iosSdkZipFileName(version) {
|
|
8
|
+
return `topSDK-ios--V${version}.zip`;
|
|
9
|
+
}
|
|
10
|
+
function safeSegment(value) {
|
|
11
|
+
const cleaned = value.trim().replace(/[^a-zA-Z0-9._-]+/g, "_").replace(/^_+|_+$/g, "");
|
|
12
|
+
return cleaned || "unknown";
|
|
13
|
+
}
|
|
14
|
+
function sha256Hex(value, length = 16) {
|
|
15
|
+
return crypto.createHash("sha256").update(value).digest("hex").slice(0, length);
|
|
16
|
+
}
|
|
17
|
+
function writeFileAtomic(absPath, content) {
|
|
18
|
+
ensureCacheRoot();
|
|
19
|
+
fs.mkdirSync(path.dirname(absPath), { recursive: true });
|
|
20
|
+
const tmp = path.join(path.dirname(absPath), `.${path.basename(absPath)}.${process.pid}.${Date.now()}.tmp`);
|
|
21
|
+
fs.writeFileSync(tmp, content);
|
|
22
|
+
fs.renameSync(tmp, absPath);
|
|
23
|
+
}
|
|
24
|
+
export function ensureCacheRoot() {
|
|
25
|
+
fs.mkdirSync(MEET_SDK_TOOL_CACHE_ROOT, { recursive: true, mode: 0o700 });
|
|
26
|
+
try {
|
|
27
|
+
fs.chmodSync(MEET_SDK_TOOL_CACHE_ROOT, 0o700);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// Best-effort on filesystems that do not support POSIX modes.
|
|
31
|
+
}
|
|
32
|
+
return MEET_SDK_TOOL_CACHE_ROOT;
|
|
33
|
+
}
|
|
34
|
+
export function resolveRemoteConfigCachePath(params) {
|
|
35
|
+
return path.join(MEET_SDK_TOOL_CACHE_ROOT, "configs", safeSegment(params.env), safeSegment(params.appId), safeSegment(params.channelType), MEETSDK_REMOTE_CONFIG_FILENAME);
|
|
36
|
+
}
|
|
37
|
+
export function writeRemoteConfigCache(params) {
|
|
38
|
+
const fetchedAt = new Date().toISOString();
|
|
39
|
+
const metadata = `${JSON.stringify({
|
|
40
|
+
fetchedAt,
|
|
41
|
+
env: params.env,
|
|
42
|
+
appId: params.appId,
|
|
43
|
+
channelType: params.channelType,
|
|
44
|
+
requestUrl: params.requestUrl,
|
|
45
|
+
sha256: crypto.createHash("sha256").update(params.rawText).digest("hex"),
|
|
46
|
+
warnings: params.warnings ?? [],
|
|
47
|
+
}, null, 2)}\n`;
|
|
48
|
+
const configPath = resolveRemoteConfigCachePath(params);
|
|
49
|
+
const metadataPath = path.join(path.dirname(configPath), "metadata.json");
|
|
50
|
+
writeFileAtomic(configPath, params.rawText);
|
|
51
|
+
writeFileAtomic(metadataPath, metadata);
|
|
52
|
+
return { configPath, metadataPath };
|
|
53
|
+
}
|
|
54
|
+
function pluginsHash(plugins) {
|
|
55
|
+
return sha256Hex(plugins.join(","), 12);
|
|
56
|
+
}
|
|
57
|
+
export function resolveIosSdkCacheLayout(params) {
|
|
58
|
+
const baseDir = path.join(MEET_SDK_TOOL_CACHE_ROOT, "sdk", "ios", safeSegment(params.packageType), safeSegment(params.version), pluginsHash(params.plugins));
|
|
59
|
+
return {
|
|
60
|
+
baseDir,
|
|
61
|
+
zipPath: path.join(baseDir, iosSdkZipFileName(params.version)),
|
|
62
|
+
extractDir: path.join(baseDir, "extracted"),
|
|
63
|
+
metadataPath: path.join(baseDir, "metadata.json"),
|
|
64
|
+
lockDir: path.join(baseDir, ".lock"),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export function writeIosSdkCacheMetadata(params) {
|
|
68
|
+
const zipSha256 = fs.existsSync(params.zipPath)
|
|
69
|
+
? crypto.createHash("sha256").update(fs.readFileSync(params.zipPath)).digest("hex")
|
|
70
|
+
: "";
|
|
71
|
+
writeFileAtomic(params.metadataPath, `${JSON.stringify({
|
|
72
|
+
fetchedAt: new Date().toISOString(),
|
|
73
|
+
version: params.version,
|
|
74
|
+
date: params.date,
|
|
75
|
+
packageType: params.packageType,
|
|
76
|
+
plugins: params.plugins,
|
|
77
|
+
versionUrl: params.versionUrl,
|
|
78
|
+
downloadApiUrl: params.downloadApiUrl,
|
|
79
|
+
sdkZipUrl: params.sdkZipUrl,
|
|
80
|
+
zipPath: params.zipPath,
|
|
81
|
+
extractDir: params.extractDir,
|
|
82
|
+
resolvedSdkRoot: params.resolvedSdkRoot,
|
|
83
|
+
zipSha256,
|
|
84
|
+
}, null, 2)}\n`);
|
|
85
|
+
}
|
|
86
|
+
export function withCacheLock(lockDir, fn) {
|
|
87
|
+
fs.mkdirSync(path.dirname(lockDir), { recursive: true });
|
|
88
|
+
try {
|
|
89
|
+
fs.mkdirSync(lockDir);
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
if (e.code === "EEXIST") {
|
|
93
|
+
throw new Error(`cache path is locked by another meet-sdk-tool process: ${lockDir}`);
|
|
94
|
+
}
|
|
95
|
+
throw e;
|
|
96
|
+
}
|
|
97
|
+
return fn().finally(() => {
|
|
98
|
+
fs.rmSync(lockDir, { recursive: true, force: true });
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAucA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAwC1C"}
|