tywrap 0.2.1 → 0.3.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 (138) hide show
  1. package/README.md +65 -31
  2. package/dist/cli.js +49 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config/index.d.ts +11 -7
  5. package/dist/config/index.d.ts.map +1 -1
  6. package/dist/config/index.js +43 -7
  7. package/dist/config/index.js.map +1 -1
  8. package/dist/core/analyzer.d.ts +1 -0
  9. package/dist/core/analyzer.d.ts.map +1 -1
  10. package/dist/core/analyzer.js +47 -12
  11. package/dist/core/analyzer.js.map +1 -1
  12. package/dist/core/annotation-parser.d.ts +8 -0
  13. package/dist/core/annotation-parser.d.ts.map +1 -0
  14. package/dist/core/annotation-parser.js +409 -0
  15. package/dist/core/annotation-parser.js.map +1 -0
  16. package/dist/core/discovery.d.ts +1 -0
  17. package/dist/core/discovery.d.ts.map +1 -1
  18. package/dist/core/discovery.js +9 -9
  19. package/dist/core/discovery.js.map +1 -1
  20. package/dist/core/generator.d.ts +9 -1
  21. package/dist/core/generator.d.ts.map +1 -1
  22. package/dist/core/generator.js +738 -104
  23. package/dist/core/generator.js.map +1 -1
  24. package/dist/core/mapper.d.ts +9 -7
  25. package/dist/core/mapper.d.ts.map +1 -1
  26. package/dist/core/mapper.js +129 -44
  27. package/dist/core/mapper.js.map +1 -1
  28. package/dist/index.d.ts +7 -7
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +4 -4
  31. package/dist/index.js.map +1 -1
  32. package/dist/runtime/bridge-core.d.ts +1 -0
  33. package/dist/runtime/bridge-core.d.ts.map +1 -1
  34. package/dist/runtime/bridge-core.js +52 -17
  35. package/dist/runtime/bridge-core.js.map +1 -1
  36. package/dist/runtime/bridge-protocol.d.ts +17 -0
  37. package/dist/runtime/bridge-protocol.d.ts.map +1 -1
  38. package/dist/runtime/bridge-protocol.js +97 -0
  39. package/dist/runtime/bridge-protocol.js.map +1 -1
  40. package/dist/runtime/errors.d.ts +10 -0
  41. package/dist/runtime/errors.d.ts.map +1 -1
  42. package/dist/runtime/errors.js +9 -0
  43. package/dist/runtime/errors.js.map +1 -1
  44. package/dist/runtime/http-io.d.ts.map +1 -1
  45. package/dist/runtime/http-io.js.map +1 -1
  46. package/dist/runtime/http.d.ts +1 -0
  47. package/dist/runtime/http.d.ts.map +1 -1
  48. package/dist/runtime/http.js +6 -0
  49. package/dist/runtime/http.js.map +1 -1
  50. package/dist/runtime/node.d.ts.map +1 -1
  51. package/dist/runtime/node.js +170 -32
  52. package/dist/runtime/node.js.map +1 -1
  53. package/dist/runtime/optimized-node.d.ts +1 -1
  54. package/dist/runtime/optimized-node.d.ts.map +1 -1
  55. package/dist/runtime/optimized-node.js +1 -1
  56. package/dist/runtime/optimized-node.js.map +1 -1
  57. package/dist/runtime/pooled-transport.d.ts +4 -0
  58. package/dist/runtime/pooled-transport.d.ts.map +1 -1
  59. package/dist/runtime/pooled-transport.js +2 -0
  60. package/dist/runtime/pooled-transport.js.map +1 -1
  61. package/dist/runtime/process-io.d.ts +5 -0
  62. package/dist/runtime/process-io.d.ts.map +1 -1
  63. package/dist/runtime/process-io.js +64 -30
  64. package/dist/runtime/process-io.js.map +1 -1
  65. package/dist/runtime/pyodide-io.d.ts +4 -5
  66. package/dist/runtime/pyodide-io.d.ts.map +1 -1
  67. package/dist/runtime/pyodide-io.js +99 -37
  68. package/dist/runtime/pyodide-io.js.map +1 -1
  69. package/dist/runtime/safe-codec.d.ts +25 -3
  70. package/dist/runtime/safe-codec.d.ts.map +1 -1
  71. package/dist/runtime/safe-codec.js +231 -57
  72. package/dist/runtime/safe-codec.js.map +1 -1
  73. package/dist/runtime/transport.d.ts +6 -1
  74. package/dist/runtime/transport.d.ts.map +1 -1
  75. package/dist/runtime/transport.js.map +1 -1
  76. package/dist/runtime/validators.d.ts +0 -11
  77. package/dist/runtime/validators.d.ts.map +1 -1
  78. package/dist/runtime/validators.js +13 -3
  79. package/dist/runtime/validators.js.map +1 -1
  80. package/dist/runtime/worker-pool.d.ts +12 -0
  81. package/dist/runtime/worker-pool.d.ts.map +1 -1
  82. package/dist/runtime/worker-pool.js +53 -5
  83. package/dist/runtime/worker-pool.js.map +1 -1
  84. package/dist/types/index.d.ts +51 -1
  85. package/dist/types/index.d.ts.map +1 -1
  86. package/dist/tywrap.d.ts.map +1 -1
  87. package/dist/tywrap.js +227 -328
  88. package/dist/tywrap.js.map +1 -1
  89. package/dist/utils/cache.d.ts.map +1 -1
  90. package/dist/utils/cache.js +53 -5
  91. package/dist/utils/cache.js.map +1 -1
  92. package/dist/utils/codec.d.ts.map +1 -1
  93. package/dist/utils/codec.js +10 -16
  94. package/dist/utils/codec.js.map +1 -1
  95. package/dist/utils/ir-cache.d.ts +28 -0
  96. package/dist/utils/ir-cache.d.ts.map +1 -0
  97. package/dist/utils/ir-cache.js +29 -0
  98. package/dist/utils/ir-cache.js.map +1 -0
  99. package/dist/utils/parallel-processor.d.ts +1 -1
  100. package/dist/utils/parallel-processor.d.ts.map +1 -1
  101. package/dist/utils/parallel-processor.js +111 -40
  102. package/dist/utils/parallel-processor.js.map +1 -1
  103. package/dist/utils/runtime.d.ts +5 -1
  104. package/dist/utils/runtime.d.ts.map +1 -1
  105. package/dist/utils/runtime.js +112 -18
  106. package/dist/utils/runtime.js.map +1 -1
  107. package/package.json +40 -18
  108. package/runtime/python_bridge.py +78 -12
  109. package/src/cli.ts +61 -2
  110. package/src/config/index.ts +63 -17
  111. package/src/core/analyzer.ts +52 -15
  112. package/src/core/annotation-parser.ts +500 -0
  113. package/src/core/discovery.ts +26 -12
  114. package/src/core/generator.ts +956 -116
  115. package/src/core/mapper.ts +158 -51
  116. package/src/index.ts +34 -5
  117. package/src/runtime/bridge-core.ts +58 -18
  118. package/src/runtime/bridge-protocol.ts +164 -0
  119. package/src/runtime/errors.ts +14 -0
  120. package/src/runtime/http-io.ts +2 -1
  121. package/src/runtime/http.ts +7 -0
  122. package/src/runtime/node.ts +264 -44
  123. package/src/runtime/optimized-node.ts +4 -1
  124. package/src/runtime/pooled-transport.ts +12 -1
  125. package/src/runtime/process-io.ts +83 -55
  126. package/src/runtime/pyodide-io.ts +110 -44
  127. package/src/runtime/safe-codec.ts +290 -82
  128. package/src/runtime/transport.ts +6 -1
  129. package/src/runtime/validators.ts +14 -3
  130. package/src/runtime/worker-pool.ts +67 -6
  131. package/src/types/global.d.ts +11 -1
  132. package/src/types/index.ts +63 -0
  133. package/src/tywrap.ts +279 -358
  134. package/src/utils/cache.ts +59 -5
  135. package/src/utils/codec.ts +11 -15
  136. package/src/utils/ir-cache.ts +51 -0
  137. package/src/utils/parallel-processor.ts +119 -43
  138. package/src/utils/runtime.ts +129 -18
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/utils/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/utils/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tywrap",
3
- "version": "0.2.1",
4
- "description": "TypeScript wrapper for Python libraries with full type safety (EXPERIMENTAL - v0.2.1)",
3
+ "version": "0.3.0",
4
+ "description": "Generate type-safe TypeScript wrappers for any Python library Node.js, Deno, Bun, and browsers via Pyodide.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -71,7 +71,11 @@
71
71
  "act": "node scripts/act.mjs",
