qsharp-lang 1.27.1-dev → 1.27.3-dev

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 (370) hide show
  1. package/README.md +5 -22
  2. package/dist/cancellation.js +3 -1
  3. package/dist/compiler/compiler.d.ts +1 -1
  4. package/dist/compiler/compiler.js +1 -0
  5. package/dist/compiler/events.d.ts +1 -1
  6. package/dist/compiler/events.js +4 -4
  7. package/dist/compiler/{worker-browser.js → worker.js} +3 -2
  8. package/dist/data-structures/legacyCircuitUpdate.js +1 -1
  9. package/dist/debug-service/debug-service.d.ts +2 -2
  10. package/dist/debug-service/debug-service.js +2 -0
  11. package/dist/debug-service/{worker-browser.js → worker.js} +3 -2
  12. package/dist/diagnostics.js +1 -0
  13. package/dist/language-service/language-service.d.ts +2 -2
  14. package/dist/language-service/language-service.js +4 -1
  15. package/dist/language-service/{worker-browser.js → worker.js} +3 -2
  16. package/dist/main.d.ts +33 -11
  17. package/dist/main.js +115 -31
  18. package/dist/node.d.ts +1 -0
  19. package/dist/node.js +10 -0
  20. package/dist/project.js +1 -0
  21. package/dist/utils.js +2 -2
  22. package/dist/workers/{browser.d.ts → main.d.ts} +3 -10
  23. package/dist/workers/{common.js → main.js} +40 -139
  24. package/dist/workers/{common.d.ts → types.d.ts} +3 -26
  25. package/dist/workers/types.js +3 -0
  26. package/dist/workers/worker.d.ts +9 -0
  27. package/dist/workers/worker.js +176 -0
  28. package/docs/Microsoft.Quantum.Core/IsRangeEmpty.md +1 -1
  29. package/docs/Microsoft.Quantum.Core/Length.md +1 -1
  30. package/docs/Microsoft.Quantum.Core/RangeEnd.md +1 -1
  31. package/docs/Microsoft.Quantum.Core/RangeStart.md +1 -1
  32. package/docs/Microsoft.Quantum.Core/Repeated.md +1 -1
  33. package/docs/Microsoft.Quantum.Core/index.md +1 -1
  34. package/docs/Std.Arithmetic/AddLE.md +1 -1
  35. package/docs/Std.Arithmetic/ApplyIfEqualL.md +1 -1
  36. package/docs/Std.Arithmetic/ApplyIfEqualLE.md +1 -1
  37. package/docs/Std.Arithmetic/ApplyIfGreaterL.md +1 -1
  38. package/docs/Std.Arithmetic/ApplyIfGreaterLE.md +1 -1
  39. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualL.md +1 -1
  40. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualLE.md +1 -1
  41. package/docs/Std.Arithmetic/ApplyIfLessL.md +1 -1
  42. package/docs/Std.Arithmetic/ApplyIfLessLE.md +1 -1
  43. package/docs/Std.Arithmetic/ApplyIfLessOrEqualL.md +1 -1
  44. package/docs/Std.Arithmetic/ApplyIfLessOrEqualLE.md +1 -1
  45. package/docs/Std.Arithmetic/FourierTDIncByLE.md +1 -1
  46. package/docs/Std.Arithmetic/IncByI.md +1 -1
  47. package/docs/Std.Arithmetic/IncByIUsingIncByLE.md +1 -1
  48. package/docs/Std.Arithmetic/IncByL.md +1 -1
  49. package/docs/Std.Arithmetic/IncByLE.md +1 -1
  50. package/docs/Std.Arithmetic/IncByLEUsingAddLE.md +1 -1
  51. package/docs/Std.Arithmetic/IncByLUsingIncByLE.md +1 -1
  52. package/docs/Std.Arithmetic/LookAheadDKRSAddLE.md +1 -1
  53. package/docs/Std.Arithmetic/MAJ.md +1 -1
  54. package/docs/Std.Arithmetic/ReflectAboutInteger.md +1 -1
  55. package/docs/Std.Arithmetic/RippleCarryCGAddLE.md +1 -1
  56. package/docs/Std.Arithmetic/RippleCarryCGIncByLE.md +1 -1
  57. package/docs/Std.Arithmetic/RippleCarryTTKIncByLE.md +1 -1
  58. package/docs/Std.Arithmetic/index.md +1 -1
  59. package/docs/Std.Arrays/All.md +1 -1
  60. package/docs/Std.Arrays/Any.md +1 -1
  61. package/docs/Std.Arrays/Chunks.md +1 -1
  62. package/docs/Std.Arrays/CircularlyShifted.md +1 -1
  63. package/docs/Std.Arrays/ColumnAt.md +1 -1
  64. package/docs/Std.Arrays/Count.md +1 -1
  65. package/docs/Std.Arrays/Diagonal.md +1 -1
  66. package/docs/Std.Arrays/DrawMany.md +1 -1
  67. package/docs/Std.Arrays/Enumerated.md +1 -1
  68. package/docs/Std.Arrays/Excluding.md +1 -1
  69. package/docs/Std.Arrays/Filtered.md +1 -1
  70. package/docs/Std.Arrays/FlatMapped.md +1 -1
  71. package/docs/Std.Arrays/Flattened.md +1 -1
  72. package/docs/Std.Arrays/Fold.md +1 -1
  73. package/docs/Std.Arrays/ForEach.md +1 -1
  74. package/docs/Std.Arrays/Head.md +1 -1
  75. package/docs/Std.Arrays/HeadAndRest.md +1 -1
  76. package/docs/Std.Arrays/IndexOf.md +1 -1
  77. package/docs/Std.Arrays/IndexRange.md +1 -1
  78. package/docs/Std.Arrays/Interleaved.md +1 -1
  79. package/docs/Std.Arrays/IsEmpty.md +1 -1
  80. package/docs/Std.Arrays/IsRectangularArray.md +1 -1
  81. package/docs/Std.Arrays/IsSorted.md +1 -1
  82. package/docs/Std.Arrays/IsSquareArray.md +1 -1
  83. package/docs/Std.Arrays/Mapped.md +1 -1
  84. package/docs/Std.Arrays/MappedByIndex.md +1 -1
  85. package/docs/Std.Arrays/MappedOverRange.md +1 -1
  86. package/docs/Std.Arrays/Most.md +1 -1
  87. package/docs/Std.Arrays/MostAndTail.md +1 -1
  88. package/docs/Std.Arrays/Padded.md +1 -1
  89. package/docs/Std.Arrays/Partitioned.md +1 -1
  90. package/docs/Std.Arrays/Rest.md +1 -1
  91. package/docs/Std.Arrays/Reversed.md +1 -1
  92. package/docs/Std.Arrays/SequenceI.md +1 -1
  93. package/docs/Std.Arrays/SequenceL.md +1 -1
  94. package/docs/Std.Arrays/Sorted.md +1 -1
  95. package/docs/Std.Arrays/Subarray.md +1 -1
  96. package/docs/Std.Arrays/Swapped.md +1 -1
  97. package/docs/Std.Arrays/Tail.md +1 -1
  98. package/docs/Std.Arrays/Transposed.md +1 -1
  99. package/docs/Std.Arrays/Unzipped.md +1 -1
  100. package/docs/Std.Arrays/Where.md +1 -1
  101. package/docs/Std.Arrays/Windows.md +1 -1
  102. package/docs/Std.Arrays/Zipped.md +1 -1
  103. package/docs/Std.Arrays/index.md +1 -1
  104. package/docs/Std.Canon/ApplyCNOTChain.md +1 -1
  105. package/docs/Std.Canon/ApplyControlledOnBitString.md +1 -1
  106. package/docs/Std.Canon/ApplyControlledOnInt.md +1 -1
  107. package/docs/Std.Canon/ApplyOperationPowerA.md +1 -1
  108. package/docs/Std.Canon/ApplyOperationPowerCA.md +1 -1
  109. package/docs/Std.Canon/ApplyP.md +1 -1
  110. package/docs/Std.Canon/ApplyPauli.md +1 -1
  111. package/docs/Std.Canon/ApplyPauliFromBitString.md +1 -1
  112. package/docs/Std.Canon/ApplyPauliFromInt.md +1 -1
  113. package/docs/Std.Canon/ApplyQFT.md +1 -1
  114. package/docs/Std.Canon/ApplyQPE.md +1 -1
  115. package/docs/Std.Canon/ApplyToEach.md +1 -1
  116. package/docs/Std.Canon/ApplyToEachA.md +1 -1
  117. package/docs/Std.Canon/ApplyToEachC.md +1 -1
  118. package/docs/Std.Canon/ApplyToEachCA.md +1 -1
  119. package/docs/Std.Canon/ApplyXorInPlace.md +1 -1
  120. package/docs/Std.Canon/ApplyXorInPlaceL.md +1 -1
  121. package/docs/Std.Canon/CX.md +1 -1
  122. package/docs/Std.Canon/CY.md +1 -1
  123. package/docs/Std.Canon/CZ.md +1 -1
  124. package/docs/Std.Canon/Fst.md +1 -1
  125. package/docs/Std.Canon/MapPauliAxis.md +1 -1
  126. package/docs/Std.Canon/Relabel.md +1 -1
  127. package/docs/Std.Canon/Snd.md +1 -1
  128. package/docs/Std.Canon/SwapReverseRegister.md +1 -1
  129. package/docs/Std.Canon/index.md +1 -1
  130. package/docs/Std.Convert/BigIntAsBoolArray.md +1 -1
  131. package/docs/Std.Convert/BigIntAsInt.md +1 -1
  132. package/docs/Std.Convert/BoolArrayAsBigInt.md +1 -1
  133. package/docs/Std.Convert/BoolArrayAsInt.md +1 -1
  134. package/docs/Std.Convert/BoolArrayAsResultArray.md +1 -1
  135. package/docs/Std.Convert/BoolAsResult.md +1 -1
  136. package/docs/Std.Convert/ComplexAsComplexPolar.md +1 -1
  137. package/docs/Std.Convert/ComplexPolarAsComplex.md +1 -1
  138. package/docs/Std.Convert/DoubleAsStringWithPrecision.md +1 -1
  139. package/docs/Std.Convert/IntAsBigInt.md +1 -1
  140. package/docs/Std.Convert/IntAsBoolArray.md +1 -1
  141. package/docs/Std.Convert/IntAsDouble.md +1 -1
  142. package/docs/Std.Convert/ResultArrayAsBoolArray.md +1 -1
  143. package/docs/Std.Convert/ResultArrayAsInt.md +1 -1
  144. package/docs/Std.Convert/ResultAsBool.md +1 -1
  145. package/docs/Std.Convert/index.md +1 -1
  146. package/docs/Std.Core/Complex.md +1 -1
  147. package/docs/Std.Core/Length.md +1 -1
  148. package/docs/Std.Core/Repeated.md +1 -1
  149. package/docs/Std.Core/index.md +1 -1
  150. package/docs/Std.Diagnostics/ApplyIdleNoise.md +1 -1
  151. package/docs/Std.Diagnostics/BitFlipNoise.md +1 -1
  152. package/docs/Std.Diagnostics/CheckAllZero.md +1 -1
  153. package/docs/Std.Diagnostics/CheckOperationsAreEqual.md +1 -1
  154. package/docs/Std.Diagnostics/CheckZero.md +1 -1
  155. package/docs/Std.Diagnostics/ConfigurePauliNoise.md +1 -1
  156. package/docs/Std.Diagnostics/ConfigureQubitLoss.md +1 -1
  157. package/docs/Std.Diagnostics/DepolarizingNoise.md +1 -1
  158. package/docs/Std.Diagnostics/DumpMachine.md +1 -1
  159. package/docs/Std.Diagnostics/DumpOperation.md +1 -1
  160. package/docs/Std.Diagnostics/DumpRegister.md +1 -1
  161. package/docs/Std.Diagnostics/Fact.md +1 -1
  162. package/docs/Std.Diagnostics/NoNoise.md +1 -1
  163. package/docs/Std.Diagnostics/PhaseFlipNoise.md +1 -1
  164. package/docs/Std.Diagnostics/PostSelectZ.md +1 -1
  165. package/docs/Std.Diagnostics/StartCountingFunction.md +1 -1
  166. package/docs/Std.Diagnostics/StartCountingOperation.md +1 -1
  167. package/docs/Std.Diagnostics/StartCountingQubits.md +1 -1
  168. package/docs/Std.Diagnostics/StopCountingFunction.md +1 -1
  169. package/docs/Std.Diagnostics/StopCountingOperation.md +1 -1
  170. package/docs/Std.Diagnostics/StopCountingQubits.md +1 -1
  171. package/docs/Std.Diagnostics/index.md +1 -1
  172. package/docs/Std.Intrinsic/AND.md +1 -1
  173. package/docs/Std.Intrinsic/ApplyUnitary.md +1 -1
  174. package/docs/Std.Intrinsic/CCNOT.md +1 -1
  175. package/docs/Std.Intrinsic/CNOT.md +1 -1
  176. package/docs/Std.Intrinsic/Exp.md +1 -1
  177. package/docs/Std.Intrinsic/H.md +1 -1
  178. package/docs/Std.Intrinsic/I.md +1 -1
  179. package/docs/Std.Intrinsic/M.md +1 -1
  180. package/docs/Std.Intrinsic/Measure.md +1 -1
  181. package/docs/Std.Intrinsic/Message.md +1 -1
  182. package/docs/Std.Intrinsic/R.md +1 -1
  183. package/docs/Std.Intrinsic/R1.md +1 -1
  184. package/docs/Std.Intrinsic/R1Frac.md +1 -1
  185. package/docs/Std.Intrinsic/RFrac.md +1 -1
  186. package/docs/Std.Intrinsic/Reset.md +1 -1
  187. package/docs/Std.Intrinsic/ResetAll.md +1 -1
  188. package/docs/Std.Intrinsic/Rx.md +1 -1
  189. package/docs/Std.Intrinsic/Rxx.md +1 -1
  190. package/docs/Std.Intrinsic/Ry.md +1 -1
  191. package/docs/Std.Intrinsic/Ryy.md +1 -1
  192. package/docs/Std.Intrinsic/Rz.md +1 -1
  193. package/docs/Std.Intrinsic/Rzz.md +1 -1
  194. package/docs/Std.Intrinsic/S.md +1 -1
  195. package/docs/Std.Intrinsic/SWAP.md +1 -1
  196. package/docs/Std.Intrinsic/SX.md +1 -1
  197. package/docs/Std.Intrinsic/T.md +1 -1
  198. package/docs/Std.Intrinsic/X.md +1 -1
  199. package/docs/Std.Intrinsic/Y.md +1 -1
  200. package/docs/Std.Intrinsic/Z.md +1 -1
  201. package/docs/Std.Intrinsic/index.md +1 -1
  202. package/docs/Std.Logical/Xor.md +1 -1
  203. package/docs/Std.Logical/index.md +1 -1
  204. package/docs/Std.Math/AbsComplex.md +1 -1
  205. package/docs/Std.Math/AbsComplexPolar.md +1 -1
  206. package/docs/Std.Math/AbsD.md +1 -1
  207. package/docs/Std.Math/AbsI.md +1 -1
  208. package/docs/Std.Math/AbsL.md +1 -1
  209. package/docs/Std.Math/AbsSquaredComplex.md +1 -1
  210. package/docs/Std.Math/AbsSquaredComplexPolar.md +1 -1
  211. package/docs/Std.Math/ApproximateFactorial.md +1 -1
  212. package/docs/Std.Math/ArcCos.md +1 -1
  213. package/docs/Std.Math/ArcCosh.md +1 -1
  214. package/docs/Std.Math/ArcSin.md +1 -1
  215. package/docs/Std.Math/ArcSinh.md +1 -1
  216. package/docs/Std.Math/ArcTan.md +1 -1
  217. package/docs/Std.Math/ArcTan2.md +1 -1
  218. package/docs/Std.Math/ArcTanh.md +1 -1
  219. package/docs/Std.Math/ArgComplex.md +1 -1
  220. package/docs/Std.Math/ArgComplexPolar.md +1 -1
  221. package/docs/Std.Math/Binom.md +1 -1
  222. package/docs/Std.Math/BitSizeI.md +1 -1
  223. package/docs/Std.Math/BitSizeL.md +1 -1
  224. package/docs/Std.Math/Ceiling.md +1 -1
  225. package/docs/Std.Math/Complex.md +1 -1
  226. package/docs/Std.Math/ComplexPolar.md +1 -1
  227. package/docs/Std.Math/ContinuedFractionConvergentI.md +1 -1
  228. package/docs/Std.Math/ContinuedFractionConvergentL.md +1 -1
  229. package/docs/Std.Math/Cos.md +1 -1
  230. package/docs/Std.Math/Cosh.md +1 -1
  231. package/docs/Std.Math/DivRemI.md +1 -1
  232. package/docs/Std.Math/DivRemL.md +1 -1
  233. package/docs/Std.Math/DividedByC.md +1 -1
  234. package/docs/Std.Math/DividedByCP.md +1 -1
  235. package/docs/Std.Math/E.md +1 -1
  236. package/docs/Std.Math/ExpModI.md +1 -1
  237. package/docs/Std.Math/ExpModL.md +1 -1
  238. package/docs/Std.Math/ExtendedGreatestCommonDivisorI.md +1 -1
  239. package/docs/Std.Math/ExtendedGreatestCommonDivisorL.md +1 -1
  240. package/docs/Std.Math/FactorialI.md +1 -1
  241. package/docs/Std.Math/FactorialL.md +1 -1
  242. package/docs/Std.Math/Floor.md +1 -1
  243. package/docs/Std.Math/GreatestCommonDivisorI.md +1 -1
  244. package/docs/Std.Math/GreatestCommonDivisorL.md +1 -1
  245. package/docs/Std.Math/HammingWeightI.md +1 -1
  246. package/docs/Std.Math/InverseModI.md +1 -1
  247. package/docs/Std.Math/InverseModL.md +1 -1
  248. package/docs/Std.Math/IsCoprimeI.md +1 -1
  249. package/docs/Std.Math/IsCoprimeL.md +1 -1
  250. package/docs/Std.Math/IsInfinite.md +1 -1
  251. package/docs/Std.Math/IsNaN.md +1 -1
  252. package/docs/Std.Math/LargestFixedPoint.md +1 -1
  253. package/docs/Std.Math/Lg.md +1 -1
  254. package/docs/Std.Math/Log.md +1 -1
  255. package/docs/Std.Math/Log10.md +1 -1
  256. package/docs/Std.Math/LogFactorialD.md +1 -1
  257. package/docs/Std.Math/LogGammaD.md +1 -1
  258. package/docs/Std.Math/LogOf2.md +1 -1
  259. package/docs/Std.Math/Max.md +1 -1
  260. package/docs/Std.Math/MaxD.md +1 -1
  261. package/docs/Std.Math/MaxI.md +1 -1
  262. package/docs/Std.Math/MaxL.md +1 -1
  263. package/docs/Std.Math/Min.md +1 -1
  264. package/docs/Std.Math/MinD.md +1 -1
  265. package/docs/Std.Math/MinI.md +1 -1
  266. package/docs/Std.Math/MinL.md +1 -1
  267. package/docs/Std.Math/MinusC.md +1 -1
  268. package/docs/Std.Math/MinusCP.md +1 -1
  269. package/docs/Std.Math/ModulusI.md +1 -1
  270. package/docs/Std.Math/ModulusL.md +1 -1
  271. package/docs/Std.Math/NegationC.md +1 -1
  272. package/docs/Std.Math/NegationCP.md +1 -1
  273. package/docs/Std.Math/PI.md +1 -1
  274. package/docs/Std.Math/PNorm.md +1 -1
  275. package/docs/Std.Math/PNormalized.md +1 -1
  276. package/docs/Std.Math/PlusC.md +1 -1
  277. package/docs/Std.Math/PlusCP.md +1 -1
  278. package/docs/Std.Math/PowC.md +1 -1
  279. package/docs/Std.Math/PowCP.md +1 -1
  280. package/docs/Std.Math/RealMod.md +1 -1
  281. package/docs/Std.Math/Round.md +1 -1
  282. package/docs/Std.Math/RoundHalfAwayFromZero.md +1 -1
  283. package/docs/Std.Math/SignD.md +1 -1
  284. package/docs/Std.Math/SignI.md +1 -1
  285. package/docs/Std.Math/SignL.md +1 -1
  286. package/docs/Std.Math/Sin.md +1 -1
  287. package/docs/Std.Math/Sinh.md +1 -1
  288. package/docs/Std.Math/SmallestFixedPoint.md +1 -1
  289. package/docs/Std.Math/Sqrt.md +1 -1
  290. package/docs/Std.Math/SquaredNorm.md +1 -1
  291. package/docs/Std.Math/Tan.md +1 -1
  292. package/docs/Std.Math/Tanh.md +1 -1
  293. package/docs/Std.Math/TimesC.md +1 -1
  294. package/docs/Std.Math/TimesCP.md +1 -1
  295. package/docs/Std.Math/TrailingZeroCountI.md +1 -1
  296. package/docs/Std.Math/TrailingZeroCountL.md +1 -1
  297. package/docs/Std.Math/Truncate.md +1 -1
  298. package/docs/Std.Math/index.md +1 -1
  299. package/docs/Std.Measurement/IsLossResult.md +1 -1
  300. package/docs/Std.Measurement/MResetEachZ.md +1 -1
  301. package/docs/Std.Measurement/MResetX.md +1 -1
  302. package/docs/Std.Measurement/MResetY.md +1 -1
  303. package/docs/Std.Measurement/MResetZ.md +1 -1
  304. package/docs/Std.Measurement/MResetZChecked.md +1 -1
  305. package/docs/Std.Measurement/MeasureAllZ.md +1 -1
  306. package/docs/Std.Measurement/MeasureEachZ.md +1 -1
  307. package/docs/Std.Measurement/MeasureInteger.md +1 -1
  308. package/docs/Std.Measurement/index.md +1 -1
  309. package/docs/Std.Random/DrawRandomBool.md +1 -1
  310. package/docs/Std.Random/DrawRandomDouble.md +1 -1
  311. package/docs/Std.Random/DrawRandomInt.md +1 -1
  312. package/docs/Std.Random/index.md +1 -1
  313. package/docs/Std.Range/IsRangeEmpty.md +1 -1
  314. package/docs/Std.Range/RangeEnd.md +1 -1
  315. package/docs/Std.Range/RangeReverse.md +1 -1
  316. package/docs/Std.Range/RangeStart.md +1 -1
  317. package/docs/Std.Range/RangeStep.md +1 -1
  318. package/docs/Std.Range/index.md +1 -1
  319. package/docs/Std.ResourceEstimation/AccountForEstimates.md +1 -1
  320. package/docs/Std.ResourceEstimation/AuxQubitCount.md +1 -1
  321. package/docs/Std.ResourceEstimation/BeginEstimateCaching.md +1 -1
  322. package/docs/Std.ResourceEstimation/BeginRepeatEstimates.md +1 -1
  323. package/docs/Std.ResourceEstimation/CczCount.md +1 -1
  324. package/docs/Std.ResourceEstimation/EnableMemoryComputeArchitecture.md +1 -1
  325. package/docs/Std.ResourceEstimation/EndEstimateCaching.md +1 -1
  326. package/docs/Std.ResourceEstimation/EndRepeatEstimates.md +1 -1
  327. package/docs/Std.ResourceEstimation/LeastFrequentlyUsed.md +1 -1
  328. package/docs/Std.ResourceEstimation/LeastRecentlyUsed.md +1 -1
  329. package/docs/Std.ResourceEstimation/MeasurementCount.md +1 -1
  330. package/docs/Std.ResourceEstimation/PSSPCLayout.md +1 -1
  331. package/docs/Std.ResourceEstimation/RepeatEstimates.md +1 -1
  332. package/docs/Std.ResourceEstimation/RotationCount.md +1 -1
  333. package/docs/Std.ResourceEstimation/RotationDepth.md +1 -1
  334. package/docs/Std.ResourceEstimation/SingleVariant.md +1 -1
  335. package/docs/Std.ResourceEstimation/TCount.md +1 -1
  336. package/docs/Std.ResourceEstimation/index.md +1 -1
  337. package/docs/Std.StatePreparation/ApproximatelyPreparePureStateCP.md +1 -1
  338. package/docs/Std.StatePreparation/PreparePureStateD.md +1 -1
  339. package/docs/Std.StatePreparation/PrepareUniformSuperposition.md +1 -1
  340. package/docs/Std.StatePreparation/index.md +1 -1
  341. package/docs/Std.TableLookup/Select.md +1 -1
  342. package/docs/Std.TableLookup/index.md +1 -1
  343. package/docs/index.md +1 -1
  344. package/lib/web/qsc_wasm.d.ts +3 -3
  345. package/lib/web/qsc_wasm.js +7 -7
  346. package/lib/web/qsc_wasm_bg.wasm +0 -0
  347. package/package.json +11 -8
  348. package/ux/circuit-vis/draggable.ts +1 -1
  349. package/ux/circuit-vis/sqore.ts +2 -1
  350. package/ux/report.ts +1 -1
  351. package/ux/resultsTable.tsx +1 -2
  352. package/ux/saveImage.tsx +1 -2
  353. package/ux/tsconfig.json +3 -2
  354. package/dist/browser.d.ts +0 -32
  355. package/dist/browser.js +0 -126
  356. package/dist/compiler/worker-node.d.ts +0 -1
  357. package/dist/compiler/worker-node.js +0 -5
  358. package/dist/debug-service/worker-node.d.ts +0 -1
  359. package/dist/debug-service/worker-node.js +0 -5
  360. package/dist/language-service/worker-node.d.ts +0 -1
  361. package/dist/language-service/worker-node.js +0 -5
  362. package/dist/workers/browser.js +0 -67
  363. package/dist/workers/node.d.ts +0 -20
  364. package/dist/workers/node.js +0 -56
  365. package/lib/nodejs/qsc_wasm.cjs +0 -1614
  366. package/lib/nodejs/qsc_wasm.d.cts +0 -383
  367. package/lib/nodejs/qsc_wasm_bg.wasm +0 -0
  368. /package/dist/compiler/{worker-browser.d.ts → worker.d.ts} +0 -0
  369. /package/dist/debug-service/{worker-browser.d.ts → worker.d.ts} +0 -0
  370. /package/dist/language-service/{worker-browser.d.ts → worker.d.ts} +0 -0
