@dcl/sdk-commands 7.21.1-22917715332.commit-e5d969d → 7.21.1-22918726402.commit-ee210ee

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.
Files changed (70) hide show
  1. package/dist/commands/code-to-composite/scene-executor.js +0 -1
  2. package/dist/commands/code-to-composite/scene-executor.js.map +1 -1
  3. package/dist/commands/deploy/utils.d.ts +2 -0
  4. package/dist/commands/deploy/utils.js +2 -1
  5. package/dist/commands/deploy/utils.js.map +1 -1
  6. package/dist/commands/sdk-server-logs/index.d.ts +21 -0
  7. package/dist/commands/sdk-server-logs/index.js +262 -0
  8. package/dist/commands/sdk-server-logs/index.js.map +1 -0
  9. package/dist/commands/start/explorer-alpha.js +4 -0
  10. package/dist/commands/start/explorer-alpha.js.map +1 -1
  11. package/dist/commands/start/hammurabi-server.d.ts +19 -0
  12. package/dist/commands/start/hammurabi-server.js +78 -0
  13. package/dist/commands/start/hammurabi-server.js.map +1 -0
  14. package/dist/commands/start/index.d.ts +2 -1
  15. package/dist/commands/start/index.js +39 -32
  16. package/dist/commands/start/index.js.map +1 -1
  17. package/dist/commands/start/server/routes.js +5 -1
  18. package/dist/commands/start/server/routes.js.map +1 -1
  19. package/dist/commands/start/server/runtime-env.d.ts +71 -0
  20. package/dist/commands/start/server/runtime-env.js +226 -0
  21. package/dist/commands/start/server/runtime-env.js.map +1 -0
  22. package/dist/commands/start/server/storage-service.d.ts +8 -0
  23. package/dist/commands/start/server/storage-service.js +156 -0
  24. package/dist/commands/start/server/storage-service.js.map +1 -0
  25. package/dist/commands/start/types.d.ts +3 -0
  26. package/dist/commands/start/utils.d.ts +34 -0
  27. package/dist/commands/start/utils.js +104 -0
  28. package/dist/commands/start/utils.js.map +1 -1
  29. package/dist/commands/storage/env.d.ts +5 -0
  30. package/dist/commands/storage/env.js +86 -0
  31. package/dist/commands/storage/env.js.map +1 -0
  32. package/dist/commands/storage/index.d.ts +26 -0
  33. package/dist/commands/storage/index.js +142 -0
  34. package/dist/commands/storage/index.js.map +1 -0
  35. package/dist/commands/storage/player.d.ts +5 -0
  36. package/dist/commands/storage/player.js +143 -0
  37. package/dist/commands/storage/player.js.map +1 -0
  38. package/dist/commands/storage/scene.d.ts +5 -0
  39. package/dist/commands/storage/scene.js +105 -0
  40. package/dist/commands/storage/scene.js.map +1 -0
  41. package/dist/commands/storage/shared.d.ts +62 -0
  42. package/dist/commands/storage/shared.js +249 -0
  43. package/dist/commands/storage/shared.js.map +1 -0
  44. package/dist/commands/storage/types.d.ts +56 -0
  45. package/dist/commands/storage/types.js +23 -0
  46. package/dist/commands/storage/types.js.map +1 -0
  47. package/dist/components/analytics.d.ts +70 -1
  48. package/dist/components/analytics.js +3 -2
  49. package/dist/components/analytics.js.map +1 -1
  50. package/dist/logic/auth-chain-headers.d.ts +11 -0
  51. package/dist/logic/auth-chain-headers.js +25 -0
  52. package/dist/logic/auth-chain-headers.js.map +1 -0
  53. package/dist/logic/bundle.js +57 -13
  54. package/dist/logic/bundle.js.map +1 -1
  55. package/dist/logic/composite.d.ts +1 -0
  56. package/dist/logic/composite.js +13 -1
  57. package/dist/logic/composite.js.map +1 -1
  58. package/dist/logic/config.d.ts +1 -0
  59. package/dist/logic/config.js +7 -0
  60. package/dist/logic/config.js.map +1 -1
  61. package/dist/logic/error.d.ts +1 -1
  62. package/dist/logic/error.js.map +1 -1
  63. package/dist/logic/exec.d.ts +1 -0
  64. package/dist/logic/exec.js +2 -2
  65. package/dist/logic/exec.js.map +1 -1
  66. package/dist/logic/lang.js +1 -0
  67. package/dist/logic/lang.js.map +1 -1
  68. package/dist/logic/scene-validations.d.ts +8 -1
  69. package/dist/logic/scene-validations.js.map +1 -1
  70. package/package.json +7 -7
@@ -66,6 +66,7 @@ const beautiful_logs_1 = require("../../logic/beautiful-logs");
66
66
  const project_validations_1 = require("../../logic/project-validations");
67
67
  const explorer_alpha_1 = require("./explorer-alpha");
68
68
  const utils_1 = require("./utils");
