@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
package/dist/clock.d.ts CHANGED
@@ -6,8 +6,8 @@
6
6
  * it by calling `llSleep` or `llSetTimerEvent`. Real wall-clock time is
7
7
  * never read.
8
8
  *
9
- * The queue is **linkset-wide**: every script in the linkset shares one
10
- * `now` and one event queue. Each queued event carries a `target: Script`
9
+ * The queue is **linkset-wide**, or world-wide for linksets in a `World`:
10
+ * every script shares one `now` and one event queue. Each queued event carries a `target: Script`
11
11
  * — the script whose handler will run when the event fires. Per-script
12
12
  * state (timer interval, llGetTime reference) lives on `ScriptClockView`,
13
13
  * a thin facade exposed to builtins as `ctx.state.clock`.
@@ -21,6 +21,8 @@ export interface QueuedEvent {
21
21
  readonly event: string;
22
22
  readonly payload: Record<string, unknown>;
23
23
  }
24
+ /** Events a script can hold in its queue; more are dropped, as in Second Life. */
25
+ export declare const MAX_PENDING_EVENTS = 64;
24
26
  /** Linkset-wide clock. One instance per Linkset. */
25
27
  export declare class LinksetClock {
26
28
  readonly startUnixTime: number;
@@ -31,24 +33,34 @@ export declare class LinksetClock {
31
33
  /** Wall-clock time in microseconds since the Unix epoch, floored. */
32
34
  unixMicros(): number;
33
35
  private readonly queue;
34
- /** Schedule a one-shot event on `target`'s handler at virtual time `at`. */
36
+ /**
37
+ * Schedule a one-shot event on `target`'s handler at virtual time `at`.
38
+ * A script holds at most MAX_PENDING_EVENTS queued events, counting those
39
+ * parked while it is stopped; further events are dropped.
40
+ */
35
41
  schedule(target: Script, at: number, event: string, payload?: Record<string, unknown>): void;
36
42
  /** Move the clock forward unconditionally; does not drain queues. */
37
43
  advance(ms: number): void;
38
44
  /**
39
- * Pop and return the next due event (`at <= now`) considering all queued
45
+ * Pop and return the next due event (`at <= horizon`, default `now`) considering all queued
40
46
  * one-shots and every script's recurring timer. Returns `null` when no
41
47
  * event is ready.
42
48
  *
43
49
  * Recurring timers fire once per script per interval; their next fire
44
50
  * timestamp is advanced by `at + interval` (not `now + interval`) so that
45
- * long advances catch up on every missed fire.
51
+ * long advances catch up on every missed fire. Ticks that fall due while
52
+ * the script is busy (e.g. in llSleep) collapse into one event delivered
53
+ * when it finishes, and the interval restarts from there.
46
54
  */
47
- takeNextDue(scripts: ReadonlyArray<Script>): QueuedEvent | null;
55
+ takeNextDue(scripts: ReadonlyArray<Script>, horizon?: number): QueuedEvent | null;
48
56
  /** Snapshot of the pending one-shot queue. Read-only; for inspection/tests. */
49
57
  pendingEvents(): readonly QueuedEvent[];
50
- /** Remove every queued event whose target is `script`. Used on reset. */
51
- purgeTarget(script: Script): void;
58
+ /**
59
+ * Remove every queued event whose target is `script` and that is due by
60
+ * `upTo` (default: all of them), except events named `keep`. Used on reset
61
+ * and state change.
62
+ */
63
+ purgeTarget(script: Script, upTo?: number, keep?: string): void;
52
64
  }
53
65
  /**
54
66
  * Per-script clock facade. Builtins read `ctx.state.clock` and call
@@ -58,12 +70,14 @@ export declare class LinksetClock {
58
70
  export declare class ScriptClockView {
59
71
  private readonly linksetClock;
60
72
  private readonly self;
61
- /** Reference time for `llGetTime`/`llResetTime` (virtual ms). */
73
+ /** Reference time for `llGetTime`/`llResetTime` (virtual ms); the script's creation, reset or last llResetTime. */
62
74
  timeReferenceMs: number;
63
75
  /** Recurring timer interval in ms; 0 = no timer. */
64
76
  timerIntervalMs: number;
65
77
  /** Virtual time at which the next timer event fires. */
66
78
  timerNextFireMs: number;
79
+ /** Virtual time at which the script's last handler finished, when it took time (llSleep, delays). */
80
+ busyUntilMs: number;
67
81
  constructor(linksetClock: LinksetClock, self: () => Script);
68
82
  get now(): number;
69
83
  /** Schedule a one-shot event on this script. */
@@ -1 +1 @@
1
- {"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../src/clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,WAAW,WAAW;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C;AAED,oDAAoD;AACpD,qBAAa,YAAY;IAKX,QAAQ,CAAC,aAAa;IAJlC,2EAA2E;IAC3E,GAAG,SAAI;IAEP,iEAAiE;IACjE,YAAqB,aAAa,SAAI,EAAI;IAE1C,qEAAqE;IACrE,UAAU,IAAI,MAAM,CAEnB;IAED,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAE1C,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI,CAE/F;IAED,qEAAqE;IACrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGxB;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,WAAW,GAAG,IAAI,CAmC9D;IAED,+EAA+E;IAC/E,aAAa,IAAI,SAAS,WAAW,EAAE,CAEtC;IAED,yEAAyE;IACzE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAIhC;CACF;AAED;;;;GAIG;AACH,qBAAa,eAAe;IASxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IATvB,iEAAiE;IACjE,eAAe,SAAI;IACnB,oDAAoD;IACpD,eAAe,SAAI;IACnB,wDAAwD;IACxD,eAAe,SAAI;IAEnB,YACmB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,MAAM,EACjC;IAEJ,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI,CAE/E;IAED,sDAAsD;IACtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI,CAEjG;IAED,WAAW,IAAI,IAAI,CAGlB;IAED,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAOjC;IAED,sDAAsD;IACtD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAExB;IAED,qEAAqE;IACrE,UAAU,IAAI,MAAM,CAEnB;IAED,cAAc,IAAI,MAAM,CAEvB;IAED,cAAc,IAAI,IAAI,CAErB;CACF"}
1
+ {"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../src/clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,WAAW,WAAW;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C;AAED,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,KAAK,CAAA;AAEpC,oDAAoD;AACpD,qBAAa,YAAY;IAKX,QAAQ,CAAC,aAAa;IAJlC,2EAA2E;IAC3E,GAAG,SAAI;IAEP,iEAAiE;IACjE,YAAqB,aAAa,SAAI,EAAI;IAE1C,qEAAqE;IACrE,UAAU,IAAI,MAAM,CAEnB;IAED,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAE1C;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI,CAO/F;IAED,qEAAqE;IACrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGxB;IAED;;;;;;;;;;OAUG;IACH,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,SAAW,GAAG,WAAW,GAAG,IAAI,CAsClF;IAED,+EAA+E;IAC/E,aAAa,IAAI,SAAS,WAAW,EAAE,CAEtC;IAED;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,SAAW,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAKhE;CACF;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAWxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAXvB,mHAAmH;IACnH,eAAe,EAAE,MAAM,CAAA;IACvB,oDAAoD;IACpD,eAAe,SAAI;IACnB,wDAAwD;IACxD,eAAe,SAAI;IACnB,qGAAqG;IACrG,WAAW,SAAI;IAEf,YACmB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,MAAM,EAGpC;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI,CAE/E;IAED,sDAAsD;IACtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI,CAEjG;IAED,WAAW,IAAI,IAAI,CAGlB;IAED,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAOjC;IAED,sDAAsD;IACtD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAExB;IAED,qEAAqE;IACrE,UAAU,IAAI,MAAM,CAEnB;IAED,cAAc,IAAI,MAAM,CAEvB;IAED,cAAc,IAAI,IAAI,CAErB;CACF"}
package/dist/clock.js CHANGED
@@ -1,3 +1,5 @@
1
+ /** Events a script can hold in its queue; more are dropped, as in Second Life. */
2
+ export const MAX_PENDING_EVENTS = 64;
1
3
  /** Linkset-wide clock. One instance per Linkset. */
2
4
  export class LinksetClock {
3
5
  startUnixTime;
@@ -12,8 +14,20 @@ export class LinksetClock {
12
14
  return Math.floor(this.startUnixTime * 1e6 + this.now * 1000);
13
15
  }
14
16
  queue = [];
15
- /** Schedule a one-shot event on `target`'s handler at virtual time `at`. */
17
+ /**
18
+ * Schedule a one-shot event on `target`'s handler at virtual time `at`.
19
+ * A script holds at most MAX_PENDING_EVENTS queued events, counting those
20
+ * parked while it is stopped; further events are dropped.
21
+ */
16
22
  schedule(target, at, event, payload = {}) {
23
+ if (event !== '__reset') {
24
+ let pending = target.parkedEvents.length;
25
+ for (const e of this.queue)
26
+ if (e.target === target)
27
+ pending++;
28
+ if (pending >= MAX_PENDING_EVENTS)
29
+ return;
30
+ }
17
31
  this.queue.push({ at, target, event, payload });
18
32
  }
19
33
  /** Move the clock forward unconditionally; does not drain queues. */
@@ -23,20 +37,22 @@ export class LinksetClock {
23
37
  this.now += ms;
24
38
  }
25
39
  /**
26
- * Pop and return the next due event (`at <= now`) considering all queued
40
+ * Pop and return the next due event (`at <= horizon`, default `now`) considering all queued
27
41
  * one-shots and every script's recurring timer. Returns `null` when no
28
42
  * event is ready.
29
43
  *
30
44
  * Recurring timers fire once per script per interval; their next fire
31
45
  * timestamp is advanced by `at + interval` (not `now + interval`) so that
32
- * long advances catch up on every missed fire.
46
+ * long advances catch up on every missed fire. Ticks that fall due while
47
+ * the script is busy (e.g. in llSleep) collapse into one event delivered
48
+ * when it finishes, and the interval restarts from there.
33
49
  */
34
- takeNextDue(scripts) {
50
+ takeNextDue(scripts, horizon = this.now) {
35
51
  let bestIdx = -1;
36
52
  let bestAt = Infinity;
37
53
  for (let i = 0; i < this.queue.length; i++) {
38
54
  const e = this.queue[i];
39
- if (e.at <= this.now && e.at < bestAt) {
55
+ if (e.at <= horizon && e.at < bestAt) {
40
56
  bestAt = e.at;
41
57
  bestIdx = i;
42
58
  }
@@ -50,9 +66,12 @@ export class LinksetClock {
50
66
  if (s.dead || !s.running)
51
67
  continue;
52
68
  const v = s.clockView;
53
- if (v.timerIntervalMs > 0 && v.timerNextFireMs <= this.now && v.timerNextFireMs < bestTimerAt) {
54
- bestTimerAt = v.timerNextFireMs;
55
- bestTimerScript = s;
69
+ if (v.timerIntervalMs > 0 && v.timerNextFireMs <= horizon) {
70
+ const due = Math.max(v.timerNextFireMs, v.busyUntilMs);
71
+ if (due < bestTimerAt) {
72
+ bestTimerAt = due;
73
+ bestTimerScript = s;
74
+ }
56
75
  }
57
76
  }
58
77
  if (bestIdx === -1 && bestTimerScript === null)
@@ -71,10 +90,15 @@ export class LinksetClock {
71
90
  pendingEvents() {
72
91
  return this.queue.slice();
73
92
  }
74
- /** Remove every queued event whose target is `script`. Used on reset. */
75
- purgeTarget(script) {
93
+ /**
94
+ * Remove every queued event whose target is `script` and that is due by
95
+ * `upTo` (default: all of them), except events named `keep`. Used on reset
96
+ * and state change.
97
+ */
98
+ purgeTarget(script, upTo = Infinity, keep) {
76
99
  for (let i = this.queue.length - 1; i >= 0; i--) {
77
- if (this.queue[i].target === script)
100
+ const e = this.queue[i];
101
+ if (e.target === script && e.at <= upTo && e.event !== keep)
78
102
  this.queue.splice(i, 1);
79
103
  }
80
104
  }
@@ -87,15 +111,18 @@ export class LinksetClock {
87
111
  export class ScriptClockView {
88
112
  linksetClock;
89
113
  self;
90
- /** Reference time for `llGetTime`/`llResetTime` (virtual ms). */
91
- timeReferenceMs = 0;
114
+ /** Reference time for `llGetTime`/`llResetTime` (virtual ms); the script's creation, reset or last llResetTime. */
115
+ timeReferenceMs;
92
116
  /** Recurring timer interval in ms; 0 = no timer. */
93
117
  timerIntervalMs = 0;
94
118
  /** Virtual time at which the next timer event fires. */
95
119
  timerNextFireMs = 0;
120
+ /** Virtual time at which the script's last handler finished, when it took time (llSleep, delays). */
121
+ busyUntilMs = 0;
96
122
  constructor(linksetClock, self) {
97
123
  this.linksetClock = linksetClock;
98
124
  this.self = self;
125
+ this.timeReferenceMs = linksetClock.now;
99
126
  }
100
127
  get now() {
101
128
  return this.linksetClock.now;
package/dist/clock.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"clock.js","sourceRoot":"","sources":["../src/clock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clock.js","sourceRoot":"","sources":["../src/clock.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,WAAW,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAGjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,8DAA8D;AAC9D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE7D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,GAC5B,QAAQ,GAAG,SAAS,CAkBtB"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,WAAW,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAGjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIzC,8DAA8D;AAC9D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE7D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,GAC5B,QAAQ,GAAG,SAAS,CAoBtB"}
package/dist/dispatch.js CHANGED
@@ -2,6 +2,7 @@ import { defaultValueFor } from './values/types.js';
2
2
  import { BUILTIN_SPECS } from './generated/functions.js';
3
3
  import { REAL_BUILTINS } from './builtins/index.js';
4
4
  import { own } from './own.js';
5
+ import { ScriptRemovedSignal } from './builtins/inventory.js';
5
6
  /** Look up the generated spec for a function name, if any. */
6
7
  export function specFor(name) {
7
8
  return own(BUILTIN_SPECS, name);
@@ -14,7 +15,7 @@ export function specFor(name) {
14
15
  */
15
16
  export function callBuiltin(dctx, name, args) {
16
17
  const spec = specFor(name);
17
- const impl = dctx.mocks[name] ?? own(REAL_BUILTINS, name) ?? makeStub(name);
18
+ const impl = dctx.mocks[name] ?? own(REAL_BUILTINS, name) ?? makeStub(dctx.script, name);
18
19
  const ctx = {
19
20
  state: dctx.state,
20
21
  spec,
@@ -22,6 +23,7 @@ export function callBuiltin(dctx, name, args) {
22
23
  prim: dctx.script.host,
23
24
  linkset: dctx.script.linkset,
24
25
  };
26
+ const startedAt = dctx.state.clock.now;
25
27
  const result = impl(ctx, args);
26
28
  dctx.state.calls.push({ name, args, returned: result });
27
29
  // Call log timestamps when the script invoked the function (pre-delay);
@@ -29,15 +31,20 @@ export function callBuiltin(dctx, name, args) {
29
31
  if (spec && spec.delay > 0) {
30
32
  dctx.state.clock.advance(spec.delay * 1000);
31
33
  }
34
+ if (dctx.state.lifecycle.removed && dctx.state.clock.now > startedAt)
35
+ throw new ScriptRemovedSignal();
32
36
  return result;
33
37
  }
34
- function makeStub(name) {
38
+ function makeStub(script, name) {
35
39
  const spec = specFor(name);
36
40
  if (!spec) {
37
41
  return () => {
38
42
  throw new Error(`LSL function '${name}' has no implementation (not in the LSL definitions; use script.mock to provide it)`);
39
43
  };
40
44
  }
41
- return () => defaultValueFor(spec.returnType);
45
+ return () => {
46
+ script.reportStub(name);
47
+ return defaultValueFor(spec.returnType);
48
+ };
42
49
  }
43
50
  //# sourceMappingURL=dispatch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,8DAA8D;AAC9D,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,GAAG,CAAC,aAA4C,EAAE,IAAI,CAAC,CAAA;AAChE,CAAC;AAQD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,IAAqB,EACrB,IAAY,EACZ,IAA6B;IAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC3E,MAAM,GAAG,GAAgB;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI;QACJ,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;QACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;KAC7B,CAAA;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IACvD,wEAAwE;IACxE,yEAAyE;IACzE,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,qFAAqF,CAAC,CAAA;QAC7H,CAAC,CAAA;IACH,CAAC;IACD,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAC/C,CAAC"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAE7D,8DAA8D;AAC9D,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,GAAG,CAAC,aAA4C,EAAE,IAAI,CAAC,CAAA;AAChE,CAAC;AAQD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,IAAqB,EACrB,IAAY,EACZ,IAA6B;IAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACxF,MAAM,GAAG,GAAgB;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI;QACJ,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;QACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;KAC7B,CAAA;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAA;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IACvD,wEAAwE;IACxE,yEAAyE;IACzE,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IAC7C,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAA;IACrG,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,IAAY;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,qFAAqF,CAAC,CAAA;QAC7H,CAAC,CAAA;IACH,CAAC;IACD,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACvB,OAAO,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzC,CAAC,CAAA;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,8 @@ export { CoverageCollector, buildCoveragePlan, mergeReports } from './coverage.j
5
5
  export type { CoveragePlan, CoverageReport, StatementInfo, StatementHit, StatementKind, BranchInfo, BranchHit, BranchKind, FunctionInfo, FunctionHit, FunctionKind, StateInfo, StateHit, } from './coverage.js';
6
6
  export { Linkset, LINK_THIS, LINK_SET, LINK_ALL_OTHERS, LINK_ALL_CHILDREN, LINK_ROOT } from './linkset.js';
7
7
  export type { LinksetOptions } from './linkset.js';
8
+ export { World } from './world.js';
9
+ export type { WorldOptions, RegionCorner } from './world.js';
8
10
  export { Prim } from './prim.js';
9
11
  export type { PrimOptions } from './prim.js';
10
12
  export { InventoryType, makeInventoryItem } from './inventory.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAClF,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,SAAS,EACT,QAAQ,GACT,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC1G,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACjE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACjF,YAAY,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,EACR,WAAW,GACZ,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EACL,WAAW,EACX,aAAa,EACb,QAAQ,EACR,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAChF,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAClF,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,SAAS,EACT,QAAQ,GACT,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC1G,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACjE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACjF,YAAY,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,EACR,WAAW,GACZ,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EACL,WAAW,EACX,aAAa,EACb,QAAQ,EACR,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAChF,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@ export { Script } from './script.js';
2
2
  export { typecheck } from './typecheck.js';
3
3
  export { CoverageCollector, buildCoveragePlan, mergeReports } from './coverage.js';
4
4
  export { Linkset, LINK_THIS, LINK_SET, LINK_ALL_OTHERS, LINK_ALL_CHILDREN, LINK_ROOT } from './linkset.js';
5
+ export { World } from './world.js';
5
6
  export { Prim } from './prim.js';
6
7
  export { InventoryType, makeInventoryItem } from './inventory.js';
7
8
  export { ZERO_VECTOR, ZERO_ROTATION, NULL_KEY, defaultValueFor, } from './values/types.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAgBlF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE1G,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAWjE,OAAO,EACL,WAAW,EACX,aAAa,EACb,QAAQ,EACR,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAgBlF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE1G,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAWjE,OAAO,EACL,WAAW,EACX,aAAa,EACb,QAAQ,EACR,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA"}
@@ -281,9 +281,9 @@ function evalListLiteral(ctx, env, e) {
281
281
  };
282
282
  }
283
283
  function evalBinary(ctx, env, e) {
284
- // LSL: && and || are NOT short-circuit. Eager evaluation matches the language.
285
- const left = evalExpression(ctx, env, e.left);
284
+ // LSL: && and || are NOT short-circuit, and the right operand runs first.
286
285
  const right = evalExpression(ctx, env, e.right);
286
+ const left = evalExpression(ctx, env, e.left);
287
287
  return applyBinary(e.operator, left, right);
288
288
  }
289
289
  function evalAssignment(ctx, env, e) {
@@ -1 +1 @@
1
- {"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,8 @@ export interface InventoryItem {
45
45
  /** Set when type === INVENTORY_NOTECARD. */
46
46
  notecardLines?: ReadonlyArray<string>;
47
47
  }
48
+ /** Second Life drops non-ASCII characters from an item's name when it enters a prim's inventory. */
49
+ export declare function inventoryItemName(name: string): string;
48
50
  export declare function makeInventoryItem(partial: Partial<InventoryItem> & {
49
51
  name: string;
50
52
  type: InventoryTypeValue;
@@ -1 +1 @@
1
- {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../src/inventory.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,eAAO,MAAM,aAAa;aACxB,OAAO;aACP,KAAK;aACL,QAAQ;aACR,QAAQ;aACR,MAAM;aACN,QAAQ;aACR,MAAM;aACN,QAAQ;aACR,SAAS;aACT,OAAO;aACP,IAAI,EAAE,EAAE;aACR,OAAO;aACP,QAAQ;CACA,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AAEnF,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAUD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,kBAAkB,CAAA;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,QAAQ,CAAA;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,aAAa,EAAE,MAAM,CAAA;IACrC,4CAA4C;IAC5C,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACtC;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC3E,aAAa,CAaf"}
1
+ {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../src/inventory.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,eAAO,MAAM,aAAa;aACxB,OAAO;aACP,KAAK;aACL,QAAQ;aACR,QAAQ;aACR,MAAM;aACN,QAAQ;aACR,MAAM;aACN,QAAQ;aACR,SAAS;aACT,OAAO;aACP,IAAI,EAAE,EAAE;aACR,OAAO;aACP,QAAQ;CACA,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AAEnF,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAUD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,kBAAkB,CAAA;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,QAAQ,CAAA;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,aAAa,EAAE,MAAM,CAAA;IACrC,4CAA4C;IAC5C,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACtC;AAED,oGAAoG;AACpG,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC3E,aAAa,CAaf"}
package/dist/inventory.js CHANGED
@@ -26,6 +26,10 @@ const DEFAULT_PERMS = {
26
26
  everyone: 0,
27
27
  next: PERM_ALL,
28
28
  };
29
+ /** Second Life drops non-ASCII characters from an item's name when it enters a prim's inventory. */
30
+ export function inventoryItemName(name) {
31
+ return name.replace(/[^\x00-\x7f]/g, '');
32
+ }
29
33
  export function makeInventoryItem(partial) {
30
34
  const item = {
31
35
  name: partial.name,
@@ -1 +1 @@
1
- {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../src/inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,GACT,MAAM,0BAA0B,CAAA;AAEjC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,iBAAiB;IAC1B,KAAK,EAAE,eAAe;IACtB,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,gBAAgB;IACxB,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,gBAAgB;IACxB,QAAQ,EAAE,kBAAkB;IAC5B,SAAS,EAAE,mBAAmB;IAC9B,OAAO,EAAE,iBAAiB;IAC1B,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,kBAAkB;CACpB,CAAA;AAaV,MAAM,aAAa,GAAa;IAC9B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,QAAQ;CACf,CAAA;AAsBD,MAAM,UAAU,iBAAiB,CAC/B,OAA4E;IAE5E,MAAM,IAAI,GAAkB;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,QAAQ;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QACtC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,CAAC;QACzC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,aAAa;KAC5C,CAAA;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC9D,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IACnF,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../src/inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,GACT,MAAM,0BAA0B,CAAA;AAEjC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,iBAAiB;IAC1B,KAAK,EAAE,eAAe;IACtB,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,gBAAgB;IACxB,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,gBAAgB;IACxB,QAAQ,EAAE,kBAAkB;IAC5B,SAAS,EAAE,mBAAmB;IAC9B,OAAO,EAAE,iBAAiB;IAC1B,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,kBAAkB;CACpB,CAAA;AAaV,MAAM,aAAa,GAAa;IAC9B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,QAAQ;CACf,CAAA;AAsBD,oGAAoG;AACpG,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAA4E;IAE5E,MAAM,IAAI,GAAkB;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,QAAQ;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QACtC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,CAAC;QACzC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,aAAa;KAC5C,CAAA;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC9D,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IACnF,OAAO,IAAI,CAAA;AACb,CAAC"}
package/dist/keys.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import type { CallContext } from './runtime.js';
2
+ /** A stable, UUID-shaped string derived from `seed`. */
3
+ export declare function deterministicKey(seed: string): string;
4
+ /** A request key (llHTTPRequest, dataserver) that is a valid UUID, unique per script, kind and count. */
5
+ export declare function requestKey(ctx: CallContext, kind: string, n: number): string;
6
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAarD;AAED,yGAAyG;AACzG,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5E"}
package/dist/keys.js ADDED
@@ -0,0 +1,20 @@
1
+ /** A stable, UUID-shaped string derived from `seed`. */
2
+ export function deterministicKey(seed) {
3
+ let h1 = 0x811c9dc5;
4
+ for (let i = 0; i < seed.length; i++) {
5
+ h1 ^= seed.charCodeAt(i);
6
+ h1 = Math.imul(h1, 0x01000193) >>> 0;
7
+ }
8
+ let h2 = (h1 ^ 0xdeadbeef) >>> 0;
9
+ for (let i = 0; i < seed.length; i++) {
10
+ h2 ^= seed.charCodeAt(i) << (i & 31);
11
+ h2 = Math.imul(h2, 0x01000193) >>> 0;
12
+ }
13
+ const hex = (h1.toString(16).padStart(8, '0') + h2.toString(16).padStart(8, '0')).repeat(2);
14
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;
15
+ }
16
+ /** A request key (llHTTPRequest, dataserver) that is a valid UUID, unique per script, kind and count. */
17
+ export function requestKey(ctx, kind, n) {
18
+ return deterministicKey(`${ctx.prim.key}/${ctx.script.scriptName}/${kind}/${n}`);
19
+ }
20
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,EAAE,GAAG,UAAU,CAAA;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACxB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IACD,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QACpC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC3F,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;AAChH,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,UAAU,CAAC,GAAgB,EAAE,IAAY,EAAE,CAAS;IAClE,OAAO,gBAAgB,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;AAClF,CAAC"}
package/dist/linkset.d.ts CHANGED
@@ -3,13 +3,22 @@ import { Prim } from './prim.js';
3
3
  import type { Script } from './script.js';
4
4
  import type { LinksetDataEntry } from './builtins/linksetdata.js';
5
5
  import type { LinkedMessageEntry } from './builtins/linked.js';
6
+ import type { ChatType } from './runtime.js';
7
+ import type { World } from './world.js';
6
8
  import { LINK_ROOT, LINK_SET, LINK_ALL_OTHERS, LINK_ALL_CHILDREN, LINK_THIS } from './generated/constants.js';
7
9
  export { LINK_ROOT, LINK_SET, LINK_ALL_OTHERS, LINK_ALL_CHILDREN, LINK_THIS };
8
10
  export interface LinksetOptions {
9
11
  /** Owner key applied to all scripts in this linkset. */
10
12
  readonly owner?: string;
11
- /** Unix time in seconds at virtual time 0, read by llGetUnixTime and friends. Default 0. */
13
+ /**
14
+ * Unix time in seconds at virtual time 0, read by llGetUnixTime and
15
+ * friends. Default 0. Ignored in a world, whose clock the linkset shares.
16
+ */
12
17
  readonly startUnixTime?: number;
18
+ /** World to join; the linkset shares its clock and chats with its other linksets. */
19
+ readonly world?: World;
20
+ /** Region of `world` the linkset is in. */
21
+ readonly region?: string;
13
22
  }
14
23
  /**
15
24
  * A linkset owns the shared world state for its prims and scripts: the
@@ -32,9 +41,13 @@ export declare class Linkset {
32
41
  * `clearLinkedMessages()` between scenarios to keep memory bounded.
33
42
  */
34
43
  readonly linkedMessages: LinkedMessageEntry[];
44
+ /** Virtual times of recent llHTTPRequest calls, for the per-object throttle. */
45
+ readonly httpRequestTimes: number[];
35
46
  /** Drop every captured cross-script linked-message entry. */
36
47
  clearLinkedMessages(): void;
37
48
  readonly owner: string;
49
+ readonly world?: World;
50
+ readonly region: string | undefined;
38
51
  constructor(opts?: LinksetOptions);
39
52
  /** Add a prim to the linkset; assigns a 1-based linkNumber. */
40
53
  addPrim(prim: Prim): Prim;
@@ -69,9 +82,21 @@ export declare class Linkset {
69
82
  key: string;
70
83
  message: string;
71
84
  }): void;
85
+ /**
86
+ * Queue chat a script in prim `from` sent on the listens of every prim it
87
+ * reaches, in this linkset and the rest of its world. Whisper, say and
88
+ * shout reach prims within 10, 20 and 100 m in any region; llRegionSay
89
+ * reaches the sender's region, and llRegionSayTo only the prim keyed `to`
90
+ * in that region. A prim never hears its own chat.
91
+ */
92
+ routeChat(from: Prim, type: ChatType, channel: number, message: string, to?: string): void;
93
+ private globalPosition;
72
94
  /**
73
95
  * Advance the shared clock by `ms` and drain every event that becomes
74
- * due, dispatching each to its target script.
96
+ * due across the linkset, or its whole world, dispatching each to its
97
+ * target script. The clock steps to each
98
+ * event's due time before its handler runs, so handlers see the time the
99
+ * event fired rather than the end of the window.
75
100
  */
76
101
  advanceTime(ms: number): void;
77
102
  /**
@@ -86,6 +111,6 @@ export declare class Linkset {
86
111
  * up on the next outer drain. Worth-the-trade for avoiding an O(scripts)
87
112
  * allocation per event.
88
113
  */
89
- drainQueue(): void;
114
+ drainQueue(until?: number): void;
90
115
  }
91
116
  //# sourceMappingURL=linkset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"linkset.d.ts","sourceRoot":"","sources":["../src/linkset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,EACL,SAAS,EACT,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,SAAS,EACV,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAA;AAE7E,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,4FAA4F;IAC5F,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AAED;;;;;;;;;GASG;AACH,qBAAa,OAAO;IAClB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAK;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAY;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,kBAAkB,EAAE,CAAK;IAElD,6DAA6D;IAC7D,mBAAmB,IAAI,IAAI,CAE1B;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAEtB,YAAY,IAAI,GAAE,cAAmB,EAGpC;IAED,+DAA+D;IAC/D,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAKxB;IAED,OAAO,CAAC,oBAAoB;IAW5B,wEAAwE;IACxE,UAAU,IAAI,MAAM,EAAE,CAMrB;IAED,yDAAyD;IACzD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAEvC;IAED,wEAAwE;IACxE,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,CAwBzD;IAED;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAKtE;IAED;;;;;OAKG;IACH,kBAAkB,CAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,GACT,IAAI,CASN;IAED;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAKvF;IAED;;;OAGG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG5B;IAED;;;;;;;;;;;OAWG;IACH,UAAU,IAAI,IAAI,CAsBjB;CACF"}
1
+ {"version":3,"file":"linkset.d.ts","sourceRoot":"","sources":["../src/linkset.ts"],"names":[],"mappings":"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"}