@playcademy/vite-plugin 0.2.32 → 0.2.33
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 +96 -53
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -24356,7 +24356,8 @@ var GAME_WORKER_DOMAINS;
|
|
|
24356
24356
|
var init_domains = __esm(() => {
|
|
24357
24357
|
PLAYCADEMY_BASE_URLS = {
|
|
24358
24358
|
production: "https://hub.playcademy.net",
|
|
24359
|
-
staging: "https://hub.dev.playcademy.net"
|
|
24359
|
+
staging: "https://hub.dev.playcademy.net",
|
|
24360
|
+
local: "http://localhost:5174"
|
|
24360
24361
|
};
|
|
24361
24362
|
GAME_WORKER_DOMAINS = {
|
|
24362
24363
|
production: "playcademy.gg",
|
|
@@ -24469,7 +24470,8 @@ var CLOUDFLARE_COMPATIBILITY_DATE = "2025-10-11";
|
|
|
24469
24470
|
var init_workers = __esm(() => {
|
|
24470
24471
|
WORKER_NAMING = {
|
|
24471
24472
|
STAGING_PREFIX: "staging-",
|
|
24472
|
-
STAGING_SUFFIX: "-staging"
|
|
24473
|
+
STAGING_SUFFIX: "-staging",
|
|
24474
|
+
LOCAL_PREFIX: "local-"
|
|
24473
24475
|
};
|
|
24474
24476
|
});
|
|
24475
24477
|
var init_src = __esm(() => {
|
|
@@ -25370,7 +25372,7 @@ var package_default;
|
|
|
25370
25372
|
var init_package = __esm(() => {
|
|
25371
25373
|
package_default = {
|
|
25372
25374
|
name: "@playcademy/sandbox",
|
|
25373
|
-
version: "0.3.
|
|
25375
|
+
version: "0.3.17",
|
|
25374
25376
|
description: "Local development server for Playcademy game development",
|
|
25375
25377
|
type: "module",
|
|
25376
25378
|
exports: {
|
|
@@ -30007,24 +30009,18 @@ var init_esm = __esm(() => {
|
|
|
30007
30009
|
});
|
|
30008
30010
|
function createMinimalConfig(overrides) {
|
|
30009
30011
|
return apiConfigSchema.parse({
|
|
30010
|
-
|
|
30011
|
-
isLocal: false,
|
|
30012
|
+
sstStage: "test",
|
|
30012
30013
|
...overrides
|
|
30013
30014
|
});
|
|
30014
30015
|
}
|
|
30015
30016
|
function getPlatformEnvironment(config2) {
|
|
30016
|
-
return config2.
|
|
30017
|
+
return config2.sstStage === "production" ? "production" : "staging";
|
|
30017
30018
|
}
|
|
30018
|
-
function isProduction2(config2) {
|
|
30019
|
-
return config2.stage === "production";
|
|
30020
|
-
}
|
|
30021
|
-
var stageSchema;
|
|
30022
30019
|
var ltiConfigSchema;
|
|
30023
30020
|
var realtimeConfigSchema;
|
|
30024
30021
|
var apiConfigSchema;
|
|
30025
30022
|
var init_schema = __esm(() => {
|
|
30026
30023
|
init_esm();
|
|
30027
|
-
stageSchema = exports_external.enum(["production", "dev", "local"]);
|
|
30028
30024
|
ltiConfigSchema = exports_external.object({
|
|
30029
30025
|
audience: exports_external.string(),
|
|
30030
30026
|
jwksUrl: exports_external.string().url(),
|
|
@@ -30035,7 +30031,7 @@ var init_schema = __esm(() => {
|
|
|
30035
30031
|
publishSecret: exports_external.string()
|
|
30036
30032
|
});
|
|
30037
30033
|
apiConfigSchema = exports_external.object({
|
|
30038
|
-
|
|
30034
|
+
sstStage: exports_external.string(),
|
|
30039
30035
|
isLocal: exports_external.boolean().default(false),
|
|
30040
30036
|
baseUrl: exports_external.string().url().optional(),
|
|
30041
30037
|
gameDomain: exports_external.string().optional(),
|
|
@@ -50167,8 +50163,36 @@ var init_playcademy = __esm(() => {
|
|
|
50167
50163
|
init_workers3();
|
|
50168
50164
|
init_infra();
|
|
50169
50165
|
});
|
|
50170
|
-
function
|
|
50171
|
-
|
|
50166
|
+
async function getTunnelUrl() {
|
|
50167
|
+
let response;
|
|
50168
|
+
try {
|
|
50169
|
+
response = await fetch(`${METRICS_BASE}/config`);
|
|
50170
|
+
} catch {
|
|
50171
|
+
throw new Error("Local tunnel is not running. Start it with `bun dev` or `bun scripts/infra/tunnel.ts`.");
|
|
50172
|
+
}
|
|
50173
|
+
if (!response.ok) {
|
|
50174
|
+
throw new Error(`Tunnel metrics endpoint returned ${response.status}`);
|
|
50175
|
+
}
|
|
50176
|
+
const data = await response.json();
|
|
50177
|
+
const hostname = data.config.ingress.find((r) => r.hostname)?.hostname;
|
|
50178
|
+
if (!hostname) {
|
|
50179
|
+
throw new Error("Tunnel is running but no hostname found in ingress config");
|
|
50180
|
+
}
|
|
50181
|
+
return `https://${hostname}`;
|
|
50182
|
+
}
|
|
50183
|
+
var TUNNEL_METRICS_PORT = 20241;
|
|
50184
|
+
var METRICS_BASE;
|
|
50185
|
+
var init_tunnel = __esm(() => {
|
|
50186
|
+
METRICS_BASE = `http://127.0.0.1:${TUNNEL_METRICS_PORT}`;
|
|
50187
|
+
});
|
|
50188
|
+
function getDeploymentId(gameSlug, sstStage) {
|
|
50189
|
+
if (sstStage === "production") {
|
|
50190
|
+
return gameSlug;
|
|
50191
|
+
}
|
|
50192
|
+
if (sstStage === "dev") {
|
|
50193
|
+
return `${WORKER_NAMING.STAGING_PREFIX}${gameSlug}`;
|
|
50194
|
+
}
|
|
50195
|
+
return `${WORKER_NAMING.LOCAL_PREFIX}${sstStage}-${gameSlug}`;
|
|
50172
50196
|
}
|
|
50173
50197
|
function getGameWorkerApiKeyName(slug) {
|
|
50174
50198
|
return `game-worker-${slug}`.substring(0, 32);
|
|
@@ -50392,8 +50416,7 @@ class DeployService {
|
|
|
50392
50416
|
const game = await this.deps.validateDeveloperAccessBySlug(user, slug);
|
|
50393
50417
|
const flags2 = this.validateDeployRequest(request, slug);
|
|
50394
50418
|
const { hasBackend, hasFrontend } = flags2;
|
|
50395
|
-
const
|
|
50396
|
-
const deploymentId = getDeploymentId(slug, isProd);
|
|
50419
|
+
const deploymentId = getDeploymentId(slug, this.deps.config.sstStage);
|
|
50397
50420
|
let frontendAssetsPath;
|
|
50398
50421
|
let tempDir;
|
|
50399
50422
|
if (hasFrontend) {
|
|
@@ -50407,7 +50430,15 @@ class DeployService {
|
|
|
50407
50430
|
frontendAssetsPath = extracted.assetsPath;
|
|
50408
50431
|
yield { type: "status", data: { message: "Extracting assets" } };
|
|
50409
50432
|
}
|
|
50410
|
-
|
|
50433
|
+
let platformBaseUrl = this.deps.config.baseUrl;
|
|
50434
|
+
if (this.deps.config.isLocal) {
|
|
50435
|
+
try {
|
|
50436
|
+
platformBaseUrl = await getTunnelUrl();
|
|
50437
|
+
} catch {
|
|
50438
|
+
throw new ValidationError("Local tunnel is not running. Ensure cloudflared is installed (`brew install cloudflared`) and the tunnel DevCommand started successfully.");
|
|
50439
|
+
}
|
|
50440
|
+
}
|
|
50441
|
+
const env = { GAME_ID: game.id, PLAYCADEMY_BASE_URL: platformBaseUrl };
|
|
50411
50442
|
yield {
|
|
50412
50443
|
type: "status",
|
|
50413
50444
|
data: { message: hasBackend ? "Deploying backend code" : "Deploying to platform" }
|
|
@@ -50456,14 +50487,14 @@ class DeployService {
|
|
|
50456
50487
|
return;
|
|
50457
50488
|
}
|
|
50458
50489
|
const workerBindings = {};
|
|
50459
|
-
if (bindings?.database
|
|
50460
|
-
workerBindings.d1 =
|
|
50490
|
+
if (bindings?.database) {
|
|
50491
|
+
workerBindings.d1 = [deploymentId];
|
|
50461
50492
|
}
|
|
50462
|
-
if (bindings?.keyValue
|
|
50463
|
-
workerBindings.kv =
|
|
50493
|
+
if (bindings?.keyValue) {
|
|
50494
|
+
workerBindings.kv = [deploymentId];
|
|
50464
50495
|
}
|
|
50465
|
-
if (bindings?.bucket
|
|
50466
|
-
workerBindings.r2 =
|
|
50496
|
+
if (bindings?.bucket) {
|
|
50497
|
+
workerBindings.r2 = [deploymentId];
|
|
50467
50498
|
}
|
|
50468
50499
|
if (bindings?.queues) {
|
|
50469
50500
|
let toQueueName = function(queueKey) {
|
|
@@ -50530,7 +50561,7 @@ var init_deploy_service = __esm(() => {
|
|
|
50530
50561
|
init_src();
|
|
50531
50562
|
init_tables_index();
|
|
50532
50563
|
init_src2();
|
|
50533
|
-
|
|
50564
|
+
init_tunnel();
|
|
50534
50565
|
init_errors();
|
|
50535
50566
|
init_deployment_util();
|
|
50536
50567
|
logger3 = log.scope("DeployService");
|
|
@@ -52065,8 +52096,7 @@ class DatabaseService {
|
|
|
52065
52096
|
async reset(slug, user, schema2) {
|
|
52066
52097
|
const d1 = this.getD1();
|
|
52067
52098
|
const game = await this.deps.validateDeveloperAccessBySlug(user, slug);
|
|
52068
|
-
const
|
|
52069
|
-
const deploymentId = getDeploymentId(slug, isProd);
|
|
52099
|
+
const deploymentId = getDeploymentId(slug, this.deps.config.sstStage);
|
|
52070
52100
|
logger9.debug("Resetting database", {
|
|
52071
52101
|
userId: user.id,
|
|
52072
52102
|
gameId: game.id,
|
|
@@ -52142,7 +52172,6 @@ var init_database_service = __esm(() => {
|
|
|
52142
52172
|
init_drizzle_orm();
|
|
52143
52173
|
init_tables_index();
|
|
52144
52174
|
init_src2();
|
|
52145
|
-
init_config2();
|
|
52146
52175
|
init_errors();
|
|
52147
52176
|
init_deployment_util();
|
|
52148
52177
|
logger9 = log.scope("DatabaseService");
|
|
@@ -52657,8 +52686,7 @@ class SecretsService {
|
|
|
52657
52686
|
return this.deps.cloudflare;
|
|
52658
52687
|
}
|
|
52659
52688
|
getDeploymentId(slug) {
|
|
52660
|
-
|
|
52661
|
-
return getDeploymentId(slug, isProd);
|
|
52689
|
+
return getDeploymentId(slug, this.deps.config.sstStage);
|
|
52662
52690
|
}
|
|
52663
52691
|
async listKeys(slug, user) {
|
|
52664
52692
|
const game = await this.deps.validateDeveloperAccessBySlug(user, slug);
|
|
@@ -52787,7 +52815,6 @@ var INTERNAL_SECRET_KEYS;
|
|
|
52787
52815
|
var init_secrets_service = __esm(() => {
|
|
52788
52816
|
init_src();
|
|
52789
52817
|
init_src2();
|
|
52790
|
-
init_config2();
|
|
52791
52818
|
init_errors();
|
|
52792
52819
|
init_deployment_util();
|
|
52793
52820
|
logger13 = log.scope("SecretsService");
|
|
@@ -52835,8 +52862,7 @@ class SeedService {
|
|
|
52835
52862
|
async seed(slug, code, user, secrets) {
|
|
52836
52863
|
const cf = this.getCloudflare();
|
|
52837
52864
|
const game = await this.deps.validateDeveloperAccessBySlug(user, slug);
|
|
52838
|
-
const
|
|
52839
|
-
const deploymentId = getDeploymentId(slug, isProd);
|
|
52865
|
+
const deploymentId = getDeploymentId(slug, this.deps.config.sstStage);
|
|
52840
52866
|
const uniqueSuffix = Date.now().toString(36);
|
|
52841
52867
|
const seedDeploymentId = `seed-${deploymentId}-${uniqueSuffix}`;
|
|
52842
52868
|
logger14.debug("Seeding database", {
|
|
@@ -53075,7 +53101,6 @@ var init_seed_service = __esm(() => {
|
|
|
53075
53101
|
init_src();
|
|
53076
53102
|
init_setup2();
|
|
53077
53103
|
init_src2();
|
|
53078
|
-
init_config2();
|
|
53079
53104
|
init_errors();
|
|
53080
53105
|
init_deployment_util();
|
|
53081
53106
|
logger14 = log.scope("SeedService");
|
|
@@ -58788,7 +58813,7 @@ class LogsService {
|
|
|
58788
58813
|
constructor(deps) {
|
|
58789
58814
|
this.deps = deps;
|
|
58790
58815
|
}
|
|
58791
|
-
async generateToken(user, slug2,
|
|
58816
|
+
async generateToken(user, slug2, sstStage) {
|
|
58792
58817
|
const db2 = this.deps.db;
|
|
58793
58818
|
if (user.role === "admin") {
|
|
58794
58819
|
const game = await db2.query.games.findFirst({
|
|
@@ -58798,7 +58823,7 @@ class LogsService {
|
|
|
58798
58823
|
if (!game) {
|
|
58799
58824
|
throw new NotFoundError("Game", slug2);
|
|
58800
58825
|
}
|
|
58801
|
-
logger28.info("Admin accessing game logs", { adminId: user.id, slug: slug2,
|
|
58826
|
+
logger28.info("Admin accessing game logs", { adminId: user.id, slug: slug2, sstStage });
|
|
58802
58827
|
} else {
|
|
58803
58828
|
const isApprovedDev = user.developerStatus === "approved";
|
|
58804
58829
|
if (!isApprovedDev) {
|
|
@@ -58824,8 +58849,7 @@ class LogsService {
|
|
|
58824
58849
|
throw new NotFoundError("Game", slug2);
|
|
58825
58850
|
}
|
|
58826
58851
|
}
|
|
58827
|
-
const
|
|
58828
|
-
const workerId = getDeploymentId(slug2, isProduction3);
|
|
58852
|
+
const workerId = getDeploymentId(slug2, sstStage);
|
|
58829
58853
|
const token = await this.deps.mintLogStreamToken(user.id, workerId);
|
|
58830
58854
|
logger28.debug("Generated log stream token", {
|
|
58831
58855
|
userId: user.id,
|
|
@@ -59559,7 +59583,7 @@ function createServices(ctx) {
|
|
|
59559
59583
|
discord,
|
|
59560
59584
|
cloudflare,
|
|
59561
59585
|
storage,
|
|
59562
|
-
stage: config2.
|
|
59586
|
+
stage: config2.sstStage
|
|
59563
59587
|
});
|
|
59564
59588
|
const player = createPlayerServices({
|
|
59565
59589
|
db: db2,
|
|
@@ -61498,7 +61522,8 @@ class ProgressRecorder {
|
|
|
61498
61522
|
appName: progressData.appName,
|
|
61499
61523
|
totalQuestions,
|
|
61500
61524
|
correctQuestions,
|
|
61501
|
-
masteredUnits
|
|
61525
|
+
masteredUnits,
|
|
61526
|
+
pctCompleteApp
|
|
61502
61527
|
});
|
|
61503
61528
|
} else {
|
|
61504
61529
|
log.warn("[ProgressRecorder] Score not provided, skipping gradebook entry", {
|
|
@@ -61635,7 +61660,8 @@ class ProgressRecorder {
|
|
|
61635
61660
|
appName,
|
|
61636
61661
|
totalQuestions,
|
|
61637
61662
|
correctQuestions,
|
|
61638
|
-
masteredUnits
|
|
61663
|
+
masteredUnits,
|
|
61664
|
+
pctCompleteApp
|
|
61639
61665
|
}) {
|
|
61640
61666
|
const timestamp3 = Date.now().toString(36);
|
|
61641
61667
|
const resultId = `${lineItemId}:${studentId}:${timestamp3}`;
|
|
@@ -61654,7 +61680,8 @@ class ProgressRecorder {
|
|
|
61654
61680
|
appName,
|
|
61655
61681
|
...totalQuestions !== undefined ? { totalQuestions } : {},
|
|
61656
61682
|
...correctQuestions !== undefined ? { correctQuestions } : {},
|
|
61657
|
-
...masteredUnits !== undefined ? { masteredUnits } : {}
|
|
61683
|
+
...masteredUnits !== undefined ? { masteredUnits } : {},
|
|
61684
|
+
...pctCompleteApp !== undefined ? { pctCompleteApp } : {}
|
|
61658
61685
|
}
|
|
61659
61686
|
});
|
|
61660
61687
|
}
|
|
@@ -62825,7 +62852,7 @@ var init_providers = __esm(() => {
|
|
|
62825
62852
|
function buildConfig(options) {
|
|
62826
62853
|
const baseUrl = `http://localhost:${options.port ?? 3000}`;
|
|
62827
62854
|
return createMinimalConfig({
|
|
62828
|
-
|
|
62855
|
+
sstStage: "sandbox",
|
|
62829
62856
|
baseUrl,
|
|
62830
62857
|
gameDomain: "localhost",
|
|
62831
62858
|
uploadBucket: "sandbox-uploads",
|
|
@@ -62862,7 +62889,7 @@ function createSandboxContext(options) {
|
|
|
62862
62889
|
Object.assign(services, createServices(ctx));
|
|
62863
62890
|
cachedServiceContext = ctx;
|
|
62864
62891
|
log.debug("[Sandbox] ServiceContext initialized", {
|
|
62865
|
-
|
|
62892
|
+
sstStage: config2.sstStage,
|
|
62866
62893
|
baseUrl: config2.baseUrl,
|
|
62867
62894
|
hasTimeback: Boolean(timeback2)
|
|
62868
62895
|
});
|
|
@@ -121505,9 +121532,9 @@ var init_schemas2 = __esm(() => {
|
|
|
121505
121532
|
compatibilityDate: exports_external.string().optional(),
|
|
121506
121533
|
compatibilityFlags: exports_external.array(exports_external.string()).optional(),
|
|
121507
121534
|
bindings: exports_external.object({
|
|
121508
|
-
database: exports_external.array(exports_external.string()).optional(),
|
|
121509
|
-
keyValue: exports_external.array(exports_external.string()).optional(),
|
|
121510
|
-
bucket: exports_external.array(exports_external.string()).optional(),
|
|
121535
|
+
database: exports_external.union([exports_external.literal(true), exports_external.array(exports_external.string())]).optional(),
|
|
121536
|
+
keyValue: exports_external.union([exports_external.literal(true), exports_external.array(exports_external.string())]).optional(),
|
|
121537
|
+
bucket: exports_external.union([exports_external.literal(true), exports_external.array(exports_external.string())]).optional(),
|
|
121511
121538
|
queues: exports_external.record(exports_external.string(), exports_external.union([
|
|
121512
121539
|
exports_external.literal(true),
|
|
121513
121540
|
exports_external.object({
|
|
@@ -123541,8 +123568,8 @@ var init_logs_controller = __esm(() => {
|
|
|
123541
123568
|
let body2;
|
|
123542
123569
|
try {
|
|
123543
123570
|
const json4 = await ctx.request.json();
|
|
123544
|
-
if (json4.environment !== "staging" && json4.environment !== "production") {
|
|
123545
|
-
throw ApiError.badRequest('Invalid environment. Must be "staging" or "production".');
|
|
123571
|
+
if (json4.environment !== "local" && json4.environment !== "staging" && json4.environment !== "production") {
|
|
123572
|
+
throw ApiError.badRequest('Invalid environment. Must be "local", "staging", or "production".');
|
|
123546
123573
|
}
|
|
123547
123574
|
body2 = json4;
|
|
123548
123575
|
} catch (error2) {
|
|
@@ -123556,7 +123583,13 @@ var init_logs_controller = __esm(() => {
|
|
|
123556
123583
|
slug: slug2,
|
|
123557
123584
|
environment: body2.environment
|
|
123558
123585
|
});
|
|
123559
|
-
|
|
123586
|
+
const envToSstStage = {
|
|
123587
|
+
local: ctx.config.sstStage,
|
|
123588
|
+
staging: "dev",
|
|
123589
|
+
production: "production"
|
|
123590
|
+
};
|
|
123591
|
+
const sstStage = envToSstStage[body2.environment] ?? "dev";
|
|
123592
|
+
return ctx.services.logs.generateToken(ctx.user, slug2, sstStage);
|
|
123560
123593
|
});
|
|
123561
123594
|
logs = {
|
|
123562
123595
|
generateToken
|
|
@@ -123919,6 +123952,7 @@ var mintToken;
|
|
|
123919
123952
|
var sessions2;
|
|
123920
123953
|
var init_session_controller = __esm(() => {
|
|
123921
123954
|
init_src2();
|
|
123955
|
+
init_tunnel();
|
|
123922
123956
|
init_errors();
|
|
123923
123957
|
init_utils11();
|
|
123924
123958
|
logger61 = log.scope("SessionController");
|
|
@@ -123953,7 +123987,14 @@ var init_session_controller = __esm(() => {
|
|
|
123953
123987
|
throw ApiError.badRequest("Missing game ID or slug");
|
|
123954
123988
|
}
|
|
123955
123989
|
logger61.debug("Minting token", { userId: ctx.user.id, gameIdOrSlug, launchId: ctx.launchId });
|
|
123956
|
-
|
|
123990
|
+
const { token, exp } = await ctx.services.session.mintToken(gameIdOrSlug, ctx.user.id);
|
|
123991
|
+
let baseUrl;
|
|
123992
|
+
if (ctx.config.isLocal) {
|
|
123993
|
+
try {
|
|
123994
|
+
baseUrl = await getTunnelUrl();
|
|
123995
|
+
} catch {}
|
|
123996
|
+
}
|
|
123997
|
+
return { token, exp, baseUrl };
|
|
123957
123998
|
});
|
|
123958
123999
|
sessions2 = {
|
|
123959
124000
|
start: start2,
|
|
@@ -126961,7 +127002,8 @@ var GAME_WORKER_DOMAINS2;
|
|
|
126961
127002
|
var init_domains3 = __esm8(() => {
|
|
126962
127003
|
PLAYCADEMY_BASE_URLS2 = {
|
|
126963
127004
|
production: "https://hub.playcademy.net",
|
|
126964
|
-
staging: "https://hub.dev.playcademy.net"
|
|
127005
|
+
staging: "https://hub.dev.playcademy.net",
|
|
127006
|
+
local: "http://localhost:5174"
|
|
126965
127007
|
};
|
|
126966
127008
|
GAME_WORKER_DOMAINS2 = {
|
|
126967
127009
|
production: "playcademy.gg",
|
|
@@ -127067,7 +127109,8 @@ var WORKER_NAMING2;
|
|
|
127067
127109
|
var init_workers4 = __esm8(() => {
|
|
127068
127110
|
WORKER_NAMING2 = {
|
|
127069
127111
|
STAGING_PREFIX: "staging-",
|
|
127070
|
-
STAGING_SUFFIX: "-staging"
|
|
127112
|
+
STAGING_SUFFIX: "-staging",
|
|
127113
|
+
LOCAL_PREFIX: "local-"
|
|
127071
127114
|
};
|
|
127072
127115
|
});
|
|
127073
127116
|
var init_src5 = __esm8(() => {
|
|
@@ -127701,7 +127744,7 @@ var import_picocolors12 = __toESM(require_picocolors(), 1);
|
|
|
127701
127744
|
// package.json
|
|
127702
127745
|
var package_default2 = {
|
|
127703
127746
|
name: "@playcademy/vite-plugin",
|
|
127704
|
-
version: "0.2.
|
|
127747
|
+
version: "0.2.33",
|
|
127705
127748
|
type: "module",
|
|
127706
127749
|
exports: {
|
|
127707
127750
|
".": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@playcademy/vite-plugin",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.33",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -20,14 +20,14 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"archiver": "^7.0.1",
|
|
22
22
|
"picocolors": "^1.1.1",
|
|
23
|
-
"playcademy": "0.
|
|
23
|
+
"playcademy": "0.20.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@electric-sql/pglite": "^0.3.16",
|
|
27
27
|
"@inquirer/prompts": "^7.8.6",
|
|
28
28
|
"@playcademy/constants": "0.0.1",
|
|
29
|
-
"@playcademy/sandbox": "0.3.
|
|
30
|
-
"@playcademy/sdk": "0.7.
|
|
29
|
+
"@playcademy/sandbox": "0.3.17",
|
|
30
|
+
"@playcademy/sdk": "0.7.3",
|
|
31
31
|
"@playcademy/types": "0.0.1",
|
|
32
32
|
"@playcademy/utils": "0.0.1",
|
|
33
33
|
"@types/archiver": "^6.0.3",
|