@dcl/hammurabi-server 1.0.0-17268510028.commit-650bd27 → 1.0.0-17433232455.commit-1da764c

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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Hammurabi Server
1
+ # Hammurabi Headless
2
2
 
3
3
 
4
4
  A headless Node.js implementation of the Decentraland protocol using Babylon.js for 3D scene processing.
package/dist/cli.js CHANGED
@@ -5,44 +5,61 @@ const engine_main_1 = require("./lib/engine-main");
5
5
  // Parse arguments
6
6
  const args = process.argv.slice(2);
7
7
  let realmUrl = 'localhost:8000';
8
+ let developmentMode = true; // Default to development mode (interactive) for manual usage
8
9
  for (const arg of args) {
9
10
  if (arg === '--help' || arg === '-h') {
10
11
  console.log(`
11
- Usage: npx @dcl/hammurabi-server [--realm=<url>]
12
+ Usage: npx @dcl/hammurabi-server [--realm=<url>] [--production]
12
13
 
13
14
  Options:
14
- --realm=<url> Realm URL to connect to (default: localhost:8000)
15
- --help, -h Show this help
15
+ --realm=<url> Realm URL to connect to (default: localhost:8000)
16
+ --production Run in production mode without interactive controls (for process spawning)
17
+ --help, -h Show this help
16
18
 
17
19
  Example:
18
20
  npx @dcl/hammurabi-server --realm=localhost:8000
21
+ npx @dcl/hammurabi-server --realm=localhost:8000 --production
19
22
  `);
20
23
  process.exit(0);
21
24
  }
22
25
  if (arg.startsWith('--realm=')) {
23
26
  realmUrl = arg.split('=')[1];
24
27
  }
28
+ if (arg === '--production') {
29
+ developmentMode = false;
30
+ }
25
31
  }
26
32
  // Global error handlers
27
33
  process.on('uncaughtException', (error) => {
28
34
  console.error('❌ Error:', error.message);
29
- console.log('Press [R] to restart or [Ctrl+C] to exit');
35
+ if (developmentMode) {
36
+ console.log('Press [R] to restart or [Ctrl+C] to exit');
37
+ }
30
38
  });
31
39
  process.on('unhandledRejection', (reason) => {
32
40
  console.error('❌ Error:', reason?.message || reason);
33
- console.log('Press [R] to restart or [Ctrl+C] to exit');
41
+ if (developmentMode) {
42
+ console.log('Press [R] to restart or [Ctrl+C] to exit');
43
+ }
34
44
  });
35
45
  // Simple restart mechanism
36
46
  let isRestarting = false;
37
47
  async function start() {
38
48
  try {
39
49
  const scene = await (0, engine_main_1.main)({ realmUrl });
40
- console.log('✅ Server running - Press [R] to restart or [Ctrl+C] to exit');
50
+ if (developmentMode) {
51
+ console.log('✅ Server running - Press [R] to restart or [Ctrl+C] to exit');
52
+ }
53
+ else {
54
+ console.log('✅ Server running in production mode');
55
+ }
41
56
  return scene;
42
57
  }
43
58
  catch (error) {
44
59
  console.error('❌ Failed to start:', error.message);
45
- console.log('Press [R] to retry or [Ctrl+C] to exit');
60
+ if (developmentMode) {
61
+ console.log('Press [R] to retry or [Ctrl+C] to exit');
62
+ }
46
63
  throw error;
47
64
  }
48
65
  }
@@ -61,17 +78,19 @@ async function restart() {
61
78
  }
62
79
  isRestarting = false;
63
80
  }
64
- // Key listener
65
- process.stdin.setRawMode(true);
66
- process.stdin.resume();
67
- process.stdin.setEncoding('utf8');
68
- process.stdin.on('data', (key) => {
69
- const keyStr = key.toString();
70
- if (keyStr === 'r' || keyStr === 'R')
71
- restart();
72
- if (keyStr === '\u0003')
73
- process.exit(0); // Ctrl+C
74
- });
81
+ // Key listener - only in development mode
82
+ if (developmentMode) {
83
+ process.stdin.setRawMode(true);
84
+ process.stdin.resume();
85
+ process.stdin.setEncoding('utf8');
86
+ process.stdin.on('data', (key) => {
87
+ const keyStr = key.toString();
88
+ if (keyStr === 'r' || keyStr === 'R')
89
+ restart();
90
+ if (keyStr === '\u0003')
91
+ process.exit(0); // Ctrl+C
92
+ });
93
+ }
75
94
  // Start server
76
95
  start().catch(() => {
77
96
  // Error already logged, just setup retry listener
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AAErD,kBAAkB;AAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClC,IAAI,QAAQ,GAAG,gBAAgB,CAAA;AAC/B,IAAI,eAAe,GAAG,IAAI,CAAA,CAAE,6DAA6D;AAEzF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IACtB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;CAWf,CAAC,CAAA;QACE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QAC9B,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;KAC7B;IAED,IAAI,GAAG,KAAK,cAAc,EAAE;QAC1B,eAAe,GAAG,KAAK,CAAA;KACxB;CACF;AAED,wBAAwB;AACxB,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;IACxC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,eAAe,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;KACxD;AACH,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAW,EAAE,EAAE;IAC/C,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,CAAA;IACpD,IAAI,eAAe,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;KACxD;AACH,CAAC,CAAC,CAAA;AAEF,2BAA2B;AAC3B,IAAI,YAAY,GAAG,KAAK,CAAA;AAExB,KAAK,UAAU,KAAK;IAClB,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,IAAA,kBAAI,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;QACtC,IAAI,eAAe,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;SAC3E;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;SACnD;QACD,OAAO,KAAK,CAAA;KACb;IAAC,OAAO,KAAU,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,eAAe,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;SACtD;QACD,MAAM,KAAK,CAAA;KACZ;AACH,CAAC;AAED,KAAK,UAAU,OAAO;IACpB,IAAI,YAAY;QAAE,OAAM;IAExB,YAAY,GAAG,IAAI,CAAA;IACnB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAE/B,IAAI;QACF,IAAA,yBAAW,GAAE,CAAA;QACb,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;QACtD,MAAM,KAAK,EAAE,CAAA;KACd;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;KAClC;IAED,YAAY,GAAG,KAAK,CAAA;AACtB,CAAC;AAED,0CAA0C;AAC1C,IAAI,eAAe,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAEjC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC7B,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,CAAA;QAC/C,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,SAAS;IACpD,CAAC,CAAC,CAAA;CACH;AAED,eAAe;AACf,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;IACjB,kDAAkD;AACpD,CAAC,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { main, resetEngine, EngineOptions } from './lib/engine-main';
2
+ export type { CurrentRealm } from './lib/decentraland/state';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGpE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resetEngine = exports.main = void 0;
4
+ // Export the main functions for programmatic use
5
+ var engine_main_1 = require("./lib/engine-main");
6
+ Object.defineProperty(exports, "main", { enumerable: true, get: function () { return engine_main_1.main; } });
7
+ Object.defineProperty(exports, "resetEngine", { enumerable: true, get: function () { return engine_main_1.resetEngine; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAAiD;AACjD,iDAAoE;AAA3D,mGAAA,IAAI,OAAA;AAAE,0GAAA,WAAW,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"connect-adapter.js","sourceRoot":"","sources":["../../../../src/lib/decentraland/communications/connect-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect-adapter.js","sourceRoot":"","sources":["../../../../src/lib/decentraland/communications/connect-adapter.ts"],"names":[],"mappings":"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"}