diff --git a/e2e/playwright/export-snapshots/gltf-binary.png b/e2e/playwright/export-snapshots/gltf-binary.png index aa42dc8e0..ce5bc341c 100644 Binary files a/e2e/playwright/export-snapshots/gltf-binary.png and b/e2e/playwright/export-snapshots/gltf-binary.png differ diff --git a/e2e/playwright/export-snapshots/gltf-embedded.png b/e2e/playwright/export-snapshots/gltf-embedded.png index aa42dc8e0..ce5bc341c 100644 Binary files a/e2e/playwright/export-snapshots/gltf-embedded.png and b/e2e/playwright/export-snapshots/gltf-embedded.png differ diff --git a/e2e/playwright/export-snapshots/gltf-standard.png b/e2e/playwright/export-snapshots/gltf-standard.png index aa42dc8e0..ce5bc341c 100644 Binary files a/e2e/playwright/export-snapshots/gltf-standard.png and b/e2e/playwright/export-snapshots/gltf-standard.png differ diff --git a/e2e/playwright/export-snapshots/obj-.png b/e2e/playwright/export-snapshots/obj-.png index e779960b5..5a6fcfa37 100644 Binary files a/e2e/playwright/export-snapshots/obj-.png and b/e2e/playwright/export-snapshots/obj-.png differ diff --git a/e2e/playwright/export-snapshots/ply-ascii.png b/e2e/playwright/export-snapshots/ply-ascii.png index 726aae81a..5a6fcfa37 100644 Binary files a/e2e/playwright/export-snapshots/ply-ascii.png and b/e2e/playwright/export-snapshots/ply-ascii.png differ diff --git a/e2e/playwright/export-snapshots/ply-binary_big_endian.png b/e2e/playwright/export-snapshots/ply-binary_big_endian.png index 726aae81a..5a6fcfa37 100644 Binary files a/e2e/playwright/export-snapshots/ply-binary_big_endian.png and b/e2e/playwright/export-snapshots/ply-binary_big_endian.png differ diff --git a/e2e/playwright/export-snapshots/ply-binary_little_endian.png b/e2e/playwright/export-snapshots/ply-binary_little_endian.png index 726aae81a..5a6fcfa37 100644 Binary files a/e2e/playwright/export-snapshots/ply-binary_little_endian.png and b/e2e/playwright/export-snapshots/ply-binary_little_endian.png differ diff --git a/e2e/playwright/export-snapshots/step-.png b/e2e/playwright/export-snapshots/step-.png index aa42dc8e0..ce5bc341c 100644 Binary files a/e2e/playwright/export-snapshots/step-.png and b/e2e/playwright/export-snapshots/step-.png differ diff --git a/e2e/playwright/export-snapshots/stl-ascii.png b/e2e/playwright/export-snapshots/stl-ascii.png index f64515206..5a6fcfa37 100644 Binary files a/e2e/playwright/export-snapshots/stl-ascii.png and b/e2e/playwright/export-snapshots/stl-ascii.png differ diff --git a/e2e/playwright/export-snapshots/stl-binary.png b/e2e/playwright/export-snapshots/stl-binary.png index f64515206..5a6fcfa37 100644 Binary files a/e2e/playwright/export-snapshots/stl-binary.png and b/e2e/playwright/export-snapshots/stl-binary.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-inch-2-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-inch-2-Google-Chrome-linux.png index 94025cf7e..6193e60d9 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-inch-2-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-inch-2-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-mm-2-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-mm-2-Google-Chrome-linux.png index 545956e8e..ddabe104b 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-mm-2-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-mm-2-Google-Chrome-linux.png differ diff --git a/src/components/Stream.tsx b/src/components/Stream.tsx index 236402546..f2196b9dd 100644 --- a/src/components/Stream.tsx +++ b/src/components/Stream.tsx @@ -4,7 +4,6 @@ import { getNormalisedCoordinates } from '../lib/utils' import Loading from './Loading' import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { useModelingContext } from 'hooks/useModelingContext' -import { useKclContext } from 'lang/KclProvider' import { ClientSideScene } from 'clientSideScene/ClientSideSceneComp' import { NetworkHealthState, useNetworkStatus } from './NetworkHealthIndicator' import { butName } from 'lib/cameraControls' @@ -29,7 +28,6 @@ export const Stream = ({ className = '' }: { className?: string }) => { })) const { settings } = useSettingsAuthContext() const { state } = useModelingContext() - const { isExecuting } = useKclContext() const { overallState } = useNetworkStatus() const isNetworkOkay = overallState === NetworkHealthState.Ok @@ -103,7 +101,7 @@ export const Stream = ({ className = '' }: { className?: string }) => { controls={false} onPlay={() => setIsLoading(false)} onMouseMoveCapture={handleMouseMove} - className={`w-full cursor-pointer h-full ${isExecuting && 'blur-md'}`} + className="w-full cursor-pointer h-full" disablePictureInPicture style={{ transitionDuration: '200ms', transitionProperty: 'filter' }} id="video-stream" diff --git a/src/lang/std/engineConnection.ts b/src/lang/std/engineConnection.ts index 4519bf6f4..2e2ee99aa 100644 --- a/src/lang/std/engineConnection.ts +++ b/src/lang/std/engineConnection.ts @@ -13,10 +13,16 @@ interface CommandInfo { range: SourceRange pathToNode: PathToNode parentId?: string - additionalData?: { - type: 'cap' - info: 'start' | 'end' - } + additionalData?: + | { + type: 'cap' + info: 'start' | 'end' + } + | { + type: 'batch-ids' + ids: string[] + info?: null + } } type WebSocketResponse = Models['OkWebSocketResponseData_type'] @@ -792,7 +798,7 @@ failed cmd type was ${artifactThatFailed?.commandType}` export type EngineCommand = Models['WebSocketRequest_type'] type ModelTypes = Models['OkModelingCmdResponse_type']['type'] -type CommandTypes = Models['ModelingCmd_type']['type'] +type CommandTypes = Models['ModelingCmd_type']['type'] | 'batch' type UnreliableResponses = Extract< Models['OkModelingCmdResponse_type'], @@ -1073,6 +1079,27 @@ export class EngineCommandManager { } const modelingResponse = message.data.modeling_response const command = this.artifactMap[id] + if ( + command?.type === 'pending' && + command.commandType === 'batch' && + command?.additionalData?.type === 'batch-ids' + ) { + command.additionalData.ids.forEach((id) => { + this.handleModelingCommand(message, id) + }) + // batch artifact is just a container, we don't need to keep it + // once we process all the commands inside it + const resolve = command.resolve + delete this.artifactMap[id] + resolve({ + id, + commandType: command.commandType, + range: command.range, + data: modelingResponse, + raw: message, + }) + return + } const sceneCommand = this.sceneCommandArtifacts[id] this.addCommandLog({ type: 'receive-reliable', @@ -1400,11 +1427,13 @@ export class EngineCommandManager { range, command, ast, + idToRangeMap, }: { id: string range: SourceRange command: EngineCommand | string ast: Program + idToRangeMap?: { [key: string]: SourceRange } }): Promise { if (this.engineConnection === undefined) { return Promise.resolve() @@ -1427,10 +1456,22 @@ export class EngineCommandManager { this.engineConnection?.send(command) if (typeof command !== 'string' && command.type === 'modeling_cmd_req') { return this.handlePendingCommand(id, command?.cmd, ast, range) + } else if ( + typeof command !== 'string' && + command.type === 'modeling_cmd_batch_req' + ) { + return this.handlePendingBatchCommand(id, command.requests, idToRangeMap) } else if (typeof command === 'string') { const parseCommand: EngineCommand = JSON.parse(command) - if (parseCommand.type === 'modeling_cmd_req') + if (parseCommand.type === 'modeling_cmd_req') { return this.handlePendingCommand(id, parseCommand?.cmd, ast, range) + } else if (parseCommand.type === 'modeling_cmd_batch_req') { + return this.handlePendingBatchCommand( + id, + parseCommand.requests, + idToRangeMap + ) + } } throw Error('shouldnt reach here') } @@ -1491,10 +1532,48 @@ export class EngineCommandManager { } return promise } + async handlePendingBatchCommand( + id: string, + commands: Models['ModelingCmdReq_type'][], + idToRangeMap?: { [key: string]: SourceRange }, + ast?: Program, + range?: SourceRange + ) { + let resolve: (val: any) => void = () => {} + const promise = new Promise((_resolve, reject) => { + resolve = _resolve + }) + + if (!idToRangeMap) { + throw new Error('idToRangeMap is required for batch commands') + } + + // Add the overall batch command to the artifact map just so we can track all of the + // individual commands that are part of the batch. + // we'll delete this artifact once all of the individual commands have been processed. + this.artifactMap[id] = { + range: range || [0, 0], + pathToNode: [], + type: 'pending', + commandType: 'batch', + additionalData: { type: 'batch-ids', ids: commands.map((c) => c.cmd_id) }, + parentId: undefined, + promise, + resolve, + } + + await Promise.all( + commands.map((c) => + this.handlePendingCommand(c.cmd_id, c.cmd, ast, idToRangeMap[c.cmd_id]) + ) + ) + return promise + } sendModelingCommandFromWasm( id: string, rangeStr: string, - commandStr: string + commandStr: string, + idToRangeStr: string ): Promise { if (this.engineConnection === undefined) { return Promise.resolve() @@ -1512,6 +1591,8 @@ export class EngineCommandManager { throw new Error('commandStr is undefined') } const range: SourceRange = JSON.parse(rangeStr) + const idToRangeMap: { [key: string]: SourceRange } = + JSON.parse(idToRangeStr) // We only care about the modeling command response. return this.sendModelingCommand({ @@ -1519,6 +1600,7 @@ export class EngineCommandManager { range, command: commandStr, ast: this.getAst(), + idToRangeMap, }).then(({ raw }) => JSON.stringify(raw)) } commandResult(id: string): Promise { diff --git a/src/wasm-lib/Cargo.lock b/src/wasm-lib/Cargo.lock index d2553d1d8..53c05a2d7 100644 --- a/src/wasm-lib/Cargo.lock +++ b/src/wasm-lib/Cargo.lock @@ -39,9 +39,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", @@ -64,9 +64,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "getrandom", @@ -77,9 +77,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -107,9 +107,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -121,36 +121,36 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -174,14 +174,14 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" dependencies = [ - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] name = "arc-swap" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f" [[package]] name = "asn1-rs" @@ -193,7 +193,7 @@ dependencies = [ "asn1-rs-impl", "displaydoc", "nom", - "num-traits 0.2.17", + "num-traits 0.2.18", "rusticata-macros", "thiserror", "time", @@ -272,27 +272,15 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "auto_impl" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ - "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.53", ] [[package]] @@ -303,9 +291,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "95d8e92cac0961e91dbd517496b00f7e9b92363dbe6d42c3198268323798860c" dependencies = [ "addr2line", "cc", @@ -330,9 +318,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.5" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64ct" @@ -342,15 +330,15 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bigdecimal" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06619be423ea5bb86c95f087d5707942791a08a85530df0db2209a3ecfb8bc9" +checksum = "9324c8014cd04590682b34f1e9448d38f0674d0f7b2dc553331016ef0e4e9ebc" dependencies = [ "autocfg", "libm", "num-bigint", "num-integer", - "num-traits 0.2.17", + "num-traits 0.2.18", "serde", ] @@ -377,9 +365,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "bitvec" @@ -422,7 +410,7 @@ dependencies = [ "bitvec", "chrono", "hex", - "indexmap 2.2.2", + "indexmap 2.2.5", "js-sys", "once_cell", "rand 0.8.5", @@ -435,9 +423,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "bytecount" @@ -447,9 +435,9 @@ checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205" [[package]] name = "bytemuck" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" [[package]] name = "byteorder" @@ -483,12 +471,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" [[package]] name = "ccm" @@ -529,17 +514,17 @@ dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", - "num-traits 0.2.17", + "num-traits 0.2.18", "serde", "wasm-bindgen", - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] name = "ciborium" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" dependencies = [ "ciborium-io", "ciborium-ll", @@ -548,18 +533,18 @@ dependencies = [ [[package]] name = "ciborium-io" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" [[package]] name = "ciborium-ll" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" dependencies = [ "ciborium-io", - "half 1.8.2", + "half", ] [[package]] @@ -592,7 +577,6 @@ dependencies = [ "anstyle", "clap_lex", "strsim", - "terminal_size", "unicase", "unicode-width", ] @@ -629,26 +613,25 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "colored" -version = "2.0.4" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" dependencies = [ - "is-terminal", "lazy_static", "windows-sys 0.48.0", ] [[package]] name = "console" -version = "0.15.7" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ "encode_unicode", "lazy_static", "libc", "unicode-width", - "windows-sys 0.45.0", + "windows-sys 0.52.0", ] [[package]] @@ -678,9 +661,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -688,15 +671,15 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.10" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbc60abd742b35f2492f808e1abbb83d45f72db402e14c55057edc9c7b1e9e4" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] @@ -718,9 +701,9 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" dependencies = [ "cfg-if", ] @@ -738,7 +721,7 @@ dependencies = [ "criterion-plot", "is-terminal", "itertools 0.10.5", - "num-traits 0.2.17", + "num-traits 0.2.18", "once_cell", "oorandom", "plotters", @@ -763,46 +746,37 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.8" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" dependencies = [ - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", - "memoffset 0.9.0", - "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" [[package]] name = "crunchy" @@ -844,9 +818,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" dependencies = [ "cfg-if", "cpufeatures", @@ -876,7 +850,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", - "hashbrown 0.14.2", + "hashbrown 0.14.3", "lock_api", "once_cell", "parking_lot_core 0.9.9", @@ -908,7 +882,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.53", - "synstructure 0.13.0", + "synstructure 0.13.1", ] [[package]] @@ -932,49 +906,33 @@ dependencies = [ "displaydoc", "nom", "num-bigint", - "num-traits 0.2.17", + "num-traits 0.2.18", "rusticata-macros", ] [[package]] name = "deranged" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", ] [[package]] name = "derive-docs" -version = "0.1.11" +version = "0.1.12" dependencies = [ "Inflector", + "anyhow", "convert_case", "expectorate", "once_cell", - "openapitor", "pretty_assertions", "proc-macro2", "quote", "regex", - "serde", - "serde_tokenstream", - "syn 2.0.53", -] - -[[package]] -name = "derive-docs" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4e18a04fe569a325dd50743821f2605057ff5c4b48e60512270b4406907825b" -dependencies = [ - "Inflector", - "convert_case", - "once_cell", - "proc-macro2", - "quote", - "regex", + "rustfmt-wrapper", "serde", "serde_tokenstream", "syn 2.0.53", @@ -982,9 +940,9 @@ dependencies = [ [[package]] name = "diesel_derives" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8337737574f55a468005a83499da720f20c65586241ffea339db9ecdfd2b44" +checksum = "5d02eecb814ae714ffe61ddc2db2dd03e6c49a42e269b5001355500d431cce0c" dependencies = [ "diesel_table_macro_syntax", "proc-macro2", @@ -1019,27 +977,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "displaydoc" version = "0.2.4" @@ -1053,9 +990,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.14" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ecdsa" @@ -1073,9 +1010,9 @@ dependencies = [ [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" [[package]] name = "elliptic-curve" @@ -1115,18 +1052,18 @@ dependencies = [ [[package]] name = "enum-iterator" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7add3873b5dd076766ee79c8e406ad1a472c385476b9e38849f8eec24f1be689" +checksum = "9fd242f399be1da0a5354aa462d57b4ab2b4ee0683cc552f7c007d2d12d36e94" dependencies = [ "enum-iterator-derive", ] [[package]] name = "enum-iterator-derive" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" +checksum = "03cdc46ec28bd728e67540c528013c6a10eb69a02eb31078a1bda695438cbfb8" dependencies = [ "proc-macro2", "quote", @@ -1141,12 +1078,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1172,13 +1109,13 @@ dependencies = [ [[package]] name = "exr" -version = "1.71.0" +version = "1.72.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "832a761f35ab3e6664babfbdc6cef35a4860e816ec3916dcfd0882954e98a8a8" +checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4" dependencies = [ "bit_field", "flume", - "half 2.2.1", + "half", "lebe", "miniz_oxide", "rayon-core", @@ -1194,9 +1131,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "fdeflate" -version = "0.3.0" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10" +checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" dependencies = [ "simd-adler32", ] @@ -1213,9 +1150,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f" [[package]] name = "flate2" @@ -1259,9 +1196,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -1275,7 +1212,7 @@ dependencies = [ "colored", "serde", "serde_json", - "serde_yaml 0.8.26", + "serde_yaml", "unicode-segmentation", ] @@ -1393,9 +1330,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "js-sys", @@ -1406,9 +1343,9 @@ dependencies = [ [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ "opaque-debug", "polyval", @@ -1426,9 +1363,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "gloo-utils" @@ -1500,17 +1437,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" dependencies = [ "bytes", "fnv", "futures-core", "futures-sink", "futures-util", - "http 0.2.9", - "indexmap 2.2.2", + "http 0.2.12", + "indexmap 2.2.5", "slab", "tokio", "tokio-util", @@ -1519,16 +1456,11 @@ dependencies = [ [[package]] name = "half" -version = "1.8.2" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" - -[[package]] -name = "half" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" +checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e" dependencies = [ + "cfg-if", "crunchy", ] @@ -1540,9 +1472,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "heck" @@ -1558,18 +1490,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.1.19" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -1597,18 +1520,18 @@ dependencies = [ [[package]] name = "home" -version = "0.5.5" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "http" -version = "0.2.9" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -1617,9 +1540,9 @@ dependencies = [ [[package]] name = "http" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -1628,12 +1551,12 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http 0.2.9", + "http 0.2.12", "pin-project-lite", ] @@ -1651,22 +1574,22 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ "bytes", "futures-channel", "futures-core", "futures-util", "h2", - "http 0.2.9", + "http 0.2.12", "http-body", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2", "tokio", "tower-service", "tracing", @@ -1675,14 +1598,14 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http 0.2.9", + "http 0.2.12", "hyper", - "rustls 0.21.8", + "rustls 0.21.10", "tokio", "tokio-rustls 0.24.1", ] @@ -1702,9 +1625,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.59" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1725,9 +1648,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -1745,7 +1668,7 @@ dependencies = [ "exr", "gif", "jpeg-decoder", - "num-traits 0.2.17", + "num-traits 0.2.18", "png", "qoi", "tiff", @@ -1775,13 +1698,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.2" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" +checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" dependencies = [ "equivalent", - "hashbrown 0.14.2", - "serde", + "hashbrown 0.14.3", ] [[package]] @@ -1837,7 +1759,7 @@ dependencies = [ "log", "rand 0.8.5", "rtcp", - "rtp", + "rtp 0.9.0", "thiserror", "tokio", "waitgroup", @@ -1853,13 +1775,13 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" dependencies = [ - "hermit-abi 0.3.3", - "rustix", - "windows-sys 0.48.0", + "hermit-abi", + "libc", + "windows-sys 0.52.0", ] [[package]] @@ -1871,6 +1793,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.12.1" @@ -1882,15 +1813,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jpeg-decoder" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" +checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" dependencies = [ "rayon", ] @@ -1904,17 +1835,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "json-patch" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3fa5a61630976fc4c353c70297f2e93f1930e3ccee574d59d618ccbd5154ce" -dependencies = [ - "serde", - "serde_json", - "treediff", -] - [[package]] name = "kcl-lib" version = "0.1.46" @@ -1929,7 +1849,7 @@ dependencies = [ "criterion", "dashmap", "databake", - "derive-docs 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "derive-docs", "expectorate", "futures", "gltf-json", @@ -1958,7 +1878,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winnow", + "winnow 0.5.40", "zip", ] @@ -1976,20 +1896,20 @@ dependencies = [ [[package]] name = "kittycad" -version = "0.2.61" +version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949555aa013e1cefa68f59671cfe96602a459c903376c53a410aebf3831d291f" +checksum = "4bb6a3e37a902c099f3f077f1e75814339bf5d548151a675544366841a882377" dependencies = [ "anyhow", "async-trait", - "base64 0.21.5", + "base64 0.21.7", "bigdecimal", "bytes", "chrono", "data-encoding", "format_serde_error", "futures", - "http 0.2.9", + "http 0.2.12", "itertools 0.10.5", "log", "mime_guess", @@ -2066,7 +1986,7 @@ dependencies = [ "enum-iterator", "enum-iterator-derive", "euler", - "http 0.2.9", + "http 0.2.12", "kittycad-execution-plan-macros", "kittycad-execution-plan-traits", "kittycad-modeling-cmds-macros", @@ -2135,9 +2055,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "libc" -version = "0.2.149" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libm" @@ -2153,9 +2073,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "lock_api" @@ -2169,9 +2089,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" dependencies = [ "serde", ] @@ -2231,9 +2151,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memoffset" @@ -2244,15 +2164,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - [[package]] name = "mime" version = "0.3.17" @@ -2277,9 +2188,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", "simd-adler32", @@ -2338,7 +2249,7 @@ dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", - "memoffset 0.7.1", + "memoffset", "pin-utils", ] @@ -2360,17 +2271,22 @@ checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] -name = "num-integer" -version = "0.1.45" +name = "num-conv" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] @@ -2379,14 +2295,14 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" dependencies = [ - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -2397,30 +2313,15 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi", "libc", ] -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" -dependencies = [ - "libc", -] - -[[package]] -name = "numeral" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049950a25a8f69e9673ed52fc58749548cee71194f6c3a8a04b80863637ce722" - [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] @@ -2454,71 +2355,17 @@ checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "openapitor" -version = "0.0.9" -source = "git+https://github.com/KittyCAD/kittycad.rs?branch=main#8512ceae8ea8b5beb70b652edb1173829c00a866" -dependencies = [ - "Inflector", - "anyhow", - "chrono", - "clap", - "data-encoding", - "format_serde_error", - "futures-util", - "http 0.2.9", - "indexmap 2.2.2", - "json-patch", - "log", - "mime_guess", - "numeral", - "once_cell", - "openapiv3", - "phonenumber", - "proc-macro2", - "quote", - "rand 0.8.5", - "regex", - "reqwest", - "reqwest-middleware", - "rustfmt-wrapper", - "schemars", - "serde", - "serde_json", - "serde_yaml 0.9.25", - "slog", - "slog-async", - "slog-json", - "slog-scope", - "slog-stdlog", - "slog-term", - "thiserror", - "url", - "uuid", -] - -[[package]] -name = "openapiv3" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75e56d5c441965b6425165b7e3223cc933ca469834f4a8b4786817a1f9dc4f13" -dependencies = [ - "indexmap 2.2.2", - "serde", - "serde_json", -] +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.62" +version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "cfg-if", "foreign-types", "libc", @@ -2546,9 +2393,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.98" +version = "0.9.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" +checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff" dependencies = [ "cc", "libc", @@ -2715,7 +2562,7 @@ version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "serde", ] @@ -2730,9 +2577,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "phonenumber" @@ -2743,7 +2590,7 @@ dependencies = [ "bincode", "either", "fnv", - "itertools 0.10.5", + "itertools 0.11.0", "lazy_static", "nom", "quick-xml", @@ -2757,18 +2604,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", @@ -2799,9 +2646,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "platforms" @@ -2815,7 +2662,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" dependencies = [ - "num-traits 0.2.17", + "num-traits 0.2.18", "plotters-backend", "plotters-svg", "wasm-bindgen", @@ -2839,9 +2686,9 @@ dependencies = [ [[package]] name = "png" -version = "0.17.10" +version = "0.17.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" +checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" dependencies = [ "bitflags 1.3.2", "crc32fast", @@ -2852,9 +2699,9 @@ dependencies = [ [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", @@ -3019,9 +2866,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -3029,9 +2876,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -3068,15 +2915,6 @@ dependencies = [ "bitflags 1.3.2", ] -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.4.1" @@ -3086,17 +2924,6 @@ dependencies = [ "bitflags 1.3.2", ] -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom", - "redox_syscall 0.2.16", - "thiserror", -] - [[package]] name = "regex" version = "1.10.3" @@ -3111,9 +2938,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", @@ -3152,17 +2979,17 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" -version = "0.11.26" +version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "bytes", "encoding_rs", "futures-core", "futures-util", "h2", - "http 0.2.9", + "http 0.2.12", "http-body", "hyper", "hyper-rustls", @@ -3176,8 +3003,8 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.21.8", - "rustls-pemfile 1.0.3", + "rustls 0.21.10", + "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", @@ -3211,13 +3038,13 @@ dependencies = [ [[package]] name = "reqwest-middleware" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a3e86aa6053e59030e7ce2d2a3b258dd08fc2d337d52f73f6cb480f5858690" +checksum = "5a735987236a8e238bf0296c7e351b999c188ccc11477f311b82b55c93984216" dependencies = [ "anyhow", "async-trait", - "http 0.2.9", + "http 0.2.12", "reqwest", "serde", "task-local-extensions", @@ -3235,7 +3062,7 @@ dependencies = [ "chrono", "futures", "getrandom", - "http 0.2.9", + "http 0.2.12", "hyper", "parking_lot 0.11.2", "reqwest", @@ -3249,9 +3076,9 @@ dependencies = [ [[package]] name = "reqwest-tracing" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b1e66540e0cac90acadaf7109bf99c90d95abcc94b4c096bfa16a2d7aa7a71" +checksum = "190838e54153d7a7e2ea98851304b3ce92daeabf14c54d32b01b84a3e636f683" dependencies = [ "anyhow", "async-trait", @@ -3303,16 +3130,17 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.5" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", "spin 0.9.8", "untrusted 0.9.0", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3327,9 +3155,9 @@ dependencies = [ [[package]] name = "rtcp" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3677908cadfbecb4cc1da9a56a32524fae4ebdfa7c2ea93886e1b1e846488cb9" +checksum = "33648a781874466a62d89e265fee9f17e32bc7d05a256e6cca41bf97eadcd8aa" dependencies = [ "bytes", "thiserror", @@ -3349,6 +3177,19 @@ dependencies = [ "webrtc-util", ] +[[package]] +name = "rtp" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47fca9bd66ae0b1f3f649b8f5003d6176433d7293b78b0fce7e1031816bdd99d" +dependencies = [ + "bytes", + "rand 0.8.5", + "serde", + "thiserror", + "webrtc-util", +] + [[package]] name = "rustc-demangle" version = "0.1.23" @@ -3388,25 +3229,25 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.21" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "rustls" -version = "0.21.8" +version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", - "ring 0.17.5", + "ring 0.17.8", "rustls-webpki 0.101.7", "sct", ] @@ -3418,7 +3259,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" dependencies = [ "log", - "ring 0.17.5", + "ring 0.17.8", "rustls-pki-types", "rustls-webpki 0.102.2", "subtle", @@ -3432,7 +3273,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" dependencies = [ "openssl-probe", - "rustls-pemfile 2.0.0", + "rustls-pemfile 2.1.1", "rustls-pki-types", "schannel", "security-framework", @@ -3440,28 +3281,28 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", ] [[package]] name = "rustls-pemfile" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4" +checksum = "f48172685e6ff52a556baa527774f61fcaa884f59daf3375c62a3f1cd2549dab" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.2.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a716eb65e3158e90e17cd93d855216e27bde02745ab842f2cab4a39dba1bacf" +checksum = "868e20fada228fefaf6b652e00cc73623d54f8171e7352c18bb281571f2d92da" [[package]] name = "rustls-webpki" @@ -3469,7 +3310,7 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.5", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -3479,7 +3320,7 @@ version = "0.102.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" dependencies = [ - "ring 0.17.5", + "ring 0.17.8", "rustls-pki-types", "untrusted 0.9.0", ] @@ -3492,9 +3333,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "same-file" @@ -3507,11 +3348,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3555,15 +3396,15 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.5", + "ring 0.17.8", "untrusted 0.9.0", ] [[package]] name = "sdp" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4653054c30ebce63658762eb0d64e27673868a95564474811ae6c220cf767640" +checksum = "af90731e1f1150eb1740e35f9832958832a893965b632adc7ad27086077e24c7" dependencies = [ "rand 0.8.5", "substring", @@ -3610,9 +3451,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" @@ -3625,9 +3466,9 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.12" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" dependencies = [ "serde", ] @@ -3660,7 +3501,7 @@ version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.5", "itoa", "ryu", "serde", @@ -3668,9 +3509,9 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.16" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" +checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", @@ -3679,9 +3520,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" dependencies = [ "serde", ] @@ -3722,19 +3563,6 @@ dependencies = [ "yaml-rust", ] -[[package]] -name = "serde_yaml" -version = "0.9.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574" -dependencies = [ - "indexmap 2.2.2", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - [[package]] name = "sha1" version = "0.10.6" @@ -3793,9 +3621,9 @@ checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] name = "similar" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597" +checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21" [[package]] name = "slab" @@ -3806,104 +3634,29 @@ dependencies = [ "autocfg", ] -[[package]] -name = "slog" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" - -[[package]] -name = "slog-async" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c8038f898a2c79507940990f05386455b3a317d8f18d4caea7cbc3d5096b84" -dependencies = [ - "crossbeam-channel", - "slog", - "take_mut", - "thread_local", -] - -[[package]] -name = "slog-json" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e1e53f61af1e3c8b852eef0a9dee29008f55d6dd63794f3f12cef786cf0f219" -dependencies = [ - "serde", - "serde_json", - "slog", - "time", -] - -[[package]] -name = "slog-scope" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f95a4b4c3274cd2869549da82b57ccc930859bdbf5bcea0424bc5f140b3c786" -dependencies = [ - "arc-swap", - "lazy_static", - "slog", -] - -[[package]] -name = "slog-stdlog" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6706b2ace5bbae7291d3f8d2473e2bfab073ccd7d03670946197aec98471fa3e" -dependencies = [ - "log", - "slog", - "slog-scope", -] - -[[package]] -name = "slog-term" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87d29185c55b7b258b4f120eab00f48557d4d9bc814f41713f449d35b0f8977c" -dependencies = [ - "atty", - "slog", - "term", - "thread_local", - "time", -] - [[package]] name = "smallvec" -version = "1.11.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smol_str" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" +checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49" dependencies = [ "serde", ] [[package]] name = "socket2" -version = "0.4.10" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" -dependencies = [ - "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -4013,16 +3766,16 @@ dependencies = [ [[package]] name = "stun" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7beb1624a3ea34778d58d30e2b8606b4d29fe65e87c4d50b87ed30afd5c3830c" +checksum = "d3f371788132e9d623e6eab4ba28aac083763a4133f045e6ebaee5ceb869803d" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "crc", "lazy_static", "md-5", "rand 0.8.5", - "ring 0.16.20", + "ring 0.17.8", "subtle", "thiserror", "tokio", @@ -4087,14 +3840,13 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", "syn 2.0.53", - "unicode-xid", ] [[package]] @@ -4142,12 +3894,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "take_mut" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" - [[package]] name = "tap" version = "1.0.1" @@ -4165,47 +3911,25 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", - "redox_syscall 0.3.5", "rustix", - "windows-sys 0.48.0", -] - -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", + "windows-sys 0.52.0", ] [[package]] name = "termcolor" -version = "1.3.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] -[[package]] -name = "terminal_size" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" -dependencies = [ - "rustix", - "windows-sys 0.48.0", -] - [[package]] name = "thiserror" version = "1.0.58" @@ -4228,9 +3952,9 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -4238,9 +3962,9 @@ dependencies = [ [[package]] name = "tiff" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" +checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" dependencies = [ "flate2", "jpeg-decoder", @@ -4249,14 +3973,13 @@ dependencies = [ [[package]] name = "time" -version = "0.3.30" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ "deranged", "itoa", - "libc", - "num_threads", + "num-conv", "powerfmt", "serde", "time-core", @@ -4271,10 +3994,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" dependencies = [ + "num-conv", "time-core", ] @@ -4317,7 +4041,7 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.5", + "socket2", "tokio-macros", "windows-sys 0.48.0", ] @@ -4349,7 +4073,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.8", + "rustls 0.21.10", "tokio", ] @@ -4382,9 +4106,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ "bytes", "futures-core", @@ -4396,9 +4120,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.4" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef75d881185fd2df4a040793927c153d863651108a93c7e17a9e591baa95cc6" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" dependencies = [ "serde", "serde_spanned", @@ -4417,15 +4141,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.20.4" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380f9e8120405471f7c9ad1860a713ef5ece6a670c7eae39225e477340f32fc4" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.5", ] [[package]] @@ -4570,20 +4294,11 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "treediff" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" -dependencies = [ - "serde_json", -] - [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "ts-rs" @@ -4618,7 +4333,7 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.0.0", + "http 1.1.0", "httparse", "log", "rand 0.8.5", @@ -4632,20 +4347,21 @@ dependencies = [ [[package]] name = "turn" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f4fcb97da0426e8146fe0e9b78cc13120161087256198701d12d9df77f7701" +checksum = "ffb2ac4f331064513ad510b7a36edc0df555bd61672986607f7c9ff46f98f415" dependencies = [ "async-trait", - "base64 0.21.5", + "base64 0.21.7", "futures", "log", "md-5", "rand 0.8.5", - "ring 0.16.20", + "ring 0.17.8", "stun", "thiserror", "tokio", + "tokio-util", "webrtc-util", ] @@ -4678,9 +4394,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -4690,18 +4406,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" @@ -4725,12 +4441,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "unsafe-libyaml" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" - [[package]] name = "untrusted" version = "0.7.1" @@ -4745,9 +4455,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", @@ -4808,9 +4518,9 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -4964,9 +4674,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.2" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webrtc" @@ -4987,8 +4697,8 @@ dependencies = [ "regex", "ring 0.16.20", "rtcp", - "rtp", - "rustls 0.21.8", + "rtp 0.9.0", + "rustls 0.21.10", "sdp", "serde", "serde_json", @@ -5013,9 +4723,9 @@ dependencies = [ [[package]] name = "webrtc-data" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a45d2461d0e0bf93f181e30eb0b40df32b8bf3efb89c53cebb1990e603e2067d" +checksum = "e8c08e648e10572b9edbe741074e0f4d3cb221aa7cdf9a814ee71606de312f33" dependencies = [ "bytes", "log", @@ -5048,7 +4758,7 @@ dependencies = [ "rand_core 0.6.4", "rcgen", "ring 0.16.20", - "rustls 0.21.8", + "rustls 0.21.10", "sec1", "serde", "sha1", @@ -5063,9 +4773,9 @@ dependencies = [ [[package]] name = "webrtc-ice" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66eb4b85646f1c52225779db3e1e7e873dede6db68cc9be080b648f1713083a3" +checksum = "a1bbd6b3dea22cc6e961e22b012e843d8869e2ac8e76b96e54d4a25e311857ad" dependencies = [ "arc-swap", "async-trait", @@ -5087,12 +4797,12 @@ dependencies = [ [[package]] name = "webrtc-mdns" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bebbd40e7f8b630a0f1a74783dbfff1edfc0ccaae891c4689891156a8c4d8c" +checksum = "ce981f93104a8debb3563bb0cedfe4aa2f351fdf6b53f346ab50009424125c08" dependencies = [ "log", - "socket2 0.5.5", + "socket2", "thiserror", "tokio", "webrtc-util", @@ -5100,22 +4810,22 @@ dependencies = [ [[package]] name = "webrtc-media" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfde3c7b9450b67d466bb2f02c6d9ff9514d33535eb9994942afd1f828839d1" +checksum = "280017b6b9625ef7329146332518b339c3cceff231cc6f6a9e0e6acab25ca4af" dependencies = [ "byteorder", "bytes", "rand 0.8.5", - "rtp", + "rtp 0.10.0", "thiserror", ] [[package]] name = "webrtc-sctp" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1af6116b7f9703560c3ad0b32f67220b171bb1b59633b03563db8404d0e482ea" +checksum = "df75ec042002fe995194712cbeb2029107a60a7eab646f1b789eb1be94d0e367" dependencies = [ "arc-swap", "async-trait", @@ -5143,7 +4853,7 @@ dependencies = [ "hmac", "log", "rtcp", - "rtp", + "rtp 0.9.0", "sha1", "subtle", "thiserror", @@ -5153,14 +4863,13 @@ dependencies = [ [[package]] name = "webrtc-util" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adc96bee68417e1f4d19dd7698124a7f859db55ae2fd3eedbbb7e732f614735" +checksum = "5e85154ef743d9a2a116d104faaaa82740a281b8b4bed5ee691a2df6c133d873" dependencies = [ "async-trait", "bitflags 1.3.2", "bytes", - "cc", "ipnet", "lazy_static", "libc", @@ -5215,16 +4924,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", + "windows-targets 0.52.4", ] [[package]] @@ -5237,18 +4937,12 @@ dependencies = [ ] [[package]] -name = "windows-targets" -version = "0.42.2" +name = "windows-sys" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets 0.52.4", ] [[package]] @@ -5268,25 +4962,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -5295,15 +4983,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -5313,15 +4995,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -5331,15 +5007,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -5349,15 +5019,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -5367,15 +5031,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -5385,15 +5043,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -5403,9 +5055,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winnow" @@ -5416,6 +5068,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.50.0" @@ -5437,9 +5098,9 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ "curve25519-dalek", "rand_core 0.6.4", @@ -5491,18 +5152,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.31" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.31" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", diff --git a/src/wasm-lib/Cargo.toml b/src/wasm-lib/Cargo.toml index 3adb32c66..598e77abe 100644 --- a/src/wasm-lib/Cargo.toml +++ b/src/wasm-lib/Cargo.toml @@ -59,7 +59,7 @@ members = [ ] [workspace.dependencies] -kittycad = { version = "0.2.61", default-features = false, features = ["js", "requests"] } +kittycad = { version = "0.2.62", default-features = false, features = ["js", "requests"] } kittycad-execution-plan = { git = "https://github.com/KittyCAD/modeling-api", branch = "main" } kittycad-execution-plan-macros = { git = "https://github.com/KittyCAD/modeling-api", branch = "main" } kittycad-execution-plan-traits = { git = "https://github.com/KittyCAD/modeling-api", branch = "main" } diff --git a/src/wasm-lib/derive-docs/Cargo.toml b/src/wasm-lib/derive-docs/Cargo.toml index 3773fd669..064bf6c78 100644 --- a/src/wasm-lib/derive-docs/Cargo.toml +++ b/src/wasm-lib/derive-docs/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "derive-docs" description = "A tool for generating documentation from Rust derive macros" -version = "0.1.11" +version = "0.1.12" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" @@ -23,6 +23,7 @@ serde_tokenstream = "0.2" syn = { version = "2.0.53", features = ["full"] } [dev-dependencies] +anyhow = "1.0.81" expectorate = "1.1.0" -openapitor = { git = "https://github.com/KittyCAD/kittycad.rs", branch = "main" } pretty_assertions = "1.4.0" +rustfmt-wrapper = "0.2.1" diff --git a/src/wasm-lib/derive-docs/src/lib.rs b/src/wasm-lib/derive-docs/src/lib.rs index efde2d95f..ffc6e38be 100644 --- a/src/wasm-lib/derive-docs/src/lib.rs +++ b/src/wasm-lib/derive-docs/src/lib.rs @@ -764,7 +764,11 @@ fn generate_code_block_test(fn_name: &str, code_block: &str, index: usize) -> pr let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); // Create the client. - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + // Set a local engine address if it's set. + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) diff --git a/src/wasm-lib/derive-docs/src/tests.rs b/src/wasm-lib/derive-docs/src/tests.rs index fe348acc8..ff4b452c6 100644 --- a/src/wasm-lib/derive-docs/src/tests.rs +++ b/src/wasm-lib/derive-docs/src/tests.rs @@ -1,7 +1,27 @@ +use anyhow::Result; use quote::quote; use crate::{do_stdlib, parse_array_type}; +fn clean_text(s: &str) -> String { + // Add newlines after end-braces at <= two levels of indentation. + if cfg!(not(windows)) { + let regex = regex::Regex::new(r"(})(\n\s{0,8}[^} ])").unwrap(); + regex.replace_all(s, "$1\n$2").to_string() + } else { + let regex = regex::Regex::new(r"(})(\r\n\s{0,8}[^} ])").unwrap(); + regex.replace_all(s, "$1\r\n$2").to_string() + } +} + +/// Format a TokenStream as a string and run `rustfmt` on the result. +fn get_text_fmt(output: &proc_macro2::TokenStream) -> Result { + // Format the file with rustfmt. + let content = rustfmt_wrapper::rustfmt(output).unwrap(); + + Ok(clean_text(&content)) +} + #[test] fn test_get_inner_array_type() { for (expected, input) in [ @@ -47,7 +67,7 @@ fn test_stdlib_line_to() { let _expected = quote! {}; assert!(errors.is_empty()); - expectorate::assert_contents("tests/lineTo.gen", &openapitor::types::get_text_fmt(&item).unwrap()); + expectorate::assert_contents("tests/lineTo.gen", &get_text_fmt(&item).unwrap()); } #[test] @@ -88,7 +108,7 @@ fn test_stdlib_min() { let _expected = quote! {}; assert!(errors.is_empty()); - expectorate::assert_contents("tests/min.gen", &openapitor::types::get_text_fmt(&item).unwrap()); + expectorate::assert_contents("tests/min.gen", &get_text_fmt(&item).unwrap()); } #[test] @@ -115,7 +135,7 @@ fn test_stdlib_show() { let _expected = quote! {}; assert!(errors.is_empty()); - expectorate::assert_contents("tests/show.gen", &openapitor::types::get_text_fmt(&item).unwrap()); + expectorate::assert_contents("tests/show.gen", &get_text_fmt(&item).unwrap()); } #[test] @@ -143,7 +163,7 @@ fn test_stdlib_box() { let _expected = quote! {}; assert!(errors.is_empty()); - expectorate::assert_contents("tests/box.gen", &openapitor::types::get_text_fmt(&item).unwrap()); + expectorate::assert_contents("tests/box.gen", &get_text_fmt(&item).unwrap()); } #[test] @@ -170,7 +190,7 @@ fn test_stdlib_option() { .unwrap(); assert!(errors.is_empty()); - expectorate::assert_contents("tests/option.gen", &openapitor::types::get_text_fmt(&item).unwrap()); + expectorate::assert_contents("tests/option.gen", &get_text_fmt(&item).unwrap()); } #[test] @@ -203,7 +223,7 @@ fn test_stdlib_array() { .unwrap(); assert!(errors.is_empty()); - expectorate::assert_contents("tests/array.gen", &openapitor::types::get_text_fmt(&item).unwrap()); + expectorate::assert_contents("tests/array.gen", &get_text_fmt(&item).unwrap()); } #[test] @@ -230,10 +250,7 @@ fn test_stdlib_option_input_format() { .unwrap(); assert!(errors.is_empty()); - expectorate::assert_contents( - "tests/option_input_format.gen", - &openapitor::types::get_text_fmt(&item).unwrap(), - ); + expectorate::assert_contents("tests/option_input_format.gen", &get_text_fmt(&item).unwrap()); } #[test] @@ -260,10 +277,7 @@ fn test_stdlib_return_vec_sketch_group() { .unwrap(); assert!(errors.is_empty()); - expectorate::assert_contents( - "tests/return_vec_sketch_group.gen", - &openapitor::types::get_text_fmt(&item).unwrap(), - ); + expectorate::assert_contents("tests/return_vec_sketch_group.gen", &get_text_fmt(&item).unwrap()); } #[test] @@ -290,10 +304,7 @@ fn test_stdlib_return_vec_box_sketch_group() { .unwrap(); assert!(errors.is_empty()); - expectorate::assert_contents( - "tests/return_vec_box_sketch_group.gen", - &openapitor::types::get_text_fmt(&item).unwrap(), - ); + expectorate::assert_contents("tests/return_vec_box_sketch_group.gen", &get_text_fmt(&item).unwrap()); } #[test] @@ -326,10 +337,7 @@ fn test_stdlib_doc_comment_with_code() { .unwrap(); assert!(errors.is_empty()); - expectorate::assert_contents( - "tests/doc_comment_with_code.gen", - &openapitor::types::get_text_fmt(&item).unwrap(), - ); + expectorate::assert_contents("tests/doc_comment_with_code.gen", &get_text_fmt(&item).unwrap()); } #[test] @@ -364,7 +372,7 @@ fn test_stdlib_doc_comment_with_code_on_ignored_function() { assert!(errors.is_empty()); expectorate::assert_contents( "tests/doc_comment_with_code_on_ignored_function.gen", - &openapitor::types::get_text_fmt(&item).unwrap(), + &get_text_fmt(&item).unwrap(), ); } diff --git a/src/wasm-lib/derive-docs/tests/array.gen b/src/wasm-lib/derive-docs/tests/array.gen index 0fe3d1de7..f0289ce25 100644 --- a/src/wasm-lib/derive-docs/tests/array.gen +++ b/src/wasm-lib/derive-docs/tests/array.gen @@ -15,7 +15,11 @@ mod test_examples_show { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) @@ -55,7 +59,11 @@ mod test_examples_show { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) diff --git a/src/wasm-lib/derive-docs/tests/box.gen b/src/wasm-lib/derive-docs/tests/box.gen index ccdcbbdc3..5799c43b9 100644 --- a/src/wasm-lib/derive-docs/tests/box.gen +++ b/src/wasm-lib/derive-docs/tests/box.gen @@ -15,7 +15,11 @@ mod test_examples_show { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) diff --git a/src/wasm-lib/derive-docs/tests/doc_comment_with_code.gen b/src/wasm-lib/derive-docs/tests/doc_comment_with_code.gen index 6e2c7f8de..6ecf22072 100644 --- a/src/wasm-lib/derive-docs/tests/doc_comment_with_code.gen +++ b/src/wasm-lib/derive-docs/tests/doc_comment_with_code.gen @@ -15,7 +15,11 @@ mod test_examples_my_func { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) @@ -55,7 +59,11 @@ mod test_examples_my_func { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) diff --git a/src/wasm-lib/derive-docs/tests/doc_comment_with_code_on_ignored_function.gen b/src/wasm-lib/derive-docs/tests/doc_comment_with_code_on_ignored_function.gen index e3d00b5e0..e857a5c89 100644 --- a/src/wasm-lib/derive-docs/tests/doc_comment_with_code_on_ignored_function.gen +++ b/src/wasm-lib/derive-docs/tests/doc_comment_with_code_on_ignored_function.gen @@ -16,7 +16,11 @@ mod test_examples_import { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) @@ -57,7 +61,11 @@ mod test_examples_import { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) diff --git a/src/wasm-lib/derive-docs/tests/lineTo.gen b/src/wasm-lib/derive-docs/tests/lineTo.gen index 7746131e9..c1d34531e 100644 --- a/src/wasm-lib/derive-docs/tests/lineTo.gen +++ b/src/wasm-lib/derive-docs/tests/lineTo.gen @@ -15,7 +15,11 @@ mod test_examples_line_to { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) @@ -55,7 +59,11 @@ mod test_examples_line_to { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) diff --git a/src/wasm-lib/derive-docs/tests/min.gen b/src/wasm-lib/derive-docs/tests/min.gen index 94e739613..428d6c3e6 100644 --- a/src/wasm-lib/derive-docs/tests/min.gen +++ b/src/wasm-lib/derive-docs/tests/min.gen @@ -15,7 +15,11 @@ mod test_examples_min { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) @@ -55,7 +59,11 @@ mod test_examples_min { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) diff --git a/src/wasm-lib/derive-docs/tests/option.gen b/src/wasm-lib/derive-docs/tests/option.gen index 618b66110..a0297492b 100644 --- a/src/wasm-lib/derive-docs/tests/option.gen +++ b/src/wasm-lib/derive-docs/tests/option.gen @@ -15,7 +15,11 @@ mod test_examples_show { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) diff --git a/src/wasm-lib/derive-docs/tests/option_input_format.gen b/src/wasm-lib/derive-docs/tests/option_input_format.gen index a542aee02..7875530e3 100644 --- a/src/wasm-lib/derive-docs/tests/option_input_format.gen +++ b/src/wasm-lib/derive-docs/tests/option_input_format.gen @@ -16,7 +16,11 @@ mod test_examples_import { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) diff --git a/src/wasm-lib/derive-docs/tests/return_vec_box_sketch_group.gen b/src/wasm-lib/derive-docs/tests/return_vec_box_sketch_group.gen index 1c465cffc..4a6d57194 100644 --- a/src/wasm-lib/derive-docs/tests/return_vec_box_sketch_group.gen +++ b/src/wasm-lib/derive-docs/tests/return_vec_box_sketch_group.gen @@ -16,7 +16,11 @@ mod test_examples_import { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) diff --git a/src/wasm-lib/derive-docs/tests/return_vec_sketch_group.gen b/src/wasm-lib/derive-docs/tests/return_vec_sketch_group.gen index 51e6d83d5..e1c84055b 100644 --- a/src/wasm-lib/derive-docs/tests/return_vec_sketch_group.gen +++ b/src/wasm-lib/derive-docs/tests/return_vec_sketch_group.gen @@ -16,7 +16,11 @@ mod test_examples_import { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) diff --git a/src/wasm-lib/derive-docs/tests/show.gen b/src/wasm-lib/derive-docs/tests/show.gen index 821a168cc..49ca90343 100644 --- a/src/wasm-lib/derive-docs/tests/show.gen +++ b/src/wasm-lib/derive-docs/tests/show.gen @@ -15,7 +15,11 @@ mod test_examples_show { .tcp_keepalive(std::time::Duration::from_secs(600)) .http1_only(); let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } + let ws = client .modeling() .commands_ws(None, None, None, None, None, Some(false)) diff --git a/src/wasm-lib/grackle/fixtures/cube_lineTo.png b/src/wasm-lib/grackle/fixtures/cube_lineTo.png index 6450d6688..d0f0c935c 100644 Binary files a/src/wasm-lib/grackle/fixtures/cube_lineTo.png and b/src/wasm-lib/grackle/fixtures/cube_lineTo.png differ diff --git a/src/wasm-lib/grackle/fixtures/cube_tangentialArcTo.png b/src/wasm-lib/grackle/fixtures/cube_tangentialArcTo.png index d1bc14c58..d0f0c935c 100644 Binary files a/src/wasm-lib/grackle/fixtures/cube_tangentialArcTo.png and b/src/wasm-lib/grackle/fixtures/cube_tangentialArcTo.png differ diff --git a/src/wasm-lib/grackle/fixtures/cube_xyLine.png b/src/wasm-lib/grackle/fixtures/cube_xyLine.png index 2a04bd115..d0f0c935c 100644 Binary files a/src/wasm-lib/grackle/fixtures/cube_xyLine.png and b/src/wasm-lib/grackle/fixtures/cube_xyLine.png differ diff --git a/src/wasm-lib/kcl/Cargo.toml b/src/wasm-lib/kcl/Cargo.toml index c137f44e3..5940dd22a 100644 --- a/src/wasm-lib/kcl/Cargo.toml +++ b/src/wasm-lib/kcl/Cargo.toml @@ -18,8 +18,8 @@ chrono = "0.4.35" clap = { version = "4.5.3", features = ["cargo", "derive", "env", "unicode"], optional = true } dashmap = "5.5.3" databake = { version = "0.1.7", features = ["derive"] } -derive-docs = { version = "0.1.11" } -#derive-docs = { path = "../derive-docs" } +#derive-docs = { version = "0.1.12" } +derive-docs = { path = "../derive-docs" } futures = { version = "0.3.30" } gltf-json = "1.4.0" kittycad = { workspace = true } diff --git a/src/wasm-lib/kcl/src/ast/modify.rs b/src/wasm-lib/kcl/src/ast/modify.rs index 98d155dc9..73a45e311 100644 --- a/src/wasm-lib/kcl/src/ast/modify.rs +++ b/src/wasm-lib/kcl/src/ast/modify.rs @@ -75,6 +75,7 @@ pub async fn modify_ast_for_sketch( // Let's get the path info. let resp = engine .send_modeling_cmd( + false, uuid::Uuid::new_v4(), SourceRange::default(), ModelingCmd::PathGetInfo { path_id: sketch_id }, @@ -99,6 +100,7 @@ pub async fn modify_ast_for_sketch( for segment in &path_info.segments { if let Some(command_id) = &segment.command_id { let h = engine.send_modeling_cmd( + false, uuid::Uuid::new_v4(), SourceRange::default(), ModelingCmd::CurveGetControlPoints { curve_id: *command_id }, diff --git a/src/wasm-lib/kcl/src/engine/conn.rs b/src/wasm-lib/kcl/src/engine/conn.rs index 37cbef1cb..ba8b60631 100644 --- a/src/wasm-lib/kcl/src/engine/conn.rs +++ b/src/wasm-lib/kcl/src/engine/conn.rs @@ -29,6 +29,7 @@ pub struct EngineConnection { responses: Arc>, tcp_read_handle: Arc, socket_health: Arc>, + batch: Arc>>, } pub struct TcpRead { @@ -154,27 +155,30 @@ impl EngineConnection { }), responses, socket_health, + batch: Arc::new(Mutex::new(Vec::new())), }) } } #[async_trait::async_trait] impl EngineManager for EngineConnection { - async fn send_modeling_cmd( + fn batch(&self) -> Arc>> { + self.batch.clone() + } + + async fn inner_send_modeling_cmd( &self, id: uuid::Uuid, source_range: crate::executor::SourceRange, - cmd: kittycad::types::ModelingCmd, + cmd: kittycad::types::WebSocketRequest, + _id_to_source_range: std::collections::HashMap, ) -> Result { let (tx, rx) = oneshot::channel(); // Send the request to the engine, via the actor. self.engine_req_tx .send(ToEngineReq { - req: WebSocketRequest::ModelingCmdReq { - cmd: cmd.clone(), - cmd_id: id, - }, + req: cmd.clone(), request_sent: tx, }) .await diff --git a/src/wasm-lib/kcl/src/engine/conn_mock.rs b/src/wasm-lib/kcl/src/engine/conn_mock.rs index e290eb80b..4fe0999e8 100644 --- a/src/wasm-lib/kcl/src/engine/conn_mock.rs +++ b/src/wasm-lib/kcl/src/engine/conn_mock.rs @@ -1,27 +1,38 @@ //! Functions for setting up our WebSocket and WebRTC connections for communications with the //! engine. +use std::sync::{Arc, Mutex}; + use anyhow::Result; -use kittycad::types::OkWebSocketResponseData; +use kittycad::types::{OkWebSocketResponseData, WebSocketRequest}; use crate::errors::KclError; #[derive(Debug, Clone)] -pub struct EngineConnection {} +pub struct EngineConnection { + batch: Arc>>, +} impl EngineConnection { pub async fn new() -> Result { - Ok(EngineConnection {}) + Ok(EngineConnection { + batch: Arc::new(Mutex::new(Vec::new())), + }) } } #[async_trait::async_trait] impl crate::engine::EngineManager for EngineConnection { - async fn send_modeling_cmd( + fn batch(&self) -> Arc>> { + self.batch.clone() + } + + async fn inner_send_modeling_cmd( &self, _id: uuid::Uuid, _source_range: crate::executor::SourceRange, - _cmd: kittycad::types::ModelingCmd, + _cmd: kittycad::types::WebSocketRequest, + _id_to_source_range: std::collections::HashMap, ) -> Result { Ok(OkWebSocketResponseData::Modeling { modeling_response: kittycad::types::OkModelingCmdResponse::Empty {}, diff --git a/src/wasm-lib/kcl/src/engine/conn_wasm.rs b/src/wasm-lib/kcl/src/engine/conn_wasm.rs index 7f58fad3f..ae9328079 100644 --- a/src/wasm-lib/kcl/src/engine/conn_wasm.rs +++ b/src/wasm-lib/kcl/src/engine/conn_wasm.rs @@ -1,6 +1,6 @@ //! Functions for setting up our WebSocket and WebRTC connections for communications with the //! engine. -use std::sync::Arc; +use std::sync::{Arc, Mutex}; use anyhow::Result; use kittycad::types::WebSocketRequest; @@ -19,12 +19,14 @@ extern "C" { id: String, rangeStr: String, cmdStr: String, + idToRangeStr: String, ) -> Result; } #[derive(Debug, Clone)] pub struct EngineConnection { manager: Arc, + batch: Arc>>, } // Safety: WebAssembly will only ever run in a single-threaded context. @@ -35,17 +37,23 @@ impl EngineConnection { pub async fn new(manager: EngineCommandManager) -> Result { Ok(EngineConnection { manager: Arc::new(manager), + batch: Arc::new(Mutex::new(Vec::new())), }) } } #[async_trait::async_trait] impl crate::engine::EngineManager for EngineConnection { - async fn send_modeling_cmd( + fn batch(&self) -> Arc>> { + self.batch.clone() + } + + async fn inner_send_modeling_cmd( &self, id: uuid::Uuid, source_range: crate::executor::SourceRange, - cmd: kittycad::types::ModelingCmd, + cmd: kittycad::types::WebSocketRequest, + id_to_source_range: std::collections::HashMap, ) -> Result { let source_range_str = serde_json::to_string(&source_range).map_err(|e| { KclError::Engine(KclErrorDetails { @@ -53,17 +61,22 @@ impl crate::engine::EngineManager for EngineConnection { source_ranges: vec![source_range], }) })?; - let ws_msg = WebSocketRequest::ModelingCmdReq { cmd, cmd_id: id }; - let cmd_str = serde_json::to_string(&ws_msg).map_err(|e| { + let cmd_str = serde_json::to_string(&cmd).map_err(|e| { KclError::Engine(KclErrorDetails { message: format!("Failed to serialize modeling command: {:?}", e), source_ranges: vec![source_range], }) })?; + let id_to_source_range_str = serde_json::to_string(&id_to_source_range).map_err(|e| { + KclError::Engine(KclErrorDetails { + message: format!("Failed to serialize id to source range: {:?}", e), + source_ranges: vec![source_range], + }) + })?; let promise = self .manager - .send_modeling_cmd_from_wasm(id.to_string(), source_range_str, cmd_str) + .send_modeling_cmd_from_wasm(id.to_string(), source_range_str, cmd_str, id_to_source_range_str) .map_err(|e| { KclError::Engine(KclErrorDetails { message: e.to_string().into(), diff --git a/src/wasm-lib/kcl/src/engine/mod.rs b/src/wasm-lib/kcl/src/engine/mod.rs index a5d1cee81..32d972d89 100644 --- a/src/wasm-lib/kcl/src/engine/mod.rs +++ b/src/wasm-lib/kcl/src/engine/mod.rs @@ -8,13 +8,177 @@ pub mod conn_mock; #[cfg(feature = "engine")] pub mod conn_wasm; +use std::sync::{Arc, Mutex}; + +use kittycad::types::{OkWebSocketResponseData, WebSocketRequest}; + +use crate::errors::{KclError, KclErrorDetails}; + #[async_trait::async_trait] pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { + /// Get the batch of commands to be sent to the engine. + fn batch(&self) -> Arc>>; + /// Send a modeling command and wait for the response message. - async fn send_modeling_cmd( + async fn inner_send_modeling_cmd( &self, id: uuid::Uuid, source_range: crate::executor::SourceRange, - cmd: kittycad::types::ModelingCmd, + cmd: kittycad::types::WebSocketRequest, + id_to_source_range: std::collections::HashMap, ) -> Result; + + async fn send_modeling_cmd( + &self, + flush_batch: bool, + id: uuid::Uuid, + source_range: crate::executor::SourceRange, + cmd: kittycad::types::ModelingCmd, + ) -> Result { + let req = WebSocketRequest::ModelingCmdReq { + cmd: cmd.clone(), + cmd_id: id, + }; + + if !flush_batch { + self.batch().lock().unwrap().push((req.clone(), source_range)); + } + + // If the batch only has this one command that expects a return value, + // fire it right away, or if we want to flush batch queue. + let is_sending = (is_cmd_with_return_values(&cmd) && self.batch().lock().unwrap().len() == 1) + || flush_batch + || is_cmd_with_return_values(&cmd); + + // Return a fake modeling_request empty response. + if !is_sending { + return Ok(OkWebSocketResponseData::Modeling { + modeling_response: kittycad::types::OkModelingCmdResponse::Empty {}, + }); + } + + // Flush the batch queue. + self.flush_batch(source_range).await + } + + /// Force flush the batch queue. + async fn flush_batch( + &self, + source_range: crate::executor::SourceRange, + ) -> Result { + // Return early if we have no commands to send. + if self.batch().lock().unwrap().is_empty() { + return Ok(OkWebSocketResponseData::Modeling { + modeling_response: kittycad::types::OkModelingCmdResponse::Empty {}, + }); + } + + let batched_requests = WebSocketRequest::ModelingCmdBatchReq { + requests: self.batch().lock().unwrap().iter().fold(vec![], |mut acc, (val, _)| { + let WebSocketRequest::ModelingCmdReq { cmd, cmd_id } = val else { + return acc; + }; + acc.push(kittycad::types::ModelingCmdReq { + cmd: cmd.clone(), + cmd_id: *cmd_id, + }); + acc + }), + batch_id: uuid::Uuid::new_v4(), + }; + + let final_req = if self.batch().lock().unwrap().len() == 1 { + // We can unwrap here because we know the batch has only one element. + self.batch().lock().unwrap().first().unwrap().0.clone() + } else { + batched_requests + }; + + // Create the map of original command IDs to source range. + // This is for the wasm side, kurt needs it for selections. + let mut id_to_source_range = std::collections::HashMap::new(); + for (req, range) in self.batch().lock().unwrap().iter() { + match req { + WebSocketRequest::ModelingCmdReq { cmd: _, cmd_id } => { + id_to_source_range.insert(*cmd_id, *range); + } + _ => { + return Err(KclError::Engine(KclErrorDetails { + message: format!("The request is not a modeling command: {:?}", req), + source_ranges: vec![*range], + })); + } + } + } + + // Throw away the old batch queue. + self.batch().lock().unwrap().clear(); + + // We pop off the responses to cleanup our mappings. + let id_final = match final_req { + WebSocketRequest::ModelingCmdBatchReq { requests: _, batch_id } => batch_id, + WebSocketRequest::ModelingCmdReq { cmd: _, cmd_id } => cmd_id, + _ => { + return Err(KclError::Engine(KclErrorDetails { + message: format!("The final request is not a modeling command: {:?}", final_req), + source_ranges: vec![source_range], + })); + } + }; + + self.inner_send_modeling_cmd(id_final, source_range, final_req, id_to_source_range) + .await + } +} + +pub fn is_cmd_with_return_values(cmd: &kittycad::types::ModelingCmd) -> bool { + let (kittycad::types::ModelingCmd::Export { .. } + | kittycad::types::ModelingCmd::Extrude { .. } + | kittycad::types::ModelingCmd::SketchModeDisable { .. } + | kittycad::types::ModelingCmd::ObjectBringToFront { .. } + | kittycad::types::ModelingCmd::SelectWithPoint { .. } + | kittycad::types::ModelingCmd::HighlightSetEntity { .. } + | kittycad::types::ModelingCmd::EntityGetChildUuid { .. } + | kittycad::types::ModelingCmd::EntityGetNumChildren { .. } + | kittycad::types::ModelingCmd::EntityGetParentId { .. } + | kittycad::types::ModelingCmd::EntityGetAllChildUuids { .. } + | kittycad::types::ModelingCmd::CameraDragMove { .. } + | kittycad::types::ModelingCmd::CameraDragEnd { .. } + | kittycad::types::ModelingCmd::DefaultCameraGetSettings { .. } + | kittycad::types::ModelingCmd::DefaultCameraZoom { .. } + | kittycad::types::ModelingCmd::SelectGet { .. } + | kittycad::types::ModelingCmd::Solid3DGetAllEdgeFaces { .. } + | kittycad::types::ModelingCmd::Solid3DGetAllOppositeEdges { .. } + | kittycad::types::ModelingCmd::Solid3DGetOppositeEdge { .. } + | kittycad::types::ModelingCmd::Solid3DGetNextAdjacentEdge { .. } + | kittycad::types::ModelingCmd::Solid3DGetPrevAdjacentEdge { .. } + | kittycad::types::ModelingCmd::GetEntityType { .. } + | kittycad::types::ModelingCmd::CurveGetControlPoints { .. } + | kittycad::types::ModelingCmd::CurveGetType { .. } + | kittycad::types::ModelingCmd::MouseClick { .. } + | kittycad::types::ModelingCmd::TakeSnapshot { .. } + | kittycad::types::ModelingCmd::PathGetInfo { .. } + | kittycad::types::ModelingCmd::PathGetCurveUuidsForVertices { .. } + | kittycad::types::ModelingCmd::PathGetVertexUuids { .. } + | kittycad::types::ModelingCmd::CurveGetEndPoints { .. } + | kittycad::types::ModelingCmd::FaceIsPlanar { .. } + | kittycad::types::ModelingCmd::FaceGetPosition { .. } + | kittycad::types::ModelingCmd::FaceGetGradient { .. } + | kittycad::types::ModelingCmd::PlaneIntersectAndProject { .. } + | kittycad::types::ModelingCmd::ImportFiles { .. } + | kittycad::types::ModelingCmd::Mass { .. } + | kittycad::types::ModelingCmd::Volume { .. } + | kittycad::types::ModelingCmd::Density { .. } + | kittycad::types::ModelingCmd::SurfaceArea { .. } + | kittycad::types::ModelingCmd::CenterOfMass { .. } + | kittycad::types::ModelingCmd::GetSketchModePlane { .. } + | kittycad::types::ModelingCmd::EntityGetDistance { .. } + | kittycad::types::ModelingCmd::EntityLinearPattern { .. } + | kittycad::types::ModelingCmd::EntityCircularPattern { .. } + | kittycad::types::ModelingCmd::Solid3DGetExtrusionFaceInfo { .. }) = cmd + else { + return false; + }; + + true } diff --git a/src/wasm-lib/kcl/src/executor.rs b/src/wasm-lib/kcl/src/executor.rs index cdc13f993..8ad607e65 100644 --- a/src/wasm-lib/kcl/src/executor.rs +++ b/src/wasm-lib/kcl/src/executor.rs @@ -1010,6 +1010,7 @@ pub async fn execute( // Before we even start executing the program, set the units. ctx.engine .send_modeling_cmd( + false, uuid::Uuid::new_v4(), SourceRange::default(), kittycad::types::ModelingCmd::SetSceneUnits { @@ -1221,6 +1222,9 @@ pub async fn execute( } } + // Flush the batch queue. + ctx.engine.flush_batch(SourceRange::default()).await?; + Ok(memory.clone()) } diff --git a/src/wasm-lib/kcl/src/std/mod.rs b/src/wasm-lib/kcl/src/std/mod.rs index 81fbd9948..9e74c6e89 100644 --- a/src/wasm-lib/kcl/src/std/mod.rs +++ b/src/wasm-lib/kcl/src/std/mod.rs @@ -206,7 +206,10 @@ impl Args { id: uuid::Uuid, cmd: kittycad::types::ModelingCmd, ) -> Result { - self.ctx.engine.send_modeling_cmd(id, self.source_range, cmd).await + self.ctx + .engine + .send_modeling_cmd(false, id, self.source_range, cmd) + .await } fn make_user_val_from_json(&self, j: serde_json::Value) -> Result { diff --git a/src/wasm-lib/tests/executor/main.rs b/src/wasm-lib/tests/executor/main.rs index 2b4f25d47..d82f3095f 100644 --- a/src/wasm-lib/tests/executor/main.rs +++ b/src/wasm-lib/tests/executor/main.rs @@ -21,9 +21,11 @@ async fn execute_and_snapshot(code: &str, units: kittycad::types::UnitLength) -> let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); // Create the client. - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); - // uncomment to use a local server - //client.set_base_url("http://system76-pc:8080/"); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + // Set a local engine address if it's set. + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } let ws = client .modeling() @@ -45,6 +47,7 @@ async fn execute_and_snapshot(code: &str, units: kittycad::types::UnitLength) -> ctx.engine .send_modeling_cmd( + false, uuid::Uuid::new_v4(), kcl_lib::executor::SourceRange::default(), kittycad::types::ModelingCmd::DefaultCameraLookAt { @@ -60,6 +63,7 @@ async fn execute_and_snapshot(code: &str, units: kittycad::types::UnitLength) -> let resp = ctx .engine .send_modeling_cmd( + false, uuid::Uuid::new_v4(), kcl_lib::executor::SourceRange::default(), kittycad::types::ModelingCmd::TakeSnapshot { diff --git a/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_close_opposite.png b/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_close_opposite.png index 04970bf3e..af17cfc82 100644 Binary files a/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_close_opposite.png and b/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_close_opposite.png differ diff --git a/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_end.png b/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_end.png index 0aba98bd4..6ee83cd88 100644 Binary files a/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_end.png and b/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_end.png differ diff --git a/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_next_adjacent.png b/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_next_adjacent.png index 98f766f21..1cea0c1ca 100644 Binary files a/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_next_adjacent.png and b/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_next_adjacent.png differ diff --git a/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_previous_adjacent.png b/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_previous_adjacent.png index 83553cc1e..ba1d5d73c 100644 Binary files a/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_previous_adjacent.png and b/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_previous_adjacent.png differ diff --git a/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_start.png b/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_start.png index 218f065f3..7025c83ab 100644 Binary files a/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_start.png and b/src/wasm-lib/tests/executor/outputs/basic_fillet_cube_start.png differ diff --git a/src/wasm-lib/tests/executor/outputs/holes.png b/src/wasm-lib/tests/executor/outputs/holes.png index 684a73baf..1671b6432 100644 Binary files a/src/wasm-lib/tests/executor/outputs/holes.png and b/src/wasm-lib/tests/executor/outputs/holes.png differ diff --git a/src/wasm-lib/tests/executor/outputs/lots_of_planes.png b/src/wasm-lib/tests/executor/outputs/lots_of_planes.png index d6040dca8..c4ede883a 100644 Binary files a/src/wasm-lib/tests/executor/outputs/lots_of_planes.png and b/src/wasm-lib/tests/executor/outputs/lots_of_planes.png differ diff --git a/src/wasm-lib/tests/executor/outputs/tangential_arc.png b/src/wasm-lib/tests/executor/outputs/tangential_arc.png index 962ad16b9..879074161 100644 Binary files a/src/wasm-lib/tests/executor/outputs/tangential_arc.png and b/src/wasm-lib/tests/executor/outputs/tangential_arc.png differ diff --git a/src/wasm-lib/tests/executor/outputs/tangential_arc_to.png b/src/wasm-lib/tests/executor/outputs/tangential_arc_to.png index 962ad16b9..879074161 100644 Binary files a/src/wasm-lib/tests/executor/outputs/tangential_arc_to.png and b/src/wasm-lib/tests/executor/outputs/tangential_arc_to.png differ diff --git a/src/wasm-lib/tests/executor/outputs/tangential_arc_with_point.png b/src/wasm-lib/tests/executor/outputs/tangential_arc_with_point.png index 962ad16b9..879074161 100644 Binary files a/src/wasm-lib/tests/executor/outputs/tangential_arc_with_point.png and b/src/wasm-lib/tests/executor/outputs/tangential_arc_with_point.png differ diff --git a/src/wasm-lib/tests/modify/main.rs b/src/wasm-lib/tests/modify/main.rs index cd2dc8a8a..a1630856c 100644 --- a/src/wasm-lib/tests/modify/main.rs +++ b/src/wasm-lib/tests/modify/main.rs @@ -25,7 +25,11 @@ async fn setup(code: &str, name: &str) -> Result<(ExecutorContext, Program, uuid let token = std::env::var("KITTYCAD_API_TOKEN").expect("KITTYCAD_API_TOKEN not set"); // Create the client. - let client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + let mut client = kittycad::Client::new_from_reqwest(token, http_client, ws_client); + // Set a local engine address if it's set. + if let Ok(addr) = std::env::var("LOCAL_ENGINE_ADDR") { + client.set_base_url(addr); + } let ws = client .modeling() @@ -49,6 +53,7 @@ async fn setup(code: &str, name: &str) -> Result<(ExecutorContext, Program, uuid let plane_id = uuid::Uuid::new_v4(); ctx.engine .send_modeling_cmd( + false, plane_id, SourceRange::default(), ModelingCmd::MakePlane { @@ -67,6 +72,7 @@ async fn setup(code: &str, name: &str) -> Result<(ExecutorContext, Program, uuid // You can however get path info without sketch mode. ctx.engine .send_modeling_cmd( + false, uuid::Uuid::new_v4(), SourceRange::default(), ModelingCmd::SketchModeEnable { @@ -82,6 +88,7 @@ async fn setup(code: &str, name: &str) -> Result<(ExecutorContext, Program, uuid // We can't get control points of an existing sketch without being in edit mode. ctx.engine .send_modeling_cmd( + false, uuid::Uuid::new_v4(), SourceRange::default(), ModelingCmd::EditModeEnter { target: sketch_id },