@diffenderfer-games/hub 0.0.0-stage → 2.0.0-next.1
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/CHANGELOG.md +9 -0
- package/LICENSE +21 -0
- package/README.md +191 -3
- package/dist/auto.d.ts +36 -0
- package/dist/auto.d.ts.map +1 -0
- package/dist/auto.js +27 -0
- package/dist/auto.js.map +1 -0
- package/dist/daily.d.ts +2 -0
- package/dist/daily.js +1 -0
- package/dist/doctor/cli.mjs +268 -0
- package/dist/doctor/cli.mjs.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +6 -0
- package/dist/input.d.ts +2 -0
- package/dist/input.js +3 -0
- package/dist/mp.d.ts +4 -0
- package/dist/mp.js +1 -0
- package/dist/race.d.ts +4 -0
- package/dist/race.js +1 -0
- package/dist/rooms.d.ts +4 -0
- package/dist/rooms.js +1 -0
- package/dist/shared/bridge.js +209 -0
- package/dist/shared/bridge.js.map +1 -0
- package/dist/shared/client-version.gen.js +7 -0
- package/dist/shared/client-version.gen.js.map +1 -0
- package/dist/shared/daily.d.ts +123 -0
- package/dist/shared/daily.d.ts.map +1 -0
- package/dist/shared/daily.js +191 -0
- package/dist/shared/daily.js.map +1 -0
- package/dist/shared/dom.js +48 -0
- package/dist/shared/dom.js.map +1 -0
- package/dist/shared/globals.js +102 -0
- package/dist/shared/globals.js.map +1 -0
- package/dist/shared/index.d.ts +706 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/input.d.ts +730 -0
- package/dist/shared/input.d.ts.map +1 -0
- package/dist/shared/input.js +2718 -0
- package/dist/shared/input.js.map +1 -0
- package/dist/shared/latest-state.js +17 -0
- package/dist/shared/latest-state.js.map +1 -0
- package/dist/shared/mp.d.ts +9 -0
- package/dist/shared/mp.d.ts.map +1 -0
- package/dist/shared/mp.js +30 -0
- package/dist/shared/mp.js.map +1 -0
- package/dist/shared/multiplayer-types.d.ts +47 -0
- package/dist/shared/multiplayer-types.d.ts.map +1 -0
- package/dist/shared/page-stack.js +207 -0
- package/dist/shared/page-stack.js.map +1 -0
- package/dist/shared/race-types.d.ts +126 -0
- package/dist/shared/race-types.d.ts.map +1 -0
- package/dist/shared/race.d.ts +9 -0
- package/dist/shared/race.d.ts.map +1 -0
- package/dist/shared/race.js +53 -0
- package/dist/shared/race.js.map +1 -0
- package/dist/shared/room-types.d.ts +125 -0
- package/dist/shared/room-types.d.ts.map +1 -0
- package/dist/shared/rooms.d.ts +9 -0
- package/dist/shared/rooms.d.ts.map +1 -0
- package/dist/shared/rooms.js +62 -0
- package/dist/shared/rooms.js.map +1 -0
- package/dist/shared/runtime-opener.js +84 -0
- package/dist/shared/runtime-opener.js.map +1 -0
- package/dist/shared/social.d.ts +148 -0
- package/dist/shared/social.d.ts.map +1 -0
- package/dist/shared/social.js +73 -0
- package/dist/shared/social.js.map +1 -0
- package/dist/shared/src.js +2164 -0
- package/dist/shared/src.js.map +1 -0
- package/dist/shared/wire-types.d.ts +51 -0
- package/dist/shared/wire-types.d.ts.map +1 -0
- package/dist/social.d.ts +6 -0
- package/dist/social.js +3 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +0 -0
- package/package.json +89 -6
- package/src/auto.ts +39 -0
- package/src/core/connection.ts +299 -0
- package/src/core/errors.ts +147 -0
- package/src/core/game-data.ts +38 -0
- package/src/core/hub-economy.ts +179 -0
- package/src/core/hub-progress.ts +205 -0
- package/src/core/hub.ts +131 -0
- package/src/core/menu-control.ts +61 -0
- package/src/core/offline/events.ts +50 -0
- package/src/core/offline/favorites.ts +21 -0
- package/src/core/offline/local-store.ts +261 -0
- package/src/core/offline/queue.ts +171 -0
- package/src/core/page.ts +74 -0
- package/src/core/rest/endpoint-types.ts +22 -0
- package/src/core/rest/rest-client.ts +152 -0
- package/src/core/rest/routes.gen.ts +90 -0
- package/src/core/storage/json-guards.ts +74 -0
- package/src/core/storage/key-value.ts +66 -0
- package/src/core/ticket.ts +43 -0
- package/src/core/types.ts +134 -0
- package/src/core/version/client-version.gen.ts +3 -0
- package/src/core/version/hub-version.ts +62 -0
- package/src/core/version/semver.ts +97 -0
- package/src/daily/daily-system.ts +161 -0
- package/src/daily/page-daily.ts +36 -0
- package/src/daily/types.ts +67 -0
- package/src/daily.ts +10 -0
- package/src/doctor/checks.ts +78 -0
- package/src/doctor/cli.ts +98 -0
- package/src/doctor/hub-version-fetch.ts +43 -0
- package/src/doctor/tsconfig.json +12 -0
- package/src/globals.ts +115 -0
- package/src/index.ts +50 -0
- package/src/input/device-state.ts +146 -0
- package/src/input/edges.ts +55 -0
- package/src/input/gamepad.ts +61 -0
- package/src/input/input-events.ts +32 -0
- package/src/input/input-registry.ts +164 -0
- package/src/input/input-system.ts +393 -0
- package/src/input/legacy-controls.ts +64 -0
- package/src/input/nav-state.ts +191 -0
- package/src/input/navigator.ts +171 -0
- package/src/input/on-screen-controls.ts +101 -0
- package/src/input/page-control.ts +43 -0
- package/src/input/page-input.ts +193 -0
- package/src/input/player-remaps.ts +77 -0
- package/src/input/source-values.ts +116 -0
- package/src/input/spatial.ts +47 -0
- package/src/input/types.ts +331 -0
- package/src/input/zero-config.ts +177 -0
- package/src/input.ts +22 -0
- package/src/mp.ts +10 -0
- package/src/overlay/controls-panel.ts +163 -0
- package/src/overlay/dom.ts +46 -0
- package/src/overlay/layout-clusters.ts +162 -0
- package/src/overlay/layout-geometry.ts +136 -0
- package/src/overlay/layout.ts +203 -0
- package/src/overlay/listener-scope.ts +23 -0
- package/src/overlay/on-screen-keyboard.ts +137 -0
- package/src/overlay/overlay.ts +208 -0
- package/src/overlay/styles.ts +54 -0
- package/src/overlay/virtual-controls.ts +262 -0
- package/src/race.ts +10 -0
- package/src/realtime/bridge.ts +121 -0
- package/src/realtime/cross-bundle.ts +29 -0
- package/src/realtime/fallback-notice.ts +48 -0
- package/src/realtime/hub-link.ts +65 -0
- package/src/realtime/latest-state.ts +33 -0
- package/src/realtime/multiplayer-forwarder.ts +28 -0
- package/src/realtime/multiplayer-types.ts +52 -0
- package/src/realtime/page-runtime.ts +60 -0
- package/src/realtime/race-forwarder.ts +59 -0
- package/src/realtime/race-types.ts +132 -0
- package/src/realtime/room-types.ts +125 -0
- package/src/realtime/rooms-forwarder.ts +79 -0
- package/src/realtime/runtime-api.ts +49 -0
- package/src/realtime/runtime-opener.ts +61 -0
- package/src/realtime/social-forwarder.ts +72 -0
- package/src/realtime/social-types.ts +78 -0
- package/src/realtime/types.ts +53 -0
- package/src/realtime/wire-types.ts +72 -0
- package/src/rooms.ts +10 -0
- package/src/social.ts +18 -0
- package/src/types.ts +13 -0
- package/src/uistack/page-stack.ts +45 -0
- package/src/uistack/play-suspension.ts +82 -0
- package/src/uistack/types.ts +76 -0
- package/src/uistack/ui-stack.ts +144 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src.js","names":["presence","social","mp","rooms","notify","race"],"sources":["../../src/core/storage/json-guards.ts","../../src/core/errors.ts","../../src/core/storage/key-value.ts","../../src/core/offline/events.ts","../../src/core/offline/queue.ts","../../src/core/offline/local-store.ts","../../src/core/page.ts","../../src/core/rest/routes.gen.ts","../../src/core/rest/rest-client.ts","../../src/core/connection.ts","../../src/core/game-data.ts","../../src/core/hub-progress.ts","../../src/core/offline/favorites.ts","../../src/core/hub-economy.ts","../../src/core/menu-control.ts","../../src/core/ticket.ts","../../src/core/version/semver.ts","../../src/core/version/hub-version.ts","../../src/core/hub.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { EventData, InviteCreated, OpAck, RaceHistory, RaceRecordPlayer, RaceResultPlayer, RoomSeat, events, ops } from "@diffenderfer-games/hub-contract";
|
|
2
|
+
//#region src/realtime/wire-types.d.ts
|
|
3
|
+
/** The parsed (output) type of a contract schema, without importing zod. */
|
|
4
|
+
type SchemaOutput<Schema> = Schema extends {
|
|
5
|
+
readonly _zod: {
|
|
6
|
+
readonly output: infer Output;
|
|
7
|
+
};
|
|
8
|
+
} ? Output : never;
|
|
9
|
+
/** Every server event, name → payload (the contract's `events`). */
|
|
10
|
+
type ServerEvents = { [Name in keyof typeof events]: EventData<(typeof events)[Name]>; };
|
|
11
|
+
/** The `hello` ack: everything the Friends drawer needs in one round-trip. */
|
|
12
|
+
type Snapshot = OpAck<(typeof ops)['hello']>;
|
|
13
|
+
/** A generic server notice rendered as a toast (`ev:notice`). */
|
|
14
|
+
type Notice = ServerEvents['notice'];
|
|
15
|
+
/** A seat in a hub room. */
|
|
16
|
+
type RoomSeat$1 = SchemaOutput<typeof RoomSeat>;
|
|
17
|
+
/** One racer's line in a decided race. */
|
|
18
|
+
type RaceResultPlayer$1 = SchemaOutput<typeof RaceResultPlayer>;
|
|
19
|
+
/** A racer in a history record. Suspended opponents are `hidden` (id 0, no name). */
|
|
20
|
+
type RaceRecordPlayer$1 = SchemaOutput<typeof RaceRecordPlayer>;
|
|
21
|
+
/** A page of the player's races, newest first (`GET /race/history`). */
|
|
22
|
+
type RaceHistory$1 = SchemaOutput<typeof RaceHistory>;
|
|
23
|
+
/** `POST /mp/invites`: the invite plus the inviter's own launch. */
|
|
24
|
+
type InviteCreated$1 = SchemaOutput<typeof InviteCreated>;
|
|
25
|
+
/** A live status line from another racer (`ev:race.status`); `at` is ms since the go on the server clock. */
|
|
26
|
+
type RaceStatusEvent = ServerEvents['race.status'];
|
|
27
|
+
/** A relayed game message (`ev:room.msg`). */
|
|
28
|
+
type RoomMessage = ServerEvents['room.msg'];
|
|
29
|
+
/** A shared-state change (`ev:room.state`); patches are shallow-merged unless `replace`. */
|
|
30
|
+
type RoomStateChange = ServerEvents['room.state'];
|
|
31
|
+
/** A moderated room chat line (`ev:room.chat`). */
|
|
32
|
+
type RoomChatLine = ServerEvents['room.chat'];
|
|
33
|
+
/**
|
|
34
|
+
* What a rejected realtime call throws. The runtime is another bundle, so its
|
|
35
|
+
* errors are re-created as the game's own `HubError` classes by the forwarders.
|
|
36
|
+
*/
|
|
37
|
+
interface RealtimeErrorShape extends Error {
|
|
38
|
+
/** HTTP status (REST), absent for transport and socket errors. */
|
|
39
|
+
status?: number;
|
|
40
|
+
/** The machine-readable code from the error body. */
|
|
41
|
+
code?: string;
|
|
42
|
+
/** Why content was rejected. */
|
|
43
|
+
reason?: string;
|
|
44
|
+
/** A player-facing hint. */
|
|
45
|
+
hint?: string;
|
|
46
|
+
/** How long to wait before retrying, when rate limited. */
|
|
47
|
+
retryAfterMs?: number;
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
export { RaceResultPlayer$1 as a, RoomChatLine as c, RoomStateChange as d, SchemaOutput as f, RaceRecordPlayer$1 as i, RoomMessage as l, Snapshot as m, Notice as n, RaceStatusEvent as o, ServerEvents as p, RaceHistory$1 as r, RealtimeErrorShape as s, InviteCreated$1 as t, RoomSeat$1 as u };
|
|
51
|
+
//# sourceMappingURL=wire-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire-types.d.ts","names":["RoomSeat","RoomSeatSchema","RaceResultPlayer","RaceResultPlayerSchema","RaceRecordPlayer","RaceRecordPlayerSchema","RaceHistory","RaceHistorySchema","InviteCreated","InviteCreatedSchema"],"sources":["../../src/realtime/wire-types.ts"],"mappings":";;;KAkBY,aAAa,UAAU;WAA0B;aAAiB,cAAc;;IAAa;;KAG7F,kBAAkB,qBAAqB,SAAS,kBAAkB,QAAQ;;KAG1E,WAAW,cAAc;;KAGzB,SAAS;;KAGTA,aAAW,oBAAoBC;;KAG/BC,qBAAmB,oBAAoBC;;KAGvCC,qBAAmB,oBAAoBC;;KAGvCC,gBAAc,oBAAoBC;;KAGlCC,kBAAgB,oBAAoBC;;KAGpC,kBAAkB;;KAGlB,cAAc;;KAGd,kBAAkB;;KAGlB,eAAe;;;;;UAMV,2BAA2B;;EAE1C;;EAEA;;EAEA;;EAEA;;EAEA"}
|
package/dist/social.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { a as RaceResultPlayer, c as RoomChatLine, d as RoomStateChange, f as SchemaOutput, i as RaceRecordPlayer, l as RoomMessage, m as Snapshot, n as Notice, o as RaceStatusEvent, p as ServerEvents, r as RaceHistory, s as RealtimeErrorShape, t as InviteCreated, u as RoomSeat } from "./shared/wire-types.js";
|
|
2
|
+
import { a as JoinInfoEvent, i as InviteResult, n as HubMpApi, r as InviteOptions, t as BusyOptions } from "./shared/multiplayer-types.js";
|
|
3
|
+
import { a as RoomEvents, c as RoomSendOptions, i as RoomCreateOptions, l as RoomState, n as HubRoomsApi, o as RoomListOptions, r as JoinOptions, s as RoomSelf, t as HubRoom, u as RoomStateOptions } from "./shared/room-types.js";
|
|
4
|
+
import { a as RaceHistoryQuery, c as RaceRuntimeApi, i as RaceEvents, l as RaceStart, n as RaceCreateOptions, o as RaceHistoryViewOptions, r as RaceDefinition, s as RaceHudPlace, t as HubRaceApi } from "./shared/race-types.js";
|
|
5
|
+
import { $ as HubNotifyApi, A as RacerState, B as SuggestionStatus, C as RaceRecord, D as RaceStats, E as RaceState, F as ReportReason, G as REALTIME_READY_EVENT, H as isRealtimeApi, I as RoomInfo, J as RealtimeHubLink, K as REALTIME_SINGLETON_API, L as SocialConfig, M as Relation, N as ReportInput, O as Racer, P as ReportKind, Q as socialForwarder, R as SocialMe, S as RaceParams, T as RaceStatValue, U as REALTIME_FAILED_EVENT, V as findRealtimeApi, W as REALTIME_FEATURE_VERSION, X as notifyForwarder, Y as linkRealtimeToHub, Z as presenceForwarder, _ as PlayerLite, a as ErrorBody, at as SocialEvents, b as PresenceKind, c as JoinInfo, d as Message, et as HubPresenceApi, f as MessagesPage, g as PlayerCard, h as Party, i as Counts, it as SocialCounts, j as RecentPlayer, k as RacerResult, l as Launch, m as NotifyPrefs, n as ChatMode, nt as OpenInviteOptions, o as FriendEntry, p as NotifyChange, q as RealtimeApi, r as Conversation, rt as PlayerRef, s as Invite, t as Audience, tt as HubSocialApi, u as LaunchTicket, v as Presence, w as RaceResult, x as RaceOutcome, y as PresenceInput, z as Suggestion } from "./shared/social.js";
|
|
6
|
+
export { type Audience, type BusyOptions, type ChatMode, type Conversation, type Counts, type ErrorBody, type FriendEntry, type HubMpApi, type HubNotifyApi, type HubPresenceApi, type HubRaceApi, type HubRoom, type HubRoomsApi, type HubSocialApi, type Invite, type InviteCreated, type InviteOptions, type InviteResult, type JoinInfo, type JoinInfoEvent, type JoinOptions, type Launch, type LaunchTicket, type Message, type MessagesPage, type Notice, type NotifyChange, type NotifyPrefs, type OpenInviteOptions, type Party, type PlayerCard, type PlayerLite, type PlayerRef, type Presence, type PresenceInput, type PresenceKind, REALTIME_FAILED_EVENT, REALTIME_FEATURE_VERSION, REALTIME_READY_EVENT, REALTIME_SINGLETON_API, type RaceCreateOptions, type RaceDefinition, type RaceEvents, type RaceHistory, type RaceHistoryQuery, type RaceHistoryViewOptions, type RaceHudPlace, type RaceOutcome, type RaceParams, type RaceRecord, type RaceRecordPlayer, type RaceResult, type RaceResultPlayer, type RaceRuntimeApi, type RaceStart, type RaceStatValue, type RaceState, type RaceStats, type RaceStatusEvent, type Racer, type RacerResult, type RacerState, type RealtimeApi, type RealtimeErrorShape, type RealtimeHubLink, type RecentPlayer, type Relation, type ReportInput, type ReportKind, type ReportReason, type RoomChatLine, type RoomCreateOptions, type RoomEvents, type RoomInfo, type RoomListOptions, type RoomMessage, type RoomSeat, type RoomSelf, type RoomSendOptions, type RoomState, type RoomStateChange, type RoomStateOptions, type SchemaOutput, type ServerEvents, type Snapshot, type SocialConfig, type SocialCounts, type SocialEvents, type SocialMe, type Suggestion, type SuggestionStatus, findRealtimeApi, isRealtimeApi, linkRealtimeToHub, notifyForwarder as notify, presenceForwarder as presence, socialForwarder as social };
|
package/dist/social.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { c as REALTIME_READY_EVENT, d as linkRealtimeToHub, i as isRealtimeApi, l as REALTIME_SINGLETON_API, o as REALTIME_FAILED_EVENT, r as findRealtimeApi, s as REALTIME_FEATURE_VERSION } from "./shared/bridge.js";
|
|
2
|
+
import { n as presenceForwarder, r as socialForwarder, t as notifyForwarder } from "./shared/social.js";
|
|
3
|
+
export { REALTIME_FAILED_EVENT, REALTIME_FEATURE_VERSION, REALTIME_READY_EVENT, REALTIME_SINGLETON_API, findRealtimeApi, isRealtimeApi, linkRealtimeToHub, notifyForwarder as notify, presenceForwarder as presence, socialForwarder as social };
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "@diffenderfer-games/hub-contract";
|
package/dist/types.js
ADDED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,89 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@diffenderfer-games/hub",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@diffenderfer-games/hub",
|
|
3
|
+
"version": "2.0.0-next.1",
|
|
4
|
+
"description": "The diffenderfer.games hub client for games: accounts, saves, stats, leaderboards, inventory, daily challenges, the input system and the social/multiplayer forwarders, typed from the hub contract.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"sideEffects": [
|
|
8
|
+
"./dist/auto.js",
|
|
9
|
+
"./src/auto.ts"
|
|
10
|
+
],
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/diffenderfer-games/diffenderfer-games.git",
|
|
14
|
+
"directory": "next/packages/public/hub"
|
|
15
|
+
},
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=20"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"src",
|
|
22
|
+
"README.md",
|
|
23
|
+
"CHANGELOG.md",
|
|
24
|
+
"LICENSE"
|
|
25
|
+
],
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"source": "./src/index.ts",
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"default": "./dist/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./input": {
|
|
33
|
+
"source": "./src/input.ts",
|
|
34
|
+
"types": "./dist/input.d.ts",
|
|
35
|
+
"default": "./dist/input.js"
|
|
36
|
+
},
|
|
37
|
+
"./daily": {
|
|
38
|
+
"source": "./src/daily.ts",
|
|
39
|
+
"types": "./dist/daily.d.ts",
|
|
40
|
+
"default": "./dist/daily.js"
|
|
41
|
+
},
|
|
42
|
+
"./race": {
|
|
43
|
+
"source": "./src/race.ts",
|
|
44
|
+
"types": "./dist/race.d.ts",
|
|
45
|
+
"default": "./dist/race.js"
|
|
46
|
+
},
|
|
47
|
+
"./social": {
|
|
48
|
+
"source": "./src/social.ts",
|
|
49
|
+
"types": "./dist/social.d.ts",
|
|
50
|
+
"default": "./dist/social.js"
|
|
51
|
+
},
|
|
52
|
+
"./mp": {
|
|
53
|
+
"source": "./src/mp.ts",
|
|
54
|
+
"types": "./dist/mp.d.ts",
|
|
55
|
+
"default": "./dist/mp.js"
|
|
56
|
+
},
|
|
57
|
+
"./rooms": {
|
|
58
|
+
"source": "./src/rooms.ts",
|
|
59
|
+
"types": "./dist/rooms.d.ts",
|
|
60
|
+
"default": "./dist/rooms.js"
|
|
61
|
+
},
|
|
62
|
+
"./types": {
|
|
63
|
+
"source": "./src/types.ts",
|
|
64
|
+
"types": "./dist/types.d.ts",
|
|
65
|
+
"default": "./dist/types.js"
|
|
66
|
+
},
|
|
67
|
+
"./auto": {
|
|
68
|
+
"source": "./src/auto.ts",
|
|
69
|
+
"types": "./dist/auto.d.ts",
|
|
70
|
+
"default": "./dist/auto.js"
|
|
71
|
+
},
|
|
72
|
+
"./package.json": "./package.json"
|
|
73
|
+
},
|
|
74
|
+
"types": "./dist/index.d.ts",
|
|
75
|
+
"bin": {
|
|
76
|
+
"hub-doctor": "dist/doctor/cli.mjs"
|
|
77
|
+
},
|
|
78
|
+
"scripts": {
|
|
79
|
+
"build": "tsx --conditions=source ../../../tools/hub-client/generate-cli.ts && tsdown",
|
|
80
|
+
"typecheck": "tsc -p tsconfig.json"
|
|
81
|
+
},
|
|
82
|
+
"dependencies": {
|
|
83
|
+
"@ayepi/core": "0.4.1",
|
|
84
|
+
"@diffenderfer-games/hub-contract": "2.0.0-next.1"
|
|
85
|
+
},
|
|
86
|
+
"publishConfig": {
|
|
87
|
+
"access": "public"
|
|
88
|
+
}
|
|
89
|
+
}
|
package/src/auto.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@diffenderfer-games/hub/auto`: everything the main entry exports, plus a
|
|
3
|
+
* side effect: it installs `window.HubSDK` (`{ hub, createHub, Hub, HubError,
|
|
4
|
+
* OfflineError, ContentRejectedError }`), exactly as the v1 `/_hub/hub.js`
|
|
5
|
+
* did. The host builds `/_hub/hub.js` from this entry, for games without a
|
|
6
|
+
* build step (`import('/_hub/hub.js')` or `window.HubSDK.hub`).
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
import { ContentRejectedError, createHub, Hub, hub, HubError, OfflineError } from './index';
|
|
11
|
+
|
|
12
|
+
export * from './index';
|
|
13
|
+
|
|
14
|
+
/** What `window.HubSDK` holds. */
|
|
15
|
+
export interface HubSdkGlobal {
|
|
16
|
+
/** The page's client. */
|
|
17
|
+
readonly hub: Hub;
|
|
18
|
+
/** Create another client. */
|
|
19
|
+
readonly createHub: typeof createHub;
|
|
20
|
+
/** The client class. */
|
|
21
|
+
readonly Hub: typeof Hub;
|
|
22
|
+
/** The base error class. */
|
|
23
|
+
readonly HubError: typeof HubError;
|
|
24
|
+
/** The offline error class. */
|
|
25
|
+
readonly OfflineError: typeof OfflineError;
|
|
26
|
+
/** The content-rejected error class. */
|
|
27
|
+
readonly ContentRejectedError: typeof ContentRejectedError;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
declare global {
|
|
31
|
+
interface Window {
|
|
32
|
+
/** The hub client for games without a build step (installed by `@diffenderfer-games/hub/auto`). */
|
|
33
|
+
HubSDK?: HubSdkGlobal;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (typeof window !== 'undefined') {
|
|
38
|
+
window.HubSDK = { hub, createHub, Hub, HubError, OfflineError, ContentRejectedError };
|
|
39
|
+
}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The machinery under every `Hub` call: reaching the REST API, falling back
|
|
3
|
+
* to the offline cache, queueing writes made offline and replaying them,
|
|
4
|
+
* buffering analytics, warming the cache for every game, and reporting
|
|
5
|
+
* online/offline/sync status (to `onStatus` listeners and as `hub:*` window
|
|
6
|
+
* events, which the injected menu listens for).
|
|
7
|
+
*/
|
|
8
|
+
import { HubError } from './errors';
|
|
9
|
+
import { LocalStore } from './offline/local-store';
|
|
10
|
+
import type { QueueOp, QueueOpInput } from './offline/queue';
|
|
11
|
+
import { absoluteApiBase, detectApiBase, detectSlug, emitWindowEvent, isBrowserPage } from './page';
|
|
12
|
+
import { createRestClient, type RestClient } from './rest/rest-client';
|
|
13
|
+
import type { HubOptions, HubStatus, SnapshotResponse } from './types';
|
|
14
|
+
|
|
15
|
+
/** How long `prefetchAll()` waits between snapshots unless forced. */
|
|
16
|
+
const PREFETCH_INTERVAL_MS = 30_000;
|
|
17
|
+
|
|
18
|
+
/** A queued write the hub refused during a sync: dropped, with the hub's message. */
|
|
19
|
+
export interface SyncConflict {
|
|
20
|
+
/** The refused op. */
|
|
21
|
+
readonly op: QueueOp;
|
|
22
|
+
/** The hub's message. */
|
|
23
|
+
readonly error?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** What one `sync()` did. */
|
|
27
|
+
export interface SyncResult {
|
|
28
|
+
/** Queued writes the hub accepted. */
|
|
29
|
+
readonly flushed: number;
|
|
30
|
+
/** Queued writes the hub refused (and that were dropped). */
|
|
31
|
+
readonly conflicts: SyncConflict[];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** Whether a failure means "the hub can't be reached" (rather than a refusal). */
|
|
35
|
+
// eslint-disable-next-line no-restricted-syntax -- trust boundary: whatever a call threw
|
|
36
|
+
function isTransportFailure(failure: unknown): boolean {
|
|
37
|
+
return failure instanceof HubError && failure.isOffline;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** The game slug's path field, or a {@link HubError} when the slug is unknown. */
|
|
41
|
+
export interface GameFields {
|
|
42
|
+
/** The game's slug. */
|
|
43
|
+
readonly slug: string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** The connection, offline cache and sync machinery shared by every `Hub` method. */
|
|
47
|
+
export class HubConnection {
|
|
48
|
+
/** This client's game slug (`null` when it could not be determined). */
|
|
49
|
+
readonly slug: string | null;
|
|
50
|
+
/** The absolute API base, e.g. `https://diffenderfer.games/_api`. */
|
|
51
|
+
readonly apiBase: string;
|
|
52
|
+
/** Typed REST calls to {@link apiBase}. */
|
|
53
|
+
protected readonly rest: RestClient;
|
|
54
|
+
/** This game's offline cache, queue and event buffer. */
|
|
55
|
+
protected readonly store: LocalStore;
|
|
56
|
+
private readonly offlineMode: NonNullable<HubOptions['offline']>;
|
|
57
|
+
private isReachable = true;
|
|
58
|
+
private isSyncing = false;
|
|
59
|
+
private lastPrefetchAt = 0;
|
|
60
|
+
private readonly statusListeners = new Set<(status: HubStatus) => void>();
|
|
61
|
+
|
|
62
|
+
/** A connection for `options` (slug and API base default to the page's). */
|
|
63
|
+
constructor(options: HubOptions = {}) {
|
|
64
|
+
this.slug = options.slug ?? detectSlug();
|
|
65
|
+
this.apiBase = options.apiBase === undefined ? detectApiBase() : absoluteApiBase(options.apiBase);
|
|
66
|
+
this.offlineMode = options.offline ?? 'auto';
|
|
67
|
+
this.rest = createRestClient({
|
|
68
|
+
apiBase: this.apiBase,
|
|
69
|
+
fetch: options.fetch ?? globalThis.fetch.bind(globalThis),
|
|
70
|
+
onReachable: () => {
|
|
71
|
+
this.setReachable(true);
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
this.store = new LocalStore(this.slug ?? 'app');
|
|
75
|
+
if (typeof navigator !== 'undefined' && 'onLine' in navigator) {
|
|
76
|
+
this.isReachable = navigator.onLine;
|
|
77
|
+
}
|
|
78
|
+
if (isBrowserPage()) {
|
|
79
|
+
window.addEventListener('online', () => {
|
|
80
|
+
this.setReachable(true);
|
|
81
|
+
});
|
|
82
|
+
window.addEventListener('offline', () => {
|
|
83
|
+
this.setReachable(false);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** `true` when calls are being served from the offline cache rather than the hub. */
|
|
89
|
+
get isOffline(): boolean {
|
|
90
|
+
return this.offlineMode === 'always' || (this.offlineMode === 'auto' && !this.isReachable);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/** `true` while the hub is reachable. */
|
|
94
|
+
get isOnline(): boolean {
|
|
95
|
+
return this.isReachable;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/** Queued writes plus buffered analytics events waiting to sync. */
|
|
99
|
+
pending(): number {
|
|
100
|
+
return this.store.queueLength() + this.store.getEvents().length;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** Subscribe to connection and sync status changes; returns the unsubscribe function. */
|
|
104
|
+
onStatus(listener: (status: HubStatus) => void): () => void {
|
|
105
|
+
this.statusListeners.add(listener);
|
|
106
|
+
return () => {
|
|
107
|
+
this.statusListeners.delete(listener);
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/** Tell `onStatus` listeners and the page (`hub:status`) the current status. */
|
|
112
|
+
protected notifyStatus(): void {
|
|
113
|
+
const status: HubStatus = { online: this.isReachable, offline: this.isOffline, pending: this.pending() };
|
|
114
|
+
for (const listener of this.statusListeners) {
|
|
115
|
+
try {
|
|
116
|
+
listener(status);
|
|
117
|
+
} catch {
|
|
118
|
+
// A listener's failure must not stop the others.
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
emitWindowEvent('hub:status', status);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/** Record reachability; coming back online syncs the queue and re-warms the cache. */
|
|
125
|
+
protected setReachable(isReachableNow: boolean): void {
|
|
126
|
+
if (isReachableNow === this.isReachable) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
this.isReachable = isReachableNow;
|
|
130
|
+
emitWindowEvent(isReachableNow ? 'hub:online' : 'hub:offline', { pending: this.pending() });
|
|
131
|
+
this.notifyStatus();
|
|
132
|
+
if (isReachableNow) {
|
|
133
|
+
void this.sync();
|
|
134
|
+
void this.prefetchAll().catch(() => undefined);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/** `{ slug }` for this game's endpoints; throws when the slug is unknown. */
|
|
139
|
+
protected gameFields(): GameFields {
|
|
140
|
+
if (this.slug === null) {
|
|
141
|
+
throw new HubError('Hub: could not determine the game slug.');
|
|
142
|
+
}
|
|
143
|
+
return { slug: this.slug };
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Run the network call, falling back to the offline answer when the hub
|
|
148
|
+
* can't be reached (per the offline mode). Real API errors (with an HTTP
|
|
149
|
+
* status) always reach the caller.
|
|
150
|
+
*/
|
|
151
|
+
protected async withFallback<Reply>(networkCall: () => Promise<Reply>, offlineAnswer: () => Reply): Promise<Reply> {
|
|
152
|
+
if (this.isOffline) {
|
|
153
|
+
return offlineAnswer();
|
|
154
|
+
}
|
|
155
|
+
try {
|
|
156
|
+
return await networkCall();
|
|
157
|
+
} catch (failure) {
|
|
158
|
+
if (!isTransportFailure(failure) || this.offlineMode === 'never') {
|
|
159
|
+
throw failure;
|
|
160
|
+
}
|
|
161
|
+
this.setReachable(false);
|
|
162
|
+
return offlineAnswer();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/** Send one queued write. */
|
|
167
|
+
private async sendOp(op: QueueOpInput): Promise<void> {
|
|
168
|
+
const game = this.gameFields();
|
|
169
|
+
switch (op.kind) {
|
|
170
|
+
case 'putSave':
|
|
171
|
+
await this.rest.call('writeSave', { ...game, slot: op.slot, data: op.data, label: op.label });
|
|
172
|
+
return;
|
|
173
|
+
case 'deleteSave':
|
|
174
|
+
await this.rest.call('deleteSave', { ...game, slot: op.slot });
|
|
175
|
+
return;
|
|
176
|
+
case 'setStat':
|
|
177
|
+
await this.rest.call('updateGameStat', { ...game, key: op.key, value: op.value, mode: 'set' });
|
|
178
|
+
return;
|
|
179
|
+
case 'maxStat':
|
|
180
|
+
await this.rest.call('updateGameStat', { ...game, key: op.key, value: op.value, mode: 'max' });
|
|
181
|
+
return;
|
|
182
|
+
case 'incrStat':
|
|
183
|
+
await this.rest.call('updateGameStat', { ...game, key: op.key, value: op.amount, mode: 'incr' });
|
|
184
|
+
return;
|
|
185
|
+
case 'submitScore':
|
|
186
|
+
await this.rest.call('submitScore', { ...game, key: op.key, score: op.score, ...op.opts });
|
|
187
|
+
return;
|
|
188
|
+
case 'setProfile':
|
|
189
|
+
await this.rest.call('setGameProfile', { ...game, ...op.patch });
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Apply a write to the offline cache at once, then send it now (online
|
|
196
|
+
* with an empty queue) or queue it behind the others. Resolves with the
|
|
197
|
+
* local answer; a real API error on the direct path reaches the caller and
|
|
198
|
+
* is not queued.
|
|
199
|
+
*/
|
|
200
|
+
protected async mutateQueued<Reply>(input: QueueOpInput, localAnswer: () => Reply): Promise<Reply> {
|
|
201
|
+
const answer = localAnswer();
|
|
202
|
+
if (this.isOffline || this.store.queueLength() > 0) {
|
|
203
|
+
this.store.enqueue(input);
|
|
204
|
+
this.notifyStatus();
|
|
205
|
+
if (!this.isOffline) {
|
|
206
|
+
void this.sync();
|
|
207
|
+
}
|
|
208
|
+
return answer;
|
|
209
|
+
}
|
|
210
|
+
try {
|
|
211
|
+
await this.sendOp(input);
|
|
212
|
+
return answer;
|
|
213
|
+
} catch (failure) {
|
|
214
|
+
if (!isTransportFailure(failure)) {
|
|
215
|
+
throw failure;
|
|
216
|
+
}
|
|
217
|
+
this.setReachable(false);
|
|
218
|
+
this.store.enqueue(input);
|
|
219
|
+
this.notifyStatus();
|
|
220
|
+
return answer;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Replay the queue, then the buffered events, in order. Stops at the first
|
|
226
|
+
* transport failure (offline again: the rest stays queued); a write the hub
|
|
227
|
+
* refuses is dropped and reported as a conflict.
|
|
228
|
+
*/
|
|
229
|
+
async sync(): Promise<SyncResult> {
|
|
230
|
+
if (this.isSyncing || this.isOffline || this.slug === null) {
|
|
231
|
+
return { flushed: 0, conflicts: [] };
|
|
232
|
+
}
|
|
233
|
+
this.isSyncing = true;
|
|
234
|
+
let flushed = 0;
|
|
235
|
+
const conflicts: SyncConflict[] = [];
|
|
236
|
+
try {
|
|
237
|
+
let queue = this.store.getQueue();
|
|
238
|
+
for (let op = queue[0]; op !== undefined; op = queue[0]) {
|
|
239
|
+
try {
|
|
240
|
+
await this.sendOp(op);
|
|
241
|
+
flushed += 1;
|
|
242
|
+
} catch (failure) {
|
|
243
|
+
if (isTransportFailure(failure)) {
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
conflicts.push({ op, error: failure instanceof Error ? failure.message : String(failure) });
|
|
247
|
+
}
|
|
248
|
+
queue = queue.slice(1);
|
|
249
|
+
this.store.setQueue(queue);
|
|
250
|
+
}
|
|
251
|
+
await this.flushEvents();
|
|
252
|
+
} finally {
|
|
253
|
+
this.isSyncing = false;
|
|
254
|
+
}
|
|
255
|
+
emitWindowEvent('hub:sync', { pending: this.pending(), flushed, conflicts });
|
|
256
|
+
this.notifyStatus();
|
|
257
|
+
return { flushed, conflicts };
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/** Send the buffered analytics events; a refused one is dropped (telemetry never blocks). */
|
|
261
|
+
private async flushEvents(): Promise<void> {
|
|
262
|
+
let events = this.store.getEvents();
|
|
263
|
+
for (let event = events[0]; event !== undefined; event = events[0]) {
|
|
264
|
+
try {
|
|
265
|
+
await this.rest.call('recordGameEvent', { ...this.gameFields(), type: event.type });
|
|
266
|
+
} catch (failure) {
|
|
267
|
+
if (isTransportFailure(failure)) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
events = events.slice(1);
|
|
272
|
+
this.store.setEvents(events);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Warm the offline cache for every game the player has touched, in one
|
|
278
|
+
* request, so going offline later still shows complete progress.
|
|
279
|
+
* Throttled to once per 30 s unless `isForced`; `null` when offline or throttled.
|
|
280
|
+
*/
|
|
281
|
+
async prefetchAll(isForced = false): Promise<SnapshotResponse | null> {
|
|
282
|
+
if (this.isOffline || (!isForced && Date.now() - this.lastPrefetchAt < PREFETCH_INTERVAL_MS)) {
|
|
283
|
+
return null;
|
|
284
|
+
}
|
|
285
|
+
let snapshot: SnapshotResponse;
|
|
286
|
+
try {
|
|
287
|
+
snapshot = await this.rest.call('getMyOfflineSnapshot');
|
|
288
|
+
} catch (failure) {
|
|
289
|
+
if (isTransportFailure(failure)) {
|
|
290
|
+
return null;
|
|
291
|
+
}
|
|
292
|
+
throw failure;
|
|
293
|
+
}
|
|
294
|
+
this.lastPrefetchAt = Date.now();
|
|
295
|
+
this.store.hydrate(snapshot);
|
|
296
|
+
emitWindowEvent('hub:prefetch', { games: Object.keys(snapshot.games).length });
|
|
297
|
+
return snapshot;
|
|
298
|
+
}
|
|
299
|
+
}
|