tywrap 0.6.0 → 0.7.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 (118) hide show
  1. package/dist/core/annotation-parser.d.ts.map +1 -1
  2. package/dist/core/annotation-parser.js +19 -14
  3. package/dist/core/annotation-parser.js.map +1 -1
  4. package/dist/core/discovery.d.ts +17 -0
  5. package/dist/core/discovery.d.ts.map +1 -1
  6. package/dist/core/discovery.js +59 -49
  7. package/dist/core/discovery.js.map +1 -1
  8. package/dist/core/generator.d.ts.map +1 -1
  9. package/dist/core/generator.js +40 -9
  10. package/dist/core/generator.js.map +1 -1
  11. package/dist/core/validation.d.ts +23 -0
  12. package/dist/core/validation.d.ts.map +1 -1
  13. package/dist/core/validation.js +52 -48
  14. package/dist/core/validation.js.map +1 -1
  15. package/dist/dev.d.ts.map +1 -1
  16. package/dist/dev.js +175 -133
  17. package/dist/dev.js.map +1 -1
  18. package/dist/runtime/base-bridge.d.ts +57 -0
  19. package/dist/runtime/base-bridge.d.ts.map +1 -0
  20. package/dist/runtime/base-bridge.js +72 -0
  21. package/dist/runtime/base-bridge.js.map +1 -0
  22. package/dist/runtime/bridge-codec.d.ts +15 -0
  23. package/dist/runtime/bridge-codec.d.ts.map +1 -1
  24. package/dist/runtime/bridge-codec.js +45 -48
  25. package/dist/runtime/bridge-codec.js.map +1 -1
  26. package/dist/runtime/http-transport.d.ts +11 -1
  27. package/dist/runtime/http-transport.d.ts.map +1 -1
  28. package/dist/runtime/http-transport.js +19 -0
  29. package/dist/runtime/http-transport.js.map +1 -1
  30. package/dist/runtime/http.d.ts +5 -12
  31. package/dist/runtime/http.d.ts.map +1 -1
  32. package/dist/runtime/http.js +6 -29
  33. package/dist/runtime/http.js.map +1 -1
  34. package/dist/runtime/index.d.ts +1 -1
  35. package/dist/runtime/index.d.ts.map +1 -1
  36. package/dist/runtime/index.js.map +1 -1
  37. package/dist/runtime/node.d.ts +12 -19
  38. package/dist/runtime/node.d.ts.map +1 -1
  39. package/dist/runtime/node.js +14 -34
  40. package/dist/runtime/node.js.map +1 -1
  41. package/dist/runtime/pooled-transport.d.ts +21 -2
  42. package/dist/runtime/pooled-transport.d.ts.map +1 -1
  43. package/dist/runtime/pooled-transport.js +16 -0
  44. package/dist/runtime/pooled-transport.js.map +1 -1
  45. package/dist/runtime/pyodide-bootstrap-core.generated.d.ts.map +1 -1
  46. package/dist/runtime/pyodide-bootstrap-core.generated.js +1 -1
  47. package/dist/runtime/pyodide-bootstrap-core.generated.js.map +1 -1
  48. package/dist/runtime/pyodide-transport.d.ts +12 -1
  49. package/dist/runtime/pyodide-transport.d.ts.map +1 -1
  50. package/dist/runtime/pyodide-transport.js +20 -0
  51. package/dist/runtime/pyodide-transport.js.map +1 -1
  52. package/dist/runtime/pyodide.d.ts +5 -12
  53. package/dist/runtime/pyodide.d.ts.map +1 -1
  54. package/dist/runtime/pyodide.js +6 -29
  55. package/dist/runtime/pyodide.js.map +1 -1
  56. package/dist/runtime/rpc-client.d.ts +32 -1
  57. package/dist/runtime/rpc-client.d.ts.map +1 -1
  58. package/dist/runtime/rpc-client.js +45 -24
  59. package/dist/runtime/rpc-client.js.map +1 -1
  60. package/dist/runtime/subprocess-transport.d.ts +26 -1
  61. package/dist/runtime/subprocess-transport.d.ts.map +1 -1
  62. package/dist/runtime/subprocess-transport.js +72 -35
  63. package/dist/runtime/subprocess-transport.js.map +1 -1
  64. package/dist/runtime/transport.d.ts +59 -0
  65. package/dist/runtime/transport.d.ts.map +1 -1
  66. package/dist/runtime/transport.js +1 -0
  67. package/dist/runtime/transport.js.map +1 -1
  68. package/dist/types/index.d.ts +35 -0
  69. package/dist/types/index.d.ts.map +1 -1
  70. package/dist/tywrap.d.ts +0 -5
  71. package/dist/tywrap.d.ts.map +1 -1
  72. package/dist/tywrap.js +212 -169
  73. package/dist/tywrap.js.map +1 -1
  74. package/dist/utils/cache.d.ts +11 -0
  75. package/dist/utils/cache.d.ts.map +1 -1
  76. package/dist/utils/cache.js +50 -58
  77. package/dist/utils/cache.js.map +1 -1
  78. package/dist/utils/codec.d.ts +2 -0
  79. package/dist/utils/codec.d.ts.map +1 -1
  80. package/dist/utils/codec.js +53 -2
  81. package/dist/utils/codec.js.map +1 -1
  82. package/dist/utils/python.d.ts.map +1 -1
  83. package/dist/utils/python.js +28 -17
  84. package/dist/utils/python.js.map +1 -1
  85. package/dist/utils/runtime.d.ts.map +1 -1
  86. package/dist/utils/runtime.js +22 -16
  87. package/dist/utils/runtime.js.map +1 -1
  88. package/dist/version.js +1 -1
  89. package/package.json +7 -1
  90. package/runtime/__pycache__/_tywrap_member_fixtures.cpython-311.pyc +0 -0
  91. package/runtime/__pycache__/safe_codec.cpython-311.pyc +0 -0
  92. package/runtime/__pycache__/tywrap_bridge_core.cpython-311.pyc +0 -0
  93. package/runtime/tywrap_bridge_core.py +55 -3
  94. package/src/core/annotation-parser.ts +23 -18
  95. package/src/core/discovery.ts +70 -54
  96. package/src/core/generator.ts +50 -11
  97. package/src/core/validation.ts +84 -48
  98. package/src/dev.ts +237 -153
  99. package/src/runtime/base-bridge.ts +106 -0
  100. package/src/runtime/bridge-codec.ts +58 -70
  101. package/src/runtime/http-transport.ts +21 -1
  102. package/src/runtime/http.ts +7 -51
  103. package/src/runtime/index.ts +1 -0
  104. package/src/runtime/node.ts +17 -52
  105. package/src/runtime/pooled-transport.ts +25 -2
  106. package/src/runtime/pyodide-bootstrap-core.generated.ts +1 -1
  107. package/src/runtime/pyodide-transport.ts +22 -0
  108. package/src/runtime/pyodide.ts +7 -52
  109. package/src/runtime/rpc-client.ts +56 -32
  110. package/src/runtime/subprocess-transport.ts +89 -40
  111. package/src/runtime/transport.ts +71 -0
  112. package/src/types/index.ts +37 -0
  113. package/src/tywrap.ts +274 -187
  114. package/src/utils/cache.ts +59 -61
  115. package/src/utils/codec.ts +61 -4
  116. package/src/utils/python.ts +33 -20
  117. package/src/utils/runtime.ts +24 -13
  118. package/src/version.ts +1 -1
