qsharp-lang 1.27.0 → 1.27.2-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 +5 -5
  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 +2 -2
  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 +6 -6
  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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "qsharp-lang",
3
3
  "description": "qsharp language package for quantum development",
4
- "version": "1.27.0",
4
+ "version": "1.27.2-dev",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=16.17.0"
@@ -13,13 +13,13 @@
13
13
  },
14
14
  "exports": {
15
15
  ".": {
16
- "browser": "./dist/browser.js",
17
- "node": "./dist/main.js",
18
- "default": "./dist/browser.js"
16
+ "browser": "./dist/main.js",
17
+ "node": "./dist/node.js",
18
+ "default": "./dist/main.js"
19
19
  },
20
- "./compiler-worker": "./dist/compiler/worker-browser.js",
21
- "./language-service-worker": "./dist/language-service/worker-browser.js",
22
- "./debug-service-worker": "./dist/debug-service/worker-browser.js",
20
+ "./compiler-worker": "./dist/compiler/worker.js",
21
+ "./language-service-worker": "./dist/language-service/worker.js",
22
+ "./debug-service-worker": "./dist/debug-service/worker.js",
23
23
  "./katas": "./dist/katas.js",
24
24
  "./katas-md": "./dist/katas-md.js",
25
25
  "./state-viz": "./ux/circuit-vis/state-viz/worker/index.ts",
@@ -44,5 +44,8 @@
44
44
  "docs",
45
45
  "lib",
46
46
  "ux"
47
- ]
47
+ ],
48
+ "optionalDependencies": {
49
+ "web-worker": "^1.5.0"
50
+ }
48
51
  }
@@ -496,7 +496,7 @@ const makeDropzoneBox = (
496
496
  }
497
497
 
498
498
  const paddingY = 20;
