tywrap 0.3.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 (101) hide show
  1. package/README.md +40 -5
  2. package/dist/cli.js +24 -6
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config/index.d.ts.map +1 -1
  5. package/dist/config/index.js +19 -13
  6. package/dist/config/index.js.map +1 -1
  7. package/dist/core/analyzer.d.ts.map +1 -1
  8. package/dist/core/analyzer.js +0 -1
  9. package/dist/core/analyzer.js.map +1 -1
  10. package/dist/dev.d.ts +57 -0
  11. package/dist/dev.d.ts.map +1 -0
  12. package/dist/dev.js +743 -0
  13. package/dist/dev.js.map +1 -0
  14. package/dist/index.d.ts +5 -4
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +6 -6
  17. package/dist/index.js.map +1 -1
  18. package/dist/runtime/base.d.ts +7 -7
  19. package/dist/runtime/base.js +8 -8
  20. package/dist/runtime/bounded-context.d.ts +15 -31
  21. package/dist/runtime/bounded-context.d.ts.map +1 -1
  22. package/dist/runtime/bounded-context.js +16 -15
  23. package/dist/runtime/bounded-context.js.map +1 -1
  24. package/dist/runtime/http.d.ts +24 -5
  25. package/dist/runtime/http.d.ts.map +1 -1
  26. package/dist/runtime/http.js +57 -12
  27. package/dist/runtime/http.js.map +1 -1
  28. package/dist/runtime/node.d.ts +33 -7
  29. package/dist/runtime/node.d.ts.map +1 -1
  30. package/dist/runtime/node.js +144 -120
  31. package/dist/runtime/node.js.map +1 -1
  32. package/dist/runtime/optimized-node.d.ts +5 -4
  33. package/dist/runtime/optimized-node.d.ts.map +1 -1
  34. package/dist/runtime/optimized-node.js +5 -4
  35. package/dist/runtime/optimized-node.js.map +1 -1
  36. package/dist/runtime/pooled-transport.d.ts +2 -18
  37. package/dist/runtime/pooled-transport.d.ts.map +1 -1
  38. package/dist/runtime/pooled-transport.js +2 -29
  39. package/dist/runtime/pooled-transport.js.map +1 -1
  40. package/dist/runtime/process-io.d.ts +2 -18
  41. package/dist/runtime/process-io.d.ts.map +1 -1
  42. package/dist/runtime/process-io.js +3 -30
  43. package/dist/runtime/process-io.js.map +1 -1
  44. package/dist/runtime/pyodide-bootstrap-core.generated.d.ts +12 -0
  45. package/dist/runtime/pyodide-bootstrap-core.generated.d.ts.map +1 -0
  46. package/dist/runtime/pyodide-bootstrap-core.generated.js +12 -0
  47. package/dist/runtime/pyodide-bootstrap-core.generated.js.map +1 -0
  48. package/dist/runtime/pyodide-io.d.ts +7 -37
  49. package/dist/runtime/pyodide-io.d.ts.map +1 -1
  50. package/dist/runtime/pyodide-io.js +90 -214
  51. package/dist/runtime/pyodide-io.js.map +1 -1
  52. package/dist/runtime/pyodide.d.ts +25 -5
  53. package/dist/runtime/pyodide.d.ts.map +1 -1
  54. package/dist/runtime/pyodide.js +59 -10
  55. package/dist/runtime/pyodide.js.map +1 -1
  56. package/dist/runtime/{bridge-protocol.d.ts → rpc-client.d.ts} +59 -46
  57. package/dist/runtime/rpc-client.d.ts.map +1 -0
  58. package/dist/runtime/{bridge-protocol.js → rpc-client.js} +60 -42
  59. package/dist/runtime/rpc-client.js.map +1 -0
  60. package/dist/runtime/worker-pool.d.ts +8 -20
  61. package/dist/runtime/worker-pool.d.ts.map +1 -1
  62. package/dist/runtime/worker-pool.js +58 -59
  63. package/dist/runtime/worker-pool.js.map +1 -1
  64. package/dist/types/index.d.ts +8 -10
  65. package/dist/types/index.d.ts.map +1 -1
  66. package/dist/tywrap.d.ts +6 -0
  67. package/dist/tywrap.d.ts.map +1 -1
  68. package/dist/tywrap.js +10 -3
  69. package/dist/tywrap.js.map +1 -1
  70. package/package.json +22 -18
  71. package/runtime/__pycache__/safe_codec.cpython-311.pyc +0 -0
  72. package/runtime/__pycache__/tywrap_bridge_core.cpython-311.pyc +0 -0
  73. package/runtime/python_bridge.py +85 -702
  74. package/runtime/safe_codec.py +10 -2
  75. package/runtime/tywrap_bridge_core.py +875 -0
  76. package/src/cli.ts +27 -6
  77. package/src/config/index.ts +28 -15
  78. package/src/core/analyzer.ts +1 -2
  79. package/src/dev.ts +983 -0
  80. package/src/index.ts +7 -7
  81. package/src/runtime/base.ts +8 -8
  82. package/src/runtime/bounded-context.ts +17 -56
  83. package/src/runtime/http.ts +85 -13
  84. package/src/runtime/node.ts +172 -178
  85. package/src/runtime/optimized-node.ts +5 -4
  86. package/src/runtime/pooled-transport.ts +2 -57
  87. package/src/runtime/process-io.ts +3 -55
  88. package/src/runtime/pyodide-bootstrap-core.generated.ts +12 -0
  89. package/src/runtime/pyodide-io.ts +92 -243
  90. package/src/runtime/pyodide.ts +87 -10
  91. package/src/runtime/{bridge-protocol.ts → rpc-client.ts} +76 -49
  92. package/src/runtime/worker-pool.ts +67 -88
  93. package/src/types/index.ts +20 -12
  94. package/src/tywrap.ts +17 -3
  95. package/dist/runtime/bridge-core.d.ts +0 -65
  96. package/dist/runtime/bridge-core.d.ts.map +0 -1
  97. package/dist/runtime/bridge-core.js +0 -379
  98. package/dist/runtime/bridge-core.js.map +0 -1
  99. package/dist/runtime/bridge-protocol.d.ts.map +0 -1
  100. package/dist/runtime/bridge-protocol.js.map +0 -1
  101. package/src/runtime/bridge-core.ts +0 -494
