qsharp-lang 1.1.3 → 1.1.5-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 (301) hide show
  1. package/dist/browser.d.ts +3 -3
  2. package/dist/browser.js +12 -58
  3. package/dist/compiler/compiler.d.ts +4 -2
  4. package/dist/compiler/compiler.js +14 -1
  5. package/dist/compiler/events.d.ts +1 -1
  6. package/dist/compiler/worker-browser.d.ts +1 -1
  7. package/dist/compiler/worker-browser.js +3 -40
  8. package/dist/compiler/worker-node.js +3 -39
  9. package/dist/debug-service/debug-service.d.ts +5 -3
  10. package/dist/debug-service/debug-service.js +18 -1
  11. package/dist/debug-service/worker-browser.d.ts +1 -1
  12. package/dist/debug-service/worker-browser.js +3 -29
  13. package/dist/debug-service/worker-node.js +3 -28
  14. package/dist/katas-content.generated.js +419 -408
  15. package/dist/language-service/language-service.d.ts +10 -2
  16. package/dist/language-service/language-service.js +30 -0
  17. package/dist/language-service/worker-browser.d.ts +1 -1
  18. package/dist/language-service/worker-browser.js +3 -29
  19. package/dist/language-service/worker-node.js +3 -28
  20. package/dist/main.d.ts +2 -2
  21. package/dist/main.js +7 -42
  22. package/dist/samples.generated.js +1 -1
  23. package/dist/workers/browser.d.ts +21 -0
  24. package/dist/workers/browser.js +67 -0
  25. package/dist/{worker-proxy.d.ts → workers/common.d.ts} +26 -9
  26. package/dist/{worker-proxy.js → workers/common.js} +33 -4
  27. package/dist/workers/node.d.ts +20 -0
  28. package/dist/workers/node.js +55 -0
  29. package/docs/Microsoft.Quantum.Arrays/All.md +42 -0
  30. package/docs/Microsoft.Quantum.Arrays/Any.md +41 -0
  31. package/docs/Microsoft.Quantum.Arrays/Chunks.md +34 -0
  32. package/docs/Microsoft.Quantum.Arrays/CircularlyShifted.md +46 -0
  33. package/docs/Microsoft.Quantum.Arrays/ColumnAt.md +47 -0
  34. package/docs/Microsoft.Quantum.Arrays/Count.md +42 -0
  35. package/docs/Microsoft.Quantum.Arrays/Diagonal.md +43 -0
  36. package/docs/Microsoft.Quantum.Arrays/DrawMany.md +43 -0
  37. package/docs/Microsoft.Quantum.Arrays/Enumerated.md +44 -0
  38. package/docs/Microsoft.Quantum.Arrays/Excluding.md +46 -0
  39. package/docs/Microsoft.Quantum.Arrays/Filtered.md +42 -0
  40. package/docs/Microsoft.Quantum.Arrays/FlatMapped.md +45 -0
  41. package/docs/Microsoft.Quantum.Arrays/Flattened.md +38 -0
  42. package/docs/Microsoft.Quantum.Arrays/Fold.md +46 -0
  43. package/docs/Microsoft.Quantum.Arrays/ForEach.md +41 -0
  44. package/docs/Microsoft.Quantum.Arrays/Head.md +32 -0
  45. package/docs/Microsoft.Quantum.Arrays/HeadAndRest.md +32 -0
  46. package/docs/Microsoft.Quantum.Arrays/IndexOf.md +39 -0
  47. package/docs/Microsoft.Quantum.Arrays/IndexRange.md +40 -0
  48. package/docs/Microsoft.Quantum.Arrays/Interleaved.md +49 -0
  49. package/docs/Microsoft.Quantum.Arrays/IsEmpty.md +28 -0
  50. package/docs/Microsoft.Quantum.Arrays/IsRectangularArray.md +42 -0
  51. package/docs/Microsoft.Quantum.Arrays/IsSorted.md +42 -0
  52. package/docs/Microsoft.Quantum.Arrays/IsSquareArray.md +42 -0
  53. package/docs/Microsoft.Quantum.Arrays/Mapped.md +41 -0
  54. package/docs/Microsoft.Quantum.Arrays/MappedByIndex.md +52 -0
  55. package/docs/Microsoft.Quantum.Arrays/MappedOverRange.md +46 -0
  56. package/docs/Microsoft.Quantum.Arrays/Most.md +33 -0
  57. package/docs/Microsoft.Quantum.Arrays/MostAndTail.md +32 -0
  58. package/docs/Microsoft.Quantum.Arrays/Padded.md +49 -0
  59. package/docs/Microsoft.Quantum.Arrays/Partitioned.md +44 -0
  60. package/docs/Microsoft.Quantum.Arrays/Rest.md +33 -0
  61. package/docs/Microsoft.Quantum.Arrays/Reversed.md +33 -0
  62. package/docs/Microsoft.Quantum.Arrays/SequenceI.md +41 -0
  63. package/docs/Microsoft.Quantum.Arrays/SequenceL.md +41 -0
  64. package/docs/Microsoft.Quantum.Arrays/Sorted.md +51 -0
  65. package/docs/Microsoft.Quantum.Arrays/Subarray.md +49 -0
  66. package/docs/Microsoft.Quantum.Arrays/Swapped.md +40 -0
  67. package/docs/Microsoft.Quantum.Arrays/Tail.md +32 -0
  68. package/docs/Microsoft.Quantum.Arrays/Transposed.md +46 -0
  69. package/docs/Microsoft.Quantum.Arrays/Unzipped.md +45 -0
  70. package/docs/Microsoft.Quantum.Arrays/Where.md +35 -0
  71. package/docs/Microsoft.Quantum.Arrays/Windows.md +47 -0
  72. package/docs/Microsoft.Quantum.Arrays/Zipped.md +49 -0
  73. package/docs/Microsoft.Quantum.Canon/ApplyCNOTChain.md +35 -0
  74. package/docs/Microsoft.Quantum.Canon/ApplyControlledOnBitString.md +41 -0
  75. package/docs/Microsoft.Quantum.Canon/ApplyControlledOnInt.md +40 -0
  76. package/docs/Microsoft.Quantum.Canon/ApplyP.md +38 -0
  77. package/docs/Microsoft.Quantum.Canon/ApplyPauli.md +40 -0
  78. package/docs/Microsoft.Quantum.Canon/ApplyPauliFromBitString.md +46 -0
  79. package/docs/Microsoft.Quantum.Canon/ApplyPauliFromInt.md +44 -0
  80. package/docs/Microsoft.Quantum.Canon/ApplyQFT.md +34 -0
  81. package/docs/Microsoft.Quantum.Canon/ApplyToEach.md +38 -0
  82. package/docs/Microsoft.Quantum.Canon/ApplyToEachA.md +42 -0
  83. package/docs/Microsoft.Quantum.Canon/ApplyToEachC.md +42 -0
  84. package/docs/Microsoft.Quantum.Canon/ApplyToEachCA.md +42 -0
  85. package/docs/Microsoft.Quantum.Canon/ApplyXorInPlace.md +30 -0
  86. package/docs/Microsoft.Quantum.Canon/ApplyXorInPlaceL.md +30 -0
  87. package/docs/Microsoft.Quantum.Canon/CX.md +50 -0
  88. package/docs/Microsoft.Quantum.Canon/CY.md +44 -0
  89. package/docs/Microsoft.Quantum.Canon/CZ.md +44 -0
  90. package/docs/Microsoft.Quantum.Canon/Fst.md +20 -0
  91. package/docs/Microsoft.Quantum.Canon/Snd.md +20 -0
  92. package/docs/Microsoft.Quantum.Canon/SwapReverseRegister.md +25 -0
  93. package/docs/Microsoft.Quantum.Convert/BigIntAsBoolArray.md +35 -0
  94. package/docs/Microsoft.Quantum.Convert/BoolArrayAsBigInt.md +34 -0
  95. package/docs/Microsoft.Quantum.Convert/BoolArrayAsInt.md +25 -0
  96. package/docs/Microsoft.Quantum.Convert/BoolArrayAsResultArray.md +29 -0
  97. package/docs/Microsoft.Quantum.Convert/BoolAsResult.md +29 -0
  98. package/docs/Microsoft.Quantum.Convert/ComplexAsComplexPolar.md +29 -0
  99. package/docs/Microsoft.Quantum.Convert/ComplexPolarAsComplex.md +29 -0
  100. package/docs/Microsoft.Quantum.Convert/IntAsBigInt.md +21 -0
  101. package/docs/Microsoft.Quantum.Convert/IntAsBoolArray.md +35 -0
  102. package/docs/Microsoft.Quantum.Convert/IntAsDouble.md +21 -0
  103. package/docs/Microsoft.Quantum.Convert/ResultArrayAsBoolArray.md +29 -0
  104. package/docs/Microsoft.Quantum.Convert/ResultArrayAsInt.md +34 -0
  105. package/docs/Microsoft.Quantum.Convert/ResultAsBool.md +29 -0
  106. package/docs/Microsoft.Quantum.Core/IsRangeEmpty.md +32 -0
  107. package/docs/Microsoft.Quantum.Core/Length.md +28 -0
  108. package/docs/Microsoft.Quantum.Core/RangeEnd.md +37 -0
  109. package/docs/Microsoft.Quantum.Core/RangeReverse.md +32 -0
  110. package/docs/Microsoft.Quantum.Core/RangeStart.md +36 -0
  111. package/docs/Microsoft.Quantum.Core/RangeStep.md +33 -0
  112. package/docs/Microsoft.Quantum.Core/Repeated.md +36 -0
  113. package/docs/Microsoft.Quantum.Diagnostics/CheckAllZero.md +18 -0
  114. package/docs/Microsoft.Quantum.Diagnostics/CheckOperationsAreEqual.md +47 -0
  115. package/docs/Microsoft.Quantum.Diagnostics/CheckZero.md +18 -0
  116. package/docs/Microsoft.Quantum.Diagnostics/DumpMachine.md +18 -0
  117. package/docs/Microsoft.Quantum.Diagnostics/Fact.md +20 -0
  118. package/docs/Microsoft.Quantum.Intrinsic/CCNOT.md +35 -0
  119. package/docs/Microsoft.Quantum.Intrinsic/CNOT.md +47 -0
  120. package/docs/Microsoft.Quantum.Intrinsic/Exp.md +40 -0
  121. package/docs/Microsoft.Quantum.Intrinsic/H.md +34 -0
  122. package/docs/Microsoft.Quantum.Intrinsic/I.md +25 -0
  123. package/docs/Microsoft.Quantum.Intrinsic/M.md +45 -0
  124. package/docs/Microsoft.Quantum.Intrinsic/Measure.md +55 -0
  125. package/docs/Microsoft.Quantum.Intrinsic/Message.md +30 -0
  126. package/docs/Microsoft.Quantum.Intrinsic/R.md +42 -0
  127. package/docs/Microsoft.Quantum.Intrinsic/R1.md +41 -0
  128. package/docs/Microsoft.Quantum.Intrinsic/R1Frac.md +51 -0
  129. package/docs/Microsoft.Quantum.Intrinsic/RFrac.md +53 -0
  130. package/docs/Microsoft.Quantum.Intrinsic/Reset.md +26 -0
  131. package/docs/Microsoft.Quantum.Intrinsic/ResetAll.md +26 -0
  132. package/docs/Microsoft.Quantum.Intrinsic/Rx.md +44 -0
  133. package/docs/Microsoft.Quantum.Intrinsic/Rxx.md +42 -0
  134. package/docs/Microsoft.Quantum.Intrinsic/Ry.md +44 -0
  135. package/docs/Microsoft.Quantum.Intrinsic/Ryy.md +42 -0
  136. package/docs/Microsoft.Quantum.Intrinsic/Rz.md +44 -0
  137. package/docs/Microsoft.Quantum.Intrinsic/Rzz.md +42 -0
  138. package/docs/Microsoft.Quantum.Intrinsic/S.md +36 -0
  139. package/docs/Microsoft.Quantum.Intrinsic/SWAP.md +49 -0
  140. package/docs/Microsoft.Quantum.Intrinsic/T.md +36 -0
  141. package/docs/Microsoft.Quantum.Intrinsic/X.md +36 -0
  142. package/docs/Microsoft.Quantum.Intrinsic/Y.md +36 -0
  143. package/docs/Microsoft.Quantum.Intrinsic/Z.md +36 -0
  144. package/docs/Microsoft.Quantum.Logical/Xor.md +38 -0
  145. package/docs/Microsoft.Quantum.Math/AbsComplex.md +29 -0
  146. package/docs/Microsoft.Quantum.Math/AbsComplexPolar.md +29 -0
  147. package/docs/Microsoft.Quantum.Math/AbsD.md +21 -0
  148. package/docs/Microsoft.Quantum.Math/AbsI.md +21 -0
  149. package/docs/Microsoft.Quantum.Math/AbsL.md +20 -0
  150. package/docs/Microsoft.Quantum.Math/AbsSquaredComplex.md +29 -0
  151. package/docs/Microsoft.Quantum.Math/AbsSquaredComplexPolar.md +29 -0
  152. package/docs/Microsoft.Quantum.Math/ApproximateFactorial.md +40 -0
  153. package/docs/Microsoft.Quantum.Math/ArcCos.md +21 -0
  154. package/docs/Microsoft.Quantum.Math/ArcCosh.md +21 -0
  155. package/docs/Microsoft.Quantum.Math/ArcSin.md +21 -0
  156. package/docs/Microsoft.Quantum.Math/ArcSinh.md +21 -0
  157. package/docs/Microsoft.Quantum.Math/ArcTan.md +21 -0
  158. package/docs/Microsoft.Quantum.Math/ArcTan2.md +21 -0
  159. package/docs/Microsoft.Quantum.Math/ArcTanh.md +21 -0
  160. package/docs/Microsoft.Quantum.Math/ArgComplex.md +29 -0
  161. package/docs/Microsoft.Quantum.Math/ArgComplexPolar.md +28 -0
  162. package/docs/Microsoft.Quantum.Math/Binom.md +34 -0
  163. package/docs/Microsoft.Quantum.Math/BitSizeI.md +22 -0
  164. package/docs/Microsoft.Quantum.Math/BitSizeL.md +22 -0
  165. package/docs/Microsoft.Quantum.Math/Ceiling.md +22 -0
  166. package/docs/Microsoft.Quantum.Math/Complex.md +29 -0
  167. package/docs/Microsoft.Quantum.Math/ComplexPolar.md +28 -0
  168. package/docs/Microsoft.Quantum.Math/ContinuedFractionConvergentI.md +23 -0
  169. package/docs/Microsoft.Quantum.Math/ContinuedFractionConvergentL.md +23 -0
  170. package/docs/Microsoft.Quantum.Math/Cos.md +21 -0
  171. package/docs/Microsoft.Quantum.Math/Cosh.md +21 -0
  172. package/docs/Microsoft.Quantum.Math/DivRemI.md +21 -0
  173. package/docs/Microsoft.Quantum.Math/DivRemL.md +21 -0
  174. package/docs/Microsoft.Quantum.Math/DividedByC.md +30 -0
  175. package/docs/Microsoft.Quantum.Math/DividedByCP.md +30 -0
  176. package/docs/Microsoft.Quantum.Math/E.md +28 -0
  177. package/docs/Microsoft.Quantum.Math/ExpModI.md +22 -0
  178. package/docs/Microsoft.Quantum.Math/ExpModL.md +22 -0
  179. package/docs/Microsoft.Quantum.Math/ExtendedGreatestCommonDivisorI.md +22 -0
  180. package/docs/Microsoft.Quantum.Math/ExtendedGreatestCommonDivisorL.md +22 -0
  181. package/docs/Microsoft.Quantum.Math/FactorialI.md +38 -0
  182. package/docs/Microsoft.Quantum.Math/FactorialL.md +32 -0
  183. package/docs/Microsoft.Quantum.Math/Floor.md +22 -0
  184. package/docs/Microsoft.Quantum.Math/GreatestCommonDivisorI.md +22 -0
  185. package/docs/Microsoft.Quantum.Math/GreatestCommonDivisorL.md +22 -0
  186. package/docs/Microsoft.Quantum.Math/HammingWeightI.md +21 -0
  187. package/docs/Microsoft.Quantum.Math/InverseModI.md +25 -0
  188. package/docs/Microsoft.Quantum.Math/InverseModL.md +25 -0
  189. package/docs/Microsoft.Quantum.Math/IsCoprimeI.md +34 -0
  190. package/docs/Microsoft.Quantum.Math/IsCoprimeL.md +34 -0
  191. package/docs/Microsoft.Quantum.Math/IsInfinite.md +48 -0
  192. package/docs/Microsoft.Quantum.Math/IsNaN.md +29 -0
  193. package/docs/Microsoft.Quantum.Math/LargestFixedPoint.md +31 -0
  194. package/docs/Microsoft.Quantum.Math/Lg.md +21 -0
  195. package/docs/Microsoft.Quantum.Math/Log.md +21 -0
  196. package/docs/Microsoft.Quantum.Math/Log10.md +21 -0
  197. package/docs/Microsoft.Quantum.Math/LogFactorialD.md +34 -0
  198. package/docs/Microsoft.Quantum.Math/LogGammaD.md +38 -0
  199. package/docs/Microsoft.Quantum.Math/LogOf2.md +24 -0
  200. package/docs/Microsoft.Quantum.Math/Max.md +28 -0
  201. package/docs/Microsoft.Quantum.Math/MaxD.md +21 -0
  202. package/docs/Microsoft.Quantum.Math/MaxI.md +21 -0
  203. package/docs/Microsoft.Quantum.Math/MaxL.md +21 -0
  204. package/docs/Microsoft.Quantum.Math/Min.md +28 -0
  205. package/docs/Microsoft.Quantum.Math/MinD.md +21 -0
  206. package/docs/Microsoft.Quantum.Math/MinI.md +21 -0
  207. package/docs/Microsoft.Quantum.Math/MinL.md +21 -0
  208. package/docs/Microsoft.Quantum.Math/MinusC.md +30 -0
  209. package/docs/Microsoft.Quantum.Math/MinusCP.md +30 -0
  210. package/docs/Microsoft.Quantum.Math/ModulusI.md +22 -0
  211. package/docs/Microsoft.Quantum.Math/ModulusL.md +22 -0
  212. package/docs/Microsoft.Quantum.Math/NegationC.md +28 -0
  213. package/docs/Microsoft.Quantum.Math/NegationCP.md +28 -0
  214. package/docs/Microsoft.Quantum.Math/PI.md +28 -0
  215. package/docs/Microsoft.Quantum.Math/PNorm.md +31 -0
  216. package/docs/Microsoft.Quantum.Math/PNormalized.md +35 -0
  217. package/docs/Microsoft.Quantum.Math/PlusC.md +30 -0
  218. package/docs/Microsoft.Quantum.Math/PlusCP.md +30 -0
  219. package/docs/Microsoft.Quantum.Math/PowC.md +31 -0
  220. package/docs/Microsoft.Quantum.Math/PowCP.md +31 -0
  221. package/docs/Microsoft.Quantum.Math/RealMod.md +38 -0
  222. package/docs/Microsoft.Quantum.Math/Round.md +22 -0
  223. package/docs/Microsoft.Quantum.Math/SignD.md +21 -0
  224. package/docs/Microsoft.Quantum.Math/SignI.md +21 -0
  225. package/docs/Microsoft.Quantum.Math/SignL.md +21 -0
  226. package/docs/Microsoft.Quantum.Math/Sin.md +21 -0
  227. package/docs/Microsoft.Quantum.Math/Sinh.md +21 -0
  228. package/docs/Microsoft.Quantum.Math/SmallestFixedPoint.md +30 -0
  229. package/docs/Microsoft.Quantum.Math/Sqrt.md +21 -0
  230. package/docs/Microsoft.Quantum.Math/SquaredNorm.md +32 -0
  231. package/docs/Microsoft.Quantum.Math/Tan.md +21 -0
  232. package/docs/Microsoft.Quantum.Math/Tanh.md +21 -0
  233. package/docs/Microsoft.Quantum.Math/TimesC.md +30 -0
  234. package/docs/Microsoft.Quantum.Math/TimesCP.md +30 -0
  235. package/docs/Microsoft.Quantum.Math/TrailingZeroCountI.md +22 -0
  236. package/docs/Microsoft.Quantum.Math/TrailingZeroCountL.md +22 -0
  237. package/docs/Microsoft.Quantum.Math/Truncate.md +22 -0
  238. package/docs/Microsoft.Quantum.Measurement/MResetEachZ.md +27 -0
  239. package/docs/Microsoft.Quantum.Measurement/MResetX.md +35 -0
  240. package/docs/Microsoft.Quantum.Measurement/MResetY.md +35 -0
  241. package/docs/Microsoft.Quantum.Measurement/MResetZ.md +35 -0
  242. package/docs/Microsoft.Quantum.Measurement/MeasureAllZ.md +36 -0
  243. package/docs/Microsoft.Quantum.Measurement/MeasureEachZ.md +30 -0
  244. package/docs/Microsoft.Quantum.Measurement/MeasureInteger.md +34 -0
  245. package/docs/Microsoft.Quantum.Random/DrawRandomDouble.md +40 -0
  246. package/docs/Microsoft.Quantum.Random/DrawRandomInt.md +40 -0
  247. package/docs/Microsoft.Quantum.ResourceEstimation/AccountForEstimates.md +33 -0
  248. package/docs/Microsoft.Quantum.ResourceEstimation/AuxQubitCount.md +22 -0
  249. package/docs/Microsoft.Quantum.ResourceEstimation/BeginEstimateCaching.md +37 -0
  250. package/docs/Microsoft.Quantum.ResourceEstimation/BeginRepeatEstimates.md +31 -0
  251. package/docs/Microsoft.Quantum.ResourceEstimation/CczCount.md +22 -0
  252. package/docs/Microsoft.Quantum.ResourceEstimation/EndEstimateCaching.md +23 -0
  253. package/docs/Microsoft.Quantum.ResourceEstimation/EndRepeatEstimates.md +22 -0
  254. package/docs/Microsoft.Quantum.ResourceEstimation/MeasurementCount.md +22 -0
  255. package/docs/Microsoft.Quantum.ResourceEstimation/PSSPCLayout.md +23 -0
  256. package/docs/Microsoft.Quantum.ResourceEstimation/RepeatEstimates.md +29 -0
  257. package/docs/Microsoft.Quantum.ResourceEstimation/RotationCount.md +22 -0
  258. package/docs/Microsoft.Quantum.ResourceEstimation/RotationDepth.md +22 -0
  259. package/docs/Microsoft.Quantum.ResourceEstimation/SingleVariant.md +22 -0
  260. package/docs/Microsoft.Quantum.ResourceEstimation/TCount.md +22 -0
  261. package/docs/Microsoft.Quantum.Unstable.Arithmetic/AddLE.md +28 -0
  262. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfEqualL.md +22 -0
  263. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfEqualLE.md +23 -0
  264. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterL.md +22 -0
  265. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterLE.md +23 -0
  266. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterOrEqualL.md +22 -0
  267. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterOrEqualLE.md +23 -0
  268. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessL.md +22 -0
  269. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessLE.md +23 -0
  270. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessOrEqualL.md +22 -0
  271. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessOrEqualLE.md +23 -0
  272. package/docs/Microsoft.Quantum.Unstable.Arithmetic/FourierTDIncByLE.md +31 -0
  273. package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByI.md +27 -0
  274. package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByIUsingIncByLE.md +26 -0
  275. package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByL.md +27 -0
  276. package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByLE.md +27 -0
  277. package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByLEUsingAddLE.md +36 -0
  278. package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByLUsingIncByLE.md +26 -0
  279. package/docs/Microsoft.Quantum.Unstable.Arithmetic/LookAheadDKRSAddLE.md +35 -0
  280. package/docs/Microsoft.Quantum.Unstable.Arithmetic/MAJ.md +34 -0
  281. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ReflectAboutInteger.md +37 -0
  282. package/docs/Microsoft.Quantum.Unstable.Arithmetic/RippleCarryCGAddLE.md +33 -0
  283. package/docs/Microsoft.Quantum.Unstable.Arithmetic/RippleCarryCGIncByLE.md +33 -0
  284. package/docs/Microsoft.Quantum.Unstable.Arithmetic/RippleCarryTTKIncByLE.md +35 -0
  285. package/docs/Microsoft.Quantum.Unstable.StatePreparation/ApproximatelyPreparePureStateCP.md +66 -0
  286. package/docs/Microsoft.Quantum.Unstable.StatePreparation/PreparePureStateD.md +64 -0
  287. package/docs/Microsoft.Quantum.Unstable.TableLookup/Select.md +53 -0
  288. package/docs/toc.yml +307 -0
  289. package/lib/node/qsc_wasm.cjs +40 -13
  290. package/lib/node/qsc_wasm.d.cts +15 -0
  291. package/lib/node/qsc_wasm_bg.wasm +0 -0
  292. package/lib/web/qsc_wasm.d.ts +17 -0
  293. package/lib/web/qsc_wasm.js +38 -11
  294. package/lib/web/qsc_wasm_bg.wasm +0 -0
  295. package/package.json +4 -2
  296. package/dist/compiler/worker-proxy.d.ts +0 -7
  297. package/dist/compiler/worker-proxy.js +0 -18
  298. package/dist/debug-service/worker-proxy.d.ts +0 -7
  299. package/dist/debug-service/worker-proxy.js +0 -22
  300. package/dist/language-service/worker-proxy.d.ts +0 -6
  301. package/dist/language-service/worker-proxy.js +0 -27
