@rezless/vm 0.1.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 (175) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +32 -0
  3. package/dist/builtins/base64.d.ts +25 -0
  4. package/dist/builtins/base64.d.ts.map +1 -0
  5. package/dist/builtins/base64.js +43 -0
  6. package/dist/builtins/base64.js.map +1 -0
  7. package/dist/builtins/chat.d.ts +10 -0
  8. package/dist/builtins/chat.d.ts.map +1 -0
  9. package/dist/builtins/chat.js +36 -0
  10. package/dist/builtins/chat.js.map +1 -0
  11. package/dist/builtins/dataserver.d.ts +26 -0
  12. package/dist/builtins/dataserver.d.ts.map +1 -0
  13. package/dist/builtins/dataserver.js +20 -0
  14. package/dist/builtins/dataserver.js.map +1 -0
  15. package/dist/builtins/detected.d.ts +40 -0
  16. package/dist/builtins/detected.d.ts.map +1 -0
  17. package/dist/builtins/detected.js +23 -0
  18. package/dist/builtins/detected.js.map +1 -0
  19. package/dist/builtins/hash.d.ts +6 -0
  20. package/dist/builtins/hash.d.ts.map +1 -0
  21. package/dist/builtins/hash.js +34 -0
  22. package/dist/builtins/hash.js.map +1 -0
  23. package/dist/builtins/http.d.ts +40 -0
  24. package/dist/builtins/http.d.ts.map +1 -0
  25. package/dist/builtins/http.js +87 -0
  26. package/dist/builtins/http.js.map +1 -0
  27. package/dist/builtins/identity.d.ts +14 -0
  28. package/dist/builtins/identity.d.ts.map +1 -0
  29. package/dist/builtins/identity.js +17 -0
  30. package/dist/builtins/identity.js.map +1 -0
  31. package/dist/builtins/index.d.ts +8 -0
  32. package/dist/builtins/index.d.ts.map +1 -0
  33. package/dist/builtins/index.js +232 -0
  34. package/dist/builtins/index.js.map +1 -0
  35. package/dist/builtins/inventory.d.ts +33 -0
  36. package/dist/builtins/inventory.d.ts.map +1 -0
  37. package/dist/builtins/inventory.js +134 -0
  38. package/dist/builtins/inventory.js.map +1 -0
  39. package/dist/builtins/json.d.ts +7 -0
  40. package/dist/builtins/json.d.ts.map +1 -0
  41. package/dist/builtins/json.js +690 -0
  42. package/dist/builtins/json.js.map +1 -0
  43. package/dist/builtins/link-info.d.ts +10 -0
  44. package/dist/builtins/link-info.d.ts.map +1 -0
  45. package/dist/builtins/link-info.js +26 -0
  46. package/dist/builtins/link-info.js.map +1 -0
  47. package/dist/builtins/linked.d.ts +23 -0
  48. package/dist/builtins/linked.d.ts.map +1 -0
  49. package/dist/builtins/linked.js +20 -0
  50. package/dist/builtins/linked.js.map +1 -0
  51. package/dist/builtins/linksetdata.d.ts +20 -0
  52. package/dist/builtins/linksetdata.d.ts.map +1 -0
  53. package/dist/builtins/linksetdata.js +196 -0
  54. package/dist/builtins/linksetdata.js.map +1 -0
  55. package/dist/builtins/listen.d.ts +33 -0
  56. package/dist/builtins/listen.d.ts.map +1 -0
  57. package/dist/builtins/listen.js +45 -0
  58. package/dist/builtins/listen.js.map +1 -0
  59. package/dist/builtins/lists.d.ts +37 -0
  60. package/dist/builtins/lists.d.ts.map +1 -0
  61. package/dist/builtins/lists.js +275 -0
  62. package/dist/builtins/lists.js.map +1 -0
  63. package/dist/builtins/math.d.ts +32 -0
  64. package/dist/builtins/math.d.ts.map +1 -0
  65. package/dist/builtins/math.js +104 -0
  66. package/dist/builtins/math.js.map +1 -0
  67. package/dist/builtins/object.d.ts +29 -0
  68. package/dist/builtins/object.d.ts.map +1 -0
  69. package/dist/builtins/object.js +50 -0
  70. package/dist/builtins/object.js.map +1 -0
  71. package/dist/builtins/prim-accessors.d.ts +56 -0
  72. package/dist/builtins/prim-accessors.d.ts.map +1 -0
  73. package/dist/builtins/prim-accessors.js +353 -0
  74. package/dist/builtins/prim-accessors.js.map +1 -0
  75. package/dist/builtins/prim-params.d.ts +12 -0
  76. package/dist/builtins/prim-params.d.ts.map +1 -0
  77. package/dist/builtins/prim-params.js +124 -0
  78. package/dist/builtins/prim-params.js.map +1 -0
  79. package/dist/builtins/script-control.d.ts +13 -0
  80. package/dist/builtins/script-control.d.ts.map +1 -0
  81. package/dist/builtins/script-control.js +41 -0
  82. package/dist/builtins/script-control.js.map +1 -0
  83. package/dist/builtins/strings.d.ts +23 -0
  84. package/dist/builtins/strings.d.ts.map +1 -0
  85. package/dist/builtins/strings.js +130 -0
  86. package/dist/builtins/strings.js.map +1 -0
  87. package/dist/builtins/time.d.ts +28 -0
  88. package/dist/builtins/time.d.ts.map +1 -0
  89. package/dist/builtins/time.js +54 -0
  90. package/dist/builtins/time.js.map +1 -0
  91. package/dist/clock.d.ts +75 -0
  92. package/dist/clock.d.ts.map +1 -0
  93. package/dist/clock.js +125 -0
  94. package/dist/clock.js.map +1 -0
  95. package/dist/coverage.d.ts +110 -0
  96. package/dist/coverage.d.ts.map +1 -0
  97. package/dist/coverage.js +221 -0
  98. package/dist/coverage.js.map +1 -0
  99. package/dist/dispatch.d.ts +19 -0
  100. package/dist/dispatch.d.ts.map +1 -0
  101. package/dist/dispatch.js +42 -0
  102. package/dist/dispatch.js.map +1 -0
  103. package/dist/env.d.ts +33 -0
  104. package/dist/env.d.ts.map +1 -0
  105. package/dist/env.js +76 -0
  106. package/dist/env.js.map +1 -0
  107. package/dist/generated/constants.d.ts +967 -0
  108. package/dist/generated/constants.d.ts.map +1 -0
  109. package/dist/generated/constants.js +969 -0
  110. package/dist/generated/constants.js.map +1 -0
  111. package/dist/generated/constants_table.d.ts +11 -0
  112. package/dist/generated/constants_table.d.ts.map +1 -0
  113. package/dist/generated/constants_table.js +978 -0
  114. package/dist/generated/constants_table.js.map +1 -0
  115. package/dist/generated/events.d.ts +545 -0
  116. package/dist/generated/events.d.ts.map +1 -0
  117. package/dist/generated/events.js +49 -0
  118. package/dist/generated/events.js.map +1 -0
  119. package/dist/generated/functions.d.ts +6051 -0
  120. package/dist/generated/functions.d.ts.map +1 -0
  121. package/dist/generated/functions.js +526 -0
  122. package/dist/generated/functions.js.map +1 -0
  123. package/dist/index.d.ts +21 -0
  124. package/dist/index.d.ts.map +1 -0
  125. package/dist/index.js +11 -0
  126. package/dist/index.js.map +1 -0
  127. package/dist/interpreter.d.ts +39 -0
  128. package/dist/interpreter.d.ts.map +1 -0
  129. package/dist/interpreter.js +381 -0
  130. package/dist/interpreter.js.map +1 -0
  131. package/dist/inventory.d.ts +52 -0
  132. package/dist/inventory.d.ts.map +1 -0
  133. package/dist/inventory.js +45 -0
  134. package/dist/inventory.js.map +1 -0
  135. package/dist/linkset.d.ts +89 -0
  136. package/dist/linkset.d.ts.map +1 -0
  137. package/dist/linkset.js +179 -0
  138. package/dist/linkset.js.map +1 -0
  139. package/dist/prim-params.d.ts +221 -0
  140. package/dist/prim-params.d.ts.map +1 -0
  141. package/dist/prim-params.js +852 -0
  142. package/dist/prim-params.js.map +1 -0
  143. package/dist/prim.d.ts +79 -0
  144. package/dist/prim.d.ts.map +1 -0
  145. package/dist/prim.js +96 -0
  146. package/dist/prim.js.map +1 -0
  147. package/dist/random.d.ts +16 -0
  148. package/dist/random.d.ts.map +1 -0
  149. package/dist/random.js +29 -0
  150. package/dist/random.js.map +1 -0
  151. package/dist/runtime.d.ts +108 -0
  152. package/dist/runtime.d.ts.map +1 -0
  153. package/dist/runtime.js +2 -0
  154. package/dist/runtime.js.map +1 -0
  155. package/dist/script.d.ts +248 -0
  156. package/dist/script.d.ts.map +1 -0
  157. package/dist/script.js +667 -0
  158. package/dist/script.js.map +1 -0
  159. package/dist/values/coerce.d.ts +22 -0
  160. package/dist/values/coerce.d.ts.map +1 -0
  161. package/dist/values/coerce.js +184 -0
  162. package/dist/values/coerce.js.map +1 -0
  163. package/dist/values/format.d.ts +20 -0
  164. package/dist/values/format.d.ts.map +1 -0
  165. package/dist/values/format.js +47 -0
  166. package/dist/values/format.js.map +1 -0
  167. package/dist/values/ops.d.ts +19 -0
  168. package/dist/values/ops.d.ts.map +1 -0
  169. package/dist/values/ops.js +345 -0
  170. package/dist/values/ops.js.map +1 -0
  171. package/dist/values/types.d.ts +39 -0
  172. package/dist/values/types.d.ts.map +1 -0
  173. package/dist/values/types.js +68 -0
  174. package/dist/values/types.js.map +1 -0
  175. package/package.json +52 -0