package/dist/dev.js CHANGED
@@ -204,38 +204,40 @@ async function listExistingManagedFiles(outputDir) {
204
204
  }
205
205
  return managedFiles;
206
206
  }
207
+ async function listChildDirectories(current) {
208
+ let entries;
209
+ try {
210
+ entries = await readdir(current, { withFileTypes: true });
211
+ }
212
+ catch {
213
+ return [];
214
+ }
215
+ return entries
216
+ .filter(entry => entry.isDirectory())
217
+ .map(entry => join(current, entry.name));
218
+ }
219
+ async function isWatchableDirectory(current, ignoredPaths) {
220
+ if (shouldIgnoreWatchPath(current, ignoredPaths)) {
221
+ return false;
222
+ }
223
+ try {
224
+ const currentStats = await stat(current);
225
+ return currentStats.isDirectory();
226
+ }
227
+ catch {
228
+ return false;
229
+ }
230
+ }
207
231
  async function collectWatchDirectories(root, ignoredPaths) {
208
232
  const queue = [resolve(root)];
209
233
  const directories = [];
210
234
  while (queue.length > 0) {
211
235
  const current = queue.shift();
212
- if (shouldIgnoreWatchPath(current, ignoredPaths)) {
213
- continue;
214
- }
215
- let currentStats;
216
- try {
217
- currentStats = await stat(current);
218
- }
219
- catch {
220
- continue;
221
- }
222
- if (!currentStats.isDirectory()) {
236
+ if (!(await isWatchableDirectory(current, ignoredPaths))) {
223
237
  continue;
224
238
  }
225
239
  directories.push(current);
226
- let entries;
227
- try {
228
- entries = await readdir(current, { withFileTypes: true });
229
- }
230
- catch {
231
- continue;
232
- }
233
- for (const entry of entries) {
234
- if (!entry.isDirectory()) {
235
- continue;
236
- }
237
- queue.push(join(current, entry.name));
238
- }
240
+ queue.push(...(await listChildDirectories(current)));
239
241
  }
240
242
  return normalizePaths(directories);
241
243
  }
@@ -295,7 +297,37 @@ async function promoteManagedFiles(outputDir, nextFiles, previousManagedFiles) {
295
297
  throw error;
296
298
  }
297
299
  }
