nucleation 0.1.128__tar.gz → 0.1.129__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nucleation-0.1.128 → nucleation-0.1.129}/Cargo.lock +1 -1
- {nucleation-0.1.128 → nucleation-0.1.129}/Cargo.toml +1 -1
- {nucleation-0.1.128 → nucleation-0.1.129}/PKG-INFO +1 -1
- {nucleation-0.1.128 → nucleation-0.1.129}/docs/README.md +1 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/docs/insign-io-integration.md +21 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/docs/shared/guide/definition-region.md +50 -7
- {nucleation-0.1.128 → nucleation-0.1.129}/pyproject.toml +1 -1
- nucleation-0.1.129/release-artifacts/libnucleation-macos-arm64.dylib +0 -0
- nucleation-0.1.129/release-artifacts/libnucleation-macos-x64.dylib +0 -0
- nucleation-0.1.129/release-artifacts/libnucleation.rlib +0 -0
- nucleation-0.1.129/release-artifacts/nucleation_bg.wasm +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/release-artifacts/package.json +1 -1
- nucleation-0.1.129/simple_cube.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/formats/litematic.rs +14 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/formats/schematic.rs +28 -2
- {nucleation-0.1.128 → nucleation-0.1.129}/src/universal_schematic.rs +87 -5
- nucleation-0.1.129/test_schematic.schem +0 -0
- nucleation-0.1.129/tests/definition_regions_test.rs +187 -0
- nucleation-0.1.129/tests/reproduce_bug.rs +153 -0
- nucleation-0.1.128/release-artifacts/libnucleation-macos-arm64.dylib +0 -0
- nucleation-0.1.128/release-artifacts/libnucleation-macos-x64.dylib +0 -0
- nucleation-0.1.128/release-artifacts/libnucleation.rlib +0 -0
- nucleation-0.1.128/release-artifacts/nucleation_bg.wasm +0 -0
- nucleation-0.1.128/simple_cube.litematic +0 -0
- nucleation-0.1.128/test_schematic.schem +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/.DS_Store +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/.cargo/config.toml +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/.github/workflows/ci.yml +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/.gitignore +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/.idea/.gitignore +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/.idea/minecraft_schematic_utils.iml +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/.idea/misc.xml +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/.idea/modules.xml +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/.idea/vcs.xml +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/4bit_adder.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/CUSTOM_IO_INTEGRATION_CHECKLIST.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/Dockerfile +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/LICENSE +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/README.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/benches/performance_test.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/benches/schematic_bench.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/build-ffi.sh +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/build-wasm.sh +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/docs/javascript/README.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/docs/python/README.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/docs/rust/README.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/docs/shared/guide/circuit-api.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/docs/shared/guide/schematic-builder.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/docs/shared/guide/typed-executor.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/docs/shared/unicode-palette.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/bracket_notation.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/build_adder.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/build_test_adder.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/check_adder_dims.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/connect4_battle_setup.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/create_simple_litematic.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/custom_io_signals.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/ffi.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/python.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/python_simulation.py +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/rust.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/test_asymmetric_cubes.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/test_checkerboard.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/test_unicode_circuit.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/universal_schematic_overhead.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/examples/wasm.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/helf_adder.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/insign.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/nucleation-stubs.php +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/nucleation.pyi +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/output/.DS_Store +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/output/full_adder.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/pre-push.sh +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/py.typed +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/release-artifacts/LICENSE +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/release-artifacts/README.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/release-artifacts/libnucleation.d +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/release-artifacts/nucleation-cdn-loader.js +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/release-artifacts/nucleation-original.js +4 -4
- {nucleation-0.1.128 → nucleation-0.1.129}/release-artifacts/nucleation.d.ts +1 -1
- {nucleation-0.1.128 → nucleation-0.1.129}/release-artifacts/nucleation.js +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/release-artifacts/nucleation_bg.wasm.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/schematic_builder/generated/d_latch.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/schematic_builder/generated/xor.schem +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/schematic_builder/templates/comparator_subtract_bug1.txt +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/schematic_builder/templates/comparator_subtract_bug2.txt +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/schematic_builder/templates/comparator_subtract_simple.txt +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/schematic_builder/templates/comparator_subtract_with_signs.txt +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/schematic_builder/templates/d_latch.txt +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/schematic_builder/templates/failing_case.txt +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/schematic_builder/templates/full_adder.txt +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/schematic_builder/templates/xor.txt +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/scripts/update-stubs.sh +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/bin/schematic-builder.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/block_entity/generic.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/block_entity/mod.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/block_position.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/block_state.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/bounding_box.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/chunk.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/definition_region.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/entity.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/ffi.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/formats/mod.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/formats/sponge_schematic_v3.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/insign.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/item/mod.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/item/stack.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/lib.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/metadata.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/php.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/print_utils.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/python/circuit_builder.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/python/definition_region.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/python/mod.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/python/schematic.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/python/schematic_builder.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/python/simulation.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/python/typed_executor.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/region.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/schematic_builder/palettes.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/schematic_builder.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/circuit_builder.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/mchprs_world.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/mod.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/tests.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/truth_table.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/typed_executor/executor.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/typed_executor/insign_io.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/typed_executor/integration_tests.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/typed_executor/io_layout_builder.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/typed_executor/io_mapping.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/typed_executor/io_type.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/typed_executor/layout_function.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/typed_executor/mod.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/typed_executor/sort_strategy.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/typed_executor/tests.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/simulation/typed_executor/value.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/transforms.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/utils/block_string.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/utils/container_spec.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/utils/enhanced_nbt_parser.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/utils/mod.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/utils/nbt.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/wasm/circuit_builder.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/wasm/definition_region.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/wasm/mod.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/wasm/schematic.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/wasm/schematic_builder.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/wasm/simulation.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/src/wasm/typed_executor.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/test-wasm.sh +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/test_adder.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/test_circuit.txt +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/test_cli_output.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/test_count_format.schem +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/test_enhanced.schem +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/test_fixed.schem +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/.DS_Store +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/barrel_nbt_test.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/debug_flip.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/integration_tests.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/mchprs_state_test.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/nbt_parsing_test.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/node_wasm_test.js +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/package.json +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/php-stubs-test.php +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/property_transformation_demo.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/python_test.py +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/1x1.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/3x2x3.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/3x3.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/4x2x4.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/4x4x4+1.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/Evaluator.schem +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/all_items.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/and.schem +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/brewer.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/cutecounter.schem +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/door_plot.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/file.litematic.l +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/gol.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/large_schematic.schem +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/linear_plotter.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/litematic-rose-farm.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/new_chest_test.schem +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/quarry.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/sample.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/sample.schem +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/spinny.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/ss-sorter.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/storage_thingy.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/test_coordinate_thingy.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/test_cube.schem +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/trencher.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/samples/wool_palette.litematic +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/simple_wasm_test.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_barrel_hopper_simulation.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_chunk_bounds_bug.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_comparator_diagonal_bug.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_comparator_subtract_bug.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_comparator_subtract_executor.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_custom_io_adjacent_bug.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_custom_io_no_power_bug.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_intermediate_wire_sync.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_long_wire.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_nibble_signal_strength.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_region_expansion_bugs.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_repeater_chain_sync.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_repeater_custom_io_bug.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_simulation_with_tight_bounds.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_two_inputs_exact_topology.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_two_inputs_no_output_bug.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/test_typed_executor_sync_output_bug.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/transformation_tests.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/wasm_node_tests.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/tests/wasm_tests.rs +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/bun.lockb +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/index.html +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/index.js +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/minecraft_schematic_utils.js +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/minecraft_schematic_utils_bg.wasm +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/LICENSE +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/README.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/assert/strict.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/assert.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/async_hooks.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/buffer.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/child_process.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/cluster.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/console.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/constants.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/crypto.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/dgram.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/diagnostics_channel.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/dns/promises.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/dns.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/dom-events.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/domain.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/events.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/fs/promises.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/fs.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/globals.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/globals.global.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/http.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/http2.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/https.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/index.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/inspector.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/module.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/net.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/os.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/package.json +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/path.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/perf_hooks.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/process.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/punycode.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/querystring.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/readline/promises.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/readline.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/repl.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/sea.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/stream/consumers.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/stream/promises.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/stream/web.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/stream.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/string_decoder.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/test.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/timers/promises.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/timers.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/tls.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/trace_events.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/tty.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/url.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/util.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/v8.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/vm.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/wasi.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/worker_threads.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/node/zlib.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/LICENSE +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/README.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/index.d.mts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/index.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/LICENSE +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/README.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/assert/strict.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/assert.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/async_hooks.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/buffer.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/child_process.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/cluster.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/console.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/constants.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/crypto.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/dgram.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/diagnostics_channel.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/dns/promises.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/dns.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/dom-events.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/domain.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/events.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/fs/promises.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/fs.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/globals.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/globals.global.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/http.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/http2.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/https.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/index.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/inspector.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/module.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/net.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/LICENSE +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/README.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/agent.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/api.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/balanced-pool.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/cache.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/client.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/connector.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/content-type.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/cookies.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/diagnostics-channel.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/dispatcher.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/errors.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/eventsource.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/fetch.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/file.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/filereader.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/formdata.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/global-dispatcher.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/global-origin.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/handlers.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/header.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/index.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/interceptors.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-agent.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-client.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-errors.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-interceptor.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/mock-pool.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/package.json +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/patch.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/pool-stats.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/pool.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/proxy-agent.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/readable.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/retry-agent.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/retry-handler.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/util.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/webidl.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/node_modules/undici-types/websocket.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/os.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/package.json +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/path.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/perf_hooks.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/process.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/punycode.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/querystring.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/readline/promises.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/readline.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/repl.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/sea.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/sqlite.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/stream/consumers.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/stream/promises.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/stream/web.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/stream.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/string_decoder.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/test.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/timers/promises.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/timers.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/tls.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/trace_events.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/tty.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/url.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/util.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/v8.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/vm.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/wasi.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/worker_threads.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/node_modules/@types/node/zlib.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/@types/ws/package.json +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/README.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/bun.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/deprecated.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/fetch.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/ffi.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/globals.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/html-rewriter.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/index.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/jsc.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/overrides.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/package.json +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/sqlite.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/test.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/bun-types/wasm.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/README.md +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/agent.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/api.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/balanced-pool.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/cache.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/client.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/connector.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/content-type.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/cookies.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/diagnostics-channel.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/dispatcher.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/errors.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/fetch.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/file.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/filereader.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/formdata.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/global-dispatcher.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/global-origin.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/handlers.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/header.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/index.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/interceptors.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/mock-agent.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/mock-client.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/mock-errors.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/mock-interceptor.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/mock-pool.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/package.json +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/patch.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/pool-stats.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/pool.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/proxy-agent.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/readable.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/webidl.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/node_modules/undici-types/websocket.d.ts +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/nucleation-web.js +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/nucleation-web_bg.wasm +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/nucleation.js +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/nucleation_bg.js +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/nucleation_bg.wasm +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/package.json +0 -0
- {nucleation-0.1.128 → nucleation-0.1.129}/wasm-test/server.js +0 -0
|
@@ -12,6 +12,8 @@ Instead of manually defining IO layouts in code, you can annotate your Minecraft
|
|
|
12
12
|
4. Sort positions using distance-based or custom sorting strategies
|
|
13
13
|
5. Create a fully configured `TypedCircuitExecutor`
|
|
14
14
|
|
|
15
|
+
You can also use `import_insign_regions()` to simply extract regions into the schematic's metadata without creating an executor.
|
|
16
|
+
|
|
15
17
|
## Basic Usage
|
|
16
18
|
|
|
17
19
|
### 1. Annotate Your Schematic with Signs
|
|
@@ -45,6 +47,25 @@ let result = executor.execute(
|
|
|
45
47
|
)?;
|
|
46
48
|
```
|
|
47
49
|
|
|
50
|
+
### 3. Direct Region Import (Advanced)
|
|
51
|
+
|
|
52
|
+
If you just want to populate the schematic's `definition_regions` from signs (e.g., for later use or serialization), use `import_insign_regions()`:
|
|
53
|
+
|
|
54
|
+
```rust
|
|
55
|
+
let mut schematic = /* load schematic */;
|
|
56
|
+
|
|
57
|
+
// Extracts all Insign regions and stores them in schematic.definition_regions
|
|
58
|
+
schematic.import_insign_regions()?;
|
|
59
|
+
|
|
60
|
+
// Now you can access them directly
|
|
61
|
+
if let Some(region) = schematic.definition_regions.get("io.counter") {
|
|
62
|
+
println!("Counter region volume: {}", region.volume());
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// When you save the schematic, these regions will be persisted!
|
|
66
|
+
let bytes = schematic.to_schematic()?;
|
|
67
|
+
```
|
|
68
|
+
|
|
48
69
|
## Insign Syntax for IO
|
|
49
70
|
|
|
50
71
|
### Region Definition
|
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
2. [Accessing Region Data](#accessing-region-data)
|
|
9
9
|
3. [Geometric Transformations](#geometric-transformations)
|
|
10
10
|
4. [Boolean Operations](#boolean-operations)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
11. [Serialization & Persistence](#serialization--persistence)
|
|
12
|
+
12. [Metadata](#metadata)
|
|
13
|
+
13. [Connectivity Analysis](#connectivity-analysis)
|
|
14
|
+
14. [Filtering with Schematics](#filtering-with-schematics)
|
|
15
|
+
15. [Sort Strategies for Circuit Execution](#sort-strategies-for-circuit-execution)
|
|
16
|
+
16. [Renderer Integration](#renderer-integration)
|
|
17
|
+
17. [Best Practices](#best-practices)
|
|
17
18
|
|
|
18
19
|
---
|
|
19
20
|
|
|
@@ -240,7 +241,49 @@ combined = region_a.union(region_b);
|
|
|
240
241
|
|
|
241
242
|
---
|
|
242
243
|
|
|
243
|
-
##
|
|
244
|
+
## Serialization & Persistence
|
|
245
|
+
|
|
246
|
+
Definition Regions can be serialized and embedded directly into schematic files. This allows you to define logical regions (like inputs, outputs, or documentation zones) that persist when the schematic is saved and loaded.
|
|
247
|
+
|
|
248
|
+
### Supported Formats
|
|
249
|
+
|
|
250
|
+
- **.litematic**: Stored in the `Metadata` compound tag.
|
|
251
|
+
- **.schem (V3)**: Stored in the `Metadata` compound tag.
|
|
252
|
+
- **.schem (V2)**: Legacy support via `Metadata` tag injection.
|
|
253
|
+
|
|
254
|
+
### How it Works
|
|
255
|
+
|
|
256
|
+
When you save a `UniversalSchematic`, its `definition_regions` map is serialized to JSON and stored in the schematic's metadata under the key `NucleationDefinitions`. When loading, this JSON is parsed back into full `DefinitionRegion` objects.
|
|
257
|
+
|
|
258
|
+
### Example
|
|
259
|
+
|
|
260
|
+
```rust
|
|
261
|
+
// Rust
|
|
262
|
+
let mut schematic = UniversalSchematic::new("MyCircuit".to_string());
|
|
263
|
+
|
|
264
|
+
// Create a region
|
|
265
|
+
let mut region = DefinitionRegion::new();
|
|
266
|
+
region.add_bounds((0, 0, 0), (5, 5, 5));
|
|
267
|
+
region.set_metadata("type", "input");
|
|
268
|
+
|
|
269
|
+
// Add to schematic
|
|
270
|
+
schematic.definition_regions.insert("MainInput".to_string(), region);
|
|
271
|
+
|
|
272
|
+
// Save to file (region data is embedded)
|
|
273
|
+
let data = schematic.to_schematic().unwrap();
|
|
274
|
+
std::fs::write("circuit.schem", data).unwrap();
|
|
275
|
+
|
|
276
|
+
// ... later ...
|
|
277
|
+
|
|
278
|
+
// Load from file (region data is restored)
|
|
279
|
+
let loaded = UniversalSchematic::from_schematic(&data).unwrap();
|
|
280
|
+
let loaded_region = loaded.definition_regions.get("MainInput").unwrap();
|
|
281
|
+
assert_eq!(loaded_region.get_metadata("type"), Some(&"input".to_string()));
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
This works seamlessly across all language bindings (Rust, JavaScript/WASM, Python).
|
|
285
|
+
|
|
286
|
+
---
|
|
244
287
|
|
|
245
288
|
Store arbitrary key-value data with regions:
|
|
246
289
|
|
|
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "nucleation"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.129"
|
|
8
8
|
description = "A high-performance Minecraft schematic parser and utility library"
|
|
9
9
|
authors = [{ name = "Nano", email = "nano@schem.at" }]
|
|
10
10
|
license = { text = "AGPL-3.0-only" }
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -146,6 +146,13 @@ fn create_metadata(schematic: &UniversalSchematic) -> NbtCompound {
|
|
|
146
146
|
|
|
147
147
|
metadata.insert("Software", NbtTag::String("UniversalSchematic".to_string()));
|
|
148
148
|
|
|
149
|
+
// Add NucleationDefinitions if present
|
|
150
|
+
if !schematic.definition_regions.is_empty() {
|
|
151
|
+
if let Ok(json) = serde_json::to_string(&schematic.definition_regions) {
|
|
152
|
+
metadata.insert("NucleationDefinitions", NbtTag::String(json));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
149
156
|
metadata
|
|
150
157
|
}
|
|
151
158
|
fn create_regions(schematic: &UniversalSchematic) -> NbtCompound {
|
|
@@ -303,6 +310,13 @@ fn parse_metadata(
|
|
|
303
310
|
|
|
304
311
|
// We don't need to parse EnclosingSize, TotalVolume, TotalBlocks as they will be recalculated
|
|
305
312
|
|
|
313
|
+
// Parse NucleationDefinitions
|
|
314
|
+
if let Ok(json) = metadata.get::<_, &str>("NucleationDefinitions") {
|
|
315
|
+
if let Ok(regions) = serde_json::from_str(json) {
|
|
316
|
+
schematic.definition_regions = regions;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
306
320
|
Ok(())
|
|
307
321
|
}
|
|
308
322
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
use std::collections::HashMap;
|
|
1
2
|
use std::fmt;
|
|
2
3
|
use std::io::{BufReader, Cursor, Read};
|
|
3
4
|
|
|
@@ -208,7 +209,15 @@ pub fn to_schematic_v3(
|
|
|
208
209
|
schematic_data.insert("Entities", NbtTag::List(entities));
|
|
209
210
|
|
|
210
211
|
// Add metadata
|
|
211
|
-
|
|
212
|
+
let mut metadata_tag = schematic.metadata.to_nbt();
|
|
213
|
+
if !schematic.definition_regions.is_empty() {
|
|
214
|
+
if let NbtTag::Compound(ref mut metadata_compound) = metadata_tag {
|
|
215
|
+
if let Ok(json) = serde_json::to_string(&schematic.definition_regions) {
|
|
216
|
+
metadata_compound.insert("NucleationDefinitions", NbtTag::String(json));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
schematic_data.insert("Metadata", metadata_tag);
|
|
212
221
|
|
|
213
222
|
// Create the proper root structure with "Schematic" tag
|
|
214
223
|
let mut root = NbtCompound::new();
|
|
@@ -281,7 +290,16 @@ pub fn to_schematic_v2(
|
|
|
281
290
|
schematic_data.insert("BlockEntities", NbtTag::List(block_entities));
|
|
282
291
|
schematic_data.insert("Entities", NbtTag::List(entities));
|
|
283
292
|
|
|
284
|
-
|
|
293
|
+
// Add metadata
|
|
294
|
+
let mut metadata_tag = schematic.metadata.to_nbt();
|
|
295
|
+
if !schematic.definition_regions.is_empty() {
|
|
296
|
+
if let NbtTag::Compound(ref mut metadata_compound) = metadata_tag {
|
|
297
|
+
if let Ok(json) = serde_json::to_string(&schematic.definition_regions) {
|
|
298
|
+
metadata_compound.insert("NucleationDefinitions", NbtTag::String(json));
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
schematic_data.insert("Metadata", metadata_tag);
|
|
285
303
|
|
|
286
304
|
// Create the proper root structure with "Schematic" tag
|
|
287
305
|
let mut root = NbtCompound::new();
|
|
@@ -412,7 +430,14 @@ pub fn from_schematic(data: &[u8]) -> Result<UniversalSchematic, Box<dyn std::er
|
|
|
412
430
|
let schem = root.get::<_, &NbtCompound>("Schematic").unwrap_or(&root);
|
|
413
431
|
let schem_version = schem.get::<_, i32>("Version")?;
|
|
414
432
|
|
|
433
|
+
let mut definition_regions = HashMap::new();
|
|
434
|
+
|
|
415
435
|
let name = if let Some(metadata) = schem.get::<_, &NbtCompound>("Metadata").ok() {
|
|
436
|
+
if let Ok(json) = metadata.get::<_, &str>("NucleationDefinitions") {
|
|
437
|
+
if let Ok(regions) = serde_json::from_str(json) {
|
|
438
|
+
definition_regions = regions;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
416
441
|
metadata.get::<_, &str>("Name").ok().map(|s| s.to_string())
|
|
417
442
|
} else {
|
|
418
443
|
None
|
|
@@ -422,6 +447,7 @@ pub fn from_schematic(data: &[u8]) -> Result<UniversalSchematic, Box<dyn std::er
|
|
|
422
447
|
let mc_version = schem.get::<_, i32>("DataVersion").ok();
|
|
423
448
|
|
|
424
449
|
let mut schematic = UniversalSchematic::new(name);
|
|
450
|
+
schematic.definition_regions = definition_regions;
|
|
425
451
|
schematic.metadata.mc_version = mc_version;
|
|
426
452
|
|
|
427
453
|
let width = schem.get::<_, i16>("Width")? as u32;
|
|
@@ -2,6 +2,7 @@ use crate::block_entity::BlockEntity;
|
|
|
2
2
|
use crate::block_position::BlockPosition;
|
|
3
3
|
use crate::bounding_box::BoundingBox;
|
|
4
4
|
use crate::chunk::Chunk;
|
|
5
|
+
use crate::definition_region::DefinitionRegion;
|
|
5
6
|
use crate::entity::Entity;
|
|
6
7
|
use crate::metadata::Metadata;
|
|
7
8
|
use crate::region::Region;
|
|
@@ -19,6 +20,8 @@ pub struct UniversalSchematic {
|
|
|
19
20
|
pub default_region: Region,
|
|
20
21
|
pub other_regions: HashMap<String, Region>,
|
|
21
22
|
pub default_region_name: String,
|
|
23
|
+
#[serde(default = "HashMap::new")]
|
|
24
|
+
pub definition_regions: HashMap<String, DefinitionRegion>,
|
|
22
25
|
#[serde(skip, default = "HashMap::new")]
|
|
23
26
|
block_state_cache: HashMap<String, BlockState>,
|
|
24
27
|
}
|
|
@@ -58,6 +61,7 @@ impl UniversalSchematic {
|
|
|
58
61
|
default_region: Region::new(default_region_name.clone(), (0, 0, 0), (1, 1, 1)),
|
|
59
62
|
other_regions: HashMap::new(),
|
|
60
63
|
default_region_name,
|
|
64
|
+
definition_regions: HashMap::new(),
|
|
61
65
|
block_state_cache: HashMap::new(),
|
|
62
66
|
}
|
|
63
67
|
}
|
|
@@ -641,7 +645,18 @@ impl UniversalSchematic {
|
|
|
641
645
|
pub fn to_nbt(&self) -> NbtCompound {
|
|
642
646
|
let mut root = NbtCompound::new();
|
|
643
647
|
|
|
644
|
-
|
|
648
|
+
let mut metadata_tag = self.metadata.to_nbt();
|
|
649
|
+
|
|
650
|
+
// Serialize definition regions to JSON string and store in Metadata
|
|
651
|
+
if !self.definition_regions.is_empty() {
|
|
652
|
+
if let NbtTag::Compound(ref mut metadata_compound) = metadata_tag {
|
|
653
|
+
if let Ok(json) = serde_json::to_string(&self.definition_regions) {
|
|
654
|
+
metadata_compound.insert("NucleationDefinitions", NbtTag::String(json));
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
root.insert("Metadata", metadata_tag);
|
|
645
660
|
|
|
646
661
|
// Create combined regions for NBT
|
|
647
662
|
let mut regions_tag = NbtCompound::new();
|
|
@@ -660,10 +675,19 @@ impl UniversalSchematic {
|
|
|
660
675
|
}
|
|
661
676
|
|
|
662
677
|
pub fn from_nbt(nbt: NbtCompound) -> Result<Self, String> {
|
|
663
|
-
let
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
678
|
+
let metadata_tag = nbt
|
|
679
|
+
.get::<_, &NbtCompound>("Metadata")
|
|
680
|
+
.map_err(|e| format!("Failed to get Metadata: {}", e))?;
|
|
681
|
+
|
|
682
|
+
let metadata = Metadata::from_nbt(metadata_tag)?;
|
|
683
|
+
|
|
684
|
+
// Try to parse definition regions from Metadata
|
|
685
|
+
let mut definition_regions = HashMap::new();
|
|
686
|
+
if let Ok(json) = metadata_tag.get::<_, &str>("NucleationDefinitions") {
|
|
687
|
+
if let Ok(regions) = serde_json::from_str(json) {
|
|
688
|
+
definition_regions = regions;
|
|
689
|
+
}
|
|
690
|
+
}
|
|
667
691
|
|
|
668
692
|
let regions_tag = nbt
|
|
669
693
|
.get::<_, &NbtCompound>("Regions")
|
|
@@ -695,10 +719,68 @@ impl UniversalSchematic {
|
|
|
695
719
|
default_region,
|
|
696
720
|
other_regions,
|
|
697
721
|
default_region_name,
|
|
722
|
+
definition_regions,
|
|
698
723
|
block_state_cache: HashMap::new(),
|
|
699
724
|
})
|
|
700
725
|
}
|
|
701
726
|
|
|
727
|
+
pub fn import_insign_regions(&mut self) -> Result<(), String> {
|
|
728
|
+
let json_value = crate::insign::compile_schematic_insign(self)
|
|
729
|
+
.map_err(|e| format!("Insign compilation error: {}", e))?;
|
|
730
|
+
|
|
731
|
+
if let Some(regions_map) = json_value.as_object() {
|
|
732
|
+
for (name, data) in regions_map {
|
|
733
|
+
let mut def_region = DefinitionRegion::new();
|
|
734
|
+
|
|
735
|
+
// Parse bounding boxes
|
|
736
|
+
if let Some(boxes) = data.get("bounding_boxes").and_then(|v| v.as_array()) {
|
|
737
|
+
for bbox_json in boxes {
|
|
738
|
+
if let Some(coords) = bbox_json.as_array() {
|
|
739
|
+
if coords.len() >= 2 {
|
|
740
|
+
let min_arr = coords[0].as_array();
|
|
741
|
+
let max_arr = coords[1].as_array();
|
|
742
|
+
|
|
743
|
+
if let (Some(min), Some(max)) = (min_arr, max_arr) {
|
|
744
|
+
if min.len() == 3 && max.len() == 3 {
|
|
745
|
+
let min_tuple = (
|
|
746
|
+
min[0].as_i64().unwrap_or(0) as i32,
|
|
747
|
+
min[1].as_i64().unwrap_or(0) as i32,
|
|
748
|
+
min[2].as_i64().unwrap_or(0) as i32,
|
|
749
|
+
);
|
|
750
|
+
let max_tuple = (
|
|
751
|
+
max[0].as_i64().unwrap_or(0) as i32,
|
|
752
|
+
max[1].as_i64().unwrap_or(0) as i32,
|
|
753
|
+
max[2].as_i64().unwrap_or(0) as i32,
|
|
754
|
+
);
|
|
755
|
+
def_region.add_bounds(min_tuple, max_tuple);
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
// Parse metadata
|
|
764
|
+
if let Some(meta) = data.get("metadata").and_then(|v| v.as_object()) {
|
|
765
|
+
for (key, value) in meta {
|
|
766
|
+
// Convert value to string
|
|
767
|
+
let val_str = match value {
|
|
768
|
+
serde_json::Value::String(s) => s.clone(),
|
|
769
|
+
serde_json::Value::Number(n) => n.to_string(),
|
|
770
|
+
serde_json::Value::Bool(b) => b.to_string(),
|
|
771
|
+
_ => value.to_string(),
|
|
772
|
+
};
|
|
773
|
+
def_region.set_metadata(key, val_str);
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
self.definition_regions.insert(name.clone(), def_region);
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
Ok(())
|
|
782
|
+
}
|
|
783
|
+
|
|
702
784
|
pub fn get_default_region_mut(&mut self) -> &mut Region {
|
|
703
785
|
&mut self.default_region
|
|
704
786
|
}
|
|
Binary file
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
use nucleation::block_entity::BlockEntity;
|
|
2
|
+
use nucleation::definition_region::DefinitionRegion;
|
|
3
|
+
use nucleation::utils::NbtValue;
|
|
4
|
+
use nucleation::{BlockState, UniversalSchematic};
|
|
5
|
+
use std::collections::HashMap;
|
|
6
|
+
|
|
7
|
+
#[test]
|
|
8
|
+
fn test_definition_regions_roundtrip_chain() {
|
|
9
|
+
// 1. Forge a Universal Schematic
|
|
10
|
+
let mut original = UniversalSchematic::new("Roundtrip Test".to_string());
|
|
11
|
+
|
|
12
|
+
// Add some blocks
|
|
13
|
+
original.set_block(0, 0, 0, BlockState::new("minecraft:stone".to_string()));
|
|
14
|
+
original.set_block(1, 1, 1, BlockState::new("minecraft:dirt".to_string()));
|
|
15
|
+
|
|
16
|
+
// Add Definition Regions
|
|
17
|
+
let mut def_region_a = DefinitionRegion::new();
|
|
18
|
+
def_region_a.add_bounds((0, 0, 0), (5, 5, 5));
|
|
19
|
+
def_region_a.set_metadata("type", "input");
|
|
20
|
+
def_region_a.set_metadata("signal", "redstone");
|
|
21
|
+
|
|
22
|
+
let mut def_region_b = DefinitionRegion::new();
|
|
23
|
+
def_region_b.add_bounds((10, 10, 10), (15, 15, 15));
|
|
24
|
+
def_region_b.set_metadata("type", "output");
|
|
25
|
+
|
|
26
|
+
original
|
|
27
|
+
.definition_regions
|
|
28
|
+
.insert("InputA".to_string(), def_region_a);
|
|
29
|
+
original
|
|
30
|
+
.definition_regions
|
|
31
|
+
.insert("OutputB".to_string(), def_region_b);
|
|
32
|
+
|
|
33
|
+
// 2. Roundtrip to .schem (V3)
|
|
34
|
+
let schem_data = original
|
|
35
|
+
.to_schematic()
|
|
36
|
+
.expect("Failed to serialize to .schem");
|
|
37
|
+
let from_schem =
|
|
38
|
+
UniversalSchematic::from_schematic(&schem_data).expect("Failed to deserialize from .schem");
|
|
39
|
+
|
|
40
|
+
// Verify consistency
|
|
41
|
+
verify_consistency(&original, &from_schem, "Original -> Schem");
|
|
42
|
+
|
|
43
|
+
// 3. Roundtrip from the loaded schematic to .litematic
|
|
44
|
+
let litematic_data = nucleation::litematic::to_litematic(&from_schem)
|
|
45
|
+
.expect("Failed to serialize to .litematic");
|
|
46
|
+
let from_litematic = nucleation::litematic::from_litematic(&litematic_data)
|
|
47
|
+
.expect("Failed to deserialize from .litematic");
|
|
48
|
+
|
|
49
|
+
// Verify consistency
|
|
50
|
+
verify_consistency(&from_schem, &from_litematic, "Schem -> Litematic");
|
|
51
|
+
|
|
52
|
+
// 4. Verify original vs final
|
|
53
|
+
verify_consistency(&original, &from_litematic, "Original -> Final");
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
#[test]
|
|
57
|
+
fn test_schematic_v2_definition_regions() {
|
|
58
|
+
let mut original = UniversalSchematic::new("V2 Test".to_string());
|
|
59
|
+
original.set_block(0, 0, 0, BlockState::new("minecraft:stone".to_string()));
|
|
60
|
+
|
|
61
|
+
let mut def_region = DefinitionRegion::new();
|
|
62
|
+
def_region.add_bounds((0, 0, 0), (1, 1, 1));
|
|
63
|
+
def_region.set_metadata("test", "v2");
|
|
64
|
+
original
|
|
65
|
+
.definition_regions
|
|
66
|
+
.insert("TestV2".to_string(), def_region);
|
|
67
|
+
|
|
68
|
+
// Explicitly use V2
|
|
69
|
+
let schem_data = nucleation::schematic::to_schematic_version(
|
|
70
|
+
&original,
|
|
71
|
+
nucleation::schematic::SchematicVersion::V2,
|
|
72
|
+
)
|
|
73
|
+
.expect("Failed to serialize to .schem v2");
|
|
74
|
+
|
|
75
|
+
let from_schem = UniversalSchematic::from_schematic(&schem_data)
|
|
76
|
+
.expect("Failed to deserialize from .schem v2");
|
|
77
|
+
|
|
78
|
+
verify_consistency(&original, &from_schem, "Original -> Schem V2");
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
#[test]
|
|
82
|
+
fn test_insign_integration() {
|
|
83
|
+
let mut schematic = UniversalSchematic::new("Insign Test".to_string());
|
|
84
|
+
|
|
85
|
+
// Create a sign that defines a region via Insign syntax
|
|
86
|
+
// @region_name=rc([min],[max])
|
|
87
|
+
// #region_name:key=value
|
|
88
|
+
let mut sign = BlockEntity::new("minecraft:sign".to_string(), (0, 0, 0));
|
|
89
|
+
sign.nbt.insert(
|
|
90
|
+
"Text1".to_string(),
|
|
91
|
+
NbtValue::String(r##"{"text":"@my_region"}"##.to_string()),
|
|
92
|
+
);
|
|
93
|
+
sign.nbt.insert(
|
|
94
|
+
"Text2".to_string(),
|
|
95
|
+
NbtValue::String(r##"{"text":"=rc([0,0,0],"}"##.to_string()),
|
|
96
|
+
);
|
|
97
|
+
sign.nbt.insert(
|
|
98
|
+
"Text3".to_string(),
|
|
99
|
+
NbtValue::String(r##"{"text":"[5,5,5])"}"##.to_string()),
|
|
100
|
+
);
|
|
101
|
+
sign.nbt.insert(
|
|
102
|
+
"Text4".to_string(),
|
|
103
|
+
NbtValue::String(r##"{"text":"#my_region:k=\"v\""}"##.to_string()),
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
schematic.add_block_entity(sign);
|
|
107
|
+
|
|
108
|
+
// Run import
|
|
109
|
+
schematic
|
|
110
|
+
.import_insign_regions()
|
|
111
|
+
.expect("Failed to import insign regions");
|
|
112
|
+
|
|
113
|
+
// Verify
|
|
114
|
+
assert!(schematic.definition_regions.contains_key("my_region"));
|
|
115
|
+
let region = schematic.definition_regions.get("my_region").unwrap();
|
|
116
|
+
|
|
117
|
+
// Check bounds (should be 0,0,0 to 5,5,5)
|
|
118
|
+
let bounds = region.get_bounds().unwrap();
|
|
119
|
+
assert_eq!(bounds.min, (0, 0, 0));
|
|
120
|
+
assert_eq!(bounds.max, (5, 5, 5));
|
|
121
|
+
|
|
122
|
+
// Check metadata
|
|
123
|
+
assert_eq!(region.get_metadata("k"), Some(&"v".to_string()));
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
fn verify_consistency(expected: &UniversalSchematic, actual: &UniversalSchematic, stage: &str) {
|
|
127
|
+
assert_eq!(
|
|
128
|
+
expected.definition_regions.len(),
|
|
129
|
+
actual.definition_regions.len(),
|
|
130
|
+
"{}: Region count mismatch",
|
|
131
|
+
stage
|
|
132
|
+
);
|
|
133
|
+
|
|
134
|
+
for (name, exp_region) in &expected.definition_regions {
|
|
135
|
+
assert!(
|
|
136
|
+
actual.definition_regions.contains_key(name),
|
|
137
|
+
"{}: Missing region '{}'",
|
|
138
|
+
stage,
|
|
139
|
+
name
|
|
140
|
+
);
|
|
141
|
+
let act_region = actual.definition_regions.get(name).unwrap();
|
|
142
|
+
|
|
143
|
+
// Compare metadata
|
|
144
|
+
assert_eq!(
|
|
145
|
+
exp_region.metadata, act_region.metadata,
|
|
146
|
+
"{}: Metadata mismatch for region '{}'",
|
|
147
|
+
stage, name
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
// Compare boxes count
|
|
151
|
+
assert_eq!(
|
|
152
|
+
exp_region.boxes.len(),
|
|
153
|
+
act_region.boxes.len(),
|
|
154
|
+
"{}: Box count mismatch for region '{}'",
|
|
155
|
+
stage,
|
|
156
|
+
name
|
|
157
|
+
);
|
|
158
|
+
|
|
159
|
+
// Compare total volume as a proxy for box geometry (exact box order might vary depending on impl details, though here it should be exact)
|
|
160
|
+
assert_eq!(
|
|
161
|
+
exp_region.volume(),
|
|
162
|
+
act_region.volume(),
|
|
163
|
+
"{}: Volume mismatch for region '{}'",
|
|
164
|
+
stage,
|
|
165
|
+
name
|
|
166
|
+
);
|
|
167
|
+
|
|
168
|
+
// Compare exact boxes (assuming order is preserved by serialization which it should be for Vec)
|
|
169
|
+
for (i, (exp_box, act_box)) in exp_region
|
|
170
|
+
.boxes
|
|
171
|
+
.iter()
|
|
172
|
+
.zip(act_region.boxes.iter())
|
|
173
|
+
.enumerate()
|
|
174
|
+
{
|
|
175
|
+
assert_eq!(
|
|
176
|
+
exp_box.min, act_box.min,
|
|
177
|
+
"{}: Box {} min mismatch for region '{}'",
|
|
178
|
+
stage, i, name
|
|
179
|
+
);
|
|
180
|
+
assert_eq!(
|
|
181
|
+
exp_box.max, act_box.max,
|
|
182
|
+
"{}: Box {} max mismatch for region '{}'",
|
|
183
|
+
stage, i, name
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|