package/dist/browser.d.ts CHANGED
@@ -11,13 +11,13 @@ export declare function getDebugService(): Promise<IDebugService>;
11
11
  export declare function getProjectLoader(readFile: (path: string) => Promise<string | null>, loadDirectory: (path: string) => Promise<[string, number][]>, getManifest: (path: string) => Promise<{
12
12
  manifestDirectory: string;
13
13
  } | null>): Promise<wasm.ProjectLoader>;
14
- export declare function getDebugServiceWorker(workerArg: string | Worker): IDebugServiceWorker;
14
+ export declare function getDebugServiceWorker(worker: string | Worker): IDebugServiceWorker;
15
15
  export declare function getCompiler(): Promise<ICompiler>;
16
- export declare function getCompilerWorker(workerArg: string | Worker): ICompilerWorker;
16
+ export declare function getCompilerWorker(worker: string | Worker): ICompilerWorker;
17
17
  export declare function getLanguageService(readFile?: (uri: string) => Promise<string | null>, listDir?: (uri: string) => Promise<[string, number][]>, getManifest?: (uri: string) => Promise<{
18
18
  manifestDirectory: string;
19
19
  } | null>): Promise<ILanguageService>;
20
- export declare function getLanguageServiceWorker(workerArg: string | Worker): ILanguageServiceWorker;
20
+ export declare function getLanguageServiceWorker(worker: string | Worker): ILanguageServiceWorker;
21
21
  export { type Dump, type ShotResult } from "./compiler/common.js";
