Data-JavaScript-1.15/0000755000076500000240000000000013742436704014352 5ustar manchickenstaffData-JavaScript-1.15/LICENSE0000644000076500000240000004436013700233763015360 0ustar manchickenstaffThis software is Copyright (c) 2020 by Michael D. Stemle, Jr. . This software is Copyright (c) 2008 by Jerrad Pierce . This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. Terms of the Perl programming language system itself a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- This software is Copyright (c) 2020 by Michael D. Stemle, Jr. . This software is Copyright (c) 2008 by Jerrad Pierce . This is free software, licensed under: The GNU General Public License, Version 1, February 1989 GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation. 8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! --- The Artistic License 1.0 --- This software is Copyright (c) 2020 by Michael D. Stemle, Jr. . This software is Copyright (c) 2008 by Jerrad Pierce This is free software, licensed under: The Artistic License 1.0 The Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: - "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. - "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder. - "Copyright Holder" is whoever is named in the copyright or copyrights for the package. - "You" is you, if you're thinking about copying or distributing this Package. - "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) - "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) accompany any non-standard executables with their corresponding Standard Version executables, giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. 8. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End Data-JavaScript-1.15/test/0000755000076500000240000000000013742436704015331 5ustar manchickenstaffData-JavaScript-1.15/test/coverage.html0000644000076500000240000000463013702735075020014 0ustar manchickenstaff Coverage Summary

Coverage Summary

Database:/Users/manchicken/Devel/data-javascript/test
Report Date:2020-07-12 21:34:53
Perl Version:v5.32.0
OS:darwin
Thresholds: < 75%< 90%< 100%= 100%

