diff --git a/Gemfile.lock b/Gemfile.lock index 7fc6dfead0..3f11d71e26 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -77,7 +77,7 @@ GEM ast (2.4.2) base64 (0.2.0) bcrypt (3.1.20) - bigdecimal (3.1.6) + bigdecimal (3.1.7) builder (3.2.4) bunny (2.22.0) amq-protocol (~> 2.3, >= 2.3.1) @@ -123,7 +123,7 @@ GEM factory_bot_rails (6.4.3) factory_bot (~> 6.4) railties (>= 5.0.0) - faker (3.2.3) + faker (3.3.1) i18n (>= 1.8.11, < 2) faraday (1.10.3) faraday-em_http (~> 1.0) @@ -152,7 +152,7 @@ GEM faraday (~> 1.0) globalid (1.2.1) activesupport (>= 6.1) - google-apis-core (0.13.0) + google-apis-core (0.14.1) addressable (~> 2.5, >= 2.5.1) googleauth (~> 1.9) httpclient (>= 2.8.1, < 3.a) @@ -160,16 +160,16 @@ GEM representable (~> 3.0) retriable (>= 2.0, < 4.a) rexml - google-apis-iamcredentials_v1 (0.18.0) - google-apis-core (>= 0.12.0, < 2.a) - google-apis-storage_v1 (0.33.0) - google-apis-core (>= 0.12.0, < 2.a) - google-cloud-core (1.6.1) + google-apis-iamcredentials_v1 (0.20.0) + google-apis-core (>= 0.14.0, < 2.a) + google-apis-storage_v1 (0.37.0) + google-apis-core (>= 0.14.0, < 2.a) + google-cloud-core (1.7.0) google-cloud-env (>= 1.0, < 3.a) google-cloud-errors (~> 1.0) google-cloud-env (2.1.1) faraday (>= 1.0, < 3.a) - google-cloud-errors (1.3.1) + google-cloud-errors (1.4.0) google-cloud-storage (1.49.0) addressable (~> 2.8) digest-crc (~> 0.4) @@ -189,10 +189,10 @@ GEM hashdiff (1.1.0) hashie (4.1.0) httpclient (2.8.3) - i18n (1.14.1) + i18n (1.14.4) concurrent-ruby (~> 1.0) jsonapi-renderer (0.2.2) - jwt (2.8.0) + jwt (2.8.1) base64 kaminari (1.2.2) activesupport (>= 4.1.0) @@ -219,10 +219,10 @@ GEM net-imap net-pop net-smtp - marcel (1.0.2) + marcel (1.0.4) method_source (1.0.0) mini_mime (1.1.5) - minitest (5.22.2) + minitest (5.22.3) multi_json (1.15.0) multipart-post (2.4.0) mutations (0.9.1) @@ -234,10 +234,10 @@ GEM net-protocol net-protocol (0.2.2) timeout - net-smtp (0.4.0.1) + net-smtp (0.5.0) net-protocol - nio4r (2.7.0) - nokogiri (1.16.2-x86_64-linux) + nio4r (2.7.1) + nokogiri (1.16.3-x86_64-linux) racc (~> 1.4) orm_adapter (0.5.0) os (1.1.4) @@ -247,13 +247,13 @@ GEM passenger (6.0.20) rack rake (>= 0.8.1) - pg (1.5.5) + pg (1.5.6) pry (0.14.2) coderay (~> 1.1) method_source (~> 1.0) pry-rails (0.3.9) pry (>= 0.10.4) - public_suffix (5.0.4) + public_suffix (5.0.5) rabbitmq_http_api_client (2.2.0) addressable (~> 2.7) faraday (~> 1.3) @@ -261,10 +261,10 @@ GEM hashie (~> 4.1) multi_json (~> 1.15) racc (1.7.3) - rack (2.2.8.1) + rack (2.2.9) rack-attack (6.7.0) rack (>= 1.0, < 4) - rack-cors (2.0.1) + rack-cors (2.0.2) rack (>= 2.0.0) rack-test (2.1.0) rack (>= 1.3) @@ -301,7 +301,7 @@ GEM method_source rake (>= 12.2) thor (~> 1.0) - rake (13.1.0) + rake (13.2.1) rbtree (0.4.6) redis (4.8.1) representable (3.2.0) @@ -328,22 +328,22 @@ GEM rspec-mocks (3.13.0) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-rails (6.1.1) + rspec-rails (6.1.2) actionpack (>= 6.1) activesupport (>= 6.1) railties (>= 6.1) - rspec-core (~> 3.12) - rspec-expectations (~> 3.12) - rspec-mocks (~> 3.12) - rspec-support (~> 3.12) - rspec-support (3.13.0) + rspec-core (~> 3.13) + rspec-expectations (~> 3.13) + rspec-mocks (~> 3.13) + rspec-support (~> 3.13) + rspec-support (3.13.1) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) ruby2_keywords (0.0.5) - scenic (1.7.0) + scenic (1.8.0) activerecord (>= 4.0.0) railties (>= 4.0.0) - scout_apm (5.3.7) + scout_apm (5.3.8) parser secure_headers (6.5.0) set (1.1.0) @@ -371,7 +371,7 @@ GEM actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - thor (1.3.0) + thor (1.3.1) thwait (0.2.0) e2mmap timeout (0.4.1) @@ -384,7 +384,7 @@ GEM rails warden (1.2.9) rack (>= 2.0.9) - webmock (3.22.0) + webmock (3.23.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -443,4 +443,4 @@ RUBY VERSION ruby 3.1.4p223 BUNDLED WITH - 2.5.3 + 2.5.7 diff --git a/app/mutations/devices/seeders/abstract_express.rb b/app/mutations/devices/seeders/abstract_express.rb index e29230bda8..f37161273e 100644 --- a/app/mutations/devices/seeders/abstract_express.rb +++ b/app/mutations/devices/seeders/abstract_express.rb @@ -13,8 +13,6 @@ def sensors_tool_verification; end def settings_change_firmware_config_defaults device.firmware_config.update!(encoder_enabled_z: 0, - movement_keep_active_x: 0, - movement_keep_active_y: 0, movement_max_spd_y: 900, movement_min_spd_x: 300, movement_min_spd_y: 300, diff --git a/app/mutations/devices/seeders/abstract_genesis.rb b/app/mutations/devices/seeders/abstract_genesis.rb index db5f341377..ea22973469 100644 --- a/app/mutations/devices/seeders/abstract_genesis.rb +++ b/app/mutations/devices/seeders/abstract_genesis.rb @@ -22,9 +22,7 @@ def settings_device_name end def settings_change_firmware_config_defaults - device.firmware_config.update!(encoder_enabled_x: 1, - encoder_enabled_y: 1, - encoder_enabled_z: 1) + device.firmware_config.update!(movement_motor_current_x: 1646) end def tool_slots_slot_1 diff --git a/app/mutations/devices/seeders/genesis_one_seven.rb b/app/mutations/devices/seeders/genesis_one_seven.rb index 2502fd6760..e791e74740 100644 --- a/app/mutations/devices/seeders/genesis_one_seven.rb +++ b/app/mutations/devices/seeders/genesis_one_seven.rb @@ -7,9 +7,6 @@ def settings_firmware .update!(firmware_hardware: FbosConfig::FARMDUINO_K17) end - def settings_change_firmware_config_defaults - end - def peripherals_rotary_tool add_peripheral(2, ToolNames::ROTARY_TOOL) end diff --git a/app/mutations/devices/seeders/genesis_one_six.rb b/app/mutations/devices/seeders/genesis_one_six.rb index de32b75b0a..f33b0b319b 100644 --- a/app/mutations/devices/seeders/genesis_one_six.rb +++ b/app/mutations/devices/seeders/genesis_one_six.rb @@ -7,9 +7,6 @@ def settings_firmware .update!(firmware_hardware: FbosConfig::FARMDUINO_K16) end - def settings_change_firmware_config_defaults - end - def peripherals_rotary_tool add_peripheral(2, ToolNames::ROTARY_TOOL) end diff --git a/app/mutations/devices/seeders/genesis_xl_one_seven.rb b/app/mutations/devices/seeders/genesis_xl_one_seven.rb index 9ff9cdfb70..1627580b3b 100644 --- a/app/mutations/devices/seeders/genesis_xl_one_seven.rb +++ b/app/mutations/devices/seeders/genesis_xl_one_seven.rb @@ -7,9 +7,6 @@ def settings_firmware .update!(firmware_hardware: FbosConfig::FARMDUINO_K17) end - def settings_change_firmware_config_defaults - end - def settings_device_name device.update!(name: Names::GENESIS_XL) end diff --git a/app/mutations/devices/seeders/genesis_xl_one_six.rb b/app/mutations/devices/seeders/genesis_xl_one_six.rb index d2510f3e46..8376a22d49 100644 --- a/app/mutations/devices/seeders/genesis_xl_one_six.rb +++ b/app/mutations/devices/seeders/genesis_xl_one_six.rb @@ -7,9 +7,6 @@ def settings_firmware .update!(firmware_hardware: FbosConfig::FARMDUINO_K16) end - def settings_change_firmware_config_defaults - end - def settings_device_name device.update!(name: Names::GENESIS_XL) end diff --git a/db/migrate/20240405171128_change_motor_keep_on_defaults.rb b/db/migrate/20240405171128_change_motor_keep_on_defaults.rb new file mode 100644 index 0000000000..76a8fef8e4 --- /dev/null +++ b/db/migrate/20240405171128_change_motor_keep_on_defaults.rb @@ -0,0 +1,6 @@ +class ChangeMotorKeepOnDefaults < ActiveRecord::Migration[6.1] + def change + change_column_default(:firmware_configs, :movement_keep_active_x, from: 1, to: 0) + change_column_default(:firmware_configs, :movement_keep_active_y, from: 1, to: 0) + end +end diff --git a/db/structure.sql b/db/structure.sql index 0d2bba5b66..b704281f4e 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -655,8 +655,8 @@ CREATE TABLE public.firmware_configs ( movement_invert_motor_x integer DEFAULT 0, movement_invert_motor_y integer DEFAULT 0, movement_invert_motor_z integer DEFAULT 0, - movement_keep_active_x integer DEFAULT 1, - movement_keep_active_y integer DEFAULT 1, + movement_keep_active_x integer DEFAULT 0, + movement_keep_active_y integer DEFAULT 0, movement_keep_active_z integer DEFAULT 1, movement_max_spd_x integer DEFAULT 400, movement_max_spd_y integer DEFAULT 400, @@ -3986,6 +3986,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20230808192946'), ('20240118204046'), ('20240202171922'), -('20240207234421'); +('20240207234421'), +('20240405171128'); diff --git a/frontend/__test_support__/fake_state/resources.ts b/frontend/__test_support__/fake_state/resources.ts index c1e5e55642..6e031ce6dd 100644 --- a/frontend/__test_support__/fake_state/resources.ts +++ b/frontend/__test_support__/fake_state/resources.ts @@ -400,8 +400,8 @@ export function fakeFirmwareConfig(): TaggedFirmwareConfig { device_id: idCounter++, created_at: "", updated_at: "", - encoder_enabled_x: 0, - encoder_enabled_y: 0, + encoder_enabled_x: 1, + encoder_enabled_y: 1, encoder_enabled_z: 0, encoder_invert_x: 0, encoder_invert_y: 0, diff --git a/frontend/__test_support__/resource_index_builder.ts b/frontend/__test_support__/resource_index_builder.ts index 09253a4df8..28e54d98b2 100644 --- a/frontend/__test_support__/resource_index_builder.ts +++ b/frontend/__test_support__/resource_index_builder.ts @@ -23,6 +23,9 @@ const DEFAULT_DEVICE_BODY: TaggedDevice["body"] = { lng: undefined, indoor: false, rpi: "3", + max_log_age_in_days: 0, + max_sequence_count: 0, + max_sequence_length: 0, }; export function fakeDevice(body: Partial = {}): diff --git a/frontend/demo/demo_iframe.tsx b/frontend/demo/demo_iframe.tsx index 21f5009809..e11e362391 100644 --- a/frontend/demo/demo_iframe.tsx +++ b/frontend/demo/demo_iframe.tsx @@ -1,4 +1,4 @@ -import { ClientSubscribeCallback, connect, IConnackPacket } from "mqtt"; +import mqtt, { ClientSubscribeCallback, IConnackPacket } from "mqtt"; import React from "react"; import { uuid } from "farmbot"; import axios from "axios"; @@ -37,7 +37,7 @@ export class DemoIframe extends React.Component<{}, State> { setError = (error?: Error) => this.setState({ error }); connectMqtt = (): Promise => { - const client = connect(globalConfig.MQTT_WS, WS_CONFIG); + const client = mqtt.connect(globalConfig.MQTT_WS, WS_CONFIG); return new Promise(resolve => { client.on("message", this.handleMessage); client.subscribe(MQTT_CHAN, this.setError as ClientSubscribeCallback); diff --git a/frontend/logs/components/logs_table.tsx b/frontend/logs/components/logs_table.tsx index db767917ee..70b6bb481a 100644 --- a/frontend/logs/components/logs_table.tsx +++ b/frontend/logs/components/logs_table.tsx @@ -13,7 +13,6 @@ import { semverCompare, SemverResult, formatTime } from "../../util"; import { destroy } from "../../api/crud"; import { Position } from "@blueprintjs/core"; import { LogsFilterMenu } from "./filter_menu"; -import { DeviceAccountSettings } from "farmbot/dist/resources/api_resources"; interface LogsRowProps { tlog: TaggedLog; @@ -124,8 +123,7 @@ export const LogsTable = (props: LogsTableProps) => {

{t("Logs older than {{ days }} days are automatically deleted", { - days: props.device.body["max_log_age_in_days" as keyof DeviceAccountSettings - ] as number || 60, + days: props.device.body.max_log_age_in_days || 60, })}

; diff --git a/frontend/photos/image_workspace/farmbot_picker.tsx b/frontend/photos/image_workspace/farmbot_picker.tsx index 608886b706..be2f21d38e 100644 --- a/frontend/photos/image_workspace/farmbot_picker.tsx +++ b/frontend/photos/image_workspace/farmbot_picker.tsx @@ -107,7 +107,7 @@ export class FarmbotColorPicker extends React.Component
{getHueBoxes(this.props.h, !!this.props.invertHue) .map((box, i) =>
)} @@ -116,7 +116,7 @@ export class FarmbotColorPicker extends React.Component
diff --git a/frontend/sequences/__tests__/actions_test.ts b/frontend/sequences/__tests__/actions_test.ts index 1d7160f239..27bfca4e16 100644 --- a/frontend/sequences/__tests__/actions_test.ts +++ b/frontend/sequences/__tests__/actions_test.ts @@ -39,7 +39,6 @@ import { Path } from "../../internal_urls"; import { buildResourceIndex, fakeDevice, } from "../../__test_support__/resource_index_builder"; -import { DeviceAccountSettings } from "farmbot/dist/resources/api_resources"; describe("copySequence()", () => { it("copies sequence", () => { @@ -65,8 +64,7 @@ describe("copySequence()", () => { const state = fakeState(); const sequence = fakeSequence(); const device = fakeDevice(); - device.body[ - "max_sequence_count" as keyof DeviceAccountSettings] = 1 as never; + device.body.max_sequence_count = 1; state.resources = buildResourceIndex([sequence, device]); copySequence(fakeSequence())(jest.fn(), () => state); expect(push).not.toHaveBeenCalled(); @@ -145,8 +143,7 @@ describe("pushStep()", () => { it("exceeds limit", () => { const sequence = fakeSequence({ body: [{ kind: "sync", args: {} }] }); const device = fakeDevice(); - device.body[ - "max_sequence_length" as keyof DeviceAccountSettings] = 1 as never; + device.body.max_sequence_length = 1; mockState.resources = buildResourceIndex([sequence, device]); pushStep(NEW_STEP, jest.fn(), sequence); expect(overwrite).not.toHaveBeenCalled(); diff --git a/frontend/sequences/actions.ts b/frontend/sequences/actions.ts index 257512225f..602101d419 100644 --- a/frontend/sequences/actions.ts +++ b/frontend/sequences/actions.ts @@ -17,13 +17,11 @@ import { GetState } from "../redux/interfaces"; import { selectAllSequences } from "../resources/selectors_by_kind"; import { ResourceIndex } from "../resources/interfaces"; import { getDeviceAccountSettings } from "../resources/selectors"; -import { DeviceAccountSettings } from "farmbot/dist/resources/api_resources"; import { store } from "../redux/store"; export const sequenceLengthExceeded = (sequence: TaggedSequence): boolean => { const device = getDeviceAccountSettings(store.getState().resources.index); - const max = device.body[ - "max_sequence_length" as keyof DeviceAccountSettings] as number || 30; + const max = device.body.max_sequence_length || 30; if ((sequence.body.body || []).length >= max) { error(t("The maximum number of steps allowed in one sequence is {{ num }}.", { num: max }) + " " @@ -55,8 +53,7 @@ export function editCurrentSequence(dispatch: Function, seq: TaggedSequence, export const sequenceLimitExceeded = (ri: ResourceIndex): boolean => { const sequences = selectAllSequences(ri); const device = getDeviceAccountSettings(ri); - const max = device.body[ - "max_sequence_count" as keyof DeviceAccountSettings] as number || 75; + const max = device.body.max_sequence_count || 75; if (sequences.length >= max) { error(t("The maximum number of sequences allowed is {{ num }}.", { num: max })); return true; diff --git a/frontend/settings/hardware_settings/__tests__/export_menu_test.tsx b/frontend/settings/hardware_settings/__tests__/export_menu_test.tsx index d824b916d1..72d97ceca6 100644 --- a/frontend/settings/hardware_settings/__tests__/export_menu_test.tsx +++ b/frontend/settings/hardware_settings/__tests__/export_menu_test.tsx @@ -3,7 +3,7 @@ jest.mock("../../../api/crud", () => ({ save: jest.fn(), })); -import * as React from "react"; +import React from "react"; import { mount } from "enzyme"; import { FwParamExportMenu, condenseFwConfig, uncondenseFwConfig, importParameters, @@ -24,7 +24,7 @@ describe("", () => { const config = fakeFirmwareConfig().body; const wrapper = mount(); expect(wrapper.text()).toContain( - "\"encoder_enabled\": {\"x\": 0, \"y\": 0, \"z\": 0 },"); + "\"encoder_enabled\": {\"x\": 1, \"y\": 1, \"z\": 0 },"); expect(wrapper.text()).toContain( "\"pin_guard_1\": {\"active_state\": 1, " + "\"pin_nr\": 0, \"time_out\": 60 },"); @@ -37,7 +37,7 @@ describe("condenseFwConfig()", () => { it("condenses config", () => { const config = fakeFirmwareConfig().body; expect(condenseFwConfig(config)).toEqual(expect.objectContaining({ - encoder_enabled: { x: 0, y: 0, z: 0 } + encoder_enabled: { x: 1, y: 1, z: 0 } })); expect(condenseFwConfig(config)).toEqual(expect.objectContaining({ pin_guard_1: { active_state: 1, pin_nr: 0, time_out: 60 } diff --git a/frontend/settings/hardware_settings/default_values.ts b/frontend/settings/hardware_settings/default_values.ts index 0b1532312f..80c7527731 100644 --- a/frontend/settings/hardware_settings/default_values.ts +++ b/frontend/settings/hardware_settings/default_values.ts @@ -60,8 +60,8 @@ const DEFAULT_FIRMWARE_CONFIG_VALUES: Record = movement_invert_motor_x: 0, movement_invert_motor_y: 0, movement_invert_motor_z: 0, - movement_keep_active_x: 1, - movement_keep_active_y: 1, + movement_keep_active_x: 0, + movement_keep_active_y: 0, movement_keep_active_z: 1, movement_max_spd_x: 400, movement_max_spd_y: 400, @@ -129,8 +129,6 @@ const DEFAULT_FIRMWARE_CONFIG_VALUES: Record = const DEFAULT_EXPRESS_FIRMWARE_CONFIG_VALUES = cloneDeep(DEFAULT_FIRMWARE_CONFIG_VALUES); DEFAULT_EXPRESS_FIRMWARE_CONFIG_VALUES.encoder_enabled_z = 0; -DEFAULT_EXPRESS_FIRMWARE_CONFIG_VALUES.movement_keep_active_x = 0; -DEFAULT_EXPRESS_FIRMWARE_CONFIG_VALUES.movement_keep_active_y = 0; DEFAULT_EXPRESS_FIRMWARE_CONFIG_VALUES.movement_max_spd_y = 900; DEFAULT_EXPRESS_FIRMWARE_CONFIG_VALUES.movement_min_spd_x = 300; DEFAULT_EXPRESS_FIRMWARE_CONFIG_VALUES.movement_min_spd_y = 300; @@ -144,7 +142,9 @@ DEFAULT_EXPRESS_FIRMWARE_CONFIG_VALUES.encoder_missed_steps_decay_x = 100; DEFAULT_EXPRESS_FIRMWARE_CONFIG_VALUES.encoder_missed_steps_decay_y = 100; DEFAULT_EXPRESS_FIRMWARE_CONFIG_VALUES.encoder_missed_steps_decay_z = 100; -const DEFAULT_GENESIS_FIRMWARE_CONFIG_VALUES = DEFAULT_FIRMWARE_CONFIG_VALUES; +const DEFAULT_GENESIS_FIRMWARE_CONFIG_VALUES = + cloneDeep(DEFAULT_FIRMWARE_CONFIG_VALUES); +DEFAULT_GENESIS_FIRMWARE_CONFIG_VALUES.movement_motor_current_x = 1646; export const getDefaultFwConfigValue = (firmwareHardware: FirmwareHardware | undefined) => diff --git a/frontend/settings/pin_bindings/model.tsx b/frontend/settings/pin_bindings/model.tsx index e38a40b143..be05f20b19 100644 --- a/frontend/settings/pin_bindings/model.tsx +++ b/frontend/settings/pin_bindings/model.tsx @@ -1,6 +1,7 @@ /* eslint-disable react/no-unknown-property */ /* eslint-disable no-null/no-null */ import React, { useRef } from "react"; +import * as THREE from "three"; import { Cylinder, Html, PerspectiveCamera, useGLTF, } from "@react-three/drei"; diff --git a/frontend/terminal/terminal_session.ts b/frontend/terminal/terminal_session.ts index 5e60894f10..199a13198b 100644 --- a/frontend/terminal/terminal_session.ts +++ b/frontend/terminal/terminal_session.ts @@ -1,5 +1,5 @@ import { times } from "lodash"; -import { connect, MqttClient } from "mqtt"; +import mqtt, { MqttClient } from "mqtt"; import { Terminal } from "xterm"; type TerminalLike = Pick; @@ -17,7 +17,7 @@ export class TerminalSession { constructor(url: string, public username: string, password: string, private terminal: TerminalLike) { - this.client = connect(url, { username, password }); + this.client = mqtt.connect(url, { username, password }); } get rx() { return `bot/${this.username}/terminal_output`; } diff --git a/frontend/try_farmbot/__tests__/try_farmbot_test.tsx b/frontend/try_farmbot/__tests__/try_farmbot_test.tsx index 71bb8652b3..095a8b0caf 100644 --- a/frontend/try_farmbot/__tests__/try_farmbot_test.tsx +++ b/frontend/try_farmbot/__tests__/try_farmbot_test.tsx @@ -1,3 +1,10 @@ +jest.mock("mqtt", () => ({ + connect: () => ({ + on: jest.fn(), + subscribe: jest.fn(), + }) +})); + import React from "react"; import { shallow } from "enzyme"; import { DEMO_LOADING, TryFarmbot } from "../try_farmbot"; diff --git a/lib/tasks/fe.rake b/lib/tasks/fe.rake index 83fbf458f1..e8752ce4e2 100644 --- a/lib/tasks/fe.rake +++ b/lib/tasks/fe.rake @@ -12,11 +12,6 @@ EXCLUDE = [ reason: "dependency needs", version: "1.4.1", }, - { - packages: ["mqtt"], - reason: "import error", - version: "5.3.0", - }, ] # Load package.json as JSON. diff --git a/package.json b/package.json index 90ccf195ca..64c4faf917 100644 --- a/package.json +++ b/package.json @@ -33,36 +33,36 @@ "@parcel/watcher": "2.1.0" }, "dependencies": { - "@blueprintjs/core": "5.9.1", - "@blueprintjs/select": "5.1.1", + "@blueprintjs/core": "5.10.1", + "@blueprintjs/select": "5.1.3", "@monaco-editor/react": "4.6.0", - "@parcel/transformer-sass": "2.11.0", - "@parcel/transformer-typescript-tsc": "2.11.0", - "@react-three/drei": "9.99.0", - "@react-three/fiber": "8.15.16", - "@types/lodash": "4.14.202", + "@parcel/transformer-sass": "2.12.0", + "@parcel/transformer-typescript-tsc": "2.12.0", + "@react-three/drei": "9.105.1", + "@react-three/fiber": "8.16.1", + "@types/lodash": "4.17.0", "@types/markdown-it": "13.0.7", - "@types/node": "20.11.19", + "@types/node": "20.12.4", "@types/promise-timeout": "1.3.3", - "@types/react": "18.2.57", - "@types/react-color": "3.0.11", - "@types/react-dom": "18.2.19", - "@types/three": "0.161.2", + "@types/react": "18.2.74", + "@types/react-color": "3.0.12", + "@types/react-dom": "18.2.24", + "@types/three": "0.163.0", "@types/ws": "8.5.10", - "axios": "1.6.7", + "axios": "1.6.8", "bowser": "2.11.0", "browser-speech": "1.1.1", "events": "3.3.0", - "farmbot": "15.8.7", - "i18next": "23.10.0", + "farmbot": "15.8.8", + "i18next": "23.10.1", "lodash": "4.17.21", - "markdown-it": "14.0.0", + "markdown-it": "14.1.0", "markdown-it-emoji": "3.0.0", "moment": "2.30.1", - "monaco-editor": "0.46.0", - "mqtt": "5.1.4", - "npm": "10.4.0", - "parcel": "2.11.0", + "monaco-editor": "0.47.0", + "mqtt": "5.5.0", + "npm": "10.5.1", + "parcel": "2.12.0", "process": "0.11.10", "promise-timeout": "1.3.0", "punycode": "1.4.1", @@ -75,26 +75,26 @@ "redux-immutable-state-invariant": "2.1.0", "redux-thunk": "3.1.0", "takeme": "0.12.0", - "three": "0.161.0", - "typescript": "5.3.3", + "three": "0.163.0", + "typescript": "5.4.4", "url": "0.11.3", "xterm": "5.3.0" }, "devDependencies": { "@types/enzyme": "3.10.12", "@types/jest": "29.5.12", - "@types/readable-stream": "4.0.10", - "@typescript-eslint/eslint-plugin": "7.0.2", - "@typescript-eslint/parser": "7.0.2", + "@types/readable-stream": "4.0.11", + "@typescript-eslint/eslint-plugin": "7.5.0", + "@typescript-eslint/parser": "7.5.0", "@wojtekmaj/enzyme-adapter-react-17": "0.8.0", "enzyme": "3.11.0", - "eslint": "8.56.0", + "eslint": "8.57.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-import": "2.29.1", "eslint-plugin-jest": "27.9.0", "eslint-plugin-no-null": "1.0.2", "eslint-plugin-promise": "6.1.1", - "eslint-plugin-react": "7.33.2", + "eslint-plugin-react": "7.34.1", "eslint-plugin-react-hooks": "4.6.0", "jest": "29.7.0", "jest-canvas-mock": "2.5.2", @@ -107,7 +107,7 @@ "raf": "3.4.1", "react-addons-test-utils": "15.6.2", "react-test-renderer": "18.2.0", - "sass": "1.71.1", + "sass": "1.74.1", "sass-lint": "1.13.1", "ts-jest": "29.1.2", "tslint": "6.1.3" diff --git a/spec/controllers/api/configs/firmware_configs_controller_spec.rb b/spec/controllers/api/configs/firmware_configs_controller_spec.rb index c26b419689..f175a71639 100644 --- a/spec/controllers/api/configs/firmware_configs_controller_spec.rb +++ b/spec/controllers/api/configs/firmware_configs_controller_spec.rb @@ -55,8 +55,8 @@ movement_invert_motor_x: 0, movement_invert_motor_y: 0, movement_invert_motor_z: 0, - movement_keep_active_x: 1, - movement_keep_active_y: 1, + movement_keep_active_x: 0, + movement_keep_active_y: 0, movement_keep_active_z: 1, movement_max_spd_x: 400, movement_max_spd_y: 400, diff --git a/spec/controllers/api/devices/devices_controller_seed_spec.rb b/spec/controllers/api/devices/devices_controller_seed_spec.rb index 22b32b30a2..90914b07d5 100644 --- a/spec/controllers/api/devices/devices_controller_seed_spec.rb +++ b/spec/controllers/api/devices/devices_controller_seed_spec.rb @@ -68,9 +68,7 @@ def settings_hide_sensors?(device) def settings_change_firmware_config_defaults?(device) c = device.firmware_config - return c.encoder_enabled_x != 0 && - c.encoder_enabled_y != 0 && - c.encoder_enabled_z != 0 + return c.movement_motor_current_x == 1646 end def settings_soil_height?(device)