@@ -0,0 +1,275 @@
1
+ import { isVector, isRotation, ZERO_VECTOR, ZERO_ROTATION, NULL_KEY, toInt32 } from '../values/types.js';
2
+ import { formatList } from '../values/format.js';
3
+ /** llGetListLength(list l) — number of elements. */
4
+ export const llGetListLength = (_ctx, args) => {
5
+ const l = args[0];
6
+ return (l?.length ?? 0) | 0;
7
+ };
8
+ /**
9
+ * Resolve an index that may be negative (counts from the end) and bound it
10
+ * to [0, length). Returns -1 for out-of-range so callers can short-circuit
11
+ * to the LSL default.
12
+ */
13
+ function resolveIndex(idx, len) {
14
+ if (idx < 0)
15
+ idx = len + idx;
16
+ if (idx < 0 || idx >= len)
17
+ return -1;
18
+ return idx;
19
+ }
20
+ /** llList2Integer(list l, integer i) — element coerced to integer (0 default). */
21
+ export const llList2Integer = (_ctx, args) => {
22
+ const l = args[0];
23
+ if (!l)
24
+ return 0;
25
+ const i = resolveIndex(args[1] ?? 0, l.length);
26
+ if (i < 0)
27
+ return 0;
28
+ const v = l[i];
29
+ if (typeof v === 'number')
30
+ return toInt32(Math.trunc(v));
31
+ if (typeof v === 'string') {
32
+ const n = Number.parseInt(v, 10);
33
+ return Number.isNaN(n) ? 0 : toInt32(n);
34
+ }
35
+ return 0;
36
+ };
37
+ export const llList2Float = (_ctx, args) => {
38
+ const l = args[0];
39
+ if (!l)
40
+ return 0;
41
+ const i = resolveIndex(args[1] ?? 0, l.length);
42
+ if (i < 0)
43
+ return 0;
44
+ const v = l[i];
45
+ if (typeof v === 'number')
46
+ return v;
47
+ if (typeof v === 'string') {
48
+ const n = Number.parseFloat(v);
49
+ return Number.isNaN(n) ? 0 : n;
50
+ }
51
+ return 0;
52
+ };
53
+ export const llList2String = (_ctx, args) => {
54
+ const l = args[0];
55
+ if (!l)
56
+ return '';
57
+ const i = resolveIndex(args[1] ?? 0, l.length);
58
+ if (i < 0)
59
+ return '';
60
+ const v = l[i];
61
+ if (typeof v === 'string')
62
+ return v;
63
+ if (typeof v === 'number')
64
+ return Number.isInteger(v) ? String(v | 0) : v.toFixed(6);
65
+ if (Array.isArray(v))
66
+ return formatList(v);
67
+ if (isVector(v)) {
68
+ const u = v;
69
+ return `<${u.x.toFixed(6)}, ${u.y.toFixed(6)}, ${u.z.toFixed(6)}>`;
70
+ }
71
+ if (isRotation(v)) {
72
+ const r = v;
73
+ return `<${r.x.toFixed(6)}, ${r.y.toFixed(6)}, ${r.z.toFixed(6)}, ${r.s.toFixed(6)}>`;
74
+ }
75
+ return '';
76
+ };
77
+ export const llList2Key = (_ctx, args) => {
78
+ const l = args[0];
79
+ if (!l)
80
+ return NULL_KEY;
81
+ const i = resolveIndex(args[1] ?? 0, l.length);
82
+ if (i < 0)
83
+ return NULL_KEY;
84
+ const v = l[i];
85
+ return typeof v === 'string' ? v : NULL_KEY;
86
+ };
87
+ export const llList2Vector = (_ctx, args) => {
88
+ const l = args[0];
89
+ if (!l)
90
+ return ZERO_VECTOR;
91
+ const i = resolveIndex(args[1] ?? 0, l.length);
92
+ if (i < 0)
93
+ return ZERO_VECTOR;
94
+ const v = l[i];
95
+ return isVector(v) ? v : ZERO_VECTOR;
96
+ };
97
+ export const llList2Rot = (_ctx, args) => {
98
+ const l = args[0];
99
+ if (!l)
100
+ return ZERO_ROTATION;
101
+ const i = resolveIndex(args[1] ?? 0, l.length);
102
+ if (i < 0)
103
+ return ZERO_ROTATION;
104
+ const v = l[i];
105
+ return isRotation(v) ? v : ZERO_ROTATION;
106
+ };
107
+ /**
108
+ * llList2List(list src, integer start, integer end) — inclusive slice.
109
+ * Same wrap rules as llGetSubString.
110
+ */
111
+ export const llList2List = (_ctx, args) => {
112
+ const src = args[0];
113
+ if (!src)
114
+ return [];
115
+ const len = src.length;
116
+ if (len === 0)
117
+ return [];
118
+ let start = args[1] ?? 0;
119
+ let end = args[2] ?? 0;
120
+ if (start < 0)
121
+ start = Math.max(0, len + start);
122
+ else
123
+ start = Math.min(len - 1, start);
124
+ if (end < 0)
125
+ end = Math.max(0, len + end);
126
+ else
127
+ end = Math.min(len - 1, end);
128
+ if (start <= end)
129
+ return src.slice(start, end + 1);
130
+ return [...src.slice(0, end + 1), ...src.slice(start)];
131
+ };
132
+ /**
133
+ * llDeleteSubList(list src, integer start, integer end) — inverse of
134
+ * llList2List. Same wrap rules.
135
+ */
136
+ export const llDeleteSubList = (_ctx, args) => {
137
+ const src = args[0];
138
+ if (!src)
139
+ return [];
140
+ const len = src.length;
141
+ let start = args[1] ?? 0;
142
+ let end = args[2] ?? 0;
143
+ if (start < 0)
144
+ start = Math.max(0, len + start);
145
+ else
146
+ start = Math.min(len - 1, start);
147
+ if (end < 0)
148
+ end = Math.max(0, len + end);
149
+ else
150
+ end = Math.min(len - 1, end);
151
+ if (start <= end)
152
+ return [...src.slice(0, start), ...src.slice(end + 1)];
153
+ return src.slice(end + 1, start);
154
+ };
155
+ /** llListInsertList(list dst, list src, integer pos) — inserts src at pos. */
156
+ export const llListInsertList = (_ctx, args) => {
157
+ const dst = args[0] ?? [];
158
+ const src = args[1] ?? [];
159
+ let pos = args[2] ?? 0;
160
+ if (pos < 0)
161
+ pos = Math.max(0, dst.length + pos);
162
+ pos = Math.min(dst.length, pos);
163
+ return [...dst.slice(0, pos), ...src, ...dst.slice(pos)];
164
+ };
165
+ /**
166
+ * llListReplaceList(list dst, list src, integer start, integer end)
167
+ * — replaces dst[start..end] (inclusive) with src.
168
+ */
169
+ export const llListReplaceList = (_ctx, args) => {
170
+ const dst = args[0] ?? [];
171
+ const src = args[1] ?? [];
172
+ const len = dst.length;
173
+ let start = args[2] ?? 0;
174
+ let end = args[3] ?? 0;
175
+ if (start < 0)
176
+ start = Math.max(0, len + start);
177
+ else
178
+ start = Math.min(len, start);
179
+ if (end < 0)
180
+ end = Math.max(0, len + end);
181
+ else
182
+ end = Math.min(len - 1, end);
183
+ if (start <= end)
184
+ return [...dst.slice(0, start), ...src, ...dst.slice(end + 1)];
185
+ // wrapped — match LSL: replaces [0..end] and [start..end-of-list] both
186
+ return [...src, ...dst.slice(end + 1, start)];
187
+ };
188
+ /**
189
+ * llListFindList(list src, list test) — index of first occurrence of `test`
190
+ * as a contiguous subsequence in `src`, or -1. Empty `test` returns 0
191
+ * (per LSL).
192
+ */
193
+ export const llListFindList = (_ctx, args) => {
194
+ const src = args[0] ?? [];
195
+ const test = args[1] ?? [];
196
+ if (test.length === 0)
197
+ return 0;
198
+ outer: for (let i = 0; i <= src.length - test.length; i++) {
199
+ for (let j = 0; j < test.length; j++) {
200
+ const a = src[i + j];
201
+ const b = test[j];
202
+ if (!lslElementsEqual(a, b))
203
+ continue outer;
204
+ }
205
+ return i;
206
+ }
207
+ return -1;
208
+ };
209
+ function lslElementsEqual(a, b) {
210
+ if (a === b)
211
+ return true;
212
+ if (typeof a === 'object' && typeof b === 'object' && a && b) {
213
+ return JSON.stringify(a) === JSON.stringify(b);
214
+ }
215
+ return false;
216
+ }
217
+ export const llDumpList2String = (_ctx, args) => {
218
+ const list = args[0] ?? [];
219
+ const sep = args[1] ?? '';
220
+ return list.map((v) => {
221
+ if (typeof v === 'string')
222
+ return v;
223
+ if (typeof v === 'number')
224
+ return Number.isInteger(v) ? String(v | 0) : v.toFixed(6);
225
+ if (Array.isArray(v))
226
+ return formatList(v);
227
+ if (isVector(v)) {
228
+ const u = v;
229
+ return `<${u.x.toFixed(6)}, ${u.y.toFixed(6)}, ${u.z.toFixed(6)}>`;
230
+ }
231
+ if (isRotation(v)) {
232
+ const r = v;
233
+ return `<${r.x.toFixed(6)}, ${r.y.toFixed(6)}, ${r.z.toFixed(6)}, ${r.s.toFixed(6)}>`;
234
+ }
235
+ return '';
236
+ }).join(sep);
237
+ };
238
+ export const llCSV2List = (_ctx, args) => {
239
+ const s = args[0] ?? '';
240
+ if (s === '')
241
+ return [];
242
+ return s.split(/,\s*/);
243
+ };
244
+ export const llParseString2List = (_ctx, args) => {
245
+ const src = args[0] ?? '';
246
+ const seps = args[1] ?? [];
247
+ const keep = args[2] ?? [];
248
+ const allTokens = [...seps.filter((x) => typeof x === 'string'), ...keep.filter((x) => typeof x === 'string')];
249
+ if (allTokens.length === 0)
250
+ return src ? [src] : [];
251
+ const out = [];
252
+ let buffer = '';
253
+ let i = 0;
254
+ while (i < src.length) {
255
+ const matched = allTokens
256
+ .filter((t) => t.length > 0 && src.startsWith(t, i))
257
+ .sort((a, b) => b.length - a.length)[0];
258
+ if (matched) {
259
+ if (buffer)
260
+ out.push(buffer);
261
+ buffer = '';
262
+ if (keep.includes(matched))
263
+ out.push(matched);
264
+ i += matched.length;
265
+ }
266
+ else {
267
+ buffer += src[i];
268
+ i++;
269
+ }
270
+ }
271
+ if (buffer)
272
+ out.push(buffer);
273
+ return out;
274
+ };
275
+ //# sourceMappingURL=lists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/builtins/lists.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { BuiltinImpl } from '../runtime.js';
2
+ /** llAbs(integer val) — absolute value (integer). */
3
+ export declare const llAbs: BuiltinImpl;
4
+ /** llFabs(float val) — absolute value (float). */
5
+ export declare const llFabs: BuiltinImpl;
6
+ /** llRound(float val) — banker's rounding per LSL (round-half-to-even). */
7
+ export declare const llRound: BuiltinImpl;
8
+ export declare const llCeil: BuiltinImpl;
9
+ export declare const llFloor: BuiltinImpl;
10
+ export declare const llPow: BuiltinImpl;
11
+ export declare const llSqrt: BuiltinImpl;
12
+ export declare const llSin: BuiltinImpl;
13
+ export declare const llCos: BuiltinImpl;
14
+ export declare const llTan: BuiltinImpl;
15
+ export declare const llAsin: BuiltinImpl;
16
+ export declare const llAcos: BuiltinImpl;
17
+ export declare const llAtan2: BuiltinImpl;
18
+ export declare const llLog: BuiltinImpl;
19
+ export declare const llLog10: BuiltinImpl;
20
+ /** llFrand(float mag) — seeded uniform [0, mag). Negative mag → [mag, 0). */
21
+ export declare const llFrand: BuiltinImpl;
22
+ export declare const llVecMag: BuiltinImpl;
23
+ export declare const llVecNorm: BuiltinImpl;
24
+ export declare const llVecDist: BuiltinImpl;
25
+ /**
26
+ * llRot2Euler(rotation r) → vector (x, y, z) Euler angles in radians.
27
+ * Uses the LSL convention (extrinsic XYZ, ZYX intrinsic equivalent).
28
+ */
29
+ export declare const llRot2Euler: BuiltinImpl;
30
+ /** llEuler2Rot(vector v) → rotation. Inverse of llRot2Euler. */
31
+ export declare const llEuler2Rot: BuiltinImpl;
32
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/builtins/math.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD,qDAAqD;AACrD,eAAO,MAAM,KAAK,EAAE,WAEnB,CAAA;AAED,kDAAkD;AAClD,eAAO,MAAM,MAAM,EAAE,WAEpB,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,OAAO,EAAE,WAQrB,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,WACgC,CAAA;AACrD,eAAO,MAAM,OAAO,EAAE,WACgC,CAAA;AAEtD,eAAO,MAAM,KAAK,EAAE,WAC0C,CAAA;AAC9D,eAAO,MAAM,MAAM,EAAE,WAAiE,CAAA;AACtF,eAAO,MAAM,KAAK,EAAE,WAAgE,CAAA;AACpF,eAAO,MAAM,KAAK,EAAE,WAAgE,CAAA;AACpF,eAAO,MAAM,KAAK,EAAE,WAAgE,CAAA;AACpF,eAAO,MAAM,MAAM,EAAE,WAAiE,CAAA;AACtF,eAAO,MAAM,MAAM,EAAE,WAAiE,CAAA;AACtF,eAAO,MAAM,OAAO,EAAE,WAC0C,CAAA;AAChE,eAAO,MAAM,KAAK,EAAE,WAAgE,CAAA;AACpF,eAAO,MAAM,OAAO,EAAE,WAAkE,CAAA;AAExF,6EAA6E;AAC7E,eAAO,MAAM,OAAO,EAAE,WAGrB,CAAA;AAID,eAAO,MAAM,QAAQ,EAAE,WAKtB,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,WAOvB,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,WAQvB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,WAazB,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,WAAW,EAAE,WAezB,CAAA"}
@@ -0,0 +1,104 @@
1
+ import { isVector } from '../values/types.js';
2
+ /** llAbs(integer val) — absolute value (integer). */
3
+ export const llAbs = (_ctx, args) => {
4
+ return Math.abs(args[0] ?? 0) | 0;
5
+ };
6
+ /** llFabs(float val) — absolute value (float). */
7
+ export const llFabs = (_ctx, args) => {
8
+ return Math.abs(args[0] ?? 0);
9
+ };
10
+ /** llRound(float val) — banker's rounding per LSL (round-half-to-even). */
11
+ export const llRound = (_ctx, args) => {
12
+ const x = args[0] ?? 0;
13
+ const floor = Math.floor(x);
14
+ const diff = x - floor;
15
+ if (diff < 0.5)
16
+ return floor | 0;
17
+ if (diff > 0.5)
18
+ return (floor + 1) | 0;
19
+ // exact half — round to even
20
+ return ((floor % 2 === 0 ? floor : floor + 1) | 0);
21
+ };
22
+ export const llCeil = (_ctx, args) => Math.ceil(args[0] ?? 0) | 0;
23
+ export const llFloor = (_ctx, args) => Math.floor(args[0] ?? 0) | 0;
24
+ export const llPow = (_ctx, args) => Math.pow(args[0] ?? 0, args[1] ?? 0);
25
+ export const llSqrt = (_ctx, args) => Math.sqrt(args[0] ?? 0);
26
+ export const llSin = (_ctx, args) => Math.sin(args[0] ?? 0);
27
+ export const llCos = (_ctx, args) => Math.cos(args[0] ?? 0);
28
+ export const llTan = (_ctx, args) => Math.tan(args[0] ?? 0);
29
+ export const llAsin = (_ctx, args) => Math.asin(args[0] ?? 0);
30
+ export const llAcos = (_ctx, args) => Math.acos(args[0] ?? 0);
31
+ export const llAtan2 = (_ctx, args) => Math.atan2(args[0] ?? 0, args[1] ?? 0);
32
+ export const llLog = (_ctx, args) => Math.log(args[0] ?? 0);
33
+ export const llLog10 = (_ctx, args) => Math.log10(args[0] ?? 0);
34
+ /** llFrand(float mag) — seeded uniform [0, mag). Negative mag → [mag, 0). */
35
+ export const llFrand = (ctx, args) => {
36
+ const mag = args[0] ?? 0;
37
+ return ctx.state.random.next() * mag;
38
+ };
39
+ // ---- Vector / rotation math ----
40
+ export const llVecMag = (_ctx, args) => {
41
+ const v = args[0];
42
+ if (!v || typeof v !== 'object' || !isVector(v))
43
+ return 0;
44
+ const u = v;
45
+ return Math.sqrt(u.x * u.x + u.y * u.y + u.z * u.z);
46
+ };
47
+ export const llVecNorm = (_ctx, args) => {
48
+ const v = args[0];
49
+ if (!v || typeof v !== 'object' || !isVector(v))
50
+ return { x: 0, y: 0, z: 0 };
51
+ const u = v;
52
+ const m = Math.sqrt(u.x * u.x + u.y * u.y + u.z * u.z);
53
+ if (m === 0)
54
+ return { x: 0, y: 0, z: 0 };
55
+ return { x: u.x / m, y: u.y / m, z: u.z / m };
56
+ };
57
+ export const llVecDist = (_ctx, args) => {
58
+ const a = args[0];
59
+ const b = args[1];
60
+ if (!a || !b)
61
+ return 0;
62
+ const dx = a.x - b.x;
63
+ const dy = a.y - b.y;
64
+ const dz = a.z - b.z;
65
+ return Math.sqrt(dx * dx + dy * dy + dz * dz);
66
+ };
67
+ /**
68
+ * llRot2Euler(rotation r) → vector (x, y, z) Euler angles in radians.
69
+ * Uses the LSL convention (extrinsic XYZ, ZYX intrinsic equivalent).
70
+ */
71
+ export const llRot2Euler = (_ctx, args) => {
72
+ const q = args[0];
73
+ if (!q)
74
+ return { x: 0, y: 0, z: 0 };
75
+ // Standard quaternion → Euler (ZYX) conversion.
76
+ const sinr_cosp = 2 * (q.s * q.x + q.y * q.z);
77
+ const cosr_cosp = 1 - 2 * (q.x * q.x + q.y * q.y);
78
+ const x = Math.atan2(sinr_cosp, cosr_cosp);
79
+ const sinp = 2 * (q.s * q.y - q.z * q.x);
80
+ const y = Math.abs(sinp) >= 1 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp);
81
+ const siny_cosp = 2 * (q.s * q.z + q.x * q.y);
82
+ const cosy_cosp = 1 - 2 * (q.y * q.y + q.z * q.z);
83
+ const z = Math.atan2(siny_cosp, cosy_cosp);
84
+ return { x, y, z };
85
+ };
86
+ /** llEuler2Rot(vector v) → rotation. Inverse of llRot2Euler. */
87
+ export const llEuler2Rot = (_ctx, args) => {
88
+ const v = args[0];
89
+ if (!v)
90
+ return { x: 0, y: 0, z: 0, s: 1 };
91
+ const cy = Math.cos(v.z * 0.5);
92
+ const sy = Math.sin(v.z * 0.5);
93
+ const cp = Math.cos(v.y * 0.5);
94
+ const sp = Math.sin(v.y * 0.5);
95
+ const cr = Math.cos(v.x * 0.5);
96
+ const sr = Math.sin(v.x * 0.5);
97
+ return {
98
+ x: sr * cp * cy - cr * sp * sy,
99
+ y: cr * sp * cy + sr * cp * sy,
100
+ z: cr * cp * sy - sr * sp * cy,
101
+ s: cr * cp * cy + sr * sp * sy,
102
+ };
103
+ };
104
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/builtins/math.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { BuiltinImpl } from '../runtime.js';
2
+ /**
3
+ * Builtins that read or mutate the prim's appearance / lifecycle. We
4
+ * model them with structured state on the Script — `s.text` exposes
5
+ * floating text; `s.dead` indicates the script called llDie.
6
+ */
7
+ /** llSetText(string text, vector color, float alpha) — floating prim text. */
8
+ export declare const llSetText: BuiltinImpl;
9
+ /** llSetObjectDesc(string desc) — sets the prim's description field. */
10
+ export declare const llSetObjectDesc: BuiltinImpl;
11
+ /** llGetObjectDesc() */
12
+ export declare const llGetObjectDesc: BuiltinImpl;
13
+ /**
14
+ * llDie() — deletes the entire linked object. In real LSL this kills
15
+ * every prim and every script in the linkset, not just the calling one.
16
+ * We mark every script in the linkset as dead and cancel their timers;
17
+ * subsequent events on any of them are dropped silently. (Real LSL takes
18
+ * a frame to actually delete, but for tests we mark immediately.)
19
+ */
20
+ export declare const llDie: BuiltinImpl;
21
+ /**
22
+ * llResetScript() — reset globals to their initial values, return to the
23
+ * `default` state, and run state_entry. Implemented by the Script handle:
24
+ * the builtin throws a sentinel that runHandler / drainQueue catch.
25
+ */
26
+ export declare class ResetScriptSignal {
27
+ }
28
+ export declare const llResetScript: BuiltinImpl;
29
+ //# sourceMappingURL=object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/builtins/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD;;;;GAIG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,SAAS,EAAE,WAQvB,CAAA;AAED,wEAAwE;AACxE,eAAO,MAAM,eAAe,EAAE,WAM7B,CAAA;AAED,wBAAwB;AACxB,eAAO,MAAM,eAAe,EAAE,WAA2C,CAAA;AAEzE;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,WAKnB,CAAA;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;CAAG;AACjC,eAAO,MAAM,aAAa,EAAE,WAE3B,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { PRIM_DESC, PRIM_TEXT } from '../generated/constants.js';
2
+ /**
3
+ * Builtins that read or mutate the prim's appearance / lifecycle. We
4
+ * model them with structured state on the Script — `s.text` exposes
5
+ * floating text; `s.dead` indicates the script called llDie.
6
+ */
7
+ /** llSetText(string text, vector color, float alpha) — floating prim text. */
8
+ export const llSetText = (ctx, args) => {
9
+ const text = args[0] ?? '';
10
+ const color = args[1] ?? { x: 1, y: 1, z: 1 };
11
+ const alpha = args[2] ?? 1;
12
+ // Route through the PRIM_TEXT seam — `ctx.state.appearance` is aliased
13
+ // to `prim.appearance`, so legacy `s.text` reads see this write too.
14
+ ctx.prim.setPrimParam(PRIM_TEXT, [text, color, alpha], 0);
15
+ return undefined;
16
+ };
17
+ /** llSetObjectDesc(string desc) — sets the prim's description field. */
18
+ export const llSetObjectDesc = (ctx, args) => {
19
+ const desc = args[0] ?? '';
20
+ // Route through the PRIM_DESC seam so llGetPrimitiveParams sees the same
21
+ // value. The seam mirrors to ScriptState.appearance via prim.appearance.
22
+ ctx.prim.setPrimParam(PRIM_DESC, [desc], 0);
23
+ return undefined;
24
+ };
25
+ /** llGetObjectDesc() */
26
+ export const llGetObjectDesc = (ctx) => ctx.prim.description;
27
+ /**
28
+ * llDie() — deletes the entire linked object. In real LSL this kills
29
+ * every prim and every script in the linkset, not just the calling one.
30
+ * We mark every script in the linkset as dead and cancel their timers;
31
+ * subsequent events on any of them are dropped silently. (Real LSL takes
32
+ * a frame to actually delete, but for tests we mark immediately.)
33
+ */
34
+ export const llDie = (ctx) => {
35
+ for (const s of ctx.linkset.allScripts()) {
36
+ s.markDead();
37
+ }
38
+ return undefined;
39
+ };
40
+ /**
41
+ * llResetScript() — reset globals to their initial values, return to the
42
+ * `default` state, and run state_entry. Implemented by the Script handle:
43
+ * the builtin throws a sentinel that runHandler / drainQueue catch.
44
+ */
45
+ export class ResetScriptSignal {
46
+ }
47
+ export const llResetScript = () => {
48
+ throw new ResetScriptSignal();
49
+ };
50
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/builtins/object.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAEhE;;;;GAIG;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,SAAS,GAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,IAAI,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,EAAE,CAAA;IAClD,MAAM,KAAK,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACrE,MAAM,KAAK,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,CAAC,CAAA;IAClD,uEAAuE;IACvE,qEAAqE;IACrE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACzD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,wEAAwE;AACxE,MAAM,CAAC,MAAM,eAAe,GAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IACxD,MAAM,IAAI,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,EAAE,CAAA;IAClD,yEAAyE;IACzE,yEAAyE;IACzE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3C,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,wBAAwB;AACxB,MAAM,CAAC,MAAM,eAAe,GAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAA;AAEzE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAgB,CAAC,GAAG,EAAE,EAAE;IACxC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QACzC,CAAC,CAAC,QAAQ,EAAE,CAAA;IACd,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;CAAG;AACjC,MAAM,CAAC,MAAM,aAAa,GAAgB,GAAG,EAAE;IAC7C,MAAM,IAAI,iBAAiB,EAAE,CAAA;AAC/B,CAAC,CAAA"}
@@ -0,0 +1,56 @@
1
+ import type { BuiltinImpl } from '../runtime.js';
2
+ export declare const llSetPos: BuiltinImpl;
3
+ export declare const llGetPos: BuiltinImpl;
4
+ export declare const llGetLocalPos: BuiltinImpl;
5
+ export declare const llGetRootPosition: BuiltinImpl;
6
+ export declare const llSetRot: BuiltinImpl;
7
+ export declare const llSetLocalRot: BuiltinImpl;
8
+ export declare const llGetRot: BuiltinImpl;
9
+ export declare const llGetLocalRot: BuiltinImpl;
10
+ export declare const llGetRootRotation: BuiltinImpl;
11
+ export declare const llSetScale: BuiltinImpl;
12
+ export declare const llGetScale: BuiltinImpl;
13
+ export declare const llScaleByFactor: BuiltinImpl;
14
+ export declare const llGetMaxScaleFactor: BuiltinImpl;
15
+ export declare const llGetMinScaleFactor: BuiltinImpl;
16
+ export declare const llSetColor: BuiltinImpl;
17
+ export declare const llGetColor: BuiltinImpl;
18
+ export declare const llSetAlpha: BuiltinImpl;
19
+ export declare const llGetAlpha: BuiltinImpl;
20
+ export declare const llSetTexture: BuiltinImpl;
21
+ export declare const llGetTexture: BuiltinImpl;
22
+ export declare const llGetTextureOffset: BuiltinImpl;
23
+ export declare const llGetTextureScale: BuiltinImpl;
24
+ export declare const llGetTextureRot: BuiltinImpl;
25
+ export declare const llScaleTexture: BuiltinImpl;
26
+ export declare const llOffsetTexture: BuiltinImpl;
27
+ export declare const llRotateTexture: BuiltinImpl;
28
+ export declare const llSetLinkColor: BuiltinImpl;
29
+ export declare const llSetLinkAlpha: BuiltinImpl;
30
+ export declare const llSetLinkTexture: BuiltinImpl;
31
+ export declare const llSetTextureAnim: BuiltinImpl;
32
+ export declare const llSetLinkTextureAnim: BuiltinImpl;
33
+ /**
34
+ * Same effect as llSetLinkTextureAnim per the wiki. Kept as a distinct
35
+ * function (not an alias) so call-log telemetry / mocks can key on
36
+ * function identity.
37
+ */
38
+ export declare const llSetLinkTextureAnimOverrideMe: BuiltinImpl;
39
+ export declare const llSetRenderMaterial: BuiltinImpl;
40
+ export declare const llGetRenderMaterial: BuiltinImpl;
41
+ export declare const llSetStatus: BuiltinImpl;
42
+ export declare const llGetStatus: BuiltinImpl;
43
+ export declare const llSetLinkStatus: BuiltinImpl;
44
+ export declare const llSetClickAction: BuiltinImpl;
45
+ export declare const llTargetOmega: BuiltinImpl;
46
+ export declare const llSetPhysicsMaterial: BuiltinImpl;
47
+ export declare const llGetPhysicsMaterial: BuiltinImpl;
48
+ export declare const llPassCollisions: BuiltinImpl;
49
+ export declare const llPassTouches: BuiltinImpl;
50
+ export declare const llSitTarget: BuiltinImpl;
51
+ export declare const llLinkSitTarget: BuiltinImpl;
52
+ export declare const llAvatarOnSitTarget: BuiltinImpl;
53
+ export declare const llAvatarOnLinkSitTarget: BuiltinImpl;
54
+ export declare const llSetLinkSitFlags: BuiltinImpl;
55
+ export declare const llGetLinkSitFlags: BuiltinImpl;
56
+ //# sourceMappingURL=prim-accessors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prim-accessors.d.ts","sourceRoot":"","sources":["../../src/builtins/prim-accessors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AA2ChD,eAAO,MAAM,QAAQ,EAAE,WAGtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,WAA+C,CAAA;AACtE,eAAO,MAAM,aAAa,EAAE,WAA+C,CAAA;AAC3E,eAAO,MAAM,iBAAiB,EAAE,WAG/B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,WAGtB,CAAA;AACD,eAAO,MAAM,aAAa,EAAE,WAG3B,CAAA;AACD,eAAO,MAAM,QAAQ,EAAE,WAA+C,CAAA;AACtE,eAAO,MAAM,aAAa,EAAE,WAA+C,CAAA;AAC3E,eAAO,MAAM,iBAAiB,EAAE,WAG/B,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,WAGxB,CAAA;AACD,eAAO,MAAM,UAAU,EAAE,WAA2C,CAAA;AAEpE,eAAO,MAAM,eAAe,EAAE,WAQ7B,CAAA;AACD,eAAO,MAAM,mBAAmB,EAAE,WAAsB,CAAA;AACxD,eAAO,MAAM,mBAAmB,EAAE,WAAwB,CAAA;AAM1D,eAAO,MAAM,UAAU,EAAE,WAYxB,CAAA;AACD,eAAO,MAAM,UAAU,EAAE,WAaxB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,WASxB,CAAA;AACD,eAAO,MAAM,UAAU,EAAE,WASxB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,WAM1B,CAAA;AACD,eAAO,MAAM,YAAY,EAAE,WAI1B,CAAA;AACD,eAAO,MAAM,kBAAkB,EAAE,WAIhC,CAAA;AACD,eAAO,MAAM,iBAAiB,EAAE,WAI/B,CAAA;AACD,eAAO,MAAM,eAAe,EAAE,WAI7B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,WAO5B,CAAA;AACD,eAAO,MAAM,eAAe,EAAE,WAO7B,CAAA;AACD,eAAO,MAAM,eAAe,EAAE,WAM7B,CAAA;AAMD,eAAO,MAAM,cAAc,EAAE,WAU5B,CAAA;AACD,eAAO,MAAM,cAAc,EAAE,WAS5B,CAAA;AACD,eAAO,MAAM,gBAAgB,EAAE,WAS9B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,WAW9B,CAAA;AACD,eAAO,MAAM,oBAAoB,EAAE,WAelC,CAAA;AACD;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,EAAE,WACZ,CAAA;AAEjC,eAAO,MAAM,mBAAmB,EAAE,WAKjC,CAAA;AACD,eAAO,MAAM,mBAAmB,EAAE,WAIjC,CAAA;AAMD,eAAO,MAAM,WAAW,EAAE,WAKzB,CAAA;AACD,eAAO,MAAM,WAAW,EAAE,WAGzB,CAAA;AACD,eAAO,MAAM,eAAe,EAAE,WAM7B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,WAG9B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,WAG3B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,WAYlC,CAAA;AACD,eAAO,MAAM,oBAAoB,EAAE,WAGlC,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,WAG9B,CAAA;AACD,eAAO,MAAM,aAAa,EAAE,WAG3B,CAAA;AAMD,eAAO,MAAM,WAAW,EAAE,WAOzB,CAAA;AACD,eAAO,MAAM,eAAe,EAAE,WAS7B,CAAA;AACD,eAAO,MAAM,mBAAmB,EAAE,WAA4B,CAAA;AAC9D,eAAO,MAAM,uBAAuB,EAAE,WAA4B,CAAA;AAElE,eAAO,MAAM,iBAAiB,EAAE,WAO/B,CAAA;AACD,eAAO,MAAM,iBAAiB,EAAE,WAI/B,CAAA"}