openc3 5.7.0 → 5.8.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.

Potentially problematic release.


This version of openc3 might be problematic. Click here for more details.

Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/data/config/widgets.yaml +6 -6
  4. data/lib/openc3/api/cmd_api.rb +29 -0
  5. data/lib/openc3/api/limits_api.rb +31 -1
  6. data/lib/openc3/api/tlm_api.rb +5 -7
  7. data/lib/openc3/core_ext/faraday.rb +8 -0
  8. data/lib/openc3/core_ext.rb +1 -1
  9. data/lib/openc3/io/json_api_object.rb +24 -12
  10. data/lib/openc3/io/json_drb_object.rb +3 -7
  11. data/lib/openc3/logs/buffered_packet_log_writer.rb +20 -12
  12. data/lib/openc3/logs/log_writer.rb +12 -7
  13. data/lib/openc3/logs/packet_log_writer.rb +9 -6
  14. data/lib/openc3/microservices/decom_microservice.rb +4 -0
  15. data/lib/openc3/microservices/interface_decom_common.rb +32 -0
  16. data/lib/openc3/microservices/reducer_microservice.rb +15 -11
  17. data/lib/openc3/models/cvt_model.rb +10 -5
  18. data/lib/openc3/models/gem_model.rb +0 -1
  19. data/lib/openc3/models/scope_model.rb +0 -3
  20. data/lib/openc3/models/target_model.rb +7 -7
  21. data/lib/openc3/models/timeline_model.rb +0 -1
  22. data/lib/openc3/models/trigger_group_model.rb +0 -1
  23. data/lib/openc3/script/metadata.rb +7 -7
  24. data/lib/openc3/script/screen.rb +5 -5
  25. data/lib/openc3/script/script_runner.rb +17 -17
  26. data/lib/openc3/script/storage.rb +2 -2
  27. data/lib/openc3/topics/config_topic.rb +1 -6
  28. data/lib/openc3/topics/decom_interface_topic.rb +62 -0
  29. data/lib/openc3/topics/telemetry_decom_topic.rb +0 -9
  30. data/lib/openc3/topics/topic.rb +4 -11
  31. data/lib/openc3/utilities/authentication.rb +4 -4
  32. data/lib/openc3/utilities/bucket_require.rb +65 -0
  33. data/lib/openc3/utilities/bucket_utilities.rb +38 -5
  34. data/lib/openc3/utilities/open_telemetry.rb +4 -4
  35. data/lib/openc3/utilities/process_manager.rb +4 -2
  36. data/lib/openc3/utilities/ruby_lex_utils.rb +62 -36
  37. data/lib/openc3/utilities/store_autoload.rb +7 -28
  38. data/lib/openc3/version.rb +5 -5
  39. data/lib/openc3.rb +1 -1
  40. data/templates/widget/package.json +7 -7
  41. data/templates/widget/yarn.lock +46 -47
  42. metadata +55 -38
@@ -92,13 +92,15 @@ module OpenC3
92
92
  @processes.each do |process|
93
93
  # Check if the process is still alive
94
94
  if !process.alive?
95
+ output = process.extract_output
96
+ process.status.output = output
95
97
  if process.exit_code != 0
96
98
  process.status.state = "Crashed"
99
+ elsif output.include?('"severity":"ERROR"') || output.include?('"severity":"WARN"')
100
+ process.status.state = "Warning"
97
101
  else
98
102
  process.status.state = "Complete"
99
103
  end
100
- output = process.extract_output
101
- process.status.output = output
102
104
  process.hard_stop
103
105
  processes_to_delete << process
104
106
  elsif process.expires_at < current_time
@@ -20,6 +20,7 @@
20
20
  # This file may also be used under the terms of a commercial license
21
21
  # if purchased from OpenC3, Inc.
22
22
 
23
+ require 'irb'
23
24
  require 'irb/ruby-lex'
24
25
  require 'stringio'
25
26
 
@@ -40,6 +41,14 @@ class RubyLex
40
41
  @prompt = nil
41
42
  initialize_input()
42
43
  end
44
+
45
+ major, minor, _ = RUBY_VERSION.split('.')
46
+ if major == '3' and minor.to_i < 2
47
+ alias orig_lex lex
48
+ def lex(context)
49
+ orig_lex()
50
+ end
51
+ end
43
52
  end