69
+ const hammurabi_server_1 = require("./hammurabi-server");
69
70
  exports.args = (0, args_1.declareArgs)({
70
71
  '--dir': String,
71
72
  '--help': Boolean,
@@ -83,7 +84,6 @@ exports.args = (0, args_1.declareArgs)({
83
84
  '-w': '--no-watch',
84
85
  '--skip-build': Boolean,
85
86
  '--data-layer': Boolean,
86
- '--customEntryPoint': Boolean,
87
87
  '--explorer-alpha': Boolean,
88
88
  '--web-explorer': Boolean,
89
89
  '--hub': Boolean,
@@ -98,7 +98,9 @@ exports.args = (0, args_1.declareArgs)({
98
98
  '--skip-auth-screen': Boolean,
99
99
  '--landscape-terrain-enabled': Boolean,
100
100
  '-n': Boolean,
101
- '--bevy-web': Boolean
101
+ '--bevy-web': Boolean,
102
+ '--no-client': Boolean,
103
+ '--multi-instance': Boolean
102
104
  });
103
105
  async function help(options) {
104
106
  options.components.logger.log(`
@@ -123,8 +125,9 @@ async function help(options) {
123
125
  --skip-auth-screen Skip the auth screen (accepts 'true' or 'false').
124
126
  --landscape-terrain-enabled Enable landscape terrain.
125
127
  -n Open a new instance of the Client even if one is already running.
126
- --bevy-web Opens preview using the Bevy Web browser window (default=true)
127
- --mobile, -m Show QR code for mobile preview on the same network (default=true)
128
+ --bevy-web Opens preview using the Bevy Web browser window.
129
+ --mobile Show QR code for mobile preview on the same network.
130
+ --multi-instance Allow running multiple Explorer instances simultaneously.
128
131
 
129
132
 
130
133
  Examples:
@@ -149,10 +152,10 @@ async function main(options) {
149
152
  const withDataLayer = options.args['--data-layer'];
150
153
  const enableWeb3 = options.args['--web3'];
151
154
  const isHub = !!options.args['--hub'];
152
- // Default to true if not specified (undefined), false only if explicitly set to false
153
- const bevyWeb = (options.args['--bevy-web'] ?? true) && !isCi;
154
- const isMobile = (options.args['--mobile'] ?? true) && !isCi;
155
- const explorerAlpha = !options.args['--web-explorer'] && !bevyWeb;
155
+ const skipClient = !!options.args['--no-client'];
156
+ const bevyWeb = !!options.args['--bevy-web'] && !skipClient;
157
+ const isMobile = options.args['--mobile'] && !skipClient;
158
+ const explorerAlpha = !options.args['--web-explorer'] && !bevyWeb && !skipClient;
156
159
  let hasSmartWearable = false;
157
160
  const workspace = await (0, workspace_validations_1.getValidWorkspace)(options.components, workingDirectory);
158
161
  /* istanbul ignore if */
@@ -166,15 +169,7 @@ async function main(options) {
166
169
  // first run `npm run build`, this can be disabled with --skip-build
167
170
  // then start the embedded compiler, this can be disabled with --no-watch
168
171
  if (watch || build) {
169
- await (0, build_1.buildScene)({
170
- ...options,
171
- args: {
172
- '--dir': project.workingDirectory,
173
- '--watch': watch,
174
- _: [],
175
- '--customEntryPoint': !!options.args['--customEntryPoint']
176
- }
177
- }, project);
172
+ await (0, build_1.buildScene)({ ...options, args: { '--dir': project.workingDirectory, '--watch': watch, _: [] } }, project);
178
173
  await (0, project_validations_1.startValidations)(options.components, project.workingDirectory);
179
174
  }
180
175
  // track the event
@@ -237,6 +232,22 @@ async function main(options) {
237
232
  }
238
233
  }
239
234
  await startComponents();
235
+ // Start Hammurabi server if needed (stored outside components to avoid lifecycle management)
236
+ let hammurabiServer;
237
+ const project = workspace.projects[0];
238
+ if (project) {
239
+ const realm = `http://localhost:${port}`;
240
+ hammurabiServer = (0, hammurabi_server_1.spawnAuthServer)(components, project, realm);
241
+ // Register cleanup handler for hammurabi server
242
+ if (hammurabiServer) {
243
+ const cleanup = () => {
244
+ if (hammurabiServer && !hammurabiServer.killed) {
245
+ hammurabiServer.kill('SIGTERM');
246
+ }
247
+ };
248
+ components.signaler.programClosed.then(cleanup).catch(() => { });
249
+ }
250
+ }
240
251
  const networkInterfaces = os.networkInterfaces();
241
252
  const availableURLs = [];
242
253
  (0, beautiful_logs_1.printProgressInfo)(options.components.logger, 'Preview server is now running!');
@@ -248,15 +259,14 @@ async function main(options) {
248
259
  (networkInterfaces[dev] || []).forEach((details) => {
249
260
  if (details.family === 'IPv4') {
250
261
  const oldBackpack = 'DISABLE_backpack_editor_v2=&ENABLE_backpack_editor_v1';
251
- const baseUrl = `http://${details.address}:${port}`;
252
- let url = `${baseUrl}?position=${baseCoords.x}%2C${baseCoords.y}&${oldBackpack}`;
262
+ let addr = `http://${details.address}:${port}?position=${baseCoords.x}%2C${baseCoords.y}&${oldBackpack}`;
253
263
  if (debug) {
254
- url = `${url}&SCENE_DEBUG_PANEL`;
264
+ addr = `${addr}&SCENE_DEBUG_PANEL`;
255
265
  }
256
266
  if (enableWeb3 || hasSmartWearable) {
257
- url = `${url}&ENABLE_WEB3`;
267
+ addr = `${addr}&ENABLE_WEB3`;
258
268
  }
259
- availableURLs.push({ base: baseUrl, url });
269
+ availableURLs.push(addr);
260
270
  }
261
271
  });
262
272
  });
@@ -264,29 +274,26 @@ async function main(options) {
264
274
  const lanUrl = (0, utils_1.getLanUrl)(port);
265
275
  // Push localhost and 127.0.0.1 at top
266
276
  const sortedURLs = availableURLs.sort((a, _b) => {
267
- return a.base.toLowerCase().includes('localhost') || a.base.includes('127.0.0.1') || a.base.includes('0.0.0.0')
268
- ? -1
269
- : 1;
277
+ return a.toLowerCase().includes('localhost') || a.includes('127.0.0.1') || a.includes('0.0.0.0') ? -1 : 1;
270
278
  });
271
- const bevyUrl = `https://decentraland.zone/bevy-web/?preview=true&realm=${sortedURLs[0].base}&position=${baseCoords.x},${baseCoords.y}`;
279
+ const bevyUrl = `https://decentraland.zone/bevy-web/?preview=true&realm=${new URL(sortedURLs[0]).origin}&position=${baseCoords.x},${baseCoords.y}`;
272
280
  if (!explorerAlpha) {
273
281
  if (bevyWeb) {
274
282
  components.logger.log(` ${bevyUrl}`);
275
283
  }
276
284
  else {
277
285
  for (const addr of sortedURLs) {
278
- components.logger.log(` ${addr.url}`);
286
+ components.logger.log(` ${addr}`);
279
287
  }
280
288
  }
281
289
  }
282
290
  components.logger.log('\nPress CTRL+C to exit\n');
283
- // Open preferably localhost/127.0.0.1
284
291
  if (explorerAlpha && !isMobile) {
285
- const realm = new URL(sortedURLs[0].url).origin;
292
+ const realm = new URL(sortedURLs[0]).origin;
286
293
  await (0, explorer_alpha_1.runExplorerAlpha)(components, { cwd: workingDirectory, realm, baseCoords, isHub, args: options.args });
287
294
  }
288
- if (isMobile && lanUrl) {
289
- const deepLink = `decentraland://open?preview=${lanUrl}&position=${baseCoords.x}%2C${baseCoords.y}`;
295
+ if (options.args['--mobile'] && lanUrl) {
296
+ const deepLink = `decentraland://open?preview=${lanUrl}&position=${baseCoords.x},${baseCoords.y}`;
290
297
  qrcode_1.default.toString(deepLink, { type: 'terminal', small: true }, (err, qr) => {
291
298
  if (!err) {
292
299
  components.logger.log(log_1.colors.bold('\nScan to preview on mobile: \n'));
@@ -298,7 +305,7 @@ async function main(options) {
298
305
  // Open preferably localhost/127.0.0.1
299
306
  if ((!explorerAlpha || bevyWeb) && openBrowser && sortedURLs.length) {
300
307
  try {
301
- const url = bevyWeb ? bevyUrl : sortedURLs[0].url;
308
+ const url = bevyWeb ? bevyUrl : sortedURLs[0];
302
309
  await (0, open_1.default)(url);
303
310
  }
304
311
  catch (_) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/start/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwEA,oBAqCC;AAED,oBAqMC;AApTD,uCAAwB;AACxB,2CAA4B;AAC5B,gDAAuB;AACvB,oDAA2B;AAG3B,oCAAqC;AACrC,2CAA8C;AAC9C,qEAA6D;AAC7D,6DAAmD;AAEnD,4DAA2E;AAC3E,kEAA6D;AAC7D,oFAAwF;AACxF,+DAAwF;AACxF,oEAA0E;AAC1E,0DAAyE;AACzE,8CAAuD;AACvD,8CAAoE;AACpE,sEAA0E;AAC1E,4CAA4C;AAC5C,oCAA+C;AAC/C,6DAA8D;AAC9D,0CAA6D;AAC7D,8DAAwE;AACxE,6EAAqE;AACrE,+DAAyG;AAEzG,yEAAkE;AAClE,qDAAmD;AACnD,mCAAmC;AAOtB,QAAA,IAAI,GAAG,IAAA,kBAAW,EAAC;IAC9B,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,MAAM;IAChB,YAAY,EAAE,OAAO;IACrB,cAAc,EAAE,OAAO;IACvB,YAAY,EAAE,OAAO;IACrB,MAAM,EAAE,OAAO;IACf,gBAAgB,EAAE,OAAO;IACzB,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,YAAY;IAClB,cAAc,EAAE,OAAO;IACvB,cAAc,EAAE,OAAO;IACvB,oBAAoB,EAAE,OAAO;IAC7B,kBAAkB,EAAE,OAAO;IAC3B,gBAAgB,EAAE,OAAO;IACzB,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,OAAO;IACnB,IAAI,EAAE,UAAU;IAChB,uCAAuC;IACvC,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,MAAM;IACjB,eAAe,EAAE,OAAO;IACxB,YAAY,EAAE,MAAM;IACpB,oBAAoB,EAAE,OAAO;IAC7B,6BAA6B,EAAE,OAAO;IACtC,IAAI,EAAE,OAAO;IACb,YAAY,EAAE,OAAO;CACtB,CAAC,CAAA;AAEK,KAAK,UAAU,IAAI,CAAC,OAAgB;IACzC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC/B,CAAC,CAAA;AACF,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,OAAgB;IACzC,IAAI,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAA;IAClF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,KAAK,CAAA;IAC5D,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAA;IAClD,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAA;IAC1D,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACzC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrC,sFAAsF;IACtF,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;IAC7D,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;IAC5D,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAA;IAEjE,IAAI,gBAAgB,GAAG,KAAK,CAAA;IAC5B,MAAM,SAAS,GAAG,MAAM,IAAA,yCAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAA;IAE/E,wBAAwB;IACxB,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC/B,IAAA,6BAAY,EAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,sDAAsD,CAAC,CAAA;IAEjG,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB;YAAE,gBAAgB,GAAG,IAAI,CAAA;QAC9D,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAClE,IAAA,4CAA2B,EAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;YAE1E,oEAAoE;YACpE,yEAAyE;YACzE,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;gBACnB,MAAM,IAAA,kBAAU,EACd;oBACE,GAAG,OAAO;oBACV,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,CAAC,gBAAgB;wBACjC,SAAS,EAAE,KAAK;wBAChB,CAAC,EAAE,EAAE;wBACL,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC;qBAC3D;iBACF,EACD,OAAO,CACR,CAAA;gBACD,MAAM,IAAA,sCAAgB,EAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;YACtE,CAAC;YAED,kBAAkB;YAClB,UAAU,GAAG,IAAA,iCAAa,EAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACzC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBACpD,WAAW,EAAE,MAAM,IAAA,kCAAkB,EAAC,OAAO,CAAC,gBAAgB,CAAC;gBAC/D,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,KAAK;gBAClB,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB;aAC3D,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAA,kCAAiB,EAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;IAEvE,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IACvD,MAAM,OAAO,GAAG,MAAM,sBAAS,CAAC,GAAG,CAAoB;QACrD,KAAK,CAAC,cAAc;YAClB,MAAM,OAAO,GAAG,IAAA,oCAA0B,EAAC,oBAAY,CAAC,CAAA;YACxD,MAAM,MAAM,GAAG,IAAA,iDAA2B,EAAC;gBACzC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE;gBACjC,gBAAgB,EAAE,SAAS;gBAC3B,GAAG,OAAO,CAAC,GAAG;aACf,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,MAAM,IAAA,kCAAyB,EAAC,EAAE,CAAC,CAAA;YAChD,MAAM,EAAE,GAAG,MAAM,IAAA,sBAAiB,EAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YAC5C,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAqB,EAAoB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;YACxG,MAAM,KAAK,GAAG,MAAM,IAAA,4BAAoB,EAAC;gBACvC,OAAO;gBACP,IAAI;gBACJ,MAAM;aACP,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,IAAA,uCAAyB,GAAE,CAAA;YAE5C,OAAO;gBACL,GAAG,OAAO,CAAC,UAAU;gBACrB,MAAM,EAAE,IAAA,2BAAqB,GAAE;gBAC/B,IAAI;gBACJ,gBAAgB,EAAE,sBAAgB;gBAClC,KAAK;gBACL,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,EAAE;gBACF,QAAQ;aACT,CAAA;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE;YACxC,IAAI,SAAgC,CAAA;YACpC,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,IAAI,gBAAgB,CAAA;oBACrF,SAAS,GAAG,MAAM,IAAA,qBAAe,EAAC,UAAU,EAAE,iBAAiB,CAAC,CAAA;gBAClE,CAAC;gBAAC,OAAO,CAAU,EAAE,CAAC;oBACpB,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAU,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC;YAED,MAAM,IAAA,mBAAU,EAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;YAClD,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACzC,MAAM,IAAA,iDAA2B,EAC/B,UAAU,EACV,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,IAAI,EACZ,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,OAAO,CAC7B,CAAA;gBACH,CAAC;YACH,CAAC;YACD,MAAM,eAAe,EAAE,CAAA;YAEvB,MAAM,iBAAiB,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAA;YAChD,MAAM,aAAa,GAAoC,EAAE,CAAA;YAEzD,IAAA,kCAAiB,EAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAA;YAC9E,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAC1C,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7C,CAAC;gBAAA,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAClD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;wBAC9B,MAAM,WAAW,GAAG,uDAAuD,CAAA;wBAC3E,MAAM,OAAO,GAAG,UAAU,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE,CAAA;wBACnD,IAAI,GAAG,GAAG,GAAG,OAAO,aAAa,UAAU,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,IAAI,WAAW,EAAE,CAAA;wBAChF,IAAI,KAAK,EAAE,CAAC;4BACV,GAAG,GAAG,GAAG,GAAG,oBAAoB,CAAA;wBAClC,CAAC;wBACD,IAAI,UAAU,IAAI,gBAAgB,EAAE,CAAC;4BACnC,GAAG,GAAG,GAAG,GAAG,cAAc,CAAA;wBAC5B,CAAC;wBAED,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;oBAC5C,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,6CAA6C;YAC7C,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAA;YAE9B,sCAAsC;YACtC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;gBAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC7G,CAAC,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC,CAAA;YACP,CAAC,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,0DAA0D,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAA;YACvI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,IAAI,OAAO,EAAE,CAAC;oBACZ,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAA;gBACzC,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;wBAC9B,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;oBAC1C,CAAC;gBACH,CAAC;YACH,CAAC;YACD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;YAEjD,sCAAsC;YACtC,IAAI,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;gBAC/C,MAAM,IAAA,iCAAgB,EAAC,UAAU,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YAC7G,CAAC;YAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,+BAA+B,MAAM,aAAa,UAAU,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,EAAE,CAAA;gBACnG,gBAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;oBACvE,IAAI,CAAC,GAAG,EAAE,CAAC;wBACT,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,YAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAA;wBACrE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;wBACzB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,QAAQ,iBAAiB,CAAC,CAAA;oBAC1E,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,sCAAsC;YACtC,IAAI,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACpE,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;oBACjD,MAAM,IAAA,cAAI,EAAC,GAAG,CAAC,CAAA;gBACjB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;gBACjE,CAAC;YACH,CAAC;YACD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;QACnD,CAAC;KACF,CAAC,CAAA;IAEF,mEAAmE;IACnE,8EAA8E;IAC9E,UAAU;IACV,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAA;AACjD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/start/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2EA,oBAsCC;AAED,oBA0MC;AA7TD,uCAAwB;AACxB,2CAA4B;AAC5B,gDAAuB;AACvB,oDAA2B;AAG3B,oCAAqC;AACrC,2CAA8C;AAC9C,qEAA6D;AAC7D,6DAAmD;AAEnD,4DAA2E;AAC3E,kEAA6D;AAC7D,oFAAwF;AACxF,+DAAwF;AACxF,oEAA0E;AAC1E,0DAAyE;AACzE,8CAAuD;AACvD,8CAAoE;AACpE,sEAA0E;AAC1E,4CAA4C;AAC5C,oCAA+C;AAC/C,6DAA8D;AAC9D,0CAA6D;AAC7D,8DAAwE;AACxE,6EAAqE;AACrE,+DAAyG;AAEzG,yEAAkE;AAClE,qDAAmD;AACnD,mCAAmC;AACnC,yDAAoD;AAQvC,QAAA,IAAI,GAAG,IAAA,kBAAW,EAAC;IAC9B,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,MAAM;IAChB,YAAY,EAAE,OAAO;IACrB,cAAc,EAAE,OAAO;IACvB,YAAY,EAAE,OAAO;IACrB,MAAM,EAAE,OAAO;IACf,gBAAgB,EAAE,OAAO;IACzB,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,YAAY;IAClB,cAAc,EAAE,OAAO;IACvB,cAAc,EAAE,OAAO;IACvB,kBAAkB,EAAE,OAAO;IAC3B,gBAAgB,EAAE,OAAO;IACzB,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,OAAO;IACnB,IAAI,EAAE,UAAU;IAChB,uCAAuC;IACvC,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,MAAM;IACjB,eAAe,EAAE,OAAO;IACxB,YAAY,EAAE,MAAM;IACpB,oBAAoB,EAAE,OAAO;IAC7B,6BAA6B,EAAE,OAAO;IACtC,IAAI,EAAE,OAAO;IACb,YAAY,EAAE,OAAO;IACrB,aAAa,EAAE,OAAO;IACtB,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAA;AAEK,KAAK,UAAU,IAAI,CAAC,OAAgB;IACzC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC/B,CAAC,CAAA;AACF,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,OAAgB;IACzC,IAAI,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAA;IAClF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,KAAK,CAAA;IAC5D,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAA;IAClD,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAA;IAC1D,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACzC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAA;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAA;IACxD,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAA;IAEhF,IAAI,gBAAgB,GAAG,KAAK,CAAA;IAC5B,MAAM,SAAS,GAAG,MAAM,IAAA,yCAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAA;IAE/E,wBAAwB;IACxB,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC/B,IAAA,6BAAY,EAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,sDAAsD,CAAC,CAAA;IAEjG,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB;YAAE,gBAAgB,GAAG,IAAI,CAAA;QAC9D,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAClE,IAAA,4CAA2B,EAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;YAE1E,oEAAoE;YACpE,yEAAyE;YACzE,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;gBACnB,MAAM,IAAA,kBAAU,EAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;gBAC/G,MAAM,IAAA,sCAAgB,EAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;YACtE,CAAC;YAED,kBAAkB;YAClB,UAAU,GAAG,IAAA,iCAAa,EAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACzC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBACpD,WAAW,EAAE,MAAM,IAAA,kCAAkB,EAAC,OAAO,CAAC,gBAAgB,CAAC;gBAC/D,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,KAAK;gBAClB,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB;aAC3D,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAA,kCAAiB,EAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;IAEvE,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IACvD,MAAM,OAAO,GAAG,MAAM,sBAAS,CAAC,GAAG,CAAoB;QACrD,KAAK,CAAC,cAAc;YAClB,MAAM,OAAO,GAAG,IAAA,oCAA0B,EAAC,oBAAY,CAAC,CAAA;YACxD,MAAM,MAAM,GAAG,IAAA,iDAA2B,EAAC;gBACzC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE;gBACjC,gBAAgB,EAAE,SAAS;gBAC3B,GAAG,OAAO,CAAC,GAAG;aACf,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,MAAM,IAAA,kCAAyB,EAAC,EAAE,CAAC,CAAA;YAChD,MAAM,EAAE,GAAG,MAAM,IAAA,sBAAiB,EAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YAC5C,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAqB,EAAoB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;YACxG,MAAM,KAAK,GAAG,MAAM,IAAA,4BAAoB,EAAC;gBACvC,OAAO;gBACP,IAAI;gBACJ,MAAM;aACP,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,IAAA,uCAAyB,GAAE,CAAA;YAE5C,OAAO;gBACL,GAAG,OAAO,CAAC,UAAU;gBACrB,MAAM,EAAE,IAAA,2BAAqB,GAAE;gBAC/B,IAAI;gBACJ,gBAAgB,EAAE,sBAAgB;gBAClC,KAAK;gBACL,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,EAAE;gBACF,QAAQ;aACT,CAAA;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE;YACxC,IAAI,SAAgC,CAAA;YACpC,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,IAAI,gBAAgB,CAAA;oBACrF,SAAS,GAAG,MAAM,IAAA,qBAAe,EAAC,UAAU,EAAE,iBAAiB,CAAC,CAAA;gBAClE,CAAC;gBAAC,OAAO,CAAU,EAAE,CAAC;oBACpB,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAU,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC;YAED,MAAM,IAAA,mBAAU,EAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;YAClD,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACzC,MAAM,IAAA,iDAA2B,EAC/B,UAAU,EACV,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,IAAI,EACZ,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,OAAO,CAC7B,CAAA;gBACH,CAAC;YACH,CAAC;YACD,MAAM,eAAe,EAAE,CAAA;YAEvB,6FAA6F;YAC7F,IAAI,eAAyC,CAAA;YAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACrC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,oBAAoB,IAAI,EAAE,CAAA;gBACxC,eAAe,GAAG,IAAA,kCAAe,EAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;gBAE7D,gDAAgD;gBAChD,IAAI,eAAe,EAAE,CAAC;oBACpB,MAAM,OAAO,GAAG,GAAG,EAAE;wBACnB,IAAI,eAAe,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;4BAC/C,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;wBACjC,CAAC;oBACH,CAAC,CAAA;oBACD,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;gBACjE,CAAC;YACH,CAAC;YAED,MAAM,iBAAiB,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAA;YAChD,MAAM,aAAa,GAAa,EAAE,CAAA;YAElC,IAAA,kCAAiB,EAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAA;YAC9E,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAC1C,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7C,CAAC;gBAAA,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAClD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;wBAC9B,MAAM,WAAW,GAAG,uDAAuD,CAAA;wBAC3E,IAAI,IAAI,GAAG,UAAU,OAAO,CAAC,OAAO,IAAI,IAAI,aAAa,UAAU,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,IAAI,WAAW,EAAE,CAAA;wBACxG,IAAI,KAAK,EAAE,CAAC;4BACV,IAAI,GAAG,GAAG,IAAI,oBAAoB,CAAA;wBACpC,CAAC;wBACD,IAAI,UAAU,IAAI,gBAAgB,EAAE,CAAC;4BACnC,IAAI,GAAG,GAAG,IAAI,cAAc,CAAA;wBAC9B,CAAC;wBAED,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC1B,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,6CAA6C;YAC7C,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAA;YAE9B,sCAAsC;YACtC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;gBAC9C,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3G,CAAC,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,0DACd,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MACzB,aAAa,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAA;YAC3C,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,IAAI,OAAO,EAAE,CAAC;oBACZ,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAA;gBACzC,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;wBAC9B,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;YAEjD,IAAI,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;gBAC3C,MAAM,IAAA,iCAAgB,EAAC,UAAU,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YAC7G,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvC,MAAM,QAAQ,GAAG,+BAA+B,MAAM,aAAa,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAA;gBACjG,gBAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;oBACvE,IAAI,CAAC,GAAG,EAAE,CAAC;wBACT,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,YAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAA;wBACrE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;wBACzB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,QAAQ,iBAAiB,CAAC,CAAA;oBAC1E,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,sCAAsC;YACtC,IAAI,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACpE,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;oBAC7C,MAAM,IAAA,cAAI,EAAC,GAAG,CAAC,CAAA;gBACjB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;gBACjE,CAAC;YACH,CAAC;YACD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;QACnD,CAAC;KACF,CAAC,CAAA;IAEF,mEAAmE;IACnE,8EAA8E;IAC9E,UAAU;IACV,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAA;AACjD,CAAC"}
@@ -10,6 +10,7 @@ const http_server_1 = require("@well-known-components/http-server");
10
10
  const ws_1 = require("@well-known-components/http-server/dist/ws");
11
11
  const ws_2 = require("../data-layer/ws");
12
12
  const endpoints_1 = require("./endpoints");
13
+ const storage_service_1 = require("./storage-service");
13
14
  const realm_1 = require("./realm");
14
15
  const utils_1 = require("../utils");
15
16
  exports.sceneUpdateClients = new Set();
@@ -30,6 +31,7 @@ async function wireRouter(components, workspace, dataLayer) {
30
31
  return next();
31
32
  });
32
33
  const localSceneParcels = [];
34
+ const baseParcel = workspace.projects[0].scene.scene.base;
33
35
  for (const project of workspace.projects) {
34
36
  for (const parcel of project.scene.scene.parcels) {
35
37
  localSceneParcels.push(parcel);
@@ -44,7 +46,8 @@ async function wireRouter(components, workspace, dataLayer) {
44
46
  body: { ok: false, error: 'No LAN IP address found' }
45
47
  };
46
48
  }
47
- const deepLink = `decentraland://open?preview=${lanUrl}`;
49
+ const [x, y] = baseParcel.split(',');
50
+ const deepLink = `decentraland://open?preview=${lanUrl}&position=${x},${y}`;
48
51
  const qrDataUrl = await qrcode_1.default.toDataURL(deepLink);
49
52
  return {
50
53
  headers: { 'content-type': 'application/json' },
@@ -58,6 +61,7 @@ async function wireRouter(components, workspace, dataLayer) {
58
61
  };
59
62
  });
60
63
  (0, realm_1.setupRealmAndComms)(components, router, localSceneParcels);
64
+ (0, storage_service_1.setupStorageEndpoints)(components, router, workspace);
61
65
  await (0, endpoints_1.setupEcs6Endpoints)(components, router, workspace);
62
66
  components.server.setContext(components);
63
67
  components.server.use(router.allowedMethods());
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../src/commands/start/server/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../src/commands/start/server/routes.ts"],"names":[],"mappings":";;;;;;AAcA,gCA8DC;AA5ED,oDAA2B;AAC3B,oEAA2D;AAC3D,mEAAqF;AAIrF,yCAAoD;AAEpD,2CAAgD;AAChD,uDAAyD;AACzD,mCAA4C;AAC5C,oCAAoC;AAEvB,QAAA,kBAAkB,GAAG,IAAI,GAAG,EAAa,CAAA;AAC/C,KAAK,UAAU,UAAU,CAAC,UAA6B,EAAE,SAAoB,EAAE,SAAqB;IACzG,MAAM,MAAM,GAAG,IAAI,oBAAM,EAAqB,CAAA;IAE9C,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC5C,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,WAAW,EAAE,CAAC;gBACvD,OAAO,IAAA,6BAAwB,EAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,sBAAiB,EAAC,UAAU,EAAE,EAAS,EAAE,SAAS,CAAC,CAAC,CAAA;YAC9F,CAAC;YAED,OAAO,IAAI,EAAE,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAClC,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,WAAW,EAAE,CAAC;YACvD,OAAO,IAAA,6BAAwB,EAAC,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAsB,EAAE,0BAAkB,CAAC,CAAC,CAAA;QACvG,CAAC;QAED,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAa,EAAE,CAAA;IACtC,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAA;IACzD,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACjD,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE;aACtD,CAAA;QACH,CAAC;QAED,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,QAAQ,GAAG,+BAA+B,MAAM,aAAa,CAAC,IAAI,CAAC,EAAE,CAAA;QAC3E,MAAM,SAAS,GAAG,MAAM,gBAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAElD,OAAO;YACL,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE;gBACJ,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE;oBACJ,GAAG,EAAE,QAAQ;oBACb,EAAE,EAAE,SAAS;iBACd;aACF;SACF,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAA,0BAAkB,EAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACzD,IAAA,uCAAqB,EAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IACpD,MAAM,IAAA,8BAAkB,EAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAEvD,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IACxC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAA;IAC9C,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,EAAa,EAAE,OAAuB,EAAE,EAAE;IAClE,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;IACD,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAA"}
@@ -0,0 +1,71 @@
1
+ import { CliComponents } from '../../../components';
2
+ /**
3
+ * Structure for all server-side storage data.
4
+ * Stored in sdk-commands package directory (hidden from users).
5
+ */
6
+ export interface ServerStorage {
7
+ env: Record<string, string>;
8
+ world: Record<string, unknown>;
9
+ players: Record<string, Record<string, unknown>>;
10
+ }
11
+ /**
12
+ * Loads all server-side storage data from server-storage.json.
13
+ */
14
+ export declare function loadServerStorage(components: Pick<CliComponents, 'fs' | 'logger'>): Promise<ServerStorage>;
15
+ /**
16
+ * Saves all server-side storage data to server-storage.json.
17
+ */
18
+ export declare function saveServerStorage(components: Pick<CliComponents, 'fs' | 'logger'>, data: ServerStorage): Promise<void>;
19
+ /**
20
+ * Loads environment variables from a .env file in the project directory.
21
+ * Returns a Map of key-value pairs.
22
+ */
23
+ export declare function loadEnvFile(components: Pick<CliComponents, 'fs' | 'logger'>, projectDirectory: string): Promise<Map<string, string>>;
24
+ /**
25
+ * Gets runtime environment variables.
26
+ */
27
+ export declare function getEnvStorage(components: Pick<CliComponents, 'fs' | 'logger'>): Promise<Record<string, string>>;
28
+ /**
29
+ * Gets merged environment variables.
30
+ * Runtime values (from server-storage.json) override .env values.
31
+ */
32
+ export declare function getMergedEnv(components: Pick<CliComponents, 'fs' | 'logger'>, projectDirectory: string): Promise<Map<string, string>>;
33
+ /**
34
+ * Sets a runtime environment variable.
35
+ */
36
+ export declare function setEnvValue(components: Pick<CliComponents, 'fs' | 'logger'>, key: string, value: string): Promise<void>;
37
+ /**
38
+ * Deletes a runtime environment variable.
39
+ * Returns true if key existed and was deleted, false otherwise.
40
+ */
41
+ export declare function deleteEnvValue(components: Pick<CliComponents, 'fs' | 'logger'>, key: string): Promise<boolean>;
42
+ /**
43
+ * Gets all world storage data.
44
+ */
45
+ export declare function getWorldStorage(components: Pick<CliComponents, 'fs' | 'logger'>): Promise<Record<string, unknown>>;
46
+ /**
47
+ * Gets a value from world storage.
48
+ */
49
+ export declare function getWorldValue(components: Pick<CliComponents, 'fs' | 'logger'>, key: string): Promise<unknown | undefined>;
50
+ /**
51
+ * Sets a value in world storage.
52
+ */
53
+ export declare function setWorldValue(components: Pick<CliComponents, 'fs' | 'logger'>, key: string, value: unknown): Promise<void>;
54
+ /**
55
+ * Deletes a value from world storage.
56
+ * Returns true if key existed and was deleted, false otherwise.
57
+ */
58
+ export declare function deleteWorldValue(components: Pick<CliComponents, 'fs' | 'logger'>, key: string): Promise<boolean>;
59
+ /**
60
+ * Gets a value from a player's storage.
61
+ */
62
+ export declare function getPlayerValue(components: Pick<CliComponents, 'fs' | 'logger'>, address: string, key: string): Promise<unknown | undefined>;
63
+ /**
64
+ * Sets a value in a player's storage.
65
+ */
66
+ export declare function setPlayerValue(components: Pick<CliComponents, 'fs' | 'logger'>, address: string, key: string, value: unknown): Promise<void>;
67
+ /**
68
+ * Deletes a value from a player's storage.
69
+ * Returns true if key existed and was deleted, false otherwise.
70
+ */
71
+ export declare function deletePlayerValue(components: Pick<CliComponents, 'fs' | 'logger'>, address: string, key: string): Promise<boolean>;
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadServerStorage = loadServerStorage;
7
+ exports.saveServerStorage = saveServerStorage;
8
+ exports.loadEnvFile = loadEnvFile;
9
+ exports.getEnvStorage = getEnvStorage;
10
+ exports.getMergedEnv = getMergedEnv;
11
+ exports.setEnvValue = setEnvValue;
12
+ exports.deleteEnvValue = deleteEnvValue;
13
+ exports.getWorldStorage = getWorldStorage;
14
+ exports.getWorldValue = getWorldValue;
15
+ exports.setWorldValue = setWorldValue;
16
+ exports.deleteWorldValue = deleteWorldValue;
17
+ exports.getPlayerValue = getPlayerValue;
18
+ exports.setPlayerValue = setPlayerValue;
19
+ exports.deletePlayerValue = deletePlayerValue;
20
+ const path_1 = __importDefault(require("path"));
21
+ // Find the sdk-commands package root by resolving its package.json
22
+ const SDK_COMMANDS_ROOT = path_1.default.dirname(require.resolve('@dcl/sdk-commands/package.json'));
23
+ const RUNTIME_DATA_DIR = path_1.default.join(SDK_COMMANDS_ROOT, '.runtime-data');
24
+ const SERVER_STORAGE_FILE = 'server-storage.json';
25
+ const DEFAULT_STORAGE = {
26
+ env: {},
27
+ world: {},
28
+ players: {}
29
+ };
30
+ /**
31
+ * Ensures the runtime data directory exists.
32
+ */
33
+ async function ensureRuntimeDir(components) {
34
+ try {
35
+ const exists = await components.fs.directoryExists(RUNTIME_DATA_DIR);
36
+ if (!exists) {
37
+ await components.fs.mkdir(RUNTIME_DATA_DIR, { recursive: true });
38
+ }
39
+ }
40
+ catch (error) {
41
+ components.logger.error(`Failed to create runtime data directory: ${error}`);
42
+ }
43
+ }
44
+ /**
45
+ * Loads all server-side storage data from server-storage.json.
46
+ */
47
+ async function loadServerStorage(components) {
48
+ const storagePath = path_1.default.join(RUNTIME_DATA_DIR, SERVER_STORAGE_FILE);
49
+ try {
50
+ const exists = await components.fs.fileExists(storagePath);
51
+ if (!exists) {
52
+ return { ...DEFAULT_STORAGE };
53
+ }
54
+ const content = await components.fs.readFile(storagePath, 'utf-8');
55
+ const parsed = JSON.parse(content);
56
+ // Merge with defaults to ensure all keys exist
57
+ return {
58
+ env: parsed.env ?? {},
59
+ world: parsed.world ?? {},
60
+ players: parsed.players ?? {}
61
+ };
62
+ }
63
+ catch (error) {
64
+ components.logger.error(`Failed to load ${SERVER_STORAGE_FILE}: ${error}`);
65
+ return { ...DEFAULT_STORAGE };
66
+ }
67
+ }
68
+ /**
69
+ * Saves all server-side storage data to server-storage.json.
70
+ */
71
+ async function saveServerStorage(components, data) {
72
+ await ensureRuntimeDir(components);
73
+ const storagePath = path_1.default.join(RUNTIME_DATA_DIR, SERVER_STORAGE_FILE);
74
+ try {
75
+ await components.fs.writeFile(storagePath, JSON.stringify(data, null, 2));
76
+ }
77
+ catch (error) {
78
+ components.logger.error(`Failed to save ${SERVER_STORAGE_FILE}: ${error}`);
79
+ throw error;
80
+ }
81
+ }
82
+ /**
83
+ * Loads environment variables from a .env file in the project directory.
84
+ * Returns a Map of key-value pairs.
85
+ */
86
+ async function loadEnvFile(components, projectDirectory) {
87
+ const envMap = new Map();
88
+ const envPath = path_1.default.join(projectDirectory, '.env');
89
+ try {
90
+ const exists = await components.fs.fileExists(envPath);
91
+ if (!exists) {
92
+ return envMap;
93
+ }
94
+ const content = await components.fs.readFile(envPath, 'utf-8');
95
+ const lines = content.split('\n');
96
+ for (const line of lines) {
97
+ const trimmed = line.trim();
98
+ // Skip empty lines and comments
99
+ if (!trimmed || trimmed.startsWith('#')) {
100
+ continue;
101
+ }
102
+ const equalIndex = trimmed.indexOf('=');
103
+ if (equalIndex > 0) {
104
+ const key = trimmed.slice(0, equalIndex).trim();
105
+ let value = trimmed.slice(equalIndex + 1).trim();
106
+ // Remove surrounding quotes if present
107
+ if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
108
+ value = value.slice(1, -1);
109
+ }
110
+ envMap.set(key, value);
111
+ }
112
+ }
113
+ }
114
+ catch (error) {
115
+ components.logger.error(`Failed to load .env file: ${error}`);
116
+ }
117
+ return envMap;
118
+ }
119
+ /**
120
+ * Gets runtime environment variables.
121
+ */
122
+ async function getEnvStorage(components) {
123
+ const storage = await loadServerStorage(components);
124
+ return storage.env;
125
+ }
126
+ /**
127
+ * Gets merged environment variables.
128
+ * Runtime values (from server-storage.json) override .env values.
129
+ */
130
+ async function getMergedEnv(components, projectDirectory) {
131
+ const envFile = await loadEnvFile(components, projectDirectory);
132
+ const runtimeEnv = await getEnvStorage(components);
133
+ // Runtime overrides .env
134
+ for (const [key, value] of Object.entries(runtimeEnv)) {
135
+ envFile.set(key, value);
136
+ }
137
+ return envFile;
138
+ }
139
+ /**
140
+ * Sets a runtime environment variable.
141
+ */
142
+ async function setEnvValue(components, key, value) {
143
+ const storage = await loadServerStorage(components);
144
+ storage.env[key] = value;
145
+ await saveServerStorage(components, storage);
146
+ }
147
+ /**
148
+ * Deletes a runtime environment variable.
149
+ * Returns true if key existed and was deleted, false otherwise.
150
+ */
151
+ async function deleteEnvValue(components, key) {
152
+ const storage = await loadServerStorage(components);
153
+ if (!(key in storage.env)) {
154
+ return false;
155
+ }
156
+ delete storage.env[key];
157
+ await saveServerStorage(components, storage);
158
+ return true;
159
+ }
160
+ /**
161
+ * Gets all world storage data.
162
+ */
163
+ async function getWorldStorage(components) {
164
+ const storage = await loadServerStorage(components);
165
+ return storage.world;
166
+ }
167
+ /**
168
+ * Gets a value from world storage.
169
+ */
170
+ async function getWorldValue(components, key) {
171
+ const storage = await loadServerStorage(components);
172
+ return storage.world[key];
173
+ }
174
+ /**
175
+ * Sets a value in world storage.
176
+ */
177
+ async function setWorldValue(components, key, value) {
178
+ const storage = await loadServerStorage(components);
179
+ storage.world[key] = value;
180
+ await saveServerStorage(components, storage);
181
+ }
182
+ /**
183
+ * Deletes a value from world storage.
184
+ * Returns true if key existed and was deleted, false otherwise.
185
+ */
186
+ async function deleteWorldValue(components, key) {
187
+ const storage = await loadServerStorage(components);
188
+ if (!(key in storage.world)) {
189
+ return false;
190
+ }
191
+ delete storage.world[key];
192
+ await saveServerStorage(components, storage);
193
+ return true;
194
+ }
195
+ /**
196
+ * Gets a value from a player's storage.
197
+ */
198
+ async function getPlayerValue(components, address, key) {
199
+ const storage = await loadServerStorage(components);
200
+ return storage.players[address]?.[key];
201
+ }
202
+ /**
203
+ * Sets a value in a player's storage.
204
+ */
205
+ async function setPlayerValue(components, address, key, value) {
206
+ const storage = await loadServerStorage(components);
207
+ if (!storage.players[address]) {
208
+ storage.players[address] = {};
209
+ }
210
+ storage.players[address][key] = value;
211
+ await saveServerStorage(components, storage);
212
+ }
213
+ /**
214
+ * Deletes a value from a player's storage.
215
+ * Returns true if key existed and was deleted, false otherwise.
216
+ */
217
+ async function deletePlayerValue(components, address, key) {
218
+ const storage = await loadServerStorage(components);
219
+ if (!storage.players[address] || !(key in storage.players[address])) {
220
+ return false;
221
+ }
222
+ delete storage.players[address][key];
223
+ await saveServerStorage(components, storage);
224
+ return true;
225
+ }
226
+ //# sourceMappingURL=runtime-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-env.js","sourceRoot":"","sources":["../../../../src/commands/start/server/runtime-env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Router } from '@well-known-components/http-server';
2
+ import { PreviewComponents } from '../types';
3
+ import { CliComponents } from '../../../components';
4
+ import { Workspace } from '../../../logic/workspace-validations';
5
+ /**
6
+ * Sets up storage-related endpoints for environment variables, scene storage, and player storage.
7
+ */
8
+ export declare function setupStorageEndpoints(components: CliComponents, router: Router<PreviewComponents>, workspace: Workspace): void;