openc3 6.9.1 → 6.10.0

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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/bin/openc3cli +289 -0
  3. data/data/config/command_modifiers.yaml +79 -0
  4. data/data/config/item_modifiers.yaml +5 -0
  5. data/data/config/parameter_modifiers.yaml +5 -0
  6. data/data/config/telemetry_modifiers.yaml +79 -0
  7. data/ext/openc3/ext/packet/packet.c +9 -0
  8. data/lib/openc3/accessors/accessor.rb +27 -3
  9. data/lib/openc3/accessors/binary_accessor.rb +21 -4
  10. data/lib/openc3/accessors/template_accessor.rb +3 -2
  11. data/lib/openc3/api/cmd_api.rb +7 -3
  12. data/lib/openc3/api/tlm_api.rb +17 -7
  13. data/lib/openc3/interfaces/protocols/fixed_protocol.rb +19 -13
  14. data/lib/openc3/interfaces.rb +6 -4
  15. data/lib/openc3/io/json_rpc.rb +6 -0
  16. data/lib/openc3/microservices/decom_microservice.rb +97 -17
  17. data/lib/openc3/microservices/interface_decom_common.rb +32 -0
  18. data/lib/openc3/microservices/interface_microservice.rb +12 -80
  19. data/lib/openc3/microservices/queue_microservice.rb +30 -7
  20. data/lib/openc3/migrations/20251022000000_remove_unique_id.rb +23 -0
  21. data/lib/openc3/models/plugin_model.rb +69 -6
  22. data/lib/openc3/models/queue_model.rb +32 -5
  23. data/lib/openc3/models/reaction_model.rb +26 -10
  24. data/lib/openc3/models/target_model.rb +85 -13
  25. data/lib/openc3/models/trigger_model.rb +1 -1
  26. data/lib/openc3/packets/commands.rb +33 -7
  27. data/lib/openc3/packets/packet.rb +75 -71
  28. data/lib/openc3/packets/packet_config.rb +78 -29
  29. data/lib/openc3/packets/packet_item.rb +11 -103
  30. data/lib/openc3/packets/parsers/packet_item_parser.rb +177 -34
  31. data/lib/openc3/packets/parsers/xtce_converter.rb +2 -2
  32. data/lib/openc3/packets/structure.rb +29 -21
  33. data/lib/openc3/packets/structure_item.rb +31 -19
  34. data/lib/openc3/packets/telemetry.rb +37 -11
  35. data/lib/openc3/script/script.rb +1 -1
  36. data/lib/openc3/script/suite_results.rb +2 -2
  37. data/lib/openc3/subpacketizers/subpacketizer.rb +18 -0
  38. data/lib/openc3/system/system.rb +3 -3
  39. data/lib/openc3/system/target.rb +3 -32
  40. data/lib/openc3/tools/table_manager/table_config.rb +9 -1
  41. data/lib/openc3/tools/table_manager/table_item_parser.rb +2 -2
  42. data/lib/openc3/top_level.rb +45 -19
  43. data/lib/openc3/topics/decom_interface_topic.rb +31 -0
  44. data/lib/openc3/utilities/authentication.rb +25 -6
  45. data/lib/openc3/utilities/cli_generator.rb +347 -3
  46. data/lib/openc3/utilities/env_helper.rb +10 -0
  47. data/lib/openc3/utilities/logger.rb +7 -11
  48. data/lib/openc3/version.rb +6 -6
  49. data/tasks/spec.rake +2 -1
  50. data/templates/command_validator/command_validator.py +49 -0
  51. data/templates/command_validator/command_validator.rb +54 -0
  52. data/templates/tool_angular/package.json +48 -2
  53. data/templates/tool_react/package.json +51 -1
  54. data/templates/tool_svelte/package.json +48 -1
  55. data/templates/tool_vue/package.json +36 -3
  56. data/templates/widget/package.json +28 -2
  57. metadata +8 -5
  58. data/templates/tool_vue/.browserslistrc +0 -16
  59. data/templates/widget/.browserslistrc +0 -16