298
- async function resolveWatchTargets(config) {
300
+ const WATCH_TARGET_RESOLUTION_SCRIPT = [
301
+ 'import importlib',
302
+ 'import importlib.util',
303
+ 'import json',
304
+ 'import sys',
305
+ '',
306
+ 'module_name = sys.argv[1]',
307
+ 'spec = importlib.util.find_spec(module_name)',
308
+ 'if spec is None:',
309
+ " print(json.dumps({'missing': True}))",
310
+ ' raise SystemExit(0)',
311
+ '',
312
+ 'module_path = None',
313
+ 'module_origin = spec.origin',
314
+ 'if spec.submodule_search_locations:',
315
+ ' try:',
316
+ ' module = importlib.import_module(module_name)',
317
+ ' except Exception:',
318
+ ' module = None',
319
+ ' if module is not None:',
320
+ ' module_path = getattr(module, "__path__", None)',
321
+ ' module_origin = getattr(module, "__file__", None) or spec.origin',
322
+ 'payload = {',
323
+ " 'missing': False,",
324
+ " 'origin': module_origin,",
325
+ " 'locations': list(module_path) if module_path is not None else list(spec.submodule_search_locations or []),",
326
+ " 'has_location': bool(spec.has_location),",
327
+ '}',
328
+ 'print(json.dumps(payload))',
329
+ ].join('\n');
330
+ async function resolveWatchPythonEnv(config) {
299
331
  const pythonPath = await resolvePythonExecutable({
300
332
  pythonPath: config.runtime?.node?.pythonPath,
301
333
  virtualEnv: config.runtime?.node?.virtualEnv,
@@ -309,76 +341,62 @@ async function resolveWatchTargets(config) {
309
341
  .join(delimiter);
310
342
  const env = mergedPyPath ? { PYTHONPATH: mergedPyPath } : undefined;
311
343
  const timeoutMs = config.runtime?.node?.timeout ?? 30000;
344
+ return { pythonPath, env, timeoutMs };
345
+ }
346
+ async function resolveWatchTargetPayload(moduleName, pythonEnv) {
347
+ const result = await processUtils.exec(pythonEnv.pythonPath, ['-c', WATCH_TARGET_RESOLUTION_SCRIPT, moduleName], {
348
+ timeoutMs: pythonEnv.timeoutMs,
349
+ env: pythonEnv.env,
350
+ });
351
+ if (result.code !== 0) {
352
+ throw new Error(`Failed to resolve watch target for module "${moduleName}": ${result.stderr.trim() || result.stdout.trim() || 'unknown error'}`);
353
+ }
354
+ try {
355
+ return JSON.parse(result.stdout);
356
+ }
357
+ catch (error) {
358
+ throw new Error(`Failed to parse watch target for module "${moduleName}": ${error.message}`);
359
+ }
360
+ }
361
+ async function resolvePackageWatchTargets(moduleName, packageLocations) {
362
+ const targets = [];
363
+ for (const location of packageLocations) {
364
+ const packageDir = resolve(location);
365
+ const stats = await stat(packageDir);
366
+ if (!stats.isDirectory()) {
367
+ throw new Error(`Module "${moduleName}" resolved to "${packageDir}", but it is not a package directory`);
368
+ }
369
+ targets.push({ moduleName, path: packageDir, kind: 'directory' });
370
+ }
371
+ return targets;
372
+ }
373
+ async function resolveFileWatchTarget(moduleName, payload) {
374
+ if (typeof payload.origin !== 'string' || !payload.origin.endsWith('.py')) {
375
+ throw new Error(`Module "${moduleName}" is not backed by a local Python source file or package directory and cannot be watched`);
376
+ }
377
+ const modulePath = resolve(payload.origin);
378
+ const stats = await stat(modulePath);
379
+ if (!stats.isFile()) {
380
+ throw new Error(`Module "${moduleName}" resolved to "${modulePath}", but it is not a Python source file`);
381
+ }
382
+ return { moduleName, path: modulePath, kind: 'file' };
383
+ }
384
+ async function resolveModuleWatchTargets(moduleName, pythonEnv) {
385
+ const payload = await resolveWatchTargetPayload(moduleName, pythonEnv);
386
+ if (payload.missing) {
387
+ throw new Error(`Module "${moduleName}" could not be resolved for watching`);
388
+ }
389
+ const packageLocations = Array.isArray(payload.locations) ? payload.locations : [];
390
+ if (packageLocations.length > 0) {
391
+ return resolvePackageWatchTargets(moduleName, packageLocations);
392
+ }
393
+ return [await resolveFileWatchTarget(moduleName, payload)];
394
+ }
395
+ async function resolveWatchTargets(config) {
396
+ const pythonEnv = await resolveWatchPythonEnv(config);
312
397
  const watchTargets = [];
313
398
  for (const moduleName of Object.keys(config.pythonModules ?? {})) {
314
- const resolutionScript = [
315
- 'import importlib',
316
- 'import importlib.util',
317
- 'import json',
318
- 'import sys',
319
- '',
320
- 'module_name = sys.argv[1]',
321
- 'spec = importlib.util.find_spec(module_name)',
322
- 'if spec is None:',
323
- " print(json.dumps({'missing': True}))",
324
- ' raise SystemExit(0)',
325
- '',
326
- 'module_path = None',
327
- 'module_origin = spec.origin',
328
- 'if spec.submodule_search_locations:',
329
- ' try:',
330
- ' module = importlib.import_module(module_name)',
331
- ' except Exception:',
332
- ' module = None',
333
- ' if module is not None:',
334
- ' module_path = getattr(module, "__path__", None)',
335
- ' module_origin = getattr(module, "__file__", None) or spec.origin',
336
- 'payload = {',
337
- " 'missing': False,",
338
- " 'origin': module_origin,",
339
- " 'locations': list(module_path) if module_path is not None else list(spec.submodule_search_locations or []),",
340
- " 'has_location': bool(spec.has_location),",
341
- '}',
342
- 'print(json.dumps(payload))',
343
- ].join('\n');
344
- const result = await processUtils.exec(pythonPath, ['-c', resolutionScript, moduleName], {
345
- timeoutMs,
346
- env,
347
- });
348
- if (result.code !== 0) {
349
- throw new Error(`Failed to resolve watch target for module "${moduleName}": ${result.stderr.trim() || result.stdout.trim() || 'unknown error'}`);
350
- }
351
- let payload;
352
- try {
353
- payload = JSON.parse(result.stdout);
354
- }
355
- catch (error) {
356
- throw new Error(`Failed to parse watch target for module "${moduleName}": ${error.message}`);
357
- }
358
- if (payload.missing) {
359
- throw new Error(`Module "${moduleName}" could not be resolved for watching`);
360
- }
361
- const packageLocations = Array.isArray(payload.locations) ? payload.locations : [];
362
- if (packageLocations.length > 0) {
363
- for (const location of packageLocations) {
364
- const packageDir = resolve(location);
365
- const stats = await stat(packageDir);
366
- if (!stats.isDirectory()) {
367
- throw new Error(`Module "${moduleName}" resolved to "${packageDir}", but it is not a package directory`);
368
- }
369
- watchTargets.push({ moduleName, path: packageDir, kind: 'directory' });
370
- }
371
- continue;
372
- }
373
- if (typeof payload.origin !== 'string' || !payload.origin.endsWith('.py')) {
374
- throw new Error(`Module "${moduleName}" is not backed by a local Python source file or package directory and cannot be watched`);
375
- }
376
- const modulePath = resolve(payload.origin);
377
- const stats = await stat(modulePath);
378
- if (!stats.isFile()) {
379
- throw new Error(`Module "${moduleName}" resolved to "${modulePath}", but it is not a Python source file`);
380
- }
381
- watchTargets.push({ moduleName, path: modulePath, kind: 'file' });
399
+ watchTargets.push(...(await resolveModuleWatchTargets(moduleName, pythonEnv)));
382
400
  }
383
401
  return watchTargets;
384
402
  }
@@ -567,32 +585,41 @@ export async function startNodeWatchSession(options) {
567
585
  watcherRefreshPromise = watcherRefreshPromise.then(() => refreshActiveWatchers(), () => refreshActiveWatchers());
568
586
  return watcherRefreshPromise;
569
587
  };
588
+ const disposeReloadFailure = async (state) => {
589
+ if (state.preparedWatchers) {
590
+ closePreparedWatchers(state.preparedWatchers);
591
+ }
592
+ if (state.nextBridge) {
593
+ await state.nextBridge.dispose().catch(() => { });
594
+ }
595
+ };
570
596
  const runReload = async (trigger) => {
571
597
  if (closed) {
572
598
  return false;
573
599
  }
574
600
  emit({ type: 'reload-start', path: trigger.path, manual: trigger.manual });
575
- let stage = null;
576
- let nextBridge = null;
577
- let preparedWatchers = null;
601
+ const state = { stage: null, nextBridge: null, preparedWatchers: null };
578
602
  const abortReload = async (managerToDispose = null) => {
579
- if (preparedWatchers) {
580
- closePreparedWatchers(preparedWatchers);
581
- preparedWatchers = null;
603
+ if (state.preparedWatchers) {
604
+ closePreparedWatchers(state.preparedWatchers);
605
+ state.preparedWatchers = null;
582
606
  }
583
- if (nextBridge) {
584
- await nextBridge.dispose().catch(() => { });
585
- nextBridge = null;
607
+ if (state.nextBridge) {
608
+ await state.nextBridge.dispose().catch(() => { });
609
+ state.nextBridge = null;
586
610
  }
587
611
  if (managerToDispose) {
588
612
  await managerToDispose.dispose().catch(() => { });
589
613
  }
590
614
  return false;
591
615
  };
592
- try {
593
- stage = await generateToStage(configFile);
616
+ // Generate the next stage, prepare watchers, and warm the next bridge.
617
+ // Returns null when the session closed mid-flight (caller aborts).
618
+ const prepareReload = async () => {
619
+ const stage = await generateToStage(configFile);
620
+ state.stage = stage;
594
621
  if (closed) {
595
- return abortReload();
622
+ return null;
596
623
  }
597
624
  currentBridgeConfig = stage.config;
598
625
  const nextIgnoredPaths = buildIgnoredPaths(stage.outputDir);
@@ -603,16 +630,46 @@ export async function startNodeWatchSession(options) {
603
630
  ...extraWatchSources,
604
631
  ]);
605
632
  const watchPaths = normalizePaths(watchSources.map(source => source.path));
606
- preparedWatchers = await prepareWatchers(watchSources, nextIgnoredPaths);
633
+ const preparedWatchers = await prepareWatchers(watchSources, nextIgnoredPaths);
634
+ state.preparedWatchers = preparedWatchers;
607
635
  if (closed) {
608
- return abortReload();
636
+ return null;
609
637
  }
610
638
  if (bridgeManager) {
611
- nextBridge = await bridgeManager.prepareNextBridge();
639
+ state.nextBridge = await bridgeManager.prepareNextBridge();
612
640
  if (closed) {
613
- return abortReload();
641
+ return null;
614
642
  }
615
643
  }
644
+ return { stage, preparedWatchers, nextIgnoredPaths, watchPaths };
645
+ };
646
+ // Activate (or create) the bridge for the freshly prepared stage.
647
+ // Returns the manager to dispose (or null) when the session closed
648
+ // mid-flight, otherwise null; sets `closedDuringActivation` accordingly.
649
+ let closedDuringActivation = false;
650
+ const activateReloadBridge = async () => {
651
+ if (bridgeManager && state.nextBridge) {
652
+ await bridgeManager.activatePreparedBridge(state.nextBridge);
653
+ state.nextBridge = null;
654
+ closedDuringActivation = closed;
655
+ return null;
656
+ }
657
+ if (!bridgeManager) {
658
+ const createdBridgeManager = await ManagedBridgeReloader.create(createBridgeForSession);
659
+ if (closed) {
660
+ closedDuringActivation = true;
661
+ return createdBridgeManager;
662
+ }
663
+ bridgeManager = createdBridgeManager;
664
+ }
665
+ return null;
666
+ };
667
+ try {
668
+ const prepared = await prepareReload();
669
+ if (!prepared) {
670
+ return abortReload();
671
+ }
672
+ const { stage } = prepared;
616
673
  const previousManagedFiles = activeOutputDir === stage.outputDir
617
674
  ? managedFiles
618
675
  : await listExistingManagedFiles(stage.outputDir);
@@ -620,29 +677,19 @@ export async function startNodeWatchSession(options) {
620
677
  if (closed) {
621
678
  return abortReload();
622
679
  }
623
- if (bridgeManager && nextBridge) {
624
- await bridgeManager.activatePreparedBridge(nextBridge);
625
- nextBridge = null;
626
- if (closed) {
627
- return abortReload();
628
- }
629
- }
630
- else if (!bridgeManager) {
631
- const createdBridgeManager = await ManagedBridgeReloader.create(createBridgeForSession);
632
- if (closed) {
633
- return abortReload(createdBridgeManager);
634
- }
635
- bridgeManager = createdBridgeManager;
680
+ const managerToDispose = await activateReloadBridge();
681
+ if (closedDuringActivation) {
682
+ return abortReload(managerToDispose);
636
683
  }
637
684
  managedFiles = promotedManagedFiles;
638
685
  activeOutputDir = stage.outputDir;
639
- ignoredPaths = nextIgnoredPaths;
640
- commitWatchers(preparedWatchers);
686
+ ignoredPaths = prepared.nextIgnoredPaths;
687
+ commitWatchers(prepared.preparedWatchers);
641
688
  emit({
642
689
  type: 'reload-success',
643
690
  path: trigger.path,
644
691
  manual: trigger.manual,
645
- paths: watchPaths,
692
+ paths: prepared.watchPaths,
646
693
  written: [...stage.files.keys()].sort(),
647
694
  warnings: stage.warnings,
648
695
  });
@@ -651,12 +698,7 @@ export async function startNodeWatchSession(options) {
651
698
  }
652
699
  catch (error) {
653
700
  lastReloadError = error instanceof Error ? error : new Error(String(error));
654
- if (preparedWatchers) {
655
- closePreparedWatchers(preparedWatchers);
656
- }
657
- if (nextBridge) {
658
- await nextBridge.dispose().catch(() => { });
659
- }
701
+ await disposeReloadFailure(state);
660
702
  emit({
661
703
  type: 'reload-error',
662
704
  path: trigger.path,
@@ -666,8 +708,8 @@ export async function startNodeWatchSession(options) {
666
708
  return false;
667
709
  }
668
710
  finally {
669
- if (stage) {
670
- await rm(stage.tempDir, { recursive: true, force: true });
711
+ if (state.stage) {
712
+ await rm(state.stage.tempDir, { recursive: true, force: true });
671
713
  }
672
714
  }
673
715
  };
package/dist/dev.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * BasePythonBridge - shared RPC delegation for the bridge facades.
3
+ *
4
+ * The three bridge facades (NodeBridge/HttpBridge/PyodideBridge) all extend
5
+ * DisposableBase (lifecycle/resources) and implement PythonRuntime by HOLDING
6
+ * an RpcClient. The PythonRuntime delegation was byte-identical across all
7
+ * three: each method does `await this.ensureReady()` then forwards to the held
8
+ * RpcClient. This base collapses that duplication onto a single
9
+ * `getRpcClient()` accessor while leaving each facade free to own its own
10
+ * RpcClient field (for constructor wiring, resource tracking, and — in
11
+ * NodeBridge's case — a caching override of call()).
12
+ *
13
+ * It carries no transport/codec/lifecycle specifics: doInit/doDispose remain
14
+ * abstract on DisposableBase and stay per-facade.
15
+ *
16
+ * @see https://github.com/bbopen/tywrap/issues/149
17
+ */
18
+ import type { PythonRuntime, BridgeInfo } from '../types/index.js';
19
+ import { DisposableBase } from './bounded-context.js';
20
+ import type { RpcClient, GetBridgeInfoOptions } from './rpc-client.js';
21
+ import type { TransportCapabilities } from './transport.js';
22
+ /**
23
+ * Shared base for the bridge facades. Implements the PythonRuntime RPC
24
+ * delegation (plus getBridgeInfo) over a single held RpcClient, exposed by the
25
+ * abstract {@link getRpcClient} accessor. Lifecycle (doInit/doDispose) and the
26
+ * RpcClient's construction/ownership remain the subclass's responsibility.
27
+ */
28
+ export declare abstract class BasePythonBridge extends DisposableBase implements PythonRuntime {
29
+ /**
30
+ * Return the held RpcClient that the shared delegating methods forward to.
31
+ * Subclasses construct, track, and own the RpcClient; this accessor lets the
32
+ * base reach it without dictating how it is stored.
33
+ */
34
+ protected abstract getRpcClient(): RpcClient;
35
+ call<T = unknown>(module: string, functionName: string, args: unknown[], kwargs?: Record<string, unknown>): Promise<T>;
36
+ instantiate<T = unknown>(module: string, className: string, args: unknown[], kwargs?: Record<string, unknown>): Promise<T>;
37
+ callMethod<T = unknown>(handle: string, methodName: string, args: unknown[], kwargs?: Record<string, unknown>): Promise<T>;
38
+ disposeInstance(handle: string): Promise<void>;
39
+ /**
40
+ * Fetch bridge diagnostics and feature availability.
41
+ */
42
+ getBridgeInfo(options?: GetBridgeInfoOptions): Promise<BridgeInfo>;
43
+ /**
44
+ * Describe this backend's transport-level capabilities (Arrow/binary/chunking/
45
+ * streaming support, max frame size). The descriptor is static and does NOT
46
+ * depend on lifecycle state, so this intentionally does not `ensureReady()` —
47
+ * callers can query it before connecting to decide how to use the bridge.
48
+ */
49
+ capabilities(): TransportCapabilities;
50
+ /**
51
+ * Ensure the facade is initialized before delegating an RPC. Replicates the
52
+ * auto-init that the bounded execute path provided pre-composition, so the
53
+ * facade's own doInit pre-work runs before any RPC.
54
+ */
55
+ protected ensureReady(): Promise<void>;
56
+ }
57
+ //# sourceMappingURL=base-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-bridge.d.ts","sourceRoot":"","sources":["../../src/runtime/base-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D;;;;;GAKG;AACH,8BAAsB,gBAAiB,SAAQ,cAAe,YAAW,aAAa;IACpF;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,SAAS;IAMtC,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IAKP,WAAW,CAAC,CAAC,GAAG,OAAO,EAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IAKP,UAAU,CAAC,CAAC,GAAG,OAAO,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IAKP,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpD;;OAEG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKxE;;;;;OAKG;IACH,YAAY,IAAI,qBAAqB;IAIrC;;;;OAIG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7C"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * BasePythonBridge - shared RPC delegation for the bridge facades.
3
+ *
4
+ * The three bridge facades (NodeBridge/HttpBridge/PyodideBridge) all extend
5
+ * DisposableBase (lifecycle/resources) and implement PythonRuntime by HOLDING
6
+ * an RpcClient. The PythonRuntime delegation was byte-identical across all
7
+ * three: each method does `await this.ensureReady()` then forwards to the held
8
+ * RpcClient. This base collapses that duplication onto a single
9
+ * `getRpcClient()` accessor while leaving each facade free to own its own
10
+ * RpcClient field (for constructor wiring, resource tracking, and — in
11
+ * NodeBridge's case — a caching override of call()).
12
+ *
13
+ * It carries no transport/codec/lifecycle specifics: doInit/doDispose remain
14
+ * abstract on DisposableBase and stay per-facade.
15
+ *
16
+ * @see https://github.com/bbopen/tywrap/issues/149
17
+ */
18
+ import { DisposableBase } from './bounded-context.js';
19
+ /**
20
+ * Shared base for the bridge facades. Implements the PythonRuntime RPC
21
+ * delegation (plus getBridgeInfo) over a single held RpcClient, exposed by the
22
+ * abstract {@link getRpcClient} accessor. Lifecycle (doInit/doDispose) and the
23
+ * RpcClient's construction/ownership remain the subclass's responsibility.
24
+ */
25
+ export class BasePythonBridge extends DisposableBase {
26
+ // ===========================================================================
27
+ // RPC METHODS (delegate to the held RpcClient)
28
+ // ===========================================================================
29
+ async call(module, functionName, args, kwargs) {
30
+ await this.ensureReady();
31
+ return this.getRpcClient().call(module, functionName, args, kwargs);
32
+ }
33
+ async instantiate(module, className, args, kwargs) {
34
+ await this.ensureReady();
35
+ return this.getRpcClient().instantiate(module, className, args, kwargs);
36
+ }
37
+ async callMethod(handle, methodName, args, kwargs) {
38
+ await this.ensureReady();
39
+ return this.getRpcClient().callMethod(handle, methodName, args, kwargs);
40
+ }
41
+ async disposeInstance(handle) {
42
+ await this.ensureReady();
43
+ return this.getRpcClient().disposeInstance(handle);
44
+ }
45
+ /**
46
+ * Fetch bridge diagnostics and feature availability.
47
+ */
48
+ async getBridgeInfo(options) {
49
+ await this.ensureReady();
50
+ return this.getRpcClient().getBridgeInfo(options);
51
+ }
52
+ /**
53
+ * Describe this backend's transport-level capabilities (Arrow/binary/chunking/
54
+ * streaming support, max frame size). The descriptor is static and does NOT
55
+ * depend on lifecycle state, so this intentionally does not `ensureReady()` —
56
+ * callers can query it before connecting to decide how to use the bridge.
57
+ */
58
+ capabilities() {
59
+ return this.getRpcClient().capabilities();
60
+ }
61
+ /**
62
+ * Ensure the facade is initialized before delegating an RPC. Replicates the
63
+ * auto-init that the bounded execute path provided pre-composition, so the
64
+ * facade's own doInit pre-work runs before any RPC.
65
+ */
66
+ async ensureReady() {
67
+ if (!this.isReady) {
68
+ await this.init();
69
+ }
70
+ }
71
+ }
72
+ //# sourceMappingURL=base-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-bridge.js","sourceRoot":"","sources":["../../src/runtime/base-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD;;;;;GAKG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,cAAc;IAQ3D,8EAA8E;IAC9E,+CAA+C;IAC/C,8EAA8E;IAE9E,KAAK,CAAC,IAAI,CACR,MAAc,EACd,YAAoB,EACpB,IAAe,EACf,MAAgC;QAEhC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAI,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,WAAW,CACf,MAAc,EACd,SAAiB,EACjB,IAAe,EACf,MAAgC;QAEhC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAI,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,UAAU,CACd,MAAc,EACd,UAAkB,EAClB,IAAe,EACf,MAAgC;QAEhC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,UAAU,CAAI,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,OAA8B;QAChD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,WAAW;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;CACF"}