44
53
  $VERBOSE = old_verbose
45
54
 
@@ -80,18 +89,21 @@ class RubyLexUtils
80
89
 
81
90
  # Create a new RubyLex and StringIO to hold the text to operate on
82
91
  def initialize
92
+ # Taken from https://github.com/ruby/ruby/blob/master/test/irb/test_ruby_lex.rb#L827
93
+ IRB.init_config(nil)
94
+ IRB.conf[:VERBOSE] = false
95
+ # IRB.setup doesn't work because the command line options are passed
96
+ # and it doesn't recognize --warnings when we run rspec (see spec.rake)
97
+ # IRB.setup(__FILE__)
98
+ workspace = IRB::WorkSpace.new(binding)
99
+ @context = IRB::Context.new(nil, workspace)
100
+
83
101
  @lex = RubyLex.new
84
102
  @lex_io = StringIO.new('')
85
103
  end
86
104
 
87
- if RUBY_VERSION >= "3.0"
88
- def ripper_lex_without_warning(code)
89
- RubyLex.ripper_lex_without_warning(code)
90
- end
91
- else
92
- def ripper_lex_without_warning(code)
93
- @lex.ripper_lex_without_warning(code)
94
- end
105
+ def ripper_lex_without_warning(code)
106
+ RubyLex.ripper_lex_without_warning(code)
95
107
  end
96
108
 
97
109
  # @param text [String]
@@ -99,7 +111,7 @@ class RubyLexUtils
99
111
  def contains_begin?(text)
100
112
  @lex.reinitialize
101
113
  @lex_io.string = text
102
- @lex.set_input(@lex_io)
114
+ @lex.set_input(@lex_io, context: @context)
103
115
  tokens = ripper_lex_without_warning(text)
104
116
  tokens.each do |token|
105
117
  if token[1] == :on_kw and token[2] == 'begin'
@@ -114,7 +126,7 @@ class RubyLexUtils
114
126
  def contains_end?(text)
115
127
  @lex.reinitialize
116
128
  @lex_io.string = text
117
- @lex.set_input(@lex_io)
129
+ @lex.set_input(@lex_io, context: @context)
118
130
  tokens = ripper_lex_without_warning(text)
119
131
  tokens.each do |token|
120
132
  if token[1] == :on_kw and token[2] == 'end'
@@ -129,7 +141,7 @@ class RubyLexUtils
129
141
  def contains_keyword?(text)
130
142
  @lex.reinitialize
131
143
  @lex_io.string = text
132
- @lex.set_input(@lex_io)
144
+ @lex.set_input(@lex_io, context: @context)
133
145
  tokens = ripper_lex_without_warning(text)
134
146
  tokens.each do |token|
135
147
  if token[1] == :on_kw
@@ -149,7 +161,7 @@ class RubyLexUtils
149
161
  def contains_block_beginning?(text)
150
162
  @lex.reinitialize
151
163
  @lex_io.string = text
152
- @lex.set_input(@lex_io)
164
+ @lex.set_input(@lex_io, context: @context)
153
165
  tokens = ripper_lex_without_warning(text)
154
166
  tokens.each do |token|
155
167
  if token[1] == :on_kw
@@ -166,7 +178,7 @@ class RubyLexUtils
166
178
  def continue_block?(text)
167
179
  @lex.reinitialize
168
180
  @lex_io.string = text
169
- @lex.set_input(@lex_io)
181
+ @lex.set_input(@lex_io, context: @context)
170
182
  tokens = RubyLex.ripper_lex_without_warning(text)
171
183
  index = tokens.length - 1
172
184
  while index > 0
@@ -184,7 +196,7 @@ class RubyLexUtils
184
196
  def remove_comments(text, progress_dialog = nil)
185
197
  @lex.reinitialize
186
198
  @lex_io.string = text
187
- @lex.set_input(@lex_io)
199
+ @lex.set_input(@lex_io, context: @context)
188
200
  comments_removed = ""
189
201
  token_count = 0
190
202
  progress = 0.0
@@ -218,44 +230,64 @@ class RubyLexUtils
218
230
  inside_begin = false
