rfbeam 0.2.2 → 0.3.1

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/Gemfile.lock +3 -2
  4. data/README.md +71 -15
  5. data/lib/rfbeam/kld7/commands.rb +2 -2
  6. data/lib/rfbeam/kld7/device_data.rb +26 -0
  7. data/lib/rfbeam/kld7/parameters.rb +96 -0
  8. data/lib/rfbeam/version.rb +1 -1
  9. data/lib/rfbeam.rb +12 -11
  10. data/node_modules/.yarn-integrity +3 -3
  11. data/node_modules/@prettier/plugin-ruby/node_modules/.bin/prettier +1 -1
  12. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/LICENSE +5945 -0
  13. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/README.md +109 -0
  14. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/bin-prettier.js +62 -0
  15. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/cli.js +15136 -0
  16. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/doc.js +1473 -0
  17. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-angular.mjs +2 -0
  18. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-babel.mjs +29 -0
  19. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-espree.mjs +26 -0
  20. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-flow.mjs +35 -0
  21. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-glimmer.mjs +27 -0
  22. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-graphql.mjs +15 -0
  23. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-html.mjs +36 -0
  24. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-markdown.mjs +76 -0
  25. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-meriyah.mjs +19 -0
  26. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-postcss.mjs +76 -0
  27. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-typescript.mjs +257 -0
  28. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/parser-yaml.mjs +150 -0
  29. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/esm/standalone.mjs +116 -0
  30. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/index.js +37885 -0
  31. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/package.json +21 -0
  32. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-angular.js +2 -0
  33. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-babel.js +29 -0
  34. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-espree.js +26 -0
  35. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-flow.js +35 -0
  36. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-glimmer.js +27 -0
  37. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-graphql.js +15 -0
  38. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-html.js +36 -0
  39. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-markdown.js +76 -0
  40. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-meriyah.js +19 -0
  41. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-postcss.js +76 -0
  42. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-typescript.js +257 -0
  43. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/parser-yaml.js +150 -0
  44. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/standalone.js +116 -0
  45. data/node_modules/@prettier/plugin-ruby/node_modules/prettier/third-party.js +8978 -0
  46. data/node_modules/prettier/LICENSE +85 -60
  47. data/node_modules/prettier/README.md +3 -3
  48. data/node_modules/prettier/bin-prettier.js +3 -1
  49. data/node_modules/prettier/cli.js +414 -186
  50. data/node_modules/prettier/esm/parser-angular.mjs +1 -1
  51. data/node_modules/prettier/esm/parser-babel.mjs +21 -21
  52. data/node_modules/prettier/esm/parser-espree.mjs +20 -20
  53. data/node_modules/prettier/esm/parser-flow.mjs +26 -26
  54. data/node_modules/prettier/esm/parser-glimmer.mjs +4 -4
  55. data/node_modules/prettier/esm/parser-graphql.mjs +1 -1
  56. data/node_modules/prettier/esm/parser-html.mjs +16 -16
  57. data/node_modules/prettier/esm/parser-markdown.mjs +48 -48
  58. data/node_modules/prettier/esm/parser-meriyah.mjs +14 -14
  59. data/node_modules/prettier/esm/parser-postcss.mjs +57 -57
  60. data/node_modules/prettier/esm/parser-typescript.mjs +40 -248
  61. data/node_modules/prettier/esm/parser-yaml.mjs +13 -13
  62. data/node_modules/prettier/esm/standalone.mjs +77 -77
  63. data/node_modules/prettier/index.js +693 -342
  64. data/node_modules/prettier/package.json +1 -1
  65. data/node_modules/prettier/parser-babel.js +21 -21
  66. data/node_modules/prettier/parser-espree.js +20 -20
  67. data/node_modules/prettier/parser-flow.js +26 -26
  68. data/node_modules/prettier/parser-glimmer.js +3 -3
  69. data/node_modules/prettier/parser-html.js +20 -20
  70. data/node_modules/prettier/parser-markdown.js +47 -47
  71. data/node_modules/prettier/parser-meriyah.js +13 -13
  72. data/node_modules/prettier/parser-postcss.js +56 -56
  73. data/node_modules/prettier/parser-typescript.js +40 -248
  74. data/node_modules/prettier/parser-yaml.js +13 -13
  75. data/node_modules/prettier/standalone.js +73 -73
  76. data/node_modules/prettier/third-party.js +5 -5
  77. data/package.json +1 -1
  78. data/yarn.lock +6 -1
  79. metadata +37 -3
  80. data/rfbeam-0.2.1.gem +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 77d2b1df756f691df7c78412d41e8a30fbeb8d1571dc575c1cfbe88ac3af4cbb