@@ -1 +1,51 @@
1
- "@openc3/js-common": "6.9.1",
1
+ {
2
+ "scripts": {
3
+ "start": "webpack serve",
4
+ "start:standalone": "webpack serve --env standalone",
5
+ "build": "concurrently pnpm:build:*",
6
+ "build:webpack": "webpack --mode=production",
7
+ "analyze": "webpack --mode=production --env analyze",
8
+ "lint": "eslint src --ext js",
9
+ "format": "prettier --write .",
10
+ "check-format": "prettier --check .",
11
+ "test": "cross-env BABEL_ENV=test jest",
12
+ "watch-tests": "cross-env BABEL_ENV=test jest --watch",
13
+ "coverage": "cross-env BABEL_ENV=test jest --coverage"
14
+ },
15
+ "dependencies": {
16
+ "@emotion/react": "^11.13.3",
17
+ "@emotion/styled": "^11.11.0",
18
+ "@mui/material": "^6.1.1",
19
+ "@openc3/js-common": "6.10.0",
20
+ "react": "^18.2.0",
21
+ "react-dom": "^18.2.0",
22
+ "single-spa-react": "^5.1.4"
23
+ },
24
+ "devDependencies": {
25
+ "@babel/core": "^7.25.2",
26
+ "@babel/eslint-parser": "^7.25.1",
27
+ "@babel/plugin-transform-runtime": "^7.25.4",
28
+ "@babel/preset-env": "^7.25.4",
29
+ "@babel/preset-react": "^7.23.3",
30
+ "@babel/runtime": "^7.25.6",
31
+ "@testing-library/jest-dom": "^6.5.0",
32
+ "@testing-library/react": "^16.0.1",
33
+ "babel-jest": "^29.7.0",
34
+ "concurrently": "^9.0.1",
35
+ "cross-env": "^7.0.3",
36
+ "eslint": "^8.56.0",
37
+ "eslint-config-prettier": "^9.1.0",
38
+ "eslint-config-react-important-stuff": "^3.0.0",
39
+ "eslint-plugin-prettier": "^5.1.2",
40
+ "identity-obj-proxy": "^3.0.0",
41
+ "jest": "^29.7.0",
42
+ "jest-cli": "^29.7.0",
43
+ "prettier": "^3.1.1",
44
+ "pretty-quick": "^4.0.0",
45
+ "webpack": "^5.95.0",
46
+ "webpack-cli": "^5.1.4",
47
+ "webpack-config-single-spa-react": "^4.0.5",
48
+ "webpack-dev-server": "^5.1.0",
49
+ "webpack-merge": "^6.0.1"
50
+ }
51
+ }
@@ -1 +1,48 @@
1
- "@openc3/js-common": "6.9.1",
1
+ {
2
+ "scripts": {
3
+ "build": "concurrently pnpm:build:*",
4
+ "build:rollup": "rollup -c --bundleConfigAsCjs",
5
+ "start": "rollup -c -w",
6
+ "serve": "sirv dist -c",
7
+ "test": "jest",
8
+ "format": "prettier --write --plugin-search-dir=. .",
9
+ "check-format": "prettier --plugin-search-dir=. --check .",
10
+ "prepare": "pnpm run smui-theme",
11
+ "smui-theme": "smui-theme compile build/smui.css -i src/theme"
12
+ },
13
+ "dependencies": {
14
+ "@astrouxds/astro-web-components": "^7.24.0",
15
+ "@openc3/js-common": "6.10.0",
16
+ "@smui/button": "^7.0.0",
17
+ "@smui/common": "^7.0.0",
18
+ "@smui/card": "^7.0.0",
19
+ "@smui/list": "^7.0.0",
20
+ "@smui/menu": "^7.0.0",
21
+ "axios": "^1.7.7",
22
+ "single-spa-svelte": "^2.1.1",
23
+ "sirv-cli": "^2.0.2",
24
+ "svelte-portal": "^2.2.0"
25
+ },
26
+ "devDependencies": {
27
+ "@babel/core": "^7.25.2",
28
+ "@babel/preset-env": "^7.25.4",
29
+ "@rollup/plugin-commonjs": "^28.0.0",
30
+ "@rollup/plugin-node-resolve": "^15.3.0",
31
+ "@testing-library/jest-dom": "^6.5.0",
32
+ "@testing-library/svelte": "^5.2.1",
33
+ "babel-jest": "^29.7.0",
34
+ "concurrently": "^9.0.1",
35
+ "jest": "^29.7.0",
36
+ "postcss": "^8.4.47",
37
+ "prettier": "^3.1.1",
38
+ "prettier-plugin-svelte": "^3.2.7",
39
+ "rollup": "^4.22.4",
40
+ "rollup-plugin-livereload": "^2.0.5",
41
+ "rollup-plugin-postcss": "^4.0.2",
42
+ "rollup-plugin-svelte": "^7.1.6",
43
+ "rollup-plugin-terser": "^7.0.2",
44
+ "smui-theme": "^7.0.0",
45
+ "svelte": "^4.2.19",
46
+ "svelte-jester": "^5.0.0"
47
+ }
48
+ }
@@ -1,3 +1,36 @@
1
- "version": "6.9.1",
2
- "@openc3/js-common": "6.9.1",
3
- "@openc3/vue-common": "6.9.1",
1
+ {
2
+ "name": "<%= tool_name %>",
3
+ "version": "6.10.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "serve": "vite build --watch --mode dev-server",
8
+ "build": "vite build",
9
+ "lint": "eslint src",
10
+ "serve:standalone": "vite preview --mode standalone"
11
+ },
12
+ "dependencies": {
13
+ "@astrouxds/astro-web-components": "^7.24.0",
14
+ "@openc3/js-common": "6.10.0",
15
+ "@openc3/vue-common": "6.10.0",
16
+ "axios": "^1.7.7",
17
+ "date-fns": "^4.1.0",
18
+ "lodash": "^4.17.21",
19
+ "single-spa-vue": "^3.0.0",
20
+ "sprintf-js": "^1.1.3"
21
+ },
22
+ "devDependencies": {
23
+ "@vitejs/plugin-vue": "^5.1.5",
24
+ "@vue/eslint-config-prettier": "^9.0.0",
25
+ "@vue/test-utils": "^2.4.6",
26
+ "eslint": "^9.16.0",
27
+ "eslint-config-prettier": "^9.1.0",
28
+ "eslint-plugin-prettier": "^5.2.1",
29
+ "eslint-plugin-vue": "^9.30.0",
30
+ "prettier": "^3.3.3",
31
+ "sass": "^1.80.4",
32
+ "vite": "^5.4.11",
33
+ "vue": "^3.5.13",
34
+ "vue-eslint-parser": "^9.4.3"
35
+ }
36
+ }
@@ -1,2 +1,28 @@
1
- "version": "6.9.1",
2
- "@openc3/vue-common": "6.9.1",
1
+ {
2
+ "name": "<%= widget_name %>",
3
+ "version": "6.10.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "build": "vite build"
8
+ },
9
+ "dependencies": {
10
+ "@astrouxds/astro-web-components": "^7.24.0",
11
+ "@openc3/vue-common": "6.10.0",
12
+ "vuetify": "^3.7.1"
13
+ },
14
+ "devDependencies": {
15
+ "@vitejs/plugin-vue": "^5.1.5",
16
+ "@vue/eslint-config-prettier": "^9.0.0",
17
+ "eslint": "^9.16.0",
18
+ "eslint-config-prettier": "^9.1.0",
19
+ "eslint-plugin-prettier": "^5.2.1",
20
+ "eslint-plugin-vue": "^9.30.0",
21
+ "prettier": "^3.3.3",
22
+ "sass": "^1.80.4",
23
+ "vite": "^5.4.11",
24
+ "vue": "^3.5.13",
25
+ "vite-plugin-style-inject": "^0.0.1",
26
+ "vue-eslint-parser": "^9.4.3"
27
+ }
28
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openc3
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.9.1
4
+ version: 6.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Melton
@@ -254,14 +254,14 @@ dependencies:
254
254
  requirements:
255
255
  - - "~>"
256
256
  - !ruby/object:Gem::Version
257
- version: '2.3'
257
+ version: '3.0'
258
258
  type: :runtime
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
262
  - - "~>"
263
263
  - !ruby/object:Gem::Version
264
- version: '2.3'
264
+ version: '3.0'
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: uuidtools
267
267
  requirement: !ruby/object:Gem::Requirement
@@ -1080,6 +1080,7 @@ files:
1080
1080
  - lib/openc3/migrations/20241208080001_no_trigger_group.rb
1081
1081
  - lib/openc3/migrations/20250108060000_news_feed.rb
1082
1082
  - lib/openc3/migrations/20250402000000_periodic_only_default.rb
1083
+ - lib/openc3/migrations/20251022000000_remove_unique_id.rb
1083
1084
  - lib/openc3/models/activity_model.rb
1084
1085
  - lib/openc3/models/auth_model.rb
1085
1086
  - lib/openc3/models/cvt_model.rb
@@ -1179,6 +1180,7 @@ files:
1179
1180
  - lib/openc3/streams/tcpip_client_stream.rb
1180
1181
  - lib/openc3/streams/tcpip_socket_stream.rb
1181
1182
  - lib/openc3/streams/web_socket_client_stream.rb
1183
+ - lib/openc3/subpacketizers/subpacketizer.rb
1182
1184
  - lib/openc3/system.rb
