@playcademy/sdk 0.16.1-beta.6 → 0.16.1-beta.7
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 +1 -1
- package/dist/internal.d.ts +25 -1
- package/dist/internal.js +34 -4
- package/dist/server/edge.js +1 -1
- package/dist/server.js +1 -1
- package/dist/types.d.ts +24 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3421,7 +3421,7 @@ async function request({
|
|
|
3421
3421
|
return rawText && rawText.length > 0 ? rawText : undefined;
|
|
3422
3422
|
}
|
|
3423
3423
|
// src/version.ts
|
|
3424
|
-
var SDK_VERSION = "0.16.1-beta.
|
|
3424
|
+
var SDK_VERSION = "0.16.1-beta.7";
|
|
3425
3425
|
|
|
3426
3426
|
// src/clients/base.ts
|
|
3427
3427
|
class PlaycademyBaseClient {
|
package/dist/internal.d.ts
CHANGED
|
@@ -3216,6 +3216,29 @@ interface BucketFile {
|
|
|
3216
3216
|
lastModified: string;
|
|
3217
3217
|
contentType?: string;
|
|
3218
3218
|
}
|
|
3219
|
+
/**
|
|
3220
|
+
* Options for a single-page bucket listing
|
|
3221
|
+
*/
|
|
3222
|
+
interface BucketListPageOptions {
|
|
3223
|
+
/** Restrict results to keys starting with this prefix */
|
|
3224
|
+
prefix?: string;
|
|
3225
|
+
/** Opaque continuation cursor from the previous page's result */
|
|
3226
|
+
cursor?: string;
|
|
3227
|
+
/** Page size (1-1000); the server may return fewer */
|
|
3228
|
+
limit?: number;
|
|
3229
|
+
/** Roll deeper keys into `prefixes` entries, S3 delimiter style */
|
|
3230
|
+
delimiter?: string;
|
|
3231
|
+
}
|
|
3232
|
+
/**
|
|
3233
|
+
* One page of a bucket listing
|
|
3234
|
+
*/
|
|
3235
|
+
interface BucketFilePage {
|
|
3236
|
+
files: BucketFile[];
|
|
3237
|
+
/** Rolled-up common prefixes; present for delimiter listings that found any */
|
|
3238
|
+
prefixes?: string[];
|
|
3239
|
+
/** Present only when more pages remain */
|
|
3240
|
+
cursor?: string;
|
|
3241
|
+
}
|
|
3219
3242
|
/**
|
|
3220
3243
|
* KV key entry
|
|
3221
3244
|
*/
|
|
@@ -3790,6 +3813,7 @@ declare class PlaycademyInternalClient extends PlaycademyBaseClient {
|
|
|
3790
3813
|
};
|
|
3791
3814
|
bucket: {
|
|
3792
3815
|
list: (slug: string, prefix?: string) => Promise<BucketFile[]>;
|
|
3816
|
+
listPage: (slug: string, options?: BucketListPageOptions) => Promise<BucketFilePage>;
|
|
3793
3817
|
get: (slug: string, key: string) => Promise<ArrayBuffer>;
|
|
3794
3818
|
put: (slug: string, key: string, content: Blob | ArrayBuffer | Uint8Array, contentType?: string) => Promise<void>;
|
|
3795
3819
|
initiateUpload: (slug: string, key: string, contentType: string) => Promise<{
|
|
@@ -4051,4 +4075,4 @@ interface BeginInitHandshakeOptions {
|
|
|
4051
4075
|
declare function beginInitHandshake({ iframe, origin, payload, onTimeout, onSendError }: BeginInitHandshakeOptions): () => void;
|
|
4052
4076
|
|
|
4053
4077
|
export { ApiError, HANDSHAKE_MAX_DURATION_MS, HANDSHAKE_RESEND_INTERVAL_MS, INIT_WAIT_TIMEOUT_MS, MessageEvents, PlaycademyInternalClient as PlaycademyClient, PlaycademyError, PlaycademyInternalClient, beginInitHandshake, extractApiErrorInfo, isTrustedIframeMessage, messaging };
|
|
4054
|
-
export type { ApiErrorCode, ApiErrorInfo, AuthCallbackPayload, AuthOptions, AuthProviderType, AuthResult, AuthServerMessage, AuthStateChangePayload, AuthStateUpdate, BetterAuthApiKey, BetterAuthApiKeyResponse, BetterAuthSignInResponse, BucketFile, ChildCheckpointRelay, ClientConfig, ClientEvents, CourseMastery, CourseXp, DemoEndOptions, DemoEndPayload, DevUploadEvent, DevUploadHooks, EmbedActivity, EmbedActivityAbandoned, EmbedActivityCompleted, EmbedActivityFailed, EmbedLaunchOptions, EmbedResumeEnvelope, EmbedResumeStore, EmbedSession, EmbedSessionTiming, EmbedTimebackRecording, ErrorResponseBody, EventListeners, ExternalGame, FetchedGame, Game, GameContextPayload, GameCustomHostname, GameInitUser, GameRow as GameRecord, GameTokenResponse, GetHighestGradeMasteredOptions, GetMasteryOptions, GetXpOptions, HighestGradeMasteredResponse, HostedGame, InitErrorPayload, InitPayload, KVKeyEntry, KVKeyMetadata, KVSeedEntry, KVStatsResponse, KeyEventPayload, LaunchIntent, LoginResponse, MasteryResponse, MessageEventMap, ParentGameContext, ParentGameHandle, PlatformTimebackUser, PlatformTimebackUserContext, PlaycademyMode, PlaycademyServerClientConfig, PlaycademyServerClientState, ScoreSubmission, StartActivityOptions, StartActivityResult, TelemetryPayload, TimebackActivityEndRelay, TimebackActivityStartRelay, TimebackEnrollment, TimebackHeartbeatRelayRequest, TimebackInitContext, TimebackOrganization, TimebackUser, TimebackUserContext, TimebackUserHighestGradeMastered, TimebackUserMastery, TimebackUserRefreshField, TimebackUserRefreshOptions, TimebackUserXp, TokenRefreshPayload, TokenType, UpsertGameMetadataInput, UserRow as User, XpResponse };
|
|
4078
|
+
export type { ApiErrorCode, ApiErrorInfo, AuthCallbackPayload, AuthOptions, AuthProviderType, AuthResult, AuthServerMessage, AuthStateChangePayload, AuthStateUpdate, BetterAuthApiKey, BetterAuthApiKeyResponse, BetterAuthSignInResponse, BucketFile, BucketFilePage, BucketListPageOptions, ChildCheckpointRelay, ClientConfig, ClientEvents, CourseMastery, CourseXp, DemoEndOptions, DemoEndPayload, DevUploadEvent, DevUploadHooks, EmbedActivity, EmbedActivityAbandoned, EmbedActivityCompleted, EmbedActivityFailed, EmbedLaunchOptions, EmbedResumeEnvelope, EmbedResumeStore, EmbedSession, EmbedSessionTiming, EmbedTimebackRecording, ErrorResponseBody, EventListeners, ExternalGame, FetchedGame, Game, GameContextPayload, GameCustomHostname, GameInitUser, GameRow as GameRecord, GameTokenResponse, GetHighestGradeMasteredOptions, GetMasteryOptions, GetXpOptions, HighestGradeMasteredResponse, HostedGame, InitErrorPayload, InitPayload, KVKeyEntry, KVKeyMetadata, KVSeedEntry, KVStatsResponse, KeyEventPayload, LaunchIntent, LoginResponse, MasteryResponse, MessageEventMap, ParentGameContext, ParentGameHandle, PlatformTimebackUser, PlatformTimebackUserContext, PlaycademyMode, PlaycademyServerClientConfig, PlaycademyServerClientState, ScoreSubmission, StartActivityOptions, StartActivityResult, TelemetryPayload, TimebackActivityEndRelay, TimebackActivityStartRelay, TimebackEnrollment, TimebackHeartbeatRelayRequest, TimebackInitContext, TimebackOrganization, TimebackUser, TimebackUserContext, TimebackUserHighestGradeMastered, TimebackUserMastery, TimebackUserRefreshField, TimebackUserRefreshOptions, TimebackUserXp, TokenRefreshPayload, TokenType, UpsertGameMetadataInput, UserRow as User, XpResponse };
|
package/dist/internal.js
CHANGED
|
@@ -3461,8 +3461,26 @@ class DeployPipeline {
|
|
|
3461
3461
|
}
|
|
3462
3462
|
|
|
3463
3463
|
// src/namespaces/platform/dev.ts
|
|
3464
|
+
var BUCKET_LIST_PAGE_SIZE = 1000;
|
|
3464
3465
|
function createDevNamespace(client) {
|
|
3465
3466
|
const deploy = new DeployPipeline(client);
|
|
3467
|
+
async function fetchBucketPage(slug, options = {}) {
|
|
3468
|
+
const params = new URLSearchParams;
|
|
3469
|
+
if (options.prefix) {
|
|
3470
|
+
params.set("prefix", options.prefix);
|
|
3471
|
+
}
|
|
3472
|
+
if (options.cursor) {
|
|
3473
|
+
params.set("cursor", options.cursor);
|
|
3474
|
+
}
|
|
3475
|
+
if (options.limit !== undefined) {
|
|
3476
|
+
params.set("limit", String(options.limit));
|
|
3477
|
+
}
|
|
3478
|
+
if (options.delimiter) {
|
|
3479
|
+
params.set("delimiter", options.delimiter);
|
|
3480
|
+
}
|
|
3481
|
+
const query = params.size > 0 ? `?${params.toString()}` : "";
|
|
3482
|
+
return client["request"](`/games/${slug}/bucket${query}`, "GET");
|
|
3483
|
+
}
|
|
3466
3484
|
return {
|
|
3467
3485
|
status: {
|
|
3468
3486
|
apply: () => client["request"]("/dev/apply", "POST"),
|
|
@@ -3594,10 +3612,22 @@ function createDevNamespace(client) {
|
|
|
3594
3612
|
},
|
|
3595
3613
|
bucket: {
|
|
3596
3614
|
list: async (slug, prefix) => {
|
|
3597
|
-
const
|
|
3598
|
-
|
|
3599
|
-
|
|
3615
|
+
const files = [];
|
|
3616
|
+
let cursor;
|
|
3617
|
+
do {
|
|
3618
|
+
const page = await fetchBucketPage(slug, {
|
|
3619
|
+
prefix,
|
|
3620
|
+
cursor,
|
|
3621
|
+
limit: BUCKET_LIST_PAGE_SIZE
|
|
3622
|
+
});
|
|
3623
|
+
for (const file of page.files) {
|
|
3624
|
+
files.push(file);
|
|
3625
|
+
}
|
|
3626
|
+
cursor = page.cursor;
|
|
3627
|
+
} while (cursor);
|
|
3628
|
+
return files;
|
|
3600
3629
|
},
|
|
3630
|
+
listPage: fetchBucketPage,
|
|
3601
3631
|
get: async (slug, key) => {
|
|
3602
3632
|
const res = await client["request"](`/games/${slug}/bucket/${encodeURIComponent(key)}`, "GET", { raw: true });
|
|
3603
3633
|
if (!res.ok) {
|
|
@@ -4266,7 +4296,7 @@ async function request({
|
|
|
4266
4296
|
return rawText && rawText.length > 0 ? rawText : undefined;
|
|
4267
4297
|
}
|
|
4268
4298
|
// src/version.ts
|
|
4269
|
-
var SDK_VERSION = "0.16.1-beta.
|
|
4299
|
+
var SDK_VERSION = "0.16.1-beta.7";
|
|
4270
4300
|
|
|
4271
4301
|
// src/clients/base.ts
|
|
4272
4302
|
class PlaycademyBaseClient {
|
package/dist/server/edge.js
CHANGED
package/dist/server.js
CHANGED
package/dist/types.d.ts
CHANGED
|
@@ -2578,6 +2578,29 @@ interface BucketFile {
|
|
|
2578
2578
|
lastModified: string;
|
|
2579
2579
|
contentType?: string;
|
|
2580
2580
|
}
|
|
2581
|
+
/**
|
|
2582
|
+
* Options for a single-page bucket listing
|
|
2583
|
+
*/
|
|
2584
|
+
interface BucketListPageOptions {
|
|
2585
|
+
/** Restrict results to keys starting with this prefix */
|
|
2586
|
+
prefix?: string;
|
|
2587
|
+
/** Opaque continuation cursor from the previous page's result */
|
|
2588
|
+
cursor?: string;
|
|
2589
|
+
/** Page size (1-1000); the server may return fewer */
|
|
2590
|
+
limit?: number;
|
|
2591
|
+
/** Roll deeper keys into `prefixes` entries, S3 delimiter style */
|
|
2592
|
+
delimiter?: string;
|
|
2593
|
+
}
|
|
2594
|
+
/**
|
|
2595
|
+
* One page of a bucket listing
|
|
2596
|
+
*/
|
|
2597
|
+
interface BucketFilePage {
|
|
2598
|
+
files: BucketFile[];
|
|
2599
|
+
/** Rolled-up common prefixes; present for delimiter listings that found any */
|
|
2600
|
+
prefixes?: string[];
|
|
2601
|
+
/** Present only when more pages remain */
|
|
2602
|
+
cursor?: string;
|
|
2603
|
+
}
|
|
2581
2604
|
/**
|
|
2582
2605
|
* KV key entry
|
|
2583
2606
|
*/
|
|
@@ -2671,4 +2694,4 @@ interface PlatformTimebackUser extends PlatformTimebackUserContext {
|
|
|
2671
2694
|
}
|
|
2672
2695
|
|
|
2673
2696
|
export { PlaycademyClient };
|
|
2674
|
-
export type { AuthCallbackPayload, AuthOptions, AuthProviderType, AuthResult, AuthServerMessage, AuthStateChangePayload, AuthStateUpdate, BetterAuthApiKey, BetterAuthApiKeyResponse, BetterAuthSignInResponse, BucketFile, ChildCheckpointRelay, ClientConfig, ClientEvents, CourseMastery, CourseXp, DemoEndOptions, DemoEndPayload, DevUploadEvent, DevUploadHooks, EmbedActivity, EmbedActivityAbandoned, EmbedActivityCompleted, EmbedActivityFailed, EmbedLaunchOptions, EmbedResumeEnvelope, EmbedResumeStore, EmbedSession, EmbedSessionTiming, EmbedTimebackRecording, EventListeners, ExternalGame, FetchedGame, Game, GameContextPayload, GameCustomHostname, GameInitUser, GameRow as GameRecord, GameTokenResponse, GetHighestGradeMasteredOptions, GetMasteryOptions, GetXpOptions, HighestGradeMasteredResponse, HostedGame, InitErrorPayload, InitPayload, KVKeyEntry, KVKeyMetadata, KVSeedEntry, KVStatsResponse, KeyEventPayload, LaunchIntent, LoginResponse, MasteryResponse, ParentGameContext, ParentGameHandle, PlatformTimebackUser, PlatformTimebackUserContext, PlaycademyMode, PlaycademyServerClientConfig, PlaycademyServerClientState, ScoreSubmission, StartActivityOptions, StartActivityResult, TelemetryPayload, TimebackActivityEndRelay, TimebackActivityStartRelay, TimebackEnrollment, TimebackHeartbeatRelayRequest, TimebackInitContext, TimebackOrganization, TimebackUser, TimebackUserContext, TimebackUserHighestGradeMastered, TimebackUserMastery, TimebackUserRefreshField, TimebackUserRefreshOptions, TimebackUserXp, TokenRefreshPayload, TokenType, UpsertGameMetadataInput, UserRow as User, XpResponse };
|
|
2697
|
+
export type { AuthCallbackPayload, AuthOptions, AuthProviderType, AuthResult, AuthServerMessage, AuthStateChangePayload, AuthStateUpdate, BetterAuthApiKey, BetterAuthApiKeyResponse, BetterAuthSignInResponse, BucketFile, BucketFilePage, BucketListPageOptions, ChildCheckpointRelay, ClientConfig, ClientEvents, CourseMastery, CourseXp, DemoEndOptions, DemoEndPayload, DevUploadEvent, DevUploadHooks, EmbedActivity, EmbedActivityAbandoned, EmbedActivityCompleted, EmbedActivityFailed, EmbedLaunchOptions, EmbedResumeEnvelope, EmbedResumeStore, EmbedSession, EmbedSessionTiming, EmbedTimebackRecording, EventListeners, ExternalGame, FetchedGame, Game, GameContextPayload, GameCustomHostname, GameInitUser, GameRow as GameRecord, GameTokenResponse, GetHighestGradeMasteredOptions, GetMasteryOptions, GetXpOptions, HighestGradeMasteredResponse, HostedGame, InitErrorPayload, InitPayload, KVKeyEntry, KVKeyMetadata, KVSeedEntry, KVStatsResponse, KeyEventPayload, LaunchIntent, LoginResponse, MasteryResponse, ParentGameContext, ParentGameHandle, PlatformTimebackUser, PlatformTimebackUserContext, PlaycademyMode, PlaycademyServerClientConfig, PlaycademyServerClientState, ScoreSubmission, StartActivityOptions, StartActivityResult, TelemetryPayload, TimebackActivityEndRelay, TimebackActivityStartRelay, TimebackEnrollment, TimebackHeartbeatRelayRequest, TimebackInitContext, TimebackOrganization, TimebackUser, TimebackUserContext, TimebackUserHighestGradeMastered, TimebackUserMastery, TimebackUserRefreshField, TimebackUserRefreshOptions, TimebackUserXp, TokenRefreshPayload, TokenType, UpsertGameMetadataInput, UserRow as User, XpResponse };
|