22
22
  export { type CompilerState } from "./compiler/compiler.js";
23
23
  export { QscEventTarget } from "./compiler/events.js";
package/dist/browser.js CHANGED
@@ -2,14 +2,13 @@
2
2
  // Licensed under the MIT License.
3
3
  // This module is the entry point for browser environments. For Node.js environment,
4
4
  // the "./main.js" module is the entry point.
5
- import initWasm, * as wasm from "../lib/web/qsc_wasm.js";
6
- import { Compiler } from "./compiler/compiler.js";
7
- import { createCompilerProxy } from "./compiler/worker-proxy.js";
8
- import { QSharpDebugService, } from "./debug-service/debug-service.js";
9
- import { createDebugServiceProxy } from "./debug-service/worker-proxy.js";
10
- import { QSharpLanguageService, qsharpLibraryUriScheme, } from "./language-service/language-service.js";
11
- import { createLanguageServiceProxy } from "./language-service/worker-proxy.js";
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 { QSharpLanguageService, languageServiceProtocol, qsharpLibraryUriScheme, } from "./language-service/language-service.js";
12
10
  import { log } from "./log.js";
11
+ import { createProxy } from "./workers/browser.js";
13
12
  export { qsharpLibraryUriScheme };
14
13
  // Create once. A module is stateless and can be efficiently passed to WebWorkers.
