pynect 0.0.0-stage → 0.2.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 (177) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +478 -2
  3. package/SECURITY.md +34 -0
  4. package/binding.gyp +60 -0
  5. package/dist/cli/codegen.d.ts +3 -0
  6. package/dist/cli/codegen.d.ts.map +1 -0
  7. package/dist/cli/codegen.js +543 -0
  8. package/dist/cli/codegen.js.map +1 -0
  9. package/dist/cli/sync.d.ts +3 -0
  10. package/dist/cli/sync.d.ts.map +1 -0
  11. package/dist/cli/sync.js +48 -0
  12. package/dist/cli/sync.js.map +1 -0
  13. package/dist/config/project.d.ts +57 -0
  14. package/dist/config/project.d.ts.map +1 -0
  15. package/dist/config/project.js +176 -0
  16. package/dist/config/project.js.map +1 -0
  17. package/dist/core/IsolatedWorker.d.ts +39 -0
  18. package/dist/core/IsolatedWorker.d.ts.map +1 -0
  19. package/dist/core/IsolatedWorker.js +178 -0
  20. package/dist/core/IsolatedWorker.js.map +1 -0
  21. package/dist/core/PyCallable.d.ts +67 -0
  22. package/dist/core/PyCallable.d.ts.map +1 -0
  23. package/dist/core/PyCallable.js +104 -0
  24. package/dist/core/PyCallable.js.map +1 -0
  25. package/dist/core/PyContext.d.ts +76 -0
  26. package/dist/core/PyContext.d.ts.map +1 -0
  27. package/dist/core/PyContext.js +239 -0
  28. package/dist/core/PyContext.js.map +1 -0
  29. package/dist/core/PyIterator.d.ts +84 -0
  30. package/dist/core/PyIterator.d.ts.map +1 -0
  31. package/dist/core/PyIterator.js +243 -0
  32. package/dist/core/PyIterator.js.map +1 -0
  33. package/dist/core/PyModule.d.ts +53 -0
  34. package/dist/core/PyModule.d.ts.map +1 -0
  35. package/dist/core/PyModule.js +162 -0
  36. package/dist/core/PyModule.js.map +1 -0
  37. package/dist/core/PyProxy.d.ts +75 -0
  38. package/dist/core/PyProxy.d.ts.map +1 -0
  39. package/dist/core/PyProxy.js +563 -0
  40. package/dist/core/PyProxy.js.map +1 -0
  41. package/dist/core/PyRuntime.d.ts +112 -0
  42. package/dist/core/PyRuntime.d.ts.map +1 -0
  43. package/dist/core/PyRuntime.js +546 -0
  44. package/dist/core/PyRuntime.js.map +1 -0
  45. package/dist/env/PackageInstaller.d.ts +232 -0
  46. package/dist/env/PackageInstaller.d.ts.map +1 -0
  47. package/dist/env/PackageInstaller.js +628 -0
  48. package/dist/env/PackageInstaller.js.map +1 -0
  49. package/dist/env/ProjectEnvironment.d.ts +63 -0
  50. package/dist/env/ProjectEnvironment.d.ts.map +1 -0
  51. package/dist/env/ProjectEnvironment.js +379 -0
  52. package/dist/env/ProjectEnvironment.js.map +1 -0
  53. package/dist/env/PyfigAdapter.d.ts +32 -0
  54. package/dist/env/PyfigAdapter.d.ts.map +1 -0
  55. package/dist/env/PyfigAdapter.js +10 -0
  56. package/dist/env/PyfigAdapter.js.map +1 -0
  57. package/dist/env/PythonDetector.d.ts +48 -0
  58. package/dist/env/PythonDetector.d.ts.map +1 -0
  59. package/dist/env/PythonDetector.js +182 -0
  60. package/dist/env/PythonDetector.js.map +1 -0
  61. package/dist/env/PythonProvisioner.d.ts +16 -0
  62. package/dist/env/PythonProvisioner.d.ts.map +1 -0
  63. package/dist/env/PythonProvisioner.js +42 -0
  64. package/dist/env/PythonProvisioner.js.map +1 -0
  65. package/dist/env/VenvManager.d.ts +55 -0
  66. package/dist/env/VenvManager.d.ts.map +1 -0
  67. package/dist/env/VenvManager.js +153 -0
  68. package/dist/env/VenvManager.js.map +1 -0
  69. package/dist/env/executables.d.ts +3 -0
  70. package/dist/env/executables.d.ts.map +1 -0
  71. package/dist/env/executables.js +14 -0
  72. package/dist/env/executables.js.map +1 -0
  73. package/dist/index.d.ts +182 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +393 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/native/NativeAddonLoader.d.ts +11 -0
  78. package/dist/native/NativeAddonLoader.d.ts.map +1 -0
  79. package/dist/native/NativeAddonLoader.js +75 -0
  80. package/dist/native/NativeAddonLoader.js.map +1 -0
  81. package/dist/plugins/Plugin.interface.d.ts +41 -0
  82. package/dist/plugins/Plugin.interface.d.ts.map +1 -0
  83. package/dist/plugins/Plugin.interface.js +12 -0
  84. package/dist/plugins/Plugin.interface.js.map +1 -0
  85. package/dist/plugins/PluginManager.d.ts +26 -0
  86. package/dist/plugins/PluginManager.d.ts.map +1 -0
  87. package/dist/plugins/PluginManager.js +174 -0
  88. package/dist/plugins/PluginManager.js.map +1 -0
  89. package/dist/plugins/builtin/NumpyPlugin.d.ts +17 -0
  90. package/dist/plugins/builtin/NumpyPlugin.d.ts.map +1 -0
  91. package/dist/plugins/builtin/NumpyPlugin.js +41 -0
  92. package/dist/plugins/builtin/NumpyPlugin.js.map +1 -0
  93. package/dist/plugins/builtin/PandasPlugin.d.ts +19 -0
  94. package/dist/plugins/builtin/PandasPlugin.d.ts.map +1 -0
  95. package/dist/plugins/builtin/PandasPlugin.js +57 -0
  96. package/dist/plugins/builtin/PandasPlugin.js.map +1 -0
  97. package/dist/plugins/builtin/TorchPlugin.d.ts +23 -0
  98. package/dist/plugins/builtin/TorchPlugin.d.ts.map +1 -0
  99. package/dist/plugins/builtin/TorchPlugin.js +50 -0
  100. package/dist/plugins/builtin/TorchPlugin.js.map +1 -0
  101. package/dist/plugins/index.d.ts +7 -0
  102. package/dist/plugins/index.d.ts.map +1 -0
  103. package/dist/plugins/index.js +12 -0
  104. package/dist/plugins/index.js.map +1 -0
  105. package/dist/serialization/DataFrameBridge.d.ts +141 -0
  106. package/dist/serialization/DataFrameBridge.d.ts.map +1 -0
  107. package/dist/serialization/DataFrameBridge.js +355 -0
  108. package/dist/serialization/DataFrameBridge.js.map +1 -0
  109. package/dist/serialization/MsgPackSerializer.d.ts +45 -0
  110. package/dist/serialization/MsgPackSerializer.d.ts.map +1 -0
  111. package/dist/serialization/MsgPackSerializer.js +242 -0
  112. package/dist/serialization/MsgPackSerializer.js.map +1 -0
  113. package/dist/serialization/NumpyBridge.d.ts +96 -0
  114. package/dist/serialization/NumpyBridge.d.ts.map +1 -0
  115. package/dist/serialization/NumpyBridge.js +323 -0
  116. package/dist/serialization/NumpyBridge.js.map +1 -0
  117. package/dist/serialization/Serializer.d.ts +78 -0
  118. package/dist/serialization/Serializer.d.ts.map +1 -0
  119. package/dist/serialization/Serializer.js +281 -0
  120. package/dist/serialization/Serializer.js.map +1 -0
  121. package/dist/types/addon.d.ts +131 -0
  122. package/dist/types/addon.d.ts.map +1 -0
  123. package/dist/types/addon.js +32 -0
  124. package/dist/types/addon.js.map +1 -0
  125. package/dist/types/config.d.ts +233 -0
  126. package/dist/types/config.d.ts.map +1 -0
  127. package/dist/types/config.js +60 -0
  128. package/dist/types/config.js.map +1 -0
  129. package/dist/types/index.d.ts +10 -0
  130. package/dist/types/index.d.ts.map +1 -0
  131. package/dist/types/index.js +12 -0
  132. package/dist/types/index.js.map +1 -0
  133. package/dist/types/python.d.ts +235 -0
  134. package/dist/types/python.d.ts.map +1 -0
  135. package/dist/types/python.js +7 -0
  136. package/dist/types/python.js.map +1 -0
  137. package/dist/utils/ErrorTranslator.d.ts +83 -0
  138. package/dist/utils/ErrorTranslator.d.ts.map +1 -0
  139. package/dist/utils/ErrorTranslator.js +210 -0
  140. package/dist/utils/ErrorTranslator.js.map +1 -0
  141. package/dist/utils/Locking.d.ts +3 -0
  142. package/dist/utils/Locking.d.ts.map +1 -0
  143. package/dist/utils/Locking.js +10 -0
  144. package/dist/utils/Locking.js.map +1 -0
  145. package/dist/utils/Logger.d.ts +27 -0
  146. package/dist/utils/Logger.d.ts.map +1 -0
  147. package/dist/utils/Logger.js +115 -0
  148. package/dist/utils/Logger.js.map +1 -0
  149. package/dist/utils/MemoryMonitor.d.ts +43 -0
  150. package/dist/utils/MemoryMonitor.d.ts.map +1 -0
  151. package/dist/utils/MemoryMonitor.js +143 -0
  152. package/dist/utils/MemoryMonitor.js.map +1 -0
  153. package/package.json +114 -4
  154. package/python/ast_inspector.py +248 -0
  155. package/python/error_handler.py +432 -0
  156. package/python/isolated_worker.py +94 -0
  157. package/python/pynect_dispatcher.py +382 -0
  158. package/python/pynect_runtime.py +574 -0
  159. package/python/serializer.py +373 -0
  160. package/python/type_inspector.py +315 -0
  161. package/scripts/build-native.js +50 -0
  162. package/scripts/cli.js +21 -0
  163. package/scripts/ensure-native.js +85 -0
  164. package/scripts/postinstall.js +40 -0
  165. package/scripts/pyfig.js +113 -0
  166. package/scripts/python-provisioner.js +23 -0
  167. package/scripts/smoke-python-boundary.js +103 -0
  168. package/src/native/NativeAddonLoader.ts +98 -0
  169. package/src/native/gil_guard.cpp +25 -0
  170. package/src/native/gil_guard.h +174 -0
  171. package/src/native/pynect_addon.cpp +942 -0
  172. package/src/native/python_bridge.cpp +904 -0
  173. package/src/native/python_bridge.h +263 -0
  174. package/src/native/thread_pool.cpp +375 -0
  175. package/src/native/thread_pool.h +185 -0
  176. package/src/native/type_converter.cpp +906 -0
  177. package/src/native/type_converter.h +271 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumpyBridge.js","sourceRoot":"","sources":["../../src/serialization/NumpyBridge.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAGH,4CAAyC;AAEzC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,aAAa,CAAC,CAAC;AAEzC,+DAA+D;AAE/D,IAAY,cAcX;AAdD,WAAY,cAAc;IACxB,mDAAY,CAAA;IACZ,mDAAY,CAAA;IACZ,qDAAY,CAAA;IACZ,qDAAY,CAAA;IACZ,qDAAY,CAAA;IACZ,qDAAY,CAAA;IACZ,uDAAY,CAAA;IACZ,uDAAY,CAAA;IACZ,uDAAY,CAAA;IACZ,yDAAY,CAAA;IACZ,0DAAY,CAAA;IACZ,8DAAe,CAAA;IACf,gEAAe,CAAA;AACjB,CAAC,EAdW,cAAc,8BAAd,cAAc,QAczB;AAoBD,8CAA8C;AAC9C,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,iCAAiC;AAEjC,MAAM,oBAAoB,GAAiD;IACzE,IAAI,EAAQ,cAAc,CAAC,IAAI;IAC/B,IAAI,EAAQ,cAAc,CAAC,IAAI;IAC/B,KAAK,EAAO,cAAc,CAAC,KAAK;IAChC,KAAK,EAAO,cAAc,CAAC,KAAK;IAChC,KAAK,EAAO,cAAc,CAAC,KAAK;IAChC,KAAK,EAAO,cAAc,CAAC,KAAK;IAChC,MAAM,EAAM,cAAc,CAAC,MAAM;IACjC,MAAM,EAAM,cAAc,CAAC,MAAM;IACjC,MAAM,EAAM,cAAc,CAAC,MAAM;IACjC,OAAO,EAAK,cAAc,CAAC,OAAO;IAClC,OAAO,EAAK,cAAc,CAAC,OAAO;IAClC,SAAS,EAAG,cAAc,CAAC,SAAS;IACpC,UAAU,EAAE,cAAc,CAAC,UAAU;CAC7B,CAAC;AAEX,uCAAuC;AAEvC,MAAM,sBAAsB,GAA6C;IACvE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAQ,CAAC;IAC9B,CAAC,cAAc,CAAC,IAAI,CAAC,EAAQ,CAAC;IAC9B,CAAC,cAAc,CAAC,KAAK,CAAC,EAAO,CAAC;IAC9B,CAAC,cAAc,CAAC,KAAK,CAAC,EAAO,CAAC;IAC9B,CAAC,cAAc,CAAC,KAAK,CAAC,EAAO,CAAC;IAC9B,CAAC,cAAc,CAAC,KAAK,CAAC,EAAO,CAAC;IAC9B,CAAC,cAAc,CAAC,MAAM,CAAC,EAAM,CAAC;IAC9B,CAAC,cAAc,CAAC,MAAM,CAAC,EAAM,CAAC;IAC9B,CAAC,cAAc,CAAC,MAAM,CAAC,EAAM,CAAC;IAC9B,CAAC,cAAc,CAAC,OAAO,CAAC,EAAK,CAAC;IAC9B,CAAC,cAAc,CAAC,OAAO,CAAC,EAAK,CAAC;IAC9B,CAAC,cAAc,CAAC,SAAS,CAAC,EAAG,CAAC;IAC9B,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE;CACvB,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,MAAa,WAAW;IACL,UAAU,CAAU;IACpB,gBAAgB,CAAS;IAE1C,YAAY,UAA8B,EAAE;QAC1C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,oBAAoB,IAAI,KAAK,CAAC;QACxD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,0BAA0B,IAAI,SAAS,CAAC,CAAC,OAAO;IAClF,CAAC;IAED,mCAAmC;IAEnC;;OAEG;IACH,WAAW,CAAC,EAAmB;QAC7B,IAAI,EAAE,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QACjD,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,IAAI,EAAc,CAAC;YACnB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,wBAAwB;gBACxB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC3C,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YAClE,CAAC;iBAAM,IAAI,OAAO,YAAY,UAAU,EAAE,CAAC;gBACzC,EAAE,GAAG,OAAO,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,EAAE,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;gBACzD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,mCAAmC;IAEnC;;;;;;OAMG;IACH,mBAAmB,CACjB,GAAoB,EACpB,KAAuD,EACvD,KAAgB;QAEhB,MAAM,QAAQ,GAAe,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAe,CAAC;QAC7F,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC;QAC3E,MAAM,QAAQ,GAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,IAAI,GAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;QACvD,MAAM,IAAI,GAAQ,IAAI,CAAC,MAAM,CAAC;QAC9B,MAAM,KAAK,GAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;QAEnC,MAAM,UAAU,GAAG,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC;QACvD,MAAM,MAAM,GAAO,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,EAAE,GAAW,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAE1C,eAAe;QACf,EAAE,CAAC,SAAS,CAAC,CAAC,EAAG,IAAI,EAAM,IAAI,CAAC,CAAC;QACjC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAG,SAAS,EAAE,IAAI,CAAC,CAAC;QAClC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAG,QAAQ,EAAG,IAAI,CAAC,CAAC;QAClC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAM,IAAI,CAAC,CAAC;QAElC,cAAc;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;QAED,aAAa;QACb,MAAM,KAAK,GAAG,IAAI,UAAU,CACzB,GAAG,CAAC,MAAsB,EAC3B,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,UAAU,CACf,CAAC;QACF,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QAEvC,OAAO;YACL,MAAM,EAAE,aAAiC;YACzC,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE;gBACR,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,IAAI;gBACX,QAAQ;gBACR,IAAI,EAAG,SAAS;gBAChB,MAAM,EAAE,KAAK;aACd;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAoB,SAAS;QAC1C,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,UAAU;IAEF,aAAa,CAAC,EAAc;QAClC,MAAM,EAAE,GAAS,IAAI,QAAQ,CAAE,EAAE,CAAC,MAAsB,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;QACxF,MAAM,IAAI,GAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAG,IAAI,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAG,IAAI,CAAmB,CAAC;QAC3D,MAAM,QAAQ,GAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAG,IAAI,CAAC,CAAC;QACzC,MAAM,KAAK,GAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAEzC,aAAa;QACb,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,UAAU,GAAG,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;QAEpC,IAAI,EAAE,CAAC,MAAM,GAAG,UAAU,GAAG,UAAU,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,iCAAiC;gBACjC,YAAY,UAAU,GAAG,UAAU,eAAe,EAAE,CAAC,MAAM,EAAE,CAC9D,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAI,EAAE,CAAC,MAAsB,CAAC;QAC7C,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC;QAEjD,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACxF,CAAC;IAEO,gBAAgB,CACtB,IAAoB,EACpB,SAAsB,EACtB,UAAkB,EAClB,KAAa,EACb,QAAkB,EAAE,EACpB,OAAe,CAAC;QAEhB,MAAM,SAAS,GACb,IAAI,CAAC,UAAU;YACf,OAAO,iBAAiB,KAAK,WAAW;YACxC,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAEhE,8DAA8D;QAC9D,MAAM,YAAY,GAAG,CAAC,SAAS;YAC7B,CAAC,CAAC,IAAI,iBAAiB,CAAC,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC7D,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAgB,CAAC;QAE1E,YAAY;QACZ,MAAM,GAAG,GAAI,IAAI,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QACzF,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEd,IAAI,IAAqB,CAAC;QAC1B,IAAI,QAAgB,CAAC;QACrB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,cAAc,CAAC,IAAI,CAAC;YACzB,KAAK,cAAc,CAAC,KAAK;gBAAI,IAAI,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;gBAAG,QAAQ,GAAG,IAAI,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;gBAAC,MAAM;YACtI,KAAK,cAAc,CAAC,IAAI;gBAAK,IAAI,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;gBAAI,QAAQ,GAAG,MAAM,CAAC;gBAAC,MAAM;YAC7F,KAAK,cAAc,CAAC,KAAK;gBAAI,IAAI,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;gBAAG,QAAQ,GAAG,OAAO,CAAC;gBAAC,MAAM;YAC9F,KAAK,cAAc,CAAC,KAAK;gBAAI,IAAI,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;gBAAG,QAAQ,GAAG,OAAO,CAAC;gBAAC,MAAM;YAC9F,KAAK,cAAc,CAAC,KAAK;gBAAI,IAAI,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;gBAAC,QAAQ,GAAG,OAAO,CAAC;gBAAC,MAAM;YAC/F,KAAK,cAAc,CAAC,MAAM;gBAAG,IAAI,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;gBAAE,QAAQ,GAAG,QAAQ,CAAC;gBAAC,MAAM;YAC/F,KAAK,cAAc,CAAC,MAAM;gBAAG,IAAI,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;gBAAE,QAAQ,GAAG,QAAQ,CAAC;gBAAC,MAAM;YAC/F,KAAK,cAAc,CAAC,MAAM;gBAAG,IAAI,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;gBAAC,QAAQ,GAAG,QAAQ,CAAC;gBAAC,MAAM;YACjG,KAAK,cAAc,CAAC,OAAO;gBAAE,IAAI,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;gBAAC,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAChG,KAAK,cAAc,CAAC,SAAS;gBAC3B,IAAI,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;gBAAC,QAAQ,GAAG,WAAW,CAAC;gBAAC,MAAM;YACvE,KAAK,cAAc,CAAC,UAAU;gBAC5B,IAAI,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;gBAAC,QAAQ,GAAG,YAAY,CAAC;gBAAC,MAAM;YACxE,KAAK,cAAc,CAAC,OAAO,CAAC;YAC5B;gBACE,IAAI,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;gBAAC,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;QACvE,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,iBAAiB;IAEjB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,GAAoB;QACrC,IAAI,KAAiB,CAAC;QACtB,IAAI,GAAG,YAAY,YAAY,EAAI,CAAC;YAAC,KAAK,GAAG,SAAS,CAAC;QAAC,CAAC;aACpD,IAAI,GAAG,YAAY,YAAY,EAAI,CAAC;YAAC,KAAK,GAAG,SAAS,CAAC;QAAC,CAAC;aACzD,IAAI,GAAG,YAAY,SAAS,EAAO,CAAC;YAAC,KAAK,GAAG,MAAM,CAAC;QAAC,CAAC;aACtD,IAAI,GAAG,YAAY,UAAU,EAAM,CAAC;YAAC,KAAK,GAAG,OAAO,CAAC;QAAC,CAAC;aACvD,IAAI,GAAG,YAAY,UAAU,EAAM,CAAC;YAAC,KAAK,GAAG,OAAO,CAAC;QAAC,CAAC;aACvD,IAAI,GAAG,YAAY,aAAa,EAAG,CAAC;YAAC,KAAK,GAAG,OAAO,CAAC;QAAC,CAAC;aACvD,IAAI,GAAG,YAAY,UAAU,EAAM,CAAC;YAAC,KAAK,GAAG,OAAO,CAAC;QAAC,CAAC;aACvD,IAAI,GAAG,YAAY,WAAW,EAAK,CAAC;YAAC,KAAK,GAAG,QAAQ,CAAC;QAAC,CAAC;aACxD,IAAI,GAAG,YAAY,WAAW,EAAK,CAAC;YAAC,KAAK,GAAG,QAAQ,CAAC;QAAC,CAAC;aACxD,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YAAC,KAAK,GAAG,QAAQ,CAAC;QAAC,CAAC;aACrB,CAAC;YAAC,KAAK,GAAG,SAAS,CAAC;QAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC;QACnE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,KAAiB;QACjC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC;QACnE,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AA3ND,kCA2NC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * pynect - Serializer