1183
1185
  - lib/openc3/system/system.rb
1184
1186
  - lib/openc3/system/target.rb
@@ -1221,6 +1223,7 @@ files:
1221
1223
  - lib/openc3/utilities/cosmos_rails_formatter.rb
1222
1224
  - lib/openc3/utilities/crc.rb
1223
1225
  - lib/openc3/utilities/csv.rb
1226
+ - lib/openc3/utilities/env_helper.rb
1224
1227
  - lib/openc3/utilities/local_bucket.rb
1225
1228
  - lib/openc3/utilities/local_mode.rb
1226
1229
  - lib/openc3/utilities/logger.rb
@@ -1251,6 +1254,8 @@ files:
1251
1254
  - lib/openc3/win32/win32_main.rb
1252
1255
  - tasks/gemfile_stats.rake
1253
1256
  - tasks/spec.rake
1257
+ - templates/command_validator/command_validator.py
1258
+ - templates/command_validator/command_validator.rb
1254
1259
  - templates/conversion/conversion.py
1255
1260
  - templates/conversion/conversion.rb
1256
1261
  - templates/limits_response/response.py
@@ -1325,7 +1330,6 @@ files:
1325
1330
  - templates/tool_svelte/src/App.test.js
1326
1331
  - templates/tool_svelte/src/theme/_smui-theme.scss
1327
1332
  - templates/tool_svelte/src/tool_name.js
1328
- - templates/tool_vue/.browserslistrc
1329
1333
  - templates/tool_vue/.env.standalone
1330
1334
  - templates/tool_vue/.gitignore
1331
1335
  - templates/tool_vue/.nycrc
@@ -1338,7 +1342,6 @@ files:
1338
1342
  - templates/tool_vue/src/router.js
1339
1343
  - templates/tool_vue/src/tools/tool_name/tool_name.vue
1340
1344
  - templates/tool_vue/vite.config.js
1341
- - templates/widget/.browserslistrc
1342
1345
  - templates/widget/.nycrc
1343
1346
  - templates/widget/.prettierrc.cjs
1344
1347
  - templates/widget/LICENSE.txt
@@ -1,16 +0,0 @@
1
- > 0.2%
2
- # Chome 80 is circa Feb 2020
3
- # See https://en.wikipedia.org/wiki/Google_Chrome_version_history
4
- chrome >= 80
5
- # Edge 80 is circa Jan 2020
6
- # See https://docs.microsoft.com/en-us/deployedge/microsoft-edge-relnote-archive-stable-channel
7
- edge >= 80
8
- # Firefox ESR is extended support release
9
- firefox ESR
10
- # Safari 13.1 released Mar 24, 2020
11
- # See https://en.wikipedia.org/wiki/Safari_version_history
12
- safari >= 13.1
13
- not dead
14
- not ie 11
15
- # Opera mini doesn't have built-in support for ES6
16
- not op_mini all
@@ -1,16 +0,0 @@
1
- > 0.2%
2
- # Chome 80 is circa Feb 2020
3
- # See https://en.wikipedia.org/wiki/Google_Chrome_version_history
4
- chrome >= 80
5
- # Edge 80 is circa Jan 2020
6
- # See https://docs.microsoft.com/en-us/deployedge/microsoft-edge-relnote-archive-stable-channel
7
- edge >= 80
8
- # Firefox ESR is extended support release
9
- firefox ESR
10
- # Safari 13.1 released Mar 24, 2020
11
- # See https://en.wikipedia.org/wiki/Safari_version_history
12
- safari >= 13.1
13
- not dead
14
- not ie 11
15
- # Opera mini doesn't have built-in support for ES6
16
- not op_mini all