219
231
  lex = RubyLex.new
220
232
  lex_io = StringIO.new(text)
221
- lex.set_input(lex_io)
233
+ lex.set_input(lex_io, context: @context)
222
234
  lex.line = ''
223
235
  line = ''
236
+ indent = 0
224
237
  continue_indent = nil
225
238
  begin_indent = nil
226
- previous_indent = 0
239
+ previous_line_indent = 0
227
240
 
228
- while lexed = lex.lex
229
- #puts "lexed = #{lexed.chomp}, indent = #{lex.indent}, continue = #{lex.continue}, ltype = #{lex.ltype.inspect}, code_block_open = #{lex.code_block_open}"
241
+ while lexed = lex.lex(@context)
230
242
  lex.line_no += lexed.count("\n")
231
243
  lex.line.concat lexed
232
244
  line.concat lexed
245
+
246
+ if continue_indent
247
+ indent = previous_line_indent + lex.indent
248
+ else
249
+ indent += lex.indent
250
+ lex.indent = 0
251
+ end
252
+
253
+ if inside_begin and indent < begin_indent
254
+ begin_indent = nil
255
+ inside_begin = false
256
+ end
257
+
258
+ # Uncomment the following to help with debugging
259
+ #puts
260
+ #puts '*' * 80
261
+ #puts lex.line
262
+ #puts "lexed = #{lexed.chomp}, indent (of next line) = #{indent}, actual lex.indent = #{lex.indent}, continue = #{lex.continue}, ltype = #{lex.ltype.inspect}, code_block_open = #{lex.code_block_open}, continue_indent = #{continue_indent.inspect}, begin_indent = #{begin_indent.inspect}"
263
+
264
+ # These lines put multiple lines together that are really one line
233
265
  if lex.continue or lex.ltype
234
266
  if not continue_block?(lexed)
267
+ # Set the indent we should stop at
235
268
  unless continue_indent
236
- if (lex.indent - previous_indent) > 1
237
- continue_indent = lex.indent - 1
269
+ if (indent - previous_line_indent) > 1
270
+ continue_indent = indent - 1
238
271
  else
239
- continue_indent = previous_indent
272
+ continue_indent = previous_line_indent
240
273
  end
241
274
  end
242
- #puts "continue_indent = #{continue_indent}"
243
275
  next
244
276
  end
245
277
  elsif continue_indent
246
- if lex.indent > continue_indent
278
+ if indent > continue_indent
279
+ # Still have more content
247
280
  next
248
281
  else
282
+ # Ready to yield this combined line
249
283
  yield line, !contains_keyword?(line), inside_begin, lex.exp_line_no
250
284
  line = ''
251
285
  lex.exp_line_no = lex.line_no
252
- if lex.indent == 0
253
- lex.line = ''
254
- end
286
+ lex.line = ''
255
287
  next
256
288
  end
257
289
  end
258
- previous_indent = lex.indent
290
+ previous_line_indent = indent
259
291
  continue_indent = nil
260
292
 
261
293
  # Detect the beginning and end of begin blocks so we can not catch exceptions there
@@ -265,14 +297,11 @@ class RubyLexUtils
265
297
  # Ignore
266
298
  else
267
299
  inside_begin = true
268
- begin_indent = lex.indent unless begin_indent # Don't restart for nested begins
300
+ begin_indent = indent unless begin_indent # Don't restart for nested begins
269
301
  end
270
302
  end
271
303
 
272
- if inside_begin and lex.indent < begin_indent
273
- begin_indent = nil
274
- inside_begin = false
275
- end
304
+ # The following code does not care about indent
276
305
 
277
306
  loop do # loop to allow restarting for nested conditions
278
307
  # Yield blank lines and lonely else lines before the actual line
@@ -298,12 +327,9 @@ class RubyLexUtils
298
327
  end
299
328
  line = ''
300
329
  lex.exp_line_no = lex.line_no
330
+ lex.line = ''
301
331
  break
302
332
  end # loop do
303
-
304
- if lex.indent == 0
305
- lex.line = ''
306
- end
307
333
  end # while lexed
308
334
  end # def each_lexed_segment
309
335
  end