4
- data.tar.gz: 5848e309860476a13a1ff8f202170e42e3e91ab991e9d1aaa290df163c6f629c
3
+ metadata.gz: 8b330fbbd75049114a6b8be3c4870ac68723bb2a25fd0870e40e81304f215cc7
4
+ data.tar.gz: f740ced4593c75173d216527ab4f0afcaf85cb323097a8b7a86f9c3ad7717a74
5
5
  SHA512:
6
- metadata.gz: 16ccd6c1b11bd7272131c1e6d113878657ea4d1606d43da331cd1ad0c54296103db0de43b790e8145f679c5d49346b54cee948a8981a34e4e3340da7bf9bb34a
7
- data.tar.gz: 1a7d155f0c2c628d3f6ccd16c68fc39e61ece8e047a0a6f06b0f43034190b9a8c8b0dd57e4a32185fef8e7c4fb84e07b7a1cb0b6908c0afa89ca9ab596f97d00
6
+ metadata.gz: 5c6e265438debcac0e7a3cae53cbe68a589e9eca2529f57ca49179b70aa7ded7e8d0dab2052a748319fe6d02fe4b74640907c3909603e58b13f0b632cb5bbed5
7
+ data.tar.gz: eb1d53dea2e385a06c8729657f3a9283c2da19120ce122c5b763ba83dc980235ae543bf31fc53e2b27338b43eeed760e2cf7fef407e8e9ac34f866916bc60bd5
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [0.3.1] - 2023-3-28
2
+
3
+ - Added setter for Max Distance
4
+ - Added setter for Max Speed
5
+ - Added setter for Threshold offset
6
+
1
7
  ## [0.2.2] - 2023-3-28
2
8
 
3
9
  - Refinements to ddat
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rfbeam (0.2.0)
4
+ rfbeam (0.3.0)
5
5
  activesupport (~> 6.1.0)
6
6
  rubyserial (~> 0.6.0)
7
7
  thor (~> 1.2.1)
@@ -51,6 +51,7 @@ GEM
51
51
  zeitwerk (2.6.6)
52
52
 
53
53
  PLATFORMS
54
+ aarch64-linux
54
55
  arm64-darwin-21
55
56
 
56
57
  DEPENDENCIES
@@ -60,4 +61,4 @@ DEPENDENCIES
60
61
  rubocop (~> 1.21)
61
62
 
62
63
  BUNDLED WITH
