@rezless/vm 0.4.0 → 0.5.0

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 (131) hide show
  1. package/dist/builtins/base64.d.ts.map +1 -1
  2. package/dist/builtins/base64.js +29 -2
  3. package/dist/builtins/base64.js.map +1 -1
  4. package/dist/builtins/chat.d.ts +7 -1
  5. package/dist/builtins/chat.d.ts.map +1 -1
  6. package/dist/builtins/chat.js +26 -29
  7. package/dist/builtins/chat.js.map +1 -1
  8. package/dist/builtins/dataserver.d.ts +2 -1
  9. package/dist/builtins/dataserver.d.ts.map +1 -1
  10. package/dist/builtins/dataserver.js +5 -4
  11. package/dist/builtins/dataserver.js.map +1 -1
  12. package/dist/builtins/debug.d.ts +4 -0
  13. package/dist/builtins/debug.d.ts.map +1 -0
  14. package/dist/builtins/debug.js +7 -0
  15. package/dist/builtins/debug.js.map +1 -0
  16. package/dist/builtins/http.d.ts +8 -1
  17. package/dist/builtins/http.d.ts.map +1 -1
  18. package/dist/builtins/http.js +87 -9
  19. package/dist/builtins/http.js.map +1 -1
  20. package/dist/builtins/identity.d.ts +2 -0
  21. package/dist/builtins/identity.d.ts.map +1 -1
  22. package/dist/builtins/identity.js +9 -1
  23. package/dist/builtins/identity.js.map +1 -1
  24. package/dist/builtins/index.d.ts.map +1 -1
  25. package/dist/builtins/index.js +29 -7
  26. package/dist/builtins/index.js.map +1 -1
  27. package/dist/builtins/inventory.d.ts +13 -2
  28. package/dist/builtins/inventory.d.ts.map +1 -1
  29. package/dist/builtins/inventory.js +82 -43
  30. package/dist/builtins/inventory.js.map +1 -1
  31. package/dist/builtins/json.d.ts.map +1 -1
  32. package/dist/builtins/json.js +11 -36
  33. package/dist/builtins/json.js.map +1 -1
  34. package/dist/builtins/link-info.d.ts +1 -1
  35. package/dist/builtins/link-info.d.ts.map +1 -1
  36. package/dist/builtins/link-info.js +2 -2
  37. package/dist/builtins/link-info.js.map +1 -1
  38. package/dist/builtins/linksetdata.d.ts.map +1 -1
  39. package/dist/builtins/linksetdata.js +298 -31
  40. package/dist/builtins/linksetdata.js.map +1 -1
  41. package/dist/builtins/listen.d.ts +3 -1
  42. package/dist/builtins/listen.d.ts.map +1 -1
  43. package/dist/builtins/listen.js +9 -1
  44. package/dist/builtins/listen.js.map +1 -1
  45. package/dist/builtins/lists.d.ts +21 -0
  46. package/dist/builtins/lists.d.ts.map +1 -1
  47. package/dist/builtins/lists.js +82 -38
  48. package/dist/builtins/lists.js.map +1 -1
  49. package/dist/builtins/math.d.ts +27 -4
  50. package/dist/builtins/math.d.ts.map +1 -1
  51. package/dist/builtins/math.js +118 -41
  52. package/dist/builtins/math.js.map +1 -1
  53. package/dist/builtins/permissions.d.ts +18 -0
  54. package/dist/builtins/permissions.d.ts.map +1 -0
  55. package/dist/builtins/permissions.js +17 -0
  56. package/dist/builtins/permissions.js.map +1 -0
  57. package/dist/builtins/prim-accessors.d.ts +1 -0
  58. package/dist/builtins/prim-accessors.d.ts.map +1 -1
  59. package/dist/builtins/prim-accessors.js +44 -42
  60. package/dist/builtins/prim-accessors.js.map +1 -1
  61. package/dist/builtins/prim-params.d.ts +1 -1
  62. package/dist/builtins/prim-params.d.ts.map +1 -1
  63. package/dist/builtins/prim-params.js +19 -11
  64. package/dist/builtins/prim-params.js.map +1 -1
  65. package/dist/builtins/strings.d.ts.map +1 -1
  66. package/dist/builtins/strings.js +37 -33
  67. package/dist/builtins/strings.js.map +1 -1
  68. package/dist/builtins/time.d.ts +2 -0
  69. package/dist/builtins/time.d.ts.map +1 -1
  70. package/dist/builtins/time.js +2 -0
  71. package/dist/builtins/time.js.map +1 -1
  72. package/dist/clock.d.ts +23 -9
  73. package/dist/clock.d.ts.map +1 -1
  74. package/dist/clock.js +40 -13
  75. package/dist/clock.js.map +1 -1
  76. package/dist/dispatch.d.ts.map +1 -1
  77. package/dist/dispatch.js +10 -3
  78. package/dist/dispatch.js.map +1 -1
  79. package/dist/index.d.ts +2 -0
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +1 -0
  82. package/dist/index.js.map +1 -1
  83. package/dist/interpreter.js +2 -2
  84. package/dist/interpreter.js.map +1 -1
  85. package/dist/inventory.d.ts +2 -0
  86. package/dist/inventory.d.ts.map +1 -1
  87. package/dist/inventory.js +4 -0
  88. package/dist/inventory.js.map +1 -1
  89. package/dist/keys.d.ts +6 -0
  90. package/dist/keys.d.ts.map +1 -0
  91. package/dist/keys.js +20 -0
  92. package/dist/keys.js.map +1 -0
  93. package/dist/linkset.d.ts +28 -3
  94. package/dist/linkset.d.ts.map +1 -1
  95. package/dist/linkset.js +66 -7
  96. package/dist/linkset.js.map +1 -1
  97. package/dist/prim-params.d.ts +5 -0
  98. package/dist/prim-params.d.ts.map +1 -1
  99. package/dist/prim-params.js +187 -107
  100. package/dist/prim-params.js.map +1 -1
  101. package/dist/prim.d.ts +6 -1
  102. package/dist/prim.d.ts.map +1 -1
  103. package/dist/prim.js +23 -3
  104. package/dist/prim.js.map +1 -1
  105. package/dist/runtime.d.ts +11 -1
  106. package/dist/runtime.d.ts.map +1 -1
  107. package/dist/script.d.ts +27 -2
  108. package/dist/script.d.ts.map +1 -1
  109. package/dist/script.js +89 -27
  110. package/dist/script.js.map +1 -1
  111. package/dist/values/coerce.d.ts +11 -0
  112. package/dist/values/coerce.d.ts.map +1 -1
  113. package/dist/values/coerce.js +65 -38
  114. package/dist/values/coerce.js.map +1 -1
  115. package/dist/values/format.d.ts +24 -16
  116. package/dist/values/format.d.ts.map +1 -1
  117. package/dist/values/format.js +42 -25
  118. package/dist/values/format.js.map +1 -1
  119. package/dist/values/ops.d.ts +2 -1
  120. package/dist/values/ops.d.ts.map +1 -1
  121. package/dist/values/ops.js +13 -5
  122. package/dist/values/ops.js.map +1 -1
  123. package/dist/values/utf8.d.ts +3 -0
  124. package/dist/values/utf8.d.ts.map +1 -0
  125. package/dist/values/utf8.js +14 -0
  126. package/dist/values/utf8.js.map +1 -0
  127. package/dist/world.d.ts +29 -0
  128. package/dist/world.d.ts.map +1 -0
  129. package/dist/world.js +29 -0
  130. package/dist/world.js.map +1 -0
  131. package/package.json +2 -2
