prettier 3.2.2 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -2
  3. data/README.md +23 -59
  4. data/lib/prettier.rb +7 -5
  5. data/node_modules/prettier/LICENSE +5205 -0
  6. data/node_modules/prettier/README.md +109 -0
  7. data/node_modules/prettier/{bin-prettier.js → bin/prettier.cjs} +10 -5
  8. data/node_modules/prettier/doc.d.ts +240 -0
  9. data/node_modules/prettier/doc.js +1257 -1309
  10. data/node_modules/prettier/doc.mjs +1312 -0
  11. data/node_modules/prettier/index.cjs +655 -0
  12. data/node_modules/prettier/index.d.ts +915 -0
  13. data/node_modules/prettier/index.mjs +21845 -0
  14. data/node_modules/prettier/internal/cli.mjs +6978 -0
  15. data/node_modules/prettier/internal/internal.mjs +6531 -0
  16. data/node_modules/prettier/package.json +179 -6
  17. data/node_modules/prettier/plugins/acorn.d.ts +6 -0
  18. data/node_modules/prettier/plugins/acorn.js +13 -0
  19. data/node_modules/prettier/plugins/acorn.mjs +13 -0
  20. data/node_modules/prettier/plugins/angular.d.ts +8 -0
  21. data/node_modules/prettier/plugins/angular.js +2 -0
  22. data/node_modules/prettier/plugins/angular.mjs +2 -0
  23. data/node_modules/prettier/plugins/babel.d.ts +17 -0
  24. data/node_modules/prettier/plugins/babel.js +16 -0
  25. data/node_modules/prettier/plugins/babel.mjs +16 -0
  26. data/node_modules/prettier/plugins/estree.d.ts +0 -0
  27. data/node_modules/prettier/plugins/estree.js +35 -0
  28. data/node_modules/prettier/plugins/estree.mjs +35 -0
  29. data/node_modules/prettier/plugins/flow.d.ts +5 -0
  30. data/node_modules/prettier/plugins/flow.js +21 -0
  31. data/node_modules/prettier/plugins/flow.mjs +21 -0
  32. data/node_modules/prettier/plugins/glimmer.d.ts +5 -0
  33. data/node_modules/prettier/plugins/glimmer.js +30 -0
  34. data/node_modules/prettier/plugins/glimmer.mjs +30 -0
  35. data/node_modules/prettier/plugins/graphql.d.ts +5 -0
  36. data/node_modules/prettier/plugins/graphql.js +29 -0
  37. data/node_modules/prettier/plugins/graphql.mjs +29 -0
  38. data/node_modules/prettier/plugins/html.d.ts +8 -0
  39. data/node_modules/prettier/plugins/html.js +19 -0
  40. data/node_modules/prettier/plugins/html.mjs +19 -0
  41. data/node_modules/prettier/plugins/markdown.d.ts +7 -0
  42. data/node_modules/prettier/plugins/markdown.js +59 -0
  43. data/node_modules/prettier/plugins/markdown.mjs +59 -0
  44. data/node_modules/prettier/plugins/meriyah.d.ts +5 -0
  45. data/node_modules/prettier/plugins/meriyah.js +5 -0
  46. data/node_modules/prettier/plugins/meriyah.mjs +5 -0
  47. data/node_modules/prettier/plugins/postcss.d.ts +7 -0
  48. data/node_modules/prettier/plugins/postcss.js +52 -0
  49. data/node_modules/prettier/plugins/postcss.mjs +52 -0
  50. data/node_modules/prettier/plugins/typescript.d.ts +5 -0
  51. data/node_modules/prettier/plugins/typescript.js +27 -0
  52. data/node_modules/prettier/plugins/typescript.mjs +27 -0
  53. data/node_modules/prettier/plugins/yaml.d.ts +5 -0
  54. data/node_modules/prettier/plugins/yaml.js +161 -0
  55. data/node_modules/prettier/plugins/yaml.mjs +161 -0
  56. data/node_modules/prettier/standalone.d.ts +33 -0
  57. data/node_modules/prettier/standalone.js +34 -0
  58. data/node_modules/prettier/standalone.mjs +34 -0
  59. data/package.json +15 -10
  60. data/src/plugin.js +210 -14
  61. data/src/server.rb +50 -87
  62. metadata +60 -28
  63. data/CONTRIBUTING.md +0 -185
  64. data/node_modules/prettier/cli.js +0 -15085
  65. data/node_modules/prettier/index.js +0 -37282
  66. data/node_modules/prettier/parser-angular.js +0 -2
  67. data/node_modules/prettier/parser-babel.js +0 -27
  68. data/node_modules/prettier/parser-espree.js +0 -26
  69. data/node_modules/prettier/parser-flow.js +0 -35
  70. data/node_modules/prettier/parser-glimmer.js +0 -27
  71. data/node_modules/prettier/parser-graphql.js +0 -15
  72. data/node_modules/prettier/parser-html.js +0 -36
  73. data/node_modules/prettier/parser-markdown.js +0 -76
  74. data/node_modules/prettier/parser-meriyah.js +0 -19
  75. data/node_modules/prettier/parser-postcss.js +0 -76
  76. data/node_modules/prettier/parser-typescript.js +0 -280
  77. data/node_modules/prettier/parser-yaml.js +0 -150
  78. data/node_modules/prettier/third-party.js +0 -8978
  79. data/src/getInfo.js +0 -23
  80. data/src/netcat.js +0 -13
  81. data/src/parseSync.js +0 -236
