@playcademy/sandbox 0.5.0 → 0.5.1-beta.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/dist/cli.js CHANGED
@@ -1078,7 +1078,7 @@ var package_default;
1078
1078
  var init_package = __esm(() => {
1079
1079
  package_default = {
1080
1080
  name: "@playcademy/sandbox",
1081
- version: "0.5.0",
1081
+ version: "0.5.1-beta.1",
1082
1082
  description: "Local development server for Playcademy game development",
1083
1083
  type: "module",
1084
1084
  exports: {
@@ -29090,6 +29090,19 @@ class BucketService {
29090
29090
  });
29091
29091
  return { key, size: body2.length };
29092
29092
  }
29093
+ async initiateUpload(slug, key, contentType, user) {
29094
+ const game2 = await this.deps.validateDeveloperAccessBySlug(user, slug);
29095
+ const bucketName = this.getBucketName(game2.slug);
29096
+ const presignedUrl = await this.deps.storage.generatePresignedPutUrl(bucketName, key, contentType, 3600);
29097
+ setAttributes({
29098
+ "app.bucket.operation": "initiate_upload",
29099
+ "app.bucket.key_prefix": BucketService.getKeyPrefix(key),
29100
+ "app.bucket.file_extension": BucketService.getFileExtension(key),
29101
+ "app.bucket.content_type": contentType,
29102
+ "app.bucket.upload_kind": "presigned"
29103
+ });
29104
+ return { presignedUrl, key };
29105
+ }
29093
29106
  async deleteFile(slug, key, user) {
29094
29107
  const game2 = await this.deps.validateDeveloperAccessBySlug(user, slug);
29095
29108
  const bucketName = this.getBucketName(game2.slug);
@@ -95982,7 +95995,7 @@ var init_admin_controller = __esm(() => {
95982
95995
  });
95983
95996
 
95984
95997
  // ../api-core/src/controllers/bucket.controller.ts
95985
- var listFiles, getFile, putFile, deleteFile, bucket;
95998
+ var listFiles, getFile, putFile, deleteFile, initiateUpload, bucket;
95986
95999
  var init_bucket_controller = __esm(() => {
95987
96000
  init_errors();
95988
96001
  init_utils11();
@@ -96032,11 +96045,35 @@ var init_bucket_controller = __esm(() => {
96032
96045
  await ctx.services.bucket.deleteFile(slug2, key, ctx.user);
96033
96046
  return { success: true, key };
96034
96047
  });
96048
+ initiateUpload = requireDeveloper(async (ctx) => {
96049
+ const slug2 = ctx.params.slug;
96050
+ if (!slug2) {
96051
+ throw ApiError.badRequest("Missing game slug");
96052
+ }
96053
+ let body2;
96054
+ try {
96055
+ const json4 = await ctx.request.json();
96056
+ if (!json4.key || typeof json4.key !== "string") {
96057
+ throw ApiError.badRequest('Missing or invalid "key"');
96058
+ }
96059
+ if (!json4.contentType || typeof json4.contentType !== "string") {
96060
+ throw ApiError.badRequest('Missing or invalid "contentType"');
96061
+ }
96062
+ body2 = { key: json4.key, contentType: json4.contentType };
96063
+ } catch (error2) {
96064
+ if (error2 instanceof ApiError) {
96065
+ throw error2;
96066
+ }
96067
+ throw ApiError.badRequest("Invalid JSON body");
96068
+ }
96069
+ return ctx.services.bucket.initiateUpload(slug2, body2.key, body2.contentType, ctx.user);
96070
+ });
96035
96071
  bucket = defineControllerNames("bucket", {
96036
96072
  listFiles,
96037
96073
  getFile,
96038
96074
  putFile,
96039
- deleteFile
96075
+ deleteFile,
96076
+ initiateUpload
96040
96077
  });
96041
96078
  });
96042
96079
 
package/dist/server.js CHANGED
@@ -1077,7 +1077,7 @@ var package_default;
1077
1077
  var init_package = __esm(() => {
1078
1078
  package_default = {
1079
1079
  name: "@playcademy/sandbox",
1080
- version: "0.5.0",
1080
+ version: "0.5.1-beta.1",
1081
1081
  description: "Local development server for Playcademy game development",
1082
1082
  type: "module",
1083
1083
  exports: {
@@ -29089,6 +29089,19 @@ class BucketService {
29089
29089
  });
29090
29090
  return { key, size: body2.length };
29091
29091
  }
29092
+ async initiateUpload(slug, key, contentType, user) {
29093
+ const game2 = await this.deps.validateDeveloperAccessBySlug(user, slug);
29094
+ const bucketName = this.getBucketName(game2.slug);
29095
+ const presignedUrl = await this.deps.storage.generatePresignedPutUrl(bucketName, key, contentType, 3600);
29096
+ setAttributes({
29097
+ "app.bucket.operation": "initiate_upload",
29098
+ "app.bucket.key_prefix": BucketService.getKeyPrefix(key),
29099
+ "app.bucket.file_extension": BucketService.getFileExtension(key),
29100
+ "app.bucket.content_type": contentType,
29101
+ "app.bucket.upload_kind": "presigned"
29102
+ });
29103
+ return { presignedUrl, key };
29104
+ }
29092
29105
  async deleteFile(slug, key, user) {
29093
29106
  const game2 = await this.deps.validateDeveloperAccessBySlug(user, slug);
29094
29107
  const bucketName = this.getBucketName(game2.slug);
@@ -95981,7 +95994,7 @@ var init_admin_controller = __esm(() => {
95981
95994
  });
95982
95995
 
95983
95996
  // ../api-core/src/controllers/bucket.controller.ts
95984
- var listFiles, getFile, putFile, deleteFile, bucket;
95997
+ var listFiles, getFile, putFile, deleteFile, initiateUpload, bucket;
95985
95998
  var init_bucket_controller = __esm(() => {
95986
95999
  init_errors();
95987
96000
  init_utils11();
@@ -96031,11 +96044,35 @@ var init_bucket_controller = __esm(() => {
96031
96044
  await ctx.services.bucket.deleteFile(slug2, key, ctx.user);
96032
96045
  return { success: true, key };
96033
96046
  });
96047
+ initiateUpload = requireDeveloper(async (ctx) => {
96048
+ const slug2 = ctx.params.slug;
96049
+ if (!slug2) {
96050
+ throw ApiError.badRequest("Missing game slug");
96051
+ }
96052
+ let body2;
96053
+ try {
96054
+ const json4 = await ctx.request.json();
96055
+ if (!json4.key || typeof json4.key !== "string") {
96056
+ throw ApiError.badRequest('Missing or invalid "key"');
96057
+ }
96058
+ if (!json4.contentType || typeof json4.contentType !== "string") {
96059
+ throw ApiError.badRequest('Missing or invalid "contentType"');
96060
+ }
96061
+ body2 = { key: json4.key, contentType: json4.contentType };
96062
+ } catch (error2) {
96063
+ if (error2 instanceof ApiError) {
96064
+ throw error2;
96065
+ }
96066
+ throw ApiError.badRequest("Invalid JSON body");
96067
+ }
96068
+ return ctx.services.bucket.initiateUpload(slug2, body2.key, body2.contentType, ctx.user);
96069
+ });
96034
96070
  bucket = defineControllerNames("bucket", {
96035
96071
  listFiles,
96036
96072
  getFile,
96037
96073
  putFile,
96038
- deleteFile
96074
+ deleteFile,
96075
+ initiateUpload
96039
96076
  });
96040
96077
  });
96041
96078
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playcademy/sandbox",
3
- "version": "0.5.0",
3
+ "version": "0.5.1-beta.1",
4
4
  "description": "Local development server for Playcademy game development",
5
5
  "type": "module",
6
6
  "exports": {