499
- let dropzone = null;
499
+ let dropzone;
500
500
  if (interColumn) {
501
501
  dropzone = box(
502
502
  xOffset - gatePadding * 2,
@@ -80,7 +80,7 @@ export type DrawOptions = {
80
80
  export class Sqore {
81
81
  circuit: Circuit;
82
82
  gateRegistry: GateRegistry = {};
83
- renderDepth: number = this.options.renderDepth ?? 0;
83
+ renderDepth: number;
84
84
  container: HTMLElement | null = null;
85
85
  zoomOnResize: boolean = true;
86
86
  zoomLevel: number = 100;
@@ -103,6 +103,7 @@ export class Sqore {
103
103
  `No circuit found in file. Please provide a valid circuit.`,
104
104
  );
105
105
  }
106
+ this.renderDepth = options.renderDepth ?? 0;
106
107
  // For now we only visualize the first circuit in the group
107
108
  this.circuit = this.circuitGroup.circuits[0];
108
109
  }
package/ux/report.ts CHANGED
@@ -24,7 +24,7 @@ type ReportEntry = {
24
24
  // THIS CODE HAS BEEN AUTOMATICALLY GENERATED WITH generate_report_code.py from output_data.md
25
25
  export function CreateReport(result: SingleEstimateResult): ReportData {
26
26
  const groups = [] as ReportGroup[];
27
- let entries = [] as ReportEntry[];
27
+ let entries: ReportEntry[];
28
28
  const numberFormat = new Intl.NumberFormat();
29
29
  const numberFormatF64 = new Intl.NumberFormat(undefined, {
30
30
  maximumFractionDigits: 2,
@@ -321,8 +321,7 @@ export function ResultsTable(props: {
321
321
  >
322
322
  {getColumnList().map((elem) => (
323
323
  <div
324
- width="100px"
325
- height="20px"
324
+ style="width: 100px; height: 20px;"
326
325
  class={
327
326
  elem.show
328
327
  ? "qs-resultsTable-columnSelected"
package/ux/saveImage.tsx CHANGED
@@ -20,8 +20,7 @@ async function cloneChildren<T extends HTMLElement>(
20
20
  nativeNode: T,
21
21
  clonedNode: T,
22
22
  ): Promise<T> {
23
- let children: T[] = [];
24
- children = toArray<T>((nativeNode.shadowRoot ?? nativeNode).childNodes);
23
+ const children = toArray<T>((nativeNode.shadowRoot ?? nativeNode).childNodes);
25
24
 
26
25
  // Depth-first traversal of DOM objects
27
26
  await children.reduce(
package/ux/tsconfig.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "outDir": "../dist",
4
+ "rootDir": "..",
4
5
  "declaration": true,
5
6
  "sourceMap": true,
6
7
  "module": "nodenext",
7
8
  "moduleResolution": "nodenext",
8
- "target": "ES2020",
9
- "lib": ["DOM", "ES2020"],
9
+ "target": "ES2022",
10
+ "lib": ["DOM", "ES2022"],
10
11
  "strict": true /* enable all strict type-checking options */,
11
12
  "jsx": "react-jsx",
12
13
  "jsxImportSource": "preact",
package/dist/browser.d.ts DELETED
@@ -1,32 +0,0 @@
1
- import * as wasm from "../lib/web/qsc_wasm.js";
2
- import { IProjectHost, ProjectType, TargetProfile } from "../lib/web/qsc_wasm.js";
3
- import { ICompiler, ICompilerWorker } from "./compiler/compiler.js";
4
- import { IDebugService, IDebugServiceWorker } from "./debug-service/debug-service.js";
5
- import { ILanguageService, ILanguageServiceWorker, qsharpGithubUriScheme, qsharpLibraryUriScheme } from "./language-service/language-service.js";
6
- import { LogLevel, log } from "./log.js";
7
- import { ProjectLoader } from "./project.js";
8
- export { qsharpGithubUriScheme, qsharpLibraryUriScheme };
9
- export declare function loadWasmModule(uriOrBuffer: string | ArrayBuffer): Promise<void>;
10
- export declare function getLibrarySourceContent(path: string): Promise<string | undefined>;
11
- export declare function getDebugService(): Promise<IDebugService>;
12
- export declare function getProjectLoader(host: IProjectHost): Promise<ProjectLoader>;
13
- export declare function getDebugServiceWorker(worker: string | Worker): IDebugServiceWorker;
14
- export declare function getCompiler(): Promise<ICompiler>;
15
- export declare function getCompilerWorker(worker: string | Worker): ICompilerWorker;
16
- export declare function getLanguageService(host?: IProjectHost): Promise<ILanguageService>;
17
- export declare function getLanguageServiceWorker(worker: string | Worker): ILanguageServiceWorker;
18
- export declare function getTargetProfileFromEntryPoint(fileName: string, source: string): Promise<wasm.TargetProfile | undefined>;
19
- export { StepResultId } from "../lib/web/qsc_wasm.js";
20
- export type { IBreakpointSpan, ICodeAction, ICodeLens, IDocFile, ILocation, IOperationInfo, IPosition, IProjectConfig, IProjectHost, IQSharpError, IRange, IStackFrame, IStructStepResult, ITestDescriptor, IVariable, IVariableChild, IWorkspaceEdit, VSDiagnostic, } from "../lib/web/qsc_wasm.js";
21
- export { type Dump, type ShotResult } from "./compiler/common.js";
22
- export { type CompilerState, type ProgramConfig } from "./compiler/compiler.js";
23
- export { QscEventTarget } from "./compiler/events.js";
24
- export { QdkDiagnostics } from "./diagnostics.js";
25
- export type { LanguageServiceDiagnosticEvent, LanguageServiceEvent, LanguageServiceTestCallablesEvent, } from "./language-service/language-service.js";
26
- export { default as openqasm_samples } from "./openqasm-samples.generated.js";
27
- export type { ProjectLoader } from "./project.js";
28
- export { default as samples } from "./samples.generated.js";
29
- export type { CircuitGroup as CircuitData } from "./data-structures/circuit.js";
30
- export * as utils from "./utils.js";
31
- export { log, type LogLevel, type ProjectType, type TargetProfile };
32
- export type { ICompiler, ICompilerWorker, IDebugService, IDebugServiceWorker, ILanguageService, ILanguageServiceWorker, };
package/dist/browser.js DELETED
@@ -1,126 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- // This module is the entry point for browser environments. For Node.js environment,
4
- // the "./main.js" module is the entry point.
5
- import * as wasm from "../lib/web/qsc_wasm.js";
6
- import initWasm from "../lib/web/qsc_wasm.js";
7
- import { Compiler, compilerProtocol, } from "./compiler/compiler.js";
8
- import { QSharpDebugService, debugServiceProtocol, } from "./debug-service/debug-service.js";
9
- import { callAndTransformExceptions } from "./diagnostics.js";
10
- import { QSharpLanguageService, languageServiceProtocol, qsharpGithubUriScheme, qsharpLibraryUriScheme, } from "./language-service/language-service.js";
11
- import { log } from "./log.js";
12
- import { ProjectLoader } from "./project.js";
13
- import { createProxy } from "./workers/browser.js";
14
- export { qsharpGithubUriScheme, qsharpLibraryUriScheme };
15
- // Create once. A module is stateless and can be efficiently passed to WebWorkers.
16
- let wasmModule = null;
17
- let wasmModulePromise = null;
18
- // Used to track if an instance is already instantiated
19
- let wasmInstancePromise = null;
20
- async function wasmLoader(uriOrBuffer) {
21
- if (typeof uriOrBuffer === "string") {
22
- log.info("Fetching wasm module from %s", uriOrBuffer);
23
- performance.mark("fetch-wasm-start");
24
- const wasmRequst = await fetch(uriOrBuffer);
25
- const wasmBuffer = await wasmRequst.arrayBuffer();
26
- const fetchTiming = performance.measure("fetch-wasm", "fetch-wasm-start");
27
- log.logTelemetry({
28
- id: "fetch-wasm",
29
- data: {
30
- duration: fetchTiming.duration,
31
- uri: uriOrBuffer,
32
- },
33
- });
34
- wasmModule = await WebAssembly.compile(wasmBuffer);
35
- }
36
- else {
37
- log.info("Compiling wasm module from provided buffer");
38
- wasmModule = await WebAssembly.compile(uriOrBuffer);
39
- }
40
- }
41
- export function loadWasmModule(uriOrBuffer) {
42
- // Only initiate if not already in flight, to avoid race conditions
43
- if (!wasmModulePromise) {
44
- wasmModulePromise = wasmLoader(uriOrBuffer);
45
- }
46
- return wasmModulePromise;
47
- }
48
- async function instantiateWasm() {
49
- // Ensure loading the module has been initiated, and wait for it.
50
- if (!wasmModulePromise)
51
- throw "Wasm module must be loaded first";
52
- await wasmModulePromise;
53
- if (!wasmModule)
54
- throw "Wasm module failed to load";
55
- if (wasmInstancePromise) {
56
- // Either in flight or already complete. The prior request will do the init,
57
- // so just wait on that.
58
- await wasmInstancePromise;
59
- return;
60
- }
61
- // Set the promise to signal this is in flight, then wait on the result.
62
- wasmInstancePromise = initWasm(wasmModule);
63
- await wasmInstancePromise;
64
- // Once ready, set up logging and telemetry as soon as possible after instantiating
65
- wasm.initLogging(log.logWithLevel, log.getLogLevel());
66
- log.onLevelChanged = (level) => wasm.setLogLevel(level);
67
- }
68
- export async function getLibrarySourceContent(path) {
69
- await instantiateWasm();
70
- return wasm.get_library_source_content(path);
71
- }
72
- export async function getDebugService() {
73
- await instantiateWasm();
74
- return new QSharpDebugService(wasm);
75
- }
76
- export async function getProjectLoader(host) {
77
- await instantiateWasm();
78
- return new ProjectLoader(wasm, host);
79
- }
80
- // Create the debugger inside a WebWorker and proxy requests.
81
- // If the Worker was already created via other means and is ready to receive
82
- // messages, then the worker may be passed in and it will be initialized.
83
- export function getDebugServiceWorker(worker) {
84
- if (!wasmModule)
85
- throw "Wasm module must be loaded first";
86
- return createProxy(worker, wasmModule, debugServiceProtocol);
87
- }
88
- export async function getCompiler() {
89
- await instantiateWasm();
90
- return new Compiler(wasm);
91
- }
92
- // Create the compiler inside a WebWorker and proxy requests.
93
- // If the Worker was already created via other means and is ready to receive
94
- // messages, then the worker may be passed in and it will be initialized.
95
- export function getCompilerWorker(worker) {
96
- if (!wasmModule)
97
- throw "Wasm module must be loaded first";
98
- return createProxy(worker, wasmModule, compilerProtocol);
99
- }
100
- export async function getLanguageService(host) {
101
- await instantiateWasm();
102
- return new QSharpLanguageService(wasm, host);
103
- }
104
- // Create the compiler inside a WebWorker and proxy requests.
105
- // If the Worker was already created via other means and is ready to receive
106
- // messages, then the worker may be passed in and it will be initialized.
107
- export function getLanguageServiceWorker(worker) {
108
- if (!wasmModule)
109
- throw "Wasm module must be loaded first";
110
- return createProxy(worker, wasmModule, languageServiceProtocol);
111
- }
112
- /// Extracts the target profile from a Q# source file's entry point.
113
- /// Scans the provided source code for an EntryPoint argument specifying
114
- /// a profile and returns the corresponding TargetProfile value, if found.
115
- /// Returns undefined if no profile is specified or if the profile is not recognized.
116
- export async function getTargetProfileFromEntryPoint(fileName, source) {
117
- await instantiateWasm();
118
- return callAndTransformExceptions(async () => wasm.get_target_profile_from_entry_point(fileName, source));
119
- }
120
- export { StepResultId } from "../lib/web/qsc_wasm.js";
121
- export { QscEventTarget } from "./compiler/events.js";
122
- export { QdkDiagnostics } from "./diagnostics.js";
123
- export { default as openqasm_samples } from "./openqasm-samples.generated.js";
124
- export { default as samples } from "./samples.generated.js";
125
- export * as utils from "./utils.js";
126
- export { log };
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import { createWorker } from "../workers/node.js";
4
- import { compilerProtocol } from "./compiler.js";
5
- createWorker(compilerProtocol);
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import { createWorker } from "../workers/node.js";
4
- import { debugServiceProtocol } from "./debug-service.js";
5
- createWorker(debugServiceProtocol);
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import { createWorker } from "../workers/node.js";
4
- import { languageServiceProtocol } from "./language-service.js";
5
- createWorker(languageServiceProtocol);
@@ -1,67 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import * as wasm from "../../lib/web/qsc_wasm.js";
4
- import { log } from "../log.js";
5
- import { createProxyInternal, initService, } from "./common.js";
6
- /**
7
- * Creates an initializes a service, setting it up to receive requests.
8
- * This function to be is used in the worker.
9
- *
10
- * @param serviceProtocol An object that describes the service: its constructor, methods and events
11
- * @returns A message handler to be assigned to the `self.onmessage` handler in a web worker
12
- */
13
- export function createWorker(serviceProtocol) {
14
- let invokeService = null;
15
- // This export should be assigned to 'self.onmessage' in a WebWorker
16
- return function messageHandler(e) {
17
- const data = e.data;
18
- if (!data.type || typeof data.type !== "string") {
19
- log.error(`Unrecognized msg: ${data}`);
20
- return;
21
- }
22
- switch (data.type) {
23
- case "init":
24
- {
25
- wasm.initSync({ module: data.wasmModule });
26
- invokeService = initService(self.postMessage.bind(self), serviceProtocol, wasm, data.qscLogLevel);
27
- }
28
- break;
29
- default:
30
- if (!invokeService) {
31
- log.error(`Received message before the service was initialized: %o`, data);
32
- }
33
- else {
34
- invokeService(data);
35
- }
36
- }
37
- };
38
- }
39
- /**
40
- * Creates and initializes a service in a web worker, and returns a proxy for the service
41
- * to be used from the main thread.
42
- *
43
- * @param workerArg The service web worker or the URL of the web worker script.
44
- * @param wasmModule The wasm module to initialize the service with
45
- * @param serviceProtocol An object that describes the service: its constructor, methods and events
46
- * @returns A proxy object that implements the service interface.
47
- * This interface can now be used as if calling into the real service,
48
- * and the calls will be proxied to the web worker.
49
- */
50
- export function createProxy(workerArg, wasmModule, serviceProtocol) {
51
- // Create or use the WebWorker
52
- const worker = typeof workerArg === "string" ? new Worker(workerArg) : workerArg;
53
- // Send it the Wasm module to instantiate
54
- worker.postMessage({
55
- type: "init",
56
- wasmModule,
57
- qscLogLevel: log.getLogLevel(),
58
- });
59
- // If you lose the 'this' binding, some environments have issues
60
- const postMessage = worker.postMessage.bind(worker);
61
- const onTerminate = () => worker.terminate();
62
- // Create the proxy which will forward method calls to the worker
63
- const proxy = createProxyInternal(postMessage, onTerminate, serviceProtocol.methods);
64
- // Let proxy handle response and event messages from the worker
65
- worker.onmessage = (ev) => proxy.onMsgFromWorker(ev.data);
66
- return proxy;
67
- }
@@ -1,20 +0,0 @@
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
- */
8
- export declare function createWorker<TService extends ServiceMethods<TService>, TServiceEventMsg extends IServiceEventMessage>(protocol: ServiceProtocol<TService, TServiceEventMsg>): void;
9
- /**
10
- * Creates and initializes a service in a worker thread, and returns a proxy for the service
11
- * to be used from the main thread.
12
- *
13
- * @param workerArg The the URL of the service web worker script.
14
- * @param wasmModule The wasm module to initialize the service with
15
- * @param serviceProtocol An object that describes the service: its constructor, methods and events
16
- * @returns A proxy object that implements the service interface.
17
- * This interface can now be used as if calling into the real service,
18
- * and the calls will be proxied to the web worker.
19
- */
20
- export declare function createProxy<TService extends ServiceMethods<TService>, TServiceEventMsg extends IServiceEventMessage>(workerArg: string, serviceProtocol: ServiceProtocol<TService, TServiceEventMsg>): TService & IServiceProxy;
@@ -1,56 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import { dirname, join } from "node:path";
4
- import { fileURLToPath } from "node:url";
5
- import { Worker, isMainThread, parentPort, workerData, } from "node:worker_threads";
6
- import * as wasm from "../../lib/nodejs/qsc_wasm.cjs";
7
- import { log } from "../log.js";
8
- import { createProxyInternal, initService, } from "./common.js";
9
- /**
10
- * Creates an initializes a service, setting it up to receive requests.
11
- * This function to be is used in the worker.
12
- *
13
- * @param serviceProtocol An object that describes the service: its constructor, methods and events
14
- */
15
- export function createWorker(protocol) {
16
- if (isMainThread)
17
- throw "Worker script should be loaded in a Worker thread only";
18
- const port = parentPort;
19
- const postMessage = port.postMessage.bind(port);
20
- const invokeService = initService(postMessage, protocol, wasm, // Need to cast due to difference in web and node wasm types
21
- workerData && typeof workerData.qscLogLevel === "number"
22
- ? workerData.qscLogLevel
23
- : undefined);
24
- function messageHandler(data) {
25
- if (!data.type || typeof data.type !== "string") {
26
- log.error(`Unrecognized msg: %O"`, data);
27
- return;
28
- }
29
- invokeService(data);
30
- }
31
- port.addListener("message", messageHandler);
32
- }
33
- /**
34
- * Creates and initializes a service in a worker thread, and returns a proxy for the service
35
- * to be used from the main thread.
36
- *
37
- * @param workerArg The the URL of the service web worker script.
38
- * @param wasmModule The wasm module to initialize the service with
39
- * @param serviceProtocol An object that describes the service: its constructor, methods and events
40
- * @returns A proxy object that implements the service interface.
41
- * This interface can now be used as if calling into the real service,
42
- * and the calls will be proxied to the web worker.
43
- */
44
- export function createProxy(workerArg, serviceProtocol) {
45
- const thisDir = dirname(fileURLToPath(import.meta.url));
46
- const worker = new Worker(join(thisDir, workerArg), {
47
- workerData: { qscLogLevel: log.getLogLevel() },
48
- });
49
- // Create the proxy which will forward method calls to the worker
50
- const proxy = createProxyInternal(
51
- // If you lose the 'this' binding, some environments have issues.
52
- worker.postMessage.bind(worker), () => worker.terminate(), serviceProtocol.methods);
53
- // Let proxy handle response and event messages from the worker
54
- worker.addListener("message", proxy.onMsgFromWorker);
55
- return proxy;
56
- }