@poe-platform/safe-bash 0.1.434 → 0.1.435

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 (35) hide show
  1. package/dist/safe-bash/browser.js +236 -90
  2. package/dist/safe-bash/browser.js.map +3 -3
  3. package/dist/safe-bash/commands/stream-format/nl.js +1 -1
  4. package/dist/safe-bash/commands/stream-format/nl.js.map +1 -1
  5. package/dist/safe-bash/commands/structured/interpreter.js +10 -10
  6. package/dist/safe-bash/commands/structured/interpreter.js.map +1 -1
  7. package/dist/safe-bash/commands/structured/limits.d.ts +3 -1
  8. package/dist/safe-bash/commands/structured/limits.d.ts.map +1 -1
  9. package/dist/safe-bash/commands/structured/limits.js +16 -5
  10. package/dist/safe-bash/commands/structured/limits.js.map +1 -1
  11. package/dist/safe-bash/commands/structured/values.d.ts +5 -3
  12. package/dist/safe-bash/commands/structured/values.d.ts.map +1 -1
  13. package/dist/safe-bash/commands/structured/values.js +73 -21
  14. package/dist/safe-bash/commands/structured/values.js.map +1 -1
  15. package/dist/safe-bash/commands/text-programs/awk-runtime.js +4 -4
  16. package/dist/safe-bash/commands/text-programs/awk-runtime.js.map +1 -1
  17. package/dist/safe-bash/commands/text-programs/regex.d.ts +2 -1
  18. package/dist/safe-bash/commands/text-programs/regex.d.ts.map +1 -1
  19. package/dist/safe-bash/commands/text-programs/regex.js +230 -93
  20. package/dist/safe-bash/commands/text-programs/regex.js.map +1 -1
  21. package/dist/safe-bash/commands/text-programs/sed.js +1 -1
  22. package/dist/safe-bash/commands/text-programs/sed.js.map +1 -1
  23. package/dist/safe-bash/portable.js +325 -125
  24. package/dist/safe-bash/portable.js.map +3 -3
  25. package/dist/safe-bash/shell/arrays/state.d.ts.map +1 -1
  26. package/dist/safe-bash/shell/arrays/state.js +8 -2
  27. package/dist/safe-bash/shell/arrays/state.js.map +1 -1
  28. package/dist/safe-bash/shell/cleanup.d.ts +1 -1
  29. package/dist/safe-bash/shell/cleanup.d.ts.map +1 -1
  30. package/dist/safe-bash/shell/cleanup.js +7 -3
  31. package/dist/safe-bash/shell/cleanup.js.map +1 -1
  32. package/dist/safe-bash/shell/runtime.d.ts.map +1 -1
  33. package/dist/safe-bash/shell/runtime.js +21 -6
  34. package/dist/safe-bash/shell/runtime.js.map +1 -1
  35. package/package.json +2 -2
@@ -33,10 +33,31 @@ function extendedSource(source) {
33
33
  }
34
34
  return result;
35
35
  }
