castle-web-sdk 0.4.47 → 0.4.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +197 -0
- package/dist/castle.d.ts +7 -3
- package/dist/castle.js +2 -0
- package/dist/commands.d.ts +128 -1
- package/dist/commands.js +3 -0
- package/dist/display.d.ts +3 -0
- package/dist/display.js +9 -3
- package/dist/hub.d.ts +14 -2
- package/dist/hub.js +34 -0
- package/dist/multiplayer.d.ts +7 -1
- package/dist/multiplayer.js +63 -2
- package/dist/multiplayerProtocol.d.ts +2 -0
- package/dist/party.d.ts +23 -0
- package/dist/party.js +91 -0
- package/dist/save.d.ts +26 -1
- package/dist/save.js +52 -6
- package/dist/server/hub.d.ts +24 -1
- package/dist/server/hub.js +35 -3
- package/dist/server/platformHandle.d.ts +9 -1
- package/dist/server/storage.d.ts +2 -0
- package/dist/server/storage.js +11 -3
- package/dist/server/wrapper.d.ts +7 -1
- package/dist/server/wrapper.js +10 -1
- package/dist/social.d.ts +9 -0
- package/dist/social.js +5 -0
- package/package.json +1 -1
package/dist/server/wrapper.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type { MultiplayerSessionMode, PlatformHandle, PlatformSessionConfig, Pla
|
|
|
7
7
|
export { createSaveCoordinator } from "../saveCoordinator";
|
|
8
8
|
export type { CoordinatedChange, CoordinatedSave, SaveCoordinator, SaveStatus, } from "../saveCoordinator";
|
|
9
9
|
export { SaveError } from "../save";
|
|
10
|
-
export type { SaveApi, SaveBucketApi, SaveBucketRead, SaveChange, SaveCheck, SaveClaimed, SaveClaimInput, SaveErrorEnvelope, SaveInitial, SaveInitializeInput, SaveOpened, SaveOperation, SaveReadTarget, SaveReceipt, SaveRevision, SaveRows, SaveScope, SaveSelection, SaveSnapshot, SaveTarget, SaveTransactionInput, SaveWriter, } from "../save";
|
|
10
|
+
export type { SaveApi, SaveBucketApi, SaveBucketRead, SaveChange, SaveCheck, SaveConditionalCheck, SaveConditionalWriteInput, SaveClaimed, SaveClaimInput, SaveErrorEnvelope, SaveInitial, SaveInitializeInput, SaveOpened, SaveOperation, SaveReadTarget, SaveReceipt, SaveRecentOperationsInput, SaveRecentOperationsPage, SaveRevision, SaveRows, SaveScope, SaveSelection, SaveSnapshot, SaveTarget, SaveTransactionInput, SaveWriter, } from "../save";
|
|
11
11
|
export type { MultiplayerHubArrival, MultiplayerHubBoard, MultiplayerHubOutcome, MultiplayerHubPadUpdateInput, MultiplayerHubPadUpdateResult, MultiplayerHubPlayerResults, MultiplayerHubRecord, MultiplayerHubReportReceipt, MultiplayerHubResultInput, MultiplayerHubResultRow, MultiplayerHubResultShape, MultiplayerHubResultsRead, MultiplayerHubResultsReadInput, MultiplayerHubWearable, MultiplayerHubWearReceipt, MultiplayerHubEarnedClass, MultiplayerHubEarnedItem, MultiplayerHubHomeClass, MultiplayerHubHomeItem, MultiplayerHubUnlockReceipt, MultiplayerHubUnlocksRead, MultiplayerHubWearEarnedReceipt, MultiplayerServerHub, } from "./hub";
|
|
12
12
|
export type { CharacterActionNotice, CharacterGameStateOperation, CharacterGameStateResult, CharacterKnowledgeDeliveryOperation, CharacterKnowledgeDeliveryResult, CharacterKnowledgeSource, CompleteCharacterBeatInput, DeliverCharacterKnowledgeInput, RecordCharacterEventInput, SetCharacterGameStateInput, ShareCharacterClaimInput, ServerStorage, ServerStorageBoard, ServerStorageBoardScore, ServerStorageListEntry, ServerStorageListOptions, ServerStorageListPage, ServerPlaythrough, ServerPlaythroughCharacters, ServerCharacterHistoryOptions, ServerStorageScope, ServerTownStorage, } from "./storage";
|
|
13
13
|
export interface MultiplayerServerPlayer extends PlayerIdentity {
|
|
@@ -288,6 +288,12 @@ export interface MultiplayerWorldCharacterTurn {
|
|
|
288
288
|
export type MultiplayerPlaceTool = PlatformPlaceTool;
|
|
289
289
|
export interface MultiplayerWorldCharacterSendOptions {
|
|
290
290
|
tools?: readonly MultiplayerPlaceTool[];
|
|
291
|
+
/** Private host-brokered transcript metadata, not player-selected. */
|
|
292
|
+
hubTextArchive?: {
|
|
293
|
+
npcId: string;
|
|
294
|
+
conversationId?: string;
|
|
295
|
+
input: string;
|
|
296
|
+
};
|
|
291
297
|
}
|
|
292
298
|
/** One place-tool use by a character during a turn this place admitted. */
|
|
293
299
|
export interface MultiplayerWorldCharacterToolRequest {
|
package/dist/server/wrapper.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CastleError } from "../errors";
|
|
1
2
|
import { isBinaryPayload, toUint8Array, } from "../multiplayerProtocol";
|
|
2
3
|
import { encodeStorageValue, storageError } from "../storageJson";
|
|
3
4
|
import { createServerStorage } from "./storage";
|
|
@@ -1193,6 +1194,11 @@ function assertPlatformWorldCharacterRead(value) {
|
|
|
1193
1194
|
// carrying anything beyond the grant); otherwise this is exactly the tool-less send.
|
|
1194
1195
|
function sendWorldCharacterTurn(platformHandle, grantId, options) {
|
|
1195
1196
|
const tools = options?.tools;
|
|
1197
|
+
if (options?.hubTextArchive !== undefined) {
|
|
1198
|
+
if (platformHandle.hubTextArchiveEnabled !== true)
|
|
1199
|
+
return Promise.reject(new CastleError({ code: 'CAULDRON_HUB_UNAVAILABLE', message: 'This host cannot archive NPC transcripts.', operation: 'worldCharacter.send' }));
|
|
1200
|
+
return platformHandle.worldCharacterSend(grantId, Array.isArray(tools) && typeof platformHandle.worldCharacterToolResult === "function" ? tools : undefined, options.hubTextArchive);
|
|
1201
|
+
}
|
|
1196
1202
|
return Array.isArray(tools) && tools.length > 0 &&
|
|
1197
1203
|
typeof platformHandle.worldCharacterToolResult === "function"
|
|
1198
1204
|
? platformHandle.worldCharacterSend(grantId, tools)
|
|
@@ -1419,10 +1425,11 @@ function joinedPlayer(connId, identity) {
|
|
|
1419
1425
|
delete player.hiddenUserIds;
|
|
1420
1426
|
// A/B arms arrive beside the player; one a host put on it stays off it too.
|
|
1421
1427
|
delete player.experimentVariants;
|
|
1428
|
+
Object.defineProperty(player, "under13", { value: identity.under13 === true, enumerable: false });
|
|
1422
1429
|
return player;
|
|
1423
1430
|
}
|
|
1424
1431
|
const legacy = connId;
|
|
1425
|
-
|
|
1432
|
+
const player = {
|
|
1426
1433
|
playerId: legacy.playerId,
|
|
1427
1434
|
userId: legacy.userId,
|
|
1428
1435
|
username: legacy.username,
|
|
@@ -1430,6 +1437,8 @@ function joinedPlayer(connId, identity) {
|
|
|
1430
1437
|
participantId: legacy.scopedUserId ?? legacy.userId,
|
|
1431
1438
|
...(legacy.scopedUserId ? { scopedUserId: legacy.scopedUserId } : {}),
|
|
1432
1439
|
};
|
|
1440
|
+
Object.defineProperty(player, "under13", { value: legacy.under13 === true, enumerable: false });
|
|
1441
|
+
return player;
|
|
1433
1442
|
}
|
|
1434
1443
|
function parseHandleMessage(text) {
|
|
1435
1444
|
if (typeof text !== "string")
|
package/dist/social.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SocialFriend, SocialPresence } from './commands';
|
|
2
|
+
export type { SocialFriend, SocialPresence } from './commands';
|
|
3
|
+
export interface CastleSocialApi {
|
|
4
|
+
/** The signed-in player's mutual Castle follows, at most 20. */
|
|
5
|
+
friends(): Promise<SocialFriend[]>;
|
|
6
|
+
/** Mutual friends playing this deck now. Poll to refresh; v1 has no event. */
|
|
7
|
+
presence(): Promise<SocialPresence[]>;
|
|
8
|
+
}
|
|
9
|
+
export declare const Social: CastleSocialApi;
|
package/dist/social.js
ADDED