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.
- package/README.md +5 -22
- package/dist/cancellation.js +3 -1
- package/dist/compiler/compiler.d.ts +1 -1
- package/dist/compiler/compiler.js +1 -0
- package/dist/compiler/events.d.ts +1 -1
- package/dist/compiler/events.js +4 -4
- package/dist/compiler/{worker-browser.js → worker.js} +3 -2
- package/dist/data-structures/legacyCircuitUpdate.js +1 -1
- package/dist/debug-service/debug-service.d.ts +2 -2
- package/dist/debug-service/debug-service.js +2 -0
- package/dist/debug-service/{worker-browser.js → worker.js} +3 -2
- package/dist/diagnostics.js +1 -0
- package/dist/language-service/language-service.d.ts +2 -2
- package/dist/language-service/language-service.js +4 -1
- package/dist/language-service/{worker-browser.js → worker.js} +3 -2
- package/dist/main.d.ts +33 -11
- package/dist/main.js +115 -31
- package/dist/node.d.ts +1 -0
- package/dist/node.js +10 -0
- package/dist/project.js +1 -0
- package/dist/utils.js +2 -2
- package/dist/workers/{browser.d.ts → main.d.ts} +3 -10
- package/dist/workers/{common.js → main.js} +40 -139
- package/dist/workers/{common.d.ts → types.d.ts} +3 -26
- package/dist/workers/types.js +3 -0
- package/dist/workers/worker.d.ts +9 -0
- package/dist/workers/worker.js +176 -0
- package/docs/Microsoft.Quantum.Core/IsRangeEmpty.md +1 -1
- package/docs/Microsoft.Quantum.Core/Length.md +1 -1
- package/docs/Microsoft.Quantum.Core/RangeEnd.md +1 -1
- package/docs/Microsoft.Quantum.Core/RangeStart.md +1 -1
- package/docs/Microsoft.Quantum.Core/Repeated.md +1 -1
- package/docs/Microsoft.Quantum.Core/index.md +1 -1
- package/docs/Std.Arithmetic/AddLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfEqualL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfEqualLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfGreaterL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfGreaterLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfLessL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfLessLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfLessOrEqualL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfLessOrEqualLE.md +1 -1
- package/docs/Std.Arithmetic/FourierTDIncByLE.md +1 -1
- package/docs/Std.Arithmetic/IncByI.md +1 -1
- package/docs/Std.Arithmetic/IncByIUsingIncByLE.md +1 -1
- package/docs/Std.Arithmetic/IncByL.md +1 -1
- package/docs/Std.Arithmetic/IncByLE.md +1 -1
- package/docs/Std.Arithmetic/IncByLEUsingAddLE.md +1 -1
- package/docs/Std.Arithmetic/IncByLUsingIncByLE.md +1 -1
- package/docs/Std.Arithmetic/LookAheadDKRSAddLE.md +1 -1
- package/docs/Std.Arithmetic/MAJ.md +1 -1
- package/docs/Std.Arithmetic/ReflectAboutInteger.md +1 -1
- package/docs/Std.Arithmetic/RippleCarryCGAddLE.md +1 -1
- package/docs/Std.Arithmetic/RippleCarryCGIncByLE.md +1 -1
- package/docs/Std.Arithmetic/RippleCarryTTKIncByLE.md +1 -1
- package/docs/Std.Arithmetic/index.md +1 -1
- package/docs/Std.Arrays/All.md +1 -1
- package/docs/Std.Arrays/Any.md +1 -1
- package/docs/Std.Arrays/Chunks.md +1 -1
- package/docs/Std.Arrays/CircularlyShifted.md +1 -1
- package/docs/Std.Arrays/ColumnAt.md +1 -1
- package/docs/Std.Arrays/Count.md +1 -1
- package/docs/Std.Arrays/Diagonal.md +1 -1
- package/docs/Std.Arrays/DrawMany.md +1 -1
- package/docs/Std.Arrays/Enumerated.md +1 -1
- package/docs/Std.Arrays/Excluding.md +1 -1
- package/docs/Std.Arrays/Filtered.md +1 -1
- package/docs/Std.Arrays/FlatMapped.md +1 -1
- package/docs/Std.Arrays/Flattened.md +1 -1
- package/docs/Std.Arrays/Fold.md +1 -1
- package/docs/Std.Arrays/ForEach.md +1 -1
- package/docs/Std.Arrays/Head.md +1 -1
- package/docs/Std.Arrays/HeadAndRest.md +1 -1
- package/docs/Std.Arrays/IndexOf.md +1 -1
- package/docs/Std.Arrays/IndexRange.md +1 -1
- package/docs/Std.Arrays/Interleaved.md +1 -1
- package/docs/Std.Arrays/IsEmpty.md +1 -1
- package/docs/Std.Arrays/IsRectangularArray.md +1 -1
- package/docs/Std.Arrays/IsSorted.md +1 -1
- package/docs/Std.Arrays/IsSquareArray.md +1 -1
- package/docs/Std.Arrays/Mapped.md +1 -1
- package/docs/Std.Arrays/MappedByIndex.md +1 -1
- package/docs/Std.Arrays/MappedOverRange.md +1 -1
- package/docs/Std.Arrays/Most.md +1 -1
- package/docs/Std.Arrays/MostAndTail.md +1 -1
- package/docs/Std.Arrays/Padded.md +1 -1
- package/docs/Std.Arrays/Partitioned.md +1 -1
- package/docs/Std.Arrays/Rest.md +1 -1
- package/docs/Std.Arrays/Reversed.md +1 -1
- package/docs/Std.Arrays/SequenceI.md +1 -1
- package/docs/Std.Arrays/SequenceL.md +1 -1
- package/docs/Std.Arrays/Sorted.md +1 -1
- package/docs/Std.Arrays/Subarray.md +1 -1
- package/docs/Std.Arrays/Swapped.md +1 -1
- package/docs/Std.Arrays/Tail.md +1 -1
- package/docs/Std.Arrays/Transposed.md +1 -1
- package/docs/Std.Arrays/Unzipped.md +1 -1
- package/docs/Std.Arrays/Where.md +1 -1
- package/docs/Std.Arrays/Windows.md +1 -1
- package/docs/Std.Arrays/Zipped.md +1 -1
- package/docs/Std.Arrays/index.md +1 -1
- package/docs/Std.Canon/ApplyCNOTChain.md +1 -1
- package/docs/Std.Canon/ApplyControlledOnBitString.md +1 -1
- package/docs/Std.Canon/ApplyControlledOnInt.md +1 -1
- package/docs/Std.Canon/ApplyOperationPowerA.md +1 -1
- package/docs/Std.Canon/ApplyOperationPowerCA.md +1 -1
- package/docs/Std.Canon/ApplyP.md +1 -1
- package/docs/Std.Canon/ApplyPauli.md +1 -1
- package/docs/Std.Canon/ApplyPauliFromBitString.md +1 -1
- package/docs/Std.Canon/ApplyPauliFromInt.md +1 -1
- package/docs/Std.Canon/ApplyQFT.md +1 -1
- package/docs/Std.Canon/ApplyQPE.md +1 -1
- package/docs/Std.Canon/ApplyToEach.md +1 -1
- package/docs/Std.Canon/ApplyToEachA.md +1 -1
- package/docs/Std.Canon/ApplyToEachC.md +1 -1
- package/docs/Std.Canon/ApplyToEachCA.md +1 -1
- package/docs/Std.Canon/ApplyXorInPlace.md +1 -1
- package/docs/Std.Canon/ApplyXorInPlaceL.md +1 -1
- package/docs/Std.Canon/CX.md +1 -1
- package/docs/Std.Canon/CY.md +1 -1
- package/docs/Std.Canon/CZ.md +1 -1
- package/docs/Std.Canon/Fst.md +1 -1
- package/docs/Std.Canon/MapPauliAxis.md +1 -1
- package/docs/Std.Canon/Relabel.md +1 -1
- package/docs/Std.Canon/Snd.md +1 -1
- package/docs/Std.Canon/SwapReverseRegister.md +1 -1
- package/docs/Std.Canon/index.md +1 -1
- package/docs/Std.Convert/BigIntAsBoolArray.md +1 -1
- package/docs/Std.Convert/BigIntAsInt.md +1 -1
- package/docs/Std.Convert/BoolArrayAsBigInt.md +1 -1
- package/docs/Std.Convert/BoolArrayAsInt.md +1 -1
- package/docs/Std.Convert/BoolArrayAsResultArray.md +1 -1
- package/docs/Std.Convert/BoolAsResult.md +1 -1
- package/docs/Std.Convert/ComplexAsComplexPolar.md +1 -1
- package/docs/Std.Convert/ComplexPolarAsComplex.md +1 -1
- package/docs/Std.Convert/DoubleAsStringWithPrecision.md +1 -1
- package/docs/Std.Convert/IntAsBigInt.md +1 -1
- package/docs/Std.Convert/IntAsBoolArray.md +1 -1
- package/docs/Std.Convert/IntAsDouble.md +1 -1
- package/docs/Std.Convert/ResultArrayAsBoolArray.md +1 -1
- package/docs/Std.Convert/ResultArrayAsInt.md +1 -1
- package/docs/Std.Convert/ResultAsBool.md +1 -1
- package/docs/Std.Convert/index.md +1 -1
- package/docs/Std.Core/Complex.md +1 -1
- package/docs/Std.Core/Length.md +1 -1
- package/docs/Std.Core/Repeated.md +1 -1
- package/docs/Std.Core/index.md +1 -1
- package/docs/Std.Diagnostics/ApplyIdleNoise.md +1 -1
- package/docs/Std.Diagnostics/BitFlipNoise.md +1 -1
- package/docs/Std.Diagnostics/CheckAllZero.md +1 -1
- package/docs/Std.Diagnostics/CheckOperationsAreEqual.md +1 -1
- package/docs/Std.Diagnostics/CheckZero.md +1 -1
- package/docs/Std.Diagnostics/ConfigurePauliNoise.md +1 -1
- package/docs/Std.Diagnostics/ConfigureQubitLoss.md +1 -1
- package/docs/Std.Diagnostics/DepolarizingNoise.md +1 -1
- package/docs/Std.Diagnostics/DumpMachine.md +1 -1
- package/docs/Std.Diagnostics/DumpOperation.md +1 -1
- package/docs/Std.Diagnostics/DumpRegister.md +1 -1
- package/docs/Std.Diagnostics/Fact.md +5 -5
- package/docs/Std.Diagnostics/NoNoise.md +1 -1
- package/docs/Std.Diagnostics/PhaseFlipNoise.md +1 -1
- package/docs/Std.Diagnostics/PostSelectZ.md +1 -1
- package/docs/Std.Diagnostics/StartCountingFunction.md +1 -1
- package/docs/Std.Diagnostics/StartCountingOperation.md +1 -1
- package/docs/Std.Diagnostics/StartCountingQubits.md +1 -1
- package/docs/Std.Diagnostics/StopCountingFunction.md +1 -1
- package/docs/Std.Diagnostics/StopCountingOperation.md +1 -1
- package/docs/Std.Diagnostics/StopCountingQubits.md +1 -1
- package/docs/Std.Diagnostics/index.md +2 -2
- package/docs/Std.Intrinsic/AND.md +1 -1
- package/docs/Std.Intrinsic/ApplyUnitary.md +1 -1
- package/docs/Std.Intrinsic/CCNOT.md +1 -1
- package/docs/Std.Intrinsic/CNOT.md +1 -1
- package/docs/Std.Intrinsic/Exp.md +1 -1
- package/docs/Std.Intrinsic/H.md +1 -1
- package/docs/Std.Intrinsic/I.md +1 -1
- package/docs/Std.Intrinsic/M.md +1 -1
- package/docs/Std.Intrinsic/Measure.md +1 -1
- package/docs/Std.Intrinsic/Message.md +1 -1
- package/docs/Std.Intrinsic/R.md +1 -1
- package/docs/Std.Intrinsic/R1.md +1 -1
- package/docs/Std.Intrinsic/R1Frac.md +1 -1
- package/docs/Std.Intrinsic/RFrac.md +1 -1
- package/docs/Std.Intrinsic/Reset.md +1 -1
- package/docs/Std.Intrinsic/ResetAll.md +1 -1
- package/docs/Std.Intrinsic/Rx.md +1 -1
- package/docs/Std.Intrinsic/Rxx.md +1 -1
- package/docs/Std.Intrinsic/Ry.md +1 -1
- package/docs/Std.Intrinsic/Ryy.md +1 -1
- package/docs/Std.Intrinsic/Rz.md +1 -1
- package/docs/Std.Intrinsic/Rzz.md +1 -1
- package/docs/Std.Intrinsic/S.md +1 -1
- package/docs/Std.Intrinsic/SWAP.md +1 -1
- package/docs/Std.Intrinsic/SX.md +1 -1
- package/docs/Std.Intrinsic/T.md +1 -1
- package/docs/Std.Intrinsic/X.md +1 -1
- package/docs/Std.Intrinsic/Y.md +1 -1
- package/docs/Std.Intrinsic/Z.md +1 -1
- package/docs/Std.Intrinsic/index.md +1 -1
- package/docs/Std.Logical/Xor.md +1 -1
- package/docs/Std.Logical/index.md +1 -1
- package/docs/Std.Math/AbsComplex.md +1 -1
- package/docs/Std.Math/AbsComplexPolar.md +1 -1
- package/docs/Std.Math/AbsD.md +1 -1
- package/docs/Std.Math/AbsI.md +1 -1
- package/docs/Std.Math/AbsL.md +1 -1
- package/docs/Std.Math/AbsSquaredComplex.md +1 -1
- package/docs/Std.Math/AbsSquaredComplexPolar.md +1 -1
- package/docs/Std.Math/ApproximateFactorial.md +1 -1
- package/docs/Std.Math/ArcCos.md +1 -1
- package/docs/Std.Math/ArcCosh.md +1 -1
- package/docs/Std.Math/ArcSin.md +1 -1
- package/docs/Std.Math/ArcSinh.md +1 -1
- package/docs/Std.Math/ArcTan.md +1 -1
- package/docs/Std.Math/ArcTan2.md +1 -1
- package/docs/Std.Math/ArcTanh.md +1 -1
- package/docs/Std.Math/ArgComplex.md +1 -1
- package/docs/Std.Math/ArgComplexPolar.md +1 -1
- package/docs/Std.Math/Binom.md +1 -1
- package/docs/Std.Math/BitSizeI.md +1 -1
- package/docs/Std.Math/BitSizeL.md +1 -1
- package/docs/Std.Math/Ceiling.md +1 -1
- package/docs/Std.Math/Complex.md +1 -1
- package/docs/Std.Math/ComplexPolar.md +1 -1
- package/docs/Std.Math/ContinuedFractionConvergentI.md +1 -1
- package/docs/Std.Math/ContinuedFractionConvergentL.md +1 -1
- package/docs/Std.Math/Cos.md +1 -1
- package/docs/Std.Math/Cosh.md +1 -1
- package/docs/Std.Math/DivRemI.md +1 -1
- package/docs/Std.Math/DivRemL.md +1 -1
- package/docs/Std.Math/DividedByC.md +1 -1
- package/docs/Std.Math/DividedByCP.md +1 -1
- package/docs/Std.Math/E.md +1 -1
- package/docs/Std.Math/ExpModI.md +1 -1
- package/docs/Std.Math/ExpModL.md +1 -1
- package/docs/Std.Math/ExtendedGreatestCommonDivisorI.md +1 -1
- package/docs/Std.Math/ExtendedGreatestCommonDivisorL.md +1 -1
- package/docs/Std.Math/FactorialI.md +1 -1
- package/docs/Std.Math/FactorialL.md +1 -1
- package/docs/Std.Math/Floor.md +1 -1
- package/docs/Std.Math/GreatestCommonDivisorI.md +1 -1
- package/docs/Std.Math/GreatestCommonDivisorL.md +1 -1
- package/docs/Std.Math/HammingWeightI.md +1 -1
- package/docs/Std.Math/InverseModI.md +1 -1
- package/docs/Std.Math/InverseModL.md +1 -1
- package/docs/Std.Math/IsCoprimeI.md +1 -1
- package/docs/Std.Math/IsCoprimeL.md +1 -1
- package/docs/Std.Math/IsInfinite.md +1 -1
- package/docs/Std.Math/IsNaN.md +1 -1
- package/docs/Std.Math/LargestFixedPoint.md +1 -1
- package/docs/Std.Math/Lg.md +1 -1
- package/docs/Std.Math/Log.md +1 -1
- package/docs/Std.Math/Log10.md +1 -1
- package/docs/Std.Math/LogFactorialD.md +1 -1
- package/docs/Std.Math/LogGammaD.md +1 -1
- package/docs/Std.Math/LogOf2.md +1 -1
- package/docs/Std.Math/Max.md +1 -1
- package/docs/Std.Math/MaxD.md +1 -1
- package/docs/Std.Math/MaxI.md +1 -1
- package/docs/Std.Math/MaxL.md +1 -1
- package/docs/Std.Math/Min.md +1 -1
- package/docs/Std.Math/MinD.md +1 -1
- package/docs/Std.Math/MinI.md +1 -1
- package/docs/Std.Math/MinL.md +1 -1
- package/docs/Std.Math/MinusC.md +1 -1
- package/docs/Std.Math/MinusCP.md +1 -1
- package/docs/Std.Math/ModulusI.md +1 -1
- package/docs/Std.Math/ModulusL.md +1 -1
- package/docs/Std.Math/NegationC.md +1 -1
- package/docs/Std.Math/NegationCP.md +1 -1
- package/docs/Std.Math/PI.md +1 -1
- package/docs/Std.Math/PNorm.md +1 -1
- package/docs/Std.Math/PNormalized.md +1 -1
- package/docs/Std.Math/PlusC.md +1 -1
- package/docs/Std.Math/PlusCP.md +1 -1
- package/docs/Std.Math/PowC.md +1 -1
- package/docs/Std.Math/PowCP.md +1 -1
- package/docs/Std.Math/RealMod.md +1 -1
- package/docs/Std.Math/Round.md +1 -1
- package/docs/Std.Math/RoundHalfAwayFromZero.md +1 -1
- package/docs/Std.Math/SignD.md +1 -1
- package/docs/Std.Math/SignI.md +1 -1
- package/docs/Std.Math/SignL.md +1 -1
- package/docs/Std.Math/Sin.md +1 -1
- package/docs/Std.Math/Sinh.md +1 -1
- package/docs/Std.Math/SmallestFixedPoint.md +1 -1
- package/docs/Std.Math/Sqrt.md +1 -1
- package/docs/Std.Math/SquaredNorm.md +1 -1
- package/docs/Std.Math/Tan.md +1 -1
- package/docs/Std.Math/Tanh.md +1 -1
- package/docs/Std.Math/TimesC.md +1 -1
- package/docs/Std.Math/TimesCP.md +1 -1
- package/docs/Std.Math/TrailingZeroCountI.md +1 -1
- package/docs/Std.Math/TrailingZeroCountL.md +1 -1
- package/docs/Std.Math/Truncate.md +1 -1
- package/docs/Std.Math/index.md +1 -1
- package/docs/Std.Measurement/IsLossResult.md +1 -1
- package/docs/Std.Measurement/MResetEachZ.md +1 -1
- package/docs/Std.Measurement/MResetX.md +1 -1
- package/docs/Std.Measurement/MResetY.md +1 -1
- package/docs/Std.Measurement/MResetZ.md +1 -1
- package/docs/Std.Measurement/MResetZChecked.md +1 -1
- package/docs/Std.Measurement/MeasureAllZ.md +1 -1
- package/docs/Std.Measurement/MeasureEachZ.md +1 -1
- package/docs/Std.Measurement/MeasureInteger.md +1 -1
- package/docs/Std.Measurement/index.md +1 -1
- package/docs/Std.Random/DrawRandomBool.md +1 -1
- package/docs/Std.Random/DrawRandomDouble.md +1 -1
- package/docs/Std.Random/DrawRandomInt.md +1 -1
- package/docs/Std.Random/index.md +1 -1
- package/docs/Std.Range/IsRangeEmpty.md +1 -1
- package/docs/Std.Range/RangeEnd.md +1 -1
- package/docs/Std.Range/RangeReverse.md +1 -1
- package/docs/Std.Range/RangeStart.md +1 -1
- package/docs/Std.Range/RangeStep.md +1 -1
- package/docs/Std.Range/index.md +1 -1
- package/docs/Std.ResourceEstimation/AccountForEstimates.md +1 -1
- package/docs/Std.ResourceEstimation/AuxQubitCount.md +1 -1
- package/docs/Std.ResourceEstimation/BeginEstimateCaching.md +1 -1
- package/docs/Std.ResourceEstimation/BeginRepeatEstimates.md +1 -1
- package/docs/Std.ResourceEstimation/CczCount.md +1 -1
- package/docs/Std.ResourceEstimation/EnableMemoryComputeArchitecture.md +1 -1
- package/docs/Std.ResourceEstimation/EndEstimateCaching.md +1 -1
- package/docs/Std.ResourceEstimation/EndRepeatEstimates.md +1 -1
- package/docs/Std.ResourceEstimation/LeastFrequentlyUsed.md +1 -1
- package/docs/Std.ResourceEstimation/LeastRecentlyUsed.md +1 -1
- package/docs/Std.ResourceEstimation/MeasurementCount.md +1 -1
- package/docs/Std.ResourceEstimation/PSSPCLayout.md +1 -1
- package/docs/Std.ResourceEstimation/RepeatEstimates.md +1 -1
- package/docs/Std.ResourceEstimation/RotationCount.md +1 -1
- package/docs/Std.ResourceEstimation/RotationDepth.md +1 -1
- package/docs/Std.ResourceEstimation/SingleVariant.md +1 -1
- package/docs/Std.ResourceEstimation/TCount.md +1 -1
- package/docs/Std.ResourceEstimation/index.md +1 -1
- package/docs/Std.StatePreparation/ApproximatelyPreparePureStateCP.md +1 -1
- package/docs/Std.StatePreparation/PreparePureStateD.md +1 -1
- package/docs/Std.StatePreparation/PrepareUniformSuperposition.md +1 -1
- package/docs/Std.StatePreparation/index.md +1 -1
- package/docs/Std.TableLookup/Select.md +1 -1
- package/docs/Std.TableLookup/index.md +1 -1
- package/docs/index.md +1 -1
- package/lib/web/qsc_wasm.d.ts +3 -3
- package/lib/web/qsc_wasm.js +6 -6
- package/lib/web/qsc_wasm_bg.wasm +0 -0
- package/package.json +11 -8
- package/ux/circuit-vis/draggable.ts +1 -1
- package/ux/circuit-vis/sqore.ts +2 -1
- package/ux/report.ts +1 -1
- package/ux/resultsTable.tsx +1 -2
- package/ux/saveImage.tsx +1 -2
- package/ux/tsconfig.json +3 -2
- package/dist/browser.d.ts +0 -32
- package/dist/browser.js +0 -126
- package/dist/compiler/worker-node.d.ts +0 -1
- package/dist/compiler/worker-node.js +0 -5
- package/dist/debug-service/worker-node.d.ts +0 -1
- package/dist/debug-service/worker-node.js +0 -5
- package/dist/language-service/worker-node.d.ts +0 -1
- package/dist/language-service/worker-node.js +0 -5
- package/dist/workers/browser.js +0 -67
- package/dist/workers/node.d.ts +0 -20
- package/dist/workers/node.js +0 -56
- package/lib/nodejs/qsc_wasm.cjs +0 -1614
- package/lib/nodejs/qsc_wasm.d.cts +0 -383
- package/lib/nodejs/qsc_wasm_bg.wasm +0 -0
- /package/dist/compiler/{worker-browser.d.ts → worker.d.ts} +0 -0
- /package/dist/debug-service/{worker-browser.d.ts → worker.d.ts} +0 -0
- /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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
|
package/dist/cancellation.js
CHANGED
|
@@ -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/
|
|
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;
|
package/dist/compiler/events.js
CHANGED
|
@@ -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/
|
|
3
|
+
import { createWorker } from "../workers/worker.js";
|
|
4
4
|
import { compilerProtocol } from "./compiler.js";
|
|
5
|
-
//
|
|
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 "../
|
|
3
|
+
import { ProgramConfig } from "../main.js";
|
|
4
4
|
import { IQscEventTarget, QscEventData } from "../compiler/events.js";
|
|
5
|
-
import { IServiceProxy, ServiceProtocol } from "../workers/
|
|
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/
|
|
3
|
+
import { createWorker } from "../workers/worker.js";
|
|
4
4
|
import { debugServiceProtocol } from "./debug-service.js";
|
|
5
|
-
//
|
|
5
|
+
// message handler exported for backwards compatibility
|
|
6
6
|
export const messageHandler = createWorker(debugServiceProtocol);
|
|
7
|
+
addEventListener("message", messageHandler);
|
package/dist/diagnostics.js
CHANGED
|
@@ -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 "../
|
|
3
|
-
import { IServiceProxy, ServiceProtocol } from "../workers/
|
|
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/
|
|
3
|
+
import { createWorker } from "../workers/worker.js";
|
|
4
4
|
import { languageServiceProtocol } from "./language-service.js";
|
|
5
|
-
//
|
|
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
|
|
5
|
+
import { ILanguageService, ILanguageServiceWorker } from "./language-service/language-service.js";
|
|
4
6
|
import { ProjectLoader } from "./project.js";
|
|
5
|
-
|
|
6
|
-
export
|
|
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
|
|
9
|
-
export declare function getProjectLoader(host: IProjectHost): ProjectLoader
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function
|
|
12
|
-
export declare function
|
|
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
|
|
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
|
-
//
|
|
4
|
-
|
|
5
|
-
import
|
|
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 {
|
|
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
|
-
|
|
13
|
-
let
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
78
|
+
await instantiateWasm();
|
|
25
79
|
return wasm.get_library_source_content(path);
|
|
26
80
|
}
|
|
27
|
-
export function
|
|
28
|
-
|
|
29
|
-
return new
|
|
81
|
+
export async function getDebugService() {
|
|
82
|
+
await instantiateWasm();
|
|
83
|
+
return new QSharpDebugService(wasm);
|
|
30
84
|
}
|
|
31
|
-
export function getProjectLoader(host) {
|
|
32
|
-
|
|
85
|
+
export async function getProjectLoader(host) {
|
|
86
|
+
await instantiateWasm();
|
|
33
87
|
return new ProjectLoader(wasm, host);
|
|
34
88
|
}
|
|
35
|
-
|
|
36
|
-
|
|
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
|
|
39
|
-
|
|
40
|
-
return new
|
|
97
|
+
export async function getCompiler() {
|
|
98
|
+
await instantiateWasm();
|
|
99
|
+
return new Compiler(wasm);
|
|
41
100
|
}
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
109
|
+
export async function getLanguageService(host) {
|
|
110
|
+
await instantiateWasm();
|
|
47
111
|
return new QSharpLanguageService(wasm, host);
|
|
48
112
|
}
|
|
49
|
-
|
|
50
|
-
|
|
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
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
|
|
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
|
|
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 "./
|
|
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
|
|
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;
|