72
72
  "act:clean": "node scripts/act.mjs --clean",
73
73
  "act:serial": "node scripts/act-matrix.mjs",
74
- "docker:npm": "node scripts/node-docker.mjs npm"
74
+ "docker:npm": "node scripts/node-docker.mjs npm",
75
+ "docs:sync-llms": "node scripts/generate-llms-full.mjs",
76
+ "docs:dev": "vitepress dev docs",
77
+ "docs:build": "npm run docs:sync-llms && vitepress build docs",
78
+ "docs:preview": "vitepress preview docs"
75
79
  },
76
80
  "keywords": [
77
81
  "typescript",
@@ -84,7 +88,17 @@
84
88
  "code-generation",
85
89
  "node",
86
90
  "deno",
87
- "bun"
91
+ "bun",
92
+ "codegen",
93
+ "ffi",
94
+ "bindings",
95
+ "wrapper",
96
+ "numpy",
97
+ "pandas",
98
+ "scipy",
99
+ "python-wrapper",
100
+ "rpc",
101
+ "subprocess"
88
102
  ],
89
103
  "author": "tywrap contributors",
90
104
  "license": "MIT",
@@ -95,7 +109,7 @@
95
109
  "bugs": {
96
110
  "url": "https://github.com/bbopen/tywrap/issues"
97
111
  },
