prettier 3.2.2 → 4.0.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 (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