3
+ * Central coordinator for Python <-> JavaScript data conversion.
4
+ * Routes to specialized bridges (MsgPack, NumPy, DataFrame) based on format.
5
+ */
6
+ import type { SerializedValue } from '../types/python';
7
+ /**
8
+ * SerializerOptions - controls serialization behavior.
9
+ */
10
+ export interface SerializerOptions {
11
+ /** Use SharedArrayBuffer for large NumPy arrays (requires cross-origin isolation) */
12
+ useSharedArrayBuffer?: boolean;
13
+ /** Maximum size for inline JSON (bytes). Larger -> binary */
14
+ maxJsonSize?: number;
15
+ /** Whether to wrap Python objects in PyProxy */
16
+ wrapPythonRefs?: boolean;
17
+ }
18
+ /**
19
+ * Serializer - converts between Python wire format and JavaScript values.
20
+ *
21
+ * This is a singleton accessed via `Serializer.getInstance()`.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const serializer = Serializer.getInstance();
26
+ *
27
+ * // JavaScript -> Python wire format
28
+ * const sv = await serializer.serialize([1, 2, 3, 4, 5]);
29
+ *
30
+ * // Python wire format -> JavaScript
31
+ * const jsValue = await serializer.deserialize(sv);
32
+ * ```
33
+ */
34
+ export declare class Serializer {
35
+ private static _instance;
36
+ private readonly _options;
37
+ private readonly _numpyBridge;
38
+ private readonly _dataframeBridge;
39
+ private readonly _msgpackSerializer;
40
+ private constructor();
41
+ static getInstance(options?: SerializerOptions): Serializer;
42
+ static resetInstance(): void;
43
+ /**
44
+ * Deserialize a Python wire format value to JavaScript.
45
+ *
46
+ * Format routing:
47
+ * - JSON (0) -> JSON.parse
48
+ * - MsgPack (1) -> MessagePack decode
49
+ * - NumPy array (2) -> TypedArray
50
+ * - DataFrame (3) -> DataFrameResult
51
+ * - Series (4) -> SeriesResult
52
+ * - PyRef (6) -> PyProxy (via addon)
53
+ * - Bytes (7) -> Uint8Array
54
+ * - None (8) -> null
55
+ */
56
+ deserialize(sv: SerializedValue): Promise<unknown>;
57
+ /**
58
+ * Deserialize synchronously (for non-async contexts).
59
+ * Limited: only works for simple types.
60
+ */
61
+ deserializeSync(sv: SerializedValue): unknown;
62
+ /**
63
+ * Serialize a JavaScript value to Python wire format.
64
+ * Chooses the most efficient encoding automatically.
65
+ */
66
+ serialize(value: unknown): Promise<SerializedValue>;
67
+ /**
68
+ * Serialize synchronously (for non-async contexts).
69
+ */
70
+ serializeSync(value: unknown): SerializedValue;
71
+ private _deserializeJson;
72
+ private _deserializeMsgPack;
73
+ private _deserializePythonRef;
74
+ private _deserializeBytes;
75
+ private _serializeValue;
76
+ private _serializeValueSync;
77
+ }
78
+ //# sourceMappingURL=Serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Serializer.d.ts","sourceRoot":"","sources":["../../src/serialization/Serializer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AAQzB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,SAAS,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IAEvD,OAAO;IAWP,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,UAAU;IAO3D,MAAM,CAAC,aAAa,IAAI,IAAI;IAM5B;;;;;;;;;;;;OAYG;IACG,WAAW,CAAC,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAkCxD;;;OAGG;IACH,eAAe,CAAC,EAAE,EAAE,eAAe,GAAG,OAAO;IAqB7C;;;OAGG;IACG,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAIzD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe;IAM9C,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,iBAAiB;YAYX,eAAe;IAI7B,OAAO,CAAC,mBAAmB;CAkG5B"}
@@ -0,0 +1,281 @@
1
+ "use strict";
2
+ /**
3
+ * pynect - Serializer
4
+ * Central coordinator for Python <-> JavaScript data conversion.
5
+ * Routes to specialized bridges (MsgPack, NumPy, DataFrame) based on format.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.Serializer = void 0;
9
+ const NumpyBridge_1 = require("./NumpyBridge");
10
+ const DataFrameBridge_1 = require("./DataFrameBridge");
11
+ const MsgPackSerializer_1 = require("./MsgPackSerializer");
12
+ const Logger_1 = require("../utils/Logger");
13
+ const logger = new Logger_1.Logger('Serializer');
14
+ /**
15
+ * Serializer - converts between Python wire format and JavaScript values.
16
+ *
17
+ * This is a singleton accessed via `Serializer.getInstance()`.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const serializer = Serializer.getInstance();
22
+ *
23
+ * // JavaScript -> Python wire format
24
+ * const sv = await serializer.serialize([1, 2, 3, 4, 5]);
25
+ *
26
+ * // Python wire format -> JavaScript
27
+ * const jsValue = await serializer.deserialize(sv);
28
+ * ```
29
+ */
30
+ class Serializer {
31
+ static _instance = null;
32
+ _options;
33
+ _numpyBridge;
34
+ _dataframeBridge;
35
+ _msgpackSerializer;
36
+ constructor(options = {}) {
37
+ this._options = {
38
+ useSharedArrayBuffer: options.useSharedArrayBuffer ?? false,
39
+ maxJsonSize: options.maxJsonSize ?? 65536, // 64KB
40
+ wrapPythonRefs: options.wrapPythonRefs ?? true,
41
+ };
42
+ this._numpyBridge = new NumpyBridge_1.NumpyBridge({ useSharedArrayBuffer: this._options.useSharedArrayBuffer });
43
+ this._dataframeBridge = new DataFrameBridge_1.DataFrameBridge();
44
+ this._msgpackSerializer = new MsgPackSerializer_1.MsgPackSerializer();
45
+ }
46
+ static getInstance(options) {
47
+ if (!Serializer._instance) {
48
+ Serializer._instance = new Serializer(options);
49
+ }
50
+ return Serializer._instance;
51
+ }
52
+ static resetInstance() {
53
+ Serializer._instance = null;
54
+ }
55
+ // Python Wire Format -> JavaScript
56
+ /**
57
+ * Deserialize a Python wire format value to JavaScript.
58
+ *
59
+ * Format routing:
60
+ * - JSON (0) -> JSON.parse
61
+ * - MsgPack (1) -> MessagePack decode
62
+ * - NumPy array (2) -> TypedArray
63
+ * - DataFrame (3) -> DataFrameResult
64
+ * - Series (4) -> SeriesResult
65
+ * - PyRef (6) -> PyProxy (via addon)
66
+ * - Bytes (7) -> Uint8Array
67
+ * - None (8) -> null
68
+ */
69
+ async deserialize(sv) {
70
+ const format = sv.format;
71
+ switch (format) {
72
+ case 0: // JSON
73
+ return this._deserializeJson(sv);
74
+ case 1: // MSGPACK
75
+ return this._deserializeMsgPack(sv);
76
+ case 2: // NUMPY_ARRAY
77
+ return this._numpyBridge.deserialize(sv);
78
+ case 3: // PANDAS_DATAFRAME
79
+ return this._dataframeBridge.deserializeDataFrame(sv);
80
+ case 4: // PANDAS_SERIES
81
+ return this._dataframeBridge.deserializeSeries(sv);
82
+ case 6: // PYTHON_REF
83
+ return this._deserializePythonRef(sv);
84
+ case 7: // BYTES
85
+ return this._deserializeBytes(sv);
86
+ case 8: // NONE
87
+ return null;
88
+ default:
89
+ logger.warn(`Unknown serialization format: ${format}`);
90
+ return null;
91
+ }
92
+ }
93
+ /**
94
+ * Deserialize synchronously (for non-async contexts).
95
+ * Limited: only works for simple types.
96
+ */
97
+ deserializeSync(sv) {
98
+ const format = sv.format;
99
+ switch (format) {
100
+ case 0: // JSON
101
+ return this._deserializeJson(sv);
102
+ case 7: // BYTES
103
+ return sv.data instanceof Uint8Array ? sv.data : null;
104
+ case 8: // NONE
105
+ return null;
106
+ default:
107
+ // For binary formats, return null in sync mode
108
+ return null;
109
+ }
110
+ }
111
+ // JavaScript -> Python Wire Format
112
+ /**
113
+ * Serialize a JavaScript value to Python wire format.
114
+ * Chooses the most efficient encoding automatically.
115
+ */
116
+ async serialize(value) {
117
+ return this._serializeValue(value);
118
+ }
119
+ /**
120
+ * Serialize synchronously (for non-async contexts).
121
+ */
122
+ serializeSync(value) {
123
+ return this._serializeValueSync(value);
124
+ }
125
+ // Private Deserialization
126
+ _deserializeJson(sv) {
127
+ const data = sv.data;
128
+ if (data === null || data === undefined) {
129
+ return null;
130
+ }
131
+ const jsonStr = typeof data === 'string' ? data : new TextDecoder().decode(data);
132
+ if (!jsonStr || jsonStr === 'null') {
133
+ return null;
134
+ }
135
+ if (jsonStr === 'true') {
136
+ return true;
137
+ }
138
+ if (jsonStr === 'false') {
139
+ return false;
140
+ }
141
+ try {
142
+ return JSON.parse(jsonStr);
143
+ }
144
+ catch {
145
+ // If JSON parse fails, return the raw string
146
+ return jsonStr;
147
+ }
148
+ }
149
+ _deserializeMsgPack(sv) {
150
+ const data = sv.data;
151
+ if (!data || !(data instanceof Uint8Array)) {
152
+ return null;
153
+ }
154
+ try {
155
+ return this._msgpackSerializer.decode(data);
156
+ }
157
+ catch (err) {
158
+ logger.warn('MsgPack deserialization failed', err);
159
+ return null;
160
+ }
161
+ }
162
+ _deserializePythonRef(sv) {
163
+ // PyRef deserialization is handled by PyProxy._deserializeAddonResult
164
+ // which has access to the addon. Here we return the raw ref.
165
+ const objectId = sv.metadata?.objectId;
166
+ if (objectId) {
167
+ return { __pyref__: objectId };
168
+ }
169
+ return null;
170
+ }
171
+ _deserializeBytes(sv) {
172
+ const data = sv.data;
173
+ if (!data) {
174
+ return null;
175
+ }
176
+ if (data instanceof Uint8Array) {
177
+ return data;
178
+ }
179
+ if (typeof data === 'string') {
180
+ return new TextEncoder().encode(data);
181
+ }
182
+ return null;
183
+ }
184
+ // Private Serialization
185
+ async _serializeValue(value) {
186
+ return this._serializeValueSync(value);
187
+ }
188
+ _serializeValueSync(value) {
189
+ // null / undefined
190
+ if (value === null || value === undefined) {
191
+ return { format: 0, data: 'null', metadata: {} };
192
+ }
193
+ // Boolean
194
+ if (typeof value === 'boolean') {
195
+ return { format: 0, data: String(value), metadata: {} };
196
+ }
197
+ // Number
198
+ if (typeof value === 'number') {
199
+ if (Number.isNaN(value)) {
200
+ return { format: 0, data: 'null', metadata: {} };
201
+ }
202
+ return { format: 0, data: String(value), metadata: {} };
203
+ }
204
+ // BigInt
205
+ if (typeof value === 'bigint') {
206
+ return { format: 0, data: `"${value.toString()}"`, metadata: {} };
207
+ }
208
+ // String
209
+ if (typeof value === 'string') {
210
+ return { format: 0, data: JSON.stringify(value), metadata: {} };
211
+ }
212
+ // TypedArrays -> NumPy format
213
+ if (value instanceof Float32Array) {
214
+ return this._numpyBridge.serializeTypedArray(value, 'float32');
215
+ }
216
+ if (value instanceof Float64Array) {
217
+ return this._numpyBridge.serializeTypedArray(value, 'float64');
218
+ }
219
+ if (value instanceof Int8Array) {
220
+ return this._numpyBridge.serializeTypedArray(value, 'int8');
221
+ }
222
+ if (value instanceof Int16Array) {
223
+ return this._numpyBridge.serializeTypedArray(value, 'int16');
224
+ }
225
+ if (value instanceof Int32Array) {
226
+ return this._numpyBridge.serializeTypedArray(value, 'int32');
227
+ }
228
+ if (value instanceof BigInt64Array) {
229
+ return this._numpyBridge.serializeTypedArray(value, 'int64');
230
+ }
231
+ if (value instanceof Uint8Array) {
232
+ return this._numpyBridge.serializeTypedArray(value, 'uint8');
233
+ }
234
+ if (value instanceof Uint16Array) {
235
+ return this._numpyBridge.serializeTypedArray(value, 'uint16');
236
+ }
237
+ if (value instanceof Uint32Array) {
238
+ return this._numpyBridge.serializeTypedArray(value, 'uint32');
239
+ }
240
+ if (value instanceof BigUint64Array) {
241
+ return this._numpyBridge.serializeTypedArray(value, 'uint64');
242
+ }
243
+ // Raw ArrayBuffer
244
+ if (value instanceof ArrayBuffer) {
245
+ return { format: 7, data: new Uint8Array(value), metadata: {} };
246
+ }
247
+ // Array - use MsgPack for large, JSON for small
248
+ if (Array.isArray(value)) {
249
+ try {
250
+ const json = JSON.stringify(value);
251
+ if (json.length <= this._options.maxJsonSize) {
252
+ return { format: 0, data: json, metadata: { length: value.length } };
253
+ }
254
+ // Large array -> MessagePack
255
+ const packed = this._msgpackSerializer.encode(value);
256
+ return { format: 1, data: packed, metadata: { length: value.length } };
257
+ }
258
+ catch {
259
+ return { format: 8, data: null, metadata: {} };
260
+ }
261
+ }
262
+ // Plain object - JSON or MsgPack
263
+ if (typeof value === 'object') {
264
+ try {
265
+ const json = JSON.stringify(value);
266
+ if (json.length <= this._options.maxJsonSize) {
267
+ return { format: 0, data: json, metadata: {} };
268
+ }
269
+ const packed = this._msgpackSerializer.encode(value);
270
+ return { format: 1, data: packed, metadata: {} };
271
+ }
272
+ catch {
273
+ return { format: 8, data: null, metadata: {} };
274
+ }
275
+ }
276
+ // Fallback
277
+ return { format: 8, data: null, metadata: {} };
278
+ }
279
+ }
280
+ exports.Serializer = Serializer;
281
+ //# sourceMappingURL=Serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Serializer.js","sourceRoot":"","sources":["../../src/serialization/Serializer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * pynect - Native Addon TypeScript Interface
3
+ * Type declarations for the C++ N-API addon.
4
+ * These map exactly to the exported functions in pynect_addon.cpp.
5
+ */
6
+ import type { SerializedValue, PyCallResult, PyIteratorNext, PyTypeInfo, AttributePath } from './python';
7
+ export interface AddonInitOptions {
8
+ /** Path to Python home directory */
9
+ pythonHome: string;
10
+ /** Path to Python executable */
11
+ pythonExecutable: string;
12
+ /** Exact CPython embedding library selected by Pyfig */
13
+ pythonLibrary: string;
14
+ /** Thread pool size */
15
+ threadPoolSize: number;
16
+ /** Max thread queue size */
17
+ maxQueueSize: number;
18
+ /** GIL release interval (microseconds) */
19
+ gilReleaseInterval: number;
20
+ /** Call timeout (milliseconds) */
21
+ callTimeout: number;
22
+ /** Additional Python sys.path entries */
23
+ pythonPathExtra: string[];
24
+ /** Environment variables */
25
+ env: Record<string, string>;
26
+ /** Enable profiling */
27
+ enableProfiling: boolean;
28
+ /** Include Python tracebacks in JavaScript errors */
29
+ includeTracebacks: boolean;
30
+ }
31
+ export interface AddonImportResult {
32
+ objectId: number;
33
+ success: boolean;
34
+ error?: string;
35
+ }
36
+ export interface AddonAttributeResult {
37
+ success: boolean;
38
+ value?: SerializedValue;
39
+ objectId?: number;
40
+ isCallable: boolean;
41
+ isObject: boolean;
42
+ error?: string;
43
+ }
44
+ export interface AddonCallOptions {
45
+ /** Positional arguments */
46
+ args: SerializedValue[];
47
+ /** Keyword arguments */
48
+ kwargs: Record<string, SerializedValue>;
49
+ /** Call timeout override (ms) */
50
+ timeout?: number;
51
+ /** Cooperative timeout for async Python execution (ms). */
52
+ executionTimeout?: number;
53
+ /** Unique key used for cancellation. */
54
+ requestId?: string;
55
+ }
56
+ export interface PyCallOptions {
57
+ /** Cancel a queued or asynchronous Python call. */
58
+ signal?: AbortSignal;
59
+ /** Override the queue timeout for this call (ms). */
60
+ queueTimeout?: number;
61
+ /** Override the cooperative async execution timeout for this call (ms). */
62
+ executionTimeout?: number;
63
+ }
64
+ export interface AddonIteratorResult {
65
+ iteratorId: number;
66
+ success: boolean;
67
+ error?: string;
68
+ }
69
+ export interface AddonMemoryStats {
70
+ pythonHeapBytes: number;
71
+ pythonHeapPeakBytes: number;
72
+ trackedObjects: number;
73
+ pendingCallbacks: number;
74
+ threadPoolActive: number;
75
+ threadPoolQueued: number;
76
+ }
77
+ export interface AddonProfilingReport {
78
+ totalCalls: number;
79
+ totalTimeMs: number;
80
+ avgCallTimeMs: number;
81
+ peakCallTimeMs: number;
82
+ callsByModule: Record<string, number>;
83
+ callsByFunction: Record<string, number>;
84
+ }
85
+ /**
86
+ * The full interface of the compiled C++ addon module.
87
+ * All async methods return Promises (resolved on libuv callback).
88
+ */
89
+ export interface NativeAddon {
90
+ initializePython(options: AddonInitOptions): Promise<void>;
91
+ finalizePython(): Promise<void>;
92
+ isInitialized(): boolean;
93
+ importModule(moduleName: string): Promise<AddonImportResult>;
94
+ reloadModule(objectId: number): Promise<AddonImportResult>;
95
+ getAttribute(objectId: number, name: string): Promise<AddonAttributeResult>;
96
+ getAttributePath(objectId: number, path: AttributePath): Promise<AddonAttributeResult>;
97
+ setAttribute(objectId: number, name: string, value: SerializedValue): Promise<boolean>;
98
+ hasAttribute(objectId: number, name: string): Promise<boolean>;
99
+ deleteAttribute(objectId: number, name: string): Promise<boolean>;
100
+ callFunction(objectId: number, path: AttributePath, options: AddonCallOptions): Promise<PyCallResult>;
101
+ callMethod(objectId: number, methodName: string, options: AddonCallOptions): Promise<PyCallResult>;
102
+ cancelCall(requestId: string): Promise<unknown>;
103
+ getTypeInfo(objectId: number): Promise<PyTypeInfo>;
104
+ getObjectValue(objectId: number): Promise<SerializedValue>;
105
+ getObjectRepr(objectId: number): Promise<string>;
106
+ getObjectLength(objectId: number): Promise<number>;
107
+ getObjectKeys(objectId: number): Promise<string[]>;
108
+ createIterator(objectId: number, path: AttributePath): Promise<AddonIteratorResult>;
109
+ iteratorNext(iteratorId: number): Promise<PyIteratorNext>;
110
+ destroyIterator(iteratorId: number): Promise<void>;
111
+ runPythonCode(code: string, globals?: SerializedValue): Promise<SerializedValue>;
112
+ runPythonFile(filePath: string): Promise<SerializedValue>;
113
+ evalPython(expression: string): Promise<SerializedValue>;
114
+ incRef(objectId: number): void;
115
+ decRef(objectId: number): void;
116
+ collectGarbage(): Promise<void>;
117
+ getMemoryStats(): AddonMemoryStats;
118
+ getProfilingReport(): AddonProfilingReport;
119
+ resetProfilingStats(): void;
120
+ setThreadPoolSize(size: number): Promise<void>;
121
+ getThreadPoolStats(): {
122
+ active: number;
123
+ queued: number;
124
+ total: number;
125
+ };
126
+ }
127
+ /**
128
+ * Loads the native addon, trying prebuilds first then build directory.
129
+ */
130
+ export declare function loadNativeAddon(): NativeAddon;
131
+ //# sourceMappingURL=addon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addon.d.ts","sourceRoot":"","sources":["../../src/types/addon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * pynect - Native Addon TypeScript Interface
4
+ * Type declarations for the C++ N-API addon.
5
+ * These map exactly to the exported functions in pynect_addon.cpp.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.loadNativeAddon = loadNativeAddon;
9
+ /**
10
+ * Loads the native addon, trying prebuilds first then build directory.
11
+ */
12
+ function loadNativeAddon() {
13
+ // Try prebuilt binary first (faster, no build tools needed)
14
+ try {
15
+ // node-gyp-build handles platform/arch detection automatically
16
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
17
+ const build = require('node-gyp-build');
18
+ return build(__dirname + '/../../');
19
+ }
20
+ catch {
21
+ // Fall back to explicit build path
22
+ try {
23
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
24
+ return require('../../build/Release/pynect_addon.node');
25
+ }
26
+ catch {
27
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
28
+ return require('../../build/Debug/pynect_addon.node');
29
+ }
30
+ }
31
+ }
32
+ //# sourceMappingURL=addon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addon.js","sourceRoot":"","sources":["../../src/types/addon.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAqKH,0CAiBC;AApBD;;GAEG;AACH,SAAgB,eAAe;IAC7B,4DAA4D;IAC5D,IAAI,CAAC;QACH,+DAA+D;QAC/D,8DAA8D;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,SAAS,GAAG,SAAS,CAAgB,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;QACnC,IAAI,CAAC;YACH,8DAA8D;YAC9D,OAAO,OAAO,CAAC,uCAAuC,CAAgB,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;YAC9D,OAAO,OAAO,CAAC,qCAAqC,CAAgB,CAAC;QACvE,CAAC;IACH,CAAC;AACH,CAAC"}