data/src/plugin.js CHANGED
@@ -1,10 +1,190 @@
1
- const { parseSync } = require("./parseSync");
1
+ import { spawn } from "child_process";
2
+ import fs from "fs";
3
+ import net from "net";
4
+ import os from "os";
5
+ import path from "path";
6
+ import process from "process";
7
+ import url from "url";
2
8
 
3
- /*
4
- * metadata mostly pulled from linguist and rubocop:
5
- * https://github.com/github/linguist/blob/master/lib/linguist/languages.yml
6
- * https://github.com/rubocop/rubocop/blob/master/spec/rubocop/target_finder_spec.rb
7
- */
9
+ // In order to properly parse ruby code, we need to tell the ruby process to
10
+ // parse using UTF-8. Unfortunately, the way that you accomplish this looks
11
+ // differently depending on your platform.
12
+ function getLang() {
13
+ const { env, platform } = process;
14
+ const envValue = env.LC_ALL || env.LC_CTYPE || env.LANG;
15
+
16
+ // If an env var is set for the locale that already includes UTF-8 in the
17
+ // name, then assume we can go with that.
18
+ if (envValue && envValue.includes("UTF-8")) {
19
+ return envValue;
20
+ }
21
+
22
+ // Otherwise, we're going to guess which encoding to use based on the system.
23
+ // This is probably not the best approach in the world, as you could be on
24
+ // linux and not have C.UTF-8, but in that case you're probably passing an env
25
+ // var for it. This object below represents all of the possible values of
26
+ // process.platform per:
27
+ // https://nodejs.org/api/process.html#process_process_platform
28
+ return {
29
+ aix: "C.UTF-8",
30
+ android: "C.UTF-8",
31
+ cygwin: "C.UTF-8",
32
+ darwin: "en_US.UTF-8",
33
+ freebsd: "C.UTF-8",
34
+ haiku: "C.UTF-8",
35
+ linux: "C.UTF-8",
36
+ netbsd: "C.UTF-8",
37
+ openbsd: "C.UTF-8",
38
+ sunos: "C.UTF-8",
39
+ win32: ".UTF-8"
40
+ }[platform];
41
+ }
42
+
43
+ // Return the list of plugins that should be passed to the server process.
44
+ function getPlugins(opts) {
45
+ const plugins = new Set();
46
+
47
+ const rubyPlugins = opts.rubyPlugins.trim();
48
+ if (rubyPlugins.length > 0) {
49
+ rubyPlugins.split(",").forEach((plugin) => plugins.add(plugin.trim()));
50
+ }
51
+
52
+ if (opts.rubySingleQuote) {
53
+ plugins.add("plugin/single_quotes");
54
+ }
55
+
56
+ if (opts.trailingComma !== "none") {
57
+ plugins.add("plugin/trailing_comma");
58
+ }
59
+
60
+ return Array.from(plugins);
61
+ }
62
+
63
+ // Create a file that will act as a communication mechanism, spawn a parser
64
+ // server with that filepath as an argument, then wait for the file to be
65
+ // created that will contain the connection information.
66
+ export async function spawnServer(opts, killOnExit = true) {
67
+ const tmpdir = os.tmpdir();
68
+ const filepath = path.join(tmpdir, `prettier-ruby-parser-${process.pid}.txt`);
69
+
70
+ const server = spawn(
71
+ opts.rubyExecutablePath || "ruby",
72
+ [
73
+ url.fileURLToPath(new URL("./server.rb", import.meta.url)),
74
+ `--plugins=${getPlugins(opts).join(",")}`,
75
+ filepath
76
+ ],
77
+ {
78
+ env: Object.assign({}, process.env, { LANG: getLang() }),
79
+ stdio: ["ignore", "ignore", "inherit"],
80
+ detached: true
81
+ }
82
+ );
83
+
84
+ server.unref();
85
+
86
+ if (killOnExit) {
87
+ process.on("exit", () => {
88
+ if (fs.existsSync(filepath)) {
89
+ fs.unlinkSync(filepath);
90
+ }
91
+
92
+ try {
93
+ if (server.pid) {
94
+ // Kill the server process if it's still running. If we're on windows
95
+ // we're going to use the process ID number. If we're not, we're going
96
+ // to use the negative process ID to indicate the group.
97
+ const pid = process.platform === "win32" ? server.pid : -server.pid;
98
+ process.kill(pid);
99
+ }
100
+ } catch (error) {
101
+ // If there's an error killing the process, we're going to ignore it.
102
+ }
103
+ });
104
+ }
105
+
106
+ return new Promise((resolve, reject) => {
107
+ const interval = setInterval(() => {
108
+ if (fs.existsSync(filepath)) {
109
+ const connectionJSON = fs.readFileSync(filepath).toString("utf-8");
110
+ resolve({
111
+ serverPID: server.pid,
112
+ connectionFilepath: filepath,
113
+ connectionOptions: JSON.parse(connectionJSON)
114
+ });
115
+
116
+ clearTimeout(timeout);
117
+ clearInterval(interval);
118
+ } else if (server.exitCode) {
119
+ reject(new Error("Failed to start parse server."));
120
+ clearTimeout(timeout);
121
+ clearInterval(interval);
122
+ }
123
+ }, 100);
124
+
125
+ const timeout = setTimeout(
126
+ () => {
127
+ const message =
128
+ "Failed to get connection options from parse server in time. If this happens repeatedly, try increasing the PRETTIER_RUBY_TIMEOUT_MS environment variable beyond 10000.";
129
+
130
+ clearInterval(interval);
131
+ reject(new Error(message));
132
+ },
133
+ parseInt(process.env.PRETTIER_RUBY_TIMEOUT_MS || "10000", 10)
134
+ );
135
+ });
136
+ }
137
+
138
+ let connectionOptions;
139
+ if (process.env.PRETTIER_RUBY_HOST) {
140
+ connectionOptions = JSON.parse(process.env.PRETTIER_RUBY_HOST);
141
+ }
142
+
143
+ // Formats and sends a request to the parser server. We use netcat (or something
144
+ // like it) here since Prettier requires the results of `parse` to be
145
+ // synchronous and Node.js does not offer a mechanism for synchronous socket
146
+ // requests.
147
+ async function parse(parser, source, opts) {
148
+ if (!connectionOptions) {
149
+ const spawnedServer = await spawnServer(opts);
150
+ connectionOptions = spawnedServer.connectionOptions;
151
+ }
152
+
153
+ return new Promise((resolve, reject) => {
154
+ const socket = new net.Socket();
155
+
156
+ socket.on("error", reject);
157
+ socket.on("data", (data) => {
158
+ const response = JSON.parse(data.toString("utf-8"));
159
+
160
+ if (response.error) {
161
+ const error = new Error(response.error);
162
+ if (response.loc) {
163
+ error.loc = response.loc;
164
+ }
165
+
166
+ reject(error);
167
+ }
168
+
169
+ resolve(response);
170
+ });
171
+
172
+ socket.connect(connectionOptions, () => {
173
+ socket.end(
174
+ JSON.stringify({
175
+ parser,
176
+ source,
177
+ maxwidth: opts.printWidth,
178
+ tabwidth: opts.tabWidth
179
+ })
180
+ );
181
+ });
182
+ });
183
+ }
184
+
185
+ // Metadata mostly pulled from linguist and rubocop:
186
+ // https://github.com/github/linguist/blob/master/lib/linguist/languages.yml
187
+ // https://github.com/rubocop/rubocop/blob/master/spec/rubocop/target_finder_spec.rb
8
188
  const plugin = {
9
189
  languages: [
10
190
  {
@@ -81,8 +261,8 @@ const plugin = {
81
261
  ],
82
262
  parsers: {
83
263
  ruby: {
84
- parse(text, _parsers, opts) {
85
- return parseSync("ruby", text, opts);
264
+ parse(text, opts) {
265
+ return parse("ruby", text, opts);
86
266
  },
87
267
  astFormat: "ruby",
88
268
  hasPragma(text) {
@@ -96,8 +276,8 @@ const plugin = {
96
276
  }
97
277
  },
98
278
  rbs: {
99
- parse(text, _parsers, opts) {
100
- return parseSync("rbs", text, opts);
279
+ parse(text, opts) {
280
+ return parse("rbs", text, opts);
101
281
  },
102
282
  astFormat: "rbs",
103
283
  hasPragma(text) {
@@ -111,8 +291,8 @@ const plugin = {
111
291
  }
112
292
  },
113
293
  haml: {
114
- parse(text, _parsers, opts) {
115
- return parseSync("haml", text, opts);
294
+ parse(text, opts) {
295
+ return parse("haml", text, opts);
116
296
  },
117
297
  astFormat: "haml",
118
298
  hasPragma(text) {
@@ -157,8 +337,24 @@ const plugin = {
157
337
  type: "string",
158
338
  category: "Ruby",
159
339
  default: "",
160
- description: "The comma-separated list of plugins to require",
340
+ description: "The comma-separated list of plugins to require.",
161
341
  since: "3.1.0"
342
+ },
343
+ rubySingleQuote: {
344
+ type: "boolean",
345
+ category: "Ruby",
346
+ default: false,
347
+ description:
348
+ "When double quotes are not necessary for interpolation, prefers the use of single quotes for string literals.",
349
+ since: "1.0.0"
350
+ },
351
+ rubyExecutablePath: {
352
+ type: "string",
353
+ category: "Ruby",
354
+ default: "ruby",
355
+ description:
356
+ "The path to the Ruby executable to use to run the formatter.",
357
+ since: "3.3.0"
162
358
  }
163
359
  },
164
360
  defaultOptions: {
@@ -169,4 +365,4 @@ const plugin = {
169
365
  }
170
366
  };
171
367
 
172
- module.exports = plugin;
368
+ export default plugin;
data/src/server.rb CHANGED
@@ -1,10 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "bundler/setup"
4
- require "socket"
5
4
  require "json"
6
- require "fileutils"
7
- require "open3"
5
+ require "socket"
8
6
 
9
7
  require "prettier_print"
10
8
  require "syntax_tree"
@@ -16,6 +14,9 @@ ARGV.shift[/^--plugins=(.*)$/, 1]
16
14
  .split(",")
17
15
  .each { |plugin| require "syntax_tree/#{plugin}" }
18
16
 
17
+ # Next, get the file where we should write our connection information.
18
+ connection_filepath = ARGV.shift
19
+
19
20
  # Make sure we trap these signals to be sure we get the quit command coming from
20
21
  # the parent node process
21
22
  quit = false
@@ -26,47 +27,38 @@ if Signal.list.key?("QUIT") && RUBY_ENGINE != "jruby"
26
27
  trap(:QUIT) { quit = true }
27
28
  end
28
29
 
29
- # The information variable stores the actual connection information, which will
30
- # either be an IP address and port or a path to a unix socket file.
31
- information = ""
32
-
33
- # The candidates array is a list of potential programs that could be used to
34
- # connect to our server. We'll run through them after the server starts to find
35
- # the best one to use.
36
- candidates = []
37
-
38
- if Gem.win_platform?
39
- # If we're on windows, we're going to start up a TCP server. The 0 here means
40
- # to bind to some available port.
41
- server = TCPServer.new("127.0.0.1", 0)
42
- address = server.local_address
43
-
44
- # Ensure that we close the server when this process exits.
45
- at_exit { server.close }
46
-
47
- information = "#{address.ip_address} #{address.ip_port}"
48
- candidates = %w[nc telnet]
49
- else
50
- # If we're not on windows, then we're going to assume we can use unix socket
51
- # files (since they're faster than a TCP server).
52
- filepath = "/tmp/prettier-ruby-parser-#{Process.pid}.sock"
53
- server = UNIXServer.new(filepath)
54
-
55
- # Ensure that we close the server and delete the socket file when this
56
- # process exits.
57
- at_exit do
58
- server.close
59
- File.unlink(filepath)
60
- end
30
+ connection_information =
31
+ if Gem.win_platform?
32
+ # If we're on windows, we're going to start up a TCP server. The 0 here
33
+ # means to bind to some available port.
34
+ server = TCPServer.new(0)
35
+ address = server.local_address
36
+
37
+ # Ensure that we close the server when this process exits.
38
+ at_exit { server.close }
39
+
40
+ # Return the connection information.
41
+ { address: address.ip_address, port: address.ip_port }
42
+ else
43
+ # If we're not on windows, then we're going to assume we can use unix socket
44
+ # files (since they're faster than a TCP server).
45
+ filepath = "/tmp/prettier-ruby-parser-#{Process.pid}.sock"
46
+ server = UNIXServer.new(filepath)
47
+
48
+ # Ensure that we close the server and delete the socket file when this
49
+ # process exits.
50
+ at_exit do
51
+ server.close
52
+ File.unlink(filepath)
53
+ end
61
54
 
62
- information = server.local_address.unix_path
63
- candidates = ["nc -w 3 -U", "ncat -w 3 -U"]
64
- end
55
+ # Return the connection information.
56
+ { path: server.local_address.unix_path }
57
+ end
65
58
 
66
59
  # This is the actual listening thread that will be acting as our server. We have
67
- # to start it in another thread to begin with so that we can run through our
68
- # candidate connection programs. Eventually we'll just join into this thread
69
- # though and it will act as a daemon.
60
+ # to start it in another thread in order to properly trap the signals in this
61
+ # parent thread.
70
62
  listener =
71
63
  Thread.new do
72
64
  loop do
@@ -74,8 +66,8 @@ listener =
74
66
 
75
67
  # Start up a new thread that will handle each successive connection.
76
68
  Thread.new(server.accept_nonblock) do |socket|
77
- parser, maxwidth_string, tabwidth_string, source =
78
- socket.read.force_encoding("UTF-8").split("|", 4)
69
+ request = JSON.parse(socket.read.force_encoding("UTF-8"))
70
+ source = request["source"]
79
71
 
80
72
  source.each_line do |line|
81
73
  case line
@@ -95,14 +87,12 @@ listener =
95
87
  # At the moment, we're not going to support odd tabwidths. It's going to
96
88
  # have to be a multiple of 2, because of the way that the prettyprint
97
89
  # gem functions. So we're going to just use integer division here.
98
- scalar = tabwidth_string.to_i / 2
90
+ scalar = request["tabwidth"].to_i / 2
99
91
  genspace = ->(n) { " " * n * scalar }
100
92
 
101
- maxwidth = maxwidth_string.to_i
93
+ maxwidth = request["maxwidth"].to_i
102
94
  response =
103
- case parser
104
- when "ping"
105
- "pong"
95
+ case request["parser"]
106
96
  when "ruby"
107
97
  formatter =
108
98
  SyntaxTree::Formatter.new(source, [], maxwidth, "\n", &genspace)
@@ -122,16 +112,19 @@ listener =
122
112
  formatter.flush
123
113
  formatter.output.join
124
114
  when "haml"
125
- formatter_class =
115
+ formatter =
126
116
  if defined?(SyntaxTree::Haml::Format::Formatter)
127
- SyntaxTree::Haml::Format::Formatter
117
+ SyntaxTree::Haml::Format::Formatter.new(
118
+ source,
119
+ +"",
120
+ maxwidth,
121
+ "\n",
122
+ &genspace
123
+ )
128
124
  else
129
- PrettierPrint
125
+ PrettierPrint.new(+"", maxwidth, "\n", &genspace)
130
126
  end
131
127
 
132
- formatter =
133
- formatter_class.new(source, +"", maxwidth, "\n", &genspace)
134
-
135
128
  SyntaxTree::Haml.parse(source).format(formatter)
136
129
  formatter.flush
137
130
  formatter.output
@@ -149,8 +142,8 @@ listener =
149
142
  begin
150
143
  socket.write(JSON.fast_generate(error: error.message))
151
144
  rescue Errno::EPIPE
152
- # Do nothing, the pipe has been closed by the parent process so we don't
153
- # actually care about writing to it anymore.
145
+ # Do nothing, the pipe has been closed by the parent process so we
146
+ # don't actually care about writing to it anymore.
154
147
  end
155
148
  ensure
156
149
  socket.close
@@ -165,35 +158,5 @@ listener =
165
158
  end
166
159
  end
167
160
 
168
- # Map each candidate connection method to a thread that will check if it works.
169
- candidates.map! do |candidate|
170
- Thread.new do
171
- Thread.current.report_on_exception = false
172
-
173
- # We do not care about stderr here, so throw it away
174
- stdout, _stderr, status =
175
- Open3.capture3("#{candidate} #{information}", stdin_data: "ping")
176
-
177
- candidate if JSON.parse(stdout) == "pong" && status.exitstatus == 0
178
- rescue StandardError
179
- # We don't actually care if this fails, because we'll just skip that
180
- # connection option.
181
- end
182
- end
183
-
184
- # Find the first one prefix that successfully returned the correct value.
185
- prefix =
186
- candidates.detect do |candidate|
187
- value = candidate.value
188
- break value if value
189
- end
190
-
191
- # Default to running the netcat.js script that we ship with the plugin. It's a
192
- # good fallback as it will always work, but it is slower than the other options.
193
- prefix ||= "node #{File.expand_path("netcat.js", __dir__)}"
194
-
195
- # Write out our connection information to the file given as the first argument
196
- # to this script.
197
- File.write(ARGV[0], "#{prefix} #{information}")
198
-
161
+ File.write(connection_filepath, JSON.fast_generate(connection_information))
199
162
  listener.join
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prettier
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.2
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Newton
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-09-20 00:00:00.000000000 Z
11
+ date: 2023-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: syntax_tree
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 2.7.1
19
+ version: 4.0.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 2.7.1
26
+ version: 4.0.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: syntax_tree-haml
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 1.1.0
33
+ version: 2.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 1.1.0
40
+ version: 2.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: syntax_tree-rbs
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -103,35 +103,67 @@ extra_rdoc_files: []
103
103
  files:
104
104
  - CHANGELOG.md
105
105
  - CODE_OF_CONDUCT.md
106
- - CONTRIBUTING.md
107
106
  - LICENSE
108
107
  - README.md
109
108
  - exe/rbprettier
110
109
  - lib/prettier.rb
111
110
  - lib/prettier/rake/task.rb
112
- - node_modules/prettier/bin-prettier.js
113
- - node_modules/prettier/cli.js
111
+ - node_modules/prettier/LICENSE
112
+ - node_modules/prettier/README.md
113
+ - node_modules/prettier/bin/prettier.cjs
114
+ - node_modules/prettier/doc.d.ts
114
115
  - node_modules/prettier/doc.js
115
- - node_modules/prettier/index.js
116
+ - node_modules/prettier/doc.mjs
117
+ - node_modules/prettier/index.cjs
118
+ - node_modules/prettier/index.d.ts
119
+ - node_modules/prettier/index.mjs
120
+ - node_modules/prettier/internal/cli.mjs
121
+ - node_modules/prettier/internal/internal.mjs
116
122
  - node_modules/prettier/package.json
117
- - node_modules/prettier/parser-angular.js
118
- - node_modules/prettier/parser-babel.js
119
- - node_modules/prettier/parser-espree.js
120
- - node_modules/prettier/parser-flow.js
121
- - node_modules/prettier/parser-glimmer.js
122
- - node_modules/prettier/parser-graphql.js
123
- - node_modules/prettier/parser-html.js
124
- - node_modules/prettier/parser-markdown.js
125
- - node_modules/prettier/parser-meriyah.js
126
- - node_modules/prettier/parser-postcss.js
127
- - node_modules/prettier/parser-typescript.js
128
- - node_modules/prettier/parser-yaml.js
129
- - node_modules/prettier/third-party.js
123
+ - node_modules/prettier/plugins/acorn.d.ts
124
+ - node_modules/prettier/plugins/acorn.js
125
+ - node_modules/prettier/plugins/acorn.mjs
126
+ - node_modules/prettier/plugins/angular.d.ts
127
+ - node_modules/prettier/plugins/angular.js
128
+ - node_modules/prettier/plugins/angular.mjs
129
+ - node_modules/prettier/plugins/babel.d.ts
130
+ - node_modules/prettier/plugins/babel.js
131
+ - node_modules/prettier/plugins/babel.mjs
132
+ - node_modules/prettier/plugins/estree.d.ts
133
+ - node_modules/prettier/plugins/estree.js
134
+ - node_modules/prettier/plugins/estree.mjs
135
+ - node_modules/prettier/plugins/flow.d.ts
136
+ - node_modules/prettier/plugins/flow.js
137
+ - node_modules/prettier/plugins/flow.mjs
138
+ - node_modules/prettier/plugins/glimmer.d.ts
139
+ - node_modules/prettier/plugins/glimmer.js
140
+ - node_modules/prettier/plugins/glimmer.mjs
141
+ - node_modules/prettier/plugins/graphql.d.ts
142
+ - node_modules/prettier/plugins/graphql.js
143
+ - node_modules/prettier/plugins/graphql.mjs
144
+ - node_modules/prettier/plugins/html.d.ts
145
+ - node_modules/prettier/plugins/html.js
146
+ - node_modules/prettier/plugins/html.mjs
147
+ - node_modules/prettier/plugins/markdown.d.ts
148
+ - node_modules/prettier/plugins/markdown.js
149
+ - node_modules/prettier/plugins/markdown.mjs
150
+ - node_modules/prettier/plugins/meriyah.d.ts
151
+ - node_modules/prettier/plugins/meriyah.js
152
+ - node_modules/prettier/plugins/meriyah.mjs
153
+ - node_modules/prettier/plugins/postcss.d.ts
154
+ - node_modules/prettier/plugins/postcss.js
155
+ - node_modules/prettier/plugins/postcss.mjs
156
+ - node_modules/prettier/plugins/typescript.d.ts
157
+ - node_modules/prettier/plugins/typescript.js
158
+ - node_modules/prettier/plugins/typescript.mjs
159
+ - node_modules/prettier/plugins/yaml.d.ts
160
+ - node_modules/prettier/plugins/yaml.js
161
+ - node_modules/prettier/plugins/yaml.mjs
162
+ - node_modules/prettier/standalone.d.ts
163
+ - node_modules/prettier/standalone.js
164
+ - node_modules/prettier/standalone.mjs
130
165
  - package.json
131
166
  - rubocop.yml
132
- - src/getInfo.js
133
- - src/netcat.js
134
- - src/parseSync.js
135
167
  - src/plugin.js
136
168
  - src/server.rb
137
169
  homepage: https://github.com/prettier/plugin-ruby#readme
@@ -146,14 +178,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
146
178
  requirements:
147
179
  - - ">="
148
180
  - !ruby/object:Gem::Version
149
- version: 2.7.3
181
+ version: 2.7.0
150
182
  required_rubygems_version: !ruby/object:Gem::Requirement
151
183
  requirements:
152
184
  - - ">="
153
185
  - !ruby/object:Gem::Version
154
186
  version: '0'
155
187
  requirements: []
156
- rubygems_version: 3.3.21
188
+ rubygems_version: 3.4.1
157
189
  signing_key:
158
190
  specification_version: 4
159
191
  summary: prettier plugin for the Ruby programming language