15
14
  let wasmModule = null;
@@ -79,25 +78,10 @@ export async function getProjectLoader(readFile, loadDirectory, getManifest) {
79
78
  // Create the debugger inside a WebWorker and proxy requests.
80
79
  // If the Worker was already created via other means and is ready to receive
81
80
  // messages, then the worker may be passed in and it will be initialized.
82
- export function getDebugServiceWorker(workerArg) {
81
+ export function getDebugServiceWorker(worker) {
83
82
  if (!wasmModule)
84
83
  throw "Wasm module must be loaded first";
85
- // Create or use the WebWorker
86
- const worker = typeof workerArg === "string" ? new Worker(workerArg) : workerArg;
87
- // Send it the Wasm module to instantiate
88
- worker.postMessage({
89
- type: "init",
90
- wasmModule,
91
- qscLogLevel: log.getLogLevel(),
92
- });
93
- // If you lose the 'this' binding, some environments have issues
94
- const postMessage = worker.postMessage.bind(worker);
95
- const onTerminate = () => worker.terminate();
96
- // Create the proxy which will forward method calls to the worker
97
- const proxy = createDebugServiceProxy(postMessage, onTerminate);
98
- // Let proxy handle response and event messages from the worker
99
- worker.onmessage = (ev) => proxy.onMsgFromWorker(ev.data);
100
- return proxy;
84
+ return createProxy(worker, wasmModule, debugServiceProtocol);
101
85
  }
102
86
  export async function getCompiler() {
103
87
  await instantiateWasm();
@@ -106,25 +90,10 @@ export async function getCompiler() {
106
90
  // Create the compiler inside a WebWorker and proxy requests.
107
91
  // If the Worker was already created via other means and is ready to receive
108
92
  // messages, then the worker may be passed in and it will be initialized.
109
- export function getCompilerWorker(workerArg) {
93
+ export function getCompilerWorker(worker) {
110
94
  if (!wasmModule)
111
95
  throw "Wasm module must be loaded first";
112
- // Create or use the WebWorker
113
- const worker = typeof workerArg === "string" ? new Worker(workerArg) : workerArg;
114
- // Send it the Wasm module to instantiate
115
- worker.postMessage({
116
- type: "init",
117
- wasmModule,
118
- qscLogLevel: log.getLogLevel(),
119
- });
120
- // If you lose the 'this' binding, some environments have issues
121
- const postMessage = worker.postMessage.bind(worker);
122
- const onTerminate = () => worker.terminate();
123
- // Create the proxy which will forward method calls to the worker
124
- const proxy = createCompilerProxy(postMessage, onTerminate);
125
- // Let proxy handle response and event messages from the worker
126
- worker.onmessage = (ev) => proxy.onMsgFromWorker(ev.data);
127
- return proxy;
96
+ return createProxy(worker, wasmModule, compilerProtocol);
128
97
  }
129
98
  export async function getLanguageService(readFile, listDir, getManifest) {
130
99
  await instantiateWasm();
@@ -133,25 +102,10 @@ export async function getLanguageService(readFile, listDir, getManifest) {
133
102
  // Create the compiler inside a WebWorker and proxy requests.
134
103
  // If the Worker was already created via other means and is ready to receive
135
104
  // messages, then the worker may be passed in and it will be initialized.
136
- export function getLanguageServiceWorker(workerArg) {
105
+ export function getLanguageServiceWorker(worker) {
137
106
  if (!wasmModule)
138
107
  throw "Wasm module must be loaded first";
139
- // Create or use the WebWorker
140
- const worker = typeof workerArg === "string" ? new Worker(workerArg) : workerArg;
141
- // Send it the Wasm module to instantiate
142
- worker.postMessage({
143
- type: "init",
144
- wasmModule,
145
- qscLogLevel: log.getLogLevel(),
146
- });
147
- // If you lose the 'this' binding, some environments have issues
148
- const postMessage = worker.postMessage.bind(worker);
149
- const onTerminate = () => worker.terminate();
150
- // Create the proxy which will forward method calls to the worker
151
- const proxy = createLanguageServiceProxy(postMessage, onTerminate);
152
- // Let proxy handle response and event messages from the worker
153
- worker.onmessage = (ev) => proxy.onMsgFromWorker(ev.data);
154
- return proxy;
108
+ return createProxy(worker, wasmModule, languageServiceProtocol);
155
109
  }
156
110
  export { QscEventTarget } from "./compiler/events.js";
157
111
  export { getAllKatas, getExerciseSources, getKata, } from "./katas.js";
@@ -1,6 +1,6 @@
1
1
  import { type VSDiagnostic } from "../../lib/web/qsc_wasm.js";
2
- import { IServiceProxy, ServiceState } from "../worker-proxy.js";
3
- import { IQscEventTarget } from "./events.js";
2
+ import { IServiceProxy, ServiceProtocol, ServiceState } from "../workers/common.js";
3
+ import { IQscEventTarget, QscEventData } from "./events.js";
4
4
  type Wasm = typeof import("../../lib/node/qsc_wasm.cjs");
5
5
  export interface ICompiler {
6
6
  checkCode(code: string): Promise<VSDiagnostic[]>;
@@ -23,4 +23,6 @@ export declare class Compiler implements ICompiler {
23
23
  checkExerciseSolution(user_code: string, exercise_sources: string[], eventHandler: IQscEventTarget): Promise<boolean>;
24
24
  }
25
25
  export declare function onCompilerEvent(msg: string, eventTarget: IQscEventTarget): void;
26
+ /** The protocol definition to allow running the compiler in a worker. */
27
+ export declare const compilerProtocol: ServiceProtocol<ICompiler, QscEventData>;
26
28
  export {};
@@ -2,7 +2,7 @@
2
2
  // Licensed under the MIT License.
3
3
  import { log } from "../log.js";
4
4
  import { eventStringToMsg } from "./common.js";
5
- import { makeEvent } from "./events.js";
5
+ import { makeEvent, } from "./events.js";
6
6
  export class Compiler {
7
7
  constructor(wasm) {
8
8
  log.info("Constructing a Compiler instance");
@@ -70,3 +70,16 @@ export function onCompilerEvent(msg, eventTarget) {
70
70
  log.debug("worker dispatching event " + JSON.stringify(qscEvent));
71
71
  eventTarget.dispatchEvent(qscEvent);
72
72
  }
73
+ /** The protocol definition to allow running the compiler in a worker. */
74
+ export const compilerProtocol = {
75
+ class: Compiler,
76
+ methods: {
77
+ checkCode: "request",
78
+ getHir: "request",
79
+ getQir: "request",
80
+ getEstimates: "request",
81
+ run: "requestWithProgress",
82
+ checkExerciseSolution: "requestWithProgress",
83
+ },
84
+ eventNames: ["DumpMachine", "Message", "Result"],
85
+ };
@@ -1,6 +1,6 @@
1
1
  import { ShotResult, Dump, Result } from "./common.js";
2
2
  import { TelemetryEvent } from "../log.js";
3
- import { IServiceEventTarget } from "../worker-proxy.js";
3
+ import { IServiceEventTarget } from "../workers/common.js";
4
4
  export type QscEventData = {
5
5
  type: "Message";
6
6
  detail: string;
@@ -1 +1 @@
1
- export declare function messageHandler(e: MessageEvent): void;
1
+ export declare const messageHandler: (e: MessageEvent<any>) => void;
@@ -1,43 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- import * as wasm from "../../lib/web/qsc_wasm.js";
4
- import { log } from "../log.js";
5
- import { Compiler } from "./compiler.js";
6
- import { createCompilerDispatcher } from "./worker-proxy.js";
7
- let invokeCompiler = null;
8
- function telemetryHandler(telemetry) {
9
- self.postMessage({
10
- messageType: "event",
11
- type: "telemetry-event",
12
- detail: telemetry,
13
- });
14
- }
3
+ import { createWorker } from "../workers/browser.js";
4
+ import { compilerProtocol } from "./compiler.js";
15
5
  // This export should be assigned to 'self.onmessage' in a WebWorker
16
- export 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
- log.setLogLevel(data.qscLogLevel);
26
- log.setTelemetryCollector(telemetryHandler);
27
- wasm.initSync(data.wasmModule);
28
- // Set up logging and telemetry as soon as possible after instantiating
29
- wasm.initLogging(log.logWithLevel, log.getLogLevel());
30
- log.onLevelChanged = (level) => wasm.setLogLevel(level);
31
- const compiler = new Compiler(wasm);
32
- invokeCompiler = createCompilerDispatcher(self.postMessage.bind(self), compiler);
33
- }
34
- break;
35
- default:
36
- if (!invokeCompiler) {
37
- log.error(`Received message before the compiler was initialized: %o`, data);
38
- }
39
- else {
40
- invokeCompiler(data);
41
- }
42
- }
43
- }
6
+ export const messageHandler = createWorker(compilerProtocol);
@@ -1,41 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- // This module supports running the qsharp compiler in a Node.js worker thread. It should be
4
- // used in a Node.js module in a manner similar to the below to create it with the right log level:
5
- //
6
- // const worker = new Worker(join(thisDir,"worker-node.js"), {
7
- // workerData: {qscLogLevel: log.getLogLevel() }
8
- // });
9
- import { isMainThread, parentPort, workerData } from "node:worker_threads";
10
- import * as wasm from "../../lib/node/qsc_wasm.cjs";
11
- import { log } from "../log.js";
12
- import { Compiler } from "./compiler.js";
13
- import { createCompilerDispatcher } from "./worker-proxy.js";
14
- if (isMainThread)
15
- throw "Worker script should be loaded in a Worker thread only";
16
- if (workerData && typeof workerData.qscLogLevel === "number") {
17
- log.setLogLevel(workerData.qscLogLevel);
18
- }
19
- const port = parentPort; // eslint-disable-line @typescript-eslint/no-non-null-assertion
20
- const postMessage = port.postMessage.bind(port);
21
- function telemetryHandler(telemetry) {
22
- postMessage({
23
- messageType: "event",
24
- type: "telemetry-event",
25
- detail: telemetry,
26
- });
27
- }
28
- // Set up logging and telemetry as soon as possible after instantiating
29
- log.onLevelChanged = (level) => wasm.setLogLevel(level);
30
- log.setTelemetryCollector(telemetryHandler);
31
- wasm.initLogging(log.logWithLevel, log.getLogLevel());
32
- const compiler = new Compiler(wasm);
33
- const invokeCompiler = createCompilerDispatcher(postMessage, compiler);
34
- function messageHandler(data) {
35
- if (!data.type || typeof data.type !== "string") {
36
- log.error(`Unrecognized msg: %O"`, data);
37
- return;
38
- }
39
- invokeCompiler(data);
40
- }
41
- port.addListener("message", messageHandler);
3
+ import { createWorker } from "../workers/node.js";
4
+ import { compilerProtocol } from "./compiler.js";
5
+ createWorker(compilerProtocol);
@@ -1,7 +1,7 @@
1
- import type { IBreakpointSpan, IStackFrame, IStructStepResult, IVariable, IQuantumState } from "../../lib/node/qsc_wasm.cjs";
1
+ import type { IBreakpointSpan, IQuantumState, IStackFrame, IStructStepResult, IVariable } from "../../lib/node/qsc_wasm.cjs";
2
2
  import { TargetProfile } from "../browser.js";
3
- import { IQscEventTarget } from "../compiler/events.js";
4
- import { IServiceProxy } from "../worker-proxy.js";
3
+ import { IQscEventTarget, QscEventData } from "../compiler/events.js";
4
+ import { IServiceProxy, ServiceProtocol } from "../workers/common.js";
5
5
  type QscWasm = typeof import("../../lib/node/qsc_wasm.cjs");
6
6
  export interface IDebugService {
7
7
  loadSource(sources: [string, string][], target: TargetProfile, entry: string | undefined): Promise<string>;
@@ -32,4 +32,6 @@ export declare class QSharpDebugService implements IDebugService {
32
32
  dispose(): Promise<void>;
33
33
  }
34
34
  export declare function onCompilerEvent(msg: string, eventTarget: IQscEventTarget): void;
35
+ /** The protocol definition to allow running the debugger in a worker. */
36
+ export declare const debugServiceProtocol: ServiceProtocol<IDebugService, QscEventData>;
35
37
  export {};
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
3
  import { eventStringToMsg } from "../compiler/common.js";
4
- import { makeEvent } from "../compiler/events.js";
4
+ import { makeEvent, } from "../compiler/events.js";
5
5
  import { log } from "../log.js";
6
6
  export class QSharpDebugService {
7
7
  constructor(wasm) {
@@ -75,3 +75,20 @@ export function onCompilerEvent(msg, eventTarget) {
75
75
  log.debug("worker dispatching event " + JSON.stringify(qscEvent));
76
76
  eventTarget.dispatchEvent(qscEvent);
77
77
  }
78
+ /** The protocol definition to allow running the debugger in a worker. */
79
+ export const debugServiceProtocol = {
80
+ class: QSharpDebugService,
81
+ methods: {
82
+ loadSource: "request",
83
+ getBreakpoints: "request",
84
+ getLocalVariables: "request",
85
+ captureQuantumState: "request",
86
+ getStackFrames: "request",
87
+ evalContinue: "requestWithProgress",
88
+ evalNext: "requestWithProgress",
89
+ evalStepIn: "requestWithProgress",
90
+ evalStepOut: "requestWithProgress",
91
+ dispose: "request",
92
+ },
93
+ eventNames: ["DumpMachine", "Message", "Result"],
94
+ };
@@ -1 +1 @@
1
- export declare function messageHandler(e: MessageEvent): void;
1
+ export declare const messageHandler: (e: MessageEvent<any>) => void;
@@ -1,32 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- import * as wasm from "../../lib/web/qsc_wasm.js";
4
- import { log } from "../log.js";
5
- import { QSharpDebugService } from "./debug-service.js";
6
- import { createDebugServiceDispatcher } from "./worker-proxy.js";
7
- let invokeDebugger = null;
3
+ import { createWorker } from "../workers/browser.js";
4
+ import { debugServiceProtocol } from "./debug-service.js";
8
5
  // This export should be assigned to 'self.onmessage' in a WebWorker
9
- export function messageHandler(e) {
10
- const data = e.data;
11
- if (!data.type || typeof data.type !== "string") {
12
- log.error(`Unrecognized msg: ${data}`);
13
- return;
14
- }
15
- switch (data.type) {
16
- case "init":
17
- {
18
- log.setLogLevel(data.qscLogLevel);
19
- wasm.initSync(data.wasmModule);
20
- const debugService = new QSharpDebugService(wasm);
21
- invokeDebugger = createDebugServiceDispatcher(self.postMessage.bind(self), debugService);
22
- }
23
- break;
24
- default:
25
- if (!invokeDebugger) {
26
- log.error(`Received message before the debugger was initialized: %o`, data);
27
- }
28
- else {
29
- invokeDebugger(data);
30
- }
31
- }
32
- }
6
+ export const messageHandler = createWorker(debugServiceProtocol);
@@ -1,30 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- // This module supports running the qsharp debugger in a Node.js worker thread. It should be
4
- // used in a Node.js module in a manner similar to the below to create it with the right log level:
5
- //
6
- // const worker = new Worker(join(thisDir,"worker-node.js"), {
7
- // workerData: {qscLogLevel: log.getLogLevel() }
8
- // });
9
- import { isMainThread, parentPort, workerData } from "node:worker_threads";
10
- import * as wasm from "../../lib/node/qsc_wasm.cjs";
11
- import { log } from "../log.js";
12
- import { QSharpDebugService } from "./debug-service.js";
13
- import { createDebugServiceDispatcher } from "./worker-proxy.js";
14
- if (isMainThread)
15
- throw "Worker script should be loaded in a Worker thread only";
16
- if (workerData && typeof workerData.qscLogLevel === "number") {
17
- log.setLogLevel(workerData.qscLogLevel);
18
- }
19
- const port = parentPort; // eslint-disable-line @typescript-eslint/no-non-null-assertion
20
- const postMessage = port.postMessage.bind(port);
21
- const debuggerd = new QSharpDebugService(wasm);
22
- const invokeDebugger = createDebugServiceDispatcher(postMessage, debuggerd);
23
- function messageHandler(data) {
24
- if (!data.type || typeof data.type !== "string") {
25
- log.error(`Unrecognized msg: %O"`, data);
26
- return;
27
- }
28
- invokeDebugger(data);
29
- }
30
- port.addListener("message", messageHandler);
3
+ import { createWorker } from "../workers/node.js";
4
+ import { debugServiceProtocol } from "./debug-service.js";
5
+ createWorker(debugServiceProtocol);