@playporter/core 0.1.0 → 0.2.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/dist/index.d.ts CHANGED
@@ -183,6 +183,49 @@ export interface PlayPorterConfig {
183
183
  postTitle?: string;
184
184
  };
185
185
  };
186
+ /** Vendor-neutral service routing. Omit a domain to use PlayPorter's built-in provider. */
187
+ services?: ServicesConfig;
188
+ }
189
+ export type CapabilityDomain = "auth" | "saves" | "payments" | "analytics" | "hosting";
190
+ /**
191
+ * Routing rule for a single capability domain.
192
+ * `platforms` overrides the primary provider for specific platforms
193
+ * (e.g. use Discord Native Payments on discord, Stripe elsewhere).
194
+ */
195
+ export interface ServiceRouting {
196
+ primary: string;
197
+ fallback?: string;
198
+ platforms?: Partial<Record<Platform, string>>;
199
+ }
200
+ export interface ServicesConfig {
201
+ auth?: ServiceRouting;
202
+ saves?: ServiceRouting;
203
+ payments?: ServiceRouting;
204
+ /** Pass an array to dual-fire events to multiple providers. */
205
+ analytics?: ServiceRouting | string[];
206
+ hosting?: {
207
+ provider: string;
208
+ };
209
+ }
210
+ export interface CapabilityEntry {
211
+ domain: CapabilityDomain;
212
+ provider: string;
213
+ platforms: Platform[];
214
+ }
215
+ /**
216
+ * Resolved at SDK init time. Documents every active provider so the game
217
+ * developer (and PlayPorter Studio) can verify coverage before shipping.
218
+ */
219
+ export interface CapabilityGraph {
220
+ game: {
221
+ slug: string;
222
+ name: string;
223
+ version: string;
224
+ };
225
+ resolvedAt: string;
226
+ capabilities: CapabilityEntry[];
227
+ /** Effective provider id per domain for the current platform. */
228
+ routing: Partial<Record<CapabilityDomain, string>>;
186
229
  }
187
230
  export declare function deterministicBucket(...parts: string[]): number;
188
231
  export declare function compareSemver(left: string, right: string): number;
package/dist/index.js CHANGED
@@ -34,6 +34,7 @@ export const PLAN_LIMITS = {
34
34
  branded: false,
35
35
  },
36
36
  };
37
+ // ─────────────────────────────────────────────────────────────────────────────
37
38
  export function deterministicBucket(...parts) {
38
39
  const input = parts.join(":");
39
40
  let hash = 2166136261;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playporter/core",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",