@@ -1,47 +1,64 @@
1
1
  import { isVector, isRotation } from './types.js';
2
+ import { listElementType } from './list-types.js';
2
3
  /**
3
- * Format a float the way LSL prints it.
4
- *
5
- * LSL uses `%.6f`-style fixed notation for `(string)floatVal`, e.g.
6
- * (string)1.5 → "1.500000"
7
- * (string)0 → "0.000000"
8
- * (string)1e30 → "1.000000000000000e+30" (very large/small fall back)
9
- *
10
- * For now we approximate with toFixed(6); switch-to-scientific cutoff lives
11
- * in Phase 4 polish.
4
+ * Format a float the way LSL prints it: rounded to 7 significant digits,
5
+ * then written in fixed notation with `decimals` places, e.g.
6
+ * (string)1.5 → "1.500000"
7
+ * (string)123456789.0 → "123456800.000000"
8
+ * (string)1e30 → "1000000000000000000000000000000.000000"
12
9
  */
13
- export function formatFloat(n) {
10
+ export function formatFloat(n, decimals = 6) {
11
+ if (Number.isNaN(n))
12
+ return 'NaN';
13
+ if (!Number.isFinite(n))
14
+ return n > 0 ? 'Infinity' : '-Infinity';
15
+ const [mantissa, exp] = n.toExponential(6).split('e');
16
+ if (Number(exp) < 21)
17
+ return Number(n.toPrecision(7)).toFixed(decimals);
18
+ const digits = mantissa.replace('.', '');
19
+ return `${digits}${'0'.repeat(Number(exp) - 6)}.${'0'.repeat(decimals)}`;
20
+ }
21
+ /**
22
+ * Format a float like C `%f`: the exact digits of the 32-bit value, as
23
+ * llList2CSV and llList2Json print it, e.g. 1e30 →
24
+ * "1000000015047466219876688855040.000000".
25
+ */
26
+ export function formatFloatExact(n, decimals = 6) {
14
27
  if (Number.isNaN(n))
15
28
  return 'nan';
16
29
  if (!Number.isFinite(n))
17
30
  return n > 0 ? 'inf' : '-inf';
18
- return n.toFixed(6);
31
+ if (Math.abs(n) < 1e21)
32
+ return n.toFixed(decimals);
33
+ return `${BigInt(n)}.${'0'.repeat(decimals)}`;
19
34
  }
20
- export function formatVector(v) {
21
- return `<${formatFloat(v.x)}, ${formatFloat(v.y)}, ${formatFloat(v.z)}>`;
35
+ export function formatVector(v, decimals = 5, fmt = formatFloat) {
36
+ return `<${fmt(v.x, decimals)}, ${fmt(v.y, decimals)}, ${fmt(v.z, decimals)}>`;
22
37
  }
23
- export function formatRotation(r) {
24
- return `<${formatFloat(r.x)}, ${formatFloat(r.y)}, ${formatFloat(r.z)}, ${formatFloat(r.s)}>`;
38
+ export function formatRotation(r, decimals = 5, fmt = formatFloat) {
39
+ return `<${fmt(r.x, decimals)}, ${fmt(r.y, decimals)}, ${fmt(r.z, decimals)}, ${fmt(r.s, decimals)}>`;
25
40
  }
26
- /** Format a list element when stringifying a list with `(string)list`.
27
- * LSL concatenates element string forms WITHOUT a separator. */
28
- export function formatListElement(v) {
41
+ /**
42
+ * Format a list element the way `(string)list`, llList2String and
43
+ * llDumpList2String do (llList2CSV passes `formatFloatExact`): vectors and
44
+ * rotations get 6 decimals. Without a recorded type, a whole number reads as
45
+ * an integer.
46
+ */
47
+ export function formatListElement(v, type, fmt = formatFloat) {
29
48
  if (typeof v === 'number') {
30
- // In a list, ints stringify as ints and floats with the float format.
31
- // We can't tell from a raw JS number — assume float-ish if it has a fractional part.
32
- return Number.isInteger(v) ? String(v | 0) : formatFloat(v);
49
+ return type !== 'float' && Number.isInteger(v) ? String(v | 0) : fmt(v, 6);
33
50
  }
34
51
  if (typeof v === 'string')
35
52
  return v;
36
53
  if (isVector(v))
37
- return formatVector(v);
54
+ return formatVector(v, 6, fmt);
38
55
  if (isRotation(v))
39
- return formatRotation(v);
56
+ return formatRotation(v, 6, fmt);
40
57
  if (Array.isArray(v))
41
- return v.map(formatListElement).join('');
58
+ return formatList(v);
42
59
  return String(v);
43
60
  }
44
61
  export function formatList(list) {
45
- return list.map(formatListElement).join('');
62
+ return list.map((v, i) => formatListElement(v, listElementType(list, i))).join('');
46
63
  }
47
64
  //# sourceMappingURL=format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/values/format.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEjD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA;IACtD,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAW;IACxC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AAC/F,CAAC;AAED;iEACiE;AACjE,MAAM,UAAU,iBAAiB,CAAC,CAAW;IAC3C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,sEAAsE;QACtE,qFAAqF;QACrF,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAA;IACnC,IAAI,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAA;IACvC,IAAI,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAA;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC9D,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAA6B;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/values/format.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { EvalResult } from './types.js';
1
+ import type { EvalResult, Vector, Rotation } from './types.js';
2
2
  import { coerce, stringify } from './coerce.js';
3
3
  /**
4
4
  * Implementations of LSL binary and unary operators with the language's
@@ -13,6 +13,7 @@ import { coerce, stringify } from './coerce.js';
13
13
  export declare function applyUnary(op: '-' | '!' | '~', arg: EvalResult): EvalResult;
14
14
  export declare function truthy(r: EvalResult): boolean;
15
15
  export declare function applyBinary(op: '+' | '-' | '*' | '/' | '%' | '<<' | '>>' | '<' | '>' | '<=' | '>=' | '==' | '!=' | '&' | '^' | '|' | '&&' | '||', left: EvalResult, right: EvalResult): EvalResult;
16
+ export declare function rotateVector(v: Vector, q: Rotation): Vector;
16
17
  /** For interpreter compound-assignment helpers. */
17
18
  export declare function reduceCompound(op: '+=' | '-=' | '*=' | '/=' | '%=', left: EvalResult, right: EvalResult): EvalResult;
18
19
  export { coerce, stringify };
@@ -1 +1 @@
1
- {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/values/ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAuC,MAAM,YAAY,CAAA;AAEjF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAG/C;;;;;;;;;GASG;AAEH,wBAAgB,UAAU,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAyB3E;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAsB7C;AAeD,wBAAgB,WAAW,CACzB,EAAE,EACE,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,EACR,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,UAAU,GAChB,UAAU,CAqCZ;AAoQD,mDAAmD;AACnD,wBAAgB,cAAc,CAC5B,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EACpC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,UAAU,GAChB,UAAU,CAKZ;AAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/values/ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAEjF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAG/C;;;;;;;;;GASG;AAEH,wBAAgB,UAAU,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAyB3E;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAsB7C;AAeD,wBAAgB,WAAW,CACzB,EAAE,EACE,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,EACR,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,UAAU,GAChB,UAAU,CAwCZ;AAkQD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAK3D;AAED,mDAAmD;AACnD,wBAAgB,cAAc,CAC5B,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EACpC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,UAAU,GAChB,UAAU,CAKZ;AAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA"}
@@ -105,9 +105,15 @@ export function applyBinary(op, left, right) {
105
105
  case '==':
106
106
  return { type: 'integer', value: lslEquals(left, right) ? 1 : 0 };
107
107
  case '!=':
108
+ if (left.type === 'list' && right.type === 'list') {
109
+ return { type: 'integer', value: toInt32(listLength(left) - listLength(right)) };
110
+ }
108
111
  return { type: 'integer', value: lslEquals(left, right) ? 0 : 1 };
109
112
  }
110
113
  }
114
+ function listLength(r) {
115
+ return r.value.length;
116
+ }
111
117
  function intBinary(left, right, fn) {
112
118
  const a = coerce(left, 'integer').value;
113
119
  const b = coerce(right, 'integer').value;
@@ -165,8 +171,7 @@ function lslEquals(a, b) {
165
171
  }
166
172
  if (a.type === 'list' && b.type === 'list') {
167
173
  // LSL: list == list compares LENGTHS, not contents.
168
- return (a.value.length ===
169
- b.value.length);
174
+ return listLength(a) === listLength(b);
170
175
  }
171
176
  return false;
172
177
  }
@@ -318,17 +323,20 @@ function opMod(a, b) {
318
323
  throw new Error(`cannot modulo ${a.type} and ${b.type}`);
319
324
  }
320
325
  // ---- Quaternion math ----
326
+ /** LSL `a * b`: rotate by a, then by b. */
321
327
  function mulRotation(a, b) {
322
- // Hamilton product (LSL convention).
328
+ return hamilton(b, a);
329
+ }
330
+ function hamilton(a, b) {
323
331
  return rot(a.s * b.x + a.x * b.s + a.y * b.z - a.z * b.y, a.s * b.y - a.x * b.z + a.y * b.s + a.z * b.x, a.s * b.z + a.x * b.y - a.y * b.x + a.z * b.s, a.s * b.s - a.x * b.x - a.y * b.y - a.z * b.z);
324
332
  }
325
333
  function conjugate(q) {
326
334
  return rot(-q.x, -q.y, -q.z, q.s);
327
335
  }
328
- function rotateVector(v, q) {
336
+ export function rotateVector(v, q) {
329
337
  // v' = q * v * q⁻¹
330
338
  const qv = rot(v.x, v.y, v.z, 0);
331
- const r = mulRotation(mulRotation(q, qv), conjugate(q));
339
+ const r = hamilton(hamilton(q, qv), conjugate(q));
332
340
  return vec(r.x, r.y, r.z);
333
341
  }
334
342
  /** For interpreter compound-assignment helpers. */
@@ -1 +1 @@
1
- {"version":3,"file":"ops.js","sourceRoot":"","sources":["../../src/values/ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ops.js","sourceRoot":"","sources":["../../src/values/ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Cut `text` to at most `max` UTF-8 bytes without splitting a character. */
2
+ export declare function truncateUtf8(text: string, max: number): string;
3
+ //# sourceMappingURL=utf8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utf8.d.ts","sourceRoot":"","sources":["../../src/values/utf8.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAU9D"}
@@ -0,0 +1,14 @@
1
+ /** Cut `text` to at most `max` UTF-8 bytes without splitting a character. */
2
+ export function truncateUtf8(text, max) {
3
+ let bytes = 0;
4
+ let end = 0;
5
+ for (const ch of text) {
6
+ const cp = ch.codePointAt(0);
7
+ bytes += cp < 0x80 ? 1 : cp < 0x800 ? 2 : cp < 0x10000 ? 3 : 4;
8
+ if (bytes > max)
9
+ break;
10
+ end += ch.length;
11
+ }
12
+ return text.slice(0, end);
13
+ }
14
+ //# sourceMappingURL=utf8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../src/values/utf8.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,GAAW;IACpD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAA;QAC7B,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAI,KAAK,GAAG,GAAG;YAAE,MAAK;QACtB,GAAG,IAAI,EAAE,CAAC,MAAM,CAAA;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAC3B,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { LinksetClock } from './clock.js';
2
+ import type { Linkset } from './linkset.js';
3
+ import type { Script } from './script.js';
4
+ export interface WorldOptions {
5
+ /** Unix time in seconds at virtual time 0, read by llGetUnixTime and friends. Default 0. */
6
+ readonly startUnixTime?: number;
7
+ }
8
+ /** Global position of a region's south-west corner, in metres. Regions are 256 m squares. */
9
+ export interface RegionCorner {
10
+ readonly x: number;
11
+ readonly y: number;
12
+ }
13
+ /**
14
+ * Named regions holding several linksets. Every linkset in a world shares the
15
+ * world's clock, and chat reaches prims in other linksets by the in-world
16
+ * range rules. A linkset joins by passing `world` and `region` to its
17
+ * constructor.
18
+ */
19
+ export declare class World {
20
+ readonly clock: LinksetClock;
21
+ readonly linksets: Linkset[];
22
+ private readonly regions;
23
+ constructor(opts?: WorldOptions);
24
+ addRegion(name: string, corner: RegionCorner): void;
25
+ /** The corner of region `name`; throws for a region this world does not have. */
26
+ corner(name: string | undefined): RegionCorner;
27
+ allScripts(): Script[];
28
+ }
29
+ //# sourceMappingURL=world.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,WAAW,YAAY;IAC3B,4FAA4F;IAC5F,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,6FAA6F;AAC7F,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,qBAAa,KAAK;IAChB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAE1D,YAAY,IAAI,GAAE,YAAiB,EAElC;IAED,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAElD;IAED,iFAAiF;IACjF,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAI7C;IAED,UAAU,IAAI,MAAM,EAAE,CAErB;CACF"}
package/dist/world.js ADDED
@@ -0,0 +1,29 @@
1
+ import { LinksetClock } from './clock.js';
2
+ /**
3
+ * Named regions holding several linksets. Every linkset in a world shares the
4
+ * world's clock, and chat reaches prims in other linksets by the in-world
5
+ * range rules. A linkset joins by passing `world` and `region` to its
6
+ * constructor.
7
+ */
8
+ export class World {
9
+ clock;
10
+ linksets = [];
11
+ regions = new Map();
12
+ constructor(opts = {}) {
13
+ this.clock = new LinksetClock(opts.startUnixTime);
14
+ }
15
+ addRegion(name, corner) {
16
+ this.regions.set(name, corner);
17
+ }
18
+ /** The corner of region `name`; throws for a region this world does not have. */
19
+ corner(name) {
20
+ const corner = name === undefined ? undefined : this.regions.get(name);
21
+ if (!corner)
22
+ throw new Error(`World: no region named '${name}'`);
23
+ return corner;
24
+ }
25
+ allScripts() {
26
+ return this.linksets.flatMap((l) => l.allScripts());
27
+ }
28
+ }
29
+ //# sourceMappingURL=world.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAezC;;;;;GAKG;AACH,MAAM,OAAO,KAAK;IACP,KAAK,CAAc;IACnB,QAAQ,GAAc,EAAE,CAAA;IAChB,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAA;IAE1D,YAAY,IAAI,GAAiB,EAAE;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACnD,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,MAAoB;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,iFAAiF;IACjF,MAAM,CAAC,IAAwB;QAC7B,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACtE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,GAAG,CAAC,CAAA;QAChE,OAAO,MAAM,CAAA;IACf,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAA;IACrD,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rezless/vm",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Tree-walking interpreter and virtual clock for the Linden Scripting Language (LSL).",
5
5
  "license": "Apache-2.0",
6
6
  "author": "i-doll",
@@ -40,7 +40,7 @@
40
40
  "access": "public"
41
41
  },
42
42
  "dependencies": {
43
- "@rezless/parser": "0.4.0"
43
+ "@rezless/parser": "0.5.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "typescript": "^7.0.2"