@poe-platform/safe-bash 0.1.53 → 0.1.55

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 (137) hide show
  1. package/dist/safe-bash/browser.d.ts +2 -0
  2. package/dist/safe-bash/browser.d.ts.map +1 -1
  3. package/dist/safe-bash/browser.js +3951 -874
  4. package/dist/safe-bash/browser.js.map +4 -4
  5. package/dist/safe-bash/commands/basic.d.ts.map +1 -1
  6. package/dist/safe-bash/commands/basic.js +7 -1
  7. package/dist/safe-bash/commands/basic.js.map +1 -1
  8. package/dist/safe-bash/commands/filesystem-requirements.d.ts +67 -0
  9. package/dist/safe-bash/commands/filesystem-requirements.d.ts.map +1 -0
  10. package/dist/safe-bash/commands/filesystem-requirements.js +81 -0
  11. package/dist/safe-bash/commands/filesystem-requirements.js.map +1 -0
  12. package/dist/safe-bash/commands/filesystem.d.ts.map +1 -1
  13. package/dist/safe-bash/commands/filesystem.js +106 -9
  14. package/dist/safe-bash/commands/filesystem.js.map +1 -1
  15. package/dist/safe-bash/commands/grep.d.ts.map +1 -1
  16. package/dist/safe-bash/commands/grep.js +3 -109
  17. package/dist/safe-bash/commands/grep.js.map +1 -1
  18. package/dist/safe-bash/commands/internal.d.ts +1 -0
  19. package/dist/safe-bash/commands/internal.d.ts.map +1 -1
  20. package/dist/safe-bash/commands/internal.js +22 -0
  21. package/dist/safe-bash/commands/internal.js.map +1 -1
  22. package/dist/safe-bash/commands/move.d.ts.map +1 -1
  23. package/dist/safe-bash/commands/move.js +21 -0
  24. package/dist/safe-bash/commands/move.js.map +1 -1
  25. package/dist/safe-bash/commands/network/curl.js +2 -0
  26. package/dist/safe-bash/commands/network/curl.js.map +1 -1
  27. package/dist/safe-bash/commands/network/output.d.ts.map +1 -1
  28. package/dist/safe-bash/commands/network/output.js +37 -33
  29. package/dist/safe-bash/commands/network/output.js.map +1 -1
  30. package/dist/safe-bash/commands/portable-requirements.d.ts +6 -0
  31. package/dist/safe-bash/commands/portable-requirements.d.ts.map +1 -0
  32. package/dist/safe-bash/commands/portable-requirements.js +18 -0
  33. package/dist/safe-bash/commands/portable-requirements.js.map +1 -0
  34. package/dist/safe-bash/commands/predicates.d.ts.map +1 -1
  35. package/dist/safe-bash/commands/predicates.js +9 -1
  36. package/dist/safe-bash/commands/predicates.js.map +1 -1
  37. package/dist/safe-bash/commands/regex-execution/client.d.ts +5 -67
  38. package/dist/safe-bash/commands/regex-execution/client.d.ts.map +1 -1
  39. package/dist/safe-bash/commands/regex-execution/client.js +13 -379
  40. package/dist/safe-bash/commands/regex-execution/client.js.map +1 -1
  41. package/dist/safe-bash/commands/regex-execution/portable.d.ts +71 -0
  42. package/dist/safe-bash/commands/regex-execution/portable.d.ts.map +1 -0
  43. package/dist/safe-bash/commands/regex-execution/portable.js +385 -0
  44. package/dist/safe-bash/commands/regex-execution/portable.js.map +1 -0
  45. package/dist/safe-bash/commands/regex-execution/protocol.js +1 -1
  46. package/dist/safe-bash/commands/regex-execution/protocol.js.map +1 -1
  47. package/dist/safe-bash/commands/regex-execution/provider.d.ts +24 -0
  48. package/dist/safe-bash/commands/regex-execution/provider.d.ts.map +1 -0
  49. package/dist/safe-bash/commands/regex-execution/provider.js +2 -0
  50. package/dist/safe-bash/commands/regex-execution/provider.js.map +1 -0
  51. package/dist/safe-bash/commands/regex-execution/public.d.ts +9 -0
  52. package/dist/safe-bash/commands/regex-execution/public.d.ts.map +1 -0
  53. package/dist/safe-bash/commands/regex-execution/public.js +6 -0
  54. package/dist/safe-bash/commands/regex-execution/public.js.map +1 -0
  55. package/dist/safe-bash/commands/search/glob.d.ts +1 -1
  56. package/dist/safe-bash/commands/search/glob.d.ts.map +1 -1
  57. package/dist/safe-bash/commands/search/glob.js +1 -1
  58. package/dist/safe-bash/commands/search/glob.js.map +1 -1
  59. package/dist/safe-bash/commands/search/grep.d.ts +4 -0
  60. package/dist/safe-bash/commands/search/grep.d.ts.map +1 -0
  61. package/dist/safe-bash/commands/search/grep.js +119 -0
  62. package/dist/safe-bash/commands/search/grep.js.map +1 -0
  63. package/dist/safe-bash/commands/search/matcher.d.ts +1 -1
  64. package/dist/safe-bash/commands/search/matcher.d.ts.map +1 -1
  65. package/dist/safe-bash/commands/search/matcher.js +1 -1
  66. package/dist/safe-bash/commands/search/matcher.js.map +1 -1
  67. package/dist/safe-bash/commands/search/output.d.ts +1 -1
  68. package/dist/safe-bash/commands/search/output.d.ts.map +1 -1
  69. package/dist/safe-bash/commands/search/output.js +8 -2
  70. package/dist/safe-bash/commands/search/output.js.map +1 -1
  71. package/dist/safe-bash/commands/search/portable.d.ts +14 -0
  72. package/dist/safe-bash/commands/search/portable.d.ts.map +1 -0
  73. package/dist/safe-bash/commands/search/portable.js +22 -0
  74. package/dist/safe-bash/commands/search/portable.js.map +1 -0
  75. package/dist/safe-bash/commands/search/requirements.d.ts +9 -0
  76. package/dist/safe-bash/commands/search/requirements.d.ts.map +1 -0
  77. package/dist/safe-bash/commands/search/requirements.js +72 -0
  78. package/dist/safe-bash/commands/search/requirements.js.map +1 -0
  79. package/dist/safe-bash/commands/search/rg-command.d.ts +5 -0
  80. package/dist/safe-bash/commands/search/rg-command.d.ts.map +1 -0
  81. package/dist/safe-bash/commands/search/rg-command.js +230 -0
  82. package/dist/safe-bash/commands/search/rg-command.js.map +1 -0
  83. package/dist/safe-bash/commands/search/rg.d.ts +2 -2
  84. package/dist/safe-bash/commands/search/rg.d.ts.map +1 -1
  85. package/dist/safe-bash/commands/search/rg.js +3 -216
  86. package/dist/safe-bash/commands/search/rg.js.map +1 -1
  87. package/dist/safe-bash/commands/search/shared.d.ts.map +1 -1
  88. package/dist/safe-bash/commands/search/shared.js +2 -0
  89. package/dist/safe-bash/commands/search/shared.js.map +1 -1
  90. package/dist/safe-bash/commands/search/walk.d.ts +1 -1
  91. package/dist/safe-bash/commands/search/walk.d.ts.map +1 -1
  92. package/dist/safe-bash/commands/search/walk.js +8 -1
  93. package/dist/safe-bash/commands/search/walk.js.map +1 -1
  94. package/dist/safe-bash/commands/streams.d.ts.map +1 -1
  95. package/dist/safe-bash/commands/streams.js +52 -108
  96. package/dist/safe-bash/commands/streams.js.map +1 -1
  97. package/dist/safe-bash/commands/text-programs/sed.d.ts.map +1 -1
  98. package/dist/safe-bash/commands/text-programs/sed.js +23 -14
  99. package/dist/safe-bash/commands/text-programs/sed.js.map +1 -1
  100. package/dist/safe-bash/commands/text-programs/shared.d.ts.map +1 -1
  101. package/dist/safe-bash/commands/text-programs/shared.js +3 -5
  102. package/dist/safe-bash/commands/text-programs/shared.js.map +1 -1
  103. package/dist/safe-bash/commands/text.d.ts.map +1 -1
  104. package/dist/safe-bash/commands/text.js +22 -4
  105. package/dist/safe-bash/commands/text.js.map +1 -1
  106. package/dist/safe-bash/contracts/command-requirements.d.ts +22 -0
  107. package/dist/safe-bash/contracts/command-requirements.d.ts.map +1 -0
  108. package/dist/safe-bash/contracts/command-requirements.js +47 -0
  109. package/dist/safe-bash/contracts/command-requirements.js.map +1 -0
  110. package/dist/safe-bash/contracts/command.d.ts +2 -0
  111. package/dist/safe-bash/contracts/command.d.ts.map +1 -1
  112. package/dist/safe-bash/contracts/command.js.map +1 -1
  113. package/dist/safe-bash/contracts/filesystem-output.d.ts +12 -0
  114. package/dist/safe-bash/contracts/filesystem-output.d.ts.map +1 -0
  115. package/dist/safe-bash/contracts/filesystem-output.js +160 -0
  116. package/dist/safe-bash/contracts/filesystem-output.js.map +1 -0
  117. package/dist/safe-bash/contracts/index.d.ts +1 -0
  118. package/dist/safe-bash/contracts/index.d.ts.map +1 -1
  119. package/dist/safe-bash/contracts/index.js +1 -0
  120. package/dist/safe-bash/contracts/index.js.map +1 -1
  121. package/dist/safe-bash/contracts/io.d.ts +2 -0
  122. package/dist/safe-bash/contracts/io.d.ts.map +1 -1
  123. package/dist/safe-bash/contracts/io.js +2 -0
  124. package/dist/safe-bash/contracts/io.js.map +1 -1
  125. package/dist/safe-bash/contracts/output.d.ts +1 -0
  126. package/dist/safe-bash/contracts/output.d.ts.map +1 -1
  127. package/dist/safe-bash/contracts/output.js +6 -1
  128. package/dist/safe-bash/contracts/output.js.map +1 -1
  129. package/dist/safe-bash/index.d.ts +2 -1
  130. package/dist/safe-bash/index.d.ts.map +1 -1
  131. package/dist/safe-bash/index.js +2 -0
  132. package/dist/safe-bash/index.js.map +1 -1
  133. package/dist/safe-bash/shell/runtime.d.ts +7 -2
  134. package/dist/safe-bash/shell/runtime.d.ts.map +1 -1
  135. package/dist/safe-bash/shell/runtime.js +247 -185
  136. package/dist/safe-bash/shell/runtime.js.map +1 -1
  137. package/package.json +2 -2
