Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-jsbeautifier for openSUSE:Factory checked in at 2023-12-08 22:31:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-jsbeautifier (Old) and /work/SRC/openSUSE:Factory/.python-jsbeautifier.new.25432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jsbeautifier" Fri Dec 8 22:31:53 2023 rev:11 rq:1131709 version:1.14.11 Changes: -------- --- /work/SRC/openSUSE:Factory/python-jsbeautifier/python-jsbeautifier.changes 2022-11-01 13:42:33.671893838 +0100 +++ /work/SRC/openSUSE:Factory/.python-jsbeautifier.new.25432/python-jsbeautifier.changes 2023-12-08 22:32:08.636199687 +0100 @@ -1,0 +2,21 @@ +Thu Dec 7 22:01:47 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 1.14.11: + * Editor not working https://beautifier.io/ (#2201) + * Set nodejs minimum to v14 (#2169) + * Invalid prettification of object with unicode escape character + as object key (#2159) + * invalid json being generated with wrap_line_length (#1932) + * Require nodejs v12 or greater (#2151) + * CSS insideNonNestedAtRule generic variable (#2147) + * Update dependencies (#2145) + * Fix CI build (#2144) + * Fixed #2133 Theme Toggle on without_codemirror Mode (#2138) + * use correct variable name (#2135) + * docs: Fix a few typos (#2127) + * Add support for new record types (cont.) (#2118) + * fix - semicolon followed by block statement doesnt have new line (#2117) + * Fix formatting related to the element (#2114) + * issue prettifying (function(){code();{code}})() (#1852) + +------------------------------------------------------------------- Old: ---- jsbeautifier-1.14.7.tar.gz New: ---- jsbeautifier-1.14.11.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-jsbeautifier.spec ++++++ --- /var/tmp/diff_new_pack.mSOmoS/_old 2023-12-08 22:32:10.236258560 +0100 +++ /var/tmp/diff_new_pack.mSOmoS/_new 2023-12-08 22:32:10.236258560 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-jsbeautifier # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-jsbeautifier -Version: 1.14.7 +Version: 1.14.11 Release: 0 Summary: JavaScript unobfuscator and beautifier License: MIT ++++++ jsbeautifier-1.14.7.tar.gz -> jsbeautifier-1.14.11.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/PKG-INFO new/jsbeautifier-1.14.11/PKG-INFO --- old/jsbeautifier-1.14.7/PKG-INFO 2022-10-21 18:34:38.149414000 +0200 +++ new/jsbeautifier-1.14.11/PKG-INFO 2023-11-07 01:23:01.318391000 +0100 @@ -1,10 +1,10 @@ -Metadata-Version: 1.0 +Metadata-Version: 2.1 Name: jsbeautifier -Version: 1.14.7 +Version: 1.14.11 Summary: JavaScript unobfuscator and beautifier. Home-page: https://beautifier.io Author: Liam Newman, Einar Lielmanis, et al. Author-email: t...@beautifier.io License: MIT -Description: Beautify, unpack or deobfuscate JavaScript. Handles popular online obfuscators. -Platform: UNKNOWN + +Beautify, unpack or deobfuscate JavaScript. Handles popular online obfuscators. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier/__init__.py new/jsbeautifier-1.14.11/jsbeautifier/__init__.py --- old/jsbeautifier-1.14.7/jsbeautifier/__init__.py 2022-10-21 18:32:56.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier/__init__.py 2023-11-07 01:21:50.000000000 +0100 @@ -87,7 +87,6 @@ def usage(stream=sys.stdout): - print( "jsbeautifier.py@" + __version__ @@ -156,7 +155,6 @@ def main(): - argv = sys.argv[1:] try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier/__version__.py new/jsbeautifier-1.14.11/jsbeautifier/__version__.py --- old/jsbeautifier-1.14.7/jsbeautifier/__version__.py 2022-10-21 18:33:59.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier/__version__.py 2023-11-07 01:22:38.000000000 +0100 @@ -1 +1 @@ -__version__ = "1.14.7" +__version__ = "1.14.11" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier/core/directives.py new/jsbeautifier-1.14.11/jsbeautifier/core/directives.py --- old/jsbeautifier-1.14.7/jsbeautifier/core/directives.py 2022-10-21 18:32:56.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier/core/directives.py 2023-11-07 01:21:50.000000000 +0100 @@ -27,7 +27,6 @@ class Directives: def __init__(self, start_block_pattern, end_block_pattern): - self.__directives_block_pattern = re.compile( start_block_pattern + r" beautify( \w+[:]\w+)+ " + end_block_pattern ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier/core/output.py new/jsbeautifier-1.14.11/jsbeautifier/core/output.py --- old/jsbeautifier-1.14.7/jsbeautifier/core/output.py 2022-10-21 18:32:56.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier/core/output.py 2023-11-07 01:21:50.000000000 +0100 @@ -204,7 +204,6 @@ class Output: def __init__(self, options, baseIndentString=""): - self.__indent_cache = IndentStringCache(options, baseIndentString) self.raw = False self._end_with_newline = options.end_with_newline diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier/core/templatablepattern.py new/jsbeautifier-1.14.11/jsbeautifier/core/templatablepattern.py --- old/jsbeautifier-1.14.7/jsbeautifier/core/templatablepattern.py 2022-10-21 18:32:56.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier/core/templatablepattern.py 2023-11-07 01:21:50.000000000 +0100 @@ -171,7 +171,6 @@ resulting_string or self.__patterns.django_value.read() ) if not self._excluded.django: - resulting_string = ( resulting_string or self.__patterns.django_comment.read() ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier/javascript/acorn.py new/jsbeautifier-1.14.11/jsbeautifier/javascript/acorn.py --- old/jsbeautifier-1.14.7/jsbeautifier/javascript/acorn.py 2022-10-21 18:32:56.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier/javascript/acorn.py 2023-11-07 01:21:50.000000000 +0100 @@ -43,14 +43,20 @@ # _nonASCIIidentifierStart = re.compile("[" + _nonASCIIidentifierStartChars + "]") # _nonASCIIidentifier = re.compile("[" + _nonASCIIidentifierStartChars + _nonASCIIidentifierChars + "]") +_unicodeEscapeOrCodePoint = six.u(r"\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]+\}") + _identifierStart = ( - six.u(r"(?:\\u[0-9a-fA-F]{4}|[") + six.u("(?:") + + _unicodeEscapeOrCodePoint + + six.u("|[") + _baseASCIIidentifierStartChars + _nonASCIIidentifierStartChars + six.u("])") ) _identifierChars = ( - six.u(r"(?:\\u[0-9a-fA-F]{4}|[") + six.u("(?:") + + _unicodeEscapeOrCodePoint + + six.u("|[") + _baseASCIIidentifierChars + _nonASCIIidentifierStartChars + _nonASCIIidentifierChars @@ -61,7 +67,9 @@ identifierStart = re.compile(_identifierStart) identifierMatch = re.compile( - six.u(r"(?:\\u[0-9a-fA-F]{4}|[") + six.u("(?:") + + _unicodeEscapeOrCodePoint + + six.u("|[") + _baseASCIIidentifierChars + _nonASCIIidentifierStartChars + _nonASCIIidentifierChars diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier/javascript/beautifier.py new/jsbeautifier-1.14.11/jsbeautifier/javascript/beautifier.py --- old/jsbeautifier-1.14.7/jsbeautifier/javascript/beautifier.py 2022-10-21 18:32:56.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier/javascript/beautifier.py 2023-11-07 01:21:50.000000000 +0100 @@ -831,7 +831,7 @@ elif self._flags.last_token.type not in [TOKEN.OPERATOR, TOKEN.START_EXPR]: if ( - self._flags.last_token.type == TOKEN.START_BLOCK + self._flags.last_token.type in [TOKEN.START_BLOCK, TOKEN.SEMICOLON] and not self._flags.inline_frame ): self.print_newline() @@ -974,7 +974,12 @@ TOKEN.EQUALS, TOKEN.OPERATOR, ]: - if not self.start_of_object_property(): + if not self.start_of_object_property() and not ( + # start of object property is different for numeric values with +/- prefix operators + self._flags.last_token.text in ["+", "-"] + and self._last_last_text == ":" + and self._flags.parent.mode == MODE.ObjectLiteral + ): self.allow_wrap_or_preserved_newline(current_token) if reserved_word(current_token, "function"): @@ -1208,7 +1213,7 @@ or current_token.previous.text == ")" ) ): - # This conditionial checks backtick strings and makes no changes + # This conditional checks backtick strings and makes no changes pass elif self.start_of_statement(current_token): # The conditional starts the statement if appropriate. @@ -1324,6 +1329,11 @@ self.print_token(current_token) return + if current_token.text in ["-", "+"] and self.start_of_object_property(): + # numeric value with +/- symbol in front as a property + self.print_token(current_token) + return + # Allow line wrapping between operators when operator_position is # set to before or preserve if ( @@ -1369,7 +1379,6 @@ and self._options.preserve_newlines and current_token.text in Tokenizer.positionable_operators ): - isColon = current_token.text == ":" isTernaryColon = isColon and in_ternary isOtherColon = isColon and not in_ternary diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier/javascript/tokenizer.py new/jsbeautifier-1.14.11/jsbeautifier/javascript/tokenizer.py --- old/jsbeautifier-1.14.7/jsbeautifier/javascript/tokenizer.py 2022-10-21 18:32:56.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier/javascript/tokenizer.py 2023-11-07 01:21:50.000000000 +0100 @@ -220,6 +220,9 @@ token = token or self._read_non_javascript(c) token = token or self._read_string(c) + token = token or self._read_pair( + c, self._input.peek(1) + ) # Issue #2062 hack for record type '#{' token = token or self._read_word(previous_token) token = token or self._read_singles(c) token = token or self._read_comment(c) @@ -257,6 +260,18 @@ return token + def _read_pair(self, c, d): + token = None + + if c == "#" and d == "{": + token = self._create_token(TOKEN.START_BLOCK, c + d) + + if token is not None: + self._input.next() + self._input.next() + + return token + def _read_word(self, previous_token): resulting_string = self._patterns.identifier.read() @@ -327,7 +342,6 @@ return None def _read_regexp(self, c, previous_token): - if c == "/" and self.allowRegExOrXML(previous_token): # handle regexp resulting_string = self._input.next() @@ -410,7 +424,6 @@ resulting_string = "" if c == "#": - # she-bang if self._is_first_token(): resulting_string = self._patterns.shebang.read() @@ -456,7 +469,6 @@ self._input.back() elif c == "<" and self._is_first_token(): - if self._patterns.html_comment_start.read(): c = "<!--" while self._input.hasNext() and not self._input.testChar( @@ -588,6 +600,8 @@ matched = input_scan.match(re.compile(r"x([0-9A-Fa-f]{2})")) elif input_scan.peek() == "u": matched = input_scan.match(re.compile(r"u([0-9A-Fa-f]{4})")) + if not matched: + matched = input_scan.match(re.compile(r"u\{([0-9A-Fa-f]+)\}")) else: out += "\\" if input_scan.hasNext(): @@ -608,7 +622,9 @@ elif escaped >= 0x00 and escaped < 0x20: # leave 0x00...0x1f escaped out += "\\" + matched.group(0) - continue + elif escaped > 0x10FFFF: + # If the escape sequence is out of bounds, keep the original sequence and continue conversion + out += "\\" + matched.group(0) elif escaped == 0x22 or escaped == 0x27 or escaped == 0x5C: # single-quote, apostrophe, backslash - escape these out += "\\" + chr(escaped) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier/tests/generated/__init__.py new/jsbeautifier-1.14.11/jsbeautifier/tests/generated/__init__.py --- old/jsbeautifier-1.14.7/jsbeautifier/tests/generated/__init__.py 1970-01-01 01:00:00.000000000 +0100 +++ new/jsbeautifier-1.14.11/jsbeautifier/tests/generated/__init__.py 2023-11-07 01:21:50.000000000 +0100 @@ -0,0 +1 @@ +# Empty file :) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier/tests/generated/tests.py new/jsbeautifier-1.14.11/jsbeautifier/tests/generated/tests.py --- old/jsbeautifier-1.14.7/jsbeautifier/tests/generated/tests.py 2022-10-21 18:34:15.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier/tests/generated/tests.py 2023-11-07 01:22:42.000000000 +0100 @@ -83,17 +83,32 @@ bt('"â"') bt('"\\x41\\x42\\x43\\x01"', '"\\x41\\x42\\x43\\x01"') bt('"\\u2022"', '"\\u2022"') + bt('"\\u{2022}"', '"\\u{2022}"') bt('a = /\s+/') #bt('a = /\\x41/','a = /A/') bt('"\\u2022";a = /\s+/;"\\x41\\x42\\x43\\x01".match(/\\x41/);','"\\u2022";\na = /\s+/;\n"\\x41\\x42\\x43\\x01".match(/\\x41/);') - test_fragment('"\\x22\\x27",\'\\x22\\x27\',"\\x5c",\'\\x5c\',"\\xff and \\xzz","unicode \\u0000 \\u0022 \\u0027 \\u005c \\uffff \\uzzzz"', '"\\x22\\x27", \'\\x22\\x27\', "\\x5c", \'\\x5c\', "\\xff and \\xzz", "unicode \\u0000 \\u0022 \\u0027 \\u005c \\uffff \\uzzzz"') + + test_fragment('"\\x41\\x42\\x01\\x43"') + test_fragment('"\\x41\\x42\\u0001\\x43"') + test_fragment('"\\x41\\x42\\u{0001}\\x43"') + test_fragment('"\\x20\\x40\\x4a"') + test_fragment('"\\xff\\x40\\x4a"') + test_fragment('"\\u0072\\u016B\\u0137\\u012B\\u0074\\u0069\\u0073"') + test_fragment('"\\u{0072}\\u{016B}\\u{110000}\\u{137}\\u012B\\x74\\u{0000069}\\u{073}"') + test_fragment('"Google Chrome est\\u00E1 actualizado."') + test_fragment( + '"\\x22\\x27",\'\\x22\\x27\',"\\x5c",\'\\x5c\',"\\xff and \\xzz","unicode \\u0000 \\u0022 \\u0027 \\u005c \\uffff \\uzzzz"', + '"\\x22\\x27", \'\\x22\\x27\', "\\x5c", \'\\x5c\', "\\xff and \\xzz", "unicode \\u0000 \\u0022 \\u0027 \\u005c \\uffff \\uzzzz"') self.options.unescape_strings = True - bt('"\\x41\\x42\\x43\\x01"', '"ABC\\x01"') + bt('"\\x41\\x42\\x01\\x43"', '"AB\\x01C"') + bt('"\\x41\\x42\\u0001\\x43"', '"AB\\u0001C"') + bt('"\\x41\\x42\\u{0001}\\x43"', '"AB\\u{0001}C"') test_fragment('"\\x20\\x40\\x4a"', '" @J"') test_fragment('"\\xff\\x40\\x4a"') test_fragment('"\\u0072\\u016B\\u0137\\u012B\\u0074\\u0069\\u0073"', six.u('"\u0072\u016B\u0137\u012B\u0074\u0069\u0073"')) + test_fragment('"\\u{0072}\\u{016B}\\u{110000}\\u{137}\\u012B\\x74\\u{0000069}\\u{073}"', six.u('"\u0072\u016B\\u{110000}\u0137\u012B\u0074\u0069\u0073"')) bt('a = /\s+/') test_fragment('"\\x22\\x27",\'\\x22\\x27\',"\\x5c",\'\\x5c\',"\\xff","unicode \\u0000 \\u0022 \\u0027 \\u005c \\uffff"', @@ -170,6 +185,18 @@ 'var' + unicode_char(160) + unicode_char(3232) + '_' + unicode_char(3232) + ' = "hi";', # -- output -- 'var ' + unicode_char(3232) + '_' + unicode_char(3232) + ' = "hi";') + + # Issue #2159: Invalid prettification of object with unicode escape character as object key - test scenario: object with unicode as key + bt( + '{\\u{1d4b6}:"ascr"}', + # -- output -- + '{\n' + + ' \\u{1d4b6}: "ascr"\n' + + '}') + bt( + 'var \\u{E4}\\u{ca0}\\u{0cA0}\\u{000000Ca0} = {\n' + + ' \\u{ca0}rgerlich: true\n' + + '};') #============================================================ @@ -2525,6 +2552,18 @@ ' proper: "first_token_should_never_wrap" +\n' + ' "but_this_can"\n' + '}') + + # Issue #1932 - Javascript object property with -/+ symbol wraps issue + bt( + '{\n' + + ' "1234567891234567891234567891234": -433,\n' + + ' "abcdefghijklmnopqrstuvwxyz12345": +11\n' + + '}', + # -- output -- + '{\n' + + ' "1234567891234567891234567891234": -433,\n' + + ' "abcdefghijklmnopqrstuvwxyz12345": +11\n' + + '}') test_fragment( '' + wrap_input_2 + '', # -- output -- @@ -6636,6 +6675,30 @@ ' });\n' + 'var test = 1;') + # Issue #1852 - semicolon followed by block statement + bt( + '(function() {\n' + + ' some_code_here();\n' + + ' {\n' + + ' /* IE11 let bug bypass */\n' + + ' let index;\n' + + ' for (index in a) {\n' + + ' a[index];\n' + + ' }\n' + + ' }\n' + + '})();') + + # Issue #1852 - semicolon followed by block statement 2 + bt( + 'let x = { A: 1 }; { console.log("hello"); }', + # -- output -- + 'let x = {\n' + + ' A: 1\n' + + '};\n' + + '{\n' + + ' console.log("hello");\n' + + '}') + # Issue #772 bt( 'this.initAttributes([\n' + @@ -8512,6 +8575,47 @@ #============================================================ + # Record data type + self.reset_options() + + # regular record with primitive + bt( + 'a = #{ b:"c", d:1, e:true };', + # -- output -- + 'a = #{\n' + + ' b: "c",\n' + + ' d: 1,\n' + + ' e: true\n' + + '};') + + # nested record + bt( + 'a = #{b:#{ c:1,d:2,}, e:"f"};', + # -- output -- + 'a = #{\n' + + ' b: #{\n' + + ' c: 1,\n' + + ' d: 2,\n' + + ' },\n' + + ' e: "f"\n' + + '};') + + # # not directly followed by { is not handled as record + bt( + 'a = # {\n' + + ' b: 1,\n' + + ' d: true\n' + + '};') + + # example of already valid and beautified record + bt( + 'a = #{\n' + + ' b: 1,\n' + + ' d: true\n' + + '};') + + + #============================================================ # Old tests self.reset_options() bt('') @@ -10010,7 +10114,7 @@ test_fragment('foo {', 'foo {') test_fragment('return {', 'return {') # return needs the brace. test_fragment('return /* inline */ {', 'return /* inline */ {') - test_fragment('return;\n{', 'return; {') + test_fragment('return;\n{', 'return;\n{') bt("throw {}") bt("throw {\n foo;\n}") bt('var foo = {}') @@ -10101,7 +10205,7 @@ test_fragment('foo {', 'foo {') test_fragment('return {', 'return {') # return needs the brace. test_fragment('return /* inline */ {', 'return /* inline */ {') - test_fragment('return;\n{', 'return; {') + test_fragment('return;\n{', 'return;\n{') bt("throw {}") bt("throw {\n foo;\n}") bt('var foo = {}') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier/unpackers/packer.py new/jsbeautifier-1.14.11/jsbeautifier/unpackers/packer.py --- old/jsbeautifier-1.14.7/jsbeautifier/unpackers/packer.py 2022-10-21 18:32:56.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier/unpackers/packer.py 2023-11-07 01:21:50.000000000 +0100 @@ -28,7 +28,7 @@ begin_offset = -1 """Detects whether `source` is P.A.C.K.E.R. coded.""" mystr = re.search( - "eval[ ]*\([ ]*function[ ]*\([ ]*p[ ]*,[ ]*a[ ]*,[ ]*c[" + r"eval[ ]*\([ ]*function[ ]*\([ ]*p[ ]*,[ ]*a[ ]*,[ ]*c[" " ]*,[ ]*k[ ]*,[ ]*e[ ]*,[ ]*", source, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier.egg-info/PKG-INFO new/jsbeautifier-1.14.11/jsbeautifier.egg-info/PKG-INFO --- old/jsbeautifier-1.14.7/jsbeautifier.egg-info/PKG-INFO 2022-10-21 18:34:38.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier.egg-info/PKG-INFO 2023-11-07 01:23:01.000000000 +0100 @@ -1,10 +1,10 @@ -Metadata-Version: 1.0 +Metadata-Version: 2.1 Name: jsbeautifier -Version: 1.14.7 +Version: 1.14.11 Summary: JavaScript unobfuscator and beautifier. Home-page: https://beautifier.io Author: Liam Newman, Einar Lielmanis, et al. Author-email: t...@beautifier.io License: MIT -Description: Beautify, unpack or deobfuscate JavaScript. Handles popular online obfuscators. -Platform: UNKNOWN + +Beautify, unpack or deobfuscate JavaScript. Handles popular online obfuscators. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier.egg-info/SOURCES.txt new/jsbeautifier-1.14.11/jsbeautifier.egg-info/SOURCES.txt --- old/jsbeautifier-1.14.7/jsbeautifier.egg-info/SOURCES.txt 2022-10-21 18:34:38.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier.egg-info/SOURCES.txt 2023-11-07 01:23:01.000000000 +0100 @@ -29,6 +29,7 @@ jsbeautifier/javascript/tokenizer.py jsbeautifier/tests/__init__.py jsbeautifier/tests/testindentation.py +jsbeautifier/tests/generated/__init__.py jsbeautifier/tests/generated/tests.py jsbeautifier/unpackers/__init__.py jsbeautifier/unpackers/evalbased.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsbeautifier-1.14.7/jsbeautifier.egg-info/entry_points.txt new/jsbeautifier-1.14.11/jsbeautifier.egg-info/entry_points.txt --- old/jsbeautifier-1.14.7/jsbeautifier.egg-info/entry_points.txt 2022-10-21 18:34:38.000000000 +0200 +++ new/jsbeautifier-1.14.11/jsbeautifier.egg-info/entry_points.txt 2023-11-07 01:23:01.000000000 +0100 @@ -1,3 +1,2 @@ [console_scripts] js-beautify = jsbeautifier:main -