tywrap 0.7.0 → 0.9.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 (165) hide show
  1. package/README.md +36 -11
  2. package/SECURITY.md +39 -0
  3. package/dist/config/index.d.ts.map +1 -1
  4. package/dist/config/index.js +8 -0
  5. package/dist/config/index.js.map +1 -1
  6. package/dist/core/annotation-parser.d.ts +2 -1
  7. package/dist/core/annotation-parser.d.ts.map +1 -1
  8. package/dist/core/annotation-parser.js +6 -3
  9. package/dist/core/annotation-parser.js.map +1 -1
  10. package/dist/core/emit-call.d.ts.map +1 -1
  11. package/dist/core/emit-call.js +1 -1
  12. package/dist/core/emit-call.js.map +1 -1
  13. package/dist/core/generator.d.ts +23 -4
  14. package/dist/core/generator.d.ts.map +1 -1
  15. package/dist/core/generator.js +243 -170
  16. package/dist/core/generator.js.map +1 -1
  17. package/dist/core/mapper.d.ts +3 -2
  18. package/dist/core/mapper.d.ts.map +1 -1
  19. package/dist/core/mapper.js +5 -5
  20. package/dist/core/mapper.js.map +1 -1
  21. package/dist/dev.d.ts.map +1 -1
  22. package/dist/dev.js +1 -3
  23. package/dist/dev.js.map +1 -1
  24. package/dist/index.d.ts +7 -5
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +6 -4
  27. package/dist/index.js.map +1 -1
  28. package/dist/runtime/base-bridge.d.ts +3 -7
  29. package/dist/runtime/base-bridge.d.ts.map +1 -1
  30. package/dist/runtime/base-bridge.js +4 -17
  31. package/dist/runtime/base-bridge.js.map +1 -1
  32. package/dist/runtime/bounded-context.d.ts +3 -22
  33. package/dist/runtime/bounded-context.d.ts.map +1 -1
  34. package/dist/runtime/bounded-context.js +13 -53
  35. package/dist/runtime/bounded-context.js.map +1 -1
  36. package/dist/runtime/bridge-codec.d.ts +1 -1
  37. package/dist/runtime/bridge-codec.d.ts.map +1 -1
  38. package/dist/runtime/bridge-codec.js +78 -55
  39. package/dist/runtime/bridge-codec.js.map +1 -1
  40. package/dist/runtime/errors.d.ts +16 -0
  41. package/dist/runtime/errors.d.ts.map +1 -1
  42. package/dist/runtime/errors.js +17 -0
  43. package/dist/runtime/errors.js.map +1 -1
  44. package/dist/runtime/frame-codec.d.ts +111 -0
  45. package/dist/runtime/frame-codec.d.ts.map +1 -0
  46. package/dist/runtime/frame-codec.js +352 -0
  47. package/dist/runtime/frame-codec.js.map +1 -0
  48. package/dist/runtime/http-transport.d.ts +1 -1
  49. package/dist/runtime/http-transport.d.ts.map +1 -1
  50. package/dist/runtime/http-transport.js +1 -1
  51. package/dist/runtime/http-transport.js.map +1 -1
  52. package/dist/runtime/index.d.ts +2 -1
  53. package/dist/runtime/index.d.ts.map +1 -1
  54. package/dist/runtime/index.js +2 -1
  55. package/dist/runtime/index.js.map +1 -1
  56. package/dist/runtime/node.d.ts +7 -23
  57. package/dist/runtime/node.d.ts.map +1 -1
  58. package/dist/runtime/node.js +5 -78
  59. package/dist/runtime/node.js.map +1 -1
  60. package/dist/runtime/pooled-transport.d.ts +120 -59
  61. package/dist/runtime/pooled-transport.d.ts.map +1 -1
  62. package/dist/runtime/pooled-transport.js +345 -78
  63. package/dist/runtime/pooled-transport.js.map +1 -1
  64. package/dist/runtime/pyodide-bootstrap-core.generated.d.ts.map +1 -1
  65. package/dist/runtime/pyodide-bootstrap-core.generated.js +1 -1
  66. package/dist/runtime/pyodide-bootstrap-core.generated.js.map +1 -1
  67. package/dist/runtime/pyodide-transport.d.ts +1 -1
  68. package/dist/runtime/pyodide-transport.d.ts.map +1 -1
  69. package/dist/runtime/pyodide-transport.js +2 -3
  70. package/dist/runtime/pyodide-transport.js.map +1 -1
  71. package/dist/runtime/rpc-client.d.ts +7 -36
  72. package/dist/runtime/rpc-client.d.ts.map +1 -1
  73. package/dist/runtime/rpc-client.js +37 -72
  74. package/dist/runtime/rpc-client.js.map +1 -1
  75. package/dist/runtime/subprocess-transport.d.ts +134 -8
  76. package/dist/runtime/subprocess-transport.d.ts.map +1 -1
  77. package/dist/runtime/subprocess-transport.js +490 -65
  78. package/dist/runtime/subprocess-transport.js.map +1 -1
  79. package/dist/runtime/timed-out-request-tracker.d.ts +2 -1
  80. package/dist/runtime/timed-out-request-tracker.d.ts.map +1 -1
  81. package/dist/runtime/transport.d.ts +90 -18
  82. package/dist/runtime/transport.d.ts.map +1 -1
  83. package/dist/runtime/transport.js +21 -1
  84. package/dist/runtime/transport.js.map +1 -1
  85. package/dist/runtime/validators.d.ts +49 -0
  86. package/dist/runtime/validators.d.ts.map +1 -1
  87. package/dist/runtime/validators.js +152 -0
  88. package/dist/runtime/validators.js.map +1 -1
  89. package/dist/types/index.d.ts +14 -15
  90. package/dist/types/index.d.ts.map +1 -1
  91. package/dist/tywrap.d.ts +3 -2
  92. package/dist/tywrap.d.ts.map +1 -1
  93. package/dist/tywrap.js +140 -21
  94. package/dist/tywrap.js.map +1 -1
  95. package/dist/utils/cache.d.ts +3 -16
  96. package/dist/utils/cache.d.ts.map +1 -1
  97. package/dist/utils/codec.d.ts +1 -0
  98. package/dist/utils/codec.d.ts.map +1 -1
  99. package/dist/utils/codec.js +165 -17
  100. package/dist/utils/codec.js.map +1 -1
  101. package/dist/utils/ir-cache.d.ts +2 -1
  102. package/dist/utils/ir-cache.d.ts.map +1 -1
  103. package/dist/utils/runtime.d.ts +0 -29
  104. package/dist/utils/runtime.d.ts.map +1 -1
  105. package/dist/utils/runtime.js +16 -107
  106. package/dist/utils/runtime.js.map +1 -1
  107. package/dist/version.js +1 -1
  108. package/package.json +7 -6
  109. package/runtime/frame_codec.py +430 -0
  110. package/runtime/python_bridge.py +213 -54
  111. package/runtime/tywrap_bridge_core.py +217 -147
  112. package/src/config/index.ts +11 -0
  113. package/src/core/annotation-parser.ts +9 -5
  114. package/src/core/emit-call.ts +1 -7
  115. package/src/core/generator.ts +315 -205
  116. package/src/core/mapper.ts +8 -8
  117. package/src/dev.ts +1 -3
  118. package/src/index.ts +7 -3
  119. package/src/runtime/base-bridge.ts +5 -30
  120. package/src/runtime/bounded-context.ts +12 -67
  121. package/src/runtime/bridge-codec.ts +94 -65
  122. package/src/runtime/errors.ts +21 -0
  123. package/src/runtime/frame-codec.ts +469 -0
  124. package/src/runtime/http-transport.ts +6 -1
  125. package/src/runtime/index.ts +7 -6
  126. package/src/runtime/node.ts +17 -104
  127. package/src/runtime/pooled-transport.ts +424 -90
  128. package/src/runtime/pyodide-bootstrap-core.generated.ts +1 -1
  129. package/src/runtime/pyodide-transport.ts +7 -3
  130. package/src/runtime/rpc-client.ts +58 -93
  131. package/src/runtime/subprocess-transport.ts +585 -80
  132. package/src/runtime/timed-out-request-tracker.ts +1 -1
  133. package/src/runtime/transport.ts +112 -22
  134. package/src/runtime/validators.ts +204 -0
  135. package/src/types/index.ts +21 -35
  136. package/src/tywrap.ts +157 -30
  137. package/src/utils/cache.ts +3 -3
  138. package/src/utils/codec.ts +205 -16
  139. package/src/utils/ir-cache.ts +1 -1
  140. package/src/utils/runtime.ts +17 -128
  141. package/src/version.ts +1 -1
  142. package/dist/core/discovery.d.ts +0 -103
  143. package/dist/core/discovery.d.ts.map +0 -1
  144. package/dist/core/discovery.js +0 -380
  145. package/dist/core/discovery.js.map +0 -1
  146. package/dist/core/validation.d.ts +0 -102
  147. package/dist/core/validation.d.ts.map +0 -1
  148. package/dist/core/validation.js +0 -490
  149. package/dist/core/validation.js.map +0 -1
  150. package/dist/runtime/base.d.ts +0 -22
  151. package/dist/runtime/base.d.ts.map +0 -1
  152. package/dist/runtime/base.js +0 -23
  153. package/dist/runtime/base.js.map +0 -1
  154. package/dist/runtime/transport-pool.d.ts +0 -196
  155. package/dist/runtime/transport-pool.d.ts.map +0 -1
  156. package/dist/runtime/transport-pool.js +0 -418
  157. package/dist/runtime/transport-pool.js.map +0 -1
  158. package/runtime/__pycache__/_tywrap_member_fixtures.cpython-311.pyc +0 -0
  159. package/runtime/__pycache__/safe_codec.cpython-311.pyc +0 -0
  160. package/runtime/__pycache__/tywrap_bridge_core.cpython-311.pyc +0 -0
  161. package/runtime/safe_codec.py +0 -352
  162. package/src/core/discovery.ts +0 -477
  163. package/src/core/validation.ts +0 -729
  164. package/src/runtime/base.ts +0 -24
  165. package/src/runtime/transport-pool.ts +0 -538