@@ -53,26 +53,14 @@ module OpenC3
53
53
  end
54
54
  end
55
55
 
56
- if RUBY_VERSION < "3"
57
- # Delegate all unknown class methods to delegate to the instance
58
- def self.method_missing(message, *args, &block)
59
- self.instance.public_send(message, *args, &block)
60
- end
61
-
62
- # Delegate all unknown methods to redis through the @redis_pool
63
- def method_missing(message, *args, &block)
64
- @redis_pool.with { |redis| redis.public_send(message, *args, &block) }
65
- end
66
- else
67
- # Delegate all unknown class methods to delegate to the instance
68
- def self.method_missing(message, *args, **kwargs, &block)
69
- self.instance.public_send(message, *args, **kwargs, &block)
70
- end
56
+ # Delegate all unknown class methods to delegate to the instance
57
+ def self.method_missing(message, *args, **kwargs, &block)
58
+ self.instance.public_send(message, *args, **kwargs, &block)
59
+ end
71
60
 
72
- # Delegate all unknown methods to redis through the @redis_pool
73
- def method_missing(message, *args, **kwargs, &block)
74
- @redis_pool.with { |redis| redis.public_send(message, *args, **kwargs, &block) }
75
- end
61
+ # Delegate all unknown methods to redis through the @redis_pool
62
+ def method_missing(message, *args, **kwargs, &block)
63
+ @redis_pool.with { |redis| redis.public_send(message, *args, **kwargs, &block) }
76
64
  end
77
65
 
78
66
  def initialize(pool_size = 10)
@@ -92,15 +80,6 @@ module OpenC3
92
80
  # Stream APIs
93
81
  ###########################################################################
94
82
 
95
- def initialize_streams(topics)
96
- @redis_pool.with do |redis|
97
- topics.each do |topic|
98
- # Create empty stream with maxlen 0
99
- redis.xadd(topic, { a: 'b' }, maxlen: 0)
100
- end
101
- end
102
- end
103
-
104
83
  def get_oldest_message(topic)
105
84
  @redis_pool.with do |redis|
106
85
  result = redis.xrange(topic, count: 1)
@@ -1,14 +1,14 @@
1
1
  # encoding: ascii-8bit
2
2
 
3
- OPENC3_VERSION = '5.7.0'
3
+ OPENC3_VERSION = '5.8.0'
4
4
  module OpenC3
5
5
  module Version
6
6
  MAJOR = '5'
7
- MINOR = '7'
7
+ MINOR = '8'
8
8
  PATCH = '0'
9
9
  OTHER = ''
10
- BUILD = 'ad11dde957c7d04de9c45d6fb8d6226a812ced9c'
10
+ BUILD = '598259d532882002dfa6b0ba226e4696d31fbbfd'
11
11
  end
12
- VERSION = '5.7.0'
13
- GEM_VERSION = '5.7.0'
12
+ VERSION = '5.8.0'
13
+ GEM_VERSION = '5.8.0'
14
14
  end
data/lib/openc3.rb CHANGED
@@ -54,4 +54,4 @@ require 'openc3/system'
54
54
  # OpenC3 services need to die if something goes wrong so they can be restarted
55
55
  require 'thread'
56
56
  Thread.abort_on_exception = true
57
- Thread.report_on_exception = true
57
+ Thread.report_on_exception = true
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "widget",
3
- "version": "5.7.0",
3
+ "version": "5.8.0",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "build": "vue-cli-service build --target lib --dest tools/widgets/<%= widget_name %> --formats umd-min <%= widget_path %> --name <%= widget_name %>"
7
7
  },
8
8
  "dependencies": {
9
- "@openc3/tool-common": "5.7.0",
9
+ "@openc3/tool-common": "5.8.0",
10
10
  "vue": "2.7.14",
11
11
  "vuetify": "2.6.14"
12
12
  },
