@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.
- package/dist/builtins/base64.d.ts.map +1 -1
- package/dist/builtins/base64.js +29 -2
- package/dist/builtins/base64.js.map +1 -1
- package/dist/builtins/chat.d.ts +7 -1
- package/dist/builtins/chat.d.ts.map +1 -1
- package/dist/builtins/chat.js +26 -29
- package/dist/builtins/chat.js.map +1 -1
- package/dist/builtins/dataserver.d.ts +2 -1
- package/dist/builtins/dataserver.d.ts.map +1 -1
- package/dist/builtins/dataserver.js +5 -4
- package/dist/builtins/dataserver.js.map +1 -1
- package/dist/builtins/debug.d.ts +4 -0
- package/dist/builtins/debug.d.ts.map +1 -0
- package/dist/builtins/debug.js +7 -0
- package/dist/builtins/debug.js.map +1 -0
- package/dist/builtins/http.d.ts +8 -1
- package/dist/builtins/http.d.ts.map +1 -1
- package/dist/builtins/http.js +87 -9
- package/dist/builtins/http.js.map +1 -1
- package/dist/builtins/identity.d.ts +2 -0
- package/dist/builtins/identity.d.ts.map +1 -1
- package/dist/builtins/identity.js +9 -1
- package/dist/builtins/identity.js.map +1 -1
- package/dist/builtins/index.d.ts.map +1 -1
- package/dist/builtins/index.js +29 -7
- package/dist/builtins/index.js.map +1 -1
- package/dist/builtins/inventory.d.ts +13 -2
- package/dist/builtins/inventory.d.ts.map +1 -1
- package/dist/builtins/inventory.js +82 -43
- package/dist/builtins/inventory.js.map +1 -1
- package/dist/builtins/json.d.ts.map +1 -1
- package/dist/builtins/json.js +11 -36
- package/dist/builtins/json.js.map +1 -1
- package/dist/builtins/link-info.d.ts +1 -1
- package/dist/builtins/link-info.d.ts.map +1 -1
- package/dist/builtins/link-info.js +2 -2
- package/dist/builtins/link-info.js.map +1 -1
- package/dist/builtins/linksetdata.d.ts.map +1 -1
- package/dist/builtins/linksetdata.js +298 -31
- package/dist/builtins/linksetdata.js.map +1 -1
- package/dist/builtins/listen.d.ts +3 -1
- package/dist/builtins/listen.d.ts.map +1 -1
- package/dist/builtins/listen.js +9 -1
- package/dist/builtins/listen.js.map +1 -1
- package/dist/builtins/lists.d.ts +21 -0
- package/dist/builtins/lists.d.ts.map +1 -1
- package/dist/builtins/lists.js +82 -38
- package/dist/builtins/lists.js.map +1 -1
- package/dist/builtins/math.d.ts +27 -4
- package/dist/builtins/math.d.ts.map +1 -1
- package/dist/builtins/math.js +118 -41
- package/dist/builtins/math.js.map +1 -1
- package/dist/builtins/permissions.d.ts +18 -0
- package/dist/builtins/permissions.d.ts.map +1 -0
- package/dist/builtins/permissions.js +17 -0
- package/dist/builtins/permissions.js.map +1 -0
- package/dist/builtins/prim-accessors.d.ts +1 -0
- package/dist/builtins/prim-accessors.d.ts.map +1 -1
- package/dist/builtins/prim-accessors.js +44 -42
- package/dist/builtins/prim-accessors.js.map +1 -1
- package/dist/builtins/prim-params.d.ts +1 -1
- package/dist/builtins/prim-params.d.ts.map +1 -1
- package/dist/builtins/prim-params.js +19 -11
- package/dist/builtins/prim-params.js.map +1 -1
- package/dist/builtins/strings.d.ts.map +1 -1
- package/dist/builtins/strings.js +37 -33
- package/dist/builtins/strings.js.map +1 -1
- package/dist/builtins/time.d.ts +2 -0
- package/dist/builtins/time.d.ts.map +1 -1
- package/dist/builtins/time.js +2 -0
- package/dist/builtins/time.js.map +1 -1
- package/dist/clock.d.ts +23 -9
- package/dist/clock.d.ts.map +1 -1
- package/dist/clock.js +40 -13
- package/dist/clock.js.map +1 -1
- package/dist/dispatch.d.ts.map +1 -1
- package/dist/dispatch.js +10 -3
- package/dist/dispatch.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interpreter.js +2 -2
- package/dist/interpreter.js.map +1 -1
- package/dist/inventory.d.ts +2 -0
- package/dist/inventory.d.ts.map +1 -1
- package/dist/inventory.js +4 -0
- package/dist/inventory.js.map +1 -1
- package/dist/keys.d.ts +6 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +20 -0
- package/dist/keys.js.map +1 -0
- package/dist/linkset.d.ts +28 -3
- package/dist/linkset.d.ts.map +1 -1
- package/dist/linkset.js +66 -7
- package/dist/linkset.js.map +1 -1
- package/dist/prim-params.d.ts +5 -0
- package/dist/prim-params.d.ts.map +1 -1
- package/dist/prim-params.js +187 -107
- package/dist/prim-params.js.map +1 -1
- package/dist/prim.d.ts +6 -1
- package/dist/prim.d.ts.map +1 -1
- package/dist/prim.js +23 -3
- package/dist/prim.js.map +1 -1
- package/dist/runtime.d.ts +11 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/script.d.ts +27 -2
- package/dist/script.d.ts.map +1 -1
- package/dist/script.js +89 -27
- package/dist/script.js.map +1 -1
- package/dist/values/coerce.d.ts +11 -0
- package/dist/values/coerce.d.ts.map +1 -1
- package/dist/values/coerce.js +65 -38
- package/dist/values/coerce.js.map +1 -1
- package/dist/values/format.d.ts +24 -16
- package/dist/values/format.d.ts.map +1 -1
- package/dist/values/format.js +42 -25
- package/dist/values/format.js.map +1 -1
- package/dist/values/ops.d.ts +2 -1
- package/dist/values/ops.d.ts.map +1 -1
- package/dist/values/ops.js +13 -5
- package/dist/values/ops.js.map +1 -1
- package/dist/values/utf8.d.ts +3 -0
- package/dist/values/utf8.d.ts.map +1 -0
- package/dist/values/utf8.js +14 -0
- package/dist/values/utf8.js.map +1 -0
- package/dist/world.d.ts +29 -0
- package/dist/world.d.ts.map +1 -0
- package/dist/world.js +29 -0
- package/dist/world.js.map +1 -0
- package/package.json +2 -2
|
@@ -1,15 +1,286 @@
|
|
|
1
|
-
import { LINKSETDATA_OK, LINKSETDATA_ENOKEY, LINKSETDATA_EPROTECTED, LINKSETDATA_NOTFOUND, LINKSETDATA_NOUPDATE, LINKSETDATA_RESET, LINKSETDATA_UPDATE, LINKSETDATA_DELETE, LINKSETDATA_MULTIDELETE, } from '../generated/constants.js';
|
|
1
|
+
import { LINKSETDATA_OK, LINKSETDATA_EMEMORY, LINKSETDATA_ENOKEY, LINKSETDATA_EPROTECTED, LINKSETDATA_NOTFOUND, LINKSETDATA_NOUPDATE, LINKSETDATA_RESET, LINKSETDATA_UPDATE, LINKSETDATA_DELETE, LINKSETDATA_MULTIDELETE, } from '../generated/constants.js';
|
|
2
2
|
import { uniformList } from '../values/list-types.js';
|
|
3
3
|
const LSD_AVAILABLE_BYTES = 131072;
|
|
4
4
|
function fireEvent(ctx, action, keyname, value) {
|
|
5
5
|
ctx.linkset.broadcastLinksetData(action, keyname, value);
|
|
6
6
|
}
|
|
7
|
+
const PROTECTED_OVERHEAD = 32;
|
|
8
|
+
function entryCost(name, entry) {
|
|
9
|
+
return (Buffer.byteLength(name, 'utf8') +
|
|
10
|
+
Buffer.byteLength(entry.value, 'utf8') +
|
|
11
|
+
(entry.password === '' ? 0 : PROTECTED_OVERHEAD));
|
|
12
|
+
}
|
|
13
|
+
function bytesUsed(store) {
|
|
14
|
+
let used = 0;
|
|
15
|
+
for (const [name, entry] of store)
|
|
16
|
+
used += entryCost(name, entry);
|
|
17
|
+
return used;
|
|
18
|
+
}
|
|
19
|
+
function fits(ctx, name, entry) {
|
|
20
|
+
const store = ctx.state.linksetData;
|
|
21
|
+
const existing = store.get(name);
|
|
22
|
+
const before = bytesUsed(store) - (existing ? entryCost(name, existing) : 0);
|
|
23
|
+
return before + entryCost(name, entry) <= LSD_AVAILABLE_BYTES;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* SL compares and matches keys as UTF-8 bytes. Each byte becomes one char; bytes from 0x80 map into
|
|
27
|
+
* the private use area so that a JS RegExp never case-folds them.
|
|
28
|
+
*/
|
|
29
|
+
const byteChar = (b) => String.fromCharCode(b < 0x80 ? b : 0xe000 + b);
|
|
30
|
+
function utf8Chars(s) {
|
|
31
|
+
let out = '';
|
|
32
|
+
for (const b of Buffer.from(s, 'utf8'))
|
|
33
|
+
out += byteChar(b);
|
|
34
|
+
return out;
|
|
35
|
+
}
|
|
36
|
+
const byUtf8 = (a, b) => Buffer.compare(Buffer.from(a, 'utf8'), Buffer.from(b, 'utf8'));
|
|
37
|
+
function sortedKeys(ctx) {
|
|
38
|
+
return [...ctx.state.linksetData.keys()].sort(byUtf8);
|
|
39
|
+
}
|
|
40
|
+
const POSIX_CLASSES = {
|
|
41
|
+
alpha: 'A-Za-z',
|
|
42
|
+
digit: '0-9',
|
|
43
|
+
alnum: 'A-Za-z0-9',
|
|
44
|
+
upper: 'A-Z',
|
|
45
|
+
lower: 'a-z',
|
|
46
|
+
space: '\\t\\n\\v\\f\\r ',
|
|
47
|
+
blank: '\\t ',
|
|
48
|
+
punct: '!-\\/:-@\\[-`{-~',
|
|
49
|
+
xdigit: '0-9A-Fa-f',
|
|
50
|
+
cntrl: '\\x00-\\x1f\\x7f',
|
|
51
|
+
print: '\\x20-\\x7e',
|
|
52
|
+
graph: '\\x21-\\x7e',
|
|
53
|
+
word: 'A-Za-z0-9_',
|
|
54
|
+
};
|
|
55
|
+
const UNICODE_CLASSES = {
|
|
56
|
+
L: 'a-z',
|
|
57
|
+
Lu: 'A-Z',
|
|
58
|
+
Ll: 'a-z',
|
|
59
|
+
N: '0-9',
|
|
60
|
+
Nd: '0-9',
|
|
61
|
+
};
|
|
62
|
+
const ESCAPE_CLASSES = {
|
|
63
|
+
h: '[\\t ]',
|
|
64
|
+
H: '[^\\t ]',
|
|
65
|
+
s: '[\\t\\n\\v\\f\\r ]',
|
|
66
|
+
S: '[^\\t\\n\\v\\f\\r ]',
|
|
67
|
+
l: '[a-z]',
|
|
68
|
+
L: '[^a-z]',
|
|
69
|
+
u: '[A-Z]',
|
|
70
|
+
U: '[^A-Z]',
|
|
71
|
+
A: '^',
|
|
72
|
+
z: '$',
|
|
73
|
+
};
|
|
74
|
+
/** Escapes that stay a character class inside brackets; any other backslash is a literal. */
|
|
75
|
+
const BRACKET_ESCAPES = new Set(['d', 'D', 'w', 'W', 's', 'S']);
|
|
76
|
+
function escapeLiteral(ch) {
|
|
77
|
+
return /[\\^$.*+?()[\]{}|/-]/.test(ch) ? '\\' + ch : ch;
|
|
78
|
+
}
|
|
79
|
+
function translateBracket(p, i) {
|
|
80
|
+
let out = '[';
|
|
81
|
+
let j = i + 1;
|
|
82
|
+
if (p[j] === '^') {
|
|
83
|
+
out += '^';
|
|
84
|
+
j += 1;
|
|
85
|
+
}
|
|
86
|
+
if (p[j] === ']') {
|
|
87
|
+
out += '\\]';
|
|
88
|
+
j += 1;
|
|
89
|
+
}
|
|
90
|
+
while (j < p.length && p[j] !== ']') {
|
|
91
|
+
const ch = p[j];
|
|
92
|
+
if (ch === '[' && p[j + 1] === ':') {
|
|
93
|
+
const close = p.indexOf(':]', j + 2);
|
|
94
|
+
if (close < 0)
|
|
95
|
+
return null;
|
|
96
|
+
const cls = POSIX_CLASSES[p.slice(j + 2, close)];
|
|
97
|
+
if (cls === undefined)
|
|
98
|
+
return null;
|
|
99
|
+
out += cls;
|
|
100
|
+
j = close + 2;
|
|
101
|
+
}
|
|
102
|
+
else if (ch === '[' && (p[j + 1] === '=' || p[j + 1] === '.')) {
|
|
103
|
+
const kind = p[j + 1];
|
|
104
|
+
const close = p.indexOf(kind + ']', j + 2);
|
|
105
|
+
const name = close < 0 ? '' : p.slice(j + 2, close);
|
|
106
|
+
if ([...name].length !== 1)
|
|
107
|
+
return null;
|
|
108
|
+
const chars = kind === '=' ? new Set([name.toLowerCase(), name.toUpperCase()]) : new Set([name]);
|
|
109
|
+
out += [...chars].map(escapeLiteral).join('');
|
|
110
|
+
j = close + 2;
|
|
111
|
+
}
|
|
112
|
+
else if (ch === '\\' && BRACKET_ESCAPES.has(p[j + 1] ?? '')) {
|
|
113
|
+
out += p.slice(j, j + 2);
|
|
114
|
+
j += 2;
|
|
115
|
+
}
|
|
116
|
+
else if (ch === '\\') {
|
|
117
|
+
out += '\\\\';
|
|
118
|
+
j += 1;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
out += ch === '[' ? '\\[' : ch;
|
|
122
|
+
j += 1;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (j >= p.length)
|
|
126
|
+
return null;
|
|
127
|
+
return [out + ']', j + 1];
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Translates SL's linkset data regex dialect (Boost POSIX-extended with Boost
|
|
131
|
+
* escapes and a leading `(?i)`) into a JS RegExp. Empty alternatives are
|
|
132
|
+
* dropped. Anything SL rejects or does not support returns null so it matches
|
|
133
|
+
* no key.
|
|
134
|
+
*/
|
|
7
135
|
function compilePattern(pattern) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
136
|
+
let p = utf8Chars(pattern);
|
|
137
|
+
let flags = '';
|
|
138
|
+
if (p.startsWith('(?i)')) {
|
|
139
|
+
flags = 'i';
|
|
140
|
+
p = p.slice(4);
|
|
141
|
+
}
|
|
142
|
+
let out = '';
|
|
143
|
+
const groupStarts = [];
|
|
144
|
+
let altEmpty = true;
|
|
145
|
+
let pendingBar = false;
|
|
146
|
+
let quantifiable = false;
|
|
147
|
+
let i = 0;
|
|
148
|
+
const emit = (s) => {
|
|
149
|
+
if (pendingBar)
|
|
150
|
+
out += '|';
|
|
151
|
+
pendingBar = false;
|
|
152
|
+
out += s;
|
|
153
|
+
};
|
|
154
|
+
const atom = (s, canRepeat = true) => {
|
|
155
|
+
emit(s);
|
|
156
|
+
altEmpty = false;
|
|
157
|
+
quantifiable = canRepeat;
|
|
158
|
+
};
|
|
159
|
+
while (i < p.length) {
|
|
160
|
+
const ch = p[i];
|
|
161
|
+
if (ch === '\\') {
|
|
162
|
+
const next = p[i + 1];
|
|
163
|
+
if (next === undefined)
|
|
164
|
+
return null;
|
|
165
|
+
if (next === 'Q') {
|
|
166
|
+
const close = p.indexOf('\\E', i + 2);
|
|
167
|
+
const literal = p.slice(i + 2, close < 0 ? p.length : close);
|
|
168
|
+
if (literal !== '')
|
|
169
|
+
atom([...literal].map(escapeLiteral).join(''));
|
|
170
|
+
i = close < 0 ? p.length : close + 2;
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
if (next === 'x' && p[i + 2] === '{') {
|
|
174
|
+
const close = p.indexOf('}', i + 3);
|
|
175
|
+
const hex = close < 0 ? '' : p.slice(i + 3, close);
|
|
176
|
+
if (!/^[0-9A-Fa-f]{1,6}$/.test(hex))
|
|
177
|
+
return null;
|
|
178
|
+
const code = parseInt(hex, 16);
|
|
179
|
+
if (code > 0x10ffff)
|
|
180
|
+
return null;
|
|
181
|
+
atom(escapeLiteral(String.fromCodePoint(code)));
|
|
182
|
+
i = close + 1;
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
const hexByte = next === 'x' ? /^[0-9A-Fa-f]{2}/.exec(p.slice(i + 2)) : null;
|
|
186
|
+
if (hexByte) {
|
|
187
|
+
atom(escapeLiteral(byteChar(parseInt(hexByte[0], 16))));
|
|
188
|
+
i += 4;
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
if (next === 'p' || next === 'P') {
|
|
192
|
+
let name;
|
|
193
|
+
let after;
|
|
194
|
+
if (p[i + 2] === '{') {
|
|
195
|
+
const close = p.indexOf('}', i + 3);
|
|
196
|
+
if (close < 0)
|
|
197
|
+
return null;
|
|
198
|
+
name = p.slice(i + 3, close);
|
|
199
|
+
after = close + 1;
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
name = p[i + 2] ?? '';
|
|
203
|
+
after = i + 3;
|
|
204
|
+
}
|
|
205
|
+
const cls = UNICODE_CLASSES[name] ?? POSIX_CLASSES[name];
|
|
206
|
+
if (cls === undefined)
|
|
207
|
+
return null;
|
|
208
|
+
atom(`[${next === 'P' ? '^' : ''}${cls}]`);
|
|
209
|
+
i = after;
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
if (/[1-9kgcEeG]/.test(next))
|
|
213
|
+
return null;
|
|
214
|
+
const cls = ESCAPE_CLASSES[next];
|
|
215
|
+
if (cls !== undefined)
|
|
216
|
+
atom(cls, next !== 'A' && next !== 'z');
|
|
217
|
+
else
|
|
218
|
+
atom('\\' + next);
|
|
219
|
+
i += 2;
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
if (ch === '[') {
|
|
223
|
+
const bracket = translateBracket(p, i);
|
|
224
|
+
if (!bracket)
|
|
225
|
+
return null;
|
|
226
|
+
atom(bracket[0]);
|
|
227
|
+
i = bracket[1];
|
|
228
|
+
continue;
|
|
229
|
+
}
|
|
230
|
+
if (ch === '(') {
|
|
231
|
+
if (p[i + 1] === '?')
|
|
232
|
+
return null;
|
|
233
|
+
emit('(');
|
|
234
|
+
groupStarts.push(out.length);
|
|
235
|
+
altEmpty = true;
|
|
236
|
+
quantifiable = false;
|
|
237
|
+
i += 1;
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
if (ch === ')') {
|
|
241
|
+
pendingBar = false;
|
|
242
|
+
const start = groupStarts.pop();
|
|
243
|
+
if (start === undefined || start === out.length)
|
|
244
|
+
return null;
|
|
245
|
+
atom(')');
|
|
246
|
+
i += 1;
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
if (ch === '|') {
|
|
250
|
+
if (!altEmpty)
|
|
251
|
+
pendingBar = true;
|
|
252
|
+
altEmpty = true;
|
|
253
|
+
quantifiable = false;
|
|
254
|
+
i += 1;
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
if (ch === '*' || ch === '+' || ch === '?' || ch === '{') {
|
|
258
|
+
if (!quantifiable)
|
|
259
|
+
return null;
|
|
260
|
+
let end = i + 1;
|
|
261
|
+
if (ch === '{') {
|
|
262
|
+
const bound = /^\{(\d+)(,(\d*))?\}/.exec(p.slice(i));
|
|
263
|
+
if (!bound)
|
|
264
|
+
return null;
|
|
265
|
+
const min = Number(bound[1]);
|
|
266
|
+
if (bound[3] !== undefined && bound[3] !== '' && Number(bound[3]) < min)
|
|
267
|
+
return null;
|
|
268
|
+
end = i + bound[0].length;
|
|
269
|
+
}
|
|
270
|
+
out += p.slice(i, end);
|
|
271
|
+
quantifiable = false;
|
|
272
|
+
i = end;
|
|
273
|
+
continue;
|
|
274
|
+
}
|
|
275
|
+
const anchor = ch === '^' || ch === '$';
|
|
276
|
+
atom(anchor || ch === '.' ? ch : escapeLiteral(ch), !anchor);
|
|
277
|
+
i += 1;
|
|
278
|
+
}
|
|
279
|
+
if (groupStarts.length !== 0 || out === '')
|
|
280
|
+
return null;
|
|
11
281
|
try {
|
|
12
|
-
|
|
282
|
+
const re = new RegExp(out, flags);
|
|
283
|
+
return (key) => re.test(utf8Chars(key));
|
|
13
284
|
}
|
|
14
285
|
catch {
|
|
15
286
|
return null;
|
|
@@ -17,7 +288,7 @@ function compilePattern(pattern) {
|
|
|
17
288
|
}
|
|
18
289
|
/**
|
|
19
290
|
* Slice helper matching LSL list-style start/count semantics for ListKeys /
|
|
20
|
-
* FindKeys: negative `start` counts from the end; `count
|
|
291
|
+
* FindKeys: negative `start` counts from the end; `count < 1` means "to the
|
|
21
292
|
* end".
|
|
22
293
|
*/
|
|
23
294
|
function slice(arr, start, count) {
|
|
@@ -28,7 +299,7 @@ function slice(arr, start, count) {
|
|
|
28
299
|
s = 0;
|
|
29
300
|
if (s >= arr.length)
|
|
30
301
|
return [];
|
|
31
|
-
const end = count <
|
|
302
|
+
const end = count < 1 ? arr.length : Math.min(arr.length, s + count);
|
|
32
303
|
return arr.slice(s, end);
|
|
33
304
|
}
|
|
34
305
|
export const llLinksetDataWrite = (ctx, args) => {
|
|
@@ -49,7 +320,10 @@ export const llLinksetDataWrite = (ctx, args) => {
|
|
|
49
320
|
}
|
|
50
321
|
if (existing && existing.value === value)
|
|
51
322
|
return LINKSETDATA_NOUPDATE;
|
|
52
|
-
|
|
323
|
+
const entry = { value, password: '' };
|
|
324
|
+
if (!fits(ctx, name, entry))
|
|
325
|
+
return LINKSETDATA_EMEMORY;
|
|
326
|
+
store.set(name, entry);
|
|
53
327
|
fireEvent(ctx, LINKSETDATA_UPDATE, name, value);
|
|
54
328
|
return LINKSETDATA_OK;
|
|
55
329
|
};
|
|
@@ -74,7 +348,10 @@ export const llLinksetDataWriteProtected = (ctx, args) => {
|
|
|
74
348
|
if (existing && existing.value === value && existing.password === password) {
|
|
75
349
|
return LINKSETDATA_NOUPDATE;
|
|
76
350
|
}
|
|
77
|
-
|
|
351
|
+
const entry = { value, password };
|
|
352
|
+
if (!fits(ctx, name, entry))
|
|
353
|
+
return LINKSETDATA_EMEMORY;
|
|
354
|
+
store.set(name, entry);
|
|
78
355
|
// The resulting entry's protection state — not the function name — decides
|
|
79
356
|
// whether the UPDATE event blanks the value. WriteProtected with an empty
|
|
80
357
|
// password creates an unprotected entry and so must carry the value, same
|
|
@@ -133,14 +410,14 @@ export const llLinksetDataDeleteProtected = (ctx, args) => {
|
|
|
133
410
|
export const llLinksetDataDeleteFound = (ctx, args) => {
|
|
134
411
|
const pattern = args[0] ?? '';
|
|
135
412
|
const password = args[1] ?? '';
|
|
136
|
-
const
|
|
137
|
-
if (!
|
|
413
|
+
const matches = compilePattern(pattern);
|
|
414
|
+
if (!matches)
|
|
138
415
|
return uniformList([0, 0], 'integer');
|
|
139
416
|
const store = ctx.state.linksetData;
|
|
140
417
|
const deletedKeys = [];
|
|
141
418
|
let notDeleted = 0;
|
|
142
419
|
for (const [name, entry] of [...store.entries()]) {
|
|
143
|
-
if (!
|
|
420
|
+
if (!matches(name))
|
|
144
421
|
continue;
|
|
145
422
|
if (entry.password !== password) {
|
|
146
423
|
notDeleted += 1;
|
|
@@ -151,7 +428,7 @@ export const llLinksetDataDeleteFound = (ctx, args) => {
|
|
|
151
428
|
}
|
|
152
429
|
if (deletedKeys.length > 0) {
|
|
153
430
|
// SL emits MULTIDELETE.name in ASCII-lex order, not insertion order.
|
|
154
|
-
deletedKeys.sort();
|
|
431
|
+
deletedKeys.sort(byUtf8);
|
|
155
432
|
fireEvent(ctx, LINKSETDATA_MULTIDELETE, deletedKeys.join(','), '');
|
|
156
433
|
}
|
|
157
434
|
return uniformList([deletedKeys.length, notDeleted], 'integer');
|
|
@@ -161,42 +438,32 @@ export const llLinksetDataReset = (ctx) => {
|
|
|
161
438
|
fireEvent(ctx, LINKSETDATA_RESET, '', '');
|
|
162
439
|
return undefined;
|
|
163
440
|
};
|
|
164
|
-
export const llLinksetDataAvailable = (ctx) =>
|
|
165
|
-
// TODO: track real bytes used (UTF-8 size of keys + values + overhead) once
|
|
166
|
-
// memory accounting lands. For now return the full quota minus a rough
|
|
167
|
-
// per-entry estimate so tests can still observe the value going down.
|
|
168
|
-
let used = 0;
|
|
169
|
-
for (const [k, e] of ctx.state.linksetData) {
|
|
170
|
-
used += k.length + e.value.length + e.password.length;
|
|
171
|
-
}
|
|
172
|
-
return Math.max(0, LSD_AVAILABLE_BYTES - used);
|
|
173
|
-
};
|
|
441
|
+
export const llLinksetDataAvailable = (ctx) => Math.max(0, LSD_AVAILABLE_BYTES - bytesUsed(ctx.state.linksetData));
|
|
174
442
|
export const llLinksetDataCountKeys = (ctx) => {
|
|
175
443
|
return ctx.state.linksetData.size;
|
|
176
444
|
};
|
|
177
445
|
export const llLinksetDataListKeys = (ctx, args) => {
|
|
178
446
|
const start = args[0] ?? 0;
|
|
179
447
|
const count = args[1] ?? -1;
|
|
180
|
-
return uniformList(slice(
|
|
448
|
+
return uniformList(slice(sortedKeys(ctx), start, count), 'string');
|
|
181
449
|
};
|
|
182
450
|
export const llLinksetDataFindKeys = (ctx, args) => {
|
|
183
451
|
const pattern = args[0] ?? '';
|
|
184
452
|
const start = args[1] ?? 0;
|
|
185
453
|
const count = args[2] ?? -1;
|
|
186
|
-
const
|
|
187
|
-
if (!
|
|
454
|
+
const matches = compilePattern(pattern);
|
|
455
|
+
if (!matches)
|
|
188
456
|
return [];
|
|
189
|
-
|
|
190
|
-
return uniformList(slice(matches, start, count), 'string');
|
|
457
|
+
return uniformList(slice(sortedKeys(ctx).filter(matches), start, count), 'string');
|
|
191
458
|
};
|
|
192
459
|
export const llLinksetDataCountFound = (ctx, args) => {
|
|
193
460
|
const pattern = args[0] ?? '';
|
|
194
|
-
const
|
|
195
|
-
if (!
|
|
461
|
+
const matches = compilePattern(pattern);
|
|
462
|
+
if (!matches)
|
|
196
463
|
return 0;
|
|
197
464
|
let n = 0;
|
|
198
465
|
for (const k of ctx.state.linksetData.keys())
|
|
199
|
-
if (
|
|
466
|
+
if (matches(k))
|
|
200
467
|
n += 1;
|
|
201
468
|
return n;
|
|
202
469
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linksetdata.js","sourceRoot":"","sources":["../../src/builtins/linksetdata.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"linksetdata.js","sourceRoot":"","sources":["../../src/builtins/linksetdata.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,9 @@ export interface ListenEntry {
|
|
|
23
23
|
* llListen(integer channel, string name, key id, string msg) → integer handle
|
|
24
24
|
*
|
|
25
25
|
* Empty name / NULL_KEY id / empty msg act as wildcards. The handle is
|
|
26
|
-
* a positive integer used by llListenRemove / llListenControl.
|
|
26
|
+
* a positive integer used by llListenRemove / llListenControl. A filter
|
|
27
|
+
* identical to an existing listen returns that listen's handle. Opening
|
|
28
|
+
* more than 65 listens is a fatal "Too Many Listens" error.
|
|
27
29
|
*/
|
|
28
30
|
export declare const llListen: BuiltinImpl;
|
|
29
31
|
/** llListenRemove(integer handle) — drops the listen entirely. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen.d.ts","sourceRoot":"","sources":["../../src/builtins/listen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,6DAA6D;IAC7D,MAAM,EAAE,OAAO,CAAA;CAChB;
|
|
1
|
+
{"version":3,"file":"listen.d.ts","sourceRoot":"","sources":["../../src/builtins/listen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,6DAA6D;IAC7D,MAAM,EAAE,OAAO,CAAA;CAChB;AASD;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,WAoBtB,CAAA;AAED,kEAAkE;AAClE,eAAO,MAAM,cAAc,EAAE,WAK5B,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,eAAe,EAAE,WAM7B,CAAA"}
|
package/dist/builtins/listen.js
CHANGED
|
@@ -3,17 +3,25 @@ function nextListenHandle(state) {
|
|
|
3
3
|
state.listenHandleCounter += 1;
|
|
4
4
|
return state.listenHandleCounter;
|
|
5
5
|
}
|
|
6
|
+
const MAX_LISTENS = 65;
|
|
6
7
|
/**
|
|
7
8
|
* llListen(integer channel, string name, key id, string msg) → integer handle
|
|
8
9
|
*
|
|
9
10
|
* Empty name / NULL_KEY id / empty msg act as wildcards. The handle is
|
|
10
|
-
* a positive integer used by llListenRemove / llListenControl.
|
|
11
|
+
* a positive integer used by llListenRemove / llListenControl. A filter
|
|
12
|
+
* identical to an existing listen returns that listen's handle. Opening
|
|
13
|
+
* more than 65 listens is a fatal "Too Many Listens" error.
|
|
11
14
|
*/
|
|
12
15
|
export const llListen = (ctx, args) => {
|
|
13
16
|
const channel = args[0] ?? 0;
|
|
14
17
|
const name = args[1] ?? '';
|
|
15
18
|
const id = args[2] ?? NULL_KEY;
|
|
16
19
|
const msg = args[3] ?? '';
|
|
20
|
+
const existing = ctx.state.listens.find((l) => l.active && l.channel === channel && l.name === name && l.key === id && l.message === msg);
|
|
21
|
+
if (existing)
|
|
22
|
+
return existing.handle;
|
|
23
|
+
if (ctx.state.listens.length >= MAX_LISTENS)
|
|
24
|
+
throw new Error('Too Many Listens');
|
|
17
25
|
const handle = nextListenHandle(ctx.state);
|
|
18
26
|
ctx.state.listens.push({
|
|
19
27
|
handle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/builtins/listen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAuB7C,SAAS,gBAAgB,CAAC,KAAsC;IAC9D,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAA;IAC9B,OAAO,KAAK,CAAC,mBAAmB,CAAA;AAClC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/builtins/listen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAuB7C,SAAS,gBAAgB,CAAC,KAAsC;IAC9D,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAA;IAC9B,OAAO,KAAK,CAAC,mBAAmB,CAAA;AAClC,CAAC;AAED,MAAM,WAAW,GAAG,EAAE,CAAA;AAEtB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IACjD,MAAM,OAAO,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,CAAC,CAAA;IACpD,MAAM,IAAI,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,EAAE,CAAA;IAClD,MAAM,EAAE,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,QAAQ,CAAA;IACtD,MAAM,GAAG,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,EAAE,CAAA;IACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,GAAG,CACjG,CAAA;IACD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,MAAM,CAAA;IACpC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IAChF,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC1C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACrB,MAAM;QACN,OAAO;QACP,IAAI;QACJ,GAAG,EAAE,EAAE;QACP,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE,IAAI;KACb,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,cAAc,GAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IACvD,MAAM,MAAM,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,CAAC,CAAA;IACnD,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;IACjE,IAAI,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1C,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IACxD,MAAM,MAAM,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,CAAC,CAAA;IACnD,MAAM,MAAM,GAAG,CAAE,IAAI,CAAC,CAAC,CAAwB,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;IAChE,IAAI,KAAK;QAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;IAChC,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
|
package/dist/builtins/lists.d.ts
CHANGED
|
@@ -54,4 +54,25 @@ export declare const llParseStringKeepNulls: BuiltinImpl;
|
|
|
54
54
|
* length isn't a multiple of stride comes back unsorted.
|
|
55
55
|
*/
|
|
56
56
|
export declare const llListSort: BuiltinImpl;
|
|
57
|
+
/**
|
|
58
|
+
* llList2ListStrided(list src, integer start, integer end, integer stride) —
|
|
59
|
+
* the elements in start..end whose index in the whole list is a multiple of
|
|
60
|
+
* the stride. A stride of 0 acts as 1, a negative one as its absolute value,
|
|
61
|
+
* and start after end selects the whole list.
|
|
62
|
+
*/
|
|
63
|
+
export declare const llList2ListStrided: BuiltinImpl;
|
|
64
|
+
/**
|
|
65
|
+
* llList2ListSlice(list src, integer start, integer end, integer stride, integer slice_index)
|
|
66
|
+
* — within each selected range, the elements whose offset from the range's
|
|
67
|
+
* start is slice_index modulo the stride. A negative slice_index counts from
|
|
68
|
+
* the end of the stride; one outside the stride, or a stride below 1, gives [].
|
|
69
|
+
*/
|
|
70
|
+
export declare const llList2ListSlice: BuiltinImpl;
|
|
71
|
+
/**
|
|
72
|
+
* llListRandomize(list src, integer stride) — shuffles whole stride-sized
|
|
73
|
+
* blocks with the script's seeded random source. A stride below 1 shuffles
|
|
74
|
+
* single elements; a list whose length isn't a multiple of the stride comes
|
|
75
|
+
* back unchanged.
|
|
76
|
+
*/
|
|
77
|
+
export declare const llListRandomize: BuiltinImpl;
|
|
57
78
|
//# sourceMappingURL=lists.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lists.d.ts","sourceRoot":"","sources":["../../src/builtins/lists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"lists.d.ts","sourceRoot":"","sources":["../../src/builtins/lists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAOhD,oDAAoD;AACpD,eAAO,MAAM,eAAe,EAAE,WAG7B,CAAA;AAaD,kFAAkF;AAClF,eAAO,MAAM,cAAc,EAAE,WAS5B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,WAY1B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,WAM3B,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,WAOxB,CAAA;AAWD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAahC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,WAO3B,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,WAOxB,CAAA;AAYD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,WAOzB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,WAO7B,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,EAAE,WAO9B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAY/B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,WAc5B,CAAA;AAUD,eAAO,MAAM,iBAAiB,EAAE,WAI/B,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,WAGxB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,WAqBxB,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,WAAsD,CAAA;AAEvF,4HAA4H;AAC5H,eAAO,MAAM,sBAAsB,EAAE,WAAqD,CAAA;AAuC1F;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,WAoBxB,CAAA;AA0CD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAUhC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAa9B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,WAU7B,CAAA"}
|