@playcademy/sdk 0.2.6 → 0.2.8
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.js +3 -0
- package/dist/internal.d.ts +41 -1
- package/dist/internal.js +38 -0
- package/dist/types.d.ts +31 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1829,6 +1829,9 @@ function prepareRequestBody(body, headers) {
|
|
|
1829
1829
|
return body;
|
|
1830
1830
|
}
|
|
1831
1831
|
if (body !== undefined && body !== null) {
|
|
1832
|
+
if (headers["Content-Type"]) {
|
|
1833
|
+
return typeof body === "string" ? body : JSON.stringify(body);
|
|
1834
|
+
}
|
|
1832
1835
|
headers["Content-Type"] = "application/json";
|
|
1833
1836
|
return JSON.stringify(body);
|
|
1834
1837
|
}
|
package/dist/internal.d.ts
CHANGED
|
@@ -6328,6 +6328,36 @@ interface BucketFile {
|
|
|
6328
6328
|
uploaded: string;
|
|
6329
6329
|
contentType?: string;
|
|
6330
6330
|
}
|
|
6331
|
+
/**
|
|
6332
|
+
* KV key entry
|
|
6333
|
+
*/
|
|
6334
|
+
interface KVKeyEntry {
|
|
6335
|
+
name: string;
|
|
6336
|
+
expiration?: number;
|
|
6337
|
+
metadata?: Record<string, unknown>;
|
|
6338
|
+
}
|
|
6339
|
+
/**
|
|
6340
|
+
* KV key metadata
|
|
6341
|
+
*/
|
|
6342
|
+
interface KVKeyMetadata {
|
|
6343
|
+
metadata?: Record<string, unknown>;
|
|
6344
|
+
}
|
|
6345
|
+
/**
|
|
6346
|
+
* KV statistics
|
|
6347
|
+
*/
|
|
6348
|
+
interface KVStatsResponse {
|
|
6349
|
+
totalKeys: number;
|
|
6350
|
+
prefixes: Record<string, number>;
|
|
6351
|
+
}
|
|
6352
|
+
/**
|
|
6353
|
+
* KV seed entry for bulk operations
|
|
6354
|
+
*/
|
|
6355
|
+
interface KVSeedEntry {
|
|
6356
|
+
key: string;
|
|
6357
|
+
value: string;
|
|
6358
|
+
expiration_ttl?: number;
|
|
6359
|
+
metadata?: Record<string, unknown>;
|
|
6360
|
+
}
|
|
6331
6361
|
type DevUploadEvent = {
|
|
6332
6362
|
type: 'init';
|
|
6333
6363
|
} | {
|
|
@@ -7029,6 +7059,16 @@ declare class PlaycademyInternalClient extends PlaycademyBaseClient {
|
|
|
7029
7059
|
put: (slug: string, key: string, content: ArrayBuffer | Blob | Uint8Array<ArrayBufferLike>, contentType?: string | undefined) => Promise<void>;
|
|
7030
7060
|
delete: (slug: string, key: string) => Promise<void>;
|
|
7031
7061
|
};
|
|
7062
|
+
kv: {
|
|
7063
|
+
list: (slug: string, prefix?: string | undefined) => Promise<KVKeyEntry[]>;
|
|
7064
|
+
get: (slug: string, key: string) => Promise<string | null>;
|
|
7065
|
+
set: (slug: string, key: string, value: string) => Promise<void>;
|
|
7066
|
+
delete: (slug: string, key: string) => Promise<void>;
|
|
7067
|
+
inspect: (slug: string, key: string) => Promise<KVKeyMetadata | null>;
|
|
7068
|
+
stats: (slug: string) => Promise<KVStatsResponse>;
|
|
7069
|
+
seed: (slug: string, entries: KVSeedEntry[]) => Promise<number>;
|
|
7070
|
+
clear: (slug: string) => Promise<number>;
|
|
7071
|
+
};
|
|
7032
7072
|
domains: {
|
|
7033
7073
|
add: (slug: string, hostname: string) => Promise<GameCustomHostname>;
|
|
7034
7074
|
list: (slug: string) => Promise<GameCustomHostname[]>;
|
|
@@ -7576,4 +7616,4 @@ declare class PlaycademyInternalClient extends PlaycademyBaseClient {
|
|
|
7576
7616
|
}
|
|
7577
7617
|
|
|
7578
7618
|
export { AchievementCompletionType, ApiError, ConnectionManager, ConnectionMonitor, MessageEvents, NotificationStatus, NotificationType, PlaycademyInternalClient as PlaycademyClient, PlaycademyError, PlaycademyInternalClient, extractApiErrorInfo, messaging };
|
|
7579
|
-
export type { AchievementCurrent, AchievementHistoryEntry, AchievementProgressResponse, AchievementScopeType, AchievementWithStatus, ApiErrorCode, ApiErrorInfo, AuthCallbackPayload, AuthOptions, AuthProviderType, AuthResult, AuthServerMessage, AuthStateChangePayload, AuthStateUpdate, AuthenticatedUser, BetterAuthApiKey, BetterAuthApiKeyResponse, BetterAuthSignInResponse, BucketFile, CharacterComponentRow as CharacterComponent, CharacterComponentType, CharacterComponentWithSpriteUrl, CharacterComponentsOptions, ClientConfig, ClientEvents, ConnectionMonitorConfig, ConnectionState, ConnectionStatePayload, CreateCharacterData, CreateMapObjectData, CurrencyRow as Currency, DevUploadEvent, DevUploadHooks, DeveloperStatusEnumType, DeveloperStatusResponse, DeveloperStatusValue, DisconnectContext, DisconnectHandler, DisplayAlertPayload, ErrorResponseBody, EventListeners, ExternalGame, FetchedGame, Game, GameContextPayload, GameCustomHostname, GameInitUser, GameLeaderboardEntry, MapRow as GameMap, GamePlatform, GameRow as GameRecord, GameSessionRow as GameSession, GameTimebackIntegration, GameTokenResponse, GameType, GameUser, HostedGame, InitPayload, InsertCurrencyInput, InsertItemInput, InsertShopListingInput, InteractionType, InventoryItemRow as InventoryItem, InventoryItemWithItem, InventoryMutationResponse, ItemRow as Item, ItemType, KeyEventPayload, LeaderboardEntry, LeaderboardOptions, LeaderboardTimeframe, LevelConfigRow as LevelConfig, LevelProgressResponse, LevelUpCheckResult, LoginResponse, ManifestV1, MapData, MapElementRow as MapElement, MapElementMetadata, MapElementWithGame, MapObjectRow as MapObject, MapObjectWithItem, NotificationRow as Notification, NotificationStats, PlaceableItemMetadata, PlatformTimebackUser, PlatformTimebackUserContext, PlaycademyServerClientConfig, PlaycademyServerClientState, PlayerCharacterRow as PlayerCharacter, PlayerCharacterAccessoryRow as PlayerCharacterAccessory, PlayerCurrency, PlayerInventoryItem, PlayerProfile, PlayerSessionPayload, PopulateStudentResponse, RealtimeTokenResponse, ScoreSubmission, ShopCurrency, ShopDisplayItem, ShopListingRow as ShopListing, ShopViewResponse, SpriteAnimationFrame, SpriteConfigWithDimensions, SpriteTemplateRow as SpriteTemplate, SpriteTemplateData, StartSessionResponse, TelemetryPayload, TimebackEnrollment, TimebackInitContext, TimebackOrganization, TimebackUser, TimebackUserContext, TodayXpResponse, TokenRefreshPayload, TokenType, TotalXpResponse, UpdateCharacterData, UpdateCurrencyInput, UpdateItemInput, UpdateShopListingInput, UpsertGameMetadataInput, UserRow as User, UserEnrollment, UserInfo, UserLevelRow as UserLevel, UserLevelWithConfig, UserOrganization, UserRank, UserRankResponse, UserRoleEnumType, UserScore, UserTimebackData, XPAddResult, XpHistoryResponse, XpSummaryResponse };
|
|
7619
|
+
export type { AchievementCurrent, AchievementHistoryEntry, AchievementProgressResponse, AchievementScopeType, AchievementWithStatus, ApiErrorCode, ApiErrorInfo, AuthCallbackPayload, AuthOptions, AuthProviderType, AuthResult, AuthServerMessage, AuthStateChangePayload, AuthStateUpdate, AuthenticatedUser, BetterAuthApiKey, BetterAuthApiKeyResponse, BetterAuthSignInResponse, BucketFile, CharacterComponentRow as CharacterComponent, CharacterComponentType, CharacterComponentWithSpriteUrl, CharacterComponentsOptions, ClientConfig, ClientEvents, ConnectionMonitorConfig, ConnectionState, ConnectionStatePayload, CreateCharacterData, CreateMapObjectData, CurrencyRow as Currency, DevUploadEvent, DevUploadHooks, DeveloperStatusEnumType, DeveloperStatusResponse, DeveloperStatusValue, DisconnectContext, DisconnectHandler, DisplayAlertPayload, ErrorResponseBody, EventListeners, ExternalGame, FetchedGame, Game, GameContextPayload, GameCustomHostname, GameInitUser, GameLeaderboardEntry, MapRow as GameMap, GamePlatform, GameRow as GameRecord, GameSessionRow as GameSession, GameTimebackIntegration, GameTokenResponse, GameType, GameUser, HostedGame, InitPayload, InsertCurrencyInput, InsertItemInput, InsertShopListingInput, InteractionType, InventoryItemRow as InventoryItem, InventoryItemWithItem, InventoryMutationResponse, ItemRow as Item, ItemType, KVKeyEntry, KVKeyMetadata, KVSeedEntry, KVStatsResponse, KeyEventPayload, LeaderboardEntry, LeaderboardOptions, LeaderboardTimeframe, LevelConfigRow as LevelConfig, LevelProgressResponse, LevelUpCheckResult, LoginResponse, ManifestV1, MapData, MapElementRow as MapElement, MapElementMetadata, MapElementWithGame, MapObjectRow as MapObject, MapObjectWithItem, NotificationRow as Notification, NotificationStats, PlaceableItemMetadata, PlatformTimebackUser, PlatformTimebackUserContext, PlaycademyServerClientConfig, PlaycademyServerClientState, PlayerCharacterRow as PlayerCharacter, PlayerCharacterAccessoryRow as PlayerCharacterAccessory, PlayerCurrency, PlayerInventoryItem, PlayerProfile, PlayerSessionPayload, PopulateStudentResponse, RealtimeTokenResponse, ScoreSubmission, ShopCurrency, ShopDisplayItem, ShopListingRow as ShopListing, ShopViewResponse, SpriteAnimationFrame, SpriteConfigWithDimensions, SpriteTemplateRow as SpriteTemplate, SpriteTemplateData, StartSessionResponse, TelemetryPayload, TimebackEnrollment, TimebackInitContext, TimebackOrganization, TimebackUser, TimebackUserContext, TodayXpResponse, TokenRefreshPayload, TokenType, TotalXpResponse, UpdateCharacterData, UpdateCurrencyInput, UpdateItemInput, UpdateShopListingInput, UpsertGameMetadataInput, UserRow as User, UserEnrollment, UserInfo, UserLevelRow as UserLevel, UserLevelWithConfig, UserOrganization, UserRank, UserRankResponse, UserRoleEnumType, UserScore, UserTimebackData, XPAddResult, XpHistoryResponse, XpSummaryResponse };
|
package/dist/internal.js
CHANGED
|
@@ -1823,6 +1823,41 @@ function createDevNamespace(client) {
|
|
|
1823
1823
|
await client["request"](`/games/${slug}/bucket/${encodeURIComponent(key)}`, "DELETE");
|
|
1824
1824
|
}
|
|
1825
1825
|
},
|
|
1826
|
+
kv: {
|
|
1827
|
+
list: async (slug, prefix) => {
|
|
1828
|
+
const params = prefix ? `?prefix=${encodeURIComponent(prefix)}` : "";
|
|
1829
|
+
const result = await client["request"](`/games/${slug}/kv${params}`, "GET");
|
|
1830
|
+
return result.keys;
|
|
1831
|
+
},
|
|
1832
|
+
get: async (slug, key) => {
|
|
1833
|
+
const result = await client["request"](`/games/${slug}/kv/${encodeURIComponent(key)}`, "GET");
|
|
1834
|
+
return result.value;
|
|
1835
|
+
},
|
|
1836
|
+
set: async (slug, key, value) => {
|
|
1837
|
+
await client["request"](`/games/${slug}/kv/${encodeURIComponent(key)}`, "PUT", {
|
|
1838
|
+
body: value,
|
|
1839
|
+
headers: { "Content-Type": "text/plain" }
|
|
1840
|
+
});
|
|
1841
|
+
},
|
|
1842
|
+
delete: async (slug, key) => {
|
|
1843
|
+
await client["request"](`/games/${slug}/kv/${encodeURIComponent(key)}`, "DELETE");
|
|
1844
|
+
},
|
|
1845
|
+
inspect: async (slug, key) => {
|
|
1846
|
+
const result = await client["request"](`/games/${slug}/kv/${encodeURIComponent(key)}/metadata`, "GET");
|
|
1847
|
+
return result.metadata;
|
|
1848
|
+
},
|
|
1849
|
+
stats: async (slug) => {
|
|
1850
|
+
return client["request"](`/games/${slug}/kv/stats`, "GET");
|
|
1851
|
+
},
|
|
1852
|
+
seed: async (slug, entries) => {
|
|
1853
|
+
const result = await client["request"](`/games/${slug}/kv/bulk`, "PUT", { body: { entries } });
|
|
1854
|
+
return result.count;
|
|
1855
|
+
},
|
|
1856
|
+
clear: async (slug) => {
|
|
1857
|
+
const result = await client["request"](`/games/${slug}/kv`, "DELETE");
|
|
1858
|
+
return result.deleted;
|
|
1859
|
+
}
|
|
1860
|
+
},
|
|
1826
1861
|
domains: {
|
|
1827
1862
|
add: async (slug, hostname) => {
|
|
1828
1863
|
return client["request"](`/games/${slug}/domains`, "POST", {
|
|
@@ -1918,6 +1953,9 @@ function prepareRequestBody(body, headers) {
|
|
|
1918
1953
|
return body;
|
|
1919
1954
|
}
|
|
1920
1955
|
if (body !== undefined && body !== null) {
|
|
1956
|
+
if (headers["Content-Type"]) {
|
|
1957
|
+
return typeof body === "string" ? body : JSON.stringify(body);
|
|
1958
|
+
}
|
|
1921
1959
|
headers["Content-Type"] = "application/json";
|
|
1922
1960
|
return JSON.stringify(body);
|
|
1923
1961
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -5438,6 +5438,36 @@ interface BucketFile {
|
|
|
5438
5438
|
uploaded: string;
|
|
5439
5439
|
contentType?: string;
|
|
5440
5440
|
}
|
|
5441
|
+
/**
|
|
5442
|
+
* KV key entry
|
|
5443
|
+
*/
|
|
5444
|
+
interface KVKeyEntry {
|
|
5445
|
+
name: string;
|
|
5446
|
+
expiration?: number;
|
|
5447
|
+
metadata?: Record<string, unknown>;
|
|
5448
|
+
}
|
|
5449
|
+
/**
|
|
5450
|
+
* KV key metadata
|
|
5451
|
+
*/
|
|
5452
|
+
interface KVKeyMetadata {
|
|
5453
|
+
metadata?: Record<string, unknown>;
|
|
5454
|
+
}
|
|
5455
|
+
/**
|
|
5456
|
+
* KV statistics
|
|
5457
|
+
*/
|
|
5458
|
+
interface KVStatsResponse {
|
|
5459
|
+
totalKeys: number;
|
|
5460
|
+
prefixes: Record<string, number>;
|
|
5461
|
+
}
|
|
5462
|
+
/**
|
|
5463
|
+
* KV seed entry for bulk operations
|
|
5464
|
+
*/
|
|
5465
|
+
interface KVSeedEntry {
|
|
5466
|
+
key: string;
|
|
5467
|
+
value: string;
|
|
5468
|
+
expiration_ttl?: number;
|
|
5469
|
+
metadata?: Record<string, unknown>;
|
|
5470
|
+
}
|
|
5441
5471
|
type DevUploadEvent = {
|
|
5442
5472
|
type: 'init';
|
|
5443
5473
|
} | {
|
|
@@ -5686,4 +5716,4 @@ interface PlaycademyServerClientState {
|
|
|
5686
5716
|
}
|
|
5687
5717
|
|
|
5688
5718
|
export { AchievementCompletionType, NotificationStatus, NotificationType, PlaycademyClient };
|
|
5689
|
-
export type { AchievementCurrent, AchievementHistoryEntry, AchievementProgressResponse, AchievementScopeType, AchievementWithStatus, AuthCallbackPayload, AuthOptions, AuthProviderType, AuthResult, AuthServerMessage, AuthStateChangePayload, AuthStateUpdate, AuthenticatedUser, BetterAuthApiKey, BetterAuthApiKeyResponse, BetterAuthSignInResponse, BucketFile, CharacterComponentRow as CharacterComponent, CharacterComponentType, CharacterComponentWithSpriteUrl, CharacterComponentsOptions, ClientConfig, ClientEvents, ConnectionStatePayload, CreateCharacterData, CreateMapObjectData, CurrencyRow as Currency, DevUploadEvent, DevUploadHooks, DeveloperStatusEnumType, DeveloperStatusResponse, DeveloperStatusValue, DisconnectContext, DisconnectHandler, DisplayAlertPayload, EventListeners, ExternalGame, FetchedGame, Game, GameContextPayload, GameCustomHostname, GameInitUser, GameLeaderboardEntry, MapRow as GameMap, GamePlatform, GameRow as GameRecord, GameSessionRow as GameSession, GameTimebackIntegration, GameTokenResponse, GameType, GameUser, HostedGame, InitPayload, InsertCurrencyInput, InsertItemInput, InsertShopListingInput, InteractionType, InventoryItemRow as InventoryItem, InventoryItemWithItem, InventoryMutationResponse, ItemRow as Item, ItemType, KeyEventPayload, LeaderboardEntry, LeaderboardOptions, LeaderboardTimeframe, LevelConfigRow as LevelConfig, LevelProgressResponse, LevelUpCheckResult, LoginResponse, ManifestV1, MapData, MapElementRow as MapElement, MapElementMetadata, MapElementWithGame, MapObjectRow as MapObject, MapObjectWithItem, NotificationRow as Notification, NotificationStats, PlaceableItemMetadata, PlatformTimebackUser, PlatformTimebackUserContext, PlaycademyServerClientConfig, PlaycademyServerClientState, PlayerCharacterRow as PlayerCharacter, PlayerCharacterAccessoryRow as PlayerCharacterAccessory, PlayerCurrency, PlayerInventoryItem, PlayerProfile, PlayerSessionPayload, PopulateStudentResponse, RealtimeTokenResponse, ScoreSubmission, ShopCurrency, ShopDisplayItem, ShopListingRow as ShopListing, ShopViewResponse, SpriteAnimationFrame, SpriteConfigWithDimensions, SpriteTemplateRow as SpriteTemplate, SpriteTemplateData, StartSessionResponse, TelemetryPayload, TimebackEnrollment, TimebackInitContext, TimebackOrganization, TimebackUser, TimebackUserContext, TodayXpResponse, TokenRefreshPayload, TokenType, TotalXpResponse, UpdateCharacterData, UpdateCurrencyInput, UpdateItemInput, UpdateShopListingInput, UpsertGameMetadataInput, UserRow as User, UserEnrollment, UserInfo, UserLevelRow as UserLevel, UserLevelWithConfig, UserOrganization, UserRank, UserRankResponse, UserRoleEnumType, UserScore, UserTimebackData, XPAddResult, XpHistoryResponse, XpSummaryResponse };
|
|
5719
|
+
export type { AchievementCurrent, AchievementHistoryEntry, AchievementProgressResponse, AchievementScopeType, AchievementWithStatus, AuthCallbackPayload, AuthOptions, AuthProviderType, AuthResult, AuthServerMessage, AuthStateChangePayload, AuthStateUpdate, AuthenticatedUser, BetterAuthApiKey, BetterAuthApiKeyResponse, BetterAuthSignInResponse, BucketFile, CharacterComponentRow as CharacterComponent, CharacterComponentType, CharacterComponentWithSpriteUrl, CharacterComponentsOptions, ClientConfig, ClientEvents, ConnectionStatePayload, CreateCharacterData, CreateMapObjectData, CurrencyRow as Currency, DevUploadEvent, DevUploadHooks, DeveloperStatusEnumType, DeveloperStatusResponse, DeveloperStatusValue, DisconnectContext, DisconnectHandler, DisplayAlertPayload, EventListeners, ExternalGame, FetchedGame, Game, GameContextPayload, GameCustomHostname, GameInitUser, GameLeaderboardEntry, MapRow as GameMap, GamePlatform, GameRow as GameRecord, GameSessionRow as GameSession, GameTimebackIntegration, GameTokenResponse, GameType, GameUser, HostedGame, InitPayload, InsertCurrencyInput, InsertItemInput, InsertShopListingInput, InteractionType, InventoryItemRow as InventoryItem, InventoryItemWithItem, InventoryMutationResponse, ItemRow as Item, ItemType, KVKeyEntry, KVKeyMetadata, KVSeedEntry, KVStatsResponse, KeyEventPayload, LeaderboardEntry, LeaderboardOptions, LeaderboardTimeframe, LevelConfigRow as LevelConfig, LevelProgressResponse, LevelUpCheckResult, LoginResponse, ManifestV1, MapData, MapElementRow as MapElement, MapElementMetadata, MapElementWithGame, MapObjectRow as MapObject, MapObjectWithItem, NotificationRow as Notification, NotificationStats, PlaceableItemMetadata, PlatformTimebackUser, PlatformTimebackUserContext, PlaycademyServerClientConfig, PlaycademyServerClientState, PlayerCharacterRow as PlayerCharacter, PlayerCharacterAccessoryRow as PlayerCharacterAccessory, PlayerCurrency, PlayerInventoryItem, PlayerProfile, PlayerSessionPayload, PopulateStudentResponse, RealtimeTokenResponse, ScoreSubmission, ShopCurrency, ShopDisplayItem, ShopListingRow as ShopListing, ShopViewResponse, SpriteAnimationFrame, SpriteConfigWithDimensions, SpriteTemplateRow as SpriteTemplate, SpriteTemplateData, StartSessionResponse, TelemetryPayload, TimebackEnrollment, TimebackInitContext, TimebackOrganization, TimebackUser, TimebackUserContext, TodayXpResponse, TokenRefreshPayload, TokenType, TotalXpResponse, UpdateCharacterData, UpdateCurrencyInput, UpdateItemInput, UpdateShopListingInput, UpsertGameMetadataInput, UserRow as User, UserEnrollment, UserInfo, UserLevelRow as UserLevel, UserLevelWithConfig, UserOrganization, UserRank, UserRankResponse, UserRoleEnumType, UserScore, UserTimebackData, XPAddResult, XpHistoryResponse, XpSummaryResponse };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@playcademy/sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
"@playcademy/data": "0.0.1",
|
|
45
45
|
"@playcademy/logger": "0.0.1",
|
|
46
46
|
"@playcademy/types": "0.0.1",
|
|
47
|
-
"@playcademy/sandbox": "0.3.
|
|
47
|
+
"@playcademy/sandbox": "0.3.10",
|
|
48
48
|
"@playcademy/test": "0.0.1",
|
|
49
49
|
"@playcademy/timeback": "0.0.1",
|
|
50
50
|
"@playcademy/utils": "0.0.1",
|
|
51
51
|
"@types/bun": "latest",
|
|
52
|
-
"playcademy": "0.
|
|
52
|
+
"playcademy": "0.16.0",
|
|
53
53
|
"rollup": "^4.50.2",
|
|
54
54
|
"rollup-plugin-dts": "^6.2.3",
|
|
55
55
|
"typescript": "^5.7.2"
|