13
13
  "devDependencies": {
14
14
  "@babel/eslint-parser": "7.21.8",
15
- "@rushstack/eslint-patch": "1.2.0",
15
+ "@rushstack/eslint-patch": "1.3.0",
16
16
  "@vue/babel-preset-app": "5.0.8",
17
17
  "@vue/cli": "5.0.8",
18
18
  "@vue/cli-plugin-babel": "5.0.8",
@@ -21,15 +21,15 @@
21
21
  "@vue/eslint-config-prettier": "7.1.0",
22
22
  "babel-loader": "9.1.2",
23
23
  "babel-plugin-istanbul": "6.1.1",
24
- "eslint": "8.40.0",
24
+ "eslint": "8.41.0",
25
25
  "eslint-config-prettier": "8.8.0",
26
26
  "eslint-plugin-prettier": "4.2.1",
27
- "eslint-plugin-vue": "9.11.1",
27
+ "eslint-plugin-vue": "9.14.1",
28
28
  "prettier": "2.8.8",
29
29
  "sass": "1.62.1",
30
- "sass-loader": "13.2.2",
30
+ "sass-loader": "13.3.0",
31
31
  "vue-cli-plugin-vuetify": "2.5.8",
32
32
  "vue-template-compiler": "2.7.14",
33
- "webpack": "5.82.0"
33
+ "webpack": "5.84.1"
34
34
  }
35
35
  }
@@ -1180,10 +1180,10 @@
1180
1180
  minimatch "^3.1.2"
1181
1181
  strip-json-comments "^3.1.1"
1182
1182
 
1183
- "@eslint/js@8.40.0":
1184
- version "8.40.0"
1185
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.40.0.tgz#3ba73359e11f5a7bd3e407f70b3528abfae69cec"
1186
- integrity sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==
1183
+ "@eslint/js@8.41.0":
1184
+ version "8.41.0"
1185
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.41.0.tgz#080321c3b68253522f7646b55b577dd99d2950b3"
1186
+ integrity sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==
1187
1187
 
1188
1188
  "@graphql-tools/merge@8.3.1":
1189
1189
  version "8.3.1"
@@ -1449,10 +1449,10 @@
1449
1449
  resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
1450
1450
  integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
1451
1451
 
1452
- "@rushstack/eslint-patch@1.2.0":
1453
- version "1.2.0"
1454
- resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728"
1455
- integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==
1452
+ "@rushstack/eslint-patch@1.3.0":
1453
+ version "1.3.0"
1454
+ resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.0.tgz#f5635b36fc0dad96ef1e542a302cd914230188c0"
1455
+ integrity sha512-IthPJsJR85GhOkp3Hvp8zFOPK5ynKn6STyHa/WZpioK7E1aYDiBzpqQPrngc14DszIUkIrdd3k9Iu0XSzlP/1w==
1456
1456
 
1457
1457
  "@sideway/address@^4.1.3":
1458
1458
  version "4.1.4"
@@ -2390,6 +2390,11 @@ acorn-import-assertions@^1.7.6:
2390
2390
  resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9"
2391
2391
  integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==
2392
2392
 
2393
+ acorn-import-assertions@^1.9.0:
2394
+ version "1.9.0"
2395
+ resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac"
2396
+ integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==
2397
+
2393
2398
  acorn-jsx@^5.3.2:
2394
2399
  version "5.3.2"
2395
2400
  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
@@ -3977,10 +3982,10 @@ enhanced-resolve@^5.10.0:
3977
3982
  graceful-fs "^4.2.4"
3978
3983
  tapable "^2.2.0"
3979
3984
 
3980
- enhanced-resolve@^5.13.0:
3981
- version "5.14.0"
3982
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz#0b6c676c8a3266c99fa281e4433a706f5c0c61c4"
3983
- integrity sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==
3985
+ enhanced-resolve@^5.14.1:
3986
+ version "5.14.1"
3987
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3"
3988
+ integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==
3984
3989
  dependencies:
3985
3990
  graceful-fs "^4.2.4"
3986
3991
  tapable "^2.2.0"
@@ -4051,17 +4056,17 @@ eslint-plugin-prettier@4.2.1, eslint-plugin-prettier@^4.0.0:
4051
4056
  dependencies:
4052
4057
  prettier-linter-helpers "^1.0.0"
4053
4058
 