@@ -1,379 +0,0 @@
1
- import { BridgeExecutionError, BridgeProtocolError, BridgeTimeoutError } from './errors.js';
2
- import { TYWRAP_PROTOCOL, TYWRAP_PROTOCOL_VERSION } from './protocol.js';
3
- import { TimedOutRequestTracker } from './timed-out-request-tracker.js';
4
- // Why: keep stdout lines bounded to prevent unbounded memory growth on malformed output.
5
- const DEFAULT_MAX_LINE_LENGTH = 1024 * 1024; // 1MB
6
- // Why: keep stderr snapshots small but useful for diagnostics on timeouts/exits.
7
- const DEFAULT_MAX_STDERR_BYTES = 8 * 1024; // 8KB
8
- const defaultDecodeValue = async (value) => value;
9
- const noop = () => { };
10
- const ANSI_ESCAPE_RE = new RegExp('\\u001b\\[[0-9;]*[A-Za-z]', 'g');
11
- const CONTROL_CHARS_RE = new RegExp('[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F\\u007F\\u0080-\\u009F]', 'g');
12
- const sanitizeStderr = (value) => value.replace(ANSI_ESCAPE_RE, '').replace(CONTROL_CHARS_RE, '');
13
- export class BridgeCore {
14
- transport;
15
- options;
16
- timedOutRequests;
17
- pending = new Map();
18
- nextId = 1;
19
- stdoutBuffer = '';
20
- stderrBuffer = '';
21
- protocolError = false;
22
- constructor(transport, options) {
23
- this.transport = transport;
24
- this.options = {
25
- timeoutMs: options.timeoutMs,
26
- maxLineLength: options.maxLineLength ?? DEFAULT_MAX_LINE_LENGTH,
27
- maxStderrBytes: options.maxStderrBytes ?? DEFAULT_MAX_STDERR_BYTES,
28
- protocol: options.protocol ?? TYWRAP_PROTOCOL,
29
- protocolVersion: options.protocolVersion ?? TYWRAP_PROTOCOL_VERSION,
30
- decodeValue: options.decodeValue ?? defaultDecodeValue,
31
- onFatalError: options.onFatalError ?? noop,
32
- onTimeout: options.onTimeout ?? noop,
33
- };
34
- this.timedOutRequests = new TimedOutRequestTracker({
35
- ttlMs: Math.max(1000, this.options.timeoutMs * 2),
36
- });
37
- }
38
- getStderrTail() {
39
- return this.stderrBuffer.trim();
40
- }
41
- getPendingCount() {
42
- return this.pending.size;
43
- }
44
- clear() {
45
- for (const [, pending] of this.pending) {
46
- if (pending.timer) {
47
- clearTimeout(pending.timer);
48
- }
49
- }
50
- this.pending.clear();
51
- this.timedOutRequests.clear();
52
- this.stdoutBuffer = '';
53
- this.stderrBuffer = '';
54
- this.protocolError = false;
55
- }
56
- async send(payload) {
57
- const id = this.nextId++;
58
- const message = { ...payload, id, protocol: this.options.protocol };
59
- let text;
60
- try {
61
- text = JSON.stringify(message);
62
- }
63
- catch (err) {
64
- throw new BridgeProtocolError(`Failed to serialize request: ${err instanceof Error ? err.message : String(err)}`);
65
- }
66
- let timer;
67
- const promise = new Promise((resolve, reject) => {
68
- timer = setTimeout(() => {
69
- this.pending.delete(id);
70
- this.timedOutRequests.mark(id);
71
- const stderrTail = this.getStderrTail();
72
- const msg = stderrTail
73
- ? `Python call timed out. Recent stderr from Python:\n${stderrTail}`
74
- : 'Python call timed out';
75
- const timeoutError = new BridgeTimeoutError(msg);
76
- reject(timeoutError);
77
- this.options.onTimeout(timeoutError);
78
- }, this.options.timeoutMs);
79
- const resolveWrapped = (value) => {
80
- resolve(value);
81
- };
82
- this.pending.set(id, { resolve: resolveWrapped, reject, timer });
83
- });
84
- try {
85
- this.transport.write(`${text}\n`);
86
- }
87
- catch (err) {
88
- const failure = new BridgeProtocolError(`IPC failure: ${err instanceof Error ? err.message : String(err)}`);
89
- this.failRequest(id, failure);
90
- this.handleFatalError(failure);
91
- }
92
- return promise;
93
- }
94
- handleStdoutData(chunk) {
95
- this.stdoutBuffer += chunk.toString();
96
- if (this.stdoutBuffer.length > this.options.maxLineLength &&
97
- !this.stdoutBuffer.includes('\n')) {
98
- const snippet = this.stdoutBuffer.slice(0, this.options.maxLineLength);
99
- this.stdoutBuffer = '';
100
- this.handleProtocolError(`Response line exceeded ${this.options.maxLineLength} bytes`, snippet);
101
- return;
102
- }
103
- let idx;
104
- while ((idx = this.stdoutBuffer.indexOf('\n')) !== -1) {
105
- const line = this.stdoutBuffer.slice(0, idx);
106
- this.stdoutBuffer = this.stdoutBuffer.slice(idx + 1);
107
- if (!line.trim()) {
108
- continue;
109
- }
110
- if (line.length > this.options.maxLineLength) {
111
- const snippet = line.slice(0, this.options.maxLineLength);
112
- this.handleProtocolError(`Response line exceeded ${this.options.maxLineLength} bytes`, snippet);
113
- return;
114
- }
115
- this.handleResponseLine(line);
116
- }
117
- }
118
- handleStderrData(chunk) {
119
- try {
120
- this.stderrBuffer += sanitizeStderr(chunk.toString());
121
- if (this.stderrBuffer.length > this.options.maxStderrBytes) {
122
- this.stderrBuffer = this.stderrBuffer.slice(this.stderrBuffer.length - this.options.maxStderrBytes);
123
- }
124
- }
125
- catch {
126
- // Ignore stderr buffering errors
127
- }
128
- }
129
- handleProcessExit() {
130
- const stderrTail = this.getStderrTail();
131
- const msg = stderrTail
132
- ? `Python process exited. Stderr:\n${stderrTail}`
133
- : 'Python process exited';
134
- this.rejectAll(new BridgeProtocolError(msg));
135
- }
136
- handleProcessError(err) {
137
- const msg = `Python process error: ${err.message}`;
138
- const error = new BridgeProtocolError(msg);
139
- this.rejectAll(error);
140
- this.handleFatalError(error);
141
- }
142
- handleResponseLine(line) {
143
- let msg;
144
- try {
145
- const parsed = JSON.parse(line);
146
- if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
147
- this.handleProtocolError('Invalid response payload', line);
148
- return;
149
- }
150
- msg = parsed;
151
- }
152
- catch (err) {
153
- const parseMessage = err instanceof Error ? err.message : String(err);
154
- this.handleProtocolError(`Invalid JSON: ${parseMessage}`, line);
155
- return;
156
- }
157
- if (msg.protocol !== this.options.protocol) {
158
- this.handleProtocolError(`Invalid protocol. Expected ${this.options.protocol} but received ${String(msg.protocol)}`, line);
159
- return;
160
- }
161
- if (typeof msg.id !== 'number') {
162
- this.handleProtocolError('Invalid response id', line);
163
- return;
164
- }
165
- const pending = this.pending.get(msg.id);
166
- if (!pending) {
167
- if (this.timedOutRequests.consume(msg.id)) {
168
- return;
169
- }
170
- this.handleProtocolError(`Unexpected response id ${msg.id}`, line);
171
- return;
172
- }
173
- const hasResult = Object.prototype.hasOwnProperty.call(msg, 'result');
174
- const hasError = Object.prototype.hasOwnProperty.call(msg, 'error');
175
- if (hasResult && hasError) {
176
- this.handleProtocolError('Response cannot include both "result" and "error"', line);
177
- return;
178
- }
179
- if (hasError) {
180
- const errorPayload = this.normalizeErrorPayload(msg.error);
181
- if (!errorPayload) {
182
- const reason = this.describeInvalidErrorPayload(msg.error);
183
- this.handleProtocolError(`Invalid response "error" payload: ${reason}`, line);
184
- return;
185
- }
186
- this.pending.delete(msg.id);
187
- if (pending.timer) {
188
- clearTimeout(pending.timer);
189
- }
190
- pending.reject(this.errorFrom(errorPayload));
191
- return;
192
- }
193
- this.pending.delete(msg.id);
194
- if (pending.timer) {
195
- clearTimeout(pending.timer);
196
- }
197
- Promise.resolve(this.options.decodeValue(msg.result))
198
- .then(decoded => pending.resolve(decoded))
199
- .catch(err => {
200
- pending.reject(new BridgeProtocolError(`Failed to decode Python response: ${err instanceof Error ? err.message : String(err)}`));
201
- });
202
- }
203
- errorFrom(err) {
204
- const error = new BridgeExecutionError(`${err.type}: ${err.message}`);
205
- error.traceback = err.traceback;
206
- return error;
207
- }
208
- normalizeErrorPayload(err) {
209
- if (!err || typeof err !== 'object' || Array.isArray(err)) {
210
- return null;
211
- }
212
- const candidate = err;
213
- if (typeof candidate.type !== 'string' || typeof candidate.message !== 'string') {
214
- return null;
215
- }
216
- if (candidate.traceback !== undefined && typeof candidate.traceback !== 'string') {
217
- return null;
218
- }
219
- const normalized = {
220
- type: candidate.type,
221
- message: candidate.message,
222
- };
223
- if (typeof candidate.traceback === 'string') {
224
- normalized.traceback = candidate.traceback;
225
- }
226
- return normalized;
227
- }
228
- describeInvalidErrorPayload(err) {
229
- if (!err || typeof err !== 'object' || Array.isArray(err)) {
230
- return 'expected an object with string "type" and "message" fields';
231
- }
232
- const candidate = err;
233
- if (typeof candidate.type !== 'string') {
234
- return '"type" must be a string';
235
- }
236
- if (typeof candidate.message !== 'string') {
237
- return '"message" must be a string';
238
- }
239
- if (candidate.traceback !== undefined && typeof candidate.traceback !== 'string') {
240
- return '"traceback" must be a string when provided';
241
- }
242
- return 'expected an object with string "type" and "message" fields';
243
- }
244
- failRequest(id, error) {
245
- const pending = this.pending.get(id);
246
- if (!pending) {
247
- return;
248
- }
249
- this.pending.delete(id);
250
- if (pending.timer) {
251
- clearTimeout(pending.timer);
252
- }
253
- pending.reject(error);
254
- }
255
- rejectAll(error) {
256
- for (const [, pending] of this.pending) {
257
- if (pending.timer) {
258
- clearTimeout(pending.timer);
259
- }
260
- pending.reject(error);
261
- }
262
- this.pending.clear();
263
- this.timedOutRequests.clear();
264
- }
265
- handleProtocolError(details, line) {
266
- if (this.protocolError) {
267
- return;
268
- }
269
- this.protocolError = true;
270
- const snippet = line ? (line.length > 500 ? `${line.slice(0, 500)}...` : line) : undefined;
271
- const hint = 'Ensure your Python code does not print to stdout and that the bridge outputs only JSON lines.';
272
- const msg = snippet
273
- ? `Protocol error from Python bridge. ${details}\n${hint}\nOffending line: ${snippet}`
274
- : `Protocol error from Python bridge. ${details}\n${hint}`;
275
- const error = new BridgeProtocolError(msg);
276
- this.rejectAll(error);
277
- this.handleFatalError(error);
278
- }
279
- handleFatalError(error) {
280
- try {
281
- this.options.onFatalError(error);
282
- }
283
- catch {
284
- // Ignore callback failures
285
- }
286
- }
287
- }
288
- export function validateBridgeInfo(info) {
289
- if (!info || typeof info !== 'object') {
290
- throw new BridgeProtocolError('Invalid bridge info payload');
291
- }
292
- const candidate = info;
293
- if (candidate.protocol !== TYWRAP_PROTOCOL ||
294
- candidate.protocolVersion !== TYWRAP_PROTOCOL_VERSION) {
295
- throw new BridgeProtocolError('Invalid bridge info payload');
296
- }
297
- if (candidate.bridge !== 'python-subprocess') {
298
- throw new BridgeProtocolError(`Unexpected bridge identifier: ${candidate.bridge}`);
299
- }
300
- }
301
- export function getPathKey(...envs) {
302
- for (const env of envs) {
303
- const key = findPathKey(env);
304
- if (key) {
305
- return key;
306
- }
307
- }
308
- return 'PATH';
309
- }
310
- export function ensurePythonEncoding(env) {
311
- if (env.PYTHONUTF8 === undefined || env.PYTHONUTF8 === null || env.PYTHONUTF8 === '') {
312
- env.PYTHONUTF8 = '1';
313
- }
314
- if (env.PYTHONIOENCODING === undefined ||
315
- env.PYTHONIOENCODING === null ||
316
- env.PYTHONIOENCODING === '') {
317
- env.PYTHONIOENCODING = 'UTF-8';
318
- }
319
- }
320
- export function ensureJsonFallback(env, enabled) {
321
- if (enabled && !env.TYWRAP_CODEC_FALLBACK) {
322
- env.TYWRAP_CODEC_FALLBACK = 'json';
323
- }
324
- }
325
- export function getMaxLineLengthFromEnv(env) {
326
- const raw = env.TYWRAP_CODEC_MAX_BYTES?.trim();
327
- if (!raw) {
328
- return undefined;
329
- }
330
- if (!/^\d+$/.test(raw)) {
331
- return undefined;
332
- }
333
- const parsed = Number(raw);
334
- if (!Number.isFinite(parsed) || parsed <= 0) {
335
- return undefined;
336
- }
337
- return parsed;
338
- }
339
- export function normalizeEnv(baseEnv, overrides) {
340
- // Why: normalize PATH casing (Windows) and drop undefined values to avoid spawn surprises.
341
- const overridePathKey = findPathKey(overrides);
342
- const basePathKey = findPathKey(baseEnv);
343
- const pathKey = basePathKey ?? overridePathKey ?? 'PATH';
344
- let pathValue;
345
- if (overridePathKey !== null) {
346
- // eslint-disable-next-line security/detect-object-injection -- env keys are dynamic by design
347
- pathValue = overrides[overridePathKey];
348
- }
349
- else if (basePathKey) {
350
- // eslint-disable-next-line security/detect-object-injection -- env keys are dynamic by design
351
- pathValue = baseEnv[basePathKey];
352
- }
353
- const merged = { ...baseEnv, ...overrides };
354
- const result = {};
355
- if (pathValue !== undefined) {
356
- // eslint-disable-next-line security/detect-object-injection -- env keys are dynamic by design
357
- result[pathKey] = pathValue;
358
- }
359
- for (const [key, value] of Object.entries(merged)) {
360
- if (value === undefined) {
361
- continue;
362
- }
363
- if (key.toLowerCase() === 'path') {
364
- continue;
365
- }
366
- // eslint-disable-next-line security/detect-object-injection -- env keys are dynamic by design
367
- result[key] = value;
368
- }
369
- return result;
370
- }
371
- function findPathKey(env) {
372
- for (const key of Object.keys(env)) {
373
- if (key.toLowerCase() === 'path') {
374
- return key;
375
- }
376
- }
377
- return null;
378
- }
379
- //# sourceMappingURL=bridge-core.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bridge-core.js","sourceRoot":"","sources":["../../src/runtime/bridge-core.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bridge-protocol.d.ts","sourceRoot":"","sources":["../../src/runtime/bridge-protocol.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bridge-protocol.js","sourceRoot":"","sources":["../../src/runtime/bridge-protocol.ts"],"names":[],"mappings":"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"}