63
- 2.3.26
64
+ 2.4.10
data/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  # Rfbeam
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/rfbeam`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ RfBeam is a simple, high-level interface to the RFBeam radar modules.
4
+ The user can read and set the radar parameters and fetch raw or processed data frames from the sensor.
4
5
 
5
- TODO: Delete this and the text above, and describe your gem
6
+ At this stage it only works on Linux and Mac with the K-LD7 module.
6
7
 
7
8
  ## Installation
8
9
 
@@ -16,19 +17,74 @@ If bundler is not being used to manage dependencies, install the gem by executin
16
17
 
17
18
  ## Usage
18
19
 
19
- ```ruby
20
- ❯ bin/console
21
- irb(main):001:0> RfBeam.connected
22
- => ["/dev/tty.usbserial-FTBX7TKD"]
23
- irb(main):002:0> r = RfBeam::K_ld7.new("/dev/tty.usbserial-FTBX7TKD", 115200)
24
- => #<RfBeam::K_ld7:0x0000000146bb2ff0 @serial_port=#<Serial:0x0000000146bb2f28 @fd=9, @open=true, @config=#<RubySerial::Posix::Termios:0x0000000146bb2cf8>>>
25
- irb(main):003:0> r.detection?
26
- => false
27
- irb(main):004:0> r.detection?
28
- => true
29
- irb(main):005:0> r.tdat
30
- => {:dist=>68, :speed=>196, :angle=>469, :mag=>6303}
31
- ```
20
+ The RfBeam class will return the path of any connected modules
21
+
22
+ RfBeam.connected
23
+
24
+ Simple pass the path and baude rate to initialise a new radar object
25
+
26
+ RfBeam::K_ld7.new("/dev/ttyUSB0", 115200) do |radar|
27
+ puts radar.config
28
+ end
29
+
30
+ ## RfBeam::K_ld7 API
31
+
32
+ ### detection?
33
+
34
+ Returns true if the module has a valid detection.
35
+
36
+ radar.detection?
37
+ => true
38
+
39
+ ### ddat
40
+
41
+ Returns an array with the current detection values
42
+
43
+ radar.ddat
44
+ => ["DDAT", 6, 0, 0, 0, 0, 0, 0]
45
+
46
+ ### tdat
47
+
48
+ Returns a hash with the current tracked object values
49
+
50
+ radar.tdat
51
+ => {:dist=>68, :speed=>196, :angle=>469, :mag=>6303}
52
+
53
+ ### grps
54
+
55
+ Returns the Parameter settings, values map to setting as detailed in the device datasheet.
56
+
57
+ radar.grps
58
+ => ["RPST", 42, "K-LD7_APP-RFB-0103", 1, 1, 1, 30, 0, 2, 0, 50, -90, 90, 0, 100, 2, 10, 0, 50, 0, 1, 2, 1, 0, 4]
59
+
60
+ ### config
61
+
62
+ Returns a formatted String of all parameter settings
63
+
64
+ radar.config
65
+
66
+ Software Version: K-LD7_APP-RFB-0103
67
+ Base Frequency: Middle
68
+ Max Speed: 25km/h
69
+ Max Range: 10m
70
+ Threshold offset: 30db
71
+ Tracking Filter Type: standard
72
+ Vibration Suppression: 2 , (0-16, 0 = No Suppression, 16 = High Suppression)
73
+ Minimum Detection Distance: 0 , (0 - 100% of range setting)
74
+ Maximum Detection Distance: 50 , (0 - 100% of range setting)
75
+ Minimum Detection Angle: -90° , (-90° - 90°)
76
+ Maximum Detection Angle: 90° , (0 - 100% of range setting)
77
+ Maximum Detection Speed: 0 , (0 - 100% of speed setting)
78
+ Maximum Detection Speed: 100 , (0 - 100% of speed setting)
79
+ Detection Direction: 2Range Threshold: 10%, (0 - 100% of range setting)
80
+ Angle Threshold: 0°, (-90° - 90°)
81
+ Speed Threshold: 50%, (0 - 100% of speed setting)
82
+ Digital output 1: Direction
83
+ Digital output 2: Angle
84
+ Digital output 3: Range
85
+ Hold time: 1sec
86
+ Micro Detection Retrigger: Off
87
+ Micro Detection Sensitivity: 4 (0 - 9, 0 = Min, 9 = Max)
32
88
 
33
89
  ## Development
34
90
 
@@ -80,10 +80,10 @@ module RfBeam
80
80
  raise Error, 'No valid response from Serial Port' if resp[2].nil?
81
81
 
82
82
  response_key = resp[2]
83
- return if response_key.zero? # Everything OK
83
+ return response_key.zero? # Everything OK
84
84
 
85
85
  error_string = RESP_CODES[response_key].nil? ? 'Response unknown' : RESP_CODES[response_key]
86
- raise Error, "Initialisation Error: #{error_string}"
86
+ raise Error, "Radar response Error: #{error_string}"
87
87
  end
88
88
  end
89
89
  end
@@ -29,5 +29,31 @@ module RfBeam
29
29
  range: %w[Far Near],
30
30
  speed: %w[Low High],
31
31
  }
32
+
33
+ # GRPS - Parameter structture, used to map return values to readable strings
34
+ PARAMETER_STRUCTURE = {
35
+ base_frequency: ['Low', 'Middle', 'High'],
36
+ max_speed: ['12.5km/h', '25km/h', '50km/h', '100km/h'],
37
+ max_range: %w[5m 10m 30m 100m],
38
+ threshold_offset: '10db - 60db',
39
+ tracking_filter_type: ['standard', 'Fast Detection', 'Long Visibility'],
40
+ vibration_suppression: '0-16, 0 = No Suppression, 16 = High Suppression',
41
+ min_detection_distance: '0 - 100% of range setting',
42
+ max_detection_distance: '0 - 100% of range setting',
43
+ min_detection_angle: '-90° - 90°',
44
+ max_detection_angle: '-90° - 90°',
45
+ min_detection_speed: '0 - 100% of speed setting',
46
+ max_detection_speed: '0 - 100% of speed setting',
47
+ detection_direction: %w[receding approaching both],
48
+ range_threshold: '0 - 100% of range setting',
49
+ angle_threshold: '-90° - 90°',
50
+ speed_threshold: '0 - 100% of speed setting',
51
+ digital_output_1: %w[Direction Angle Range Speed Micro],
52
+ digital_output_2: %w[Direction Angle Range Speed Micro],
53
+ digital_output_3: %w[Direction Angle Range Speed Micro],
54
+ hold_time: '1 - 7200s',
55
+ micro_detection_trigger: %w[Off Retrigger],
56
+ micro_detection_sensitivity: '0 - 9, 0 = Min, 9 = Max'
57
+ }
32
58
  end
33
59
  end
@@ -0,0 +1,96 @@
1
+ module RfBeam
2
+ module KLD7
3
+
4
+ def detection?
5
+ data = ddat
6
+ (data[2] == 1)
7
+ end
8
+
9
+ def config
10
+ puts formatted_grps(grps)
11
+ end
12
+
13
+ # Get the radar parameter structure
14
+ def grps
15
+ command = ['GRPS', 0]
16
+ write command.pack('a4L')
17
+ check_response
18
+ read(50).unpack('a4LA19C8c2C4cCCCCSCC')
19
+ end
20
+
21
+ # Base Frequency, 0 = low, 1 = middle (default), 2 = high
22
+ def set_base_frequency(frequency = 1)
23
+ set_parameter(:rbfr, frequency, :uint8)
24
+ end
25
+ alias_method :rbfr, :set_base_frequency
26
+
27
+ # Maximum Speed, 0 = 12.5km/h, 1 = 25km/h (default), 2 = 50km/h, 3 = 100km/h
28
+ def set_max_speed(speed = 1)
29
+ set_parameter :rspi, speed, :uint8
30
+ end
31
+ alias_method :rspi, :set_max_speed
32
+
33
+ # Maximum Range, 0 = 5m, 1 = 10m (default), 2 = 30m, 3 = 100m
34
+ def set_max_range(range = 1)
35
+ set_parameter :rrai, range, :unit8
36
+ end
37
+ alias_method :rrai, :set_max_range
38
+
39
+ # Threshold Offset, 10 - 60db, (default = 30)
40
+ def set_threshold_offset(offset = 30)
41
+ range = 10..60
42
+ return false unless range.include?(offset)
43
+
44
+ set_parameter :thof, range, :unit8
45
+ end
46
+ alias_method :thof, :set_threshold_offset
47
+
48
+ private
49
+
50
+ def set_parameter(header, value, return_type = :uint8)
51
+ return_type =
52
+ case return_type
53
+ when :uint8
54
+ 'L'
55
+ when :int8
56
+ 'c'
57
+ when :uint16
58
+ 'S'
59
+ else
60
+ 'L'
61
+ end
62
+ command = [header.upcase.to_s, 4, value]
63
+ write command.pack("a4L#{return_type}")
64
+ check_response
65
+ end
66
+
67
+ def formatted_grps(data)
68
+ output = "\n"
69
+ output << "Software Version: #{data[2]}\n"
70
+ output << "Base Frequency: #{PARAMETER_STRUCTURE[:base_frequency][data[3]]}\n"
71
+ output << "Max Speed: #{PARAMETER_STRUCTURE[:max_speed][data[4]]}\n"
72
+ output << "Max Range: #{PARAMETER_STRUCTURE[:max_range][data[5]]}\n"
73
+ output << "Threshold offset: #{data[6]}db\n"
74
+ output << "Tracking Filter Type: #{PARAMETER_STRUCTURE[:tracking_filter_type][data[7]]}\n"
75
+ output << "Vibration Suppression: #{data[8]} , (#{PARAMETER_STRUCTURE[:vibration_suppression]})\n"
76
+ output << "Minimum Detection Distance: #{data[9]} , (#{PARAMETER_STRUCTURE[:min_detection_distance]})\n"
77
+ output << "Maximum Detection Distance: #{data[10]} , (#{PARAMETER_STRUCTURE[:max_detection_distance]})\n"
78
+ output << "Minimum Detection Angle: #{data[11]}° , (#{PARAMETER_STRUCTURE[:min_detection_angle]})\n"
79
+ output << "Maximum Detection Angle: #{data[12]}° , (#{PARAMETER_STRUCTURE[:max_detection_distance]})\n"
80
+ output << "Maximum Detection Speed: #{data[13]} , (#{PARAMETER_STRUCTURE[:min_detection_speed]})\n"
81
+ output << "Maximum Detection Speed: #{data[14]} , (#{PARAMETER_STRUCTURE[:max_detection_speed]})\n"
82
+ output << "Detection Direction: #{data[15]}"
83
+ output << "Range Threshold: #{data[16]}%, (#{PARAMETER_STRUCTURE[:range_threshold]})\n"
84
+ output << "Angle Threshold: #{data[17]}°, (#{PARAMETER_STRUCTURE[:angle_threshold]})\n"
85
+ output << "Speed Threshold: #{data[18]}%, (#{PARAMETER_STRUCTURE[:speed_threshold]})\n"
86
+ output << "Digital output 1: #{PARAMETER_STRUCTURE[:digital_output_1][data[19]]}\n"
87
+ output << "Digital output 2: #{PARAMETER_STRUCTURE[:digital_output_2][data[20]]}\n"
88
+ output << "Digital output 3: #{PARAMETER_STRUCTURE[:digital_output_3][data[21]]}\n"
89
+ output << "Hold time: #{data[22]}sec\n"
90
+ output << "Micro Detection Retrigger: #{PARAMETER_STRUCTURE[:micro_detection_trigger][data[23]]}\n"
91
+ output << "Micro Detection Sensitivity: #{data[24]} (#{PARAMETER_STRUCTURE[:micro_detection_sensitivity]})"
92
+
93
+ output
94
+ end
95
+ end
96
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RfBeam
4
- VERSION = '0.2.2'
4
+ VERSION = '0.3.1'
5
5
  end
data/lib/rfbeam.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'rfbeam/kld7/commands'
4
4
  require 'rfbeam/kld7/detection'
5
+ require 'rfbeam/kld7/parameters'
5
6
  require 'rfbeam/kld7/device_data'
6
7
  require_relative 'rfbeam/version'
7
8
 
@@ -13,16 +14,16 @@ module RfBeam
13
14
  include RfBeam::KLD7
14
15
  end
15
16
 
16
- def self.connected
17
- path_str, dir =
18
- if RubySerial::ON_LINUX
19
- %w[ttyUSB /dev/]
20
- elsif RubySerial::ON_WINDOWS
21
- ['TODO: Implement find device for Windows', 'You lazy bugger']
22
- else
23
- %w[tty.usbserial /dev/]
24
- end
25
-
26
- Dir.glob("#{dir}#{path_str}*")
17
+ def self.connected
18
+ path_str, dir =
19
+ if RubySerial::ON_LINUX
20
+ %w[ttyUSB /dev/]
21
+ elsif RubySerial::ON_WINDOWS
22
+ ['TODO: Implement find device for Windows', 'You lazy bugger']
23
+ else
24
+ %w[tty.usbserial /dev/]
25
+ end
26
+
27
+ Dir.glob("#{dir}#{path_str}*")
27
28
  end
28
29
  end
@@ -1,5 +1,5 @@
1
1
  {
2
- "systemParams": "darwin-arm64-108",
2
+ "systemParams": "linux-arm64-108",
3
3
  "modulesFolders": [
4
4
  "node_modules"
5
5
  ],
@@ -7,12 +7,12 @@
7
7
  "linkedModules": [],
8
8
  "topLevelPatterns": [
9
9
  "@prettier/plugin-ruby@^3.2.2",
10
- "prettier@^2.8.0"
10
+ "prettier@^2.8.7"
11
11
  ],
12
12
  "lockfileEntries": {
13
13
  "@prettier/plugin-ruby@^3.2.2": "https://registry.yarnpkg.com/@prettier/plugin-ruby/-/plugin-ruby-3.2.2.tgz#43c9d85349032f74d34c4f57e6a77487d5c5bdc1",
14
14
  "prettier@>=2.3.0": "https://registry.yarnpkg.com/prettier/-/prettier-2.8.0.tgz#c7df58393c9ba77d6fba3921ae01faf994fb9dc9",
15
- "prettier@^2.8.0": "https://registry.yarnpkg.com/prettier/-/prettier-2.8.0.tgz#c7df58393c9ba77d6fba3921ae01faf994fb9dc9"
15
+ "prettier@^2.8.7": "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450"
16
16
  },
17
17
  "files": [],
18
18
  "artifacts": {}
@@ -1 +1 @@
1
- ../../../../prettier/bin-prettier.js
1
+ ../prettier/bin-prettier.js