4054
- eslint-plugin-vue@9.11.1:
4055
- version "9.11.1"
4056
- resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.11.1.tgz#71e37cc74ac0a9bca07d2e8c471a047b8ac254fb"
4057
- integrity sha512-SNtBGDrRkPUFsREswPceqdvZ7YVdWY+iCYiDC+RoxwVieeQ7GJU1FLDlkcaYTOD2os/YuVgI1Fdu8YGM7fmoow==
4059
+ eslint-plugin-vue@9.14.1:
4060
+ version "9.14.1"
4061
+ resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.14.1.tgz#3b0c9857642dac547c7564031cfb09d283eafdd4"
4062
+ integrity sha512-LQazDB1qkNEKejLe/b5a9VfEbtbczcOaui5lQ4Qw0tbRBbQYREyxxOV5BQgNDTqGPs9pxqiEpbMi9ywuIaF7vw==
4058
4063
  dependencies:
4059
4064
  "@eslint-community/eslint-utils" "^4.3.0"
4060
4065
  natural-compare "^1.4.0"
4061
4066
  nth-check "^2.0.1"
4062
4067
  postcss-selector-parser "^6.0.9"
4063
4068
  semver "^7.3.5"
4064
- vue-eslint-parser "^9.0.1"
4069
+ vue-eslint-parser "^9.3.0"
4065
4070
  xml-name-validator "^4.0.0"
4066
4071
 
4067
4072
  eslint-scope@5.1.1:
@@ -4114,15 +4119,15 @@ eslint-webpack-plugin@^3.1.0:
4114
4119
  normalize-path "^3.0.0"
4115
4120
  schema-utils "^4.0.0"
4116
4121
 
4117
- eslint@8.40.0:
4118
- version "8.40.0"
4119
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.40.0.tgz#a564cd0099f38542c4e9a2f630fa45bf33bc42a4"
4120
- integrity sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==
4122
+ eslint@8.41.0:
4123
+ version "8.41.0"
4124
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.41.0.tgz#3062ca73363b4714b16dbc1e60f035e6134b6f1c"
4125
+ integrity sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==
4121
4126
  dependencies:
4122
4127
  "@eslint-community/eslint-utils" "^4.2.0"
4123
4128
  "@eslint-community/regexpp" "^4.4.0"
4124
4129
  "@eslint/eslintrc" "^2.0.3"
4125
- "@eslint/js" "8.40.0"
4130
+ "@eslint/js" "8.41.0"
4126
4131
  "@humanwhocodes/config-array" "^0.11.8"
4127
4132
  "@humanwhocodes/module-importer" "^1.0.1"
4128
4133
  "@nodelib/fs.walk" "^1.2.8"
@@ -4142,13 +4147,12 @@ eslint@8.40.0:
4142
4147
  find-up "^5.0.0"
4143
4148
  glob-parent "^6.0.2"
4144
4149
  globals "^13.19.0"
4145
- grapheme-splitter "^1.0.4"
4150
+ graphemer "^1.4.0"
4146
4151
  ignore "^5.2.0"
4147
4152
  import-fresh "^3.0.0"
4148
4153
  imurmurhash "^0.1.4"
4149
4154
  is-glob "^4.0.0"
4150
4155
  is-path-inside "^3.0.3"
4151
- js-sdsl "^4.1.4"
4152
4156
  js-yaml "^4.1.0"
4153
4157
  json-stable-stringify-without-jsonify "^1.0.1"
4154
4158
  levn "^0.4.1"
@@ -4876,10 +4880,10 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3
4876
4880
  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
4877
4881
  integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
4878
4882
 
4879
- grapheme-splitter@^1.0.4:
4880
- version "1.0.4"
4881
- resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
4882
- integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
4883
+ graphemer@^1.4.0:
4884
+ version "1.4.0"
4885
+ resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
4886
+ integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
4883
4887
 
4884
4888
  graphql-subscriptions@^1.2.0:
4885
4889
  version "1.2.1"
@@ -5601,11 +5605,6 @@ js-message@1.0.7:
5601
5605
  resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.7.tgz#fbddd053c7a47021871bb8b2c95397cc17c20e47"
5602
5606
  integrity sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==
5603
5607
 
5604
- js-sdsl@^4.1.4:
5605
- version "4.3.0"
5606
- resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711"
5607
- integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==
5608
-
5609
5608
  js-tokens@^4.0.0:
