js-beautify 1.8.4 → 1.8.8
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.
- package/CHANGELOG.md +33 -10
- package/README.md +18 -15
- package/js/lib/beautifier.js +108 -46
- package/js/lib/beautifier.min.js +1 -1
- package/js/lib/beautify-css.js +12 -7
- package/js/lib/beautify-html.js +62 -39
- package/js/lib/beautify.js +56 -15
- package/js/lib/cli.js +5 -3
- package/js/lib/unpackers/javascriptobfuscator_unpacker.js +2 -2
- package/js/lib/unpackers/myobfuscate_unpacker.js +2 -2
- package/js/lib/unpackers/p_a_c_k_e_r_unpacker.js +1 -1
- package/js/lib/unpackers/urlencode_unpacker.js +2 -2
- package/js/src/cli.js +5 -3
- package/js/src/core/directives.js +1 -1
- package/js/src/core/inputscanner.js +1 -1
- package/js/src/core/options.js +4 -5
- package/js/src/core/output.js +1 -1
- package/js/src/core/token.js +1 -1
- package/js/src/core/tokenizer.js +1 -1
- package/js/src/core/tokenstream.js +1 -1
- package/js/src/css/beautifier.js +2 -2
- package/js/src/css/index.js +1 -1
- package/js/src/css/options.js +1 -1
- package/js/src/css/tokenizer.js +1 -1
- package/js/src/html/beautifier.js +46 -33
- package/js/src/html/index.js +1 -1
- package/js/src/html/options.js +2 -2
- package/js/src/html/tokenizer.js +1 -1
- package/js/src/index.js +1 -1
- package/js/src/javascript/acorn.js +1 -1
- package/js/src/javascript/beautifier.js +23 -2
- package/js/src/javascript/index.js +1 -1
- package/js/src/javascript/options.js +3 -1
- package/js/src/javascript/tokenizer.js +15 -8
- package/js/src/unpackers/javascriptobfuscator_unpacker.js +2 -2
- package/js/src/unpackers/myobfuscate_unpacker.js +2 -2
- package/js/src/unpackers/p_a_c_k_e_r_unpacker.js +1 -1
- package/js/src/unpackers/urlencode_unpacker.js +2 -2
- package/package.json +5 -5
package/js/src/core/output.js
CHANGED
package/js/src/core/token.js
CHANGED
package/js/src/core/tokenizer.js
CHANGED
package/js/src/css/beautifier.js
CHANGED
|
@@ -373,7 +373,7 @@ Beautifier.prototype.beautify = function() {
|
|
|
373
373
|
this.print_string(this._ch);
|
|
374
374
|
this.eatWhitespace();
|
|
375
375
|
this._ch = this._input.next();
|
|
376
|
-
if (this._ch === ')' || this._ch === '"' || this._ch
|
|
376
|
+
if (this._ch === ')' || this._ch === '"' || this._ch === '\'') {
|
|
377
377
|
this._input.back();
|
|
378
378
|
parenLevel++;
|
|
379
379
|
} else if (this._ch) {
|
|
@@ -435,4 +435,4 @@ Beautifier.prototype.beautify = function() {
|
|
|
435
435
|
return sweetCode;
|
|
436
436
|
};
|
|
437
437
|
|
|
438
|
-
module.exports.Beautifier = Beautifier;
|
|
438
|
+
module.exports.Beautifier = Beautifier;
|
package/js/src/css/index.js
CHANGED
package/js/src/css/options.js
CHANGED
package/js/src/css/tokenizer.js
CHANGED
|
@@ -60,23 +60,25 @@ Printer.prototype.add_raw_token = function(token) {
|
|
|
60
60
|
this._output.add_raw_token(token);
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
Printer.prototype.
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
Printer.prototype.print_preserved_newlines = function(raw_token) {
|
|
64
|
+
var newlines = 0;
|
|
65
|
+
if (raw_token.type !== TOKEN.TEXT && raw_token.previous.type !== TOKEN.TEXT) {
|
|
66
|
+
newlines = raw_token.newlines ? 1 : 0;
|
|
67
|
+
}
|
|
66
68
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
if (this.preserve_newlines) {
|
|
70
|
+
newlines = raw_token.newlines < this.max_preserve_newlines + 1 ? raw_token.newlines : this.max_preserve_newlines + 1;
|
|
71
|
+
}
|
|
72
|
+
for (var n = 0; n < newlines; n++) {
|
|
73
|
+
this.print_newline(n > 0);
|
|
74
|
+
}
|
|
70
75
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
76
|
+
return newlines !== 0;
|
|
77
|
+
};
|
|
74
78
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
} else {
|
|
79
|
+
Printer.prototype.traverse_whitespace = function(raw_token) {
|
|
80
|
+
if (raw_token.whitespace_before || raw_token.newlines) {
|
|
81
|
+
if (!this.print_preserved_newlines(raw_token)) {
|
|
80
82
|
this._output.space_before_token = true;
|
|
81
83
|
this.print_space_or_wrap(raw_token.text);
|
|
82
84
|
}
|
|
@@ -241,6 +243,8 @@ function Beautifier(source_text, options, js_beautify, css_beautify) {
|
|
|
241
243
|
this._is_wrap_attributes_force_expand_multiline = (this._options.wrap_attributes === 'force-expand-multiline');
|
|
242
244
|
this._is_wrap_attributes_force_aligned = (this._options.wrap_attributes === 'force-aligned');
|
|
243
245
|
this._is_wrap_attributes_aligned_multiple = (this._options.wrap_attributes === 'aligned-multiple');
|
|
246
|
+
this._is_wrap_attributes_preserve = this._options.wrap_attributes.substr(0, 'preserve'.length) === 'preserve';
|
|
247
|
+
this._is_wrap_attributes_preserve_aligned = (this._options.wrap_attributes === 'preserve-aligned');
|
|
244
248
|
}
|
|
245
249
|
|
|
246
250
|
Beautifier.prototype.beautify = function() {
|
|
@@ -339,25 +343,37 @@ Beautifier.prototype._handle_inside_tag = function(printer, raw_token, last_tag_
|
|
|
339
343
|
printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== '');
|
|
340
344
|
if (last_tag_token.is_unformatted) {
|
|
341
345
|
printer.add_raw_token(raw_token);
|
|
346
|
+
} else if (last_tag_token.tag_start_char === '{' && raw_token.type === TOKEN.TEXT) {
|
|
347
|
+
// For the insides of handlebars allow newlines or a single space between open and contents
|
|
348
|
+
if (printer.print_preserved_newlines(raw_token)) {
|
|
349
|
+
printer.print_raw_text(raw_token.whitespace_before + raw_token.text);
|
|
350
|
+
} else {
|
|
351
|
+
printer.print_token(raw_token.text);
|
|
352
|
+
}
|
|
342
353
|
} else {
|
|
343
|
-
if (
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
printer.set_space_before_token(false);
|
|
351
|
-
}
|
|
354
|
+
if (raw_token.type === TOKEN.ATTRIBUTE) {
|
|
355
|
+
printer.set_space_before_token(true);
|
|
356
|
+
last_tag_token.attr_count += 1;
|
|
357
|
+
} else if (raw_token.type === TOKEN.EQUALS) { //no space before =
|
|
358
|
+
printer.set_space_before_token(false);
|
|
359
|
+
} else if (raw_token.type === TOKEN.VALUE && raw_token.previous.type === TOKEN.EQUALS) { //no space before value
|
|
360
|
+
printer.set_space_before_token(false);
|
|
352
361
|
}
|
|
353
362
|
|
|
354
363
|
if (printer._output.space_before_token && last_tag_token.tag_start_char === '<') {
|
|
364
|
+
// Allow the current attribute to wrap
|
|
365
|
+
// Set wrapped to true if the line is wrapped
|
|
355
366
|
var wrapped = printer.print_space_or_wrap(raw_token.text);
|
|
356
367
|
if (raw_token.type === TOKEN.ATTRIBUTE) {
|
|
357
|
-
|
|
368
|
+
if (this._is_wrap_attributes_preserve || this._is_wrap_attributes_preserve_aligned) {
|
|
369
|
+
printer.traverse_whitespace(raw_token);
|
|
370
|
+
wrapped = wrapped || raw_token.newlines !== 0;
|
|
371
|
+
}
|
|
372
|
+
// Save whether we have wrapped any attributes
|
|
373
|
+
last_tag_token.has_wrapped_attrs = last_tag_token.has_wrapped_attrs || wrapped;
|
|
358
374
|
|
|
359
375
|
if (this._is_wrap_attributes_force) {
|
|
360
|
-
var
|
|
376
|
+
var force_attr_wrap = last_tag_token.attr_count > 1;
|
|
361
377
|
if (this._is_wrap_attributes_force_expand_multiline && last_tag_token.attr_count === 1) {
|
|
362
378
|
var is_only_attribute = true;
|
|
363
379
|
var peek_index = 0;
|
|
@@ -371,17 +387,14 @@ Beautifier.prototype._handle_inside_tag = function(printer, raw_token, last_tag_
|
|
|
371
387
|
peek_index += 1;
|
|
372
388
|
} while (peek_index < 4 && peek_token.type !== TOKEN.EOF && peek_token.type !== TOKEN.TAG_CLOSE);
|
|
373
389
|
|
|
374
|
-
|
|
390
|
+
force_attr_wrap = !is_only_attribute;
|
|
375
391
|
}
|
|
376
392
|
|
|
377
|
-
if (
|
|
393
|
+
if (force_attr_wrap) {
|
|
378
394
|
printer.print_newline(false);
|
|
379
|
-
|
|
395
|
+
last_tag_token.has_wrapped_attrs = true;
|
|
380
396
|
}
|
|
381
397
|
}
|
|
382
|
-
if (indentAttrs) {
|
|
383
|
-
last_tag_token.has_wrapped_attrs = true;
|
|
384
|
-
}
|
|
385
398
|
}
|
|
386
399
|
}
|
|
387
400
|
printer.print_token(raw_token.text);
|
|
@@ -465,7 +478,7 @@ Beautifier.prototype._handle_tag_open = function(printer, raw_token, last_tag_to
|
|
|
465
478
|
}
|
|
466
479
|
|
|
467
480
|
//indent attributes an auto, forced, aligned or forced-align line-wrap
|
|
468
|
-
if (this._is_wrap_attributes_force_aligned || this._is_wrap_attributes_aligned_multiple) {
|
|
481
|
+
if (this._is_wrap_attributes_force_aligned || this._is_wrap_attributes_aligned_multiple || this._is_wrap_attributes_preserve_aligned) {
|
|
469
482
|
parser_token.alignment_size = raw_token.text.length + 1;
|
|
470
483
|
}
|
|
471
484
|
|
|
@@ -733,4 +746,4 @@ Beautifier.prototype._do_optional_end_element = function(parser_token) {
|
|
|
733
746
|
|
|
734
747
|
};
|
|
735
748
|
|
|
736
|
-
module.exports.Beautifier = Beautifier;
|
|
749
|
+
module.exports.Beautifier = Beautifier;
|
package/js/src/html/index.js
CHANGED
package/js/src/html/options.js
CHANGED
|
@@ -39,7 +39,7 @@ function Options(options) {
|
|
|
39
39
|
|
|
40
40
|
this.indent_handlebars = this._get_boolean('indent_handlebars', true);
|
|
41
41
|
this.wrap_attributes = this._get_selection('wrap_attributes',
|
|
42
|
-
['auto', 'force', 'force-aligned', 'force-expand-multiline', 'aligned-multiple']);
|
|
42
|
+
['auto', 'force', 'force-aligned', 'force-expand-multiline', 'aligned-multiple', 'preserve', 'preserve-aligned']);
|
|
43
43
|
this.wrap_attributes_indent_size = this._get_number('wrap_attributes_indent_size', this.indent_size);
|
|
44
44
|
this.extra_liners = this._get_array('extra_liners', ['head', 'body', '/html']);
|
|
45
45
|
|
|
@@ -79,4 +79,4 @@ Options.prototype = new BaseOptions();
|
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
|
|
82
|
-
module.exports.Options = Options;
|
|
82
|
+
module.exports.Options = Options;
|
package/js/src/html/tokenizer.js
CHANGED
package/js/src/index.js
CHANGED
|
@@ -53,4 +53,4 @@ exports.newline = /[\n\r\u2028\u2029]/;
|
|
|
53
53
|
// in javascript, these two differ
|
|
54
54
|
// in python they are the same, different methods are called on them
|
|
55
55
|
exports.lineBreak = new RegExp('\r\n|' + exports.newline.source);
|
|
56
|
-
exports.allLineBreaks = new RegExp(exports.lineBreak.source, 'g');
|
|
56
|
+
exports.allLineBreaks = new RegExp(exports.lineBreak.source, 'g');
|
|
@@ -473,7 +473,7 @@ Beautifier.prototype.start_of_statement = function(current_token) {
|
|
|
473
473
|
var start = false;
|
|
474
474
|
start = start || reserved_array(this._flags.last_token, ['var', 'let', 'const']) && current_token.type === TOKEN.WORD;
|
|
475
475
|
start = start || reserved_word(this._flags.last_token, 'do');
|
|
476
|
-
start = start || (reserved_array(this._flags.last_token, newline_restricted_tokens) && !current_token.newlines
|
|
476
|
+
start = start || (!(this._flags.parent.mode === MODE.ObjectLiteral && this._flags.mode === MODE.Statement)) && reserved_array(this._flags.last_token, newline_restricted_tokens) && !current_token.newlines;
|
|
477
477
|
start = start || reserved_word(this._flags.last_token, 'else') &&
|
|
478
478
|
!(reserved_word(current_token, 'if') && !current_token.comments_before);
|
|
479
479
|
start = start || (this._flags.last_token.type === TOKEN.END_EXPR && (this._previous_flags.mode === MODE.ForInitializer || this._previous_flags.mode === MODE.Conditional));
|
|
@@ -567,6 +567,19 @@ Beautifier.prototype.handle_start_expr = function(current_token) {
|
|
|
567
567
|
}
|
|
568
568
|
} else if (this._flags.last_token.type === TOKEN.WORD) {
|
|
569
569
|
this._output.space_before_token = false;
|
|
570
|
+
|
|
571
|
+
// function name() vs function name ()
|
|
572
|
+
// function* name() vs function* name ()
|
|
573
|
+
// async name() vs async name ()
|
|
574
|
+
if (this._options.space_after_named_function) {
|
|
575
|
+
// peek starts at next character so -1 is current token
|
|
576
|
+
var peek_back_three = this._tokens.peek(-4);
|
|
577
|
+
var peek_back_two = this._tokens.peek(-3);
|
|
578
|
+
if (reserved_array(peek_back_two, ['async', 'function']) ||
|
|
579
|
+
(reserved_array(peek_back_three, ['async', 'function']) && peek_back_two.text === '*')) {
|
|
580
|
+
this._output.space_before_token = true;
|
|
581
|
+
}
|
|
582
|
+
}
|
|
570
583
|
} else {
|
|
571
584
|
// Support preserving wrapped arrow function expressions
|
|
572
585
|
// a.b('c',
|
|
@@ -776,6 +789,8 @@ Beautifier.prototype.handle_word = function(current_token) {
|
|
|
776
789
|
if (current_token.type === TOKEN.RESERVED) {
|
|
777
790
|
if (in_array(current_token.text, ['set', 'get']) && this._flags.mode !== MODE.ObjectLiteral) {
|
|
778
791
|
current_token.type = TOKEN.WORD;
|
|
792
|
+
} else if (current_token.text === 'import' && this._tokens.peek().text === '(') {
|
|
793
|
+
current_token.type = TOKEN.WORD;
|
|
779
794
|
} else if (in_array(current_token.text, ['as', 'from']) && !this._flags.import_block) {
|
|
780
795
|
current_token.type = TOKEN.WORD;
|
|
781
796
|
} else if (this._flags.mode === MODE.ObjectLiteral) {
|
|
@@ -866,6 +881,9 @@ Beautifier.prototype.handle_word = function(current_token) {
|
|
|
866
881
|
this._output.space_before_token = true;
|
|
867
882
|
} else if (reserved_word(this._flags.last_token, 'default') && this._last_last_text === 'export') {
|
|
868
883
|
this._output.space_before_token = true;
|
|
884
|
+
} else if (this._flags.last_token.text === 'declare') {
|
|
885
|
+
// accomodates Typescript declare function formatting
|
|
886
|
+
this._output.space_before_token = true;
|
|
869
887
|
} else {
|
|
870
888
|
this.print_newline();
|
|
871
889
|
}
|
|
@@ -954,6 +972,9 @@ Beautifier.prototype.handle_word = function(current_token) {
|
|
|
954
972
|
if (reserved_array(this._flags.last_token, special_words)) {
|
|
955
973
|
// no newline between 'return nnn'
|
|
956
974
|
this._output.space_before_token = true;
|
|
975
|
+
} else if (this._flags.last_token.text === 'declare' && reserved_array(current_token, ['var', 'let', 'const'])) {
|
|
976
|
+
// accomodates Typescript declare formatting
|
|
977
|
+
this._output.space_before_token = true;
|
|
957
978
|
} else if (this._flags.last_token.type !== TOKEN.END_EXPR) {
|
|
958
979
|
if ((this._flags.last_token.type !== TOKEN.START_EXPR || !reserved_array(current_token, ['var', 'let', 'const'])) && this._flags.last_token.text !== ':') {
|
|
959
980
|
// no need to force newline on 'var': for (var x = 0...)
|
|
@@ -1386,4 +1407,4 @@ Beautifier.prototype.handle_eof = function(current_token) {
|
|
|
1386
1407
|
this.handle_whitespace_and_comments(current_token);
|
|
1387
1408
|
};
|
|
1388
1409
|
|
|
1389
|
-
module.exports.Beautifier = Beautifier;
|
|
1410
|
+
module.exports.Beautifier = Beautifier;
|
|
@@ -69,6 +69,7 @@ function Options(options) {
|
|
|
69
69
|
this.space_in_empty_paren = this._get_boolean('space_in_empty_paren');
|
|
70
70
|
this.jslint_happy = this._get_boolean('jslint_happy');
|
|
71
71
|
this.space_after_anon_function = this._get_boolean('space_after_anon_function');
|
|
72
|
+
this.space_after_named_function = this._get_boolean('space_after_named_function');
|
|
72
73
|
this.keep_array_indentation = this._get_boolean('keep_array_indentation');
|
|
73
74
|
this.space_before_conditional = this._get_boolean('space_before_conditional', true);
|
|
74
75
|
this.unescape_strings = this._get_boolean('unescape_strings');
|
|
@@ -83,9 +84,10 @@ function Options(options) {
|
|
|
83
84
|
if (this.jslint_happy) {
|
|
84
85
|
this.space_after_anon_function = true;
|
|
85
86
|
}
|
|
87
|
+
|
|
86
88
|
}
|
|
87
89
|
Options.prototype = new BaseOptions();
|
|
88
90
|
|
|
89
91
|
|
|
90
92
|
|
|
91
|
-
module.exports.Options = Options;
|
|
93
|
+
module.exports.Options = Options;
|
|
@@ -87,6 +87,8 @@ punct = punct.replace(/[-[\]{}()*+?.,\\^$|#]/g, "\\$&");
|
|
|
87
87
|
punct = punct.replace(/ /g, '|');
|
|
88
88
|
|
|
89
89
|
var punct_pattern = new RegExp(punct, 'g');
|
|
90
|
+
var shebang_pattern = /#![^\n\r\u2028\u2029]*(?:\r\n|[\n\r\u2028\u2029])?/g;
|
|
91
|
+
var include_pattern = /#include[^\n\r\u2028\u2029]*(?:\r\n|[\n\r\u2028\u2029])?/g;
|
|
90
92
|
|
|
91
93
|
// words which should always start on new line.
|
|
92
94
|
var line_starters = 'continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,import,export'.split(',');
|
|
@@ -213,18 +215,23 @@ Tokenizer.prototype._read_non_javascript = function(c) {
|
|
|
213
215
|
var resulting_string = '';
|
|
214
216
|
|
|
215
217
|
if (c === '#') {
|
|
216
|
-
|
|
218
|
+
if (this._is_first_token()) {
|
|
219
|
+
resulting_string = this._input.read(shebang_pattern);
|
|
217
220
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
resulting_string = c;
|
|
221
|
-
while (this._input.hasNext() && c !== '\n') {
|
|
222
|
-
c = this._input.next();
|
|
223
|
-
resulting_string += c;
|
|
221
|
+
if (resulting_string) {
|
|
222
|
+
return this._create_token(TOKEN.UNKNOWN, resulting_string.trim() + '\n');
|
|
224
223
|
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// handles extendscript #includes
|
|
227
|
+
resulting_string = this._input.read(include_pattern);
|
|
228
|
+
|
|
229
|
+
if (resulting_string) {
|
|
225
230
|
return this._create_token(TOKEN.UNKNOWN, resulting_string.trim() + '\n');
|
|
226
231
|
}
|
|
227
232
|
|
|
233
|
+
c = this._input.next();
|
|
234
|
+
|
|
228
235
|
// Spidermonkey-specific sharp variables for circular references. Considered obsolete.
|
|
229
236
|
var sharp = '#';
|
|
230
237
|
if (this._input.hasNext() && this._input.testChar(digit)) {
|
|
@@ -531,4 +538,4 @@ Tokenizer.prototype._read_string_recursive = function(delimiter, allow_unescaped
|
|
|
531
538
|
module.exports.Tokenizer = Tokenizer;
|
|
532
539
|
module.exports.TOKEN = TOKEN;
|
|
533
540
|
module.exports.positionable_operators = positionable_operators.slice();
|
|
534
|
-
module.exports.line_starters = line_starters.slice();
|
|
541
|
+
module.exports.line_starters = line_starters.slice();
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
//
|
|
29
29
|
// simple unpacker/deobfuscator for scripts messed up with javascriptobfuscator.com
|
|
30
|
-
// written by Einar Lielmanis <einar@
|
|
30
|
+
// written by Einar Lielmanis <einar@beautifier.io>
|
|
31
31
|
//
|
|
32
32
|
// usage:
|
|
33
33
|
//
|
|
@@ -129,4 +129,4 @@ var JavascriptObfuscator = {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
|
|
132
|
-
};
|
|
132
|
+
};
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
//
|
|
32
32
|
// trivial bookmarklet/escaped script detector for the javascript beautifier
|
|
33
|
-
// written by Einar Lielmanis <einar@
|
|
33
|
+
// written by Einar Lielmanis <einar@beautifier.io>
|
|
34
34
|
//
|
|
35
35
|
// usage:
|
|
36
36
|
//
|
|
@@ -101,4 +101,4 @@ var Urlencoded = {
|
|
|
101
101
|
|
|
102
102
|
if (isNode) {
|
|
103
103
|
module.exports = Urlencoded;
|
|
104
|
-
}
|
|
104
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "js-beautify",
|
|
3
|
-
"version": "1.8.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.8.8",
|
|
4
|
+
"description": "beautifier.io for node",
|
|
5
5
|
"main": "js/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"css-beautify": "./js/bin/css-beautify.js",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
],
|
|
22
22
|
"scripts": {},
|
|
23
23
|
"bugs": "https://github.com/beautify-web/js-beautify/issues",
|
|
24
|
-
"homepage": "
|
|
24
|
+
"homepage": "https://beautifier.io/",
|
|
25
25
|
"repository": {
|
|
26
26
|
"type": "git",
|
|
27
27
|
"url": "git://github.com/beautify-web/js-beautify.git"
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"beautifier",
|
|
32
32
|
"code-quality"
|
|
33
33
|
],
|
|
34
|
-
"author": "Einar Lielmanis <einar@
|
|
34
|
+
"author": "Einar Lielmanis <einar@beautifier.io>",
|
|
35
35
|
"contributors": [
|
|
36
36
|
"Vital Batmanov <vital76@gmail.com>",
|
|
37
37
|
"Chris J. Shull <chrisjshull@gmail.com>",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"Daniel Stockman <daniel.stockman@gmail.com>",
|
|
42
42
|
"Harutyun Amirjanyan <amirjanyan@gmail.com>",
|
|
43
43
|
"Nochum Sossonko <nsossonko@hotmail.com>",
|
|
44
|
-
"Liam Newman <bitwiseman@
|
|
44
|
+
"Liam Newman <bitwiseman@beautifier.io>"
|
|
45
45
|
],
|
|
46
46
|
"license": "MIT",
|
|
47
47
|
"dependencies": {
|