@@ -1,385 +1,19 @@
1
1
  import { Worker } from "node:worker_threads";
2
- import { defaults, inputBytes, policy, RegexExecutionError, validateReply, validateExprInput, validateExprReply } from "./protocol.js";
2
+ import { RegexExecutor as PortableRegexExecutor } from "./portable.js";
3
+ export { AvailableRecords, RegexSession, withRegexSession } from "./portable.js";
3
4
  export { RegexExecutionError } from "./protocol.js";
4
- async function awaitRetirements(retirements) {
5
- const results = await Promise.allSettled(retirements);
6
- const failures = results.filter(result => result.status === "rejected").map(result => result.reason);
7
- if (failures.length === 1)
8
- throw failures[0];
9
- if (failures.length > 1)
10
- throw new AggregateError(failures, "regex retirement failed");
11
- }
12
- export async function withRegexSession(context, executor, execute) {
13
- context.signal.throwIfAborted();
14
- let session;
15
- let closing;
16
- const close = () => closing ??= (async () => { await session?.close(); })();
17
- try {
18
- context.registerCleanup?.(close);
19
- }
20
- catch (error) {
21
- context.signal.throwIfAborted();
22
- throw error;
23
- }
24
- let outcome;
25
- try {
26
- context.signal.throwIfAborted();
27
- if (closing)
28
- throw new RegexExecutionError("CLOSED", "invocation is closed");
29
- session = executor.open(context.signal);
30
- outcome = { result: await execute(session) };
31
- }
32
- catch (error) {
33
- outcome = { error };
34
- }
35
- let cleanupFailure;
36
- try {
37
- await close();
38
- }
39
- catch (error) {
40
- cleanupFailure = { error };
41
- }
42
- context.signal.throwIfAborted();
43
- if ("error" in outcome)
44
- throw outcome.error;
45
- if (cleanupFailure)
46
- throw cleanupFailure.error;
47
- return outcome.result;
48
- }
49
- class Slot {
50
- owner;
51
- worker;
52
- busy = true;
53
- ready = false;
54
- retired;
55
- idleTimer;
56
- receiver;
57
- failure;
58
- terminal;
59
- exited = false;
60
- message = (value) => {
61
- if (this.receiver)
62
- this.receiver(value);
63
- else
64
- this.fail(new RegexExecutionError("PROTOCOL", "unexpected idle message"));
65
- };
66
- error = (error) => this.fail(new RegexExecutionError("WORKER_ERROR", error.message));
67
- messageerror = () => this.fail(new RegexExecutionError("PROTOCOL", "worker message could not be deserialized"));
68
- exit = (code) => {
69
- this.exited = true;
70
- this.fail(new RegexExecutionError("WORKER_EXIT", `worker exited (${code})`));
71
- };
72
- constructor(owner) {
73
- this.owner = owner;
74
- this.worker = new Worker(new URL(import.meta.url.endsWith(".ts") ? "../../../dist/commands/regex-execution/worker.js" : "./worker.js", import.meta.url), {
75
- execArgv: [], resourceLimits: {
76
- maxOldGenerationSizeMb: owner.options.workerOldGenerationMb,
77
- stackSizeMb: owner.options.workerStackMb,
5
+ export class RegexExecutor extends PortableRegexExecutor {
6
+ constructor(options = {}) {
7
+ super({
8
+ createWorker(policy) {
9
+ return new Worker(new URL(import.meta.url.endsWith(".ts") ? "../../../dist/commands/regex-execution/worker.js" : "./worker.js", import.meta.url), {
10
+ execArgv: [], resourceLimits: {
11
+ maxOldGenerationSizeMb: policy.workerOldGenerationMb,
12
+ stackSizeMb: policy.workerStackMb,
13
+ },
14
+ });
78
15
  },
79
- });
80
- this.worker.on("message", this.message);
81
- this.worker.on("messageerror", this.messageerror);
82
- this.worker.on("error", this.error);
83
- this.worker.on("exit", this.exit);
84
- }
85
- fail(error) {
86
- this.terminal ??= error;
87
- if (this.failure)
88
- this.failure(error);
89
- else if (!this.busy)
90
- void this.retire();
91
- }
92
- exchange(timeout, startup, signal, send) {
93
- signal.throwIfAborted();
94
- if (this.terminal !== undefined)
95
- return Promise.reject(this.terminal);
96
- return new Promise((resolve, reject) => {
97
- const finish = (rejected, value) => {
98
- clearTimeout(timer);
99
- this.receiver = undefined;
100
- this.failure = undefined;
101
- if (rejected)
102
- reject(value);
103
- else
104
- resolve(value);
105
- };
106
- const timer = setTimeout(() => finish(true, new RegexExecutionError(startup ? "STARTUP_TIMEOUT" : "REQUEST_TIMEOUT", `${startup ? "startup" : "active request"} exceeded ${timeout}ms`)), timeout);
107
- this.receiver = value => finish(false, value);
108
- this.failure = error => finish(true, error);
109
- try {
110
- signal.throwIfAborted();
111
- send?.();
112
- }
113
- catch (error) {
114
- finish(true, error);
115
- }
116
- });
117
- }
118
- retire() {
119
- if (this.retired)
120
- return this.retired;
121
- clearTimeout(this.idleTimer);
122
- this.worker.ref();
123
- this.retired = (async () => {
124
- if (!this.exited)
125
- await this.worker.terminate();
126
- })().finally(() => {
127
- this.worker.off("message", this.message);
128
- this.worker.off("messageerror", this.messageerror);
129
- this.worker.off("error", this.error);
130
- this.worker.off("exit", this.exit);
131
- this.receiver = undefined;
132
- this.failure = undefined;
133
- if (!this.busy)
134
- this.owner.retired(this);
135
- });
136
- void this.retired.catch(() => { });
137
- return this.retired;
138
- }
139
- }
140
- export class RegexExecutor {
141
- options;
142
- slots = new Set();
143
- queue = [];
144
- queuedBytes = 0;
145
- sessions = 0;
146
- sequence = 0;
147
- disposed = false;
148
- constructor(options = defaults) { this.options = policy(options); }
149
- open(signal) {
150
- signal.throwIfAborted();
151
- if (this.disposed)
152
- throw new RegexExecutionError("CLOSED", "executor is disposed");
153
- this.sessions++;
154
- return new RegexSession(this, signal);
155
- }
156
- async close() {
157
- this.sessions--;
158
- if (this.sessions === 0)
159
- await awaitRetirements([...this.slots].filter(slot => !slot.busy || slot.retired).map(slot => slot.retire()));
160
- }
161
- async dispose() {
162
- this.disposed = true;
163
- const error = new RegexExecutionError("CLOSED", "executor is disposed");
164
- for (const pending of this.queue.splice(0)) {
165
- pending.signal.removeEventListener("abort", pending.abort);
166
- pending.reject(error);
167
- }
168
- this.queuedBytes = 0;
169
- for (const slot of this.slots)
170
- slot.fail(error);
171
- await Promise.all([...this.slots].map(slot => slot.retire()));
172
- }
173
- retired(slot) {
174
- this.slots.delete(slot);
175
- this.pump();
176
- }
177
- request(descriptor, rows, signal, retirements = new Set()) {
178
- signal.throwIfAborted();
179
- if (this.disposed)
180
- return Promise.reject(new RegexExecutionError("CLOSED", "executor is disposed"));
181
- if (descriptor.kind === "expr-match")
182
- validateExprInput(descriptor, rows, signal);
183
- const bytes = descriptor.kind === "expr-match" ? 256 + descriptor.pattern.length + rows[0].bytes.length : inputBytes(descriptor, rows, signal);
184
- const available = this.queue.length === 0 && ([...this.slots].some(slot => !slot.busy && !slot.retired) || this.slots.size < this.options.maxWorkers);
185
- if (!available && (this.queue.length >= this.options.maxQueuedRequests || bytes > this.options.maxQueuedBytes - this.queuedBytes))
186
- return Promise.reject(new RegexExecutionError("QUEUE_EXHAUSTED", "queued request count or input byte limit exceeded"));
187
- const ownedDescriptor = descriptor.kind === "expr-match"
188
- ? { ...descriptor, pattern: Uint8Array.from(descriptor.pattern), limits: { ...descriptor.limits } }
189
- : { ...descriptor, patterns: descriptor.patterns.map(pattern => { signal.throwIfAborted(); return pattern; }) };
190
- if (ownedDescriptor.kind === "glob") {
191
- const globOptions = ownedDescriptor.globOptions.map(options => { signal.throwIfAborted(); return { ...options }; });
192
- Object.assign(ownedDescriptor, { globOptions });
193
- }
194
- const ownedRows = rows.map(row => { signal.throwIfAborted(); return { ...row, bytes: Uint8Array.from(row.bytes) }; });
195
- return new Promise((resolve, reject) => {
196
- const pending = {
197
- descriptor: ownedDescriptor, rows: ownedRows, signal, bytes, resolve, reject, retirements,
198
- abort: () => {
199
- if (pending.slot)
200
- pending.slot.fail(signal.reason);
201
- else {
202
- const index = this.queue.indexOf(pending);
203
- if (index >= 0) {
204
- this.queue.splice(index, 1);
205
- this.queuedBytes -= bytes;
206
- }
207
- signal.removeEventListener("abort", pending.abort);
208
- reject(signal.reason);
209
- this.pump();
210
- }
211
- },
212
- };
213
- signal.addEventListener("abort", pending.abort, { once: true });
214
- this.queue.push(pending);
215
- this.queuedBytes += bytes;
216
- this.pump();
217
- });
218
- }
219
- pump() {
220
- if (this.disposed)
221
- return;
222
- while (this.queue.length) {
223
- let slot = [...this.slots].find(candidate => !candidate.busy && !candidate.retired);
224
- if (!slot && this.slots.size >= this.options.maxWorkers)
225
- return;
226
- const pending = this.queue.shift();
227
- this.queuedBytes -= pending.bytes;
228
- try {
229
- pending.signal.throwIfAborted();
230
- if (!slot) {
231
- slot = new Slot(this);
232
- this.slots.add(slot);
233
- }
234
- slot.busy = true;
235
- pending.slot = slot;
236
- clearTimeout(slot.idleTimer);
237
- slot.worker.ref();
238
- void this.run(slot, pending);
239
- }
240
- catch (error) {
241
- pending.signal.removeEventListener("abort", pending.abort);
242
- pending.reject(error);
243
- }
244
- }
245
- }
246
- async run(slot, pending) {
247
- let result;
248
- let failure;
249
- let rejected = false;
250
- try {
251
- pending.signal.throwIfAborted();
252
- if (!slot.ready) {
253
- const ready = await slot.exchange(this.options.startupTimeoutMs, true, pending.signal);
254
- if (!ready || typeof ready !== "object" || !("ready" in ready) || ready.ready !== true)
255
- throw new RegexExecutionError("PROTOCOL", "invalid startup reply");
256
- slot.ready = true;
257
- }
258
- pending.signal.throwIfAborted();
259
- const id = ++this.sequence;
260
- const started = performance.now();
261
- const reply = await slot.exchange(this.options.requestTimeoutMs, false, pending.signal, () => slot.worker.postMessage({ id, descriptor: pending.descriptor, rows: pending.rows }));
262
- result = pending.descriptor.kind === "expr-match"
263
- ? validateExprReply(reply, id, pending.descriptor, pending.rows[0].bytes, pending.signal)
264
- : validateReply(reply, id, pending.rows, pending.signal);
265
- if (performance.now() - started > this.options.requestTimeoutMs)
266
- throw new RegexExecutionError("REQUEST_TIMEOUT", `active request exceeded ${this.options.requestTimeoutMs}ms`);
267
- pending.signal.throwIfAborted();
268
- }
269
- catch (error) {
270
- rejected = true;
271
- failure = pending.signal.aborted ? pending.signal.reason : error;
272
- const retirement = slot.retire();
273
- pending.retirements.add(retirement);
274
- try {
275
- await retirement;
276
- }
277
- catch { }
278
- }
279
- finally {
280
- pending.signal.removeEventListener("abort", pending.abort);
281
- slot.busy = false;
282
- if (slot.retired)
283
- this.retired(slot);
284
- else {
285
- slot.worker.unref();
286
- slot.idleTimer = setTimeout(() => { if (!slot.busy)
287
- void slot.retire(); }, this.options.idleTimeoutMs);
288
- slot.idleTimer.unref();
289
- }
290
- this.pump();
291
- }
292
- if (rejected)
293
- pending.reject(failure);
294
- else
295
- pending.resolve(result);
296
- }
297
- }
298
- export class RegexSession {
299
- executor;
300
- signal;
301
- closed;
302
- pending = new Set();
303
- retirements = new Set();
304
- controller = new AbortController();
305
- requestSignal;
306
- constructor(executor, signal) {
307
- this.executor = executor;
308
- this.signal = signal;
309
- this.requestSignal = AbortSignal.any([signal, this.controller.signal]);
310
- }
311
- run(descriptor, rows) {
312
- this.signal.throwIfAborted();
313
- if (this.closed)
314
- throw new RegexExecutionError("CLOSED", "invocation is closed");
315
- const result = this.executor.request(descriptor, rows, this.requestSignal, this.retirements);
316
- this.pending.add(result);
317
- void result.then(() => this.pending.delete(result), () => this.pending.delete(result));
318
- return result;
319
- }
320
- matchExpr(descriptor, subject) {
321
- this.signal.throwIfAborted();
322
- if (this.closed)
323
- throw new RegexExecutionError("CLOSED", "invocation is closed");
324
- const result = this.executor.request(descriptor, [{ bytes: subject, all: false, terminated: false }], this.requestSignal, this.retirements);
325
- this.pending.add(result);
326
- void result.then(() => this.pending.delete(result), () => this.pending.delete(result));
327
- return result;
328
- }
329
- close() {
330
- return this.closed ??= Promise.resolve().then(async () => {
331
- this.controller.abort(this.signal.aborted ? this.signal.reason : new RegexExecutionError("CLOSED", "invocation is closed"));
332
- try {
333
- await Promise.allSettled([...this.pending]);
334
- }
335
- finally {
336
- await awaitRetirements([...this.retirements, this.executor.close()]);
337
- }
338
- });
339
- }
340
- }
341
- export class AvailableRecords {
342
- delimiter;
343
- maxLineBytes;
344
- extraDelimiter;
345
- chunk = new Uint8Array(0);
346
- offset = 0;
347
- constructor(delimiter, maxLineBytes, extraDelimiter = -1) {
348
- this.delimiter = delimiter;
349
- this.maxLineBytes = maxLineBytes;
350
- this.extraDelimiter = extraDelimiter;
351
- }
352
- async *source(source) {
353
- for await (const chunk of source) {
354
- this.chunk = Uint8Array.from(chunk);
355
- this.offset = 0;
356
- yield this.chunk;
357
- }
358
- }
359
- end() {
360
- for (let offset = this.offset; offset < this.chunk.length; offset++) {
361
- if (this.chunk[offset] === this.delimiter || this.chunk[offset] === this.extraDelimiter)
362
- return offset;
363
- }
364
- return -1;
365
- }
366
- async *batches(source, size, maxRecords = () => 128) {
367
- let batch = [];
368
- let bytes = 0;
369
- for await (const line of source) {
370
- const end = this.end();
371
- this.offset = end < 0 ? this.chunk.length : end + 1;
372
- batch.push(line);
373
- bytes += size(line);
374
- const next = this.end();
375
- if (batch.length >= maxRecords() || bytes >= 64 * 1024 || next < 0 || bytes + next - this.offset > 64 * 1024 || next - this.offset > this.maxLineBytes) {
376
- yield batch;
377
- batch = [];
378
- bytes = 0;
379
- }
380
- }
381
- if (batch.length)
382
- yield batch;
16
+ }, options);
383
17
  }
384
18
  }
385
19
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/commands/regex-execution/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/commands/regex-execution/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,aAAa,IAAI,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAA8B,MAAM,eAAe,CAAC;AAEhF,MAAM,OAAO,aAAc,SAAQ,qBAAqB;IACtD,YAAY,UAAiC,EAAE;QAC7C,KAAK,CAAC;YACJ,YAAY,CAAC,MAAM;gBACjB,OAAO,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBAChJ,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE;wBAC5B,sBAAsB,EAAE,MAAM,CAAC,qBAAqB;wBACpD,WAAW,EAAE,MAAM,CAAC,aAAa;qBAClC;iBACF,CAAC,CAAC;YACL,CAAC;SACF,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,71 @@
1
+ import type { BoundedRegexProvider, RegexWorker } from "./provider.js";
2
+ import type { CommandContext, CommandResult } from "../../contracts/command.js";
3
+ import type { ByteSource } from "../../contracts/io.js";
4
+ import { type ExprMatchDescriptor, type ExprMatchResult, type Descriptor, type Match, type RegexExecutionOptions, type Row } from "./protocol.js";
5
+ export type { RegexExecutionOptions } from "./protocol.js";
6
+ export { RegexExecutionError } from "./protocol.js";
7
+ export declare function withRegexSession(context: CommandContext, executor: RegexExecutor, execute: (session: RegexSession) => CommandResult | Promise<CommandResult>): Promise<CommandResult>;
8
+ declare class Slot {
9
+ private readonly owner;
10
+ readonly worker: RegexWorker;
11
+ busy: boolean;
12
+ ready: boolean;
13
+ retired: Promise<void> | undefined;
14
+ idleTimer: ReturnType<typeof setTimeout> | undefined;
15
+ private receiver;
16
+ private failure;
17
+ private terminal;
18
+ private exited;
19
+ private readonly message;
20
+ private readonly error;
21
+ private readonly messageerror;
22
+ private readonly exit;
23
+ constructor(owner: RegexExecutor);
24
+ fail(error: unknown): void;
25
+ exchange(timeout: number, startup: boolean, signal: AbortSignal, send?: () => void): Promise<unknown>;
26
+ retire(): Promise<void>;
27
+ }
28
+ export declare class RegexExecutor {
29
+ readonly provider: BoundedRegexProvider;
30
+ readonly options: Required<RegexExecutionOptions>;
31
+ private readonly slots;
32
+ private readonly queue;
33
+ private queuedBytes;
34
+ private sessions;
35
+ private sequence;
36
+ private disposed;
37
+ constructor(provider: BoundedRegexProvider, options?: RegexExecutionOptions);
38
+ open(signal: AbortSignal): RegexSession;
39
+ close(): Promise<void>;
40
+ dispose(): Promise<void>;
41
+ retired(slot: Slot): void;
42
+ request(descriptor: Descriptor, rows: readonly Row[], signal: AbortSignal, retirements?: Set<Promise<void>>): Promise<Match[][]>;
43
+ request(descriptor: ExprMatchDescriptor, rows: readonly Row[], signal: AbortSignal, retirements?: Set<Promise<void>>): Promise<ExprMatchResult>;
44
+ private pump;
45
+ private run;
46
+ }
47
+ export declare class RegexSession {
48
+ private readonly executor;
49
+ private readonly signal;
50
+ private closed;
51
+ private readonly pending;
52
+ private readonly retirements;
53
+ private readonly controller;
54
+ private readonly requestSignal;
55
+ constructor(executor: RegexExecutor, signal: AbortSignal);
56
+ run(descriptor: Descriptor, rows: readonly Row[]): Promise<Match[][]>;
57
+ matchExpr(descriptor: ExprMatchDescriptor, subject: Uint8Array): Promise<ExprMatchResult>;
58
+ close(): Promise<void>;
59
+ }
60
+ export declare class AvailableRecords {
61
+ private readonly delimiter;
62
+ private readonly maxLineBytes;
63
+ private readonly extraDelimiter;
64
+ private chunk;
65
+ private offset;
66
+ constructor(delimiter: number, maxLineBytes: number, extraDelimiter?: number);
67
+ source(source: ByteSource): ByteSource;
68
+ private end;
69
+ batches<Line>(source: AsyncIterable<Line>, size: (line: Line) => number, maxRecords?: () => number): AsyncGenerator<Line[]>;
70
+ }
71
+ //# sourceMappingURL=portable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portable.d.ts","sourceRoot":"","sources":["../../../src/commands/regex-execution/portable.ts"],"names":[],"mappings":"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"}