5610
5609
  version "4.0.0"
5611
5610
  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -7511,10 +7510,10 @@ safe-regex@^1.1.0:
7511
7510
  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
7512
7511
  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
7513
7512
 
7514
- sass-loader@13.2.2:
7515
- version "13.2.2"
7516
- resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.2.2.tgz#f97e803993b24012c10d7ba9676548bf7a6b18b9"
7517
- integrity sha512-nrIdVAAte3B9icfBiGWvmMhT/D+eCDwnk+yA7VE/76dp/WkHX+i44Q/pfo71NYbwj0Ap+PGsn0ekOuU1WFJ2AA==
7513
+ sass-loader@13.3.0:
7514
+ version "13.3.0"
7515
+ resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.3.0.tgz#ed4a2d555aa10fc99f4daaab425d8d451336bb65"
7516
+ integrity sha512-LeWNswSEujsZnwdn9AuA+Q5wZEAFlU+eORQsDKp35OtGAfFxYxpfk/Ylon+TGGkazSqxi2EHDTqdr3di8r7nCg==
7518
7517
  dependencies:
7519
7518
  klona "^2.0.6"
7520
7519
  neo-async "^2.6.2"
@@ -8537,10 +8536,10 @@ vue-codemod@^0.0.5:
8537
8536
  source-map "^0.6.1"
8538
8537
  yargs "^16.2.0"
8539
8538
 
8540
- vue-eslint-parser@^9.0.1:
8541
- version "9.1.0"
8542
- resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz#0e121d1bb29bd10763c83e3cc583ee03434a9dd5"
8543
- integrity sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==
8539
+ vue-eslint-parser@^9.3.0:
8540
+ version "9.3.0"
8541
+ resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.0.tgz#775a974a0603c9a73d85fed8958ed9e814a4a816"
8542
+ integrity sha512-48IxT9d0+wArT1+3wNIy0tascRoywqSUe2E1YalIC1L8jsUGe5aJQItWfRok7DVFGz3UYvzEI7n5wiTXsCMAcQ==
8544
8543
  dependencies:
8545
8544
  debug "^4.3.4"
8546
8545
  eslint-scope "^7.1.1"
@@ -8714,10 +8713,10 @@ webpack-virtual-modules@^0.4.2:
8714
8713
  resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz#3e4008230731f1db078d9cb6f68baf8571182b45"
8715
8714
  integrity sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==
8716
8715
 
8717
- webpack@5.82.0:
8718
- version "5.82.0"
8719
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.82.0.tgz#3c0d074dec79401db026b4ba0fb23d6333f88e7d"
8720
- integrity sha512-iGNA2fHhnDcV1bONdUu554eZx+XeldsaeQ8T67H6KKHl2nUSwX8Zm7cmzOA46ox/X1ARxf7Bjv8wQ/HsB5fxBg==
8716
+ webpack@5.84.1:
8717
+ version "5.84.1"
8718
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.84.1.tgz#d4493acdeca46b26ffc99d86d784cabfeb925a15"
8719
+ integrity sha512-ZP4qaZ7vVn/K8WN/p990SGATmrL1qg4heP/MrVneczYtpDGJWlrgZv55vxaV2ul885Kz+25MP2kSXkPe3LZfmg==
8721
8720
  dependencies:
8722
8721
  "@types/eslint-scope" "^3.7.3"
8723
8722
  "@types/estree" "^1.0.0"
@@ -8725,10 +8724,10 @@ webpack@5.82.0:
8725
8724
  "@webassemblyjs/wasm-edit" "^1.11.5"
8726
8725
  "@webassemblyjs/wasm-parser" "^1.11.5"
8727
8726
  acorn "^8.7.1"
8728
- acorn-import-assertions "^1.7.6"
8727
+ acorn-import-assertions "^1.9.0"
8729
8728
  browserslist "^4.14.5"
8730
8729
  chrome-trace-event "^1.0.2"
8731
- enhanced-resolve "^5.13.0"
8730
+ enhanced-resolve "^5.14.1"
8732
8731
  es-module-lexer "^1.2.1"
8733
8732
  eslint-scope "5.1.1"
8734
8733
  events "^3.2.0"