diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 00000000..dcba947a --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,2 @@ +# stylua formatting +0f8e1625d572a5fe0f7b5c08653ff92cc837d346 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 04da7dcd..ad5a05d7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: - rust_version: [stable, 1.69.0] + rust_version: [stable, 1.70.0] steps: - uses: actions/checkout@v3 diff --git a/CHANGELOG.md b/CHANGELOG.md index 29dc5115..2e28bf27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,37 +2,155 @@ ## Unreleased Changes * Added headless API for Studio companion plugins. ([#631]) -* Internally for themes, we use `Color3.fromHex` now instead of custom-made solution ([#761]). -* On failing to open a file from Roblox Studio, it is now logged appropriately instead of being ignored ([#745]). -* Significantly improved performance of `rojo sourcemap`. ([#668]) + +[#631]: https://github.com/rojo-rbx/rojo/pull/631 + +## [7.4.0-rc3] - October 25, 2023 +* Changed `sourcemap --watch` to only generate the sourcemap when it's necessary ([#800]) +* Switched script source property getter and setter to `ScriptEditorService` methods ([#801]) + + This ensures that the script editor reflects any changes Rojo makes to a script while it is open in the script editor. + +* Fixed issues when handling `SecurityCapabilities` values ([#803], [#807]) +* Fixed Rojo plugin erroring out when attempting to sync attributes with invalid names ([#809]) + +[#800]: https://github.com/rojo-rbx/rojo/pull/800 +[#801]: https://github.com/rojo-rbx/rojo/pull/801 +[#803]: https://github.com/rojo-rbx/rojo/pull/803 +[#807]: https://github.com/rojo-rbx/rojo/pull/807 +[#809]: https://github.com/rojo-rbx/rojo/pull/809 + +## [7.4.0-rc2] - October 3, 2023 +* Fixed bug with parsing version for plugin validation ([#797]) + +[#797]: https://github.com/rojo-rbx/rojo/pull/797 + +## [7.4.0-rc1] - October 3, 2023 +### Additions +#### Project format +* Added support for `.toml` files to `$path` ([#633]) +* Added support for `Font` and `CFrame` attributes ([rbx-dom#299], [rbx-dom#296]) +* Added the `emitLegacyScripts` field to the project format ([#765]). The behavior is outlined below: + + | `emitLegacyScripts` Value | Action Taken by Rojo | + |---------------------------|------------------------------------------------------------------------------------------------------------------| + | false | Rojo emits Scripts with the appropriate `RunContext` for `*.client.lua` and `*.server.lua` files in the project. | + | true (default) | Rojo emits LocalScripts and Scripts with legacy `RunContext` (same behavior as previously). | + + + It can be used like this: + ```json + { + "emitLegacyScripts": false, + "name": "MyCoolRunContextProject", + "tree": { + "$path": "src" + } + } + ``` + +* Added `Terrain` classname inference, similar to services ([#771]) + + `Terrain` may now be defined in projects without using `$className`: + ```json + "Workspace": { + "Terrain": { + "$path": "path/to/terrain.rbxm" + } + } + ``` + +* Added support for `Terrain.MaterialColors` ([#770]) + + `Terrain.MaterialColors` is now represented in projects in a human readable format: + ```json + "Workspace": { + "Terrain": { + "$path": "path/to/terrain.rbxm" + "$properties": { + "MaterialColors": { + "Grass": [10, 20, 30], + "Asphalt": [40, 50, 60], + "LeafyGrass": [255, 155, 55] + } + } + } + } + ``` + +* Added better support for `Font` properties ([#731]) + + `FontFace` properties may now be defined using implicit property syntax: + ```json + "TextBox": { + "$className": "TextBox", + "$properties": { + "FontFace": { + "family": "rbxasset://fonts/families/RobotoMono.json", + "weight": "Thin", + "style": "Normal" + } + } + } + ``` + +#### Patch visualizer and notifications +* Added a setting to control patch confirmation behavior ([#774]) + + This is a new setting for controlling when the Rojo plugin prompts for confirmation before syncing. It has four options: + * Initial (default): prompts only once for a project in a given Studio session + * Always: always prompts for confirmation + * Large Changes: only prompts when there are more than X changed instances. The number of instances is configurable - an additional setting for the number of instances becomes available when this option is chosen + * Unlisted PlaceId: only prompts if the place ID is not present in servePlaceIds + +* Added the ability to select Instances in patch visualizer ([#709]) + + Double-clicking an instance in the patch visualizer sets Roblox Studio's selection to the instance. + +* Added a sync reminder notification. ([#689]) + + Rojo detects if you have previously synced to a place, and displays a notification reminding you to sync again: + + ![Rojo reminds you to sync a place that you've synced previously](https://user-images.githubusercontent.com/40185666/242397435-ccdfddf2-a63f-420c-bc18-a6e3d6455bba.png) + +* Added rich Source diffs in patch visualizer ([#748]) + + A "View Diff" button for script sources is now present in the patch visualizer. Clicking it displays a side-by-side diff of the script changes: + + ![The patch visualizer contains a "view diff" button](https://user-images.githubusercontent.com/40185666/256065992-3f03558f-84b0-45a1-80eb-901f348cf067.png) + + ![The "View Diff" button opens a widget that displays a diff](https://user-images.githubusercontent.com/40185666/256066084-1d9d8fe8-7dad-4ee7-a542-b4aee35a5644.png) + +* Patch visualizer now indicates what changes failed to apply. ([#717]) + + A clickable warning label is displayed when the Rojo plugin is unable to apply changes. Clicking the label displays precise information about which changes failed: + + ![Patch visualizer displays a clickable warning label when changes fail to apply](https://user-images.githubusercontent.com/40185666/252063660-f08399ef-1e16-4f1c-bed8-552821f98cef.png) + + +#### Miscellaneous +* Added `plugin` flag to the `build` command that outputs to the local plugins folder ([#735]) + + This is a flag that builds a Rojo project into Roblox Studio's plugins directory. This allows you to build a Rojo project and load it into Studio as a plugin without having to type the full path to the plugins directory. It can be used like this: `rojo build --plugin ` + +* Added new plugin template to the `init` command ([#738]) + + This is a new template geared towards plugins. It is similar to the model template, but creates a `Script` instead of a `ModuleScript` in the `src` directory. It can be used like this: `rojo init --kind plugin` + +* Added protection against syncing non-place projects as a place. ([#691]) +* Add buttons for navigation on the Connected page ([#722]) + +### Fixes +* Significantly improved performance of `rojo serve` and `rojo build` on macOS. [#783] +* Significantly improved performance of `rojo sourcemap` ([#668]) * Fixed the diff visualizer of connected sessions. ([#674]) * Fixed disconnected session activity. ([#675]) * Skip confirming patches that contain only a datamodel name change. ([#688]) -* Added sync reminder notification. ([#689]) -* Added protection against syncing a model to a place. ([#691]) -* Select Instances from diff tree view ([#709]) * Fix Rojo breaking when users undo/redo in Studio ([#708]) -* Improved sync info text on Connected page. ([#692]) -* Fix patch visualizer breaking when instances are removed during sync ([#713]) -* Patch visualizer now indicates what changes failed to apply. ([#717]) -* Add buttons for navigation on the Connected page ([#722]) * Improve tooltip behavior ([#723]) * Better settings controls ([#725]) -* Rework patch visualizer with many fixes and improvements ([#726]) -* Added support for syncing in `.toml` files ([#633]) -* Add `plugin` flag to the `build` command that outputs to the local plugins folder ([#735]) -* Added better support for `Font` properties ([#731]) -* Add new plugin template to the `init` command ([#738]) -* Added rich Source diffs in patch visualizer ([#748]) -* Fix PatchTree performance issues ([#755]) -* Don't override the initial enabled state for source diffing ([#760]) -* Added support for `Terrain.MaterialColors` ([#770]) -* Allow `Terrain` to be specified without a classname ([#771]) -* Add Confirmation Behavior setting ([#774]) +* Rework patch visualizer with many fixes and improvements ([#713], [#726], [#755]) -[#631]: https://github.com/rojo-rbx/rojo/pull/631 -[#761]: https://github.com/rojo-rbx/rojo/pull/761 -[#745]: https://github.com/rojo-rbx/rojo/pull/745 [#668]: https://github.com/rojo-rbx/rojo/pull/668 [#674]: https://github.com/rojo-rbx/rojo/pull/674 [#675]: https://github.com/rojo-rbx/rojo/pull/675 @@ -41,7 +159,6 @@ [#691]: https://github.com/rojo-rbx/rojo/pull/691 [#709]: https://github.com/rojo-rbx/rojo/pull/709 [#708]: https://github.com/rojo-rbx/rojo/pull/708 -[#692]: https://github.com/rojo-rbx/rojo/pull/692 [#713]: https://github.com/rojo-rbx/rojo/pull/713 [#717]: https://github.com/rojo-rbx/rojo/pull/717 [#722]: https://github.com/rojo-rbx/rojo/pull/722 @@ -54,10 +171,13 @@ [#738]: https://github.com/rojo-rbx/rojo/pull/738 [#748]: https://github.com/rojo-rbx/rojo/pull/748 [#755]: https://github.com/rojo-rbx/rojo/pull/755 -[#760]: https://github.com/rojo-rbx/rojo/pull/760 +[#765]: https://github.com/rojo-rbx/rojo/pull/765 [#770]: https://github.com/rojo-rbx/rojo/pull/770 [#771]: https://github.com/rojo-rbx/rojo/pull/771 [#774]: https://github.com/rojo-rbx/rojo/pull/774 +[#783]: https://github.com/rojo-rbx/rojo/pull/783 +[rbx-dom#299]: https://github.com/rojo-rbx/rbx-dom/pull/299 +[rbx-dom#296]: https://github.com/rojo-rbx/rbx-dom/pull/296 ## [7.3.0] - April 22, 2023 * Added `$attributes` to project format. ([#574]) diff --git a/Cargo.lock b/Cargo.lock index f106d61f..e850ee23 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] @@ -19,27 +19,18 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "0.7.20" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" -dependencies = [ - "memchr", -] - -[[package]] -name = "aho-corasick" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" dependencies = [ "memchr", ] [[package]] name = "anyhow" -version = "1.0.70" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "arrayref" @@ -49,9 +40,9 @@ checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "atty" @@ -72,9 +63,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.67" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", @@ -93,9 +84,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.0" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" [[package]] name = "bincode" @@ -113,17 +104,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] -name = "blake3" -version = "1.3.3" +name = "bitflags" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" + +[[package]] +name = "blake3" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if 1.0.0", "constant_time_eq", - "digest", ] [[package]] @@ -137,21 +133,20 @@ dependencies = [ [[package]] name = "bstr" -version = "1.4.0" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" +checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a" dependencies = [ "memchr", - "once_cell", - "regex-automata", + "regex-automata 0.3.9", "serde", ] [[package]] name = "bumpalo" -version = "3.12.1" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byteorder" @@ -161,9 +156,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cast" @@ -173,9 +168,12 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] [[package]] name = "cfg-if" @@ -195,19 +193,19 @@ version = "2.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "textwrap 0.11.0", "unicode-width", ] [[package]] name = "clap" -version = "3.2.23" +version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ "atty", - "bitflags", + "bitflags 1.3.2", "clap_derive", "clap_lex", "indexmap", @@ -219,14 +217,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.2.18" +version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" dependencies = [ "heck", "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.67", + "quote 1.0.33", "syn 1.0.109", ] @@ -241,21 +239,21 @@ dependencies = [ [[package]] name = "console" -version = "0.15.5" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60" +checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" dependencies = [ "encode_unicode", "lazy_static", "libc", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "constant_time_eq" -version = "0.2.5" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "core-foundation" @@ -275,9 +273,9 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "cpufeatures" -version = "0.2.7" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" dependencies = [ "libc", ] @@ -341,9 +339,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.14" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg", "cfg-if 1.0.0", @@ -354,9 +352,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if 1.0.0", ] @@ -373,9 +371,9 @@ dependencies = [ [[package]] name = "csv" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" dependencies = [ "csv-core", "itoa", @@ -385,23 +383,13 @@ dependencies = [ [[package]] name = "csv-core" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" dependencies = [ "memchr", ] -[[package]] -name = "ctor" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote 1.0.26", - "syn 1.0.109", -] - [[package]] name = "diff" version = "0.1.13" @@ -410,13 +398,12 @@ checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", - "subtle", ] [[package]] @@ -442,9 +429,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "embed-resource" @@ -467,9 +454,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.32" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" dependencies = [ "cfg-if 1.0.0", ] @@ -489,9 +476,9 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "add4f07d43996f76ef320709726a556a9d4f965d9410d8d0271132d2f8293480" dependencies = [ "errno-dragonfly", "libc", @@ -510,22 +497,19 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.9.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "filetime" -version = "0.2.21" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.2.16", + "redox_syscall 0.3.5", "windows-sys 0.48.0", ] @@ -552,9 +536,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] @@ -571,7 +555,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "fsevent-sys", ] @@ -590,7 +574,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" dependencies = [ - "bitflags", + "bitflags 1.3.2", "fuchsia-zircon-sys", ] @@ -654,9 +638,9 @@ version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.67", + "quote 1.0.33", + "syn 2.0.37", ] [[package]] @@ -691,9 +675,9 @@ dependencies = [ [[package]] name = "generator" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e123d9ae7c02966b4d892e550bdc32164f05853cd40ab570650ad600596a8a" +checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" dependencies = [ "cc", "libc", @@ -714,9 +698,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if 1.0.0", "libc", @@ -725,17 +709,17 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] name = "globset" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" +checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" dependencies = [ - "aho-corasick 0.7.20", + "aho-corasick", "bstr", "fnv", "log", @@ -744,9 +728,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.18" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" dependencies = [ "bytes", "fnv", @@ -790,18 +774,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.2.6" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "htmlescape" @@ -839,9 +814,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -851,9 +826,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.26" +version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ "bytes", "futures-channel", @@ -866,7 +841,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -888,9 +863,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -912,7 +887,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f" dependencies = [ - "bitflags", + "bitflags 1.3.2", "inotify-sys", "libc", ] @@ -928,9 +903,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.29.0" +version = "1.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a28d25139df397cbca21408bb742cf6837e04cdbebf1b07b760caf971d6a972" +checksum = "1aa511b2e298cd49b1856746f6bb73e17036bcd66b25f5e92cdcdbec9bd75686" dependencies = [ "console", "lazy_static", @@ -942,26 +917,6 @@ dependencies = [ "yaml-rust", ] -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" -dependencies = [ - "hermit-abi 0.3.1", - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "iovec" version = "0.1.4" @@ -973,9 +928,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.7.2" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" [[package]] name = "itertools" @@ -988,9 +943,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jod-thread" @@ -1000,9 +955,9 @@ checksum = "8b23360e99b8717f20aaa4598f5a6541efbe30630039fbc7706cf954a87947ae" [[package]] name = "js-sys" -version = "0.3.61" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ "wasm-bindgen", ] @@ -1031,9 +986,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.142" +version = "0.2.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" +checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" [[package]] name = "linked-hash-map" @@ -1043,18 +998,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.3.4" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36eb31c1778188ae1e64398743890d0877fef36d11521ac60406b42016e8c2cf" +checksum = "3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db" [[package]] name = "log" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if 1.0.0", -] +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "loom" @@ -1101,20 +1053,20 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] @@ -1137,9 +1089,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "miniz_oxide" -version = "0.6.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ "adler", ] @@ -1165,14 +1117,13 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", - "log", "wasi", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -1219,9 +1170,9 @@ dependencies = [ [[package]] name = "net2" -version = "0.2.38" +version = "0.2.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" +checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac" dependencies = [ "cfg-if 0.1.10", "libc", @@ -1234,7 +1185,7 @@ version = "4.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae03c8c853dba7bfd23e571ff0cff7bc9dceb40a4cd684cd1681824183f45257" dependencies = [ - "bitflags", + "bitflags 1.3.2", "filetime", "fsevent", "fsevent-sys", @@ -1258,37 +1209,37 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" dependencies = [ "autocfg", ] [[package]] name = "num_cpus" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.2.6", + "hermit-abi 0.3.3", "libc", ] [[package]] name = "object" -version = "0.30.3" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.17.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "oorandom" @@ -1308,11 +1259,11 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.55" +version = "0.10.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" +checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" dependencies = [ - "bitflags", + "bitflags 2.4.0", "cfg-if 1.0.0", "foreign-types", "libc", @@ -1327,9 +1278,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.67", + "quote 1.0.33", + "syn 2.0.37", ] [[package]] @@ -1340,18 +1291,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "111.25.3+1.1.1t" +version = "300.1.5+3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924757a6a226bf60da5f7dd0311a34d2b52283dd82ddeb103208ddc66362f80c" +checksum = "559068e4c12950d7dcaa1857a61725c0d38d4fc03ff8e070ab31a75d6e316491" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.90" +version = "0.9.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" +checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" dependencies = [ "cc", "libc", @@ -1362,18 +1313,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.5.0" +version = "6.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" - -[[package]] -name = "output_vt100" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" -dependencies = [ - "winapi 0.3.9", -] +checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac" [[package]] name = "overload" @@ -1383,31 +1325,32 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "paste" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.5.7" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1403e8401ad5dedea73c626b99758535b342502f8d1e361f4a2dd952749122" +checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4" dependencies = [ + "memchr", "thiserror", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.5.7" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be99c4c1d2fc2769b1d00239431d711d08f6efedcecb8b6e30707160aee99c15" +checksum = "35513f630d46400a977c4cb58f78e1bfbe01434316e60c37d27b9ad6139c66d8" dependencies = [ "pest", "pest_generator", @@ -1415,22 +1358,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.5.7" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56094789873daa36164de2e822b3888c6ae4b4f9da555a1103587658c805b1e" +checksum = "bc9fc1b9e7057baba189b5c626e2d6f40681ae5b6eb064dc7c7834101ec8123a" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.67", + "quote 1.0.33", + "syn 2.0.37", ] [[package]] name = "pest_meta" -version = "2.5.7" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6733073c7cff3d8459fda0e42f13a047870242aed8b509fe98000928975f359e" +checksum = "1df74e9e7ec4053ceb980e7c0c8bd3594e977fde1af91daba9c928e8e8c6708d" dependencies = [ "once_cell", "pest", @@ -1439,9 +1382,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -1451,15 +1394,15 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "plotters" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" dependencies = [ "num-traits", "plotters-backend", @@ -1470,15 +1413,15 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" [[package]] name = "plotters-svg" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" dependencies = [ "plotters-backend", ] @@ -1491,13 +1434,11 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "pretty_assertions" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" dependencies = [ - "ctor", "diff", - "output_vt100", "yansi", ] @@ -1508,8 +1449,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.67", + "quote 1.0.33", "syn 1.0.109", "version_check", ] @@ -1520,8 +1461,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.67", + "quote 1.0.33", "version_check", ] @@ -1548,31 +1489,31 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" dependencies = [ "unicode-ident", ] [[package]] name = "profiling" -version = "1.0.8" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332cd62e95873ea4f41f3dfd6bbbfc5b52aec892d7e8d534197c4720a0bbbab2" +checksum = "f89dff0959d98c9758c88826cc002e2c3d0b9dfac4139711d1f30de442f1139b" dependencies = [ "profiling-procmacros", - "tracy-client 0.15.2", + "tracy-client 0.16.3", ] [[package]] name = "profiling-procmacros" -version = "1.0.8" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a10adb8d151bb1280afb8bed41ae5db26be1b056964947133c7525b0bf39c0b0" +checksum = "eb156a45b6b9fe8027497422179fb65afc84d36707a7ca98297bf06bccb8d43f" dependencies = [ - "quote 1.0.26", - "syn 1.0.109", + "quote 1.0.33", + "syn 2.0.37", ] [[package]] @@ -1586,11 +1527,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.26" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ - "proc-macro2 1.0.56", + "proc-macro2 1.0.67", ] [[package]] @@ -1625,9 +1566,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -1635,21 +1576,19 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] name = "rbx_binary" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e50573021d04b680018955662eba7dc4aac3de92219231798f6c9b41e38ab01" +checksum = "ad50c13afe91296dad6508ea7e29f4b665fa56cb664ad01eaf8fdbd3da69d5e1" dependencies = [ "log", "lz4", @@ -1662,9 +1601,9 @@ dependencies = [ [[package]] name = "rbx_dom_weak" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161729449bbb0cfa657ce7bcca6a160d0af06d8b8d9efdc9abe14735dccacdb9" +checksum = "843a2e0e1446623625943f7228d9d4b5cf3883017e3964733600682506864b34" dependencies = [ "rbx_types", "serde", @@ -1672,9 +1611,9 @@ dependencies = [ [[package]] name = "rbx_reflection" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bd48487192046fec8f805f3fa29f3d7d5beb9890b0859b1a92bd8aff580343" +checksum = "41e762dfca3217d2d37da631de2fa0d1616edaa61a0a2633263d5d3305baf8c3" dependencies = [ "rbx_types", "serde", @@ -1683,9 +1622,9 @@ dependencies = [ [[package]] name = "rbx_reflection_database" -version = "0.2.7+roblox-588" +version = "0.2.9+roblox-596" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be6cf674182806f11ad4899dd1feafe977591f1ae035ae05a58d4b74e487276" +checksum = "6b18f088a2b4aa66324ec97b5b6ffacb53188aef19f3497d95d6a1d1dbb28e66" dependencies = [ "lazy_static", "rbx_reflection", @@ -1695,12 +1634,12 @@ dependencies = [ [[package]] name = "rbx_types" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "070106e926b8ae54c7bc443e5db4d868d7f0af51c1d7cfd7efe1364c1753d8a3" +checksum = "32a991523e3ad5f43a4d121cb4a1e5bc23f7826bb4a1db5aa51e94f1073150ec" dependencies = [ "base64 0.13.1", - "bitflags", + "bitflags 1.3.2", "blake3", "lazy_static", "rand", @@ -1710,9 +1649,9 @@ dependencies = [ [[package]] name = "rbx_xml" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bc65b70827519fdc4ab47416d1085b912f087fadab9ed415471b6daba635574" +checksum = "fc87343301303ff0510903fb7eb3dbd1c75bdb6ab780fea6091bdc3f58b5829f" dependencies = [ "base64 0.13.1", "log", @@ -1728,7 +1667,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -1737,7 +1676,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -1753,13 +1692,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.1" +version = "1.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" +checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff" dependencies = [ - "aho-corasick 1.0.1", + "aho-corasick", "memchr", - "regex-syntax 0.7.1", + "regex-automata 0.3.9", + "regex-syntax 0.7.5", ] [[package]] @@ -1771,6 +1711,17 @@ dependencies = [ "regex-syntax 0.6.29", ] +[[package]] +name = "regex-automata" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.7.5", +] + [[package]] name = "regex-syntax" version = "0.6.29" @@ -1779,17 +1730,17 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "reqwest" -version = "0.11.16" +version = "0.11.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" dependencies = [ - "base64 0.21.0", + "base64 0.21.4", "bytes", "encoding_rs", "futures-core", @@ -1810,6 +1761,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", + "system-configuration", "tokio", "tokio-native-tls", "tower-service", @@ -1817,7 +1769,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg 0.10.1", + "winreg 0.50.0", ] [[package]] @@ -1846,9 +1798,9 @@ dependencies = [ [[package]] name = "rmp" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" dependencies = [ "byteorder", "num-traits", @@ -1879,12 +1831,12 @@ dependencies = [ [[package]] name = "rojo" -version = "7.3.0" +version = "7.4.0-rc3" dependencies = [ "anyhow", "backtrace", "bincode", - "clap 3.2.23", + "clap 3.2.25", "criterion", "crossbeam-channel", "csv", @@ -1916,6 +1868,7 @@ dependencies = [ "ritz", "roblox_install", "rojo-insta-ext", + "semver", "serde", "serde_json", "serde_yaml", @@ -1955,13 +1908,12 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.14" +version = "0.38.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b864d3c18a5785a05953adeed93e2dca37ed30f18e69bba9f30079d51f363f" +checksum = "67ce50cb2e16c2903e30d1cbccfd8387a74b9d4c938b6a4c5ec6cc7556f7a8a0" dependencies = [ - "bitflags", + "bitflags 2.4.0", "errno", - "io-lifetimes", "libc", "linux-raw-sys", "windows-sys 0.48.0", @@ -1969,15 +1921,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "same-file" @@ -1990,11 +1942,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] @@ -2005,17 +1957,17 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "security-framework" -version = "2.8.2" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -2024,9 +1976,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.8.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ "core-foundation-sys", "libc", @@ -2034,15 +1986,15 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0" [[package]] name = "serde" -version = "1.0.160" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" +checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" dependencies = [ "serde_derive", ] @@ -2059,20 +2011,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.160" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" +checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.67", + "quote 1.0.33", + "syn 2.0.37", ] [[package]] name = "serde_json" -version = "1.0.96" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" dependencies = [ "itoa", "ryu", @@ -2105,9 +2057,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -2116,9 +2068,9 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "c1b21f559e07218024e7e9f90f96f601825397de0e25420135f7f952453fed0b" dependencies = [ "lazy_static", ] @@ -2131,18 +2083,18 @@ checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "snax" @@ -2163,58 +2115,83 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "socket2" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "strsim" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" -[[package]] -name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.67", + "quote 1.0.33", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.15" +version = "2.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.67", + "quote 1.0.33", "unicode-ident", ] [[package]] -name = "tempfile" -version = "3.5.0" +name = "system-configuration" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tempfile" +version = "3.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" dependencies = [ "cfg-if 1.0.0", "fastrand", "redox_syscall 0.3.5", "rustix", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] name = "termcolor" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" dependencies = [ "winapi-util", ] @@ -2236,22 +2213,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.40" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.40" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.67", + "quote 1.0.33", + "syn 2.0.37", ] [[package]] @@ -2291,18 +2268,18 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.27.0" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" +checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" dependencies = [ - "autocfg", + "backtrace", "bytes", "libc", - "mio 0.8.6", + "mio 0.8.8", "num_cpus", "pin-project-lite", - "socket2", - "windows-sys 0.45.0", + "socket2 0.5.4", + "windows-sys 0.48.0", ] [[package]] @@ -2317,9 +2294,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.7" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" +checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" dependencies = [ "bytes", "futures-core", @@ -2358,20 +2335,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.67", + "quote 1.0.33", + "syn 2.0.37", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", "valuable", @@ -2419,13 +2396,13 @@ dependencies = [ [[package]] name = "tracy-client" -version = "0.15.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434ecabbda9f67eeea1eab44d52f4a20538afa3e2c2770f2efc161142b25b608" +checksum = "03684af8fb393cc7903210d868e4cb9f5c1e156737be38f52c4217fb21b86bf6" dependencies = [ "loom", "once_cell", - "tracy-client-sys 0.21.0", + "tracy-client-sys 0.21.2", ] [[package]] @@ -2439,9 +2416,9 @@ dependencies = [ [[package]] name = "tracy-client-sys" -version = "0.21.0" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d99f5fc382239d08b6bf05bb6206a585bfdb988c878f2499081d0f285ef7819" +checksum = "2cb915ea3af048554640d76dd6f1492589a6401a41a30d789b983c1ec280455a" dependencies = [ "cc", ] @@ -2454,15 +2431,15 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "unicode-bidi" @@ -2472,9 +2449,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -2487,9 +2464,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode-xid" @@ -2499,9 +2476,9 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "url" -version = "2.3.1" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna", @@ -2510,9 +2487,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b55a3fef2a1e3b3a00ce878640918820d3c51081576ac657d23af9fc7928fdb" +checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" dependencies = [ "getrandom", "serde", @@ -2558,9 +2535,9 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", @@ -2568,11 +2545,10 @@ dependencies = [ [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] @@ -2584,9 +2560,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -2594,24 +2570,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.67", + "quote 1.0.33", + "syn 2.0.37", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.34" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -2621,38 +2597,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ - "quote 1.0.26", + "quote 1.0.33", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.67", + "quote 1.0.33", + "syn 2.0.37", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "web-sys" -version = "0.3.61" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", @@ -2688,9 +2664,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi 0.3.9", ] @@ -2707,22 +2683,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.0", -] - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -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.48.5", ] [[package]] @@ -2740,7 +2701,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.0", + "windows-targets 0.48.5", ] [[package]] @@ -2760,17 +2721,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -2781,9 +2742,9 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" @@ -2793,9 +2754,9 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" @@ -2805,9 +2766,9 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" @@ -2817,9 +2778,9 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" @@ -2829,9 +2790,9 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" @@ -2841,9 +2802,9 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" @@ -2853,9 +2814,9 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winreg" @@ -2875,6 +2836,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if 1.0.0", + "windows-sys 0.48.0", +] + [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -2887,9 +2858,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.4" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" [[package]] name = "yaml-rust" diff --git a/Cargo.toml b/Cargo.toml index 4c210934..8c3ea003 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rojo" -version = "7.3.0" -rust-version = "1.68.2" +version = "7.4.0-rc3" +rust-version = "1.70.0" authors = ["Lucien Greathouse "] description = "Enables professional-grade development tools for Roblox developers" license = "MPL-2.0" @@ -49,11 +49,11 @@ memofs = { version = "0.2.0", path = "crates/memofs" } # rbx_reflection_database = { path = "../rbx-dom/rbx_reflection_database" } # rbx_xml = { path = "../rbx-dom/rbx_xml" } -rbx_binary = "0.7.1" -rbx_dom_weak = "2.5.0" -rbx_reflection = "4.3.0" -rbx_reflection_database = "0.2.7" -rbx_xml = "0.13.1" +rbx_binary = "0.7.3" +rbx_dom_weak = "2.6.0" +rbx_reflection = "4.4.0" +rbx_reflection_database = "0.2.8" +rbx_xml = "0.13.2" anyhow = "1.0.44" backtrace = "0.3.61" @@ -102,6 +102,7 @@ anyhow = "1.0.44" bincode = "1.3.3" fs-err = "2.6.0" maplit = "1.0.2" +semver = "1.0.19" [dev-dependencies] rojo-insta-ext = { path = "crates/rojo-insta-ext" } diff --git a/README.md b/README.md index fb318f3f..bbdeba30 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Check out our [contribution guide](CONTRIBUTING.md) for detailed instructions fo Pull requests are welcome! -Rojo supports Rust 1.58.1 and newer. The minimum supported version of Rust is based on the latest versions of the dependencies that Rojo has. +Rojo supports Rust 1.70.0 and newer. The minimum supported version of Rust is based on the latest versions of the dependencies that Rojo has. ## License Rojo is available under the terms of the Mozilla Public License, Version 2.0. See [LICENSE.txt](LICENSE.txt) for details. \ No newline at end of file diff --git a/build.rs b/build.rs index 8326fcdc..7dbfc98a 100644 --- a/build.rs +++ b/build.rs @@ -7,6 +7,7 @@ use fs_err as fs; use fs_err::File; use maplit::hashmap; use memofs::VfsSnapshot; +use semver::Version; fn snapshot_from_fs_path(path: &Path) -> io::Result { println!("cargo:rerun-if-changed={}", path.display()); @@ -43,6 +44,19 @@ fn main() -> Result<(), anyhow::Error> { let root_dir = env::var_os("CARGO_MANIFEST_DIR").unwrap(); let plugin_root = PathBuf::from(root_dir).join("plugin"); + let our_version = Version::parse(env::var_os("CARGO_PKG_VERSION").unwrap().to_str().unwrap())?; + let plugin_version = + Version::parse(fs::read_to_string(plugin_root.join("Version.txt"))?.trim())?; + + assert!( + our_version.major == plugin_version.major, + "plugin version does not match Cargo version" + ); + assert!( + our_version.minor == plugin_version.minor, + "plugin version does not match Cargo version" + ); + let snapshot = VfsSnapshot::dir(hashmap! { "default.project.json" => snapshot_from_fs_path(&plugin_root.join("default.project.json"))?, "fmt" => snapshot_from_fs_path(&plugin_root.join("fmt"))?, @@ -51,6 +65,7 @@ fn main() -> Result<(), anyhow::Error> { "rbx_dom_lua" => snapshot_from_fs_path(&plugin_root.join("rbx_dom_lua"))?, "src" => snapshot_from_fs_path(&plugin_root.join("src"))?, "Packages" => snapshot_from_fs_path(&plugin_root.join("Packages"))?, + "Version.txt" => snapshot_from_fs_path(&plugin_root.join("Version.txt"))?, }); let out_path = Path::new(&out_dir).join("plugin.bincode"); diff --git a/crates/memofs/CHANGELOG.md b/crates/memofs/CHANGELOG.md index b49b2f0f..43516260 100644 --- a/crates/memofs/CHANGELOG.md +++ b/crates/memofs/CHANGELOG.md @@ -1,6 +1,7 @@ # memofs Changelog ## Unreleased Changes +* Changed the `StdBackend` file watcher to use `PollWatcher` on macOS. ## 0.2.0 (2021-08-23) * Updated to `crossbeam-channel` 0.5.1. @@ -15,4 +16,4 @@ * Improved error messages using the [fs-err](https://crates.io/crates/fs-err) crate. ## 0.1.0 (2020-03-10) -* Initial release \ No newline at end of file +* Initial release diff --git a/crates/memofs/src/std_backend.rs b/crates/memofs/src/std_backend.rs index c13ade0b..01a554a5 100644 --- a/crates/memofs/src/std_backend.rs +++ b/crates/memofs/src/std_backend.rs @@ -5,19 +5,34 @@ use std::thread; use std::time::Duration; use crossbeam_channel::Receiver; -use notify::{watcher, DebouncedEvent, RecommendedWatcher, RecursiveMode, Watcher}; +use notify::{DebouncedEvent, RecursiveMode, Watcher}; + +#[cfg(target_os = "macos")] +use notify::PollWatcher; +#[cfg(not(target_os = "macos"))] +use notify::{watcher, RecommendedWatcher}; use crate::{DirEntry, Metadata, ReadDir, VfsBackend, VfsEvent}; /// `VfsBackend` that uses `std::fs` and the `notify` crate. pub struct StdBackend { + // We use PollWatcher on macos because using the KQueue watcher + // can cause some gnarly performance problems. + #[cfg(target_os = "macos")] + watcher: PollWatcher, + #[cfg(not(target_os = "macos"))] watcher: RecommendedWatcher, + watcher_receiver: Receiver, } impl StdBackend { pub fn new() -> StdBackend { let (notify_tx, notify_rx) = mpsc::channel(); + + #[cfg(target_os = "macos")] + let watcher = PollWatcher::new(notify_tx, Duration::from_millis(50)).unwrap(); + #[cfg(not(target_os = "macos"))] let watcher = watcher(notify_tx, Duration::from_millis(50)).unwrap(); let (tx, rx) = crossbeam_channel::unbounded(); diff --git a/plugin/Version.txt b/plugin/Version.txt new file mode 100644 index 00000000..c129df57 --- /dev/null +++ b/plugin/Version.txt @@ -0,0 +1 @@ +7.4.0-rc3 \ No newline at end of file diff --git a/plugin/default.project.json b/plugin/default.project.json index 09234438..424f107e 100644 --- a/plugin/default.project.json +++ b/plugin/default.project.json @@ -1,25 +1,27 @@ { - "name": "Rojo", - "tree": { - "$className": "Folder", - "Plugin": { - "$path": "src" - }, - "Packages": { - "$path": "Packages", - - "Log": { - "$path": "log" - }, - "Http": { - "$path": "http" - }, - "Fmt": { - "$path": "fmt" - }, - "RbxDom": { - "$path": "rbx_dom_lua" - } - } - } -} + "name": "Rojo", + "tree": { + "$className": "Folder", + "Plugin": { + "$path": "src" + }, + "Packages": { + "$path": "Packages", + "Log": { + "$path": "log" + }, + "Http": { + "$path": "http" + }, + "Fmt": { + "$path": "fmt" + }, + "RbxDom": { + "$path": "rbx_dom_lua" + } + }, + "Version": { + "$path": "Version.txt" + } + } +} \ No newline at end of file diff --git a/plugin/rbx_dom_lua/EncodedValue.lua b/plugin/rbx_dom_lua/EncodedValue.lua index 35417410..e9dd0edd 100644 --- a/plugin/rbx_dom_lua/EncodedValue.lua +++ b/plugin/rbx_dom_lua/EncodedValue.lua @@ -20,8 +20,8 @@ local function serializeFloat(value) return value end -local ALL_AXES = {"X", "Y", "Z"} -local ALL_FACES = {"Right", "Top", "Back", "Left", "Bottom", "Front"} +local ALL_AXES = { "X", "Y", "Z" } +local ALL_FACES = { "Right", "Top", "Back", "Left", "Bottom", "Front" } local EncodedValue = {} @@ -37,7 +37,10 @@ types = { if ok then output[key] = result else - local warning = ("Could not decode attribute value of type %q: %s"):format(typeof(value), tostring(result)) + local warning = ("Could not decode attribute value of type %q: %s"):format( + typeof(value), + tostring(result) + ) warn(warning) end end @@ -53,7 +56,10 @@ types = { if ok then output[key] = result else - local warning = ("Could not encode attribute value of type %q: %s"):format(typeof(value), tostring(result)) + local warning = ("Could not encode attribute value of type %q: %s"):format( + typeof(value), + tostring(result) + ) warn(warning) end end @@ -111,6 +117,7 @@ types = { local pos = pod.position local orient = pod.orientation + --stylua: ignore return CFrame.new( pos[1], pos[2], pos[3], orient[1][1], orient[1][2], orient[1][3], @@ -120,17 +127,14 @@ types = { end, toPod = function(roblox) - local x, y, z, - r00, r01, r02, - r10, r11, r12, - r20, r21, r22 = roblox:GetComponents() + local x, y, z, r00, r01, r02, r10, r11, r12, r20, r21, r22 = roblox:GetComponents() return { - position = {x, y, z}, + position = { x, y, z }, orientation = { - {r00, r01, r02}, - {r10, r11, r12}, - {r20, r21, r22}, + { r00, r01, r02 }, + { r10, r11, r12 }, + { r20, r21, r22 }, }, } end, @@ -140,7 +144,7 @@ types = { fromPod = unpackDecoder(Color3.new), toPod = function(roblox) - return {roblox.r, roblox.g, roblox.b} + return { roblox.r, roblox.g, roblox.b } end, }, @@ -161,10 +165,7 @@ types = { local keypoints = {} for index, keypoint in ipairs(pod.keypoints) do - keypoints[index] = ColorSequenceKeypoint.new( - keypoint.time, - types.Color3.fromPod(keypoint.color) - ) + keypoints[index] = ColorSequenceKeypoint.new(keypoint.time, types.Color3.fromPod(keypoint.color)) end return ColorSequence.new(keypoints) @@ -279,7 +280,7 @@ types = { pod[material.Name] = { math.round(math.clamp(color.R, 0, 1) * 255), math.round(math.clamp(color.G, 0, 1) * 255), - math.round(math.clamp(color.B, 0, 1) * 255) + math.round(math.clamp(color.B, 0, 1) * 255), } end return pod @@ -290,7 +291,7 @@ types = { fromPod = unpackDecoder(NumberRange.new), toPod = function(roblox) - return {roblox.Min, roblox.Max} + return { roblox.Min, roblox.Max } end, }, @@ -299,11 +300,7 @@ types = { local keypoints = {} for index, keypoint in ipairs(pod.keypoints) do - keypoints[index] = NumberSequenceKeypoint.new( - keypoint.time, - keypoint.value, - keypoint.envelope - ) + keypoints[index] = NumberSequenceKeypoint.new(keypoint.time, keypoint.value, keypoint.envelope) end return NumberSequence.new(keypoints) @@ -358,10 +355,7 @@ types = { Ray = { fromPod = function(pod) - return Ray.new( - types.Vector3.fromPod(pod.origin), - types.Vector3.fromPod(pod.direction) - ) + return Ray.new(types.Vector3.fromPod(pod.origin), types.Vector3.fromPod(pod.direction)) end, toPod = function(roblox) @@ -374,10 +368,7 @@ types = { Rect = { fromPod = function(pod) - return Rect.new( - types.Vector2.fromPod(pod[1]), - types.Vector2.fromPod(pod[2]) - ) + return Rect.new(types.Vector2.fromPod(pod[1]), types.Vector2.fromPod(pod[2])) end, toPod = function(roblox) @@ -389,31 +380,28 @@ types = { }, Ref = { - fromPod = function(_pod) + fromPod = function(_) error("Ref cannot be decoded on its own") end, - toPod = function(_roblox) + toPod = function(_) error("Ref can not be encoded on its own") end, }, Region3 = { - fromPod = function(pod) + fromPod = function(_) error("Region3 is not implemented") end, - toPod = function(roblox) + toPod = function(_) error("Region3 is not implemented") end, }, Region3int16 = { fromPod = function(pod) - return Region3int16.new( - types.Vector3int16.fromPod(pod[1]), - types.Vector3int16.fromPod(pod[2]) - ) + return Region3int16.new(types.Vector3int16.fromPod(pod[1]), types.Vector3int16.fromPod(pod[2])) end, toPod = function(roblox) @@ -425,11 +413,11 @@ types = { }, SharedString = { - fromPod = function(pod) + fromPod = function(_pod) error("SharedString is not supported") end, - toPod = function(roblox) + toPod = function(_roblox) error("SharedString is not supported") end, }, @@ -443,16 +431,13 @@ types = { fromPod = unpackDecoder(UDim.new), toPod = function(roblox) - return {roblox.Scale, roblox.Offset} + return { roblox.Scale, roblox.Offset } end, }, UDim2 = { fromPod = function(pod) - return UDim2.new( - types.UDim.fromPod(pod[1]), - types.UDim.fromPod(pod[2]) - ) + return UDim2.new(types.UDim.fromPod(pod[1]), types.UDim.fromPod(pod[2])) end, toPod = function(roblox) @@ -483,7 +468,7 @@ types = { fromPod = unpackDecoder(Vector2int16.new), toPod = function(roblox) - return {roblox.X, roblox.Y} + return { roblox.X, roblox.Y } end, }, @@ -503,7 +488,7 @@ types = { fromPod = unpackDecoder(Vector3int16.new), toPod = function(roblox) - return {roblox.X, roblox.Y, roblox.Z} + return { roblox.X, roblox.Y, roblox.Z } end, }, } diff --git a/plugin/rbx_dom_lua/EncodedValue.spec.lua b/plugin/rbx_dom_lua/EncodedValue.spec.lua deleted file mode 100644 index 14522ae8..00000000 --- a/plugin/rbx_dom_lua/EncodedValue.spec.lua +++ /dev/null @@ -1,67 +0,0 @@ -return function() - local HttpService = game:GetService("HttpService") - - local EncodedValue = require(script.Parent.EncodedValue) - local allValues = require(script.Parent.allValues) - - local function deepEq(a, b) - if typeof(a) ~= typeof(b) then - return false - end - - local ty = typeof(a) - - if ty == "table" then - local visited = {} - - for key, valueA in a do - visited[key] = true - - if not deepEq(valueA, b[key]) then - return false - end - end - - for key, valueB in b do - if visited[key] then - continue - end - - if not deepEq(valueB, a[key]) then - return false - end - end - - return true - else - return a == b - end - end - - local extraAssertions = { - CFrame = function(value) - expect(value).to.equal(CFrame.new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)) - end, - } - - for testName, testEntry in allValues do - it("round trip " .. testName, function() - local decodeOk, decoded = EncodedValue.decode(testEntry.value) - assert(decodeOk, decoded) - - if extraAssertions[testName] ~= nil then - extraAssertions[testName](decoded) - end - - local encodeOk, encoded = EncodedValue.encode(decoded, testEntry.ty) - assert(encodeOk, encoded) - - if not deepEq(encoded, testEntry.value) then - local expected = HttpService:JSONEncode(testEntry.value) - local actual = HttpService:JSONEncode(encoded) - - error(`Round-trip results did not match.\nExpected:\n{expected}\nActual:\n{actual}`) - end - end) - end -end diff --git a/plugin/rbx_dom_lua/Error.lua b/plugin/rbx_dom_lua/Error.lua index d4c8b1ca..5b8f582c 100644 --- a/plugin/rbx_dom_lua/Error.lua +++ b/plugin/rbx_dom_lua/Error.lua @@ -25,4 +25,4 @@ function Error:__tostring() return ("Error(%s: %s)"):format(self.kind, tostring(self.extra)) end -return Error \ No newline at end of file +return Error diff --git a/plugin/rbx_dom_lua/base64.lua b/plugin/rbx_dom_lua/base64.lua index 33011306..0ea19d39 100644 --- a/plugin/rbx_dom_lua/base64.lua +++ b/plugin/rbx_dom_lua/base64.lua @@ -136,4 +136,4 @@ end return { decode = decodeBase64, encode = encodeBase64, -} \ No newline at end of file +} diff --git a/plugin/rbx_dom_lua/base64.spec.lua b/plugin/rbx_dom_lua/base64.spec.lua deleted file mode 100644 index 5f2a5f4a..00000000 --- a/plugin/rbx_dom_lua/base64.spec.lua +++ /dev/null @@ -1,29 +0,0 @@ -return function() - local base64 = require(script.Parent.base64) - - it("should encode and decode", function() - local function try(str, expected) - local encoded = base64.encode(str) - expect(encoded).to.equal(expected) - expect(base64.decode(encoded)).to.equal(str) - end - - try("Man", "TWFu") - try("Ma", "TWE=") - try("M", "TQ==") - try("ManM", "TWFuTQ==") - try( - [[Man is distinguished, not only by his reason, but by this ]].. - [[singular passion from other animals, which is a lust of the ]].. - [[mind, that by a perseverance of delight in the continued and ]].. - [[indefatigable generation of knowledge, exceeds the short ]].. - [[vehemence of any carnal pleasure.]], - [[TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sI]].. - [[GJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYW]].. - [[xzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJ]].. - [[zZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRl]].. - [[ZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZ]].. - [[SBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=]] - ) - end) -end \ No newline at end of file diff --git a/plugin/rbx_dom_lua/customProperties.lua b/plugin/rbx_dom_lua/customProperties.lua index d4d6f723..072db9ef 100644 --- a/plugin/rbx_dom_lua/customProperties.lua +++ b/plugin/rbx_dom_lua/customProperties.lua @@ -1,4 +1,5 @@ local CollectionService = game:GetService("CollectionService") +local ScriptEditorService = game:GetService("ScriptEditorService") --- A list of `Enum.Material` values that are used for Terrain.MaterialColors local TERRAIN_MATERIAL_COLORS = { @@ -36,9 +37,24 @@ return { end, write = function(instance, _, value) local existing = instance:GetAttributes() + local didAllWritesSucceed = true - for key, attr in pairs(value) do - instance:SetAttribute(key, attr) + for attributeName, attributeValue in pairs(value) do + local isNameValid = + -- For our SetAttribute to succeed, the attribute name must be + -- less than or equal to 100 characters... + #attributeName <= 100 + -- ...must only contain alphanumeric characters, periods, hyphens, + -- underscores, or forward slashes... + and attributeName:match("[^%w%.%-_/]") == nil + -- ... and must not use the RBX prefix, which is reserved by Roblox. + and attributeName:sub(1, 3) ~= "RBX" + + if isNameValid then + instance:SetAttribute(attributeName, attributeValue) + else + didAllWritesSucceed = false + end end for key in pairs(existing) do @@ -47,7 +63,7 @@ return { end end - return true + return didAllWritesSucceed end, }, Tags = { @@ -77,10 +93,10 @@ return { }, LocalizationTable = { Contents = { - read = function(instance, key) + read = function(instance, _) return true, instance:GetContents() end, - write = function(instance, key, value) + write = function(instance, _, value) instance:SetContents(value) return true end, @@ -116,4 +132,34 @@ return { end, }, }, + Script = { + Source = { + read = function(instance: Script) + return true, ScriptEditorService:GetEditorSource(instance) + end, + write = function(instance: Script, _, value: string) + task.spawn(function() + ScriptEditorService:UpdateSourceAsync(instance, function() + return value + end) + end) + return true + end, + }, + }, + ModuleScript = { + Source = { + read = function(instance: ModuleScript) + return true, ScriptEditorService:GetEditorSource(instance) + end, + write = function(instance: ModuleScript, _, value: string) + task.spawn(function() + ScriptEditorService:UpdateSourceAsync(instance, function() + return value + end) + end) + return true + end, + }, + }, } diff --git a/plugin/rbx_dom_lua/database.json b/plugin/rbx_dom_lua/database.json index 1c88154c..817d3130 100644 --- a/plugin/rbx_dom_lua/database.json +++ b/plugin/rbx_dom_lua/database.json @@ -1,9 +1,9 @@ { "Version": [ 0, - 588, - 0, - 5880517 + 597, + 1, + 5970668 ], "Classes": { "Accessory": { @@ -58,6 +58,131 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + } + } + }, + "AccessoryDescription": { + "Name": "AccessoryDescription", + "Tags": [ + "NotBrowsable" + ], + "Superclass": "Instance", + "Properties": { + "AccessoryType": { + "Name": "AccessoryType", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "AccessoryType" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "AssetId": { + "Name": "AssetId", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Int64" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Instance": { + "Name": "Instance", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Ref" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "IsLayered": { + "Name": "IsLayered", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Order": { + "Name": "Order", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Int32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Puffiness": { + "Name": "Puffiness", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "AccessoryType": { + "Enum": 0 + }, + "AssetId": { + "Int64": 0 + }, + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "IsLayered": { + "Bool": false + }, + "Order": { + "Int32": 0 + }, + "Puffiness": { + "Float32": 1.0 + }, "SourceAssetId": { "Int64": -1 }, @@ -195,6 +320,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -212,6 +343,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "LevelOfDetail": { "Enum": 0 }, @@ -418,9 +555,7 @@ }, "AirController": { "Name": "AirController", - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Superclass": "ControllerBase", "Properties": { "BalanceMaxTorque": { @@ -544,6 +679,12 @@ "BalanceSpeed": { "Float32": 100.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MaintainAngularMomentum": { "Bool": true }, @@ -771,9 +912,15 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 23 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -965,9 +1112,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 194 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -1060,6 +1213,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -1137,9 +1296,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 23 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -1189,6 +1354,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -1283,6 +1454,42 @@ ], "Superclass": "Constraint", "Properties": { + "C0": { + "Name": "C0", + "Scriptability": "Read", + "DataType": { + "Value": "CFrame" + }, + "Tags": [ + "Deprecated", + "Hidden", + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "C1": { + "Name": "C1", + "Scriptability": "Read", + "DataType": { + "Value": "CFrame" + }, + "Tags": [ + "Deprecated", + "Hidden", + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "IsKinematic": { "Name": "IsKinematic", "Scriptability": "ReadWrite", @@ -1322,6 +1529,42 @@ } } }, + "Part0": { + "Name": "Part0", + "Scriptability": "Read", + "DataType": { + "Value": "Ref" + }, + "Tags": [ + "Deprecated", + "Hidden", + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "Part1": { + "Name": "Part1", + "Scriptability": "Read", + "DataType": { + "Value": "Ref" + }, + "Tags": [ + "Deprecated", + "Hidden", + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "Transform": { "Name": "Transform", "Scriptability": "ReadWrite", @@ -1340,9 +1583,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 23 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -1401,6 +1650,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -1421,6 +1676,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -1615,6 +1876,22 @@ } } }, + "rootMotion": { + "Name": "rootMotion", + "Scriptability": "None", + "DataType": { + "Value": "BinaryString" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "transform": { "Name": "transform", "Scriptability": "None", @@ -1652,6 +1929,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -1688,6 +1971,9 @@ "preTransform": { "BinaryString": "AQAAAAEAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAA=" }, + "rootMotion": { + "BinaryString": "" + }, "transform": { "BinaryString": "AQAAAAEAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAA=" }, @@ -1972,12 +2258,52 @@ "Serialization": "Serializes" } } + }, + "RootMotion": { + "Name": "RootMotion", + "Scriptability": "Read", + "DataType": { + "Value": "CFrame" + }, + "Tags": [ + "NotBrowsable", + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "RootMotionWeight": { + "Name": "RootMotionWeight", + "Scriptability": "Read", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "NotBrowsable", + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } } }, "DefaultProperties": { "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "PreferLodEnabled": { "Bool": true }, @@ -2121,6 +2447,9 @@ "Z" ] }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -2128,6 +2457,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -2298,6 +2630,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -2403,6 +2741,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "Color3": [ 0.7843, @@ -2417,6 +2758,9 @@ 0.0549 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Density": { "Float32": 0.395 }, @@ -2673,6 +3017,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -2728,6 +3078,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -2787,6 +3143,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Depth": { "Float32": 0.45 }, @@ -2884,6 +3246,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MakeupGain": { "Float32": 0.0 }, @@ -3006,6 +3374,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Muted": { "Bool": false }, @@ -3042,6 +3416,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -3075,6 +3455,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Level": { "Float32": 0.5 }, @@ -3150,6 +3536,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "DelayTime": { "Float32": 1.0 }, @@ -3198,6 +3590,12 @@ "AudioInteractionGroup": { "String": "" }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -3270,6 +3668,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "HighGain": { "Float32": 0.0 }, @@ -3318,6 +3722,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -3380,6 +3790,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Depth": { "Float32": 0.45 }, @@ -3425,6 +3841,12 @@ "AudioInteractionGroup": { "String": "" }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -3468,6 +3890,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Pitch": { "Float32": 1.25 }, @@ -3633,6 +4061,12 @@ "AutoLoad": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "LoopRegion": { "NumberRange": [ 0.0, @@ -3830,12 +4264,18 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "DecayRatio": { "Float32": 0.5 }, "DecayTime": { "Float32": 1.5 }, + "DefinesCapabilities": { + "Bool": false + }, "Density": { "Float32": 1.0 }, @@ -4064,6 +4504,17 @@ }, "DefaultProperties": {} }, + "AvatarCreationService": { + "Name": "AvatarCreationService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "AvatarEditorService": { "Name": "AvatarEditorService", "Tags": [ @@ -4095,6 +4546,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -4267,9 +4724,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 1009 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -6046,6 +6509,9 @@ "Brightness": { "Float32": 1.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "ColorSequence": { "keypoints": [ @@ -6074,6 +6540,9 @@ "CurveSize1": { "Float32": 0.0 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -6453,9 +6922,15 @@ "Brightness": { "Float32": 1.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipsDescendants": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "DistanceLowerLimit": { "Float32": 0.0 }, @@ -6575,6 +7050,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -6595,6 +7076,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -6612,6 +7099,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -6638,6 +7131,12 @@ "Bulge": { "Float32": 0.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Offset": { "Vector3": [ 0.0, @@ -6716,6 +7215,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -6759,6 +7264,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -6863,6 +7374,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MaxTorque": { "Vector3": [ 4000.0, @@ -7047,6 +7564,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "HeadColor3": { "Color3": [ 0.9921569, @@ -7138,6 +7661,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Force": { "Vector3": [ 0.0, @@ -7275,9 +7804,15 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "D": { "Float32": 500.0 }, + "DefinesCapabilities": { + "Bool": false + }, "MaxTorque": { "Vector3": [ 400000.0, @@ -7306,6 +7841,97 @@ "Properties": {}, "DefaultProperties": {} }, + "BodyPartDescription": { + "Name": "BodyPartDescription", + "Tags": [ + "NotBrowsable" + ], + "Superclass": "Instance", + "Properties": { + "AssetId": { + "Name": "AssetId", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Int64" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "BodyPart": { + "Name": "BodyPart", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "BodyPart" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Color": { + "Name": "Color", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Color3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Instance": { + "Name": "Instance", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Ref" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "AssetId": { + "Int64": 0 + }, + "Attributes": { + "Attributes": {} + }, + "BodyPart": { + "Enum": 0 + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "Color": { + "Color3": [ + 0.0, + 0.0, + 0.0 + ] + }, + "DefinesCapabilities": { + "Bool": false + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + } + } + }, "BodyPosition": { "Name": "BodyPosition", "Tags": [ @@ -7402,9 +8028,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "D": { "Float32": 1250.0 }, + "DefinesCapabilities": { + "Bool": false + }, "MaxForce": { "Vector3": [ 4000.0, @@ -7500,6 +8132,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Force": { "Vector3": [ 0.0, @@ -7605,6 +8243,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MaxForce": { "Vector3": [ 4000.0, @@ -7714,6 +8358,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -7748,6 +8398,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -7814,6 +8470,9 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -7821,6 +8480,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Size": { "Vector3": [ 1.0, @@ -8067,6 +8729,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -8330,6 +8998,12 @@ "BubblesSpacing": { "Float32": 6.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -8428,6 +9102,19 @@ } } }, + "TailVisible": { + "Name": "TailVisible", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "TextColor3": { "Name": "TextColor3", "Scriptability": "ReadWrite", @@ -8459,6 +9146,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -8480,9 +9173,7 @@ }, "BuoyancySensor": { "Name": "BuoyancySensor", - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Superclass": "SensorBase", "Properties": { "FullySubmerged": { @@ -8516,6 +9207,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "FullySubmerged": { "Bool": false }, @@ -8556,6 +9253,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -8601,6 +9304,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -8884,6 +9593,12 @@ "CameraType": { "Enum": 0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "FieldOfView": { "Float32": 70.0 }, @@ -9007,9 +9722,15 @@ "BorderSizePixel": { "Int32": 1 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipsDescendants": { "Bool": true }, + "DefinesCapabilities": { + "Bool": false + }, "Draggable": { "Bool": false }, @@ -9023,6 +9744,9 @@ "GroupTransparency": { "Float32": 0.0 }, + "Interactable": { + "Bool": true + }, "LayoutOrder": { "Int32": 0 }, @@ -9148,9 +9872,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Channel": { "Int32": 1 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -9242,6 +9972,12 @@ "BodyPart": { "Enum": 0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MeshId": { "Int64": 0 }, @@ -9299,6 +10035,12 @@ "BubbleChatEnabled": { "Bool": false }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "LoadDefaultChat": { "Bool": true }, @@ -9597,6 +10339,12 @@ "BackgroundTransparency": { "Float64": 0.2 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -9886,6 +10634,12 @@ "BackgroundTransparency": { "Float64": 0.3 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -9937,6 +10691,17 @@ } } }, + "ChatbotUIService": { + "Name": "ChatbotUIService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "ChorusSoundEffect": { "Name": "ChorusSoundEffect", "Tags": [], @@ -9986,6 +10751,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Depth": { "Float32": 0.15 }, @@ -10045,9 +10816,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CursorIcon": { "Content": "" }, + "DefinesCapabilities": { + "Bool": false + }, "MaxActivationDistance": { "Float32": 32.0 }, @@ -10071,9 +10848,7 @@ }, "ClimbController": { "Name": "ClimbController", - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Superclass": "ControllerBase", "Properties": { "AccelerationTime": { @@ -10145,6 +10920,12 @@ "BalanceSpeed": { "Float32": 100.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MoveMaxForce": { "Float32": 10000.0 }, @@ -10288,6 +11069,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "Color3": [ 1.0, @@ -10298,6 +11082,9 @@ "Cover": { "Float32": 0.5 }, + "DefinesCapabilities": { + "Bool": false + }, "Density": { "Float32": 0.7 }, @@ -10323,6 +11110,120 @@ "Properties": {}, "DefaultProperties": {} }, + "Collaborator": { + "Name": "Collaborator", + "Tags": [ + "NotCreatable" + ], + "Superclass": "Instance", + "Properties": { + "CFrame": { + "Name": "CFrame", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "CFrame" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "CollaboratorColor": { + "Name": "CollaboratorColor", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Int32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "CurDocGUID": { + "Name": "CurDocGUID", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "CurScriptLineNumber": { + "Name": "CurScriptLineNumber", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Int32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Status": { + "Name": "Status", + "Scriptability": "None", + "DataType": { + "Enum": "CollaboratorStatus" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "UserId": { + "Name": "UserId", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Int64" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Username": { + "Name": "Username", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": {} + }, + "CollaboratorsService": { + "Name": "CollaboratorsService", + "Tags": [ + "NotCreatable", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "CollectionService": { "Name": "CollectionService", "Tags": [ @@ -10335,6 +11236,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -10366,6 +11273,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -10446,9 +11359,15 @@ "Brightness": { "Float32": 0.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Contrast": { "Float32": 0.0 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -10722,6 +11641,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -10816,6 +11741,9 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -10823,6 +11751,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Height": { "Float32": 2.0 }, @@ -10862,6 +11793,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -11027,6 +11964,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -11098,9 +12041,7 @@ }, "ControllerManager": { "Name": "ControllerManager", - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Superclass": "Instance", "Properties": { "ActiveController": { @@ -11218,6 +12159,12 @@ "BaseTurnSpeed": { "Float32": 8.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "FacingDirection": { "Vector3": [ 0.0, @@ -11242,9 +12189,7 @@ }, "ControllerPartSensor": { "Name": "ControllerPartSensor", - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Superclass": "ControllerSensor", "Properties": { "HitFrame": { @@ -11317,6 +12262,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "HitFrame": { "CFrame": { "position": [ @@ -11399,6 +12350,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -11561,6 +12518,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -11580,6 +12540,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "EnableFluidForces": { "Bool": true }, @@ -11707,6 +12670,17 @@ } } }, + "CreationDBService": { + "Name": "CreationDBService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "CrossDMScriptChangeListener": { "Name": "CrossDMScriptChangeListener", "Tags": [ @@ -11727,6 +12701,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "GuidBinaryString": { "BinaryString": "AAAAAAAAAAAAAAAAAAAAAA==" }, @@ -11772,6 +12752,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "PersistedCurrentValue": { "Float32": 0.0 }, @@ -11808,6 +12794,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -11922,6 +12914,9 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -11929,6 +12924,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Height": { "Float32": 1.0 }, @@ -11982,6 +12980,12 @@ "Bulge": { "Float32": 0.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Offset": { "Vector3": [ 0.0, @@ -12256,9 +13260,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 1009 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -12772,6 +13782,29 @@ "Properties": {}, "DefaultProperties": {} }, + "DataStoreGetOptions": { + "Name": "DataStoreGetOptions", + "Tags": [ + "NotReplicated" + ], + "Superclass": "Instance", + "Properties": { + "UseCache": { + "Name": "UseCache", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": {} + }, "DataStoreIncrementOptions": { "Name": "DataStoreIncrementOptions", "Tags": [ @@ -13120,6 +14153,12 @@ "AutomaticRetry": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "LegacyNamingScheme": { "Bool": false }, @@ -13178,6 +14217,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MaxItems": { "Int32": 1000 }, @@ -13924,6 +14969,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 1.0, @@ -13931,6 +14979,9 @@ 1.0 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Face": { "Enum": 5 }, @@ -14013,6 +15064,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -14190,9 +15247,15 @@ "BehaviorType": { "Enum": 0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ConversationDistance": { "Float32": 25.0 }, + "DefinesCapabilities": { + "Bool": false + }, "GoodbyeChoiceActive": { "Bool": true }, @@ -14288,6 +15351,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "GoodbyeChoiceActive": { "Bool": true }, @@ -14331,6 +15400,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -14460,6 +15535,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MaxValue": { "Float64": 1.0 }, @@ -14490,9 +15571,7 @@ }, "DragDetector": { "Name": "DragDetector", - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Superclass": "ClickDetector", "Properties": { "ActivatedCursorIcon": { @@ -14724,6 +15803,22 @@ } } }, + "PhysicalDragIsInVR": { + "Name": "PhysicalDragIsInVR", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "PhysicalDragTargetFrame": { "Name": "PhysicalDragTargetFrame", "Scriptability": "None", @@ -14887,9 +15982,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CursorIcon": { "Content": "" }, + "DefinesCapabilities": { + "Bool": false + }, "DragFrame": { "CFrame": { "position": [ @@ -15283,9 +16384,7 @@ }, "DynamicImage": { "Name": "DynamicImage", - "Tags": [ - "NotCreatable" - ], + "Tags": [], "Superclass": "Instance", "Properties": { "Size": { @@ -15308,11 +16407,36 @@ "Name": "DynamicMesh", "Tags": [], "Superclass": "DataModelMesh", - "Properties": {}, + "Properties": { + "MeshVersion": { + "Name": "MeshVersion", + "Scriptability": "Read", + "DataType": { + "Value": "Int32" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, "DefaultProperties": { "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "MeshVersion": { + "Int32": 0 + }, "Offset": { "Vector3": [ 0.0, @@ -15427,6 +16551,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Delay": { "Float32": 1.0 }, @@ -15512,6 +16642,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -15558,6 +16694,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "RotationOrder": { "Enum": 0 }, @@ -15651,6 +16793,44 @@ }, "DefaultProperties": {} }, + "ExperienceNotificationService": { + "Name": "ExperienceNotificationService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + } + } + }, + "ExperienceService": { + "Name": "ExperienceService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "Explosion": { "Name": "Explosion", "Tags": [], @@ -15758,6 +16938,12 @@ "BlastRadius": { "Float32": 4.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "DestroyJointRadiusPercent": { "Float32": 1.0 }, @@ -15810,6 +16996,22 @@ } } }, + "FaceTrackingStatusEnum": { + "Name": "FaceTrackingStatusEnum", + "Scriptability": "None", + "DataType": { + "Enum": "TrackerFaceTrackingStatus" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "FlipHeadOrientation": { "Name": "FlipHeadOrientation", "Scriptability": "None", @@ -16605,6 +17807,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -16847,6 +18055,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MeshId": { "Content": "" }, @@ -17026,6 +18240,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "Color3": [ 0.92549026, @@ -17033,6 +18250,9 @@ 0.27450982 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -17088,6 +18308,12 @@ "CanBeDropped": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -17298,6 +18524,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -17317,6 +18546,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "EnableFluidForces": { "Bool": true }, @@ -17512,6 +18744,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Depth": { "Float32": 0.45 }, @@ -17577,6 +18815,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -17704,6 +18948,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -17714,6 +18961,9 @@ "CycleOffset": { "Float32": 0.0 }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -17757,6 +19007,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -17791,6 +19047,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -17822,6 +19084,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -17955,12 +19223,21 @@ "BorderSizePixel": { "Int32": 1 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipsDescendants": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "Draggable": { "Bool": false }, + "Interactable": { + "Bool": true + }, "LayoutOrder": { "Int32": 0 }, @@ -18161,6 +19438,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Description": { "String": "?" }, @@ -18187,6 +19470,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -18487,6 +19776,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -18556,9 +19851,7 @@ }, "GroundController": { "Name": "GroundController", - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Superclass": "ControllerBase", "Properties": { "AccelerationLean": { @@ -18724,9 +20017,15 @@ "BalanceSpeed": { "Float32": 100.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "DecelerationTime": { "Float32": 0.0 }, + "DefinesCapabilities": { + "Bool": false + }, "Friction": { "Float32": 2.0 }, @@ -19325,9 +20624,15 @@ "AutoLocalize": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipToDeviceSafeArea": { "Bool": true }, + "DefinesCapabilities": { + "Bool": false + }, "DisplayOrder": { "Int32": 0 }, @@ -19591,6 +20896,19 @@ } } }, + "Interactable": { + "Name": "Interactable", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "LayoutOrder": { "Name": "LayoutOrder", "Scriptability": "ReadWrite", @@ -20068,6 +21386,23 @@ } } }, + "TopbarInset": { + "Name": "TopbarInset", + "Scriptability": "Read", + "DataType": { + "Value": "Rect" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "TouchControlsEnabled": { "Name": "TouchControlsEnabled", "Scriptability": "ReadWrite", @@ -20296,6 +21631,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -20303,6 +21641,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Faces": { "Faces": [ "Right", @@ -20387,6 +21728,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -20449,6 +21796,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "HSRData": { "BinaryString": "" }, @@ -20594,6 +21947,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "DepthMode": { "Enum": 0 }, @@ -20835,9 +22194,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 1009 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -20890,6 +22255,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -20912,6 +22283,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "FaceId": { "Enum": 0 }, @@ -21023,6 +22400,12 @@ "BinType": { "Enum": 0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "LevelOfDetail": { "Enum": 0 }, @@ -21150,6 +22533,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "HttpEnabled": { "Bool": false }, @@ -21326,9 +22715,7 @@ "DataType": { "Value": "Bool" }, - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -21925,9 +23312,15 @@ "BreakJointsOnDeath": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CollisionType": { "Enum": 0 }, + "DefinesCapabilities": { + "Bool": false + }, "DisplayDistanceType": { "Enum": 0 }, @@ -22006,6 +23399,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -22034,6 +23433,22 @@ } } }, + "AccessoryRigidAndLayeredBlob": { + "Name": "AccessoryRigidAndLayeredBlob", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "BackAccessory": { "Name": "BackAccessory", "Scriptability": "ReadWrite", @@ -22580,6 +23995,9 @@ "AccessoryBlob": { "String": "[]" }, + "AccessoryRigidAndLayeredBlob": { + "String": "[]" + }, "Attributes": { "Attributes": {} }, @@ -22589,9 +24007,15 @@ "BodyTypeScale": { "Float32": 0.3 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClimbAnimation": { "Int64": 0 }, + "DefinesCapabilities": { + "Bool": false + }, "DepthScale": { "Float32": 1.0 }, @@ -22888,6 +24312,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -23224,9 +24654,15 @@ "BorderSizePixel": { "Int32": 1 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipsDescendants": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "Draggable": { "Bool": false }, @@ -23258,6 +24694,9 @@ "ImageTransparency": { "Float32": 0.0 }, + "Interactable": { + "Bool": true + }, "LayoutOrder": { "Int32": 0 }, @@ -23439,6 +24878,9 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.9490197, @@ -23446,6 +24888,9 @@ 0.95294124 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Image": { "Content": "rbxasset://textures/SurfacesDefault.png" }, @@ -23690,9 +25135,15 @@ "BorderSizePixel": { "Int32": 1 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipsDescendants": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "Draggable": { "Bool": false }, @@ -23721,6 +25172,9 @@ "ImageTransparency": { "Float32": 0.0 }, + "Interactable": { + "Bool": true + }, "LayoutOrder": { "Int32": 0 }, @@ -24025,6 +25479,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -24109,6 +25569,22 @@ } } }, + "Capabilities": { + "Name": "Capabilities", + "Scriptability": "None", + "DataType": { + "Value": "SecurityCapabilities" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ClassName": { "Name": "ClassName", "Scriptability": "Read", @@ -24143,6 +25619,22 @@ } } }, + "DefinesCapabilities": { + "Name": "DefinesCapabilities", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "HistoryId": { "Name": "HistoryId", "Scriptability": "None", @@ -24431,6 +25923,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MaxValue": { "Int64": 10 }, @@ -24471,6 +25969,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -24637,6 +26141,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -24659,6 +26166,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "EnableFluidForces": { "Bool": true }, @@ -24983,6 +26493,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -25017,6 +26533,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -25056,6 +26578,12 @@ "AuthoredHipHeight": { "Float32": 2.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "GuidBinaryString": { "BinaryString": "AAAAAAAAAAAAAAAAAAAAAA==" }, @@ -25108,6 +26636,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -25534,6 +27068,9 @@ "Brightness": { "Float32": 1.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ColorShift_Bottom": { "Color3": [ 0.0, @@ -25548,6 +27085,9 @@ 0.0 ] }, + "DefinesCapabilities": { + "Bool": false + }, "EnvironmentDiffuseScale": { "Float32": 0.0 }, @@ -25681,9 +27221,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 23 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -25778,6 +27324,9 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -25785,6 +27334,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Length": { "Float32": 5.0 }, @@ -25833,6 +27385,19 @@ } } }, + "ForceLimitsEnabled": { + "Name": "ForceLimitsEnabled", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "LineDirection": { "Name": "LineDirection", "Scriptability": "ReadWrite", @@ -25981,15 +27546,24 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 26 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, "ForceLimitMode": { "Enum": 0 }, + "ForceLimitsEnabled": { + "Bool": true + }, "LineDirection": { "Vector3": [ 1.0, @@ -26067,7 +27641,24 @@ "Service" ], "Superclass": "Instance", - "Properties": {}, + "Properties": { + "ServerLiveEditingMode": { + "Name": "ServerLiveEditingMode", + "Scriptability": "None", + "DataType": { + "Enum": "ServerLiveEditingMode" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + } + }, "DefaultProperties": {} }, "LocalDebuggerConnection": { @@ -26089,6 +27680,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Disabled": { "Bool": false }, @@ -26293,6 +27890,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -26390,9 +27993,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Contents": { "String": "[]" }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -26507,6 +28116,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -26515,6 +28130,17 @@ } } }, + "LogReporterService": { + "Name": "LogReporterService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "LogService": { "Name": "LogService", "Tags": [ @@ -26729,6 +28355,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -26811,6 +28443,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -26895,6 +28533,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -26948,6 +28592,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -27724,6 +29374,9 @@ "BrickName": { "String": "Brick" }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CardboardName": { "String": "Cardboard" }, @@ -27748,6 +29401,9 @@ "CrackedLavaName": { "String": "CrackedLava" }, + "DefinesCapabilities": { + "Bool": false + }, "DiamondPlateName": { "String": "DiamondPlate" }, @@ -28013,12 +29669,18 @@ "BaseMaterial": { "Enum": 256 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ColorMap": { "Content": "" }, "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "MaterialPattern": { "Enum": 0 }, @@ -28066,6 +29728,16 @@ "Properties": {}, "DefaultProperties": {} }, + "MemoryStoreHashMap": { + "Name": "MemoryStoreHashMap", + "Tags": [ + "NotCreatable", + "NotReplicated" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "MemoryStoreQueue": { "Name": "MemoryStoreQueue", "Tags": [ @@ -28087,6 +29759,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -28419,22 +30097,6 @@ "Tags": [], "Superclass": "TriangleMeshPart", "Properties": { - "AeroMeshData": { - "Name": "AeroMeshData", - "Scriptability": "None", - "DataType": { - "Value": "SharedString" - }, - "Tags": [ - "Hidden", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, "AlternateMeshHash": { "Name": "AlternateMeshHash", "Scriptability": "None", @@ -28701,6 +30363,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -28720,6 +30385,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "DoubleSided": { "Bool": false }, @@ -28910,6 +30578,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -29129,12 +30803,18 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Condition": { "String": "" }, "ContinueExecution": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -29187,9 +30867,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ContextDataInternal": { "String": "0 1 2 " }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -29404,6 +31090,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "LevelOfDetail": { "Enum": 0 }, @@ -29520,7 +31212,7 @@ }, "Source": { "Name": "Source", - "Scriptability": "ReadWrite", + "Scriptability": "Custom", "DataType": { "Value": "String" }, @@ -29536,6 +31228,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "LinkedSource": { "Content": "" }, @@ -29653,6 +31351,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "DesiredAngle": { "Float32": 0.0 }, @@ -29782,6 +31486,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "DesiredAngle": { "Float32": 0.0 }, @@ -29810,6 +31520,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "FaceId": { "Enum": 0 }, @@ -30158,6 +31874,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -30180,6 +31899,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "EnableFluidForces": { "Bool": true }, @@ -30612,6 +32334,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -30634,6 +32362,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -30741,6 +32475,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "EasingDirection": { "Enum": 0 }, @@ -30784,6 +32524,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -30818,6 +32564,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -30860,6 +32612,35 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + } + } + }, + "OperationTree": { + "Name": "OperationTree", + "Tags": [], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -31233,6 +33014,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 1.0, @@ -31240,6 +33024,9 @@ 1.0 ] }, + "DefinesCapabilities": { + "Bool": false + }, "PantsTemplate": { "Content": "" }, @@ -31336,6 +33123,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.9490197, @@ -31343,6 +33133,9 @@ 0.95294124 ] }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -31480,6 +33273,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -31499,6 +33295,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "EnableFluidForces": { "Bool": true }, @@ -31949,6 +33748,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -31971,6 +33773,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "EnableFluidForces": { "Bool": true }, @@ -32166,9 +33971,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ChildData": { "BinaryString": "" }, + "DefinesCapabilities": { + "Bool": false + }, "MeshData": { "BinaryString": "" }, @@ -32328,23 +34139,6 @@ } } }, - "FlipbookTextureCompatible": { - "Name": "FlipbookTextureCompatible", - "Scriptability": "None", - "DataType": { - "Enum": "ParticleFlipbookTextureCompatible" - }, - "Tags": [ - "Hidden", - "NotReplicated", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "DoesNotSerialize" - } - } - }, "Lifetime": { "Name": "Lifetime", "Scriptability": "ReadWrite", @@ -32662,6 +34456,9 @@ "Brightness": { "Float32": 1.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "ColorSequence": { "keypoints": [ @@ -32684,6 +34481,9 @@ ] } }, + "DefinesCapabilities": { + "Bool": false + }, "Drag": { "Float32": 0.0 }, @@ -32989,6 +34789,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "IsBidirectional": { "Bool": true }, @@ -33039,6 +34845,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Label": { "String": "" }, @@ -33211,6 +35023,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -33231,6 +35049,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -33455,6 +35279,19 @@ } } }, + "AreNonAnchorsShown": { + "Name": "AreNonAnchorsShown", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "AreOwnersShown": { "Name": "AreOwnersShown", "Scriptability": "ReadWrite", @@ -33585,6 +35422,19 @@ } } }, + "FluidForceDrawScale": { + "Name": "FluidForceDrawScale", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ForceCSGv2": { "Name": "ForceCSGv2", "Scriptability": "ReadWrite", @@ -33679,6 +35529,32 @@ } } }, + "ShowFluidForcesForSelectedOrHoveredAssemblies": { + "Name": "ShowFluidForcesForSelectedOrHoveredAssemblies", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "SolverConvergenceMetricType": { + "Name": "SolverConvergenceMetricType", + "Scriptability": "None", + "DataType": { + "Enum": "SolverConvergenceMetricType" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "SolverConvergenceVisualizationMode": { "Name": "SolverConvergenceVisualizationMode", "Scriptability": "None", @@ -33744,6 +35620,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -33794,9 +35676,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 194 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -33820,9 +35708,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 194 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -33846,6 +35740,17 @@ "Properties": {}, "DefaultProperties": {} }, + "PlatformFriendsService": { + "Name": "PlatformFriendsService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "Player": { "Name": "Player", "Tags": [], @@ -34797,9 +36702,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CustomPoliciesEnabled": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "EmulatedCountryCode": { "String": "" }, @@ -34892,6 +36803,17 @@ "Properties": {}, "DefaultProperties": {} }, + "PlayerViewService": { + "Name": "PlayerViewService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "Players": { "Name": "Players", "Tags": [ @@ -35147,9 +37069,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CharacterAutoLoads": { "Bool": true }, + "DefinesCapabilities": { + "Bool": false + }, "MaxPlayers": { "Int32": 12 }, @@ -35424,6 +37352,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Manifest": { "String": "{\"Metadata\":{\"TargetDataModels\": [\"Edit\", \"Server\", \"Client\"]},\"Permissions\":{}}" }, @@ -35737,6 +37671,9 @@ "Brightness": { "Float32": 1.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "Color3": [ 1.0, @@ -35744,6 +37681,9 @@ 1.0 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -35879,6 +37819,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "EasingDirection": { "Enum": 0 }, @@ -35980,9 +37926,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 1009 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -36045,6 +37997,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -36251,9 +38209,15 @@ "AutoLocalize": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClickablePrompt": { "Bool": true }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -36334,6 +38298,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -36392,6 +38362,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -36433,6 +38409,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -36450,6 +38432,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -36539,6 +38527,9 @@ "Browsable": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClassCategory": { "String": "" }, @@ -36548,6 +38539,9 @@ "Constraint": { "String": "" }, + "DefinesCapabilities": { + "Bool": false + }, "Deprecated": { "Bool": false }, @@ -36616,6 +38610,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -36636,6 +38636,9 @@ "Browsable": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClassCategory": { "String": "" }, @@ -36645,6 +38648,9 @@ "Constraint": { "String": "" }, + "DefinesCapabilities": { + "Bool": false + }, "Deprecated": { "Bool": false }, @@ -36701,6 +38707,9 @@ "Browsable": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClassCategory": { "String": "" }, @@ -36710,6 +38719,9 @@ "Constraint": { "String": "" }, + "DefinesCapabilities": { + "Bool": false + }, "Deprecated": { "Bool": false }, @@ -36763,6 +38775,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -36780,6 +38798,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -36797,6 +38821,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -37035,6 +39065,9 @@ "Browsable": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClassCategory": { "String": "" }, @@ -37044,6 +39077,9 @@ "Constraint": { "String": "" }, + "DefinesCapabilities": { + "Bool": false + }, "Deprecated": { "Bool": false }, @@ -37097,6 +39133,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -37114,6 +39156,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -37122,6 +39170,17 @@ } } }, + "ReflectionService": { + "Name": "ReflectionService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "RemoteCursorService": { "Name": "RemoteCursorService", "Tags": [ @@ -37152,6 +39211,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -37169,6 +39234,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -37598,6 +39669,9 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ComparisonDiffThreshold": { "Int32": 10 }, @@ -37607,6 +39681,9 @@ "ComparisonPsnrThreshold": { "Float32": 50.0 }, + "DefinesCapabilities": { + "Bool": false + }, "Description": { "String": "" }, @@ -37648,6 +39725,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -37668,6 +39751,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -37751,9 +39840,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "DecayTime": { "Float32": 1.5 }, + "DefinesCapabilities": { + "Bool": false + }, "Density": { "Float32": 1.0 }, @@ -37780,6 +39875,17 @@ } } }, + "RibbonNotificationService": { + "Name": "RibbonNotificationService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "RigidConstraint": { "Name": "RigidConstraint", "Tags": [], @@ -37789,9 +39895,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 194 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -38010,9 +40122,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CartoonFactor": { "Float32": 0.7 }, + "DefinesCapabilities": { + "Bool": false + }, "MaxSpeed": { "Float32": 30.0 }, @@ -38147,9 +40265,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 26 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -38463,6 +40587,19 @@ } } }, + "ValidateUgcBody": { + "Name": "ValidateUgcBody", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "WorldForward": { "Name": "WorldForward", "Scriptability": "ReadWrite", @@ -38622,9 +40759,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 25 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -38726,6 +40869,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -38803,6 +40952,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -38880,6 +41035,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -38933,6 +41094,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -38940,7 +41107,7 @@ "Tags": [] }, "ValuesAndTimes": { - "BinaryString": "AAAAAAAAAAAAAAAAAAAWRQAAAAA=" + "BinaryString": "AQAAAAAAAAAAAAAAAAAWRQAAAAA=" } } }, @@ -39135,9 +41302,15 @@ "AutoLocalize": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipToDeviceSafeArea": { "Bool": true }, + "DefinesCapabilities": { + "Bool": false + }, "DisplayOrder": { "Int32": 0 }, @@ -39301,7 +41474,7 @@ "Properties": { "Source": { "Name": "Source", - "Scriptability": "ReadWrite", + "Scriptability": "Custom", "DataType": { "Value": "String" }, @@ -39317,6 +41490,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Disabled": { "Bool": false }, @@ -39578,6 +41757,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -39952,9 +42137,15 @@ ] ] }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipsDescendants": { "Bool": true }, + "DefinesCapabilities": { + "Bool": false + }, "Draggable": { "Bool": false }, @@ -39964,6 +42155,9 @@ "HorizontalScrollBarInset": { "Enum": 0 }, + "Interactable": { + "Bool": true + }, "LayoutOrder": { "Int32": 0 }, @@ -40164,6 +42358,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -40183,6 +42380,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "Disabled": { "Bool": false }, @@ -40432,6 +42632,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -40521,6 +42727,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -40528,6 +42737,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "LineThickness": { "Float32": 0.15 }, @@ -40616,6 +42828,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -40623,6 +42838,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -40662,6 +42880,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -40669,6 +42890,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Point": { "Vector3": [ 0.0, @@ -40743,6 +42967,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -40750,6 +42977,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -40837,6 +43067,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "LoadStringEnabled": { "Bool": false }, @@ -40861,6 +43097,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -40918,6 +43160,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "HiddenServices": { "BinaryString": "AAAAAA==" }, @@ -40976,6 +43224,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 1.0, @@ -40983,6 +43234,9 @@ 1.0 ] }, + "DefinesCapabilities": { + "Bool": false + }, "ShirtTemplate": { "Content": "" }, @@ -41030,6 +43284,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 1.0, @@ -41037,6 +43294,9 @@ 1.0 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Graphic": { "Content": "" }, @@ -41101,6 +43361,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -41270,6 +43536,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -41289,6 +43558,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "EnableFluidForces": { "Bool": true }, @@ -41456,6 +43728,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SkinColor": { "BrickColor": 226 }, @@ -41633,9 +43911,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CelestialBodiesShown": { "Bool": true }, + "DefinesCapabilities": { + "Bool": false + }, "MoonAngularSize": { "Float32": 11.0 }, @@ -42020,6 +44304,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "Color3": [ 1.0, @@ -42027,6 +44314,9 @@ 1.0 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -42124,6 +44414,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -42668,6 +44964,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "LoopRegion": { "NumberRange": [ 0.0, @@ -42780,6 +45082,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -42887,6 +45195,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "DistanceFactor": { "Float32": 3.33 }, @@ -42975,6 +45289,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -43136,6 +45456,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -43155,6 +45478,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "Duration": { "Int32": 10 }, @@ -43333,6 +45659,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MeshId": { "Content": "" }, @@ -43426,6 +45758,9 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -43433,6 +45768,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Radius": { "Float32": 1.0 }, @@ -43515,6 +45853,9 @@ "Brightness": { "Float32": 1.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "Color3": [ 1.0, @@ -43522,6 +45863,9 @@ 1.0 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -43698,6 +46042,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Coils": { "Float32": 3.0 }, @@ -43707,6 +46054,9 @@ "Damping": { "Float32": 0.0 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -43918,6 +46268,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -43947,6 +46303,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -43964,6 +46326,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -44072,6 +46440,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "ResetPlayerGuiOnSpawn": { "Bool": true }, @@ -44107,6 +46481,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -44138,6 +46518,21 @@ } } }, + "AnimationCompositorMode": { + "Name": "AnimationCompositorMode", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "AnimationCompositorMode" + }, + "Tags": [ + "NotBrowsable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "AutoJumpEnabled": { "Name": "AutoJumpEnabled", "Scriptability": "ReadWrite", @@ -44158,7 +46553,24 @@ "Enum": "AvatarJointUpgrade" }, "Tags": [ - "NotBrowsable" + "NotBrowsable", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "AvatarJointUpgrade_Serialized": { + "Name": "AvatarJointUpgrade_Serialized", + "Scriptability": "None", + "DataType": { + "Enum": "AvatarJointUpgrade" + }, + "Tags": [ + "Hidden", + "NotScriptable" ], "Kind": { "Canonical": { @@ -44754,13 +47166,16 @@ "AllowCustomAnimations": { "Bool": true }, + "AnimationCompositorMode": { + "Enum": 0 + }, "Attributes": { "Attributes": {} }, "AutoJumpEnabled": { "Bool": true }, - "AvatarJointUpgrade": { + "AvatarJointUpgrade_Serialized": { "Enum": 0 }, "CameraMaxZoomDistance": { @@ -44772,6 +47187,9 @@ "CameraMode": { "Enum": 0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CharacterJumpHeight": { "Float32": 7.2 }, @@ -44790,6 +47208,9 @@ "DeathStyle": { "Enum": 0 }, + "DefinesCapabilities": { + "Bool": false + }, "DevCameraOcclusionMode": { "Enum": 0 }, @@ -44914,6 +47335,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -45141,6 +47568,17 @@ "Properties": {}, "DefaultProperties": {} }, + "StreamingService": { + "Name": "StreamingService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "StringValue": { "Name": "StringValue", "Tags": [], @@ -45164,6 +47602,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -45553,6 +47997,19 @@ } } }, + "Camera Speed Adjust Binding": { + "Name": "Camera Speed Adjust Binding", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "CameraSpeedAdjustBinding" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Camera Zoom to Mouse Position": { "Name": "Camera Zoom to Mouse Position", "Scriptability": "ReadWrite", @@ -45566,6 +48023,32 @@ } } }, + "CameraAdaptiveSpeed": { + "Name": "CameraAdaptiveSpeed", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "CameraTweenFocus": { + "Name": "CameraTweenFocus", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Clear Output On Start": { "Name": "Clear Output On Start", "Scriptability": "ReadWrite", @@ -45948,6 +48431,19 @@ } } }, + "FreeCameraSpeedScroll": { + "Name": "FreeCameraSpeedScroll", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Function Name Color": { "Name": "Function Name Color", "Scriptability": "ReadWrite", @@ -46114,6 +48610,32 @@ } } }, + "LargeFileLineCountThreshold": { + "Name": "LargeFileLineCountThreshold", + "Scriptability": "None", + "DataType": { + "Value": "Int32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "LargeFileThreshold": { + "Name": "LargeFileThreshold", + "Scriptability": "None", + "DataType": { + "Value": "Int32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Line Thickness": { "Name": "Line Thickness", "Scriptability": "ReadWrite", @@ -46407,19 +48929,6 @@ } } }, - "Render Throttle Percentage": { - "Name": "Render Throttle Percentage", - "Scriptability": "ReadWrite", - "DataType": { - "Value": "Int32" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, "Respect Studio shortcuts when game has focus": { "Name": "Respect Studio shortcuts when game has focus", "Scriptability": "ReadWrite", @@ -47067,9 +49576,86 @@ "Properties": {}, "DefaultProperties": {} }, + "StudioAttachment": { + "Name": "StudioAttachment", + "Tags": [ + "NotReplicated" + ], + "Superclass": "Instance", + "Properties": { + "AutoHideParent": { + "Name": "AutoHideParent", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "IsArrowVisible": { + "Name": "IsArrowVisible", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Offset": { + "Name": "Offset", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Vector2" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "SourceAnchorPoint": { + "Name": "SourceAnchorPoint", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Vector2" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "TargetAnchorPoint": { + "Name": "TargetAnchorPoint", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Vector2" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": {} + }, "StudioCallout": { "Name": "StudioCallout", - "Tags": [], + "Tags": [ + "NotReplicated" + ], "Superclass": "Instance", "Properties": { "AnchorPoint": { @@ -47169,17 +49755,7 @@ } } }, - "DefaultProperties": { - "Attributes": { - "Attributes": {} - }, - "SourceAssetId": { - "Int64": -1 - }, - "Tags": { - "Tags": [] - } - } + "DefaultProperties": {} }, "StudioData": { "Name": "StudioData", @@ -47209,6 +49785,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "EnableScriptCollabByDefaultOnLoad": { "Bool": false }, @@ -47301,20 +49883,13 @@ }, "StudioObjectBase": { "Name": "StudioObjectBase", - "Tags": [], + "Tags": [ + "NotCreatable", + "NotReplicated" + ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": { - "Attributes": { - "Attributes": {} - }, - "SourceAssetId": { - "Int64": -1 - }, - "Tags": { - "Tags": [] - } - } + "DefaultProperties": {} }, "StudioPublishService": { "Name": "StudioPublishService", @@ -47568,20 +50143,24 @@ }, "StudioWidget": { "Name": "StudioWidget", - "Tags": [], + "Tags": [ + "NotCreatable", + "NotReplicated" + ], "Superclass": "StudioObjectBase", "Properties": {}, - "DefaultProperties": { - "Attributes": { - "Attributes": {} - }, - "SourceAssetId": { - "Int64": -1 - }, - "Tags": { - "Tags": [] - } - } + "DefaultProperties": {} + }, + "StudioWidgetsService": { + "Name": "StudioWidgetsService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} }, "StyleBase": { "Name": "StyleBase", @@ -47631,6 +50210,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Index": { "Int32": -1 }, @@ -47665,6 +50250,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -47744,11 +50335,17 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Index": { "Int32": -1 }, "PropertiesSerialize": { - "BinaryString": "" + "BinaryString": "AAAAAA==" }, "Selector": { "String": "" @@ -47770,6 +50367,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -47825,6 +50428,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -47933,9 +50542,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ColorMap": { "Content": "" }, + "DefinesCapabilities": { + "Bool": false + }, "MetalnessMap": { "Content": "" }, @@ -48041,6 +50656,19 @@ } } }, + "MaxDistance": { + "Name": "MaxDistance", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "PixelsPerStud": { "Name": "PixelsPerStud", "Scriptability": "ReadWrite", @@ -48131,9 +50759,15 @@ 600.0 ] }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipsDescendants": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -48143,6 +50777,9 @@ "LightInfluence": { "Float32": 0.0 }, + "MaxDistance": { + "Float32": 0.0 + }, "PixelsPerStud": { "Float32": 50.0 }, @@ -48288,6 +50925,9 @@ "Brightness": { "Float32": 1.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "Color3": [ 1.0, @@ -48295,6 +50935,9 @@ 1.0 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -48338,6 +50981,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -48345,6 +50991,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -48364,9 +51013,7 @@ }, "SwimController": { "Name": "SwimController", - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Superclass": "ControllerBase", "Properties": { "AccelerationTime": { @@ -48445,6 +51092,12 @@ "BalanceRigidityEnabled": { "Bool": false }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MoveSpeedFactor": { "Float32": 1.0 }, @@ -48704,6 +51357,12 @@ "AutoAssignable": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -48775,6 +51434,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -48874,6 +51539,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "ReservedServerAccessCode": { "String": "" }, @@ -48920,6 +51591,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -49042,6 +51719,22 @@ } } }, + "GrassLength": { + "Name": "GrassLength", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "NotBrowsable", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "IsSmooth": { "Name": "IsSmooth", "Scriptability": "Read", @@ -49305,6 +51998,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -49327,6 +52023,9 @@ "Decoration": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "EnableFluidForces": { "Bool": true }, @@ -49342,6 +52041,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "GrassLength": { + "Float32": 0.7 + }, "LeftParamA": { "Float32": -0.5 }, @@ -49711,9 +52413,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ColorMap": { "Content": "" }, + "DefinesCapabilities": { + "Bool": false + }, "Face": { "Enum": 1 }, @@ -49853,6 +52561,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "ExtentsMax": { "Vector3int16": [ 0, @@ -49946,10 +52660,13 @@ "DataType": { "Value": "Bool" }, - "Tags": [], + "Tags": [ + "Hidden", + "NotReplicated" + ], "Kind": { "Canonical": { - "Serialization": "Serializes" + "Serialization": "DoesNotSerialize" } } }, @@ -49959,10 +52676,13 @@ "DataType": { "Value": "Bool" }, - "Tags": [], + "Tags": [ + "Hidden", + "NotReplicated" + ], "Kind": { "Canonical": { - "Serialization": "Serializes" + "Serialization": "DoesNotSerialize" } } }, @@ -50058,18 +52778,18 @@ "AutoRuns": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Description": { "String": "" }, "ExecuteWithStudioRun": { "Bool": false }, - "Is30FpsThrottleEnabled": { - "Bool": true - }, - "IsPhysicsEnvironmentalThrottled": { - "Bool": true - }, "IsSleepAllowed": { "Bool": true }, @@ -50649,12 +53369,18 @@ "BorderSizePixel": { "Int32": 1 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClearTextOnFocus": { "Bool": true }, "ClipsDescendants": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "Draggable": { "Bool": false }, @@ -50666,6 +53392,9 @@ "cachedFaceId": "rbxasset://fonts/arial.ttf" } }, + "Interactable": { + "Bool": true + }, "LayoutOrder": { "Int32": 0 }, @@ -51227,9 +53956,15 @@ "BorderSizePixel": { "Int32": 1 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipsDescendants": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "Draggable": { "Bool": false }, @@ -51241,6 +53976,9 @@ "cachedFaceId": "rbxasset://fonts/arial.ttf" } }, + "Interactable": { + "Bool": true + }, "LayoutOrder": { "Int32": 0 }, @@ -51380,6 +54118,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -51393,6 +54137,19 @@ "Tags": [], "Superclass": "Instance", "Properties": { + "AutocompleteVisible": { + "Name": "AutocompleteVisible", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Enabled": { "Name": "Enabled", "Scriptability": "ReadWrite", @@ -51437,6 +54194,15 @@ "Attributes": { "Attributes": {} }, + "AutocompleteVisible": { + "Bool": true + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -51574,6 +54340,19 @@ "Serialization": "Serializes" } } + }, + "Translation": { + "Name": "Translation", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } } }, "DefaultProperties": {} @@ -51608,12 +54387,31 @@ "Serialization": "DoesNotSerialize" } } + }, + "Translation": { + "Name": "Translation", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } } }, "DefaultProperties": { "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -51630,6 +54428,32 @@ ], "Superclass": "Instance", "Properties": { + "ChatTranslationEnabled": { + "Name": "ChatTranslationEnabled", + "Scriptability": "Read", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "ChatTranslationToggleEnabled": { + "Name": "ChatTranslationToggleEnabled", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ChatVersion": { "Name": "ChatVersion", "Scriptability": "Read", @@ -51674,6 +54498,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "ChatTranslationEnabled": { + "Bool": true + }, + "ChatTranslationToggleEnabled": { + "Bool": false + }, "ChatVersion": { "Enum": 0 }, @@ -51683,6 +54516,9 @@ "CreateDefaultTextChannels": { "Bool": true }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -52152,9 +54988,15 @@ "BorderSizePixel": { "Int32": 1 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipsDescendants": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "Draggable": { "Bool": false }, @@ -52166,6 +55008,9 @@ "cachedFaceId": "rbxasset://fonts/arial.ttf" } }, + "Interactable": { + "Bool": true + }, "LayoutOrder": { "Int32": 0 }, @@ -52415,6 +55260,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 1.0, @@ -52422,6 +55270,9 @@ 1.0 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Face": { "Enum": 5 }, @@ -52556,6 +55407,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -52730,6 +55587,12 @@ "CanBeDropped": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -52886,9 +55749,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 23 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -53059,6 +55928,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Coils": { "Float32": 8.0 }, @@ -53068,6 +55940,9 @@ "Damping": { "Float32": 0.01 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -53124,6 +55999,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -53446,6 +56327,9 @@ "Brightness": { "Float32": 1.0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "ColorSequence": { "keypoints": [ @@ -53468,6 +56352,9 @@ ] } }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -53614,6 +56501,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Depth": { "Float32": 1.0 }, @@ -53644,6 +56537,22 @@ ], "Superclass": "BasePart", "Properties": { + "AeroMeshData": { + "Name": "AeroMeshData", + "Scriptability": "None", + "DataType": { + "Value": "SharedString" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "CollisionFidelity": { "Name": "CollisionFidelity", "Scriptability": "ReadWrite", @@ -53797,6 +56706,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -53816,6 +56728,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "EnableFluidForces": { "Bool": true }, @@ -53983,6 +56898,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -54030,6 +56951,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -54050,6 +56977,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -54124,6 +57057,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "DominantAxis": { "Enum": 0 }, @@ -54185,12 +57124,18 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CornerRadius": { "UDim": [ 0.0, 8 ] }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -54274,6 +57219,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "ColorSequence": { "keypoints": [ @@ -54296,6 +57244,9 @@ ] } }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -54426,6 +57377,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CellPadding": { "UDim2": [ [ @@ -54450,6 +57404,9 @@ ] ] }, + "DefinesCapabilities": { + "Bool": false + }, "FillDirection": { "Enum": 0 }, @@ -54587,6 +57544,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "FillDirection": { "Enum": 1 }, @@ -54675,6 +57638,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "PaddingBottom": { "UDim": [ 0.0, @@ -54853,9 +57822,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Circular": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "EasingDirection": { "Enum": 1 }, @@ -54923,6 +57898,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Scale": { "Float32": 1.0 }, @@ -54970,6 +57951,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MaxSize": { "Vector2": [ null, @@ -55081,6 +58068,9 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "Color3": [ 0.0, @@ -55088,6 +58078,9 @@ 0.0 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -55170,6 +58163,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "FillDirection": { "Enum": 1 }, @@ -55247,6 +58246,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "MaxTextSize": { "Int32": 100 }, @@ -55335,6 +58340,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -55357,6 +58365,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "EnableFluidForces": { "Bool": true }, @@ -55571,9 +58582,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 1009 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -55632,6 +58649,12 @@ "CachedData": { "String": "{\"lastSaveTime\":0,\"lastKnownPublishRequest\":0,\"users\":[]}" }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -56307,6 +59330,22 @@ } } }, + "VRComfortSetting": { + "Name": "VRComfortSetting", + "Scriptability": "None", + "DataType": { + "Enum": "VRComfortSetting" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "VREnabled": { "Name": "VREnabled", "Scriptability": "None", @@ -56362,6 +59401,54 @@ } } }, + "VRSmoothRotationEnabledCustomOption": { + "Name": "VRSmoothRotationEnabledCustomOption", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "VRThirdPersonFollowCamEnabled": { + "Name": "VRThirdPersonFollowCamEnabled", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "VRThirdPersonFollowCamEnabledCustomOption": { + "Name": "VRThirdPersonFollowCamEnabledCustomOption", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "VignetteEnabled": { "Name": "VignetteEnabled", "Scriptability": "Read", @@ -56375,6 +59462,22 @@ } } }, + "VignetteEnabledCustomOption": { + "Name": "VignetteEnabledCustomOption", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "gaID": { "Name": "gaID", "Scriptability": "None", @@ -56768,6 +59871,277 @@ }, "DefaultProperties": {} }, + "UserNotification": { + "Name": "UserNotification", + "Tags": [], + "Superclass": "Instance", + "Properties": { + "Id": { + "Name": "Id", + "Scriptability": "Read", + "DataType": { + "Value": "String" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "Payload": { + "Name": "Payload", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Ref" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + } + } + }, + "UserNotificationPayload": { + "Name": "UserNotificationPayload", + "Tags": [], + "Superclass": "Instance", + "Properties": { + "AnalyticsData": { + "Name": "AnalyticsData", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Ref" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "JoinExperience": { + "Name": "JoinExperience", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Ref" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "MessageId": { + "Name": "MessageId", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Type": { + "Name": "Type", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "MessageId": { + "String": "" + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + }, + "Type": { + "String": "" + } + } + }, + "UserNotificationPayloadAnalyticsData": { + "Name": "UserNotificationPayloadAnalyticsData", + "Tags": [], + "Superclass": "Instance", + "Properties": { + "Category": { + "Name": "Category", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "Category": { + "String": "" + }, + "DefinesCapabilities": { + "Bool": false + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + } + } + }, + "UserNotificationPayloadJoinExperience": { + "Name": "UserNotificationPayloadJoinExperience", + "Tags": [], + "Superclass": "Instance", + "Properties": { + "LaunchData": { + "Name": "LaunchData", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "LaunchData": { + "String": "" + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + } + } + }, + "UserNotificationPayloadParameterValue": { + "Name": "UserNotificationPayloadParameterValue", + "Tags": [], + "Superclass": "Instance", + "Properties": { + "Int64Value": { + "Name": "Int64Value", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Int64" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "StringValue": { + "Name": "StringValue", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "Int64Value": { + "Int64": 0 + }, + "SourceAssetId": { + "Int64": -1 + }, + "StringValue": { + "String": "" + }, + "Tags": { + "Tags": [] + } + } + }, "UserService": { "Name": "UserService", "Tags": [ @@ -56898,6 +60272,52 @@ } } }, + "QuestASWState": { + "Name": "QuestASWState", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "QuestDisplayRefreshRate": { + "Name": "QuestDisplayRefreshRate", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "ThirdPersonFollowCamEnabled": { + "Name": "ThirdPersonFollowCamEnabled", + "Scriptability": "Read", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "VRDeviceAvailable": { "Name": "VRDeviceAvailable", "Scriptability": "None", @@ -56970,6 +60390,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -57006,6 +60432,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -57037,6 +60469,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -57104,9 +60542,15 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color": { "BrickColor": 23 }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -57140,6 +60584,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -57373,6 +60823,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -57392,6 +60845,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "Disabled": { "Bool": false }, @@ -57660,9 +61116,15 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CurrentAngle": { "Float32": 0.0 }, + "DefinesCapabilities": { + "Bool": false + }, "DesiredAngle": { "Float32": 0.0 }, @@ -57767,6 +61229,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -57972,12 +61440,21 @@ "BorderSizePixel": { "Int32": 1 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipsDescendants": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "Draggable": { "Bool": false }, + "Interactable": { + "Bool": true + }, "LayoutOrder": { "Int32": 0 }, @@ -58073,6 +61550,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -58293,9 +61776,15 @@ "CameraFieldOfView": { "Float32": 1.2217306 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClipsDescendants": { "Bool": false }, + "DefinesCapabilities": { + "Bool": false + }, "Draggable": { "Bool": false }, @@ -58309,6 +61798,9 @@ "ImageTransparency": { "Float32": 0.0 }, + "Interactable": { + "Bool": true + }, "LayoutOrder": { "Int32": 0 }, @@ -58419,6 +61911,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -58501,6 +61999,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -58530,6 +62034,36 @@ } } }, + "UseNewAudioApi": { + "Name": "UseNewAudioApi", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "UseNewControlPaths": { + "Name": "UseNewControlPaths", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "UseNewJoinFlow": { "Name": "UseNewJoinFlow", "Scriptability": "None", @@ -58580,6 +62114,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "EnableDefaultVoice": { "Bool": true }, @@ -58662,6 +62202,9 @@ "CanTouch": { "Bool": true }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "CastShadow": { "Bool": true }, @@ -58681,6 +62224,9 @@ "CustomPhysicalProperties": { "PhysicalProperties": "Default" }, + "DefinesCapabilities": { + "Bool": false + }, "EnableFluidForces": { "Bool": true }, @@ -58872,6 +62418,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -59065,6 +62617,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -59156,6 +62714,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -59225,6 +62789,9 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "Color3": { "Color3": [ 0.050980397, @@ -59232,6 +62799,9 @@ 0.6745098 ] }, + "DefinesCapabilities": { + "Bool": false + }, "Scale": { "Vector3": [ 1.0, @@ -59407,6 +62977,21 @@ } } }, + "EditorLiveScripting": { + "Name": "EditorLiveScripting", + "Scriptability": "None", + "DataType": { + "Enum": "EditorLiveScripting" + }, + "Tags": [ + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ExplicitAutoJoints": { "Name": "ExplicitAutoJoints", "Scriptability": "None", @@ -59494,21 +63079,6 @@ } } }, - "HumanoidOnlySetCollisionsOnStateChange": { - "Name": "HumanoidOnlySetCollisionsOnStateChange", - "Scriptability": "None", - "DataType": { - "Enum": "HumanoidOnlySetCollisionsOnStateChange" - }, - "Tags": [ - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, "IKControlConstraintSupport": { "Name": "IKControlConstraintSupport", "Scriptability": "None", @@ -59726,8 +63296,7 @@ "Tags": [ "Hidden", "NotReplicated", - "NotScriptable", - "WriteOnly" + "NotScriptable" ], "Kind": { "Canonical": { @@ -59811,15 +63380,24 @@ "AvatarUnificationMode": { "Enum": 0 }, + "Capabilities": { + "SecurityCapabilities": 0 + }, "ClientAnimatorThrottling": { "Enum": 0 }, "CollisionGroupData": { "BinaryString": "AQEABP////8HRGVmYXVsdA==" }, + "DefinesCapabilities": { + "Bool": false + }, "DistributedGameTime": { "Float64": 0.0 }, + "EditorLiveScripting": { + "Enum": 0 + }, "ExplicitAutoJoints": { "Bool": true }, @@ -59839,9 +63417,6 @@ "Gravity": { "Float32": 196.2 }, - "HumanoidOnlySetCollisionsOnStateChange": { - "Enum": 0 - }, "IKControlConstraintSupport": { "Enum": 0 }, @@ -59978,6 +63553,12 @@ "Attributes": { "Attributes": {} }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "LevelOfDetail": { "Enum": 0 }, @@ -60302,6 +63883,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "Enabled": { "Bool": true }, @@ -60470,6 +64057,12 @@ ] } }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, "HSRAssetId": { "Content": "" }, @@ -60645,6 +64238,31 @@ "Fail": 4 } }, + "AnimationClipFromVideoStatus": { + "name": "AnimationClipFromVideoStatus", + "items": { + "Cancelled": 11, + "ErrorGeneric": 4, + "ErrorMultiplePeople": 12, + "ErrorNoPersonDetected": 8, + "ErrorUploadingVideo": 2001, + "ErrorVideoTooLong": 7, + "ErrorVideoUnstable": 9, + "Initializing": 0, + "Pending": 1, + "Processing": 2, + "Success": 6, + "Timeout": 10 + } + }, + "AnimationCompositorMode": { + "name": "AnimationCompositorMode", + "items": { + "Default": 0, + "Disabled": 2, + "Enabled": 1 + } + }, "AnimationPriority": { "name": "AnimationPriority", "items": { @@ -60717,6 +64335,13 @@ "ScaleWithParentSize": 1 } }, + "AssetCreatorType": { + "name": "AssetCreatorType", + "items": { + "Group": 1, + "User": 0 + } + }, "AssetFetchStatus": { "name": "AssetFetchStatus", "items": { @@ -61070,6 +64695,14 @@ "EdgeBump": 1 } }, + "CameraSpeedAdjustBinding": { + "name": "CameraSpeedAdjustBinding", + "items": { + "AltScroll": 2, + "None": 0, + "RmbScroll": 1 + } + }, "CameraType": { "name": "CameraType", "items": { @@ -61223,12 +64856,20 @@ "Enabled": 2 } }, + "CollaboratorStatus": { + "name": "CollaboratorStatus", + "items": { + "Editing3D": 0, + "None": 3, + "PrivateScripting": 2, + "Scripting": 1 + } + }, "CollisionFidelity": { "name": "CollisionFidelity", "items": { "Box": 2, "Default": 0, - "DynamicPreciseConvexDecomposition": 4, "Hull": 1, "PreciseConvexDecomposition": 3 } @@ -61287,7 +64928,9 @@ "CommandLinePermissions": 4, "Deprecated": 1, "IncorrectIndexType": 2, + "Invalidated": 10, "PluginPermissions": 3, + "PutCursorBeforeEnd": 11, "PutCursorInParens": 7, "RobloxPermissions": 5, "TypeCorrect": 8 @@ -61357,6 +65000,11 @@ "DisconnectSendPacketError": 262, "DisconnectTimeout": 266, "DisconnectWrongVersion": 280, + "NetworkInternal": 296, + "NetworkMisbehavior": 299, + "NetworkSecurity": 300, + "NetworkSend": 297, + "NetworkTimeout": 298, "OK": 0, "PlacelaunchCustomMessage": 610, "PlacelaunchDisabled": 515, @@ -61376,6 +65024,7 @@ "PlacelaunchUserPrivacyUnauthorized": 533, "PlayerRemoved": 291, "ReplicatorTimeout": 290, + "ServerShutdown": 288, "TeleportErrors": 768, "TeleportFailure": 769, "TeleportFlooded": 774, @@ -61472,7 +65121,10 @@ "items": { "GetAsync": 0, "GetSortedAsync": 3, + "GetVersionAsync": 7, + "ListAsync": 6, "OnUpdate": 5, + "RemoveVersionAsync": 8, "SetIncrementAsync": 1, "SetIncrementSortedAsync": 4, "UpdateAsync": 2 @@ -61723,6 +65375,14 @@ "Sine": 1 } }, + "EditorLiveScripting": { + "name": "EditorLiveScripting", + "items": { + "Default": 0, + "Disabled": 1, + "Enabled": 2 + } + }, "ElasticBehavior": { "name": "ElasticBehavior", "items": { @@ -62024,6 +65684,7 @@ "items": { "Hover": 1, "Idle": 0, + "NonInteractable": 3, "Press": 2 } }, @@ -62141,14 +65802,6 @@ "DisplayWhenDamaged": 0 } }, - "HumanoidOnlySetCollisionsOnStateChange": { - "name": "HumanoidOnlySetCollisionsOnStateChange", - "items": { - "Default": 0, - "Disabled": 1, - "Enabled": 2 - } - }, "HumanoidRigType": { "name": "HumanoidRigType", "items": { @@ -62224,6 +65877,13 @@ "Pending": 1 } }, + "ImageCombineType": { + "name": "ImageCombineType", + "items": { + "BlendSourceOver": 1, + "Overwrite": 2 + } + }, "InOut": { "name": "InOut", "items": { @@ -62600,6 +66260,23 @@ "ObjectPosition": 2 } }, + "LiveEditingAtomicUpdateResponse": { + "name": "LiveEditingAtomicUpdateResponse", + "items": { + "FailureGuidNotFound": 1, + "FailureHashMismatch": 2, + "FailureOperationIllegal": 3, + "Success": 0 + } + }, + "LiveEditingBroadcastMessageType": { + "name": "LiveEditingBroadcastMessageType", + "items": { + "Error": 2, + "Normal": 0, + "Warning": 1 + } + }, "LoadCharacterLayeredClothing": { "name": "LoadCharacterLayeredClothing", "items": { @@ -62833,6 +66510,16 @@ "Top": 1 } }, + "OperationType": { + "name": "OperationType", + "items": { + "Intersection": 3, + "Null": 0, + "Primitive": 4, + "Subtraction": 2, + "Union": 1 + } + }, "OrientationAlignmentMode": { "name": "OrientationAlignmentMode", "items": { @@ -63075,6 +66762,17 @@ "TwoAttachment": 1 } }, + "PrimitiveType": { + "name": "PrimitiveType", + "items": { + "Ball": 1, + "Block": 3, + "CornerWedge": 5, + "Cylinder": 2, + "Null": 0, + "Wedge": 4 + } + }, "PrivilegeType": { "name": "PrivilegeType", "items": { @@ -63307,6 +67005,7 @@ "MaterialPicker": 6, "Move": 3, "None": 9, + "PivotEditor": 10, "Rotate": 2, "Scale": 1, "Select": 0, @@ -63404,7 +67103,8 @@ "BadFieldOfViewDeg": 3, "BadThumbnailType": 1, "BadYRotDeg": 2, - "Other": 5 + "Other": 5, + "Throttled": 6 } }, "SaveFilter": { @@ -63459,7 +67159,8 @@ "items": { "CoreUISafeInsets": 2, "DeviceSafeInsets": 1, - "None": 0 + "None": 0, + "TopbarSafeInsets": 3 } }, "ScreenOrientation": { @@ -63535,6 +67236,14 @@ "OnlineGame": 2 } }, + "ServerLiveEditingMode": { + "name": "ServerLiveEditingMode", + "items": { + "Disabled": 2, + "Enabled": 1, + "Uninitialized": 0 + } + }, "ServiceVisibility": { "name": "ServiceVisibility", "items": { @@ -63569,6 +67278,13 @@ "RelativeYY": 2 } }, + "SolverConvergenceMetricType": { + "name": "SolverConvergenceMetricType", + "items": { + "AlgorithmAgnostic": 1, + "IterationBased": 0 + } + }, "SolverConvergenceVisualizationMode": { "name": "SolverConvergenceVisualizationMode", "items": { @@ -63800,6 +67516,9 @@ "Mid": 36, "Midlight": 98, "Notification": 4, + "OnboardingCover": 132, + "OnboardingHighlight": 133, + "OnboardingShadow": 134, "RibbonButton": 19, "RibbonTab": 15, "RibbonTabTopBar": 16, @@ -63869,6 +67588,19 @@ "NoSupports": 2 } }, + "SubscriptionPaymentStatus": { + "name": "SubscriptionPaymentStatus", + "items": { + "Paid": 0, + "Refunded": 1 + } + }, + "SubscriptionPeriod": { + "name": "SubscriptionPeriod", + "items": { + "Month": 0 + } + }, "SurfaceConstraint": { "name": "SurfaceConstraint", "items": { @@ -63941,7 +67673,8 @@ "TeleportToPlaceInstance": 1, "TeleportToPrivateServer": 2, "TeleportToSpawnByName": 0, - "TeleportUnknown": 4 + "TeleportToVIPServer": 4, + "TeleportUnknown": 5 } }, "TeleportResult": { @@ -63972,7 +67705,8 @@ "items": { "ToInstance": 1, "ToPlace": 0, - "ToReservedServer": 2 + "ToReservedServer": 2, + "ToVIPServer": 3 } }, "TerrainAcquisitionMethod": { @@ -64187,6 +67921,18 @@ "ForceDisabled": 0 } }, + "TrackerFaceTrackingStatus": { + "name": "TrackerFaceTrackingStatus", + "items": { + "FaceTrackingHasTrackingError": 4, + "FaceTrackingIsOccluded": 5, + "FaceTrackingLost": 3, + "FaceTrackingNoFaceFound": 1, + "FaceTrackingSuccess": 0, + "FaceTrackingUninitialized": 6, + "FaceTrackingUnknown": 2 + } + }, "TrackerLodFlagMode": { "name": "TrackerLodFlagMode", "items": { @@ -64299,6 +68045,15 @@ "Touch": 7 } }, + "VRComfortSetting": { + "name": "VRComfortSetting", + "items": { + "Comfort": 0, + "Custom": 3, + "Expert": 2, + "Normal": 1 + } + }, "VRSafetyBubbleMode": { "name": "VRSafetyBubbleMode", "items": { @@ -64410,6 +68165,14 @@ "Leaving": 4 } }, + "VoiceControlPath": { + "name": "VoiceControlPath", + "items": { + "Join": 2, + "Publish": 0, + "Subscribe": 1 + } + }, "VolumetricAudio": { "name": "VolumetricAudio", "items": { diff --git a/plugin/rbx_dom_lua/init.lua b/plugin/rbx_dom_lua/init.lua index 4230a0a1..2d390a24 100644 --- a/plugin/rbx_dom_lua/init.lua +++ b/plugin/rbx_dom_lua/init.lua @@ -24,7 +24,8 @@ local function findCanonicalPropertyDescriptor(className, propertyName) return PropertyDescriptor.fromRaw( currentClass.Properties[aliasData.AliasFor], currentClassName, - aliasData.AliasFor) + aliasData.AliasFor + ) end return nil diff --git a/plugin/rbx_dom_lua/init.spec.lua b/plugin/rbx_dom_lua/init.spec.lua deleted file mode 100644 index 4cafe5ae..00000000 --- a/plugin/rbx_dom_lua/init.spec.lua +++ /dev/null @@ -1,7 +0,0 @@ -return function() - local RbxDom = require(script.Parent) - - it("should load", function() - expect(RbxDom).to.be.ok() - end) -end \ No newline at end of file diff --git a/plugin/src/Config.lua b/plugin/src/Config.lua index a2909f51..0238b2cb 100644 --- a/plugin/src/Config.lua +++ b/plugin/src/Config.lua @@ -2,11 +2,24 @@ local strict = require(script.Parent.strict) local isDevBuild = script.Parent.Parent:FindFirstChild("ROJO_DEV_BUILD") ~= nil +local Version = script.Parent.Parent.Version +local major, minor, patch, metadata = Version.Value:match("^(%d+)%.(%d+)%.(%d+)(.*)$") + +local realVersion = { major, minor, patch, metadata } +for i = 1, 3 do + local num = tonumber(realVersion[i]) + if num then + realVersion[i] = num + else + error(("invalid version `%s` (field %d)"):format(realVersion[i], i)) + end +end + return strict("Config", { isDevBuild = isDevBuild, codename = "Epiphany", - version = { 7, 3, 0 }, - expectedServerVersionString = "7.2 or newer", + version = realVersion, + expectedServerVersionString = ("%d.%d or newer"):format(realVersion[1], realVersion[2]), protocolVersion = 4, defaultHost = "localhost", defaultPort = "34872", diff --git a/plugin/src/PatchTree.lua b/plugin/src/PatchTree.lua index 82e437eb..e67dbcd0 100644 --- a/plugin/src/PatchTree.lua +++ b/plugin/src/PatchTree.lua @@ -233,7 +233,7 @@ function PatchTree.build(patch, instanceMap, changeListHeaders) addProp( prop, if currentSuccess then currentValue else "[Error]", - if incomingSuccess then incomingValue else next(incoming) + if incomingSuccess then incomingValue else select(2, next(incoming)) ) end @@ -359,7 +359,7 @@ function PatchTree.build(patch, instanceMap, changeListHeaders) if success then table.insert(changeList, { prop, "N/A", incomingValue }) else - table.insert(changeList, { prop, "N/A", next(incoming) }) + table.insert(changeList, { prop, "N/A", select(2, next(incoming)) }) end end diff --git a/plugin/src/ServeSession.lua b/plugin/src/ServeSession.lua index e5bbb12f..56a06939 100644 --- a/plugin/src/ServeSession.lua +++ b/plugin/src/ServeSession.lua @@ -282,7 +282,7 @@ function ServeSession:__initialSync(serverInfo) local unappliedPatch = self.__reconciler:applyPatch(catchUpPatch) if not PatchSet.isEmpty(unappliedPatch) then - Log.warn( + Log.debug( "Could not apply all changes requested by the Rojo server:\n{}", PatchSet.humanSummary(self.__instanceMap, unappliedPatch) ) @@ -309,7 +309,7 @@ function ServeSession:__mainSyncLoop() local unappliedPatch = self.__reconciler:applyPatch(message) if not PatchSet.isEmpty(unappliedPatch) then - Log.warn( + Log.debug( "Could not apply all changes requested by the Rojo server:\n{}", PatchSet.humanSummary(self.__instanceMap, unappliedPatch) ) diff --git a/rojo-test/build-test-snapshots/end_to_end__tests__build__nested_runcontext.snap b/rojo-test/build-test-snapshots/end_to_end__tests__build__nested_runcontext.snap new file mode 100644 index 00000000..0ddc3051 --- /dev/null +++ b/rojo-test/build-test-snapshots/end_to_end__tests__build__nested_runcontext.snap @@ -0,0 +1,35 @@ +--- +source: tests/tests/build.rs +expression: contents +--- + + + + nested_runcontext + + + + folder1 + + + + test + 1 + + + + + + + folder2 + + + + test + 0 + + + + + + diff --git a/rojo-test/build-test-snapshots/end_to_end__tests__build__script_meta_disabled.snap b/rojo-test/build-test-snapshots/end_to_end__tests__build__script_meta_disabled.snap index 0876056e..28354bd6 100644 --- a/rojo-test/build-test-snapshots/end_to_end__tests__build__script_meta_disabled.snap +++ b/rojo-test/build-test-snapshots/end_to_end__tests__build__script_meta_disabled.snap @@ -11,6 +11,7 @@ expression: contents hello true + 0 -- This script should be marked 'Disabled' diff --git a/rojo-test/build-test-snapshots/end_to_end__tests__build__server_in_folder.snap b/rojo-test/build-test-snapshots/end_to_end__tests__build__server_in_folder.snap index 282889d0..c9806d00 100644 --- a/rojo-test/build-test-snapshots/end_to_end__tests__build__server_in_folder.snap +++ b/rojo-test/build-test-snapshots/end_to_end__tests__build__server_in_folder.snap @@ -10,6 +10,7 @@ expression: contents serverScript + 0 -- This is a Lua server script diff --git a/rojo-test/build-test-snapshots/end_to_end__tests__build__server_init.snap b/rojo-test/build-test-snapshots/end_to_end__tests__build__server_init.snap index 070b7012..5858d5e0 100644 --- a/rojo-test/build-test-snapshots/end_to_end__tests__build__server_init.snap +++ b/rojo-test/build-test-snapshots/end_to_end__tests__build__server_init.snap @@ -6,6 +6,7 @@ expression: contents server_init + 0 return "From folder/init.server.lua" diff --git a/rojo-test/build-tests/nested_runcontext/default.project.json b/rojo-test/build-tests/nested_runcontext/default.project.json new file mode 100644 index 00000000..5327be9a --- /dev/null +++ b/rojo-test/build-tests/nested_runcontext/default.project.json @@ -0,0 +1,13 @@ +{ + "name": "nested_runcontext", + "emitLegacyScripts": false, + "tree": { + "$className": "Folder", + "folder1": { + "$path": "folder1" + }, + "folder2": { + "$path": "folder2" + } + } +} diff --git a/rojo-test/build-tests/nested_runcontext/folder1/test.server.lua b/rojo-test/build-tests/nested_runcontext/folder1/test.server.lua new file mode 100644 index 00000000..e69de29b diff --git a/rojo-test/build-tests/nested_runcontext/folder2/default.project.json b/rojo-test/build-tests/nested_runcontext/folder2/default.project.json new file mode 100644 index 00000000..67feff44 --- /dev/null +++ b/rojo-test/build-tests/nested_runcontext/folder2/default.project.json @@ -0,0 +1,7 @@ +{ + "name": "nested_runcontext", + "emitLegacyScripts": true, + "tree": { + "$path": "folder3" + } +} diff --git a/rojo-test/build-tests/nested_runcontext/folder2/folder3/test.server.lua b/rojo-test/build-tests/nested_runcontext/folder2/folder3/test.server.lua new file mode 100644 index 00000000..e69de29b diff --git a/rojo-test/serve-test-snapshots/end_to_end__tests__serve__scripts_all-2.snap b/rojo-test/serve-test-snapshots/end_to_end__tests__serve__scripts_all-2.snap index 78dcebea..49d8148b 100644 --- a/rojo-test/serve-test-snapshots/end_to_end__tests__serve__scripts_all-2.snap +++ b/rojo-test/serve-test-snapshots/end_to_end__tests__serve__scripts_all-2.snap @@ -24,6 +24,8 @@ instances: Name: bar Parent: id-2 Properties: + RunContext: + Enum: 0 Source: String: "-- Hello, from bar!" id-4: diff --git a/rojo-test/serve-test-snapshots/end_to_end__tests__serve__scripts_all.snap b/rojo-test/serve-test-snapshots/end_to_end__tests__serve__scripts_all.snap index 52efebac..62e5ceef 100644 --- a/rojo-test/serve-test-snapshots/end_to_end__tests__serve__scripts_all.snap +++ b/rojo-test/serve-test-snapshots/end_to_end__tests__serve__scripts_all.snap @@ -24,6 +24,8 @@ instances: Name: bar Parent: id-2 Properties: + RunContext: + Enum: 0 Source: String: "-- Hello, from bar!" id-4: diff --git a/src/cli/mod.rs b/src/cli/mod.rs index 36b32940..065128fb 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -25,7 +25,7 @@ pub use self::upload::UploadCommand; /// Command line options that Rojo accepts, defined using the clap crate. #[derive(Debug, Parser)] -#[clap(name = "Rojo", version, about, author)] +#[clap(name = "Rojo", version, about)] pub struct Options { #[clap(flatten)] pub global: GlobalOptions, diff --git a/src/cli/sourcemap.rs b/src/cli/sourcemap.rs index f7bc1691..ec4e9528 100644 --- a/src/cli/sourcemap.rs +++ b/src/cli/sourcemap.rs @@ -14,7 +14,7 @@ use tokio::runtime::Runtime; use crate::{ serve_session::ServeSession, - snapshot::{InstanceWithMeta, RojoTree}, + snapshot::{AppliedPatchSet, InstanceWithMeta, RojoTree}, }; use super::resolve_path; @@ -90,10 +90,12 @@ impl SourcemapCommand { loop { let receiver = session.message_queue().subscribe(cursor); - let (new_cursor, _patch_set) = rt.block_on(receiver).unwrap(); + let (new_cursor, patch_set) = rt.block_on(receiver).unwrap(); cursor = new_cursor; - write_sourcemap(&session, self.output.as_deref(), filter)?; + if patch_set_affects_sourcemap(&session, &patch_set, filter) { + write_sourcemap(&session, self.output.as_deref(), filter)?; + } } } @@ -116,6 +118,43 @@ fn filter_non_scripts(instance: &InstanceWithMeta) -> bool { ) } +fn patch_set_affects_sourcemap( + session: &ServeSession, + patch_set: &[AppliedPatchSet], + filter: fn(&InstanceWithMeta) -> bool, +) -> bool { + let tree = session.tree(); + + // A sourcemap has probably changed when: + patch_set.par_iter().any(|set| { + // 1. An instance was removed, in which case it will no + // longer exist in the tree and we cant check the filter + !set.removed.is_empty() + // 2. A newly added instance passes the filter + || set.added.iter().any(|referent| { + let instance = tree + .get_instance(*referent) + .expect("instance did not exist when updating sourcemap"); + filter(&instance) + }) + // 3. An existing instance has its class name, name, + // or file paths changed, and passes the filter + || set.updated.iter().any(|updated| { + let changed = updated.changed_class_name.is_some() + || updated.changed_name.is_some() + || updated.changed_metadata.is_some(); + if changed { + let instance = tree + .get_instance(updated.id) + .expect("instance did not exist when updating sourcemap"); + filter(&instance) + } else { + false + } + }) + }) +} + fn recurse_create_node<'a>( tree: &'a RojoTree, referent: Ref, diff --git a/src/multimap.rs b/src/multimap.rs index 02191e6a..3a243af1 100644 --- a/src/multimap.rs +++ b/src/multimap.rs @@ -24,7 +24,7 @@ impl MultiMap { K: Borrow, Q: Hash + Eq, { - self.inner.get(k.borrow()).map(Vec::as_slice).unwrap_or(&[]) + self.inner.get(k).map(Vec::as_slice).unwrap_or(&[]) } pub fn insert(&mut self, k: K, v: V) { diff --git a/src/project.rs b/src/project.rs index e70005d0..1a645b76 100644 --- a/src/project.rs +++ b/src/project.rs @@ -8,7 +8,9 @@ use std::{ use serde::{Deserialize, Serialize}; use thiserror::Error; -use crate::{glob::Glob, resolution::UnresolvedValue}; +use crate::{ + glob::Glob, resolution::UnresolvedValue, snapshot_middleware::emit_legacy_scripts_default, +}; static PROJECT_FILENAME: &str = "default.project.json"; @@ -73,6 +75,14 @@ pub struct Project { #[serde(skip_serializing_if = "Option::is_none")] pub serve_address: Option, + /// Determines if rojo should emit scripts with the appropriate `RunContext` for `*.client.lua` and `*.server.lua` files in the project. + /// Or, if rojo should keep the legacy behavior of emitting LocalScripts and Scripts with legacy Runcontext + #[serde( + default = "emit_legacy_scripts_default", + skip_serializing_if = "Option::is_none" + )] + pub emit_legacy_scripts: Option, + /// A list of globs, relative to the folder the project file is in, that /// match files that should be excluded if Rojo encounters them. #[serde(default, skip_serializing_if = "Vec::is_empty")] diff --git a/src/serve_session.rs b/src/serve_session.rs index 9dab5446..85ae7793 100644 --- a/src/serve_session.rs +++ b/src/serve_session.rs @@ -123,7 +123,8 @@ impl ServeSession { let root_id = tree.get_root_id(); - let instance_context = InstanceContext::default(); + let instance_context = + InstanceContext::with_emit_legacy_scripts(root_project.emit_legacy_scripts); log::trace!("Generating snapshot of instances from VFS"); let snapshot = snapshot_from_vfs(&instance_context, &vfs, start_path)?; diff --git a/src/snapshot/metadata.rs b/src/snapshot/metadata.rs index 192a0001..1a3273ed 100644 --- a/src/snapshot/metadata.rs +++ b/src/snapshot/metadata.rs @@ -6,7 +6,10 @@ use std::{ use serde::{Deserialize, Serialize}; -use crate::{glob::Glob, path_serializer, project::ProjectNode}; +use crate::{ + glob::Glob, path_serializer, project::ProjectNode, + snapshot_middleware::emit_legacy_scripts_default, +}; /// Rojo-specific metadata that can be associated with an instance or a snapshot /// of an instance. @@ -103,9 +106,26 @@ impl Default for InstanceMetadata { pub struct InstanceContext { #[serde(skip_serializing_if = "Vec::is_empty")] pub path_ignore_rules: Arc>, + pub emit_legacy_scripts: bool, } impl InstanceContext { + pub fn new() -> Self { + Self { + path_ignore_rules: Arc::new(Vec::new()), + emit_legacy_scripts: emit_legacy_scripts_default().unwrap(), + } + } + + pub fn with_emit_legacy_scripts(emit_legacy_scripts: Option) -> Self { + Self { + emit_legacy_scripts: emit_legacy_scripts + .or_else(emit_legacy_scripts_default) + .unwrap(), + ..Self::new() + } + } + /// Extend the list of ignore rules in the context with the given new rules. pub fn add_path_ignore_rules(&mut self, new_rules: I) where @@ -123,13 +143,15 @@ impl InstanceContext { let rules = Arc::make_mut(&mut self.path_ignore_rules); rules.extend(new_rules); } + + pub fn set_emit_legacy_scripts(&mut self, emit_legacy_scripts: bool) { + self.emit_legacy_scripts = emit_legacy_scripts; + } } impl Default for InstanceContext { fn default() -> Self { - InstanceContext { - path_ignore_rules: Arc::new(Vec::new()), - } + Self::new() } } diff --git a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__add_property.snap b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__add_property.snap index 9d5e9d77..0d594dbc 100644 --- a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__add_property.snap +++ b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__add_property.snap @@ -1,7 +1,6 @@ --- source: src/snapshot/tests/apply.rs expression: tree_view - --- id: id-1 name: ROOT @@ -12,6 +11,7 @@ properties: metadata: ignore_unknown_instances: false relevant_paths: [] - context: {} + context: + emit_legacy_scripts: true children: [] diff --git a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_after_patch.snap b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_after_patch.snap index f8706912..b6fcbbd0 100644 --- a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_after_patch.snap +++ b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_after_patch.snap @@ -9,5 +9,7 @@ properties: {} metadata: ignore_unknown_instances: false relevant_paths: [] - context: {} + context: + emit_legacy_scripts: true children: [] + diff --git a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_initial.snap b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_initial.snap index 936658f1..84b3c3d1 100644 --- a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_initial.snap +++ b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_initial.snap @@ -1,7 +1,6 @@ --- source: src/snapshot/tests/apply.rs expression: tree_view - --- id: id-1 name: ROOT @@ -12,6 +11,7 @@ properties: metadata: ignore_unknown_instances: false relevant_paths: [] - context: {} + context: + emit_legacy_scripts: true children: [] diff --git a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__set_name_and_class_name.snap b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__set_name_and_class_name.snap index 634b4d64..325c86f3 100644 --- a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__set_name_and_class_name.snap +++ b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__set_name_and_class_name.snap @@ -9,5 +9,7 @@ properties: {} metadata: ignore_unknown_instances: false relevant_paths: [] - context: {} + context: + emit_legacy_scripts: true children: [] + diff --git a/src/snapshot/tests/snapshots/librojo__snapshot__tests__compute__add_child.snap b/src/snapshot/tests/snapshots/librojo__snapshot__tests__compute__add_child.snap index c4695b7c..94ddf12f 100644 --- a/src/snapshot/tests/snapshots/librojo__snapshot__tests__compute__add_child.snap +++ b/src/snapshot/tests/snapshots/librojo__snapshot__tests__compute__add_child.snap @@ -10,7 +10,8 @@ added_instances: metadata: ignore_unknown_instances: false relevant_paths: [] - context: {} + context: + emit_legacy_scripts: true name: New class_name: Folder properties: {} diff --git a/src/snapshot_middleware/lua.rs b/src/snapshot_middleware/lua.rs index ba221626..1307b066 100644 --- a/src/snapshot_middleware/lua.rs +++ b/src/snapshot_middleware/lua.rs @@ -1,8 +1,8 @@ -use std::{path::Path, str}; +use std::{collections::HashMap, path::Path, str}; use anyhow::Context; -use maplit::hashmap; use memofs::{IoResultExt, Vfs}; +use rbx_dom_weak::types::Enum; use crate::snapshot::{InstanceContext, InstanceMetadata, InstanceSnapshot}; @@ -12,6 +12,13 @@ use super::{ util::match_trailing, }; +#[derive(Debug)] +enum ScriptType { + Server, + Client, + Module, +} + /// Core routine for turning Lua files into snapshots. pub fn snapshot_lua( context: &InstanceContext, @@ -20,36 +27,58 @@ pub fn snapshot_lua( ) -> anyhow::Result> { let file_name = path.file_name().unwrap().to_string_lossy(); - let (class_name, instance_name) = if let Some(name) = match_trailing(&file_name, ".server.lua") + let run_context_enums = &rbx_reflection_database::get() + .enums + .get("RunContext") + .expect("Unable to get RunContext enums!") + .items; + + let (script_type, instance_name) = if let Some(name) = match_trailing(&file_name, ".server.lua") { - ("Script", name) + (ScriptType::Server, name) } else if let Some(name) = match_trailing(&file_name, ".client.lua") { - ("LocalScript", name) + (ScriptType::Client, name) } else if let Some(name) = match_trailing(&file_name, ".lua") { - ("ModuleScript", name) + (ScriptType::Module, name) } else if let Some(name) = match_trailing(&file_name, ".server.luau") { - ("Script", name) + (ScriptType::Server, name) } else if let Some(name) = match_trailing(&file_name, ".client.luau") { - ("LocalScript", name) + (ScriptType::Client, name) } else if let Some(name) = match_trailing(&file_name, ".luau") { - ("ModuleScript", name) + (ScriptType::Module, name) } else { return Ok(None); }; + let (class_name, run_context) = match (context.emit_legacy_scripts, script_type) { + (false, ScriptType::Server) => ("Script", run_context_enums.get("Server")), + (false, ScriptType::Client) => ("Script", run_context_enums.get("Client")), + (true, ScriptType::Server) => ("Script", run_context_enums.get("Legacy")), + (true, ScriptType::Client) => ("LocalScript", None), + (_, ScriptType::Module) => ("ModuleScript", None), + }; + let contents = vfs.read(path)?; let contents_str = str::from_utf8(&contents) .with_context(|| format!("File was not valid UTF-8: {}", path.display()))? .to_owned(); + let mut properties = HashMap::with_capacity(2); + properties.insert("Source".to_owned(), contents_str.into()); + + if let Some(run_context) = run_context { + properties.insert( + "RunContext".to_owned(), + Enum::from_u32(run_context.to_owned()).into(), + ); + } + let meta_path = path.with_file_name(format!("{}.meta.json", instance_name)); let mut snapshot = InstanceSnapshot::new() .name(instance_name) .class_name(class_name) - .properties(hashmap! { - "Source".to_owned() => contents_str.into(), - }) + .properties(properties) .metadata( InstanceMetadata::new() .instigating_source(path) @@ -107,26 +136,53 @@ pub fn snapshot_lua_init( mod test { use super::*; + use maplit::hashmap; use memofs::{InMemoryFs, VfsSnapshot}; #[test] - fn module_from_vfs() { + fn class_module_from_vfs() { let mut imfs = InMemoryFs::new(); imfs.load_snapshot("/foo.lua", VfsSnapshot::file("Hello there!")) .unwrap(); let mut vfs = Vfs::new(imfs); - let instance_snapshot = - snapshot_lua(&InstanceContext::default(), &mut vfs, Path::new("/foo.lua")) - .unwrap() - .unwrap(); + let instance_snapshot = snapshot_lua( + &InstanceContext::with_emit_legacy_scripts(Some(true)), + &mut vfs, + Path::new("/foo.lua"), + ) + .unwrap() + .unwrap(); - insta::assert_yaml_snapshot!(instance_snapshot); + insta::with_settings!({ sort_maps => true }, { + insta::assert_yaml_snapshot!(instance_snapshot); + }); } #[test] - fn server_from_vfs() { + fn runcontext_module_from_vfs() { + let mut imfs = InMemoryFs::new(); + imfs.load_snapshot("/foo.lua", VfsSnapshot::file("Hello there!")) + .unwrap(); + + let mut vfs = Vfs::new(imfs); + + let instance_snapshot = snapshot_lua( + &InstanceContext::with_emit_legacy_scripts(Some(false)), + &mut vfs, + Path::new("/foo.lua"), + ) + .unwrap() + .unwrap(); + + insta::with_settings!({ sort_maps => true }, { + insta::assert_yaml_snapshot!(instance_snapshot); + }); + } + + #[test] + fn class_server_from_vfs() { let mut imfs = InMemoryFs::new(); imfs.load_snapshot("/foo.server.lua", VfsSnapshot::file("Hello there!")) .unwrap(); @@ -134,18 +190,41 @@ mod test { let mut vfs = Vfs::new(imfs); let instance_snapshot = snapshot_lua( - &InstanceContext::default(), + &InstanceContext::with_emit_legacy_scripts(Some(true)), &mut vfs, Path::new("/foo.server.lua"), ) .unwrap() .unwrap(); - insta::assert_yaml_snapshot!(instance_snapshot); + insta::with_settings!({ sort_maps => true }, { + insta::assert_yaml_snapshot!(instance_snapshot); + }); } #[test] - fn client_from_vfs() { + fn runcontext_server_from_vfs() { + let mut imfs = InMemoryFs::new(); + imfs.load_snapshot("/foo.server.lua", VfsSnapshot::file("Hello there!")) + .unwrap(); + + let mut vfs = Vfs::new(imfs); + + let instance_snapshot = snapshot_lua( + &InstanceContext::with_emit_legacy_scripts(Some(false)), + &mut vfs, + Path::new("/foo.server.lua"), + ) + .unwrap() + .unwrap(); + + insta::with_settings!({ sort_maps => true }, { + insta::assert_yaml_snapshot!(instance_snapshot); + }); + } + + #[test] + fn class_client_from_vfs() { let mut imfs = InMemoryFs::new(); imfs.load_snapshot("/foo.client.lua", VfsSnapshot::file("Hello there!")) .unwrap(); @@ -153,14 +232,37 @@ mod test { let mut vfs = Vfs::new(imfs); let instance_snapshot = snapshot_lua( - &InstanceContext::default(), + &InstanceContext::with_emit_legacy_scripts(Some(true)), &mut vfs, Path::new("/foo.client.lua"), ) .unwrap() .unwrap(); - insta::assert_yaml_snapshot!(instance_snapshot); + insta::with_settings!({ sort_maps => true }, { + insta::assert_yaml_snapshot!(instance_snapshot); + }); + } + + #[test] + fn runcontext_client_from_vfs() { + let mut imfs = InMemoryFs::new(); + imfs.load_snapshot("/foo.client.lua", VfsSnapshot::file("Hello there!")) + .unwrap(); + + let mut vfs = Vfs::new(imfs); + + let instance_snapshot = snapshot_lua( + &InstanceContext::with_emit_legacy_scripts(Some(false)), + &mut vfs, + Path::new("/foo.client.lua"), + ) + .unwrap() + .unwrap(); + + insta::with_settings!({ sort_maps => true }, { + insta::assert_yaml_snapshot!(instance_snapshot); + }); } #[ignore = "init.lua functionality has moved to the root snapshot function"] @@ -177,16 +279,21 @@ mod test { let mut vfs = Vfs::new(imfs); - let instance_snapshot = - snapshot_lua(&InstanceContext::default(), &mut vfs, Path::new("/root")) - .unwrap() - .unwrap(); + let instance_snapshot = snapshot_lua( + &InstanceContext::with_emit_legacy_scripts(Some(true)), + &mut vfs, + Path::new("/root"), + ) + .unwrap() + .unwrap(); - insta::assert_yaml_snapshot!(instance_snapshot); + insta::with_settings!({ sort_maps => true }, { + insta::assert_yaml_snapshot!(instance_snapshot); + }); } #[test] - fn module_with_meta() { + fn class_module_with_meta() { let mut imfs = InMemoryFs::new(); imfs.load_snapshot("/foo.lua", VfsSnapshot::file("Hello there!")) .unwrap(); @@ -204,16 +311,53 @@ mod test { let mut vfs = Vfs::new(imfs); - let instance_snapshot = - snapshot_lua(&InstanceContext::default(), &mut vfs, Path::new("/foo.lua")) - .unwrap() - .unwrap(); + let instance_snapshot = snapshot_lua( + &InstanceContext::with_emit_legacy_scripts(Some(true)), + &mut vfs, + Path::new("/foo.lua"), + ) + .unwrap() + .unwrap(); - insta::assert_yaml_snapshot!(instance_snapshot); + insta::with_settings!({ sort_maps => true }, { + insta::assert_yaml_snapshot!(instance_snapshot); + }); } #[test] - fn script_with_meta() { + fn runcontext_module_with_meta() { + let mut imfs = InMemoryFs::new(); + imfs.load_snapshot("/foo.lua", VfsSnapshot::file("Hello there!")) + .unwrap(); + imfs.load_snapshot( + "/foo.meta.json", + VfsSnapshot::file( + r#" + { + "ignoreUnknownInstances": true + } + "#, + ), + ) + .unwrap(); + + let mut vfs = Vfs::new(imfs); + + let instance_snapshot = snapshot_lua( + &InstanceContext::with_emit_legacy_scripts(Some(false)), + &mut vfs, + Path::new("/foo.lua"), + ) + .unwrap() + .unwrap(); + + insta::with_settings!({ sort_maps => true }, { + insta::assert_yaml_snapshot!(instance_snapshot); + }); + } + + #[test] + fn class_script_with_meta() { let mut imfs = InMemoryFs::new(); imfs.load_snapshot("/foo.server.lua", VfsSnapshot::file("Hello there!")) .unwrap(); @@ -232,18 +376,52 @@ mod test { let mut vfs = Vfs::new(imfs); let instance_snapshot = snapshot_lua( - &InstanceContext::default(), + &InstanceContext::with_emit_legacy_scripts(Some(true)), &mut vfs, Path::new("/foo.server.lua"), ) .unwrap() .unwrap(); - insta::assert_yaml_snapshot!(instance_snapshot); + insta::with_settings!({ sort_maps => true }, { + insta::assert_yaml_snapshot!(instance_snapshot); + }); } #[test] - fn script_disabled() { + fn runcontext_script_with_meta() { + let mut imfs = InMemoryFs::new(); + imfs.load_snapshot("/foo.server.lua", VfsSnapshot::file("Hello there!")) + .unwrap(); + imfs.load_snapshot( + "/foo.meta.json", + VfsSnapshot::file( + r#" + { + "ignoreUnknownInstances": true + } + "#, + ), + ) + .unwrap(); + + let mut vfs = Vfs::new(imfs); + + let instance_snapshot = snapshot_lua( + &InstanceContext::with_emit_legacy_scripts(Some(false)), + &mut vfs, + Path::new("/foo.server.lua"), + ) + .unwrap() + .unwrap(); + + insta::with_settings!({ sort_maps => true }, { + insta::assert_yaml_snapshot!(instance_snapshot); + }); + } + + #[test] + fn class_script_disabled() { let mut imfs = InMemoryFs::new(); imfs.load_snapshot("/bar.server.lua", VfsSnapshot::file("Hello there!")) .unwrap(); @@ -264,7 +442,41 @@ mod test { let mut vfs = Vfs::new(imfs); let instance_snapshot = snapshot_lua( - &InstanceContext::default(), + &InstanceContext::with_emit_legacy_scripts(Some(true)), + &mut vfs, + Path::new("/bar.server.lua"), + ) + .unwrap() + .unwrap(); + + insta::with_settings!({ sort_maps => true }, { + insta::assert_yaml_snapshot!(instance_snapshot); + }); + } + + #[test] + fn runcontext_script_disabled() { + let mut imfs = InMemoryFs::new(); + imfs.load_snapshot("/bar.server.lua", VfsSnapshot::file("Hello there!")) + .unwrap(); + imfs.load_snapshot( + "/bar.meta.json", + VfsSnapshot::file( + r#" + { + "properties": { + "Disabled": true + } + } + "#, + ), + ) + .unwrap(); + + let mut vfs = Vfs::new(imfs); + + let instance_snapshot = snapshot_lua( + &InstanceContext::with_emit_legacy_scripts(Some(false)), &mut vfs, Path::new("/bar.server.lua"), ) diff --git a/src/snapshot_middleware/mod.rs b/src/snapshot_middleware/mod.rs index c690a223..d8cd3940 100644 --- a/src/snapshot_middleware/mod.rs +++ b/src/snapshot_middleware/mod.rs @@ -38,7 +38,7 @@ use self::{ util::PathExt, }; -pub use self::project::snapshot_project_node; +pub use self::{project::snapshot_project_node, util::emit_legacy_scripts_default}; /// The main entrypoint to the snapshot function. This function can be pointed /// at any path and will return something if Rojo knows how to deal with it. diff --git a/src/snapshot_middleware/project.rs b/src/snapshot_middleware/project.rs index a451abc9..d1b4a2e4 100644 --- a/src/snapshot_middleware/project.rs +++ b/src/snapshot_middleware/project.rs @@ -12,7 +12,7 @@ use crate::{ }, }; -use super::snapshot_from_vfs; +use super::{emit_legacy_scripts_default, snapshot_from_vfs}; pub fn snapshot_project( context: &InstanceContext, @@ -30,6 +30,12 @@ pub fn snapshot_project( }); context.add_path_ignore_rules(rules); + context.set_emit_legacy_scripts( + project + .emit_legacy_scripts + .or_else(emit_legacy_scripts_default) + .unwrap(), + ); match snapshot_project_node(&context, path, &project.name, &project.tree, vfs, None)? { Some(found_snapshot) => { @@ -77,7 +83,7 @@ pub fn snapshot_project_node( let name = Cow::Owned(instance_name.to_owned()); let mut properties = HashMap::new(); let mut children = Vec::new(); - let mut metadata = InstanceMetadata::default(); + let mut metadata = InstanceMetadata::new().context(context); if let Some(path_node) = &node.path { let path = path_node.path(); diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_from_vfs.snap index 11a8d81c..50ce53c1 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_from_vfs.snap @@ -10,7 +10,8 @@ metadata: relevant_paths: - /foo.csv - /foo.meta.json - context: {} + context: + emit_legacy_scripts: true name: foo class_name: LocalizationTable properties: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_with_meta.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_with_meta.snap index eda82606..c91924f8 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_with_meta.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_with_meta.snap @@ -10,7 +10,8 @@ metadata: relevant_paths: - /foo.csv - /foo.meta.json - context: {} + context: + emit_legacy_scripts: true name: foo class_name: LocalizationTable properties: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__empty_folder.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__empty_folder.snap index e59da8db..4c0dcbbf 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__empty_folder.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__empty_folder.snap @@ -17,7 +17,8 @@ metadata: - /foo/init.client.lua - /foo/init.client.luau - /foo/init.csv - context: {} + context: + emit_legacy_scripts: true name: foo class_name: Folder properties: {} diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__folder_in_folder.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__folder_in_folder.snap index 8c2ee9cc..6238fe68 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__folder_in_folder.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__folder_in_folder.snap @@ -17,7 +17,8 @@ metadata: - /foo/init.client.lua - /foo/init.client.luau - /foo/init.csv - context: {} + context: + emit_legacy_scripts: true name: foo class_name: Folder properties: {} @@ -37,7 +38,8 @@ children: - /foo/Child/init.client.lua - /foo/Child/init.client.luau - /foo/Child/init.csv - context: {} + context: + emit_legacy_scripts: true name: Child class_name: Folder properties: {} diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json__test__instance_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json__test__instance_from_vfs.snap index b1cca7cb..9cc320eb 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json__test__instance_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json__test__instance_from_vfs.snap @@ -10,7 +10,8 @@ metadata: relevant_paths: - /foo.json - /foo.meta.json - context: {} + context: + emit_legacy_scripts: true name: foo class_name: ModuleScript properties: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs.snap index 5d4db1fc..e3ee581e 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs.snap @@ -9,7 +9,8 @@ metadata: Path: /foo.model.json relevant_paths: - /foo.model.json - context: {} + context: + emit_legacy_scripts: true name: foo class_name: IntValue properties: @@ -20,7 +21,8 @@ children: metadata: ignore_unknown_instances: false relevant_paths: [] - context: {} + context: + emit_legacy_scripts: true name: The Child class_name: StringValue properties: {} diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs_legacy.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs_legacy.snap index 5d4db1fc..e3ee581e 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs_legacy.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs_legacy.snap @@ -9,7 +9,8 @@ metadata: Path: /foo.model.json relevant_paths: - /foo.model.json - context: {} + context: + emit_legacy_scripts: true name: foo class_name: IntValue properties: @@ -20,7 +21,8 @@ children: metadata: ignore_unknown_instances: false relevant_paths: [] - context: {} + context: + emit_legacy_scripts: true name: The Child class_name: StringValue properties: {} diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__client_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_client_from_vfs.snap similarity index 90% rename from src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__client_from_vfs.snap rename to src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_client_from_vfs.snap index 40b4bbe2..5f5f6e9a 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__client_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_client_from_vfs.snap @@ -10,7 +10,8 @@ metadata: relevant_paths: - /foo.client.lua - /foo.meta.json - context: {} + context: + emit_legacy_scripts: true name: foo class_name: LocalScript properties: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_module_from_vfs.snap similarity index 89% rename from src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_from_vfs.snap rename to src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_module_from_vfs.snap index 6877e9a9..de2471b9 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_module_from_vfs.snap @@ -10,7 +10,8 @@ metadata: relevant_paths: - /foo.lua - /foo.meta.json - context: {} + context: + emit_legacy_scripts: true name: foo class_name: ModuleScript properties: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_with_meta.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_module_with_meta.snap similarity index 89% rename from src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_with_meta.snap rename to src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_module_with_meta.snap index 8dcc57a9..32d70c70 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_with_meta.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_module_with_meta.snap @@ -10,7 +10,8 @@ metadata: relevant_paths: - /foo.lua - /foo.meta.json - context: {} + context: + emit_legacy_scripts: true name: foo class_name: ModuleScript properties: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__script_disabled.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_script_disabled.snap similarity index 85% rename from src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__script_disabled.snap rename to src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_script_disabled.snap index 3f040877..2c5546a5 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__script_disabled.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_script_disabled.snap @@ -10,12 +10,15 @@ metadata: relevant_paths: - /bar.server.lua - /bar.meta.json - context: {} + context: + emit_legacy_scripts: true name: bar class_name: Script properties: Disabled: Bool: true + RunContext: + Enum: 0 Source: String: Hello there! children: [] diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__script_with_meta.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_script_with_meta.snap similarity index 84% rename from src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__script_with_meta.snap rename to src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_script_with_meta.snap index 6bdd2a38..e4e31ff9 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__script_with_meta.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_script_with_meta.snap @@ -10,10 +10,13 @@ metadata: relevant_paths: - /foo.server.lua - /foo.meta.json - context: {} + context: + emit_legacy_scripts: true name: foo class_name: Script properties: + RunContext: + Enum: 0 Source: String: Hello there! children: [] diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_server_from_vfs.snap similarity index 84% rename from src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_from_vfs.snap rename to src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_server_from_vfs.snap index 63d33a0a..b70b9cc2 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__class_server_from_vfs.snap @@ -10,10 +10,13 @@ metadata: relevant_paths: - /foo.server.lua - /foo.meta.json - context: {} + context: + emit_legacy_scripts: true name: foo class_name: Script properties: + RunContext: + Enum: 0 Source: String: Hello there! children: [] diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__init_module_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__init_module_from_vfs.snap index 47340789..0077f4c0 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__init_module_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__init_module_from_vfs.snap @@ -13,7 +13,8 @@ metadata: - /root/init.lua - /root/init.server.lua - /root/init.client.lua - context: {} + context: + script_type: Class name: root class_name: ModuleScript properties: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_client_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_client_from_vfs.snap new file mode 100644 index 00000000..6ad72d08 --- /dev/null +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_client_from_vfs.snap @@ -0,0 +1,23 @@ +--- +source: src/snapshot_middleware/lua.rs +expression: instance_snapshot +--- +snapshot_id: "00000000000000000000000000000000" +metadata: + ignore_unknown_instances: false + instigating_source: + Path: /foo.client.lua + relevant_paths: + - /foo.client.lua + - /foo.meta.json + context: + emit_legacy_scripts: false +name: foo +class_name: Script +properties: + RunContext: + Enum: 2 + Source: + String: Hello there! +children: [] + diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_module_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_module_from_vfs.snap new file mode 100644 index 00000000..83be811b --- /dev/null +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_module_from_vfs.snap @@ -0,0 +1,21 @@ +--- +source: src/snapshot_middleware/lua.rs +expression: instance_snapshot +--- +snapshot_id: "00000000000000000000000000000000" +metadata: + ignore_unknown_instances: false + instigating_source: + Path: /foo.lua + relevant_paths: + - /foo.lua + - /foo.meta.json + context: + emit_legacy_scripts: false +name: foo +class_name: ModuleScript +properties: + Source: + String: Hello there! +children: [] + diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_module_with_meta.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_module_with_meta.snap new file mode 100644 index 00000000..98a88ec7 --- /dev/null +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_module_with_meta.snap @@ -0,0 +1,21 @@ +--- +source: src/snapshot_middleware/lua.rs +expression: instance_snapshot +--- +snapshot_id: "00000000000000000000000000000000" +metadata: + ignore_unknown_instances: true + instigating_source: + Path: /foo.lua + relevant_paths: + - /foo.lua + - /foo.meta.json + context: + emit_legacy_scripts: false +name: foo +class_name: ModuleScript +properties: + Source: + String: Hello there! +children: [] + diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_script_disabled.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_script_disabled.snap new file mode 100644 index 00000000..c47b83dc --- /dev/null +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_script_disabled.snap @@ -0,0 +1,25 @@ +--- +source: src/snapshot_middleware/lua.rs +expression: instance_snapshot +--- +snapshot_id: "00000000000000000000000000000000" +metadata: + ignore_unknown_instances: false + instigating_source: + Path: /bar.server.lua + relevant_paths: + - /bar.server.lua + - /bar.meta.json + context: + emit_legacy_scripts: false +name: bar +class_name: Script +properties: + Disabled: + Bool: true + RunContext: + Enum: 1 + Source: + String: Hello there! +children: [] + diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_script_with_meta.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_script_with_meta.snap new file mode 100644 index 00000000..72d24206 --- /dev/null +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_script_with_meta.snap @@ -0,0 +1,23 @@ +--- +source: src/snapshot_middleware/lua.rs +expression: instance_snapshot +--- +snapshot_id: "00000000000000000000000000000000" +metadata: + ignore_unknown_instances: true + instigating_source: + Path: /foo.server.lua + relevant_paths: + - /foo.server.lua + - /foo.meta.json + context: + emit_legacy_scripts: false +name: foo +class_name: Script +properties: + RunContext: + Enum: 1 + Source: + String: Hello there! +children: [] + diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_server_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_server_from_vfs.snap new file mode 100644 index 00000000..2b902f96 --- /dev/null +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__runcontext_server_from_vfs.snap @@ -0,0 +1,23 @@ +--- +source: src/snapshot_middleware/lua.rs +expression: instance_snapshot +--- +snapshot_id: "00000000000000000000000000000000" +metadata: + ignore_unknown_instances: false + instigating_source: + Path: /foo.server.lua + relevant_paths: + - /foo.server.lua + - /foo.meta.json + context: + emit_legacy_scripts: false +name: foo +class_name: Script +properties: + RunContext: + Enum: 1 + Source: + String: Hello there! +children: [] + diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_from_direct_file.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_from_direct_file.snap index 795b14c1..bd5db23d 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_from_direct_file.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_from_direct_file.snap @@ -9,7 +9,8 @@ metadata: Path: /foo/hello.project.json relevant_paths: - /foo/hello.project.json - context: {} + context: + emit_legacy_scripts: true name: direct-project class_name: Model properties: {} diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_from_folder.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_from_folder.snap index d3a91f3c..87aead09 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_from_folder.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_from_folder.snap @@ -9,7 +9,8 @@ metadata: Path: /foo/default.project.json relevant_paths: - /foo/default.project.json - context: {} + context: + script_type: Class name: indirect-project class_name: Folder properties: {} diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_path_property_overrides.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_path_property_overrides.snap index 7427c9dc..77cb44c9 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_path_property_overrides.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_path_property_overrides.snap @@ -10,7 +10,8 @@ metadata: relevant_paths: - /foo/other.project.json - /foo/default.project.json - context: {} + context: + emit_legacy_scripts: true name: path-property-override class_name: StringValue properties: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_children.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_children.snap index b50eb1be..914a2f95 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_children.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_children.snap @@ -9,7 +9,8 @@ metadata: Path: /foo.project.json relevant_paths: - /foo.project.json - context: {} + context: + emit_legacy_scripts: true name: children class_name: Folder properties: {} @@ -24,7 +25,8 @@ children: - $className: Model - Folder relevant_paths: [] - context: {} + context: + emit_legacy_scripts: true name: Child class_name: Model properties: {} diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project.snap index d64a46e7..02e6ee0b 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project.snap @@ -10,7 +10,8 @@ metadata: relevant_paths: - /foo/other.project.json - /foo/default.project.json - context: {} + context: + emit_legacy_scripts: true name: path-project class_name: Model properties: {} diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project_with_children.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project_with_children.snap index 0ceb043a..baf64365 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project_with_children.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project_with_children.snap @@ -10,7 +10,8 @@ metadata: relevant_paths: - /foo/other.project.json - /foo/default.project.json - context: {} + context: + emit_legacy_scripts: true name: path-child-project class_name: Folder properties: {} @@ -25,7 +26,8 @@ children: - $className: Model - Folder relevant_paths: [] - context: {} + context: + emit_legacy_scripts: true name: SomeChild class_name: Model properties: {} diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_txt.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_txt.snap index 51a222f9..223c366c 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_txt.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_txt.snap @@ -11,7 +11,8 @@ metadata: - /foo/other.txt - /foo/other.meta.json - /foo/default.project.json - context: {} + context: + emit_legacy_scripts: true name: path-project class_name: StringValue properties: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_resolved_properties.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_resolved_properties.snap index 9b8e91ef..eddb4e04 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_resolved_properties.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_resolved_properties.snap @@ -9,7 +9,8 @@ metadata: Path: /foo.project.json relevant_paths: - /foo.project.json - context: {} + context: + emit_legacy_scripts: true name: resolved-properties class_name: StringValue properties: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_unresolved_properties.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_unresolved_properties.snap index a07300bb..8bd6e28b 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_unresolved_properties.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_unresolved_properties.snap @@ -9,7 +9,8 @@ metadata: Path: /foo.project.json relevant_paths: - /foo.project.json - context: {} + context: + emit_legacy_scripts: true name: unresolved-properties class_name: StringValue properties: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__toml__test__instance_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__toml__test__instance_from_vfs.snap index 3529bf89..329bdbcd 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__toml__test__instance_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__toml__test__instance_from_vfs.snap @@ -10,7 +10,8 @@ metadata: relevant_paths: - /foo.toml - /foo.meta.json - context: {} + context: + emit_legacy_scripts: true name: foo class_name: ModuleScript properties: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__txt__test__instance_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__txt__test__instance_from_vfs.snap index b8a8d4af..aa3e0f06 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__txt__test__instance_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__txt__test__instance_from_vfs.snap @@ -10,7 +10,8 @@ metadata: relevant_paths: - /foo.txt - /foo.meta.json - context: {} + context: + emit_legacy_scripts: true name: foo class_name: StringValue properties: diff --git a/src/snapshot_middleware/util.rs b/src/snapshot_middleware/util.rs index 16648eae..625910b7 100644 --- a/src/snapshot_middleware/util.rs +++ b/src/snapshot_middleware/util.rs @@ -41,3 +41,8 @@ where .with_context(|| format!("Path did not end in {}: {}", suffix, path.display())) } } + +// TEMP function until rojo 8.0, when it can be replaced with bool::default (aka false) +pub fn emit_legacy_scripts_default() -> Option { + Some(true) +} diff --git a/src/web/api.rs b/src/web/api.rs index 338862f7..4156af35 100644 --- a/src/web/api.rs +++ b/src/web/api.rs @@ -159,7 +159,7 @@ impl ApiService { }) .unwrap(); - json_ok(&WriteResponse { session_id }) + json_ok(WriteResponse { session_id }) } async fn handle_api_read(&self, request: Request) -> Response { @@ -271,7 +271,7 @@ impl ApiService { }, }; - json_ok(&OpenResponse { + json_ok(OpenResponse { session_id: self.serve_session.session_id(), }) } diff --git a/tests/tests/build.rs b/tests/tests/build.rs index 4907449d..01e87da7 100644 --- a/tests/tests/build.rs +++ b/tests/tests/build.rs @@ -44,6 +44,7 @@ gen_build_tests! { json_model_legacy_name, module_in_folder, module_init, + nested_runcontext, optional, project_composed_default, project_composed_file, diff --git a/tests/tests/serve.rs b/tests/tests/serve.rs index 9cca9fac..d55d339b 100644 --- a/tests/tests/serve.rs +++ b/tests/tests/serve.rs @@ -1,6 +1,6 @@ use std::fs; -use insta::assert_yaml_snapshot; +use insta::{assert_yaml_snapshot, with_settings}; use tempfile::tempdir; use crate::rojo_test::{internable::InternAndRedact, serve_util::run_serve_test}; @@ -30,10 +30,12 @@ fn scripts() { assert_yaml_snapshot!("scripts_info", redactions.redacted_yaml(info)); let read_response = session.get_api_read(root_id).unwrap(); - assert_yaml_snapshot!( - "scripts_all", - read_response.intern_and_redact(&mut redactions, root_id) - ); + with_settings!({ sort_maps => true }, { + assert_yaml_snapshot!( + "scripts_all", + read_response.intern_and_redact(&mut redactions, root_id) + ); + }); fs::write(session.path().join("src/foo.lua"), "Updated foo!").unwrap(); @@ -44,10 +46,12 @@ fn scripts() { ); let read_response = session.get_api_read(root_id).unwrap(); - assert_yaml_snapshot!( - "scripts_all-2", - read_response.intern_and_redact(&mut redactions, root_id) - ); + with_settings!({ sort_maps => true }, { + assert_yaml_snapshot!( + "scripts_all-2", + read_response.intern_and_redact(&mut redactions, root_id) + ); + }); }); }