filestmtbrancondsubtimetotal
blib/lib/Data/JavaScript.pm90.773.958.390.9100.084.1
Total90.773.958.390.9100.084.1
Data-JavaScript-1.15/test/digests0000644000076500000240000020244113702735075016720 0ustar manchickenstaffpst0 l 7/Users/manchicken/perl5/lib/perl5/Perl/Critic/Config.pm f9292df24a16204f047cb779a6f904c4 _/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/InputOutput/ProhibitBarewordFileHandles.pm d526e89966d09a33d70c02ce6732d49a 9/Users/manchicken/perl5/lib/perl5/Test2/Tools/Encoding.pm e39f76c8a86230c0553b0b60d678c0c9 t/3-noArgs.t 6b2330d2642368d974bb3a556d04a0c6 Q/Users/manchicken/perl5/lib/perl5/Perl/Critic/PolicyParameter/Behavior/Integer.pm fdf11b664dfc0016bf439823a14b5501 5/Users/manchicken/perl5/lib/perl5/PPI/Token/Number.pm 6090d44b261d90b3b54991373aecff3f //Users/manchicken/perl5/lib/perl5/Pod/Select.pm 4abcb1e26a1f3e30be445c752199269b 0/Users/manchicken/perl5/lib/perl5/PPI/Element.pm 1c1f4c0f6327f93f539af35d96186315 \/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/BuiltinFunctions/RequireGlobFunction.pm 510387cd55f339465e05a40d84a3402a @/Users/manchicken/perl5/lib/perl5/Test2/Compare/OrderedSubset.pm 6abf09a2148cce9ea0c38a2ec2683625 t/3-js12.t 938d57bbf49a7d8f273b176c7469593f X/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/darwin-thread-multi-2level/IO/Seekable.pm 8d3ac59a205c7fe0c092341f8e95a026 6/Users/manchicken/perl5/lib/perl5/PPI/Token/HereDoc.pm 71110fc10bfcff7754d300c2aec6c22c 8/Users/manchicken/perl5/lib/perl5/Test2/Compare/Event.pm d4ec3b2a6f8db8eaec891e6f23632468 S/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Variables/ProhibitMatchVars.pm f74d40ee9a0de651eac00ed0110e4396 //Users/manchicken/perl5/lib/perl5/PPI/Normal.pm 57e65c8d6c0fa10fca7e34d7efc3c66f 5/Users/manchicken/perl5/lib/perl5/Test2/Tools/Mock.pm f8bc07fb0f4d1facea5e2e705ab1eabb 8/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Support.pm 59ce57ac6b525ed0ceb6d1df7303b0d0 >/Users/manchicken/perl5/lib/perl5/Perl/Critic/PolicyFactory.pm 2e075d65e3e5b396661c2123371bd561 ]/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Variables/RequireLexicalLoopIterators.pm 5585d7d5d33f72aa0fa77d2a6d934180 /usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/unicore/Name.pm 0e123fd1b8ab885e85eec4011baad444 `/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/darwin-thread-multi-2level/File/Spec/Functions.pm 90fc379dde276e4c4b297dd318524c83 8/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/PerlIO.pm bc841e455d781039c264158f6fc48cd9 @/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/Recursion.pm 2199c797a97e22a61dd2c6eda7e0b5c8 -/Users/manchicken/perl5/lib/perl5/Importer.pm bcbccaa9e84559faf88753bba73962a1 A/Users/manchicken/perl5/lib/perl5/PPIx/QuoteLike/Token/Unknown.pm f1fd1c2242d5174f03414cb52041176d h/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMismatchedOperators.pm a3b5c00f376df35dcb3af0a3a5a0c9b4 Q/Users/manchicken/perl5/lib/perl5/Perl/Critic/PolicyParameter/Behavior/Boolean.pm cba93bbf2e3509a8bc3b51e20210a145 Q/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/List/MoreUtils/XS.pm ce2be007acae5d83793f7a8e2467c6d3 -/Users/manchicken/perl5/lib/perl5/PPI/Util.pm fb8caaf04d6e5cf5308c22b8889ef884 (/Users/manchicken/perl5/lib/perl5/PPI.pm 5f0cf3ea81e7014cb489223dfa4acb4c M/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/HTML/Entities.pm 3c77b0fa2ee5f59cfa0062b58df02c13 8/Users/manchicken/perl5/lib/perl5/Test2/Tools/Compare.pm eee7ae6ce0db9d6a99efd79f2ef890f5 8/Users/manchicken/perl5/lib/perl5/Term/Table/HashBase.pm ed444f7007f6ff6969a11b2768dce1fc Z/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/darwin-thread-multi-2level/Encode/Config.pm 7bdd1d8dffa8d3500086802451fc020d @/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/Assertion.pm bf3cee6032d9df9474268cce3848d0e6 H/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Structure/Subexpression.pm 5f767a97ce75694a42bb19b036e325f6 c/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Variables/RequireInitializationForLocalVars.pm 0067c2983de1eab3c3b17304818c1b68 6/Users/manchicken/perl5/lib/perl5/Test2/Tools/Class.pm 5aa7738b34b13b1adf471e4489fb528c 9/Users/manchicken/perl5/lib/perl5/Test2/Compare/Object.pm 6ccb8fb33fe885122a37b119a7b33dd1 `/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Modules/ProhibitConditionalUseStatements.pm 335fc89eacec35f5ced6f7b60b3e2a2c A/Users/manchicken/perl5/lib/perl5/PPI/Token/QuoteLike/Readline.pm d8fc95079866eaef6febc8a439633998 `/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/InputOutput/RequireEncodingWithUTF8Layer.pm c076b566efd8da4a466b75976e741cc3 4/Users/manchicken/perl5/lib/perl5/Term/Table/Util.pm d9f353f7db8c10e402b7fdacc976dd3b `/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Miscellanea/ProhibitUnrestrictedNoCritic.pm e27972abb66dc9d34ea6e237e6dda769 f/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ErrorHandling/RequireCheckingReturnValueOfEval.pm 17d7b7acb4068cd9822c4d3f969207e6 @/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/Delimiter.pm cf7e987b84d7c5c1ab0b58d8f0e10959 A/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/API/Stack.pm 390a27d1f5dadd5526e91a457a31cba6 8/Users/manchicken/perl5/lib/perl5/PPI/Token/QuoteLike.pm 900c9844b683c8a9c0ac1cf1fa842e0a I/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/EventFacet/Parent.pm 451b4635d4e5c371f8689d192ef8dbad 8/Users/manchicken/perl5/lib/perl5/Test2/Compare/Delta.pm 9aa0ed263722a518883777fa8ea99edf N/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/CharClass/POSIX/Unknown.pm 37a472aeb7804813244bdda374fb0994 d/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/RegularExpressions/RequireExtendedFormatting.pm 103ceafd836a77967cfa8d504ecded1d 2/Users/manchicken/perl5/lib/perl5/PPI/Token/BOM.pm 109f2502389035e29304fbd2fe250d6a Z/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/Devel/Cover/DB/IO/Storable.pm 1f7fbd928312a1e237415ae10bbd3bfa H/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Pod/Simple/LinkSection.pm 8eddb2a999fa778a4cc387236e40dedf @/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/Event/V2.pm 0acd9ceb519e06c4144056db07db1e6f T/Users/manchicken/perl5/lib/perl5/Perl/Critic/PolicyParameter/Behavior/StringList.pm f723be44bdf13f9cd030e0635b3bdc17 @/Users/manchicken/perl5/lib/perl5/PPI/Statement/Include/Perl6.pm ff9e0c3c6052c0ef339e273a740bd55f 3/Users/manchicken/perl5/lib/perl5/PPI/Singletons.pm 04f359010e27d89828d49f3b94df72af 5/Users/manchicken/perl5/lib/perl5/PPI/Token/Regexp.pm cc4f057a29b9affbc02f1ef5da89d9a8 G/Users/manchicken/perl5/lib/perl5/PPIx/QuoteLike/Token/Interpolation.pm d4ee2e98a5a43879996518185a21a391 V/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Subroutines/ProhibitReturnSort.pm 8ba0f0aff11cc338b59c35db4a96909e d/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/RegularExpressions/RequireBracesForMultiline.pm 998c746fd71e20d06e60195e8eb6f85d O/Users/manchicken/perl5/lib/perl5/Perl/Critic/Exception/Configuration/Option.pm 2d65bdc58eeee4305eedabaf6e2fcb92 :/Users/manchicken/perl5/lib/perl5/Perl/Critic/Exception.pm 3d7e8f6782a61a17cc64c72e906b8159 ,/Users/manchicken/perl5/lib/perl5/B/Debug.pm 6420d689c07bb0257f37753566aec0a2 =/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Getopt/Long.pm 7119f2c25b6e2352580da9b6a84c9ab9 @/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/Structure.pm 808b769b1dc0471cac352d2b2feedcb8 \/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Modules/ProhibitExcessMainComplexity.pm 18c5eef08397b25915a2b1fe9aa41fa7 a/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/RegularExpressions/ProhibitComplexRegexes.pm 2e232477eb2c6cbe8d0963ff91ab8e77 `/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Subroutines/ProhibitSubroutinePrototypes.pm a6d36bac0c8b7f503d863ed109ba1f4b `/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ControlStructures/ProhibitCStyleForLoops.pm 8ff1e90babd730cdd85f3971e1dc5ccb X/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidMap.pm 01db94ce0856e71e8fb2df9da3310269 B/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/Event/Pass.pm a10fcd7f16d1a38b23542a3588996db0 Y/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/InputOutput/ProhibitExplicitStdin.pm 3b751b3ad7aaf32a808457e3ec1cd935 6/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/blib.pm 223e01ee29ca18c38e275f8fb9156596 6/Users/manchicken/perl5/lib/perl5/Test2/Compare/Set.pm c80b681743810eeaa2e3b6535aaa620a Z/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/InputOutput/ProhibitJoinedReadline.pm bfb7516cb1e9e48aeaf9c8de971a48c2 6/Users/manchicken/perl5/lib/perl5/Perl/Tidy/DevNull.pm a970273c8aa22907719aaa3cabb82659 \/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Modules/ProhibitAutomaticExportation.pm ad8b7fc3ef54dcd30ec2e154df687397 a/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ControlStructures/ProhibitPostfixControls.pm 708627fed9cc89e6341d877d69c42edb 9/Users/manchicken/perl5/lib/perl5/Term/Table/LineBreak.pm a027948372964d206c063056bae9cf2b Q/Users/manchicken/perl5/lib/perl5/Perl/Critic/Exception/AggregateConfiguration.pm 6c036434211962c6abcff8f317b3cd82 ;/Users/manchicken/perl5/lib/perl5/Test2/Compare/Wildcard.pm d4ae306b6ef96b855dce89dcd3299e92 6/Users/manchicken/perl5/lib/perl5/PPI/Token/Comment.pm 649b5d413cc05e63e610a605c6b58082 W/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/InputOutput/RequireCheckedClose.pm b3abfee5aae9f7483f0edc9ca7a3ad18 W/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/References/ProhibitDoubleSigils.pm 42efcf783a09220d330bea49a389fb97 [/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/Devel/Cover/Condition_and_3.pm 6fa4d12fa3a3472bc89a811f18b29ae9 c/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ValuesAndExpressions/ProhibitConstantPragma.pm 19eb1fb530445d1a8d66529e8a1914ee m/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ValuesAndExpressions/ProhibitCommaSeparatedStatements.pm ee468f8276f6ed29855cc6ad48d0d1b4 6/Users/manchicken/perl5/lib/perl5/Perl/Critic/Theme.pm 84f0b8b077a33e06e1505c4ebcc902aa I/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/GroupType/Modifier.pm e6b2e5ef793f3175211214bc335446a3 :/Users/manchicken/perl5/lib/perl5/PPI/Statement/Package.pm fee07e7e29e877a217cdf09202fb666f G/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Pod/Simple/SimpleTree.pm 39b9cdcf4dfed690543bd5f144d192ad ]/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/BuiltinFunctions/ProhibitUselessTopic.pm 331e76ed815e66c056fe7f27e61a434d ./Users/manchicken/perl5/lib/perl5/Perl/Tidy.pm 240e631169e601fc48a05b5853217d7f 4/Users/manchicken/perl5/lib/perl5/PPI/Token/Label.pm 5569c60b2515d6a30a4d71984084d018 X/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/Devel/Cover/DB/Structure.pm 90609ebac52a5bf8bca0215a7c6fd587 /Users/manchicken/perl5/lib/perl5/PPI/Token/QuoteLike/Words.pm a509df7f05533658c37c5309daed16e4 _/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/BuiltinFunctions/ProhibitSleepViaSelect.pm a63a1760edac6c5e7c264e5be3befe76 D/Users/manchicken/perl5/lib/perl5/PPIx/QuoteLike/Token/Whitespace.pm 413b5a6c046d41993d7ed906c197178b 6/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token.pm 581c95802f295b1e7e85f64b866cb4ed @/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/Event/Ok.pm 8d1203dce3b44d9a9ffd89380a68bc19 >/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/experimental.pm d2a2c1d1d7bc10697640c05a591f9e7d ]/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringySplit.pm e06fc11b4f387144ddf5092364f7b663 K/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/GroupType/Script_Run.pm 802acb3ec88bb4e8c49b92fcf54acd7e [/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ControlStructures/ProhibitDeepNests.pm 964fac58a0604a6ea222470d1e5b07b0 e/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/RegularExpressions/ProhibitCaptureWithoutTest.pm e0e006fd7e0704ea2eb0f05b7081cec1 t/1-load.t f498c8830222d61fb9070792894d26f5 G/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/GroupType/Switch.pm 7d6757c46de0b283e18019f1388dd759 5/Users/manchicken/perl5/lib/perl5/Module/Pluggable.pm 8fb8d2b5e9feb1d9bafa9916bcca418f /Users/manchicken/perl5/lib/perl5/Perl/Tidy/IndentationItem.pm c8123fd28c72e5c7362a2cf9d93b09e7 9/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/version.pm e60bdde345251ac96b5f59aaeb77b683 R/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/darwin-thread-multi-2level/Errno.pm bbd6f082ed0dadded481d59dd0e59289 =/Users/manchicken/perl5/lib/perl5/Perl/Critic/Exception/IO.pm 45fb42ba432b6d5c9e0cca36336a25ea 8/Users/manchicken/perl5/lib/perl5/Test2/Tools/Subtest.pm 8434651a838ea64d102086a71dc5673c b/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Documentation/RequirePackageMatchesPodName.pm e7c48ced4766fe1c800da131a0db3afb T/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Variables/ProtectPrivateVars.pm d0d75fabdea8b398ee9c002eaa12d9d6 3/Users/manchicken/perl5/lib/perl5/PPI/Token/Cast.pm 1b2449e297ba428423a4e33713140ff5 R/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/Hub/Interceptor/Terminator.pm 6ba8f4503b2ccf43f5f34748197cfcdc 3/Users/manchicken/perl5/lib/perl5/Test2/Util/Ref.pm 1d49e946b6dca8a70f58b7932c52d7b2 C/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Structure/RegexSet.pm ab55dd2ae8adb911a2f5240c3997ff45 A/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Structure/Switch.pm b87aa7c74152eaea2529ca0991dca9d1 ;/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/API.pm d1983ba3891687e857d3c93469e9e2d7 a/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Variables/RequireLocalizedPunctuationVars.pm 4e87118aa47208e2c6455bab4e3be7c5 K/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/Ref/Util/XS.pm aae385ffc545b1a3083aefa334789c0f [/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/Devel/Cover/Condition_xor_4.pm e1a0cdc7842bcc1d5da2737c93e11ee5 9/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/English.pm 054d3c3f1342f1fc13c32963dd1d658d 6/Users/manchicken/perl5/lib/perl5/PPI/Structure/For.pm 163787466ec6d2020ccf84428813356a 8/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Element.pm 003e7541506b110dc004e577074a09a6 X/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/CodeLayout/RequireTrailingCommas.pm 988ed9c06f1b227c2a6507ae0fdbed03 @/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/CharClass.pm 3a5ecb26ba19b9ce755b28472252a876 @/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/Backtrack.pm e9421673d3bdd78c95a3a7a7d3162c6e V/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Subroutines/RequireFinalReturn.pm e139aa3987422a0e5ab78c1f41de78da =/Users/manchicken/perl5/lib/perl5/Perl/Critic/Utils/McCabe.pm 061acb1e809f2d2e4879a5129f009802 ./Users/manchicken/perl5/lib/perl5/Pod/Spell.pm 6e486bbcc6f867609a0fe46a87c3fd58 @/Users/manchicken/perl5/lib/perl5/Perl/Critic/PolicyParameter.pm f6855b32e9231bbd3e500e8deb33619d U/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Variables/ProhibitPackageVars.pm a4889bbacf68a1c26bf5e47bc050d4b7 9/Users/manchicken/perl5/lib/perl5/Perl/Tidy/LineSource.pm c4b8476c38561aaddca1bea0e6bc6c67 @/Users/manchicken/perl5/lib/perl5/PPI/Token/Regexp/Substitute.pm 430c49ee7805225710af3b6e6494ac9d :/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/XSLoader.pm 0df37d175a61c33a88d00f8bdad09f9c [/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/darwin-thread-multi-2level/File/Spec/Unix.pm 0021b70f7a42ecbf37c407f821ba0400 4/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/if.pm 8135da5c6624f925318fea6ba657b498 E/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/Event/Waiting.pm 41f6d9660d728231c7acbec65b4c9369 ./Users/manchicken/perl5/lib/perl5/PPI/Lexer.pm 20f61836c1e985c4ef19e3e77d4acf2e 5/Users/manchicken/perl5/lib/perl5/Test2/Util/Table.pm 5c617b00788def82e740d3bb767754af /Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/Comment.pm 9c9fafb409cfaafb19a45732ebf07c3c n/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ValuesAndExpressions/RequireUpperCaseHeredocTerminator.pm 2c9429a5f4dadc094bd7dff735af4b00 G/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Structure/NamedCapture.pm c1402efd2f04df4d2cc8f9bb976b53ec 5/Users/manchicken/perl5/lib/perl5/Pod/InputObjects.pm 6b7a4d75d42c87da3929354fafa2a5a6 >/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/Literal.pm 6b9a4eb571d36ca4211536eb133a0f4a 8/Users/manchicken/perl5/lib/perl5/PPI/Structure/Given.pm a3244e14867eface10af4eb4b4aec7a4 ;/Users/manchicken/perl5/lib/perl5/PPI/Token/Number/Float.pm 5c60e824e45f42db9455c7d6bba588d4 0/Users/manchicken/perl5/lib/perl5/Perl/Critic.pm ea3a865fd42d18dde1af7ef5826956f8 5/Users/manchicken/perl5/lib/perl5/Devel/StackTrace.pm 86e99556d4064ec1f14fe93b0505b5ec 8/Users/manchicken/perl5/lib/perl5/PPI/Token/Prototype.pm 8711324e4e393ef07cc333f41479d823 V/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/Devel/Cover/DB/IO/Base.pm 7704708f836440510aafd15b6444ca3b 8/Users/manchicken/perl5/lib/perl5/PPIx/Utilities/Node.pm 5d866b91e3f2c65a0c409eb98c1180bd /Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/Unknown.pm 6437730e2199bd1c3e6385341e593085 n/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/TestingAndDebugging/ProhibitProlongedStrictureOverride.pm ce7369156b7a7b2c9c9ced85bc01b6a4 V/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/InputOutput/ProhibitTwoArgOpen.pm 52a5bb65e17a955c047426fa0b758b3c 6/Users/manchicken/perl5/lib/perl5/Test2/Compare/Bag.pm f1b3ccbcb92e99025081ae3f56cd94f8 :/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Tokenizer.pm b9ef6344808f76ddc4b8317aa0c2a135 \/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/BuiltinFunctions/ProhibitBooleanGrep.pm 88f35a4941c5de8c0aef16cc02518e57 X/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/BuiltinFunctions/RequireBlockMap.pm 460c8eedb7dce7f40261fed496c6aafc ;/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/B/Deparse.pm 34620538f770a535b8a6017edff8c98d j/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Variables/ProhibitAugmentedAssignmentInDeclaration.pm d15e7d0d064818516c109f465070ac04 Q/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Documentation/PodSpelling.pm ab77a47aefd1f99745217b3bf0d4315c E/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/Clone.pm 0921ec15aa13688a65c12919e85f1257 X/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/InputOutput/ProhibitOneArgSelect.pm 8011e9b7c76fe95e4c4984a6b3c04b78 :/Users/manchicken/perl5/lib/perl5/PPI/Document/Fragment.pm 23fd32599b9a439373f7bdca6d597889 Y/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/darwin-thread-multi-2level/Encode/Guess.pm 20699d3dabef5ed2f7981cd2237d79d9 2/Users/manchicken/perl5/lib/perl5/PPI/Statement.pm e33f61ed201d99c58ed17de99fb6de5d ]/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/darwin-thread-multi-2level/Encode/MIME/Name.pm 056ea8f31df117e2984d9bd3a77555dc ./Users/manchicken/perl5/lib/perl5/IO/String.pm 74d55b1e1812e324710182f01d160f94 8/Users/manchicken/perl5/lib/perl5/Test2/Compare/Undef.pm fe239dd8411d8924b9eb894e4d370e21 B/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Structure/Capture.pm a3fc30ed8f8b7d0f1ad460157c9d58c2 ]/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/TestingAndDebugging/RequireTestLabels.pm 51ede6a15e80cb4e676ea21b11fa83e3 N/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/GroupType/Subexpression.pm 1d730de756e63d27e2f49abb76f17020 H/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/EventFacet/Error.pm 155bedc1cc2a95fd11bf18db6062f099 P/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/darwin-thread-multi-2level/mro.pm 7bb1ee0d94b85e96c4dd8800d9b93c5a J/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/Util/Facets2Legacy.pm d5d08fa31a436e5b2542fac000c7bc41 A/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/Quantifier.pm f17d51fc58f4860252a87b17036d3d18 ./Users/manchicken/perl5/lib/perl5/PPI/Token.pm b8cb9a29f39b0fd18ddb42cde8a51804 e/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ValuesAndExpressions/ProhibitImplicitNewlines.pm 4ab7a78171a4051d8a685db6c04fd355 6/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Lexer.pm 2989c74805c1b392e2a247e1c32931c2 U/Users/manchicken/perl5/lib/perl5/Perl/Critic/PolicyParameter/Behavior/Enumeration.pm 2c484b10f28557ca3febaa1923c96007 5/Users/manchicken/perl5/lib/perl5/Perl/Tidy/Logger.pm da4d5b7d2ea49428c9d0c1c81d497511 3/Users/manchicken/perl5/lib/perl5/PPI/Token/Word.pm b5998a5e45f022f529c2c36275b49d2c E/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Structure/Quantifier.pm b615474671fd49b5747f8ada1d9a2e89 K/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/Params/Util.pm dae515c40e02b36de308e51ddf0e8edd C/Users/manchicken/perl5/lib/perl5/Perl/Tidy/VerticalAligner/Line.pm 855d273fd0ce6940b4bec97ca277dd19 h/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/RegularExpressions/ProhibitSingleCharAlternation.pm 3c1cc98b8241f2064780d39cacf0144c Z/Users/manchicken/perl5/lib/perl5/Perl/Critic/Exception/Configuration/NonExistentPolicy.pm 075d6c1fe9d9eb6eb6c5979e9c5fbdf4 8/Users/manchicken/perl5/lib/perl5/PPI/Statement/Given.pm 842a3b410b4edac88fc5428de752bda0 Q/Users/manchicken/perl5/lib/perl5/Perl/Critic/Exception/Fatal/PolicyDefinition.pm dfc01025b1d47e615460bad9abf2ca73 7/Users/manchicken/perl5/lib/perl5/Test2/Compare/Base.pm f5ece155c0a88fdcdd2476d7ba6417c2 d/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/RegularExpressions/ProhibitUnusualDelimiters.pm 62cfab1662de182b6cece89cd2c13f50 ?/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Structure/Code.pm a4db5aa3470423f489b75db37b9b9e1f 8/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/strict.pm 441328c7ffbbe42a0226ec65bde71715 a/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Variables/ProhibitConditionalDeclarations.pm c2f5edf4cb64ed86de09ea907e6a456e ]/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/CodeLayout/ProhibitParensWithBuiltins.pm 8a47ef578a76e77552e530dff0b3e5db t/2-import.t 084d2efb01b7282fadcd6305decb48b7 B/Users/manchicken/perl5/lib/perl5/PPI/Token/_QuoteEngine/Simple.pm 40deef9cbb8dcce355cba5d9be87016c `/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/NamingConventions/ProhibitAmbiguousNames.pm ee8fc6cf39ebbdf28cc0d62c05cd839a 7/Users/manchicken/perl5/lib/perl5/Test2/Compare/Meta.pm e49b4c60d8437f5ea2f33b2922506f51 c/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ValuesAndExpressions/ProhibitComplexVersion.pm 53dbe410295a8b9e173a6994aef9eff6 V/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/darwin-thread-multi-2level/IO/Handle.pm 2cac8fca6134693a7cc4a8eda2872716 J/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/EventFacet/Control.pm 67930247270b8e0d04ef87aad5c59189 7/Users/manchicken/perl5/lib/perl5/Test2/Plugin/SRand.pm 77f08ee6ed5c13d5180c1277b7264d7a E/Users/manchicken/perl5/lib/perl5/Perl/Critic/Utils/DataConversion.pm 30f2d5fcb695a7a52e4f909fa00ca634 1/Users/manchicken/perl5/lib/perl5/PPI/Document.pm 9defb9bff211cec68ea2a1c7d95dd839 /Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/Control.pm d1336672692e721d1470b4bb17e38ce6 F/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/CharClass/POSIX.pm 68c0af71d32a06ee6a2a506198e65484 8/Users/manchicken/perl5/lib/perl5/Perl/Tidy/Tokenizer.pm 814d78ae6a85a1a24c64085baab06e17 6/Users/manchicken/perl5/lib/perl5/Test2/Compare/Ref.pm d0f6a7204c4bca886c3dd4fcad2a130f 7/Users/manchicken/perl5/lib/perl5/Test2/Require/Perl.pm 6962660c3892bb8d436d4aa921149894 S/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Modules/ProhibitEvilModules.pm 01e1ececef2f961142d91301cdac062d :/Users/manchicken/perl5/lib/perl5/PPI/Statement/Include.pm 70ec3c59bc8e8f73f35096009fc90f45 B/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/Event/Plan.pm 8e1cfb4d420244b7d5f6c77fa735fe02 P/Users/manchicken/perl5/lib/perl5/Perl/Critic/Exception/Configuration/Generic.pm d22a96d3aeb318642900c0161498c16c @/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Term/ANSIColor.pm 9b4d0e4e3a9168ed081fa13fdee39f47 C/Users/manchicken/perl5/lib/perl5/PPIx/QuoteLike/Token/Structure.pm f0dbd937991405b141951e36700f66bf /Users/manchicken/perl5/lib/perl5/Perl/Tidy/VerticalAligner.pm 767e775c7cf649045829994068ec8d10 Z/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/InputOutput/RequireCheckedSyscalls.pm 0540e55e8f90e3f9e968366d076de5c3 :/Users/manchicken/perl5/lib/perl5/PPI/Structure/Unknown.pm f8376291425130f699749ed5b51122fd [/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Subroutines/ProhibitAmpersandSigils.pm 5453b1a13114790c20928367487f3bf3 S/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/Devel/Cover/DB/File.pm 2508f2cf80552c1548bf8ed1c9502f87 ;/Users/manchicken/perl5/lib/perl5/PPI/Statement/Compound.pm 8a68185f7235f10d6c42e27bf7054aeb F/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/EventFacet/Hub.pm 92b40547b5857e22d0e7b6516f1db6fa a/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/BuiltinFunctions/ProhibitReverseSortBlock.pm 933042d9ea44bd0c2e3f13c222a82a0a ;/Users/manchicken/perl5/lib/perl5/Test2/Tools/PerlCritic.pm 20d9d598a6ddf82800133005f687ad2b S/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Variables/ProhibitLocalVars.pm 333e692f79224d6c175ff8fd85d5af9e O/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/Devel/Cover/Pod.pm b4b1e951415e801a7e515c2868bccc02 @/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/GroupType.pm 3431243279dfc13de7fbf2a94f717576 @/Users/manchicken/perl5/lib/perl5/Perl/Critic/Utils/Constants.pm 77ee7cb5e501225e2223ca23a7bc7a01 A/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/Formatter.pm 14c19d8695e043401a5541ef8f3a2540 B/Users/manchicken/perl5/lib/perl5/PPI/Exception/ParserRejection.pm ca5fbf9cc39374bea0ddce8e073b8e93 E/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Structure/Script_Run.pm 9570d25cfed37acd2178099d78ca73ab ?/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/version/regex.pm 1804cdcea69766fe0b4587f713779d20 7/Users/manchicken/perl5/lib/perl5/PPI/Statement/Data.pm d2107e4d34fb56af23bba721e165f97b ]/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/InputOutput/ProhibitReadlineInForLoop.pm b6db3ded63580d544008d343ed1ee558 V/Users/manchicken/perl5/lib/perl5/Perl/Critic/Exception/Configuration/Option/Global.pm 80c9ff3effa2b37f7692f622fb90283a Y/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidGrep.pm c276880313e02257dd469384d8f599ab \/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ClassHierarchies/ProhibitExplicitISA.pm 53acf32bf9f5a33925f867fd684460f2 U/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/Devel/Cover/Condition.pm 39568935d59f143328ea6e20d30a5a9a G/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/Event/Exception.pm a511dc521fde59ce1893464930c898e8 ./Users/manchicken/perl5/lib/perl5/Path/Tiny.pm 69f1e9aae17efe80e27fed4bde2896ed A/Users/manchicken/perl5/lib/perl5/PPI/Token/QuoteLike/Backtick.pm f937c2308d0866fe1ad0bdebee03941e `/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ValuesAndExpressions/ProhibitNoisyQuotes.pm 008eff130605b141deff587d3320474f \/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/darwin-thread-multi-2level/Encode/Encoding.pm 3f40faa217288ed2cb4e34af87b6bfd6 @/Users/manchicken/perl5/lib/perl5/PPIx/QuoteLike/Token/String.pm 4d4a0fa87eca7d7e916a00f92e6f5bec 0/Users/manchicken/perl5/lib/perl5/PPIx/Regexp.pm b7286e5c4fba86b7d4e44afbec65980b C/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/Test2/API/Context.pm 16c7122cf682ce97a6d890f346ffd5f3 9/Users/manchicken/perl5/lib/perl5/PPI/Token/ArrayIndex.pm b934c0aa324615662e4d551bbbc4b59e ?/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/File/Basename.pm 060f029d056cc44e536c7d278f69bf43 ^/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoWarnings.pm c2e872e92ca378abba106a67a33506c8 [/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/InputOutput/ProhibitInteractiveTest.pm 8e27964371897bd0b441ec93418122ab 2/Users/manchicken/perl5/lib/perl5/PPI/Token/End.pm aec1ff166fbab36256d518006b56b15e //Users/manchicken/perl5/lib/perl5/Test2/Mock.pm 6a6ac0d735a838a43d73f69cd8cc9301 V/Users/manchicken/perl5/lib/perl5/darwin-thread-multi-2level/Devel/Cover/DB/IO/JSON.pm c6814d673ccdacef74079d9bbc5369a2 _/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/RegularExpressions/ProhibitUselessTopic.pm 9cf7c2cb651a4e310ab711f3ec855672 d/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ValuesAndExpressions/RequireNumberSeparators.pm 51169a75fc10d4181e86ecc60501cc5e H/Users/manchicken/perl5/lib/perl5/Perl/Tidy/VerticalAligner/Alignment.pm 1b8ea18bbc7151b1c2008ead5510e9f9 7/Users/manchicken/perl5/lib/perl5/PPI/Statement/When.pm bc1669c462f7ee9b267acad8e8836a50 :/Users/manchicken/perl5/lib/perl5/Perl/Tidy/Diagnostics.pm cac791ef905ca97414c5c74ed92f3186 9/Users/manchicken/perl5/lib/perl5/Test2/Compare/Scalar.pm 40baa3fce1fd8b6832187bf1ccb406c7 T/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ErrorHandling/RequireCarping.pm 7cf7d45e3f5adcc5b1d92adc395dfb6f @/Users/manchicken/perl5/lib/perl5/PPI/Token/QuoteLike/Command.pm c9501118261793b1b4405f4cbf5a8117 g/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm 6dd7d95e43ab2e071857e6ae1045adf0 2/Users/manchicken/perl5/lib/perl5/PPI/Structure.pm 3ff9f42dc3dbee0728f1c3977bfeb9e8 :/Users/manchicken/perl5/lib/perl5/Perl/Critic/Utils/POD.pm d1e6ccebeb65966ebf7e914f34077fe0 D/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Structure/Assertion.pm a8a9f3bc16c201ebe452309711a1af7a 6/Users/manchicken/perl5/lib/perl5/Test2/Tools/Basic.pm 00480d08712424b2ef1d0f0dbd89fe62 [/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/darwin-thread-multi-2level/Encode/Unicode.pm fe7318b46fe1cbe93f44825ad361e775 Q/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Modules/RequireEndWithOne.pm f2a6ae3da8bbad0982e9d0b437cee029 ]/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/CodeLayout/ProhibitTrailingWhitespace.pm 2eec40d7af304a2b205a50504faa227e T/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/darwin-thread-multi-2level/IO/File.pm b542fc33c207e13a297caafbaeb9f953 :/Users/manchicken/perl5/lib/perl5/Test2/Compare/DeepRef.pm bab9d4bf6004c39375f90c1964cf4398 2/Users/manchicken/perl5/lib/perl5/Test2/Compare.pm 90cc5398ccdfbbf597c665a6fcfab2cd X/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Documentation/RequirePodSections.pm 728ab60e888652013243687880e05c7f D/Users/manchicken/perl5/lib/perl5/PPIx/Regexp/Token/Backreference.pm 12ead002105dadad5acb76e0c960d238 f/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/RegularExpressions/RequireLineBoundaryMatching.pm 4e9fdda48409b92a3101bb25d797ba27 /Users/manchicken/perl5/lib/perl5/PPI/Structure/Constructor.pm 8c5cfebba9fadcd1beb9b7f5735bf8fc //Users/manchicken/perl5/lib/perl5/Term/Table.pm f5001041401931730cf061b1166aaa94 U/Users/manchicken/perl5/lib/perl5/Perl/Critic/Policy/Variables/ProhibitReusedNames.pm ba12b44e10b97c047b40a3583646baa2 7/usr/local/Cellar/perl/5.32.0/lib/perl5/5.32.0/bytes.pm e45975770af354328fdac78e9facee40 {'JS'})text¦if (exists $arg->{'UNDEF'})text¤if (ref $arg eq 'HASH') { }text¤elsif (not ref $arg) { }text¬,$opt{'JS'} > $JSCOMPAT_UNDEFINED_MISSING ? :text»"unless (exists $EXPORT_TAGS{$tag})text·.if (substr($explicit_import, 0, 1) eq ':') { }text·/elsif (exists $allowable{$explicit_import}) { }text±!if (scalar @explicit_imports) { }text¯if (defined $package)textÝ wantarray ? :textãunless scalar @inputtextè wantarray ? :textøIif ($opt{'JS'} >= $JSCOMPAT_DEFAULT_VERSION and &Encode::is_utf8($input))textð,if ($] < $MIN_ENCODE_REQUIRE_BREAKPOINT) { }text Ÿdefined $undef ? :text žunless (defined $elem)text ¦if ($elem =~ /^0\d+$/msux)text £:if ($elem =~ /^[+-]?(?:(?=\d|[.])\d*(?:[.]\d{0,})?)$/msux)text  unless ($ref)text ±if ($dict->{$elem})text ·6if ($ref eq 'ARRAY' or &reftype($elem) eq 'ARRAY') { }text ·7elsif ($ref eq 'HASH' or &reftype($elem) eq 'HASH') { }textbranch¬ ||=op=$opt{'JS'} > $JSCOMPAT_UNDEFINED_MISSING ? "undefined" : "''"right $opt{'UNDEF'}left or_3typeø andop&Encode::is_utf8($input)right'$opt{'JS'} >= $JSCOMPAT_DEFAULT_VERSIONleft and_3type · or_3type$ref eq "ARRAY"left&reftype($elem) eq "ARRAY"right orop · or_3type&reftype($elem) eq "HASH"right orop$ref eq "HASH"left condition ƒ BEGIN„ BEGIN… BEGINÌ BEGINÐ BEGIN BEGINœ import× hjsdumpá jsdumpí __quotemeta š __jsdump subroutine branch„ subroutine conditionŒ statementtimeBEGIN80branch condition‚ subroutine† statementtimeBEGIN5† subroutine conditionbranchtime’ statementimport28ˆ subroutine condition‹branchtime´ statementjsdump97ì statementtime—branch‹ subroutine„ condition __COVER__-1time statement condition subroutinebranchBEGIN3time‰ statementƒ subroutine conditionbranchBEGIN76 subroutine conditionbranchtimeƒ statementBEGIN4time statement condition… subroutinebranchBEGIN129‚ conditionŠ subroutinebranchtimeÌ statement__jsdump154± statementtimeŠbranch condition‡ subroutinehjsdump87branch condition‰ subroutine» statementtime __quotemeta109startlƒƒƒ„„„………ÌÌÌÐÐÐ œŸ ¡¡£¤¥¥¦¦©¬¯±´·¸»»¼¼ÃÈËÍÎÎίÓ×ÙÝáãäåæçèíðñôøùü ‚ … Ž ‘ ” – š › ž Ÿ Ÿ £ ¦ § © ­ ± ² ´ · ¸ ¹ º º » ¼ ½ ¿ Â Ã Ã Ä Å Æ Ç É Ì statement 8a140d68720d0a5b729893bf554821abdigestData-JavaScript-1.15/test/structure/8a140d68720d0a5b729893bf554821ab.lock0000644000076500000240000000000013702735075024366 0ustar manchickenstaffData-JavaScript-1.15/test/cover.css0000644000076500000240000000250413702735075017161 0ustar manchickenstaff/* Stylesheet for Devel::Cover HTML reports */ /* You may modify this file to alter the appearance of your coverage * reports. If you do, you should probably flag it read-only to prevent * future runs from overwriting it. */ /* Note: default values use the color-safe web palette. */ body { font-family: sans-serif; } h1 { background-color: #3399ff; border: solid 1px #999999; padding: 0.2em; -moz-border-radius: 10px; } a { color: #000000; } a:visited { color: #333333; } table { border-collapse: collapse; border-spacing: 0px; } tr { text-align : center; vertical-align: top; } th,.h { background-color: #cccccc; border: solid 1px #333333; padding: 0em 0.2em; } td { border: solid 1px #cccccc; } /* source code */ pre,.s { text-align: left; font-family: monospace; white-space: pre; padding: 0em 0.5em 0em 0.5em; } /* Classes for color-coding coverage information: * c0 : path not covered or coverage < 75% * c1 : coverage >= 75% * c2 : coverage >= 90% * c3 : path covered or coverage = 100% */ .c0, .c1, .c2, .c3 { text-align: right; } .c0 { background-color: #ff9999; border: solid 1px #cc0000; } .c1 { background-color: #ffcc99; border: solid 1px #ff9933; } .c2 { background-color: #ffff99; border: solid 1px #cccc66; } .c3 { background-color: #99ff99; border: solid 1px #009900; } Data-JavaScript-1.15/test/cover.140000644000076500000240000003340513702735075016621 0ustar manchickenstaffpst0   '/Users/manchicken/Devel/data-javascriptdir '/Users/manchicken/Devel/data-javascriptname darwinOS t/4-escape.trun 5.32.0perl 1594604091.68281finish 8a140d68720d0a5b729893bf554821abblib/lib/Data/JavaScript.pm 1e5466dd615fa137059b11808d20a6cc t/4-escape.tdigests unknownversion branch condition statement subroutine time collected ÿÿÿÀ~ñŸìÿ|vecìsize statement vec‹size subroutine (4vec®sizebranchŒsize vec conditionblib/lib/Data/JavaScript.pmvec 1594604091.67624start€€€ƒ€€€€€€€ condition€€€€€€€€€€€€€€€€€€€€††€€ƒ€ƒ€€€†‚ƒƒ†€€€€€€€branch €†ƒ† subroutinelƒ€€€€€€€€€€€€€€‚‚‚€€€€†††††††ƒƒ€€ƒ€€ƒƒ€ƒƒƒƒƒƒƒ††††€€†ƒ‚ƒ€€€€€€€€€€€€€€€€€€€€€ statementW ¸p‚ƒ ž Rœ„€  ƒ‚¼ƒ „€ƒ†ƒŽ†„†‚‡‚ƒƒ Öö™‰‡Œƒ‡—‘„‚ƒƒƒ„‡‰ˆŠˆª‰ƒ††timeblib/lib/Data/JavaScript.pmcount1594604091.7818.53550 darwinOS t/7-nested-compat.trun '/Users/manchicken/Devel/data-javascriptname '/Users/manchicken/Devel/data-javascriptdir 1594604093.00498finish 5.32.0perl branch condition statement subroutine time collected 7d29249db998011279f9196b7e5da12at/7-nested-compat.t 8a140d68720d0a5b729893bf554821abblib/lib/Data/JavaScript.pmdigests unknownversion€€€€€€€€€€€€€€€€€€Ž€Ž€€€ˆ€€€ˆˆ…€…‚ƒƒ€branch€€€Ž€‚€ƒƒ€€ condition €Ž subroutinek Å)ƒ £ c›„ ƒ±ƒ ƒƒ…‚‹†ƒ„…‚„ƒ†‚Œ‚‡ƒ à ń‚„‚ˆ‰¥¶”Š‰ŠˆŠŠ’ŠŽŒ†Œ‰ˆ†’……‚„‡…†…„‚††††Œˆtimelƒ€€€€€€€ƒƒƒ€€€€ŽŽ€€Ž€€ŽŽ€ŽŽŽŽŽŽŽˆ€€ˆ€€€ˆ…€……‚‚‚‚†††‚ƒƒƒ††††ƒ€ statementblib/lib/Data/JavaScript.pmcount 1594604092.99969start‹size vec subroutine vecŒsize condition®size `…€vecbranchìsize ÿÿÿáß|ñŸìÿÄþÿvec statementblib/lib/Data/JavaScript.pmvec1594604093.7824.53550  ÿÿÿÀ~vecìsize statement vec®sizebranch vecŒsize condition‹size vec subroutineblib/lib/Data/JavaScript.pmvec 1594604089.33874start1 ÎȆ ª ˜¢„ 7„‚¸ƒ -„„‡ƒ†††‚ˆƒ‚‡ƒ âtimelƒ€€€€€€€€€€€€€€‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ statement€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€branch€€€€€€€€€€€ condition €€€€ subroutineblib/lib/Data/JavaScript.pmcount 8a140d68720d0a5b729893bf554821abblib/lib/Data/JavaScript.pm f498c8830222d61fb9070792894d26f5 t/1-load.tdigests unknownversion branch condition statement subroutine time collected 5.32.0perl 1594604089.34353finish '/Users/manchicken/Devel/data-javascriptdir '/Users/manchicken/Devel/data-javascriptname darwinOS t/1-load.trun1594604089.7804.53550  branch condition statement subroutine time collected 084d2efb01b7282fadcd6305decb48b7 t/2-import.t 8a140d68720d0a5b729893bf554821abblib/lib/Data/JavaScript.pmdigests unknownversion 1594604089.82693start €‚ subroutine€€€€€€€€€€€€€€€€€€‚€‚€€€€€€€€€€€€€branch€€€‚€€€€€€€ conditionW ÝKƒ – Uœƒ ƒ€·‚ ƒƒ‡‚‚…ƒ††ƒ‚„ˆ‚‚‡‚ Á €ƒ‚‚‚„ Ïk‡‹”Š…ƒƒƒ‚‚‡‚‚…‚timelƒ€€€€€€€ƒƒƒ€€€€‚‚€€‚€€‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€ statementblib/lib/Data/JavaScript.pmcount `…bvec®sizebranchŒsize vec condition vec‹size subroutineìsize ÿÿÿáß|ñŸüÿDvec statementblib/lib/Data/JavaScript.pmvec t/2-import.trun darwinOS '/Users/manchicken/Devel/data-javascriptdir '/Users/manchicken/Devel/data-javascriptname 1594604089.83412finish 5.32.0perl1594604089.7806.53550 '/Users/manchicken/Devel/data-javascriptname '/Users/manchicken/Devel/data-javascriptdir darwinOS t/3-noArgs.trun 5.32.0perl 1594604090.78014finish 6b2330d2642368d974bb3a556d04a0c6 t/3-noArgs.t 8a140d68720d0a5b729893bf554821abblib/lib/Data/JavaScript.pmdigests unknownversion branch condition statement subroutine time collected ÿÿÿÀ~ñŸÿÿïþvecìsize statement vec‹size subroutineŒsize Rvec condition®size ¨£vecbranchblib/lib/Data/JavaScript.pmvecc R„ Ô ¯£ƒ -ƒ‚¹ E„ƒˆ„†‡‡‚‚ˆƒ‚†… i ø×‰‡…Œˆ“…Š““‹“‘†ƒ„‰ƒŠˆ‹ˆŠˆ„•‚ƒ‡„‚‚‚„…„ƒtimelƒ€€€€€€€€€€€€€€‚‚‚€€€€„„„„„„„ƒƒ€€ƒ‚ƒƒƒ‚ƒƒƒƒƒƒƒ‡‡‡†…‚€‚ƒ€ƒƒƒ€€€€€€€€€ statement€€€‚€€€€€ condition€€€€€€€€€€€€€€€€€€€€„„€‚€ƒ€…€‚‚ƒ†€€€€branch €„ƒ‡ subroutineblib/lib/Data/JavaScript.pmcount 1594604090.77423start1594604090.7814.53550 5.32.0perl 1594604088.78969finish '/Users/manchicken/Devel/data-javascriptname '/Users/manchicken/Devel/data-javascriptdir darwinOS t/0-critic.trunveccount 1594604087.45602start unknownversion aef6a14fdfe97282601c18f3768d8d91 t/0-critic.tdigests branch condition statement subroutine time collected1594604088.7791.53550 '/Users/manchicken/Devel/data-javascriptname '/Users/manchicken/Devel/data-javascriptdir darwinOS t/6-accents.trun 5.32.0perl 1594604092.56195finish unknownversion 8a140d68720d0a5b729893bf554821abblib/lib/Data/JavaScript.pm b7ff7e7798f6274abdace151b293f8b9 t/6-accents.tdigests branch condition statement subroutine time collected ÿÿÿáß|ñŸïÿDvecìsize statementŒsize "vec condition `…&bvec®sizebranch‹size vec subroutineblib/lib/Data/JavaScript.pmvec€€€€€€€€€€ condition€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€branch € subroutinelƒ€€€€€€€ƒƒƒ€€€€€€„€€€€€€€€€€€€€€€€€€€€€€€€€€€ statementW ºº† ¡ Bƒ ƒ‚²‚ „„…ƒ…ƒ…†ƒƒ‚ˆ‚‚ˆ‚ ¦ Á „‚‚„„‡Š†ƒ‚‚„ƒ‚‚‚…ƒtimeblib/lib/Data/JavaScript.pmcount 1594604092.55738start1594604092.7822.53550 lƒ‚€€€€ƒƒƒ€€€€ƒƒƒƒƒƒƒ……€€…€€……€…………………ŒŒŒ‰‚‚‡…€…‚ƒ€ƒƒ‚‚‚‚†††‚ƒƒƒƒ€ statementk ¸Þƒ š Vžƒ€  „´‚ „ƒ†‚„„‚‚‚„ˆ‚ƒƒ‡‚€‡„ ­ ¾vˆ…†ˆ…•…™¤¡’É„†„†ŠŒ‘±ƒŠˆŒ…‡†„„‚ƒˆ‹†‡ƒ‹ƒ†„†ƒtime €ƒ…Œ subroutine€€€€€€€€€€€€€ƒƒ€€…€…‚‡€……‚‰ƒ€ƒ‚€branch€€€…€‚€€€ conditionblib/lib/Data/JavaScript.pmcount 1594604091.22534start vecŒsize condition®size v…éÚvecbranch vec‹size subroutineìsize ÿÿÿûß|ñŸìÿïþÿvec statementblib/lib/Data/JavaScript.pmvec branch condition statement subroutine time collected 856d01c7b6d6c648fdc5be36c5e609bb t/3-undef.t 8a140d68720d0a5b729893bf554821abblib/lib/Data/JavaScript.pmdigests unknownversion 1594604091.23133finish 5.32.0perl t/3-undef.trun darwinOS '/Users/manchicken/Devel/data-javascriptname '/Users/manchicken/Devel/data-javascriptdir1594604091.7816.53550 1594604092.11954startW ¶ ‚ƒ • a›ƒ  ƒ±‚ ƒ„†ƒŽ…ƒ…†ƒ‚ƒƒ‡‚Œ„†ƒ ) À?‚‚‚„‡‚…‹•‚Š‘ƒ…‚ƒ‚ƒ„‚‚ƒƒˆ‚timelƒ€€€€€€€ƒƒƒ€€€€€€€ƒ€€€€€€€€€€€€€€€€€€€€€€€€€€ statement€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€branch€€€€€€€€€€ condition € subroutineblib/lib/Data/JavaScript.pmcount‹size vec subroutineŒsize "vec condition®size `…&bvecbranch ÿÿÿáß|ñŸýÿDvecìsize statementblib/lib/Data/JavaScript.pmvec branch condition statement subroutine time collected unknownversion 8a140d68720d0a5b729893bf554821abblib/lib/Data/JavaScript.pm 618fc458f6800ffe6ea49bac11620eb6t/5-multi-line.tdigests 1594604092.12424finish 5.32.0perl t/5-multi-line.trun darwinOS '/Users/manchicken/Devel/data-javascriptdir '/Users/manchicken/Devel/data-javascriptname1594604092.7820.53550 t/3-js12.trun darwinOS '/Users/manchicken/Devel/data-javascriptdir '/Users/manchicken/Devel/data-javascriptname 1594604090.29079finish 5.32.0perl branch condition statement subroutine time collected 938d57bbf49a7d8f273b176c7469593f t/3-js12.t 8a140d68720d0a5b729893bf554821abblib/lib/Data/JavaScript.pmdigests unknownversion 1594604090.28476start €„ƒ‡ subroutine€€€€€€€€€€€€€„„€€ƒ€ƒ€…€‚‚ƒ†€€€€branch€€ƒ€€€€€€€ conditionlƒ‚€€€€‚‚‚€€€€„„„„„„„ƒƒ€€ƒ€€ƒƒ†ƒƒƒƒƒƒƒ‡‡‡†…‚€‚ƒ€ƒƒƒ€€€€€€€€€ statementc Ë„ ž ¬ƒ‚ ƒ‚³‚€ ƒ„‡‚€ƒ……‚…‡‚€„‚„‡‚Š‚„ƒ Ê ¿Qˆ……ˆ‡“„‰’ŠŽš‡Š„„†‚ŠŠ‡‹‡„’‚„‹‚‚„ƒ‚ƒ†ƒ‚timeblib/lib/Data/JavaScript.pmcountìsize ÿÿÿïß|ñŸüÿïþvec statement‹size vec subroutine JvecŒsize condition®size y¨£vecbranchblib/lib/Data/JavaScript.pmvec1594604090.7812.53550runsData-JavaScript-1.15/CHANGES0000644000076500000240000000574213742436651015356 0ustar manchickenstaffRevision history for Perl extension Data::JavaScript. 1.15 Sun Oct 11 11:37:15 EDT 2020 - Adding skip check to the perlcritic test to avoid cpan tester issues. 1.14 Fri Oct 8 23:33:20 EDT 2020 - Modernized codebase - Added CI 1.13 Thu Aug 14 11:01:10 EDT 2008 - Finished implementing import - "Simplified"/unified __quotemeta code forks 1.12 Wed Aug 13 22:48:12 EDT 2008 - Some minor refactoring, including the removal of a dependency on Exporter - Fixed a misnumbered test in 1_11, which was intended to be a development release. - Escape based on reports of certain stupid browsers ceasing to parse JavaScript upon encountering this string, even in strings. - Added explicit license 1_11 Tue Nov 15 14:30:22 EST 2005 - Touched up documentation - Fixed syntax errors for hash key names that are also JS keywords Reported by Kevin J. of Activestate - Hash keys are now dumped in alphabetical order, this makes code easier to debug (as suggested by Scott Wessels) and is necessary for thorough testing. - Special characters tab, newline, carriage return, ", and \ are now escaped in place instead of as hex: \t, \n, \r, \", \\ 1.10 Sun Nov 13 03:50 EST 2005 - Touched up documentation - Explicitly requires Perl 5 - Previously undocumented, "private", quotemeta is now __quotemeta though you may still import and use it - Defaults to JavaScript1.3 compatible code with Unicode and undefined support, specifc JS=>1.2 on the use line for backwards compatbility. - Removed unnecessary evaluation of numeric elements, this fixes octal interpretation of zipcodes, etc. Still, zipcodes such as 02137 would be *correctly* evaluated by the client as 1119. However, in keeping with the principle of least surprise any purely numeric string with a leading zero will be treated as a string and quoted. If you really meant to send a literal octal value, you can always eval the var Similarly, engineering and hex notations are passed through to strings as well. Thanks for reports from Javier Arturo Rodriguez, Marius Feraru, Joseph Annino, Alan Fairless, Kevin J. - quotemeta has been completely rewritten with support for Unicode Thanks for reports from Slaven Rezic, Marius Feraru, Sean Burke 1.08 Thu Feb 13 09:04:27 EST 2003 - Touched up the documentation 1.07 Sat Feb 8 12:40:16 EST 2003 - Added means to control how undef is dumped, suggested by Slaven Rezic In doing so I have removed the undocumented feature that a list was silently transformed into a list reference. - Touched up the documentation **** Ariel Brosh passed away a few months ago. I volunteered to maintain this module as it was the inspiration for my own Data::JavaScript::LiteObject http://use.perl.org/article.pl?sid=03/01/12/226258&mode=nested **** 1.04 Thu Jul 19 2001 - Fixed quoting back, thanks to Garick Hamlin 1.00 Mon Jun 12 21:03:29 2000 - original version; created by h2xs 1.19 Data-JavaScript-1.15/MANIFEST0000644000076500000240000000111613742436704015502 0ustar manchickenstaffCHANGES CONTRIBUTING.md example.pl lib/Data/JavaScript.pm LICENSE Makefile.PL MANIFEST This list of files README.md t/0-critic.t t/1-load.t t/2-import.t t/3-js12.t t/3-noArgs.t t/3-undef.t t/4-escape.t t/5-multi-line.t t/6-accents.t t/7-nested-compat.t test/cover.14 test/cover.css test/coverage.html test/digests test/structure/8a140d68720d0a5b729893bf554821ab test/structure/8a140d68720d0a5b729893bf554821ab.lock TODO META.yml Module YAML meta-data (added by MakeMaker) META.json Module JSON meta-data (added by MakeMaker) Data-JavaScript-1.15/t/0000755000076500000240000000000013742436704014615 5ustar manchickenstaffData-JavaScript-1.15/t/6-accents.t0000644000076500000240000000055013700424632016554 0ustar manchickenstaff#!/usr/bin/env perl use Modern::Perl; use utf8; use Test2::V0; use Test2::Tools::Subtest qw/subtest_buffered/; use Data::JavaScript qw(:all); #<<< my $input = q/«Hêllö» Thére!/; my $expected = qq/var output = "\\u00ABH\\u00EAll\\u00F6\\u00BB Th\\u00E9re!";\n/; #>>> is jsdump( 'output', $input ), $expected, 'Accented jsdump()'; done_testing; Data-JavaScript-1.15/t/3-js12.t0000644000076500000240000000161513700424565015720 0ustar manchickenstaff#!/usr/bin/env perl use Modern::Perl; use Test2::V0; #No Unicode, undef yields empty strings use Data::JavaScript ( ':compat' => { JS => 1.2 } ); #Test undef default is join( q//, jsdump( 'foo', [ 1, undef, 1 ] ) ), q/var foo = new Array;foo[0] = 1;foo[1] = '';foo[2] = 1;/, 'Default undefined value'; #Test alphanumeric string output: quoting, ASCII/ANSI escaping, Unicode ## no critic (ProhibitEscapedCharacters, RequireInterpolationOfMetachars) is join( q//, jsdump( 'ANSI', "M\xF6tley Cr\xFCe" ) ), q?var ANSI = "M\xF6tley Cr\xFCe";?, 'Quoting, ASCII/ANSI escaping, unicode.'; is join( q//, jsdump( 'unicode', "Euros (\x{20ac}) aren't Ecus (\x{20a0})" ) ), q(var unicode = "Euros (\xE2\x82\xAC) aren't Ecus (\xE2\x82\xA0)";), 'No real Unicode'; is join( q//, jsdump( 'thang', qq('\t"\n\\\xa0) ) ), q(var thang = "'\t\"\n\\\\\xA0";), q(var thang = "'\t\"\n\\\xA0"); done_testing; Data-JavaScript-1.15/t/7-nested-compat.t0000644000076500000240000000142513700424572017705 0ustar manchickenstaff#!/usr/bin/env perl use Modern::Perl; use Test2::V0; use Data::JavaScript qw(:all); my $input = { a => { a1 => [qw/a1i a1ii a1iii/] }, b => { b1 => "b1i", }, c => "c1", d => [qw/d1 d2 d3/], }; my $expected = qq/var output = new Object;\n/ . qq/output["a"] = new Object;\n/ . qq/output["a"]["a1"] = new Array;\n/ . qq/output["a"]["a1"][0] = "a1i";\n/ . qq/output["a"]["a1"][1] = "a1ii";\n/ . qq/output["a"]["a1"][2] = "a1iii";\n/ . qq/output["b"] = new Object;\n/ . qq/output["b"]["b1"] = "b1i";\n/ . qq/output["c"] = "c1";\n/ . qq/output["d"] = new Array;\n/ . qq/output["d"][0] = "d1";\n/ . qq/output["d"][1] = "d2";\n/ . qq/output["d"][2] = "d3";\n/; is jsdump( 'output', $input ), $expected, 'Nested jsdump()'; done_testing; Data-JavaScript-1.15/t/3-noArgs.t0000644000076500000240000000153713700424610016364 0ustar manchickenstaff#!/usr/bin/env perl use Modern::Perl; use Test2::V0; use Test2::Require::Perl 'v5.7'; use Data::JavaScript; #Test undef default is join( q//, jsdump( 'foo', [ 1, undef, 1 ] ) ), 'var foo = new Array;foo[0] = 1;foo[1] = undefined;foo[2] = 1;', 'Default undef'; #Test alphanumeric string output: quoting, ASCII/ANSI escaping, Unicode ## no critic (ProhibitEscapedCharacters, RequireInterpolationOfMetachars) is join( q//, jsdump( 'ANSI', "M\xF6tley Cr\xFce" ) ), 'var ANSI = "M\xF6tley Cr\xFCe";', 'Quoting, ASCII/ANSI escaping, unicode'; is join( q//, jsdump( 'unicode', "Euros (\x{20ac}) aren't Ecus (\x{20a0})" ) ), q(var unicode = "Euros (\u20AC) aren't Ecus (\u20A0)";), q(Wide characters); is join( q//, jsdump( 'Cherokee', "\x{13E3}\x{13E3}\x{13E3}" ) ), q(var Cherokee = "\u13E3\u13E3\u13E3";), 'Non-Latin characters'; done_testing; Data-JavaScript-1.15/t/5-multi-line.t0000644000076500000240000000071013700424626017213 0ustar manchickenstaff#!/usr/bin/env perl use Modern::Perl; use Test2::V0; use Test2::Tools::Subtest qw/subtest_buffered/; use Data::JavaScript qw(:all); my $input = <<'EOF', This is a multi-line entry. See? I have two lines. Now there are three lines! EOF my $expected = qq/var multiline = "This is a multi-line entry.\\nSee? I have two lines.\\nNow there are three lines!\\n";\n/; is jsdump( 'multiline', $input ), $expected, 'Multi-line jsdump()'; done_testing; Data-JavaScript-1.15/t/3-undef.t0000644000076500000240000000120513700424615016231 0ustar manchickenstaff#!/usr/bin/env perl use Modern::Perl; use Test2::V0; use Data::JavaScript ( ':all' => { UNDEF => 0 } ); #Test undef value overloading is join( q//, jsdump( 'foo', [ 1, undef, 1 ] ) ), 'var foo = new Array;foo[0] = 1;foo[1] = undefined;foo[2] = 1;', 'Literal undefined.'; is join( q//, jsdump( 'bar', [ 1, undef, 1 ], 'null' ) ), 'var bar = new Array;bar[0] = 1;bar[1] = null;bar[2] = 1;', 'Literal null'; #Test hashes is join( q//, jsdump( 'qux', { color => 'monkey', age => 2, eyes => 'blue' } ) ), 'var qux = new Object;qux["age"] = 2;' . 'qux["color"] = "monkey";qux["eyes"] = "blue";', 'Simple hashref'; done_testing; Data-JavaScript-1.15/t/1-load.t0000644000076500000240000000023013700424560016041 0ustar manchickenstaff#!/usr/bin/env perl use Modern::Perl; use Test2::V0; use Data::JavaScript; ok length $Data::JavaScript::VERSION > 0, 'Module loads'; done_testing; Data-JavaScript-1.15/t/2-import.t0000644000076500000240000000100613700424601016433 0ustar manchickenstaff#!/usr/bin/env perl use Modern::Perl; use Test2::V0; use Test2::Tools::Subtest qw/subtest_buffered/; use Data::JavaScript qw(:all); subtest_buffered private_quotemeta => sub { # We're verifying that a newline is quoted. is __quotemeta( "Hello World\n" ), q/Hello World\n/, ## no critic (RequireInterpolationOfMetachars) 'Simple __quotemeta()'; }; subtest_buffered jsdump => sub { is join( q//, jsdump( 'narf', 'Troz!' ) ), 'var narf = "Troz!";', 'Simple jsdump()'; }; done_testing; Data-JavaScript-1.15/t/4-escape.t0000644000076500000240000000145513700424621016375 0ustar manchickenstaff#!/usr/bin/env perl use Modern::Perl; use Test2::V0; use Data::JavaScript; use Readonly; Readonly my $NEGATIVE_ONE => -1; Readonly my $PI => 3.14159; #Test numbers: negative, real, engineering, octal/zipcode is join( q//, jsdump( 'ixi', $NEGATIVE_ONE ) ), 'var ixi = -1;', 'Integer -1'; is join( q//, jsdump( 'pi', $PI ) ), 'var pi = 3.14159;', 'Pi'; is join( q//, jsdump( 'c', '3E8' ) ), 'var c = "3E8";', 'Scientific notation'; is join( q//, jsdump( 'zipcode', '02139' ) ), 'var zipcode = "02139";', 'US ZIP code'; is join( q//, jsdump( 'hex', '0xdeadbeef' ) ), 'var hex = "0xdeadbeef";', 'Hexadecimal'; ## no critic (RequireInterpolationOfMetachars) is join( q//, jsdump( 'IEsux', 'DoS!' ) ), 'var IEsux = "\x3C\x2Fscript\x3EDoS!";', 'Entity encoding.'; done_testing; Data-JavaScript-1.15/t/0-critic.t0000644000076500000240000000041313740623121016377 0ustar manchickenstaff#!/usr/bin/env perl use Modern::Perl; use Test2::V0; use Test2::Require::Perl 'v5.20'; use Test2::Require::EnvVar 'RELEASE_TESTING'; use Test2::Tools::PerlCritic; perl_critic_ok 'lib', 'test library files'; perl_critic_ok 't', 'test test files'; done_testing; Data-JavaScript-1.15/TODO0000644000076500000240000000217011051043025015017 0ustar manchickenstaffECMAScript and charset support for hjsdump Encoding, escape [^[:print:]] Doesn't seem to include Unicode in 5.8.4... Numbers Infinity NaN const (check attribute?) Lightweight (object initializer) output for 1.2+ JavaScript 1.2 and later support a compact object notation known as object literals. We probably want to walk depth first if using this notation. HASH = {key:val} ARRAY= [0, 1, 2] See nuclear wessels, wait for Anon/Lite merger because it requires inline dumping More robust var naming (get & use perl names?) Unify: How to scan & determine which format is best? constructor, flat, literal, class/prototype Data::JavaScript Data::JavaScript::LiteObject allow objects to be stuffed into an array and use the key names as var names? to what end, would have to know var names Data::JavaScript::Anon (Perl : anonymous :: JS : literal) jsdump takes undef as name worries too much about valid numbers but not strings, validation belongs elsewhere Template::Plugin::JavaScript __quotemeta JSON why oh why is it a top-level name? didn't he look around first? XML feed, Atom feed? Data-JavaScript-1.15/README.md0000644000076500000240000000402313702676064015631 0ustar manchickenstaff# Data::JavaScript [![Coverage Status](https://coveralls.io/repos/github/manchicken/data-javascript/badge.svg?branch=main)](https://coveralls.io/github/manchicken/data-javascript?branch=main) [![Build Status](https://travis-ci.org/manchicken/data-javascript.svg?branch=main)](https://travis-ci.org/manchicken/data-javascript) Dump perl structures to JavaScript code. `example.pl`: ```perl use Data::JavaScript; $hash = {'string' => 'Joseph', 'array' => [qw(0 1 2 3 4 5 6 7 8 9 a b c d e f)], 'capitals' => {'Sverige' => 'Stockholm', 'Norge' => 'Oslo', 'Danmark' => 'Koebenhavn'}, 'and' => [[0, 0], [0, 1]], 'or' => [[0, 1], [1, 1]], 'xor' => [[0, 1], [1, 0]]}; $hash->{'ref'} = $hash; print scalar(jsdump("facts", $hash, 31.4e-1)); ``` Output: ```js var facts = new Array; facts[0] = new Object; facts[0].xor = new Array; facts[0].xor[0] = new Array; facts[0].xor[0][0] = 0; facts[0].xor[0][1] = 1; facts[0].xor[1] = new Array; facts[0].xor[1][0] = 1; facts[0].xor[1][1] = 0; facts[0].or = new Array; facts[0].or[0] = new Array; facts[0].or[0][0] = 0; facts[0].or[0][1] = 1; facts[0].or[1] = new Array; facts[0].or[1][0] = 1; facts[0].or[1][1] = 1; facts[0].capitals = new Object; facts[0].capitals.Norge = 'Oslo'; facts[0].capitals.Sverige = 'Stockholm'; facts[0].capitals.Danmark = 'Koebenhavn'; facts[0].and = new Array; facts[0].and[0] = new Array; facts[0].and[0][0] = 0; facts[0].and[0][1] = 0; facts[0].and[1] = new Array; facts[0].and[1][0] = 0; facts[0].and[1][1] = 1; facts[0].ref = facts[0]; facts[0].array = new Array; facts[0].array[0] = 0; facts[0].array[1] = 1; facts[0].array[2] = 2; facts[0].array[3] = 3; facts[0].array[4] = 4; facts[0].array[5] = 5; facts[0].array[6] = 6; facts[0].array[7] = 7; facts[0].array[8] = 8; facts[0].array[9] = 9; facts[0].array[10] = 'a'; facts[0].array[11] = 'b'; facts[0].array[12] = 'c'; facts[0].array[13] = 'd'; facts[0].array[14] = 'e'; facts[0].array[15] = 'f'; facts[0].string = 'Joseph'; facts[1] = 3.14; ``` Data-JavaScript-1.15/example.pl0000644000076500000240000000071710336433516016341 0ustar manchickenstaffuse Data::JavaScript; $hash = {'string' => 'Joseph', 'array' => [qw(0 1 2 3 4 5 6 7 8 9 a b c d e f)], 'capitals' => {'Sverige' => 'Stockholm', 'Norge' => 'Oslo', 'Danmark' => 'Koebenhavn'}, 'and' => [[0, 0], [0, 1]], 'or' => [[0, 1], [1, 1]], 'xor' => [[0, 1], [1, 0]]}; $hash->{'ref'} = $hash; print scalar(jsdump("facts", $hash, 31.4e-1)); Data-JavaScript-1.15/CONTRIBUTING.md0000644000076500000240000000251113700235246016572 0ustar manchickenstaff# Contributing Your contributions are absolutely welcome! **NOTE**: The default branch on this repository is `main`. ## In order to contribute, please: 0. If you'd like to fix a problem you found, please make sure that an issue exists for it first. 1. Fork the repository on github 2. Make your changes 3. Submit a PR to `main`. 4. Make sure your PR mentions the issue you're resolving so that we can close issues. 5. Please use `perltidy` with the `.perltidyrc` in this repository. 6. Please use `perlcritic --harsh` ## When you're contributing, please observe our code quality standards (they're pretty light). 1. Do your best not to drop code coverage. There are a lot of folks who use the module, and we want to make sure everyone has a great experience. 2. Please run `make test` prior to submitting any PRs. If your tests don't pass, we can't merge your branch. 3. Please try to stick to the formatting in the file you are modifying as closely as possible. 4. Don't forget that we have a number of users, so check Travis-CI if you don't have access to multiple OS' for testing. ## Other requests 1. If you're looking for something to do, please consider adding test coverage or finding an issue to resolve. 4. Please do not submit PRs which include massive formatting changes. Those are no fun to code review. Thank you for contributing! Data-JavaScript-1.15/META.yml0000644000076500000240000000176013742436704015627 0ustar manchickenstaff--- abstract: 'Dump perl data structures into JavaScript code' author: - 'Michael Stemle, Jr. ' build_requires: B::Debug: '0' Devel::Cover: '0' Devel::Cover::Report::Coveralls: '0' ExtUtils::MakeMaker: '0' FindBin: '0' Perl::Critic: '0' Test2::Tools::PerlCritic: '0' Test2::V0: '0' configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 generated_by: 'ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Data-JavaScript no_index: directory: - t - inc requires: Modern::Perl: '0' Readonly: '0' Scalar::Util: '0' resources: bugtracker: https://github.com/manchicken/data-javascript/issues repository: https://github.com/manchicken/data-javascript version: '1.15' x_contributors: - 'Jerrad Pierce ' - 'Ariel Brosh ' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' Data-JavaScript-1.15/lib/0000755000076500000240000000000013742436704015120 5ustar manchickenstaffData-JavaScript-1.15/lib/Data/0000755000076500000240000000000013742436704015771 5ustar manchickenstaffData-JavaScript-1.15/lib/Data/JavaScript.pm0000644000076500000240000002167513742436637020415 0ustar manchickenstaffpackage Data::JavaScript; ## no critic (PodSpelling) use Modern::Perl; use Readonly; use Scalar::Util 'reftype'; our $VERSION = q/1.15/; # Exporter Readonly our @EXPORT => qw(jsdump hjsdump); Readonly our @EXPORT_OK => '__quotemeta'; Readonly our %EXPORT_TAGS => ( all => [ @EXPORT, @EXPORT_OK ], compat => [@EXPORT], ); # Magic numbers Readonly my $MIN_ENCODE_REQUIRE_BREAKPOINT => 5.007; Readonly my $JSCOMPAT_DEFAULT_VERSION => 1.3; Readonly my $JSCOMPAT_UNDEFINED_MISSING => 1.2; # This is a context variable which holds on to configs. my %opt = ( JS => $JSCOMPAT_DEFAULT_VERSION ); # TODO: This is super out-dated. if ( !$] < $MIN_ENCODE_REQUIRE_BREAKPOINT ) { require Encode; } sub import { my ( $package, @args ) = @_; # Let's get the stuff we're going to import my @explicit_imports = (); my @import = (); my %allowable = map { $_ => 1 } ( @EXPORT, @EXPORT_OK ); # This is the madness for the JS version for my $arg (@args) { if ( ref $arg eq 'HASH' ) { if ( exists $arg->{JS} ) { $opt{JS} = $arg->{JS}; } if ( exists $arg->{UNDEF} ) { $opt{UNDEF} = $arg->{UNDEF}; } } elsif ( not ref $arg ) { push @explicit_imports, $arg; } } $opt{UNDEF} ||= $opt{JS} > $JSCOMPAT_UNDEFINED_MISSING ? 'undefined' : q(''); #use (); #imports nothing, as package is not supplied if ( defined $package ) { if ( scalar @explicit_imports ) { # Run through the explicitly exported symbols for my $explicit_import (@explicit_imports) { # Looks like a tag if ( substr( $explicit_import, 0, 1 ) eq q/:/ ) { my $tag = substr $explicit_import, 1; # Only do things for the actually exported tags. if ( not exists $EXPORT_TAGS{$tag} ) { next; } push @import, @{ $EXPORT_TAGS{$tag} }; } # Not a tag elsif ( exists $allowable{$explicit_import} ) { #only user-specfied subset of @EXPORT, @EXPORT_OK push @import, $explicit_import; } } } else { @import = @EXPORT; } my $caller = caller; no strict 'refs'; ## no critic (ProhibitNoStrict) for my $func (@import) { *{"$caller\::$func"} = \&{$func}; } use strict 'refs'; } return; } sub hjsdump { my @input = @_; my @res = ( qq(', ); return wantarray ? @res : join qq/\n/, @res, q//; } sub jsdump { my ( $sym, @input ) = @_; return "var $sym;\n" if ( not scalar @input ); my ( $elem, $undef ) = @input; my %dict = (); my @res = __jsdump( $sym, $elem, \%dict, $undef ); $res[0] = qq/var $res[0]/; return wantarray ? @res : join qq/\n/, @res, q//; } sub __quotemeta { my ($input) = @_; ## ENCODER! if ( $] < $MIN_ENCODE_REQUIRE_BREAKPOINT ) { $input =~ s{ ([^ \x21-\x5B\x5D-\x7E]+) }{ sprintf(join('', '\x%02X' x length$1), unpack'C*',$1) }gexsm; } else { if ( $opt{JS} >= $JSCOMPAT_DEFAULT_VERSION && Encode::is_utf8($input) ) { $input =~ s{ ([\x{0080}-\x{fffd}]+) }{ sprintf '\u%0*v4X', '\u', $1 }gexms; } { use bytes; $input =~ s{ ((?:[^ \x21-\x7E]|(?:\\(?!u)))+) }{ sprintf '\x%0*v2X', '\x', $1 }gexms; } } #This is kind of ugly/inconsistent output for munged UTF-8 #tr won't work because we need the escaped \ for JS output $input =~ s/\\x09/\\t/gxms; $input =~ s/\\x0A/\\n/gxms; $input =~ s/\\x0D/\\r/gxms; $input =~ s/"/\\"/gxms; $input =~ s/\\x5C/\\\\/gxms; #Escape for stupid browsers that stop parsing $input =~ s{}{\\x3C\\x2Fscript\\x3E}gxms; return $input; } sub __jsdump { my ( $sym, $elem, $dict, $undef ) = @_; my $ref = ref $elem; if ( not $ref ) { if ( not defined $elem ) { return qq/$sym = @{[defined($undef) ? $undef : $opt{UNDEF}]};/; } #Translated from $Regexp::Common::RE{num}{real} if ( $elem =~ /^[+-]?(?:(?=\d|[.])\d*(?:[.]\d{0,})?)$/xsm ) { # (?:[eE][+-]?\d+)? if ( $elem =~ /^0\d+$/xsm ) { return qq/$sym = "$elem";/; } return qq/$sym = $elem;/; } #Fall-back to quoted string return qq/$sym = "/ . __quotemeta($elem) . q/";/; } #Circular references if ( $dict->{$elem} ) { return qq/$sym = $dict->{$elem};/; } $dict->{$elem} = $sym; #isa over ref in case we're given objects if ( $ref eq 'ARRAY' || reftype $elem eq 'ARRAY' ) { my @list = ("$sym = new Array;"); my $n = 0; foreach my $one ( @{$elem} ) { my $newsym = "$sym\[$n]"; push @list, __jsdump( $newsym, $one, $dict, $undef ); $n++; } return @list; } elsif ( $ref eq 'HASH' || reftype $elem eq 'HASH' ) { my @list = ("$sym = new Object;"); foreach my $k ( sort keys %{$elem} ) { my $old_k; $k = __quotemeta( $old_k = $k ); my $newsym = qq($sym\["$k"]); push @list, __jsdump( $newsym, $elem->{$old_k}, $dict, $undef ); } return @list; } else { return "//Unknown reference: $sym=$ref"; } } 1; ## no critic (RequirePodSections) __END__ =head1 NAME Data::JavaScript - Dump perl data structures into JavaScript code =head1 SYNOPSIS # Compatibility mode { use Data::JavaScript; # Use defaults my @code = jsdump('my_array', $array_ref); # Return array for formatting my $code = jsdump('my_object', $hash_ref); # Return convenient string my $html = hjsdump('my_stuff', $reference); # Convenience wrapper }; =head1 DESCRIPTION This module is mainly intended for CGI programming, when a perl script generates a page with client side JavaScript code that needs access to structures created on the server. It works by creating one line of JavaScript code per datum. Therefore, structures cannot be created anonymously and need to be assigned to variables. However, this format enables dumping large structures. The module can output code for different versions of JavaScript. It currently supports 1.1, 1.3 and you specify the version on the C line like so: use Data::JavaScript {JS=>1.3}; # The new default use Data::JavaScript {JS=>1.1}; # Old (pre module v1.10) format JavaScript 1.3 contains support for UTF-8 and a native C datatype. Earlier versions support neither, and will default to an empty string C<''> for undefined values. You may define your own default--for either version--at compile time by supplying the default value on the C line: use Data::JavaScript {JS=>1.1, UNDEF=>'null'}; Other useful values might be C<0>, C, or C. =head1 EXPORT In addition, althought the module no longer uses Exporter, it heeds its import conventions; C), C<()>, etc. =over =item jsdump('name', \$reference, [$undef]); The first argument is required, the name of JavaScript object to create. The second argument is required, a hashref or arrayref. Structures can be nested, circular referrencing is supported (experimentally). The third argument is optional, a scalar whose value is to be used en lieu of undefined values when dumping a structure. When called in list context, the function returns a list of lines. In scalar context, it returns a string. =item hjsdump('name', \$reference, [$undef]); hjsdump is identical to jsdump except that it wraps the content in script tags. =back =head1 EXPORTABLE =over =item __quotemeta($str) This function escapes non-printable and Unicode characters (where possible) to promote playing nice with others. =back =head1 CAVEATS Previously, the module eval'd any data it received that looked like a number; read: real, hexadecimal, octal, or engineering notations. It now passes all non-decimal values through as strings. You will need to C on the client or server side if you wish to use other notations as numbers. This is meant to protect people who store ZIP codes with leading 0's. Unicode support requires perl 5.8 or later. Older perls will gleefully escape the non-printable portions of any UTF-8 they are fed, likely munging it in the process as far as JavaScript is concerned. If this turns out to be a problem and there is sufficient interest it may be possible to hack-in UTF-8 escaping for older perls. =head1 LICENSE =over =item * Thou shalt not claim ownership of unmodified materials. =item * Thou shalt not claim whole ownership of modified materials. =item * Thou shalt grant the indemnity of the provider of materials. =item * Thou shalt use and dispense freely without other restrictions. =back Or if you truly insist, you may use and distribute this under ther terms of Perl itself (GPL and/or Artistic License). =head1 SEE ALSO L, L, L =head1 AUTHOR Maintained by Jerrad Pierce Created by Ariel Brosh . Inspired by WDDX.pm JavaScript support. =cut Data-JavaScript-1.15/Makefile.PL0000644000076500000240000000220413740621720016312 0ustar manchickenstaffuse strict; use warnings; use ExtUtils::MakeMaker; my %TEST_REQUIRES = ( 'Devel::Cover::Report::Coveralls' => '0', 'Devel::Cover' => '0', 'FindBin' => '0', 'Test2::V0' => '0', 'B::Debug' => '0', 'Perl::Critic' => '0', ); if ( $] >= 5.020 ) { $TEST_REQUIRES{'Test2::Tools::PerlCritic'} = '0'; } WriteMakefile( NAME => 'Data::JavaScript', AUTHOR => 'Michael Stemle, Jr. ', VERSION_FROM => 'lib/Data/JavaScript.pm', ABSTRACT_FROM => 'lib/Data/JavaScript.pm', LICENSE => 'perl_5', PREREQ_PM => { 'Modern::Perl' => '0', 'Readonly' => '0', 'Scalar::Util' => '0' }, TEST_REQUIRES => \%TEST_REQUIRES, META_MERGE => { 'meta-spec' => { version => 2 }, 'x_contributors' => [ 'Jerrad Pierce ', 'Ariel Brosh ', ], resources => { bugtracker => { web => 'https://github.com/manchicken/data-javascript/issues', }, repository => { type => 'git', url => 'git@github.com:manchicken/data-javascript.git', web => 'https://github.com/manchicken/data-javascript', }, }, }, ); Data-JavaScript-1.15/META.json0000644000076500000240000000324313742436704015775 0ustar manchickenstaff{ "abstract" : "Dump perl data structures into JavaScript code", "author" : [ "Michael Stemle, Jr. " ], "dynamic_config" : 1, "generated_by" : "ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Data-JavaScript", "no_index" : { "directory" : [ "t", "inc" ] }, "prereqs" : { "build" : { "requires" : { "ExtUtils::MakeMaker" : "0" } }, "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0" } }, "runtime" : { "requires" : { "Modern::Perl" : "0", "Readonly" : "0", "Scalar::Util" : "0" } }, "test" : { "requires" : { "B::Debug" : "0", "Devel::Cover" : "0", "Devel::Cover::Report::Coveralls" : "0", "FindBin" : "0", "Perl::Critic" : "0", "Test2::Tools::PerlCritic" : "0", "Test2::V0" : "0" } } }, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "https://github.com/manchicken/data-javascript/issues" }, "repository" : { "type" : "git", "web" : "https://github.com/manchicken/data-javascript" } }, "version" : "1.15", "x_contributors" : [ "Jerrad Pierce ", "Ariel Brosh " ], "x_serialization_backend" : "JSON::PP version 4.04" }