@@ -8,6 +8,7 @@
8
8
  * Torch tensors: { "__tywrap__": "torch.tensor", "encoding": "ndarray", "value": { ... } }
9
9
  * Sklearn estimators: { "__tywrap__": "sklearn.estimator", "encoding": "json", ... }
10
10
  */
11
+ import { tagDecodedShape } from '../runtime/validators.js';
11
12
  let arrowTableFrom;
12
13
  // Why: lazy auto-registration (on first Arrow decode) imports apache-arrow at most
13
14
  // once per process. We cache the in-flight/settled attempt so concurrent decodes
@@ -284,13 +285,16 @@ function decodeArrowOrJsonEnvelope(value, decodeArrow, typeTag) {
284
285
  throw new Error(`Invalid ${typeTag} envelope: missing b64`);
285
286
  }
286
287
  const bytes = fromBase64(b64);
287
- return decodeArrow(bytes);
288
+ const decoded = decodeArrow(bytes);
289
+ return isPromiseLike(decoded)
290
+ ? decoded.then(item => tagDecodedShape(item, { marker: typeTag }))
291
+ : tagDecodedShape(decoded, { marker: typeTag });
288
292
  }
289
293
  if (encoding === 'json') {
290
294
  if (!('data' in value)) {
291
295
  throw new Error(`Invalid ${typeTag} envelope: missing data`);
292
296
  }
293
- return value.data;
297
+ return tagDecodedShape(value.data, { marker: typeTag });
294
298
  }
