@mpgd/capacitor-game-services 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/LICENSE +21 -0
- package/Package.swift +23 -0
- package/README.md +5 -0
- package/android/build/.transforms/0eb13b260e23fb4cce6073653afffaa7/results.bin +1 -0
- package/android/build/.transforms/0eb13b260e23fb4cce6073653afffaa7/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/.transforms/54d63ac7c518cb9127a7638240139c7a/results.bin +1 -0
- package/android/build/.transforms/54d63ac7c518cb9127a7638240139c7a/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/.transforms/7f216ddb86b41ea86c5383eac18e2740/results.bin +1 -0
- package/android/build/.transforms/7f216ddb86b41ea86c5383eac18e2740/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/dev/mpgd/capacitor/CapacitorGameServicesPlugin.dex +0 -0
- package/android/build/.transforms/7f216ddb86b41ea86c5383eac18e2740/transformed/bundleLibRuntimeToDirRelease/desugar_graph.bin +0 -0
- package/android/build/.transforms/b08d42dbb7115eed3b80c5ca86ced09c/results.bin +1 -0
- package/android/build/.transforms/b08d42dbb7115eed3b80c5ca86ced09c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/dev/mpgd/capacitor/CapacitorGameServicesPlugin.dex +0 -0
- package/android/build/.transforms/b08d42dbb7115eed3b80c5ca86ced09c/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/AndroidManifest.xml +7 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/output-metadata.json +18 -0
- package/android/build/intermediates/aar_main_jar/debug/syncDebugLibJars/classes.jar +0 -0
- package/android/build/intermediates/aar_main_jar/release/syncReleaseLibJars/classes.jar +0 -0
- package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
- package/android/build/intermediates/aar_metadata/release/writeReleaseAarMetadata/aar-metadata.properties +6 -0
- package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
- package/android/build/intermediates/annotation_processor_list/release/javaPreCompileRelease/annotationProcessors.json +1 -0
- package/android/build/intermediates/annotation_processor_list/releaseUnitTest/javaPreCompileReleaseUnitTest/annotationProcessors.json +1 -0
- package/android/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt +0 -0
- package/android/build/intermediates/annotations_typedef_file/release/extractReleaseAnnotations/typedefs.txt +0 -0
- package/android/build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/releaseUnitTest/generateReleaseUnitTestStubRFile/R.jar +0 -0
- package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/compile_library_classes_jar/release/bundleLibCompileToJarRelease/classes.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/release/generateReleaseRFile/R.jar +0 -0
- package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
- package/android/build/intermediates/compile_symbol_list/release/generateReleaseRFile/R.txt +0 -0
- package/android/build/intermediates/default_proguard_files/global/proguard-android-optimize.txt-8.13.0 +89 -0
- package/android/build/intermediates/default_proguard_files/global/proguard-android.txt-8.13.0 +95 -0
- package/android/build/intermediates/default_proguard_files/global/proguard-defaults.txt-8.13.0 +89 -0
- package/android/build/intermediates/full_jar/release/createFullJarRelease/full.jar +0 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
- package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
- package/android/build/intermediates/incremental/lintVitalAnalyzeRelease/module.xml +19 -0
- package/android/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-dependencies.xml +152 -0
- package/android/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-libraries.xml +505 -0
- package/android/build/intermediates/incremental/lintVitalAnalyzeRelease/release.xml +31 -0
- package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeReleaseAssets/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeReleaseShaders/merger.xml +2 -0
- package/android/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties +1 -0
- package/android/build/intermediates/incremental/release/packageReleaseResources/merger.xml +2 -0
- package/android/build/intermediates/incremental/release-mergeJavaRes/merge-state +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/dev/mpgd/capacitor/CapacitorGameServicesPlugin.class +0 -0
- package/android/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/dev/mpgd/capacitor/CapacitorGameServicesPlugin.class +0 -0
- package/android/build/intermediates/lint-cache/lintVitalAnalyzeRelease/lint-cache-version.txt +1 -0
- package/android/build/intermediates/lint-cache/lintVitalAnalyzeRelease/maven.google/com/android/tools/build/group-index.xml +22 -0
- package/android/build/intermediates/lint-cache/lintVitalAnalyzeRelease/maven.google/master-index.xml +328 -0
- package/android/build/intermediates/lint-cache/lintVitalAnalyzeRelease/sdk_index/snapshot.gz +0 -0
- package/android/build/intermediates/lint_model/release/generateReleaseLintModel/module.xml +19 -0
- package/android/build/intermediates/lint_model/release/generateReleaseLintModel/release-artifact-dependencies.xml +152 -0
- package/android/build/intermediates/lint_model/release/generateReleaseLintModel/release-artifact-libraries.xml +495 -0
- package/android/build/intermediates/lint_model/release/generateReleaseLintModel/release.xml +31 -0
- package/android/build/intermediates/lint_model_metadata/release/writeReleaseLintModelMetadata/lint-model-metadata.properties +3 -0
- package/android/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/module.xml +19 -0
- package/android/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release-artifact-dependencies.xml +152 -0
- package/android/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release-artifact-libraries.xml +495 -0
- package/android/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release.xml +31 -0
- package/android/build/intermediates/lint_vital_partial_results/release/lintVitalAnalyzeRelease/out/lint-resources.xml +0 -0
- package/android/build/intermediates/local_aar_for_lint/release/out.aar +0 -0
- package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
- package/android/build/intermediates/local_only_symbol_list/release/parseReleaseLocalResources/R-def.txt +2 -0
- package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +7 -0
- package/android/build/intermediates/manifest_merge_blame_file/release/processReleaseManifest/manifest-merger-blame-release-report.txt +7 -0
- package/android/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/feature-mpgd-capacitor-game-services.jar +0 -0
- package/android/build/intermediates/merged_java_res/release/mergeReleaseJavaResource/feature-mpgd-capacitor-game-services.jar +0 -0
- package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
- package/android/build/intermediates/merged_manifest/release/processReleaseManifest/AndroidManifest.xml +7 -0
- package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
- package/android/build/intermediates/navigation_json/release/extractDeepLinksRelease/navigation.json +1 -0
- package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
- package/android/build/intermediates/nested_resources_validation_report/release/generateReleaseResources/nestedResourcesValidationReport.txt +1 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/dev/mpgd/capacitor/CapacitorGameServicesPlugin.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/dev/mpgd/capacitor/CapacitorGameServicesPlugin.class +0 -0
- package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/runtime_library_classes_jar/release/bundleLibRuntimeToJarRelease/classes.jar +0 -0
- package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
- package/android/build/intermediates/symbol_list_with_package_name/release/generateReleaseRFile/package-aware-r.txt +1 -0
- package/android/build/outputs/aar/mpgd-capacitor-game-services-debug.aar +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +16 -0
- package/android/build/outputs/logs/manifest-merger-release-report.txt +16 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/CapacitorGameServicesPlugin.class.uniqueId0 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build/tmp/compileReleaseJavaWithJavac/compileTransaction/stash-dir/CapacitorGameServicesPlugin.class.uniqueId0 +0 -0
- package/android/build/tmp/compileReleaseJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build.gradle +30 -0
- package/android/src/main/AndroidManifest.xml +1 -0
- package/android/src/main/java/dev/mpgd/capacitor/CapacitorGameServicesPlugin.java +124 -0
- package/dist/definitions.d.ts +4 -0
- package/dist/definitions.js +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/ios/Sources/CapacitorGameServices/CapacitorGameServicesPlugin.swift +114 -0
- package/package.json +66 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
-- Merging decision tree log ---
|
|
2
|
+
manifest
|
|
3
|
+
ADDED from /Users/imjlk/repos/imjlk/mpgd-kit/apps/mobile-capacitor/node_modules/@mpgd/capacitor-game-services/android/src/main/AndroidManifest.xml:1:1-72
|
|
4
|
+
INJECTED from /Users/imjlk/repos/imjlk/mpgd-kit/apps/mobile-capacitor/node_modules/@mpgd/capacitor-game-services/android/src/main/AndroidManifest.xml:1:1-72
|
|
5
|
+
package
|
|
6
|
+
INJECTED from /Users/imjlk/repos/imjlk/mpgd-kit/apps/mobile-capacitor/node_modules/@mpgd/capacitor-game-services/android/src/main/AndroidManifest.xml
|
|
7
|
+
xmlns:android
|
|
8
|
+
ADDED from /Users/imjlk/repos/imjlk/mpgd-kit/apps/mobile-capacitor/node_modules/@mpgd/capacitor-game-services/android/src/main/AndroidManifest.xml:1:11-69
|
|
9
|
+
uses-sdk
|
|
10
|
+
INJECTED from /Users/imjlk/repos/imjlk/mpgd-kit/apps/mobile-capacitor/node_modules/@mpgd/capacitor-game-services/android/src/main/AndroidManifest.xml reason: use-sdk injection requested
|
|
11
|
+
INJECTED from /Users/imjlk/repos/imjlk/mpgd-kit/apps/mobile-capacitor/node_modules/@mpgd/capacitor-game-services/android/src/main/AndroidManifest.xml
|
|
12
|
+
INJECTED from /Users/imjlk/repos/imjlk/mpgd-kit/apps/mobile-capacitor/node_modules/@mpgd/capacitor-game-services/android/src/main/AndroidManifest.xml
|
|
13
|
+
android:targetSdkVersion
|
|
14
|
+
INJECTED from /Users/imjlk/repos/imjlk/mpgd-kit/apps/mobile-capacitor/node_modules/@mpgd/capacitor-game-services/android/src/main/AndroidManifest.xml
|
|
15
|
+
android:minSdkVersion
|
|
16
|
+
INJECTED from /Users/imjlk/repos/imjlk/mpgd-kit/apps/mobile-capacitor/node_modules/@mpgd/capacitor-game-services/android/src/main/AndroidManifest.xml
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
buildscript {
|
|
2
|
+
repositories {
|
|
3
|
+
google()
|
|
4
|
+
mavenCentral()
|
|
5
|
+
}
|
|
6
|
+
dependencies {
|
|
7
|
+
classpath 'com.android.tools.build:gradle:8.13.0'
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
apply plugin: 'com.android.library'
|
|
12
|
+
|
|
13
|
+
android {
|
|
14
|
+
namespace 'dev.mpgd.capacitor.gameservices'
|
|
15
|
+
compileSdk project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 36
|
|
16
|
+
|
|
17
|
+
defaultConfig {
|
|
18
|
+
minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 24
|
|
19
|
+
targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 36
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
repositories {
|
|
24
|
+
google()
|
|
25
|
+
mavenCentral()
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
dependencies {
|
|
29
|
+
implementation project(':capacitor-android')
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android" />
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
package dev.mpgd.capacitor;
|
|
2
|
+
|
|
3
|
+
import com.getcapacitor.JSObject;
|
|
4
|
+
import com.getcapacitor.Plugin;
|
|
5
|
+
import com.getcapacitor.PluginCall;
|
|
6
|
+
import com.getcapacitor.PluginMethod;
|
|
7
|
+
import com.getcapacitor.annotation.CapacitorPlugin;
|
|
8
|
+
import org.json.JSONObject;
|
|
9
|
+
|
|
10
|
+
@CapacitorPlugin(name = "CapacitorGameServices")
|
|
11
|
+
public class CapacitorGameServicesPlugin extends Plugin {
|
|
12
|
+
@PluginMethod
|
|
13
|
+
public void request(PluginCall call) {
|
|
14
|
+
String id = call.getString("id");
|
|
15
|
+
String method = call.getString("method");
|
|
16
|
+
|
|
17
|
+
if (id == null || id.isEmpty()) {
|
|
18
|
+
id = "android-native-mock";
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (method == null || method.isEmpty()) {
|
|
22
|
+
call.resolve(errorResponse(id, "INVALID_BRIDGE_REQUEST", "Bridge method is required."));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
switch (method) {
|
|
27
|
+
case "runtime.getCapabilities":
|
|
28
|
+
call.resolve(okResponse(id, capabilities()));
|
|
29
|
+
return;
|
|
30
|
+
case "identity.getPlayer":
|
|
31
|
+
call.resolve(okResponse(id, player()));
|
|
32
|
+
return;
|
|
33
|
+
case "commerce.getProducts":
|
|
34
|
+
call.resolve(okResponse(id, new Object[] { product() }));
|
|
35
|
+
return;
|
|
36
|
+
case "commerce.purchase":
|
|
37
|
+
call.resolve(okResponse(id, new JSObject()
|
|
38
|
+
.put("status", "completed")
|
|
39
|
+
.put("transactionId", "android-mock-" + id)
|
|
40
|
+
.put("entitlementIds", new String[] { "COINS_100" })));
|
|
41
|
+
return;
|
|
42
|
+
case "commerce.restore":
|
|
43
|
+
call.resolve(okResponse(id, new JSObject().put("restoredEntitlements", new Object[] {})));
|
|
44
|
+
return;
|
|
45
|
+
case "commerce.getEntitlements":
|
|
46
|
+
call.resolve(okResponse(id, new Object[] {}));
|
|
47
|
+
return;
|
|
48
|
+
case "ads.preload":
|
|
49
|
+
call.resolve(okResponse(id, new JSObject()));
|
|
50
|
+
return;
|
|
51
|
+
case "ads.showRewarded":
|
|
52
|
+
call.resolve(okResponse(id, new JSObject()
|
|
53
|
+
.put("status", "completed")
|
|
54
|
+
.put("rewardGranted", true)
|
|
55
|
+
.put("ledgerEntryId", "android-reward-" + id)));
|
|
56
|
+
return;
|
|
57
|
+
case "ads.showInterstitial":
|
|
58
|
+
call.resolve(okResponse(id, new JSObject().put("status", "shown")));
|
|
59
|
+
return;
|
|
60
|
+
case "leaderboard.submitScore":
|
|
61
|
+
call.resolve(okResponse(id, new JSObject().put("submitted", true)));
|
|
62
|
+
return;
|
|
63
|
+
case "leaderboard.open":
|
|
64
|
+
call.resolve(okResponse(id, new JSObject().put("opened", true)));
|
|
65
|
+
return;
|
|
66
|
+
case "storage.load":
|
|
67
|
+
call.resolve(okResponse(id, JSONObject.NULL));
|
|
68
|
+
return;
|
|
69
|
+
case "storage.save":
|
|
70
|
+
call.resolve(okResponse(id, new JSObject()));
|
|
71
|
+
return;
|
|
72
|
+
default:
|
|
73
|
+
call.resolve(errorResponse(id, "UNSUPPORTED_METHOD", "Unsupported bridge method: " + method));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
private JSObject okResponse(String id, Object data) {
|
|
78
|
+
return new JSObject()
|
|
79
|
+
.put("id", id)
|
|
80
|
+
.put("ok", true)
|
|
81
|
+
.put("data", data);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
private JSObject errorResponse(String id, String code, String message) {
|
|
85
|
+
return new JSObject()
|
|
86
|
+
.put("id", id)
|
|
87
|
+
.put("ok", false)
|
|
88
|
+
.put("error", new JSObject()
|
|
89
|
+
.put("code", code)
|
|
90
|
+
.put("message", message)
|
|
91
|
+
.put("retryable", false));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
private JSObject capabilities() {
|
|
95
|
+
return new JSObject()
|
|
96
|
+
.put("nativeIap", true)
|
|
97
|
+
.put("nativeAds", true)
|
|
98
|
+
.put("rewardedAds", true)
|
|
99
|
+
.put("interstitialAds", true)
|
|
100
|
+
.put("nativeLeaderboard", true)
|
|
101
|
+
.put("achievements", false)
|
|
102
|
+
.put("cloudSave", false)
|
|
103
|
+
.put("socialShare", false)
|
|
104
|
+
.put("haptics", true)
|
|
105
|
+
.put("localizedContent", true);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
private JSObject player() {
|
|
109
|
+
return new JSObject()
|
|
110
|
+
.put("playerId", "android-local-player")
|
|
111
|
+
.put("displayName", "Android Local Player");
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
private JSObject product() {
|
|
115
|
+
return new JSObject()
|
|
116
|
+
.put("id", "COINS_100")
|
|
117
|
+
.put("type", "consumable")
|
|
118
|
+
.put("title", "100 Coins")
|
|
119
|
+
.put("description", "Adds 100 demo coins.")
|
|
120
|
+
.put("price", new JSObject()
|
|
121
|
+
.put("formatted", "$0.99")
|
|
122
|
+
.put("currencyCode", "USD"));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import Capacitor
|
|
2
|
+
import Foundation
|
|
3
|
+
|
|
4
|
+
@objc(CapacitorGameServicesPlugin)
|
|
5
|
+
public class CapacitorGameServicesPlugin: CAPPlugin, CAPBridgedPlugin {
|
|
6
|
+
public let identifier = "CapacitorGameServicesPlugin"
|
|
7
|
+
public let jsName = "CapacitorGameServices"
|
|
8
|
+
public let pluginMethods: [CAPPluginMethod] = [
|
|
9
|
+
CAPPluginMethod(name: "request", returnType: CAPPluginReturnPromise)
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
@objc func request(_ call: CAPPluginCall) {
|
|
13
|
+
let id = call.getString("id") ?? "ios-native-mock"
|
|
14
|
+
|
|
15
|
+
guard let method = call.getString("method"), !method.isEmpty else {
|
|
16
|
+
call.resolve(errorResponse(id: id, code: "INVALID_BRIDGE_REQUEST", message: "Bridge method is required."))
|
|
17
|
+
return
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
switch method {
|
|
21
|
+
case "runtime.getCapabilities":
|
|
22
|
+
call.resolve(okResponse(id: id, data: capabilities()))
|
|
23
|
+
case "identity.getPlayer":
|
|
24
|
+
call.resolve(okResponse(id: id, data: player()))
|
|
25
|
+
case "commerce.getProducts":
|
|
26
|
+
call.resolve(okResponse(id: id, data: [product()]))
|
|
27
|
+
case "commerce.purchase":
|
|
28
|
+
call.resolve(okResponse(id: id, data: [
|
|
29
|
+
"status": "completed",
|
|
30
|
+
"transactionId": "ios-mock-\(id)",
|
|
31
|
+
"entitlementIds": ["COINS_100"]
|
|
32
|
+
]))
|
|
33
|
+
case "commerce.restore":
|
|
34
|
+
call.resolve(okResponse(id: id, data: ["restoredEntitlements": []]))
|
|
35
|
+
case "commerce.getEntitlements":
|
|
36
|
+
call.resolve(okResponse(id: id, data: []))
|
|
37
|
+
case "ads.preload":
|
|
38
|
+
call.resolve(okResponse(id: id, data: [:]))
|
|
39
|
+
case "ads.showRewarded":
|
|
40
|
+
call.resolve(okResponse(id: id, data: [
|
|
41
|
+
"status": "completed",
|
|
42
|
+
"rewardGranted": true,
|
|
43
|
+
"ledgerEntryId": "ios-reward-\(id)"
|
|
44
|
+
]))
|
|
45
|
+
case "ads.showInterstitial":
|
|
46
|
+
call.resolve(okResponse(id: id, data: ["status": "shown"]))
|
|
47
|
+
case "leaderboard.submitScore":
|
|
48
|
+
call.resolve(okResponse(id: id, data: ["submitted": true]))
|
|
49
|
+
case "leaderboard.open":
|
|
50
|
+
call.resolve(okResponse(id: id, data: ["opened": true]))
|
|
51
|
+
case "storage.load":
|
|
52
|
+
call.resolve(okResponse(id: id, data: NSNull()))
|
|
53
|
+
case "storage.save":
|
|
54
|
+
call.resolve(okResponse(id: id, data: [:]))
|
|
55
|
+
default:
|
|
56
|
+
call.resolve(errorResponse(id: id, code: "UNSUPPORTED_METHOD", message: "Unsupported bridge method: \(method)"))
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private func okResponse(id: String, data: Any) -> [String: Any] {
|
|
61
|
+
return [
|
|
62
|
+
"id": id,
|
|
63
|
+
"ok": true,
|
|
64
|
+
"data": data
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
private func errorResponse(id: String, code: String, message: String) -> [String: Any] {
|
|
69
|
+
return [
|
|
70
|
+
"id": id,
|
|
71
|
+
"ok": false,
|
|
72
|
+
"error": [
|
|
73
|
+
"code": code,
|
|
74
|
+
"message": message,
|
|
75
|
+
"retryable": false
|
|
76
|
+
]
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
private func capabilities() -> [String: Any] {
|
|
81
|
+
return [
|
|
82
|
+
"nativeIap": true,
|
|
83
|
+
"nativeAds": true,
|
|
84
|
+
"rewardedAds": true,
|
|
85
|
+
"interstitialAds": true,
|
|
86
|
+
"nativeLeaderboard": true,
|
|
87
|
+
"achievements": false,
|
|
88
|
+
"cloudSave": false,
|
|
89
|
+
"socialShare": false,
|
|
90
|
+
"haptics": true,
|
|
91
|
+
"localizedContent": true
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
private func player() -> [String: Any] {
|
|
96
|
+
return [
|
|
97
|
+
"playerId": "ios-local-player",
|
|
98
|
+
"displayName": "iOS Local Player"
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
private func product() -> [String: Any] {
|
|
103
|
+
return [
|
|
104
|
+
"id": "COINS_100",
|
|
105
|
+
"type": "consumable",
|
|
106
|
+
"title": "100 Coins",
|
|
107
|
+
"description": "Adds 100 demo coins.",
|
|
108
|
+
"price": [
|
|
109
|
+
"formatted": "$0.99",
|
|
110
|
+
"currencyCode": "USD"
|
|
111
|
+
]
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mpgd/capacitor-game-services",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Capacitor native plugin bridge for mpgd game services.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/imjlk/mpgd-kit.git",
|
|
9
|
+
"directory": "native-plugins/capacitor-game-services"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/imjlk/mpgd-kit/issues"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/imjlk/mpgd-kit#readme",
|
|
15
|
+
"keywords": [
|
|
16
|
+
"mpgd",
|
|
17
|
+
"phaser",
|
|
18
|
+
"vite",
|
|
19
|
+
"typescript",
|
|
20
|
+
"capacitor",
|
|
21
|
+
"apps-in-toss",
|
|
22
|
+
"game-development",
|
|
23
|
+
"game-distribution"
|
|
24
|
+
],
|
|
25
|
+
"type": "module",
|
|
26
|
+
"sideEffects": false,
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"default": "./dist/index.js"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"capacitor": {
|
|
34
|
+
"android": {
|
|
35
|
+
"src": "android"
|
|
36
|
+
},
|
|
37
|
+
"ios": {
|
|
38
|
+
"src": "ios"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"files": [
|
|
42
|
+
"dist",
|
|
43
|
+
"android",
|
|
44
|
+
"ios",
|
|
45
|
+
"Package.swift"
|
|
46
|
+
],
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@capacitor/core": "^8.4.1",
|
|
49
|
+
"@mpgd/bridge": "0.1.0"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"ttsc": "0.16.9",
|
|
53
|
+
"typescript": "7.0.1-rc"
|
|
54
|
+
},
|
|
55
|
+
"main": "./dist/index.js",
|
|
56
|
+
"types": "./dist/index.d.ts",
|
|
57
|
+
"publishConfig": {
|
|
58
|
+
"access": "public"
|
|
59
|
+
},
|
|
60
|
+
"scripts": {
|
|
61
|
+
"check": "ttsc --noEmit",
|
|
62
|
+
"lint": "ttsc --noEmit",
|
|
63
|
+
"format": "ttsc format",
|
|
64
|
+
"fix": "ttsc fix"
|
|
65
|
+
}
|
|
66
|
+
}
|