36
+ class NfaStorage {
37
+ budget;
38
+ used = 0;
39
+ constructor(budget) {
40
+ this.budget = budget;
41
+ }
42
+ reserve(bytes) {
43
+ this.budget.step(0);
44
+ if (!Number.isSafeInteger(bytes) || bytes < 0 || bytes > this.budget.maxBufferBytes - this.used) {
45
+ throw new ProgramError("regular expression state buffer limit exceeded");
46
+ }
47
+ this.used += bytes;
48
+ }
49
+ release(bytes) {
50
+ if (!Number.isSafeInteger(bytes) || bytes < 0 || bytes > this.used)
51
+ throw new ProgramError("invalid regular expression state accounting");
52
+ this.used -= bytes;
53
+ }
54
+ clear() { this.used = 0; }
55
+ }
36
56
  export class Pattern {
37
57
  groupCount;
38
58
  code = [];
39
59
  anchored;
60
+ linear;
40
61
  constructor(source, extended = true, ignoreCase = false) {
41
62
  if (source.length > 8192)
42
63
  throw new ProgramError("regular expression exceeds 8192 bytes");
@@ -236,110 +257,226 @@ export class Pattern {
236
257
  };
237
258
  compile(root);
238
259
  emit({ kind: "match" });
260
+ this.linear = this.code.every(instruction => instruction.kind === "character" || instruction.kind === "begin" || instruction.kind === "end" || instruction.kind === "match");
239
261
  }
240
- find(text, budget, from = 0) {
241
- for (let start = from; start <= text.length && (!this.anchored || start === 0); start++) {
242
- const positions = new Map([[start, [{ pc: 0, captures: [] }]]]);
243
- let best;
244
- let bestCaptures = [];
245
- let queued = 1;
246
- const preferCaptures = (captures) => {
247
- for (let index = 1; index <= this.groupCount; index++) {
248
- const begin = captures[index * 2];
249
- const end = captures[index * 2 + 1];
250
- const priorBegin = bestCaptures[index * 2];
251
- const priorEnd = bestCaptures[index * 2 + 1];
252
- const length = begin === undefined || end === undefined ? -1 : end - begin;
253
- const priorLength = priorBegin === undefined || priorEnd === undefined ? -1 : priorEnd - priorBegin;
254
- if (length !== priorLength)
255
- return length > priorLength;
256
- }
257
- return false;
258
- };
259
- for (let position = start; positions.size && position <= text.length; position++) {
260
- budget.step();
261
- const pending = positions.get(position)?.reverse() ?? [];
262
- positions.delete(position);
263
- queued -= pending.length;
264
- const visited = new Set();
265
- let stateBytes = 0;
266
- const enqueue = (destination, thread) => {
267
- if (destination === position)
268
- pending.push(thread);
269
- else {
270
- const waiting = positions.get(destination);
271
- if (waiting)
272
- waiting.push(thread);
273
- else
274
- positions.set(destination, [thread]);
275
- queued++;
276
- }
277
- if ((queued + pending.length) * (32 + this.groupCount * 16) > budget.maxBufferBytes)
278
- throw new ProgramError("regular expression state buffer limit exceeded");
279
- };
280
- while (pending.length) {
281
- budget.step();
282
- const thread = pending.pop();
283
- const state = this.groupCount ? `${thread.pc}:${thread.captures.join(",")}` : thread.pc;
284
- if (visited.has(state))
285
- continue;
286
- visited.add(state);
287
- stateBytes += typeof state === "string" ? state.length * 2 + 32 : 16;
288
- if (stateBytes > budget.maxBufferBytes)
289
- throw new ProgramError("regular expression state buffer limit exceeded");
290
- const instruction = this.code[thread.pc];
262
+ async find(text, budget, from = 0) {
263
+ await budget.checkpoint();
264
+ let units = 0;
265
+ const work = (count = 1) => {
266
+ budget.step(count);
267
+ units += count;
268
+ if (units < 64)
269
+ return undefined;
270
+ units %= 64;
271
+ return budget.checkpoint();
272
+ };
273
+ if (this.linear) {
274
+ for (let start = from; start <= text.length && (!this.anchored || start === 0); start++) {
275
+ let position = start;
276
+ for (const instruction of this.code) {
277
+ const paused = work(2);
278
+ if (paused)
279
+ await paused;
291
280
  if (instruction.kind === "character") {
292
- if (position < text.length && instruction.accepts(text[position]))
293
- enqueue(position + 1, { pc: thread.pc + 1, captures: thread.captures });
281
+ if (position >= text.length || !instruction.accepts(text[position]))
282
+ break;
283
+ position++;
284
+ }
285
+ else if (instruction.kind === "begin" && position !== 0 || instruction.kind === "end" && position !== text.length)
286
+ break;
287
+ else if (instruction.kind === "match") {
288
+ if (position - start > budget.maxBufferBytes)
289
+ throw new ProgramError("text buffer limit exceeded");
290
+ const copied = work(position - start);
291
+ if (copied)
292
+ await copied;
293
+ const match = { start, end: position, groups: [text.slice(start, position)] };
294
+ await budget.checkpoint();
295
+ return match;
294
296
  }
295
- else if (instruction.kind === "backreference") {
296
- const begin = thread.captures[instruction.index * 2];
297
- const end = thread.captures[instruction.index * 2 + 1];
298
- if (begin === undefined || end === undefined || position + end - begin > text.length)
297
+ }
298
+ }
299
+ return undefined;
300
+ }
301
+ const storage = new NfaStorage(budget);
302
+ const positionDigits = String(text.length).length;
303
+ const instructionDigits = String(this.code.length).length;
304
+ try {
305
+ for (let start = from; start <= text.length && (!this.anchored || start === 0); start++) {
306
+ storage.reserve(256);
307
+ const positions = new Map([[start, [{ pc: 0, captures: [], bytes: 64 }]]]);
308
+ let bestEnd;
309
+ let bestCaptures = [];
310
+ let bestBytes = 0;
311
+ try {
312
+ for (let position = start; positions.size && position <= text.length; position++) {
313
+ const advanced = work();
314
+ if (advanced)
315
+ await advanced;
316
+ const pending = positions.get(position);
317
+ if (!pending)
299
318
  continue;
300
- let matches = true;
301
- for (let offset = 0; offset < end - begin; offset++) {
302
- budget.step();
303
- const expected = text[begin + offset];
304
- const actual = text[position + offset];
305
- if (instruction.ignoreCase ? expected.toLowerCase() !== actual.toLowerCase() : expected !== actual) {
306
- matches = false;
307
- break;
319
+ const reversed = work(pending.length);
320
+ if (reversed)
321
+ await reversed;
322
+ pending.reverse();
323
+ positions.delete(position);
324
+ const visited = new Set();
325
+ let stateBytes = 0;
326
+ const enqueue = (destination, pc, captures, saveSlot) => {
327
+ const length = saveSlot === undefined ? captures.length : Math.max(captures.length, saveSlot + 1);
328
+ const bytes = 64 + length * 8;
329
+ const waiting = destination === position ? pending : positions.get(destination);
330
+ storage.reserve(bytes + (waiting ? 0 : 64));
331
+ const saved = saveSlot === undefined ? captures : [...captures];
332
+ if (saveSlot !== undefined)
333
+ saved[saveSlot] = position;
334
+ const thread = { pc, captures: saved, bytes };
335
+ if (waiting)
336
+ waiting.push(thread);
337
+ else
338
+ positions.set(destination, [thread]);
339
+ };
340
+ while (pending.length) {
341
+ const paused = work();
342
+ if (paused)
343
+ await paused;
344
+ const thread = pending.pop();
345
+ try {
346
+ let state = thread.pc;
347
+ let bytes = 32;
348
+ if (this.groupCount) {
349
+ const joinedLength = Math.max(0, thread.captures.length - 1) + thread.captures.length * positionDigits;
350
+ const stateLength = instructionDigits + 1 + joinedLength;
351
+ const serialized = work(stateLength);
352
+ if (serialized)
353
+ await serialized;
354
+ const reserved = 32 + joinedLength * 2 + 64 + stateLength * 2;
355
+ storage.reserve(reserved);
356
+ state = `${thread.pc}:${thread.captures.join(",")}`;
357
+ bytes = 64 + state.length * 2;
358
+ storage.release(reserved - bytes);
359
+ }
360
+ else
361
+ storage.reserve(bytes);
362
+ if (visited.has(state)) {
363
+ storage.release(bytes);
364
+ continue;
365
+ }
366
+ visited.add(state);
367
+ stateBytes += bytes;
368
+ const instruction = this.code[thread.pc];
369
+ if (instruction.kind === "character") {
370
+ if (position < text.length && instruction.accepts(text[position]))
371
+ enqueue(position + 1, thread.pc + 1, thread.captures);
372
+ }
373
+ else if (instruction.kind === "backreference") {
374
+ const begin = thread.captures[instruction.index * 2];
375
+ const end = thread.captures[instruction.index * 2 + 1];
376
+ if (begin === undefined || end === undefined || position + end - begin > text.length)
377
+ continue;
378
+ let matches = true;
379
+ for (let offset = 0; offset < end - begin; offset++) {
380
+ const compared = work();
381
+ if (compared)
382
+ await compared;
383
+ const expected = text[begin + offset];
384
+ const actual = text[position + offset];
385
+ if (instruction.ignoreCase ? expected.toLowerCase() !== actual.toLowerCase() : expected !== actual) {
386
+ matches = false;
387
+ break;
388
+ }
389
+ }
390
+ if (matches)
391
+ enqueue(position + end - begin, thread.pc + 1, thread.captures);
392
+ }
393
+ else if (instruction.kind === "match") {
394
+ let preferred = bestEnd === undefined || position > bestEnd;
395
+ if (position === bestEnd)
396
+ for (let index = 1; index <= this.groupCount; index++) {
397
+ const compared = work();
398
+ if (compared)
399
+ await compared;
400
+ const begin = thread.captures[index * 2];
401
+ const end = thread.captures[index * 2 + 1];
402
+ const priorBegin = bestCaptures[index * 2];
403
+ const priorEnd = bestCaptures[index * 2 + 1];
404
+ const length = begin === undefined || end === undefined ? -1 : end - begin;
405
+ const priorLength = priorBegin === undefined || priorEnd === undefined ? -1 : priorEnd - priorBegin;
406
+ if (length !== priorLength) {
407
+ preferred = length > priorLength;
408
+ break;
409
+ }
410
+ }
411
+ if (preferred) {
412
+ const retained = 32 + thread.captures.length * 8;
413
+ storage.reserve(retained);
414
+ bestEnd = position;
415
+ bestCaptures = thread.captures;
416
+ storage.release(bestBytes);
417
+ bestBytes = retained;
418
+ }
419
+ }
420
+ else if (instruction.kind === "split") {
421
+ enqueue(position, instruction.second, thread.captures);
422
+ enqueue(position, instruction.first, thread.captures);
423
+ }
424
+ else if (instruction.kind === "jump")
425
+ enqueue(position, instruction.target, thread.captures);
426
+ else if (instruction.kind === "save") {
427
+ const copied = work(Math.max(thread.captures.length, instruction.slot + 1));
428
+ if (copied)
429
+ await copied;
430
+ enqueue(position, thread.pc + 1, thread.captures, instruction.slot);
431
+ }
432
+ else if (instruction.kind === "begin" ? position === 0 : position === text.length)
433
+ enqueue(position, thread.pc + 1, thread.captures);
308
434
  }
309
- }
310
- if (matches)
311
- enqueue(position + end - begin, { pc: thread.pc + 1, captures: thread.captures });
312
- }
313
- else if (instruction.kind === "match") {
314
- if (!best || position > best.end || position === best.end && preferCaptures(thread.captures)) {
315
- const groups = [text.slice(start, position)];
316
- for (let index = 1; index <= this.groupCount; index++) {
317
- const begin = thread.captures[index * 2];
318
- const end = thread.captures[index * 2 + 1];
319
- groups.push(begin === undefined || end === undefined ? undefined : text.slice(begin, end));
435
+ finally {
436
+ storage.release(thread.bytes);
320
437
  }
321
- best = { start, end: position, groups };
322
- bestCaptures = thread.captures;
323
438
  }
439
+ visited.clear();
440
+ storage.release(stateBytes + 64);
324
441
  }
325
- else if (instruction.kind === "split") {
326
- pending.push({ pc: instruction.second, captures: thread.captures }, { pc: instruction.first, captures: thread.captures });
327
- }
328
- else if (instruction.kind === "jump")
329
- pending.push({ pc: instruction.target, captures: thread.captures });
330
- else if (instruction.kind === "save") {
331
- const captures = [...thread.captures];
332
- captures[instruction.slot] = position;
333
- pending.push({ pc: thread.pc + 1, captures });
442
+ if (bestEnd !== undefined) {
443
+ let characters = bestEnd - start;
444
+ for (let index = 1; index <= this.groupCount; index++) {
445
+ const counted = work();
446
+ if (counted)
447
+ await counted;
448
+ const begin = bestCaptures[index * 2];
449
+ const end = bestCaptures[index * 2 + 1];
450
+ if (begin !== undefined && end !== undefined)
451
+ characters += end - begin;
452
+ }
453
+ const copied = work(characters);
454
+ if (copied)
455
+ await copied;
456
+ storage.reserve(64 + (this.groupCount + 1) * 40 + characters * 2);
457
+ const groups = [text.slice(start, bestEnd)];
458
+ for (let index = 1; index <= this.groupCount; index++) {
459
+ const materialized = work();
460
+ if (materialized)
461
+ await materialized;
462
+ const begin = bestCaptures[index * 2];
463
+ const end = bestCaptures[index * 2 + 1];
464
+ groups.push(begin === undefined || end === undefined ? undefined : text.slice(begin, end));
465
+ }
466
+ await budget.checkpoint();
467
+ return { start, end: bestEnd, groups };
334
468
  }
335
- else if (instruction.kind === "begin" ? position === 0 : position === text.length)
336
- pending.push({ pc: thread.pc + 1, captures: thread.captures });
469
+ }
470
+ finally {
471
+ positions.clear();
472
+ storage.clear();
337
473
  }
338
474
  }
339
- if (best)
340
- return best;
475
+ return undefined;
476
+ }
477
+ finally {
478
+ storage.clear();
341
479
  }
342
- return undefined;
343
480
  }
344
481
  }
345
482
  async function replacementLength(replacement, match, budget, available) {
@@ -409,7 +546,7 @@ export async function substitute(text, pattern, replacement, budget, global, occ
409
546
  while (search <= text.length) {
410
547
  await budget.checkpoint();
411
548
  budget.step();
412
- const match = pattern.find(text, budget, search);
549
+ const match = await pattern.find(text, budget, search);
413
550
  if (!match)
414
551
  break;
415
552
  if (match.start === match.end && match.start === previousEnd) {
@@ -1 +1 @@
1
- {"version":3,"file":"regex.js","sourceRoot":"","sources":["../../../src/commands/text-programs/regex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"regex.js","sourceRoot":"","sources":["../../../src/commands/text-programs/regex.ts"],"names":[],"mappings":"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"}
@@ -370,7 +370,7 @@ async function execute(program, context, files, quiet, budget, separator, output
370
370
  else
371
371
  outputState.unterminatedFiles.add(path);
372
372
  };
373
- const matches = async (address) => address.kind === "number" ? number === address.number : address.kind === "last" ? (await peekNext()).done === true : getPattern(address.pattern).find(pattern, budget) !== undefined;
373
+ const matches = async (address) => address.kind === "number" ? number === address.number : address.kind === "last" ? (await peekNext()).done === true : (await getPattern(address.pattern).find(pattern, budget)) !== undefined;
374
374
  for (let pc = 0; pc < program.length;) {
375
375
  budget.step();
376
376
  await budget.checkpoint();