98
- "homepage": "https://github.com/bbopen/tywrap#readme",
112
+ "homepage": "https://bbopen.github.io/tywrap",
99
113
  "publishConfig": {
100
114
  "access": "public",
101
115
  "registry": "https://registry.npmjs.org/"
@@ -103,30 +117,34 @@
103
117
  "dependencies": {
104
118
  "@babel/parser": "^7.25.6",
105
119
  "@babel/types": "^7.25.6",
106
- "tree-sitter": "^0.21.0",
107
- "tree-sitter-python": "^0.21.0",
120
+ "tree-sitter": "^0.25.0",
121
+ "tree-sitter-python": "^0.25.0",
108
122
  "typescript": "^5.6.2",
109
123
  "web-tree-sitter": "^0.21.0",
110
- "yargs": "^17.7.2"
124
+ "yargs": "^18.0.0"
111
125
  },
112
126
  "devDependencies": {
113
- "@types/bun": "^1.2.19",
114
- "@types/node": "^22.5.4",
115
- "@types/yargs": "^17.0.33",
116
- "@typescript-eslint/eslint-plugin": "^8.5.0",
127
+ "@types/bun": "^1.3.10",
128
+ "@types/node": "^25.5.0",
129
+ "@types/three": "^0.183.1",
130
+ "@types/yargs": "^17.0.35",
131
+ "@typescript-eslint/eslint-plugin": "^8.57.1",
117
132
  "@typescript-eslint/parser": "^8.5.0",
118
- "@vitest/coverage-v8": "^4.0.16",
119
- "@vitest/eslint-plugin": "^1.6.4",
133
+ "@vitest/coverage-v8": "^4.1.0",
134
+ "@vitest/eslint-plugin": "^1.6.12",
120
135
  "apache-arrow": "^21.1.0",
121
136
  "eslint": "^9.10.0",
122
- "eslint-import-resolver-typescript": "^3.6.1",
137
+ "eslint-import-resolver-typescript": "^4.4.4",
123
138
  "eslint-plugin-import": "^2.29.1",
124
139
  "eslint-plugin-security": "^3.0.1",
125
- "fast-check": "^4.3.0",
126
- "prettier": "^3.3.3",
140
+ "fast-check": "^4.6.0",
141
+ "prettier": "^3.8.1",
127
142
  "tsd": "^0.33.0",
128
143
  "vite": "^7.3.0",
129
- "vitest": "^4.0.16"
144
+ "vitepress": "^1.6.4",
145
+ "vitest": "^4.0.16",
146
+ "three": "^0.183.2",
147
+ "postprocessing": "^6.38.3"
130
148
  },
131
149
  "peerDependencies": {
132
150
  "pyodide": ">=0.28.0"
@@ -139,6 +157,10 @@
139
157
  "trustedDependencies": [
140
158
  "pyodide"
141
159
  ],
160
+ "overrides": {
161
+ "@types/react": "^18.3.0",
162
+ "@types/prop-types": "^15.7.0"
163
+ },
142
164
  "bin": {
143
165
  "tywrap": "dist/cli.js"
144
166
  }
@@ -138,6 +138,69 @@ class ProtocolError(Exception):
138
138
  pass
139
139
 
140
140
 
141
+ class InstanceHandleError(ValueError):
142
+ """Raised when an instance handle is unknown or no longer valid."""
143
+
144
+ _NO_DESERIALIZE = object()
145
+ _ERR_BYTES_MISSING_B64 = 'Invalid bytes envelope: missing b64'
146
+ _ERR_BYTES_MISSING_DATA = 'Invalid bytes envelope: missing data'
147
+ _ERR_BYTES_INVALID_BASE64 = 'Invalid bytes envelope: invalid base64'
148
+
149
+
150
+ def _deserialize_bytes_envelope(value) -> object:
151
+ """
152
+ Decode base64-encoded bytes envelopes from JS into Python bytes.
153
+
154
+ Supported shapes:
155
+ - { "__tywrap_bytes__": true, "b64": "..." } (JS SafeCodec.encodeRequest)
156
+ - { "__type__": "bytes", "encoding": "base64", "data": "..." } (legacy/compat)
157
+
158
+ Why: TS SafeCodec encodes Uint8Array/ArrayBuffer as base64 objects, but
159
+ Python handlers expect real bytes/bytearray to preserve behavior (e.g., len()).
160
+ """
161
+ if not isinstance(value, dict):
162
+ return _NO_DESERIALIZE
163
+
164
+ if value.get('__tywrap_bytes__') is True:
165
+ b64 = value.get('b64')
166
+ if not isinstance(b64, str):
167
+ raise ProtocolError(_ERR_BYTES_MISSING_B64)
168
+ try:
169
+ return base64.b64decode(b64, validate=True)
170
+ except Exception as exc:
171
+ raise ProtocolError(_ERR_BYTES_INVALID_BASE64) from exc
172
+
173
+ if value.get('__type__') == 'bytes' and value.get('encoding') == 'base64':
174
+ data = value.get('data')
175
+ if not isinstance(data, str):
176
+ raise ProtocolError(_ERR_BYTES_MISSING_DATA)
177
+ try:
178
+ return base64.b64decode(data, validate=True)
179
+ except Exception as exc:
180
+ raise ProtocolError(_ERR_BYTES_INVALID_BASE64) from exc
181
+
182
+ return _NO_DESERIALIZE
183
+
184
+
185
+ def deserialize(value):
186
+ """
187
+ Recursively deserialize request values into Python-native types.
188
+
189
+ Why: requests are JSON-only; we need a small set of explicit decoders
190
+ (currently bytes) to restore Python semantics at the boundary.
191
+ """
192
+ decoded = _deserialize_bytes_envelope(value)
193
+ if decoded is not _NO_DESERIALIZE:
194
+ return decoded
195
+
196
+ if isinstance(value, list):
197
+ return [deserialize(item) for item in value]
198
+ if isinstance(value, dict):
199
+ # Preserve dict shape while decoding nested values.
200
+ return {k: deserialize(v) for k, v in value.items()}
201
+ return value
202
+
203
+
141
204
  _PROTOCOL_DIAGNOSTIC_MAX = 2048
142
205
 
143
206
 
@@ -593,10 +656,13 @@ def serialize_pydantic(obj):
593
656
  if not callable(model_dump):
594
657
  return _NO_PYDANTIC
595
658
  try:
596
- return model_dump(by_alias=True, mode='json')
597
- except TypeError:
598
- # Older Pydantic versions may not support `mode=...`.
599
- return model_dump(by_alias=True)
659
+ try:
660
+ return model_dump(by_alias=True, mode='json')
661
+ except TypeError:
662
+ # Older Pydantic versions may not support `mode=...`.
663
+ return model_dump(by_alias=True)
664
+ except Exception as exc:
665
+ raise RuntimeError(f'model_dump failed: {exc}') from exc
600
666
 
601
667
  def serialize(obj):
602
668
  if is_numpy_array(obj):
@@ -641,8 +707,8 @@ def serialize_stdlib(obj):
641
707
  def handle_call(params):
642
708
  module_name = require_str(params, 'module')
643
709
  function_name = require_str(params, 'functionName')
644
- args = coerce_list(params.get('args'), 'args')
645
- kwargs = coerce_dict(params.get('kwargs'), 'kwargs')
710
+ args = deserialize(coerce_list(params.get('args'), 'args'))
711
+ kwargs = deserialize(coerce_dict(params.get('kwargs'), 'kwargs'))
646
712
  mod = importlib.import_module(module_name)
647
713
  func = getattr(mod, function_name)
648
714
  res = func(*args, **kwargs)
@@ -652,8 +718,8 @@ def handle_call(params):
652
718
  def handle_instantiate(params):
653
719
  module_name = require_str(params, 'module')
654
720
  class_name = require_str(params, 'className')
655
- args = coerce_list(params.get('args'), 'args')
656
- kwargs = coerce_dict(params.get('kwargs'), 'kwargs')
721
+ args = deserialize(coerce_list(params.get('args'), 'args'))
722
+ kwargs = deserialize(coerce_dict(params.get('kwargs'), 'kwargs'))
657
723
  mod = importlib.import_module(module_name)
658
724
  cls = getattr(mod, class_name)
659
725
  obj = cls(*args, **kwargs)
@@ -665,10 +731,10 @@ def handle_instantiate(params):
665
731
  def handle_call_method(params):
666
732
  handle_id = require_str(params, 'handle')
667
733
  method_name = require_str(params, 'methodName')
668
- args = coerce_list(params.get('args'), 'args')
669
- kwargs = coerce_dict(params.get('kwargs'), 'kwargs')
734
+ args = deserialize(coerce_list(params.get('args'), 'args'))
735
+ kwargs = deserialize(coerce_dict(params.get('kwargs'), 'kwargs'))
670
736
  if handle_id not in instances:
671
- raise KeyError(f'Unknown handle: {handle_id}')
737
+ raise InstanceHandleError(f'Unknown instance handle: {handle_id}')
672
738
  obj = instances[handle_id]
673
739
  func = getattr(obj, method_name)
674
740
  res = func(*args, **kwargs)
@@ -678,7 +744,7 @@ def handle_call_method(params):
678
744
  def handle_dispose_instance(params):
679
745
  handle_id = require_str(params, 'handle')
680
746
  if handle_id not in instances:
681
- raise KeyError(f'Unknown handle: {handle_id}')
747
+ return False
682
748
  del instances[handle_id]
683
749
  return True
684
750
 
package/src/cli.ts CHANGED
@@ -192,6 +192,11 @@ async function main(): Promise<void> {
192
192
  type: 'boolean',
193
193
  describe: 'Enable debug logging',
194
194
  })
195
+ .option('verbose', {
196
+ alias: 'v',
197
+ type: 'boolean',
198
+ describe: 'Alias for --debug',
199
+ })
195
200
  .option('fail-on-warn', {
196
201
  type: 'boolean',
197
202
  default: false,
@@ -215,6 +220,7 @@ async function main(): Promise<void> {
215
220
  sourceMap?: boolean;
216
221
  useCache?: boolean;
217
222
  debug?: boolean;
223
+ verbose?: boolean;
218
224
  failOnWarn: boolean;
219
225
  check: boolean;
220
226
  }>
@@ -253,7 +259,9 @@ async function main(): Promise<void> {
253
259
  };
254
260
  }
255
261
 
256
- if (typeof argv.debug === 'boolean') {
262
+ if (argv.verbose === true) {
263
+ overrides.debug = true;
264
+ } else if (typeof argv.debug === 'boolean') {
257
265
  overrides.debug = argv.debug;
258
266
  }
259
267
 
@@ -279,11 +287,27 @@ async function main(): Promise<void> {
279
287
  }
280
288
 
281
289
  const res = await generate(options, { check: argv.check });
290
+ const warnings = res.warnings ?? [];
291
+ const moduleCount = Object.keys(options.pythonModules ?? {}).length;
292
+
293
+ const emitWarnings = (): void => {
294
+ if (warnings.length === 0) {
295
+ return;
296
+ }
297
+ process.stderr.write(`Warnings (count ${warnings.length}):\n`);
298
+ for (const w of warnings) {
299
+ process.stderr.write(`- ${w}\n`);
300
+ }
301
+ process.stderr.write('\n');
302
+ };
303
+
282
304
  if (argv.check) {
283
305
  const outOfDate = res.outOfDate ?? [];
284
306
  if (outOfDate.length === 0) {
307
+ emitWarnings();
285
308
  process.stdout.write('Generated wrappers are up to date.\n');
286
309
  } else {
310
+ emitWarnings();
287
311
  process.stderr.write('Generated wrappers are out of date:\n');
288
312
  for (const file of outOfDate) {
289
313
  process.stderr.write(`- ${file}\n`);
@@ -294,7 +318,42 @@ async function main(): Promise<void> {
294
318
  }
295
319
  }
296
320
  } else {
297
- process.stdout.write(`Generated: ${res.written.join(', ')}\n`);
321
+ emitWarnings();
322
+
323
+ const written = res.written ?? [];
324
+ if (written.length === 0) {
325
+ process.stderr.write(
326
+ `No files were generated. This usually means Python failed to import one or more modules.\n`
327
+ );
328
+ const modulesConfigured = Object.keys(options.pythonModules ?? {});
329
+ if (modulesConfigured.length > 0) {
330
+ process.stderr.write(`Modules: ${modulesConfigured.join(', ')}\n`);
331
+ }
332
+
333
+ const pythonImportPath = options.pythonImportPath ?? [];
334
+ if (pythonImportPath.length > 0) {
335
+ process.stderr.write(`pythonImportPath: ${pythonImportPath.join(', ')}\n`);
336
+ } else {
337
+ process.stderr.write(
338
+ `Tip: set "pythonImportPath" in your tywrap config to include your local module directories.\n`
339
+ );
340
+ }
341
+
342
+ const pyPath = process.env.PYTHONPATH;
343
+ if (typeof pyPath === 'string' && pyPath.trim().length > 0) {
344
+ process.stderr.write(`PYTHONPATH: ${pyPath}\n`);
345
+ }
346
+
347
+ process.stderr.write(`Tip: re-run with --debug for more context.\n`);
348
+ process.exit(1);
349
+ }
350
+
351
+ process.stdout.write(
352
+ `Generated: ${written.length} files from ${moduleCount} modules (warnings: ${warnings.length}).\n`
353
+ );
354
+ for (const file of written) {
355
+ process.stdout.write(`- ${file}\n`);
356
+ }
298
357
  }
299
358
  if (argv.failOnWarn && res.warnings.length > 0) {
300
359
  log.error(
@@ -7,7 +7,8 @@
7
7
 
8
8
  import { randomUUID } from 'node:crypto';
9
9
  import { existsSync } from 'node:fs';
10
- import { readFile, rm, writeFile } from 'node:fs/promises';
10
+ import { tmpdir } from 'node:os';
11
+ import { readFile, rm, writeFile, mkdtemp, symlink } from 'node:fs/promises';
11
12
  import { createRequire } from 'node:module';
12
13
  import { dirname, extname, resolve } from 'node:path';
13
14
  import { pathToFileURL } from 'node:url';
@@ -20,11 +21,6 @@ import type {
20
21
  } from '../types/index.js';
21
22
  import { getDefaultPythonPath } from '../utils/python.js';
22
23
 
23
- /**
24
- * Public configuration type. Currently identical to {@link TywrapOptions}.
25
- */
26
- export type TywrapConfig = TywrapOptions;
27
-
28
24
  type DeepPartial<T> = {
29
25
  [K in keyof T]?: T[K] extends Array<infer U>
30
26
  ? Array<U>
@@ -33,11 +29,22 @@ type DeepPartial<T> = {
33
29
  : T[K];
34
30
  };
35
31
 
32
+ /**
33
+ * User-authored configuration shape accepted by defineConfig() and config files.
34
+ */
35
+ export type TywrapConfig = DeepPartial<TywrapOptions>;
36
+
37
+ /**
38
+ * Fully resolved configuration shape returned by createConfig() and resolveConfig().
39
+ */
40
+ export type ResolvedTywrapConfig = TywrapOptions;
41
+
36
42
  /**
37
43
  * Default configuration values used when options are not supplied.
38
44
  */
39
- const DEFAULT_CONFIG: TywrapConfig = {
45
+ const DEFAULT_CONFIG: ResolvedTywrapConfig = {
40
46
  pythonModules: {},
47
+ pythonImportPath: [],
41
48
  output: { dir: './generated', format: 'esm', declaration: false, sourceMap: false },
42
49
  runtime: { node: { pythonPath: getDefaultPythonPath(), timeout: 30000 } },
43
50
  performance: { caching: false, batching: false, compression: 'none' },
@@ -85,9 +92,10 @@ function safeExists(path: string): boolean {
85
92
  /**
86
93
  * Validate configuration values and throw user-friendly errors when invalid.
87
94
  */
88
- function validateConfig(config: TywrapConfig): void {
95
+ function validateConfig(config: ResolvedTywrapConfig): void {
89
96
  const allowedTopLevel = new Set([
90
97
  'pythonModules',
98
+ 'pythonImportPath',
91
99
  'output',
92
100
  'runtime',
93
101
  'performance',
@@ -105,6 +113,15 @@ function validateConfig(config: TywrapConfig): void {
105
113
  if (typeof out.dir !== 'string') {
106
114
  throw new Error('output.dir must be a string');
107
115
  }
116
+
117
+ if (config.pythonImportPath !== undefined) {
118
+ if (
119
+ !Array.isArray(config.pythonImportPath) ||
120
+ config.pythonImportPath.some(p => typeof p !== 'string')
121
+ ) {
122
+ throw new Error('pythonImportPath must be an array of strings');
123
+ }
124
+ }
108
125
  if (!['esm', 'cjs', 'both'].includes(out.format)) {
109
126
  throw new Error('output.format must be one of "esm", "cjs" or "both"');
110
127
  }
@@ -183,7 +200,7 @@ function validateConfig(config: TywrapConfig): void {
183
200
  *
184
201
  * @param overrides CLI or programmatic overrides
185
202
  */
186
- export function createConfig(overrides: DeepPartial<TywrapOptions> = {}): TywrapConfig {
203
+ export function createConfig(overrides: DeepPartial<TywrapOptions> = {}): ResolvedTywrapConfig {
187
204
  const merged = merge(DEFAULT_CONFIG, overrides);
188
205
  validateConfig(merged);
189
206
  return merged;
@@ -200,7 +217,9 @@ export interface ResolveConfigOptions {
200
217
  * Resolve configuration by loading a config file (JSON/JS/TS) and merging
201
218
  * defaults with any overrides.
202
219
  */
203
- export async function resolveConfig(options: ResolveConfigOptions = {}): Promise<TywrapConfig> {
220
+ export async function resolveConfig(
221
+ options: ResolveConfigOptions = {}
222
+ ): Promise<ResolvedTywrapConfig> {
204
223
  const cwd = options.cwd ?? process.cwd();
205
224
  const overrides = options.overrides ?? {};
206
225
  const configFile = options.configFile ? resolve(cwd, options.configFile) : undefined;
@@ -272,6 +291,20 @@ export async function loadConfigFile(configFile: string): Promise<Partial<Tywrap
272
291
  fileName: resolved,
273
292
  });
274
293
 
294
+ let transpiledOutput = output.outputText;
295
+ if (!emitCommonJs) {
296
+ try {
297
+ // Preserve support for `import { defineConfig } from 'tywrap'` when ESM config
298
+ // is evaluated from an OS temp directory outside the package scope.
299
+ const tywrapEntryHref = await import.meta.resolve('tywrap');
300
+ transpiledOutput = transpiledOutput
301
+ .replaceAll("'tywrap'", `'${tywrapEntryHref}'`)
302
+ .replaceAll('\"tywrap\"', `\"${tywrapEntryHref}\"`);
303
+ } catch {
304
+ // Best-effort: leave source as-is when tywrap cannot be resolved.
305
+ }
306
+ }
307
+
275
308
  if (emitCommonJs) {
276
309
  // Why: `.cts` is explicitly CommonJS. We evaluate the transpiled output in-memory using
277
310
  // Node's Module internals (`Module._compile` / `_nodeModulePaths`) to avoid writing an extra
@@ -309,18 +342,31 @@ export async function loadConfigFile(configFile: string): Promise<Partial<Tywrap
309
342
  return ensureConfigObject(loaded ?? {}, resolved);
310
343
  }
311
344
 
312
- // Why: Node can't import ESM from a string without a custom loader. We write the transpiled
313
- // output to a temporary `.mjs` file next to the source config so relative imports and Node
314
- // resolution behave naturally, then clean it up immediately after loading.
315
- const tmpPath = resolve(dirname(resolved), `.tywrap.config.${randomUUID()}.mjs`);
345
+ // Why: Node can't import ESM from a string without a custom loader. We write transpiled
346
+ // output to a temporary `.mjs` file under the OS temp directory (not next to user config),
347
+ // then clean up both file and temporary directory after loading.
348
+ const tempDir = await mkdtemp(resolve(tmpdir(), 'tywrap-config-'));
349
+ const tmpPath = resolve(tempDir, `.tywrap.config.${randomUUID()}.mjs`);
316
350
  try {
317
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- temp path is derived from config location
318
- await writeFile(tmpPath, output.outputText, 'utf-8');
351
+ const localNodeModules = resolve(process.cwd(), 'node_modules');
352
+ if (safeExists(localNodeModules)) {
353
+ const tempNodeModules = resolve(tempDir, 'node_modules');
354
+ try {
355
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- temp path is derived from OS temp directory
356
+ await symlink(localNodeModules, tempNodeModules, 'dir');
357
+ } catch {
358
+ // Best-effort only; regular resolution may still succeed without a symlink.
359
+ }
360
+ }
361
+
362
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- temp path is derived from OS temp directory
363
+ await writeFile(tmpPath, transpiledOutput, 'utf-8');
319
364
  const mod = (await import(pathToFileURL(tmpPath).href)) as Record<string, unknown>;
320
365
  const loaded = mod.default ?? mod;
321
366
  return ensureConfigObject(loaded ?? {}, resolved);
322
367
  } finally {
323
368
  await rm(tmpPath, { force: true });
369
+ await rm(tempDir, { recursive: true, force: true });
324
370
  }
325
371
  }
326
372
 
@@ -335,6 +381,6 @@ async function safeReadFileAsync(path: string): Promise<string> {
335
381
  /**
336
382
  * Type helper for authoring tywrap configs with full type inference.
337
383
  */
338
- export function defineConfig(config: TywrapConfig): TywrapConfig {
384
+ export function defineConfig<T extends TywrapConfig>(config: T): T {
339
385
  return config;
340
386
  }