295
299
  throw new Error(`Invalid ${typeTag} envelope: unsupported encoding ${String(encoding)}`);
296
300
  }
@@ -300,6 +304,8 @@ const decodeNdarrayEnvelope = (value, decodeArrow) => {
300
304
  const encoding = value.encoding;
301
305
  const shapeValue = value.shape;
302
306
  const shape = isNumberArray(shapeValue) ? shapeValue : undefined;
307
+ const dtype = typeof value.dtype === 'string' ? value.dtype : undefined;
308
+ const metadata = { marker: 'ndarray', dims: shape?.length, dtype };
303
309
  if (encoding === 'arrow') {
304
310
  const b64 = value.b64;
305
311
  if (typeof b64 !== 'string') {
@@ -315,33 +321,47 @@ const decodeNdarrayEnvelope = (value, decodeArrow) => {
315
321
  return decoded.then(data => {
316
322
  const values = extractArrowValues(data);
317
323
  if (!values) {
318
- return data; // Fallback: return raw data if extraction fails
324
+ return tagDecodedShape(data, metadata); // Fallback: keep provenance on raw data.
319
325
  }
320
326
  // Reshape scalars and multi-dimensional arrays, but not 1D
321
- if (shape && shape.length !== 1) {
322
- return reshapeArray(values, shape);
323
- }
324
- return values;
327
+ return tagDecodedShape(shape && shape.length !== 1 ? reshapeArray(values, shape) : values, metadata);
325
328
  });
326
329
  }
327
330
  const values = extractArrowValues(decoded);
328
331
  if (!values) {
329
- return decoded; // Fallback: return raw data if extraction fails
332
+ return tagDecodedShape(decoded, metadata); // Fallback: keep provenance on raw data.
330
333
  }
331
334
  // Reshape scalars and multi-dimensional arrays, but not 1D
332
- if (shape && shape.length !== 1) {
333
- return reshapeArray(values, shape);
334
- }
335
- return values;
335
+ return tagDecodedShape(shape && shape.length !== 1 ? reshapeArray(values, shape) : values, metadata);
336
336
  }
337
337
  if (encoding === 'json') {
338
338
  if (!('data' in value)) {
339
339
  throw new Error('Invalid ndarray envelope: missing data');
340
340
  }
341
- return value.data;
341
+ return tagDecodedShape(value.data, metadata);
342
342
  }
343
343
  throw new Error(`Invalid ndarray envelope: unsupported encoding ${String(encoding)}`);
344
344
  };
345
+ /**
346
+ * Assert an array holds only integer indices within [0, bound). Used to re-validate
347
+ * scipy.sparse index arrays on the JS side so a corrupt/oversized index can never
348
+ * silently address out of the declared shape.
349
+ *
350
+ * Why: the JS decoder never reconstructs a Python object, but it IS the boundary a
351
+ * downstream consumer trusts — validating index ranges here turns a corrupt payload
352
+ * into a clear, early failure instead of a confusing downstream error.
353
+ */
354
+ function assertIndexArrayInRange(arr, bound, label) {
355
+ for (let i = 0; i < arr.length; i += 1) {
356
+ const idx = arr[i];
357
+ if (typeof idx !== 'number' || !Number.isInteger(idx)) {
358
+ throw new Error(`Invalid scipy.sparse envelope: ${label}[${i}] must be an integer, got ${String(idx)}`);
359
+ }
360
+ if (idx < 0 || idx >= bound) {
361
+ throw new Error(`Invalid scipy.sparse envelope: ${label}[${i}]=${idx} is out of range [0, ${bound})`);
362
+ }
363
+ }
364
+ }
345
365
  const decodeScipySparseEnvelope = value => {
346
366
  const encoding = value.encoding;
347
367
  if (encoding !== 'json') {
@@ -355,9 +375,15 @@ const decodeScipySparseEnvelope = value => {
355
375
  if (!Array.isArray(shape) ||
356
376
  shape.length !== 2 ||
357
377
  typeof shape[0] !== 'number' ||
358
- typeof shape[1] !== 'number') {
359
- throw new Error('Invalid scipy.sparse envelope: shape must be a 2-item number[]');
360
- }
378
+ !Number.isInteger(shape[0]) ||
379
+ shape[0] < 0 ||
380
+ typeof shape[1] !== 'number' ||
381
+ !Number.isInteger(shape[1]) ||
382
+ shape[1] < 0) {
383
+ throw new Error('Invalid scipy.sparse envelope: shape must be a 2-item non-negative integer[]');
384
+ }
385
+ const rows = shape[0];
386
+ const cols = shape[1];
361
387
  const data = value.data;
362
388
  if (!Array.isArray(data)) {
363
389
  throw new Error('Invalid scipy.sparse envelope: data must be an array');
@@ -370,6 +396,14 @@ const decodeScipySparseEnvelope = value => {
370
396
  if (!Array.isArray(row) || !Array.isArray(col)) {
371
397
  throw new Error('Invalid scipy.sparse envelope: coo requires row and col arrays');
372
398
  }
399
+ // COO: one (row, col, value) triple per stored entry, so all three arrays
400
+ // share a length; row/col index into [0, rows)/[0, cols) respectively.
401
+ if (row.length !== data.length || col.length !== data.length) {
402
+ throw new Error(`Invalid scipy.sparse envelope: coo row/col/data lengths must match ` +
403
+ `(data=${data.length}, row=${row.length}, col=${col.length})`);
404
+ }
405
+ assertIndexArrayInRange(row, rows, 'row');
406
+ assertIndexArrayInRange(col, cols, 'col');
373
407
  return {
374
408
  format,
375
409
  shape,
@@ -384,6 +418,42 @@ const decodeScipySparseEnvelope = value => {
384
418
  if (!Array.isArray(indices) || !Array.isArray(indptr)) {
385
419
  throw new Error('Invalid scipy.sparse envelope: csr/csc requires indices and indptr arrays');
386
420
  }
421
+ // CSR/CSC: one column-index (CSR) or row-index (CSC) per stored value, so
422
+ // indices and data share a length. indptr partitions indices into one segment
423
+ // per major axis (rows for CSR, cols for CSC), so indptr has majorAxis + 1
424
+ // entries; the inner indices address the minor axis.
425
+ if (indices.length !== data.length) {
426
+ throw new Error(`Invalid scipy.sparse envelope: ${format} indices/data lengths must match ` +
427
+ `(data=${data.length}, indices=${indices.length})`);
428
+ }
429
+ const majorAxis = format === 'csr' ? rows : cols;
430
+ const minorAxis = format === 'csr' ? cols : rows;
431
+ if (indptr.length !== majorAxis + 1) {
432
+ throw new Error(`Invalid scipy.sparse envelope: ${format} indptr length must be ${majorAxis + 1} ` +
433
+ `(${format === 'csr' ? 'rows' : 'cols'}+1), got ${indptr.length}`);
434
+ }
435
+ // indptr must be a valid CSR/CSC pointer array: integers that start at 0, end
436
+ // at data.length, and never decrease — otherwise a structurally impossible
437
+ // matrix (e.g. [0, 99, 1]) would slip through the length check above.
438
+ for (let i = 0; i < indptr.length; i += 1) {
439
+ const ptr = indptr[i];
440
+ if (typeof ptr !== 'number' || !Number.isInteger(ptr)) {
441
+ throw new Error(`Invalid scipy.sparse envelope: indptr[${i}] must be an integer, got ${String(ptr)}`);
442
+ }
443
+ if (ptr < 0 || ptr > data.length) {
444
+ throw new Error(`Invalid scipy.sparse envelope: indptr[${i}]=${ptr} is out of range [0, ${data.length}]`);
445
+ }
446
+ if (i > 0 && ptr < indptr[i - 1]) {
447
+ throw new Error('Invalid scipy.sparse envelope: indptr must be non-decreasing');
448
+ }
449
+ }
450
+ if (indptr[0] !== 0) {
451
+ throw new Error('Invalid scipy.sparse envelope: indptr must start at 0');
452
+ }
453
+ if (indptr[indptr.length - 1] !== data.length) {
454
+ throw new Error(`Invalid scipy.sparse envelope: indptr must end at data.length (${data.length})`);
455
+ }
456
+ assertIndexArrayInRange(indices, minorAxis, 'indices');
387
457
  return {
388
458
  format,
389
459
  shape,
@@ -393,6 +463,10 @@ const decodeScipySparseEnvelope = value => {
393
463
  dtype,
394
464
  };
395
465
  };
466
+ /** Product of a shape's dimensions (the element count). [] (scalar) -> 1. */
467
+ function shapeProduct(shape) {
468
+ return shape.reduce((acc, dim) => acc * dim, 1);
469
+ }
396
470
  const decodeTorchTensorEnvelope = (value, _decodeArrow, recurse) => {
397
471
  const encoding = value.encoding;
398
472
  if (encoding !== 'ndarray') {
@@ -405,18 +479,81 @@ const decodeTorchTensorEnvelope = (value, _decodeArrow, recurse) => {
405
479
  if (!isObject(nested) || nested.__tywrap__ !== 'ndarray') {
406
480
  throw new Error('Invalid torch.tensor envelope: value must be an ndarray envelope');
407
481
  }
408
- const decoded = recurse(nested);
409
482
  const shapeValue = value.shape;
410
483
  const shape = isNumberArray(shapeValue) ? shapeValue : undefined;
484
+ // The tensor shape must be a non-negative-integer dimension list. A negative or
485
+ // non-integer dim is a corrupt envelope, not a valid tensor.
486
+ if (shape) {
487
+ for (let i = 0; i < shape.length; i += 1) {
488
+ const dim = shape[i];
489
+ if (!Number.isInteger(dim) || dim < 0) {
490
+ throw new Error(`Invalid torch.tensor envelope: shape[${i}]=${dim} must be a non-negative integer`);
491
+ }
492
+ }
493
+ }
494
+ // Cross-check the tensor shape's element count against the nested ndarray's
495
+ // declared shape (metadata only — no decode needed). A mismatch means the two
496
+ // shapes disagree about how many elements the payload holds.
497
+ const nestedShapeValue = nested.shape;
498
+ const nestedShape = isNumberArray(nestedShapeValue) ? nestedShapeValue : undefined;
499
+ if (shape && nestedShape && shapeProduct(shape) !== shapeProduct(nestedShape)) {
500
+ throw new Error(`Invalid torch.tensor envelope: shape ${JSON.stringify(shape)} ` +
501
+ `(product ${shapeProduct(shape)}) disagrees with nested ndarray shape ` +
502
+ `${JSON.stringify(nestedShape)} (product ${shapeProduct(nestedShape)})`);
503
+ }
411
504
  const dtypeValue = value.dtype;
412
505
  const dtype = typeof dtypeValue === 'string' ? dtypeValue : undefined;
413
506
  const deviceValue = value.device;
507
+ if (deviceValue !== undefined && (typeof deviceValue !== 'string' || deviceValue.length === 0)) {
508
+ throw new Error('Invalid torch.tensor envelope: device must be a non-empty string when provided');
509
+ }
414
510
  const device = typeof deviceValue === 'string' ? deviceValue : undefined;
511
+ const decoded = recurse(nested);
415
512
  if (isPromiseLike(decoded)) {
416
513
  return decoded.then(data => ({ data, shape, dtype, device }));
417
514
  }
418
515
  return { data: decoded, shape, dtype, device };
419
516
  };
517
+ /**
518
+ * Recursively assert a value is plain JSON (null | boolean | number | string |
519
+ * JSON array | plain object of JSON). Rejects functions, symbols, bigints, class
520
+ * instances, and any non-finite number — the things a metadata-only sklearn
521
+ * envelope must never carry. This validates; it never reconstructs.
522
+ */
523
+ function assertPlainJson(value, path) {
524
+ if (value === null) {
525
+ return;
526
+ }
527
+ const t = typeof value;
528
+ if (t === 'string' || t === 'boolean') {
529
+ return;
530
+ }
531
+ if (t === 'number') {
532
+ if (!Number.isFinite(value)) {
533
+ throw new Error(`Invalid sklearn.estimator envelope: ${path} must be a finite JSON number, got ${String(value)}`);
534
+ }
535
+ return;
536
+ }
537
+ if (Array.isArray(value)) {
538
+ value.forEach((item, i) => assertPlainJson(item, `${path}[${i}]`));
539
+ return;
540
+ }
541
+ if (t === 'object') {
542
+ // Reject exotic objects (class instances, Map/Set, etc.): a JSON object is a
543
+ // plain object whose prototype is Object.prototype or null.
544
+ const proto = Object.getPrototypeOf(value);
545
+ if (proto !== Object.prototype && proto !== null) {
546
+ throw new Error(`Invalid sklearn.estimator envelope: ${path} must be a plain JSON object, ` +
547
+ `got ${value.constructor?.name ?? 'object'}`);
548
+ }
549
+ for (const [k, v] of Object.entries(value)) {
550
+ assertPlainJson(v, `${path}.${k}`);
551
+ }
552
+ return;
553
+ }
554
+ // function | symbol | bigint | undefined
555
+ throw new Error(`Invalid sklearn.estimator envelope: ${path} is not JSON-serializable (type ${t})`);
556
+ }
420
557
  const decodeSklearnEstimatorEnvelope = value => {
421
558
  const encoding = value.encoding;
422
559
  if (encoding !== 'json') {
@@ -428,6 +565,17 @@ const decodeSklearnEstimatorEnvelope = value => {
428
565
  if (typeof className !== 'string' || typeof module !== 'string' || !isObject(params)) {
429
566
  throw new Error('Invalid sklearn.estimator envelope: expected className/module strings + params object');
430
567
  }
568
+ // params must be a PLAIN JSON object end to end — metadata-only estimators never
569
+ // carry callables, class instances, or nested non-JSON values. Validate (do not
570
+ // reconstruct) so a corrupt envelope fails clearly instead of leaking a function
571
+ // or exotic object to a downstream consumer.
572
+ if (Object.getPrototypeOf(params) !== Object.prototype &&
573
+ Object.getPrototypeOf(params) !== null) {
574
+ throw new Error('Invalid sklearn.estimator envelope: params must be a plain JSON object');
575
+ }
576
+ for (const [k, v] of Object.entries(params)) {
577
+ assertPlainJson(v, `params.${k}`);
578
+ }
431
579
  const versionValue = value.version;
432
580
  if (versionValue !== undefined && typeof versionValue !== 'string') {
433
581
  throw new Error('Invalid sklearn.estimator envelope: version must be a string when provided');
@@ -1 +1 @@
1
- {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/utils/codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/utils/codec.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export interface IrCacheKeyObject {
1
+ interface IrCacheKeyObject {
2
2
  module: string;
3
3
  moduleVersion: string | null;
4
4
  irVersion: string;
@@ -25,4 +25,5 @@ export interface IrCacheKeyObject {
25
25
  * path traversal or invalid filename characters (especially on Windows).
26
26
  */
27
27
  export declare function computeIrCacheFilename(keyObject: IrCacheKeyObject): Promise<string>;
28
+ export {};
28
29
  //# sourceMappingURL=ir-cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ir-cache.d.ts","sourceRoot":"","sources":["../../src/utils/ir-cache.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAC;IACF,MAAM,EAAE;QACN,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;QAC/B,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;KAClD,CAAC;IACF,SAAS,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;CAC1C;AAiBD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAMzF"}
1
+ {"version":3,"file":"ir-cache.d.ts","sourceRoot":"","sources":["../../src/utils/ir-cache.ts"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAC;IACF,MAAM,EAAE;QACN,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;QAC/B,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;KAClD,CAAC;IACF,SAAS,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;CAC1C;AAiBD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAMzF"}
@@ -15,11 +15,6 @@ interface RuntimeCapabilities {
15
15
  sharedArrayBuffer: boolean;
16
16
  fetch: boolean;
17
17
  }
18
- /**
19
- * Clear runtime cache (for testing purposes only)
20
- * @internal
21
- */
22
- export declare function clearRuntimeCache(): void;
23
18
  /**
24
19
  * Detect the current JavaScript runtime environment
25
20
  * Results are cached and frozen to prevent external mutation
@@ -49,10 +44,6 @@ export declare function getRuntimeCapabilities(): RuntimeCapabilities;
49
44
  * Check if a specific capability is supported
50
45
  */
51
46
  export declare function hasCapability(capability: keyof RuntimeCapabilities): boolean;
52
- /**
53
- * Get the best runtime strategy for Python execution
54
- */
55
- export declare function getBestPythonRuntime(): 'node' | 'pyodide' | 'http';
56
47
  /**
57
48
  * Runtime-specific path utilities
58
49
  */
@@ -61,18 +52,10 @@ export declare const pathUtils: {
61
52
  * Join paths in a cross-runtime way
62
53
  */
63
54
  join(...segments: string[]): string;
64
- /**
65
- * Join paths asynchronously with enhanced Node.js support
66
- */
67
- joinAsync(...segments: string[]): Promise<string>;
68
55
  /**
69
56
  * Resolve absolute path in a cross-runtime way (synchronous)
70
57
  */
71
58
  resolve(path: string): string;
72
- /**
73
- * Resolve absolute path in a cross-runtime way (asynchronous)
74
- */
75
- resolveAsync(path: string): Promise<string>;
76
59
  };
77
60
  /**
78
61
  * Cross-runtime file system operations
@@ -119,22 +102,10 @@ export declare const processUtils: {
119
102
  * Check if running on Windows
120
103
  */
121
104
  export declare function isWindows(): boolean;
122
- /**
123
- * Check if running on macOS
124
- */
125
- export declare function isMacOS(): boolean;
126
- /**
127
- * Check if running on Linux
128
- */
129
- export declare function isLinux(): boolean;
130
105
  /**
131
106
  * Check if a path is absolute
132
107
  */
133
108
  export declare function isAbsolutePath(path: string): boolean;
134
- /**
135
- * Get the path separator for the current platform
136
- */
137
- export declare function getPathSeparator(): string;
138
109
  /**
139
110
  * Get the default Python executable name for the current platform
140
111
  */
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/utils/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/utils/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtE,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED,UAAU,mBAAmB;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;CAChB;AAgBD;;;GAGG;AACH,wBAAgB,aAAa,IAAI,WAAW,CA4G3C;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,OAAO,CAEhC;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,mBAAmB,CAE5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,mBAAmB,GAAG,OAAO,CAG5E;AAuCD;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB;;OAEG;sBACe,MAAM,EAAE,GAAG,MAAM;IAUnC;;OAEG;kBACW,MAAM,GAAG,MAAM;CAmB9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;OAEG;mBACY,OAAO;IAItB;;OAEG;mBACkB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyB7C;;OAEG;oBACmB,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA+B9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB;;OAEG;mBACY,OAAO;IAItB;;OAEG;kBAEQ,MAAM,SACT,MAAM,EAAE,YACL;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GACtF,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAoL7D,CAAC;AAEF;;GAEG;AAEH;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAMnC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOpD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,eAAO,MAAM,SAAS;oBACE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA2B/C,CAAC"}
@@ -4,19 +4,23 @@
4
4
  /// <reference path="../types/global.d.ts" />
5
5
  // Cache for runtime detection to avoid repeated environment checks
6
6
  let runtimeCache = null;
7
- /**
8
- * Clear runtime cache (for testing purposes only)
9
- * @internal
10
- */
11
- export function clearRuntimeCache() {
12
- runtimeCache = null;
7
+ let runtimeCacheSignature;
8
+ function currentRuntimeSignature() {
9
+ return [
10
+ typeof Deno !== 'undefined' && Deno !== null,
11
+ typeof Bun !== 'undefined' && Bun !== null,
12
+ typeof process !== 'undefined' && process.versions?.node,
13
+ typeof window !== 'undefined' ? window.isSecureContext : undefined,
14
+ typeof self !== 'undefined' ? self.isSecureContext : undefined,
15
+ ].join('|');
13
16
  }
14
17
  /**
15
18
  * Detect the current JavaScript runtime environment
16
19
  * Results are cached and frozen to prevent external mutation
17
20
  */
18
21
  export function detectRuntime() {
19
- if (runtimeCache) {
22
+ const signature = currentRuntimeSignature();
23
+ if (runtimeCache && runtimeCacheSignature === signature) {
20
24
  return runtimeCache;
21
25
  }
22
26
  // Deno detection (must come before Node.js check)
@@ -35,6 +39,7 @@ export function detectRuntime() {
35
39
  capabilities: Object.freeze(capabilities),
36
40
  };
37
41
  runtimeCache = Object.freeze(result);
42
+ runtimeCacheSignature = signature;
38
43
  return runtimeCache;
39
44
  }
40
45
  // Bun detection
@@ -53,6 +58,7 @@ export function detectRuntime() {
53
58
  capabilities: Object.freeze(capabilities),
54
59
  };
55
60
  runtimeCache = Object.freeze(result);
61
+ runtimeCacheSignature = signature;
56
62
  return runtimeCache;
57
63
  }
58
64
  // Node.js detection
@@ -71,6 +77,7 @@ export function detectRuntime() {
71
77
  capabilities: Object.freeze(capabilities),
72
78
  };
73
79
  runtimeCache = Object.freeze(result);
80
+ runtimeCacheSignature = signature;
74
81
  return runtimeCache;
75
82
  }
76
83
  // Browser detection
@@ -93,6 +100,7 @@ export function detectRuntime() {
93
100
  capabilities: Object.freeze(capabilities),
94
101
  };
95
102
  runtimeCache = Object.freeze(result);
103
+ runtimeCacheSignature = signature;
96
104
  return runtimeCache;
97
105
  }
98
106
  const capabilities = {
@@ -109,6 +117,7 @@ export function detectRuntime() {
109
117
  };
110
118
  // Cache and freeze the result to prevent external mutation
111
119
  runtimeCache = Object.freeze(result);
120
+ runtimeCacheSignature = signature;
112
121
  return runtimeCache;
113
122
  }
114
123
  /**
@@ -148,43 +157,6 @@ export function hasCapability(capability) {
148
157
  // eslint-disable-next-line security/detect-object-injection
149
158
  return getRuntimeCapabilities()[capability];
150
159
  }
151
- /**
152
- * Get the best runtime strategy for Python execution
153
- */
154
- export function getBestPythonRuntime() {
155
- const runtime = detectRuntime();
156
- if (runtime.name === 'browser') {
157
- return 'pyodide';
158
- }
159
- if (runtime.capabilities.subprocess) {
160
- return 'node'; // Works for Node.js, Deno, and Bun
161
- }
162
- // Fallback to HTTP bridge
163
- return 'http';
164
- }
165
- // Cache for lazy-loaded path module
166
- let pathModule = null;
167
- /**
168
- * Lazy load Node.js path module on demand
169
- */
170
- async function loadPathModule() {
171
- if (pathModule) {
172
- return pathModule;
173
- }
174
- const runtime = detectRuntime();
175
- if (runtime.name === 'node') {
176
- try {
177
- pathModule = await import('node:path');
178
- return pathModule;
179
- }
180
- catch {
181
- // Fallback for older Node.js versions
182
- pathModule = await import('path');
183
- return pathModule;
184
- }
185
- }
186
- return null;
187
- }
188
160
  /**
189
161
  * Apply a single path segment to the accumulated normalized segments,
190
162
  * resolving '..' and dropping '.'/empty segments in place.
@@ -232,26 +204,6 @@ export const pathUtils = {
232
204
  .replace(/\\/g, '/'); // Normalize backslashes to forward slashes
233
205
  return normalizePath(joined);
234
206
  },
235
- /**
236
- * Join paths asynchronously with enhanced Node.js support
237
- */
238
- async joinAsync(...segments) {
239
- const runtime = detectRuntime();
240
- // For Node.js, use the real path module when available
241
- if (runtime.name === 'node') {
242
- const pathMod = await loadPathModule();
243
- if (pathMod?.posix) {
244
- return pathMod.posix.join(...segments);
245
- }
246
- }
247
- // Fallback implementation with normalization
248
- const joined = segments
249
- .filter(Boolean)
250
- .join('/')
251
- .replace(/\/+/g, '/') // Replace multiple slashes with single slash
252
- .replace(/\\/g, '/'); // Normalize backslashes to forward slashes
253
- return normalizePath(joined);
254
- },
255
207
  /**
256
208
  * Resolve absolute path in a cross-runtime way (synchronous)
257
209
  */
@@ -270,23 +222,6 @@ export const pathUtils = {
270
222
  // Fallback: normalize and return as-is for relative paths
271
223
  return normalizePath(path);
272
224
  },
273
- /**
274
- * Resolve absolute path in a cross-runtime way (asynchronous)
275
- */
276
- async resolveAsync(path) {
277
- const runtime = detectRuntime();
278
- if (runtime.name === 'node') {
279
- const pathMod = await loadPathModule();
280
- if (pathMod) {
281
- return pathMod.resolve(path);
282
- }
283
- }
284
- if (runtime.name === 'browser') {
285
- return new URL(path, location.href).href;
286
- }
287
- // Fallback: normalize and return as-is
288
- return normalizePath(path);
289
- },
290
225
  };
291
226
  /**
292
227
  * Cross-runtime file system operations
@@ -528,26 +463,6 @@ export function isWindows() {
528
463
  const deno = globalThis.Deno;
529
464
  return deno?.build?.os === 'windows';
530
465
  }
531
- /**
532
- * Check if running on macOS
533
- */
534
- export function isMacOS() {
535
- if (typeof process !== 'undefined' && process.platform) {
536
- return process.platform === 'darwin';
537
- }
538
- const deno = globalThis.Deno;
539
- return deno?.build?.os === 'darwin';
540
- }
541
- /**
542
- * Check if running on Linux
543
- */
544
- export function isLinux() {
545
- if (typeof process !== 'undefined' && process.platform) {
546
- return process.platform === 'linux';
547
- }
548
- const deno = globalThis.Deno;
549
- return deno?.build?.os === 'linux';
550
- }
551
466
  /**
552
467
  * Check if a path is absolute
553
468
  */
@@ -559,12 +474,6 @@ export function isAbsolutePath(path) {
559
474
  // Windows absolute paths (e.g., C:\, D:/)
560
475
  return /^[A-Za-z]:[\\/]/.test(path);
561
476
  }
562
- /**
563
- * Get the path separator for the current platform
564
- */
565
- export function getPathSeparator() {
566
- return isWindows() ? '\\' : '/';
567
- }
568
477
  /**
569
478
  * Get the default Python executable name for the current platform
570
479
  */