package/README.md CHANGED
@@ -11,28 +11,11 @@ to it when calling the `loadWasmModule` method so it may be located and loaded.
11
11
 
12
12
  ## Node and browser support
13
13
 
14
- wasm-bindgen generates different files for the browser and Node.js environments. The wasm is slightly
15
- different, and the loader code is quite different. This can be seen in `./lib/web/qsc_wasm.cjs`
16
- and `./lib/nodejs/qsc_wasm.js` files respectively. Specifically, the web environment loads the wasm
17
- file using async web APIs such as `fetch` with a URI, and Node.js uses `require` to load the `fs` module
18
- and calls to `readFileSync`. Once the wasm module is loaded however, the exported APIs are used
19
- in a similar manner.
20
-
21
- To support using this npm package from both environments, the package uses "conditional exports"
22
- <https://nodejs.org/dist/latest-v18.x/docs/api/packages.html#conditional-exports> to expose one
23
- entry point for Node.js, and another for browsers. The distinct entry points uses their respective
24
- loader to load the wasm module for the platform, and then expose functionality that uses the
25
- loaded module via common code.
26
-
27
- When bundling for the web, bundlers such as esbuild will automatically use the default entry point,
28
- whereas when loaded as a Node.js module, it will use the "node" entry point.
29
-
30
- Note that TypeScript seems to add the ['import', 'types', 'node'] conditions by default when
31
- searching the Node.js `exports`, and so will always find the 'node' export before the 'default'
32
- export. To resolve this, a 'browser' condition was added (which is same as 'default' but earlier
33
- than 'node') and the tsconfig compiler option `"customConditions": ["browser"]` should be added
34
- (requires TypeScript 5.0 or later). esbuild also adds the 'browser' condition when bundling for
35
- the browser (see <https://esbuild.github.io/api/#how-conditions-work>).
14
+ This package is platform-agnostic, using a single entry point (`main.ts`) for both browser
15
+ and Node.js environments. The wasm module and JavaScript glue code can be found in `./lib/web/`.
16
+ Consumers must bundle the package for their target platform so that external
17
+ dependencies (such as the `web-worker` package) are resolved correctly for the
18
+ runtime environment.
36
19
 
37
20
  ## Design
38
21
 
@@ -1,8 +1,9 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
3
  class InternalToken {
4
+ eventTarget;
5
+ isCancellationRequested = false;
4
6
  constructor() {
5
- this.isCancellationRequested = false;
6
7
  this.eventTarget = new EventTarget();
7
8
  }
8
9
  onCancellationRequested(listener) {
@@ -16,6 +17,7 @@ class InternalToken {
16
17
  }
17
18
  }
18
19
  export class CancellationTokenSource {
20
+ _token;
19
21
  constructor(parent) {
20
22
  // There are some optimizations you can do here to lazily allocate, but keeping it simple for now.
21
23
  this._token = new InternalToken();
@@ -1,6 +1,6 @@
1
1
  import { type CircuitGroup as CircuitData } from "../data-structures/circuit.js";
2
2
  import { IDocFile, IOperationInfo, ICircuitConfig, IPackageGraphSources, IProgramConfig as wasmIProgramConfig, TargetProfile, type VSDiagnostic, ProjectType } from "../../lib/web/qsc_wasm.js";
3
- import { IServiceProxy, ServiceProtocol, ServiceState } from "../workers/common.js";
3
+ import type { IServiceProxy, ServiceProtocol, ServiceState } from "../workers/types.js";
4
4
  import { IQscEventTarget, QscEventData } from "./events.js";
5
5
  type Wasm = typeof import("../../lib/web/qsc_wasm.js");
6
6
  export interface ICompiler {
@@ -6,6 +6,7 @@ import { eventStringToMsg } from "./common.js";
6
6
  import { makeEvent, } from "./events.js";
7
7
  import { callAndTransformExceptions } from "../diagnostics.js";
8
8
  export class Compiler {
9
+ wasm;
9
10
  constructor(wasm) {
10
11
  log.info("Constructing a Compiler instance");
11
12
  this.wasm = wasm;
@@ -1,5 +1,5 @@
1
1
  import { ShotResult, Dump, Result } from "./common.js";
2
- import { IServiceEventTarget } from "../workers/common.js";
2
+ import type { IServiceEventTarget } from "../workers/types.js";
3
3
  export type QscEventData = {
4
4
  type: "Message";
5
5
  detail: string;
@@ -11,6 +11,10 @@ function makeResultObj() {
11
11
  return { success: false, result: "", events: [] };
12
12
  }
13
13
  export class QscEventTarget {
14
+ eventTarget = new EventTarget();
15
+ results = [];
16
+ shotActive = false;
17
+ animationFrameId = 0;
14
18
  // Overrides for the base EventTarget methods to limit to expected event types
15
19
  addEventListener(type, listener) {
16
20
  this.eventTarget.addEventListener(type, listener);
@@ -27,10 +31,6 @@ export class QscEventTarget {
27
31
  * @param captureEvents Set to true if this instance should record events internally
28
32
  */
29
33
  constructor(captureEvents) {
30
- this.eventTarget = new EventTarget();
31
- this.results = [];
32
- this.shotActive = false;
33
- this.animationFrameId = 0;
34
34
  if (captureEvents) {
35
35
  this.addEventListener("Message", (ev) => this.onMessage(ev.detail));
36
36
  this.addEventListener("DumpMachine", (ev) => this.onDumpMachine(ev.detail));
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- import { createWorker } from "../workers/browser.js";
3
+ import { createWorker } from "../workers/worker.js";
4
4
  import { compilerProtocol } from "./compiler.js";
5
- // This export should be assigned to 'self.onmessage' in a WebWorker
5
+ // message handler exported for backwards compatibility
6
6
  export const messageHandler = createWorker(compilerProtocol);
7
+ addEventListener("message", messageHandler);
@@ -80,7 +80,7 @@ function tryConvertLegacySchema(circuit) {
80
80
  return toOperation(op);
81
81
  }
82
82
  catch (e) {
83
- throw new Error(`Failed to convert operation at index ${idx}: ${e.message}`);
83
+ throw new Error(`Failed to convert operation at index ${idx}: ${e.message}`, { cause: e });
84
84
  }
85
85
  });
86
86
  if (!operationList.every(isOperation)) {
@@ -1,8 +1,8 @@
1
1
  import { type CircuitGroup as CircuitData } from "../data-structures/circuit.js";
2
2
  import type { IBreakpointSpan, IQuantumState, IStackFrame, IStructStepResult, IVariable } from "../../lib/web/qsc_wasm.js";
3
- import { ProgramConfig } from "../browser.js";
3
+ import { ProgramConfig } from "../main.js";
4
4
  import { IQscEventTarget, QscEventData } from "../compiler/events.js";
5
- import { IServiceProxy, ServiceProtocol } from "../workers/common.js";
5
+ import type { IServiceProxy, ServiceProtocol } from "../workers/types.js";
6
6
  type QscWasm = typeof import("../../lib/web/qsc_wasm.js");
7
7
  export interface IDebugService {
8
8
  loadProgram(program: ProgramConfig, entry: string | undefined): Promise<string>;
@@ -6,6 +6,8 @@ import { makeEvent, } from "../compiler/events.js";
6
6
  import { log } from "../log.js";
7
7
  import { toWasmProgramConfig } from "../compiler/compiler.js";
8
8
  export class QSharpDebugService {
9
+ wasm;
10
+ debugService;
9
11
  constructor(wasm) {
10
12
  log.info("Constructing a QSharpDebugService instance");
11
13
  this.wasm = wasm;
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- import { createWorker } from "../workers/browser.js";
3
+ import { createWorker } from "../workers/worker.js";
4
4
  import { debugServiceProtocol } from "./debug-service.js";
5
- // This export should be assigned to 'self.onmessage' in a WebWorker
5
+ // message handler exported for backwards compatibility
6
6
  export const messageHandler = createWorker(debugServiceProtocol);
7
+ addEventListener("message", messageHandler);
@@ -8,6 +8,7 @@ import { log } from "./log.js";
8
8
  * running code. Contains one or more VS Code-like diagnostics.
9
9
  */
10
10
  export class QdkDiagnostics extends Error {
11
+ diagnostics;
11
12
  constructor(diagnostics) {
12
13
  const message = shortMessage(diagnostics);
13
14
  super(message);
@@ -1,6 +1,6 @@
1
1
  import type { ICodeAction, ICodeLens, ICompletionList, IHover, ILocation, INotebookMetadata, IPosition, IRange, ISignatureHelp, ITextEdit, IWorkspaceConfiguration, IWorkspaceEdit, VSDiagnostic, ITestDescriptor } from "../../lib/web/qsc_wasm.js";
2
- import { IProjectHost } from "../browser.js";
3
- import { IServiceProxy, ServiceProtocol } from "../workers/common.js";
2
+ import { IProjectHost } from "../main.js";
3
+ import type { IServiceProxy, ServiceProtocol } from "../workers/types.js";
4
4
  type QscWasm = typeof import("../../lib/web/qsc_wasm.js");
5
5
  export type LanguageServiceDiagnosticEvent = {
6
6
  type: "diagnostics";
@@ -4,6 +4,10 @@ import { log } from "../log.js";
4
4
  export const qsharpLibraryUriScheme = "qsharp-library-source";
5
5
  export const qsharpGithubUriScheme = "qsharp-github-source";
6
6
  export class QSharpLanguageService {
7
+ wasm;
8
+ languageService;
9
+ eventHandler = new EventTarget();
10
+ backgroundWork;
7
11
  constructor(wasm, host = {
8
12
  readFile: async () => null,
9
13
  listDirectory: async () => [],
@@ -12,7 +16,6 @@ export class QSharpLanguageService {
12
16
  findManifestDirectory: async () => null,
13
17
  }) {
14
18
  this.wasm = wasm;
15
- this.eventHandler = new EventTarget();
16
19
  log.info("Constructing a QSharpLanguageService instance");
17
20
  this.languageService = new wasm.LanguageService();
18
21
  this.backgroundWork = this.languageService.start_background_work(this.onDiagnostics.bind(this), this.onTestCallables.bind(this), host);
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- import { createWorker } from "../workers/browser.js";
3
+ import { createWorker } from "../workers/worker.js";
4
4
  import { languageServiceProtocol } from "./language-service.js";
5
- // This export should be assigned to 'self.onmessage' in a WebWorker
5
+ // message handler exported for backwards compatibility
6
6
  export const messageHandler = createWorker(languageServiceProtocol);
7
+ addEventListener("message", messageHandler);
package/dist/main.d.ts CHANGED
@@ -1,16 +1,38 @@
1
+ import * as wasm from "../lib/web/qsc_wasm.js";
2
+ import { IProjectHost, ProjectType, TargetProfile } from "../lib/web/qsc_wasm.js";
1
3
  import { ICompiler, ICompilerWorker } from "./compiler/compiler.js";
2
4
  import { IDebugService, IDebugServiceWorker } from "./debug-service/debug-service.js";
3
- import { ILanguageService, ILanguageServiceWorker, qsharpLibraryUriScheme } from "./language-service/language-service.js";
5
+ import { ILanguageService, ILanguageServiceWorker } from "./language-service/language-service.js";
4
6
  import { ProjectLoader } from "./project.js";
5
- import type { IProjectHost } from "./browser.js";
6
- export { qsharpLibraryUriScheme };
7
+ export declare function setWorkerType(type: "classic" | "module"): void;
8
+ export declare function getWasmModule(): WebAssembly.Module;
9
+ export declare function loadWasmModule(uriOrBuffer: string | ArrayBuffer): Promise<void>;
10
+ export declare function instantiateWasm(): Promise<void>;
7
11
  export declare function getLibrarySourceContent(path: string): Promise<string | undefined>;
8
- export declare function getCompiler(): ICompiler;
9
- export declare function getProjectLoader(host: IProjectHost): ProjectLoader;
10
- export declare function getCompilerWorker(): ICompilerWorker;
11
- export declare function getDebugService(): IDebugService;
12
- export declare function getDebugServiceWorker(): IDebugServiceWorker;
13
- export declare function getLanguageService(host?: IProjectHost): ILanguageService;
14
- export declare function getLanguageServiceWorker(): ILanguageServiceWorker;
12
+ export declare function getDebugService(): Promise<IDebugService>;
13
+ export declare function getProjectLoader(host: IProjectHost): Promise<ProjectLoader>;
14
+ export declare function getDebugServiceWorker(worker: string | Worker): IDebugServiceWorker;
15
+ export declare function getCompiler(): Promise<ICompiler>;
16
+ export declare function getCompilerWorker(worker: string | Worker): ICompilerWorker;
17
+ export declare function getLanguageService(host?: IProjectHost): Promise<ILanguageService>;
18
+ export declare function getLanguageServiceWorker(worker: string | Worker): ILanguageServiceWorker;
19
+ export declare function getTargetProfileFromEntryPoint(fileName: string, source: string): Promise<wasm.TargetProfile | undefined>;
20
+ export { StepResultId } from "../lib/web/qsc_wasm.js";
21
+ export type { IBreakpointSpan, ICodeAction, ICodeLens, IDocFile, ILocation, IOperationInfo, IPosition, IProjectConfig, IProjectHost, IQSharpError, IRange, IStackFrame, IStructStepResult, ITestDescriptor, IWorkspaceEdit, VSDiagnostic, } from "../lib/web/qsc_wasm.js";
22
+ export type { ProjectType, TargetProfile };
23
+ export type { IVariable, IVariableChild } from "../lib/web/qsc_wasm.js";
15
24
  export * as utils from "./utils.js";
16
- export type { IVariable, IVariableChild } from "./browser.js";
25
+ export { log } from "./log.js";
26
+ export { QscEventTarget } from "./compiler/events.js";
27
+ export { QdkDiagnostics } from "./diagnostics.js";
28
+ export { default as samples } from "./samples.generated.js";
29
+ export { default as openqasm_samples } from "./openqasm-samples.generated.js";
30
+ export { qsharpGithubUriScheme, qsharpLibraryUriScheme, } from "./language-service/language-service.js";
31
+ export type { Dump, ShotResult } from "./compiler/common.js";
32
+ export type { CompilerState, ProgramConfig } from "./compiler/compiler.js";
33
+ export type { ICompiler, ICompilerWorker } from "./compiler/compiler.js";
34
+ export type { IDebugService, IDebugServiceWorker, } from "./debug-service/debug-service.js";
35
+ export type { ILanguageService, ILanguageServiceWorker, LanguageServiceDiagnosticEvent, LanguageServiceEvent, LanguageServiceTestCallablesEvent, } from "./language-service/language-service.js";
36
+ export type { ProjectLoader } from "./project.js";
37
+ export type { CircuitGroup as CircuitData } from "./data-structures/circuit.js";
38
+ export type { LogLevel } from "./log.js";
package/dist/main.js CHANGED
@@ -1,52 +1,136 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- // This module is the main entry point for use in Node.js environments. For browser environments,
4
- // the "./browser.js" file is the entry point module.
5
- import { createRequire } from "node:module";
3
+ // Main entrypoint. Browsers use this directly; Node.js uses it through the node.ts wrapper.
4
+ import * as wasm from "../lib/web/qsc_wasm.js";
5
+ import initWasm from "../lib/web/qsc_wasm.js";
6
6
  import { Compiler, compilerProtocol, } from "./compiler/compiler.js";
7
7
  import { QSharpDebugService, debugServiceProtocol, } from "./debug-service/debug-service.js";
8
- import { QSharpLanguageService, languageServiceProtocol, qsharpLibraryUriScheme, } from "./language-service/language-service.js";
8
+ import { callAndTransformExceptions } from "./diagnostics.js";
9
+ import { QSharpLanguageService, languageServiceProtocol, } from "./language-service/language-service.js";
9
10
  import { log } from "./log.js";
10
- import { createProxy } from "./workers/node.js";
11
11
  import { ProjectLoader } from "./project.js";
12
- export { qsharpLibraryUriScheme };
13
- let wasm = null;
14
- function ensureWasm() {
15
- if (!wasm) {
16
- wasm = require("../lib/nodejs/qsc_wasm.cjs");
17
- // Set up logging and telemetry as soon as possible after instantiating
18
- wasm.initLogging(log.logWithLevel, log.getLogLevel());
19
- log.onLevelChanged = (level) => wasm?.setLogLevel(level);
12
+ import { createProxy } from "./workers/main.js";
13
+ let workerType = "classic";
14
+ export function setWorkerType(type) {
15
+ workerType = type;
16
+ }
17
+ // Create once. A module is stateless and can be efficiently passed to WebWorkers.
18
+ let wasmModule = null;
19
+ let wasmModulePromise = null;
20
+ // Getter for wasmModule that works across CJS/ESM boundaries.
21
+ // Direct `export let` live bindings don't survive CJS bundling.
22
+ export function getWasmModule() {
23
+ if (!wasmModule)
24
+ throw "Wasm module must be loaded first";
25
+ return wasmModule;
26
+ }
27
+ // Used to track if an instance is already instantiated
28
+ let wasmInstancePromise = null;
29
+ async function wasmLoader(uriOrBuffer) {
30
+ if (typeof uriOrBuffer === "string") {
31
+ log.info("Fetching wasm module from %s", uriOrBuffer);
32
+ performance.mark("fetch-wasm-start");
33
+ const wasmRequest = await fetch(uriOrBuffer);
34
+ const wasmBuffer = await wasmRequest.arrayBuffer();
35
+ const fetchTiming = performance.measure("fetch-wasm", "fetch-wasm-start");
36
+ log.logTelemetry({
37
+ id: "fetch-wasm",
38
+ data: {
39
+ duration: fetchTiming.duration,
40
+ uri: uriOrBuffer,
41
+ },
42
+ });
43
+ wasmModule = await WebAssembly.compile(wasmBuffer);
44
+ }
45
+ else {
46
+ log.info("Compiling wasm module from provided buffer");
47
+ wasmModule = await WebAssembly.compile(uriOrBuffer);
48
+ }
49
+ }
50
+ export function loadWasmModule(uriOrBuffer) {
51
+ // Only initiate if not already in flight, to avoid race conditions
52
+ if (!wasmModulePromise) {
53
+ wasmModulePromise = wasmLoader(uriOrBuffer);
54
+ }
55
+ return wasmModulePromise;
56
+ }
57
+ export async function instantiateWasm() {
58
+ // Ensure loading the module has been initiated, and wait for it.
59
+ if (!wasmModulePromise)
60
+ throw "Wasm module must be loaded first";
61
+ await wasmModulePromise;
62
+ if (!wasmModule)
63
+ throw "Wasm module failed to load";
64
+ if (wasmInstancePromise) {
65
+ // Either in flight or already complete. The prior request will do the init,
66
+ // so just wait on that.
67
+ await wasmInstancePromise;
68
+ return;
20
69
  }
70
+ // Set the promise to signal this is in flight, then wait on the result.
71
+ wasmInstancePromise = initWasm({ module_or_path: wasmModule });
72
+ await wasmInstancePromise;
73
+ // Once ready, set up logging and telemetry as soon as possible after instantiating
74
+ wasm.initLogging(log.logWithLevel, log.getLogLevel());
75
+ log.onLevelChanged = (level) => wasm.setLogLevel(level);
21
76
  }
22
- const require = createRequire(import.meta.url);
23
77
  export async function getLibrarySourceContent(path) {
24
- ensureWasm();
78
+ await instantiateWasm();
25
79
  return wasm.get_library_source_content(path);
26
80
  }
27
- export function getCompiler() {
28
- ensureWasm();
29
- return new Compiler(wasm);
81
+ export async function getDebugService() {
82
+ await instantiateWasm();
83
+ return new QSharpDebugService(wasm);
30
84
  }
31
- export function getProjectLoader(host) {
32
- ensureWasm();
85
+ export async function getProjectLoader(host) {
86
+ await instantiateWasm();
33
87
  return new ProjectLoader(wasm, host);
34
88
  }
35
- export function getCompilerWorker() {
36
- return createProxy("../compiler/worker-node.js", compilerProtocol);
89
+ // Create the debugger inside a WebWorker and proxy requests.
90
+ // If the Worker was already created via other means and is ready to receive
91
+ // messages, then the worker may be passed in and it will be initialized.
92
+ export function getDebugServiceWorker(worker) {
93
+ if (!wasmModule)
94
+ throw "Wasm module must be loaded first";
95
+ return createProxy(worker, wasmModule, debugServiceProtocol, workerType);
37
96
  }
38
- export function getDebugService() {
39
- ensureWasm();
40
- return new QSharpDebugService(wasm);
97
+ export async function getCompiler() {
98
+ await instantiateWasm();
99
+ return new Compiler(wasm);
41
100
  }
42
- export function getDebugServiceWorker() {
43
- return createProxy("../debug-service/worker-node.js", debugServiceProtocol);
101
+ // Create the compiler inside a WebWorker and proxy requests.
102
+ // If the Worker was already created via other means and is ready to receive
103
+ // messages, then the worker may be passed in and it will be initialized.
104
+ export function getCompilerWorker(worker) {
105
+ if (!wasmModule)
106
+ throw "Wasm module must be loaded first";
107
+ return createProxy(worker, wasmModule, compilerProtocol, workerType);
44
108
  }
45
- export function getLanguageService(host) {
46
- ensureWasm();
109
+ export async function getLanguageService(host) {
110
+ await instantiateWasm();
47
111
  return new QSharpLanguageService(wasm, host);
48
112
  }
49
- export function getLanguageServiceWorker() {
50
- return createProxy("../language-service/worker-node.js", languageServiceProtocol);
113
+ // Create the compiler inside a WebWorker and proxy requests.
114
+ // If the Worker was already created via other means and is ready to receive
115
+ // messages, then the worker may be passed in and it will be initialized.
116
+ export function getLanguageServiceWorker(worker) {
117
+ if (!wasmModule)
118
+ throw "Wasm module must be loaded first";
119
+ return createProxy(worker, wasmModule, languageServiceProtocol, workerType);
120
+ }
121
+ /// Extracts the target profile from a Q# source file's entry point.
122
+ /// Scans the provided source code for an EntryPoint argument specifying
123
+ /// a profile and returns the corresponding TargetProfile value, if found.
124
+ /// Returns undefined if no profile is specified or if the profile is not recognized.
125
+ export async function getTargetProfileFromEntryPoint(fileName, source) {
126
+ await instantiateWasm();
127
+ return callAndTransformExceptions(async () => wasm.get_target_profile_from_entry_point(fileName, source));
51
128
  }
129
+ export { StepResultId } from "../lib/web/qsc_wasm.js";
52
130
  export * as utils from "./utils.js";
131
+ export { log } from "./log.js";
132
+ export { QscEventTarget } from "./compiler/events.js";
133
+ export { QdkDiagnostics } from "./diagnostics.js";
134
+ export { default as samples } from "./samples.generated.js";
135
+ export { default as openqasm_samples } from "./openqasm-samples.generated.js";
136
+ export { qsharpGithubUriScheme, qsharpLibraryUriScheme, } from "./language-service/language-service.js";
package/dist/node.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./main.js";
package/dist/node.js ADDED
@@ -0,0 +1,10 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ // Node.js entrypoint. Polyfills the Worker global before loading the main module.
4
+ import worker from "web-worker";
5
+ import { setWorkerType } from "./main.js";
6
+ if (typeof globalThis.Worker === "undefined") {
7
+ globalThis.Worker = worker;
8
+ }
9
+ setWorkerType("module");
10
+ export * from "./main.js";
package/dist/project.js CHANGED
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT License.
3
3
  import { callAndTransformExceptions } from "./diagnostics.js";
4
4
  export class ProjectLoader {
5
+ nativeLoader;
5
6
  constructor(wasm, host) {
6
7
  this.nativeLoader = new wasm.ProjectLoader(host);
7
8
  }
package/dist/utils.js CHANGED
@@ -77,7 +77,7 @@ export function CreateTimeTicks(min, max) {
77
77
  predefinedTimeTicks[l].tick.value));
78
78
  do {
79
79
  let i = 1;
80
- let val = 0;
80
+ let val;
81
81
  do {
82
82
  val = predefinedTimeTicks[l].tick.value * i * coeff;
83
83
  if (val >= min && val <= max) {
@@ -101,7 +101,7 @@ export function CreateTimeTicks(min, max) {
101
101
  let coeff = 10 ** Math.floor(Math.log10(max / predefinedTimeTicks[l].tick.value));
102
102
  do {
103
103
  let i = 1;
104
- let val = 0;
104
+ let val;
105
105
  do {
106
106
  val = predefinedTimeTicks[l].tick.value * i * coeff;
107
107
  if (val >= min && val <= max) {
@@ -1,12 +1,4 @@
1
- import { IServiceEventMessage, IServiceProxy, ServiceMethods, ServiceProtocol } from "./common.js";
2
- /**
3
- * Creates an initializes a service, setting it up to receive requests.
4
- * This function to be is used in the worker.
5
- *
6
- * @param serviceProtocol An object that describes the service: its constructor, methods and events
7
- * @returns A message handler to be assigned to the `self.onmessage` handler in a web worker
8
- */
9
- export declare function createWorker<TService extends ServiceMethods<TService>, TServiceEventMsg extends IServiceEventMessage>(serviceProtocol: ServiceProtocol<TService, TServiceEventMsg>): (e: MessageEvent) => void;
1
+ import type { IServiceEventMessage, IServiceProxy, ServiceMethods, ServiceProtocol } from "./types.js";
10
2
  /**
11
3
  * Creates and initializes a service in a web worker, and returns a proxy for the service
12
4
  * to be used from the main thread.
@@ -14,8 +6,9 @@ export declare function createWorker<TService extends ServiceMethods<TService>,
14
6
  * @param workerArg The service web worker or the URL of the web worker script.
15
7
  * @param wasmModule The wasm module to initialize the service with
16
8
  * @param serviceProtocol An object that describes the service: its constructor, methods and events
9
+ * @param workerType The type of worker to create: "classic" for browsers, "module" for Node.js
17
10
  * @returns A proxy object that implements the service interface.
18
11
  * This interface can now be used as if calling into the real service,
19
12
  * and the calls will be proxied to the web worker.
20
13
  */
21
- export declare function createProxy<TService extends ServiceMethods<TService>, TServiceEventMsg extends IServiceEventMessage>(workerArg: string | Worker, wasmModule: WebAssembly.Module, serviceProtocol: ServiceProtocol<TService, TServiceEventMsg>): TService & IServiceProxy;
14
+ export declare function createProxy<TService extends ServiceMethods<TService>, TServiceEventMsg extends IServiceEventMessage>(workerArg: string | Worker, wasmModule: WebAssembly.Module, serviceProtocol: ServiceProtocol<TService, TServiceEventMsg>, workerType: "classic" | "module"): TService & IServiceProxy;