From d3b0da4b06d8cc1c1ba0b9360095b2de4204c24a Mon Sep 17 00:00:00 2001 From: Michael Mathews Date: Sat, 7 May 2011 15:14:14 +0100 Subject: [PATCH 01/14] Added rhino-require as a remote. --- LICENSE.md | 202 --- README.md | 95 -- build-files/build.properties | 2 - build-files/java/classes/js.jar | Bin 1087236 -> 0 bytes build-files/java/classes/sqlitejdbc-v054.jar | Bin 2314530 -> 0 bytes build-files/java/src/Run.java | 56 - build-files/templates/package.json | 36 - build.xml | 71 - changes.md | 0 conf.json | 14 - jsdoc | 7 - main.js | 273 ---- modules/common/args.js | 140 -- modules/common/assert.js | 302 ---- modules/common/dumper.js | 158 -- modules/common/events.js | 71 - modules/common/fs.js | 180 -- modules/common/query.js | 42 - modules/common/sqlite.js | 55 - modules/common/util.js | 119 -- modules/evilstreak/markdown.js | 1446 ----------------- modules/goessner/json2xml.js | 70 - modules/jsdoc/borrow.js | 70 - modules/jsdoc/doclet.js | 296 ---- modules/jsdoc/name.js | 180 -- modules/jsdoc/opts/parser.js | 75 - modules/jsdoc/package.js | 69 - modules/jsdoc/schema.js | 296 ---- modules/jsdoc/src/handlers.js | 137 -- modules/jsdoc/src/parser.js | 495 ------ modules/jsdoc/src/scanner.js | 63 - modules/jsdoc/tag.js | 135 -- modules/jsdoc/tag/dictionary.js | 73 - modules/jsdoc/tag/dictionary/definitions.js | 538 ------ modules/jsdoc/tag/type.js | 113 -- modules/jsdoc/tag/validator.js | 52 - modules/sitepen/jsonschema.js | 233 --- modules/typicaljoe/taffy.js | 1427 ---------------- modules/underscore/template.js | 34 - package.json | 36 - plugins/markdown.js | 18 - templates/default/publish.js | 290 ---- .../default/static/styles/jsdoc-default.css | 231 --- templates/default/static/styles/node-dark.css | 150 -- templates/default/tmpl/container.tmpl | 202 --- templates/default/tmpl/details.tmpl | 55 - templates/default/tmpl/example.tmpl | 2 - templates/default/tmpl/examples.tmpl | 10 - templates/default/tmpl/exceptions.tmpl | 28 - templates/default/tmpl/fires.tmpl | 3 - templates/default/tmpl/method.tmpl | 73 - templates/default/tmpl/params.tmpl | 115 -- templates/default/tmpl/properties.tmpl | 24 - templates/default/tmpl/returns.tmpl | 31 - templates/haruki/publish.js | 189 --- test/cases/accesstag.js | 29 - test/cases/alias.js | 13 - test/cases/alias2.js | 10 - test/cases/alias3.js | 12 - test/cases/also.js | 20 - test/cases/augmentstag.js | 14 - test/cases/authortag.js | 6 - test/cases/borrowstag.js | 14 - test/cases/borrowstag2.js | 21 - test/cases/classtag.js | 12 - test/cases/constructortag.js | 15 - test/cases/constructstag.js | 19 - test/cases/constructstag2.js | 16 - test/cases/constructstag3.js | 26 - test/cases/copyrighttag.js | 6 - test/cases/defaulttag.js | 34 - test/cases/deprecatedtag.js | 11 - test/cases/exceptiontag.js | 20 - test/cases/exports.js | 15 - test/cases/exportstag.js | 20 - test/cases/exportstag2.js | 18 - test/cases/exportstag3.js | 22 - test/cases/file.js | 6 - test/cases/globaltag.js | 16 - test/cases/ignoretag.js | 6 - test/cases/inner.js | 7 - test/cases/innerscope.js | 18 - test/cases/innerscope2.js | 19 - test/cases/jslangnames.js | 24 - test/cases/lends.js | 16 - test/cases/lends2.js | 18 - test/cases/lendsglobal.js | 14 - test/cases/memberoftag.js | 11 - test/cases/memberoftag2.js | 10 - test/cases/modules/data/mod-1.js | 5 - test/cases/modules/data/mod-2.js | 5 - test/cases/modules/data/mod-3.js | 21 - test/cases/moduletag.js | 11 - test/cases/moduletag2.js | 9 - test/cases/objectlit.js | 8 - test/cases/objectlit2.js | 8 - test/cases/paramtag.js | 41 - test/cases/privatetag.js | 11 - test/cases/projecttag.js | 9 - test/cases/quotename.js | 19 - test/cases/quotename2.js | 10 - test/cases/readonlytag.js | 10 - test/cases/requirestag.js | 12 - test/cases/returnstag.js | 11 - test/cases/seetag.js | 11 - test/cases/sincetag.js | 6 - test/cases/src/_dir2/four.js | 0 test/cases/src/_ignored.js | 0 test/cases/src/dir1/three.js | 0 test/cases/src/ignored.txt | 0 test/cases/src/one.js | 0 test/cases/src/two.js | 0 test/cases/this-and-objectlit.js | 12 - test/cases/this.js | 10 - test/cases/this2.js | 15 - test/cases/this3.js | 5 - test/cases/thistag.js | 10 - test/cases/typedeftag.js | 5 - test/cases/typekind.js | 17 - test/cases/typetag.js | 10 - test/cases/var.js | 10 - test/cases/variations.js | 26 - test/cases/versiontag.js | 6 - test/cases/virtual.js | 3 - test/runner.js | 149 -- test/t/cases/accesstag.js | 39 - test/t/cases/alias.js | 20 - test/t/cases/alias2.js | 18 - test/t/cases/alias3.js | 12 - test/t/cases/also.js | 13 - test/t/cases/augmentstag.js | 12 - test/t/cases/authortag.js | 11 - test/t/cases/borrowstag.js | 14 - test/t/cases/borrowstag2.js | 17 - test/t/cases/classtag.js | 16 - test/t/cases/constructortag.js | 15 - test/t/cases/constructstag.js | 11 - test/t/cases/constructstag2.js | 12 - test/t/cases/constructstag3.js | 12 - test/t/cases/copyrighttag.js | 11 - test/t/cases/defaulttag.js | 41 - test/t/cases/deprecatedtag.js | 16 - test/t/cases/exceptiontag.js | 20 - test/t/cases/exports.js | 13 - test/t/cases/exportstag.js | 31 - test/t/cases/exportstag2.js | 26 - test/t/cases/exportstag3.js | 19 - test/t/cases/file.js | 19 - test/t/cases/globaltag.js | 28 - test/t/cases/ignoretag.js | 11 - test/t/cases/inner.js | 21 - test/t/cases/innerscope.js | 20 - test/t/cases/innerscope2.js | 21 - test/t/cases/lends.js | 14 - test/t/cases/lends2.js | 17 - test/t/cases/lendsglobal.js | 17 - test/t/cases/memberoftag.js | 15 - test/t/cases/memberoftag2.js | 23 - test/t/cases/modules/data/mod-1.js | 18 - test/t/cases/modules/data/mod-2.js | 18 - test/t/cases/modules/data/mod-3.js | 18 - test/t/cases/moduletag.js | 17 - test/t/cases/moduletag2.js | 25 - test/t/cases/objectlit.js | 13 - test/t/cases/objectlit2.js | 13 - test/t/cases/paramtag.js | 69 - test/t/cases/privatetag.js | 11 - test/t/cases/projecttag.js | 12 - test/t/cases/quotename.js | 11 - test/t/cases/quotename2.js | 11 - test/t/cases/readonlytag.js | 11 - test/t/cases/requirestag.js | 17 - test/t/cases/returnstag.js | 22 - test/t/cases/seetag.js | 15 - test/t/cases/sincetag.js | 11 - test/t/cases/this-and-objectlit.js | 26 - test/t/cases/this.js | 21 - test/t/cases/this2.js | 14 - test/t/cases/this3.js | 13 - test/t/cases/thistag.js | 18 - test/t/cases/typedeftag.js | 24 - test/t/cases/typekind.js | 18 - test/t/cases/typetag.js | 18 - test/t/cases/var.js | 31 - test/t/cases/variations.js | 23 - test/t/cases/versiontag.js | 11 - test/t/cases/virtual.js | 18 - test/t/common/dumper.js | 91 -- test/t/common/events.js | 34 - test/t/common/query.js | 16 - test/t/common/scanner.js | 19 - test/t/common/util.js | 51 - test/t/jsdoc/name.js | 119 -- test/t/jsdoc/opts/parser.js | 37 - test/t/jsdoc/src/handlers.js | 16 - test/t/jsdoc/src/parser.js | 52 - 196 files changed, 11692 deletions(-) delete mode 100644 LICENSE.md delete mode 100644 README.md delete mode 100644 build-files/build.properties delete mode 100644 build-files/java/classes/js.jar delete mode 100644 build-files/java/classes/sqlitejdbc-v054.jar delete mode 100644 build-files/java/src/Run.java delete mode 100644 build-files/templates/package.json delete mode 100644 build.xml delete mode 100644 changes.md delete mode 100644 conf.json delete mode 100755 jsdoc delete mode 100644 main.js delete mode 100644 modules/common/args.js delete mode 100644 modules/common/assert.js delete mode 100644 modules/common/dumper.js delete mode 100644 modules/common/events.js delete mode 100644 modules/common/fs.js delete mode 100644 modules/common/query.js delete mode 100644 modules/common/sqlite.js delete mode 100644 modules/common/util.js delete mode 100644 modules/evilstreak/markdown.js delete mode 100644 modules/goessner/json2xml.js delete mode 100644 modules/jsdoc/borrow.js delete mode 100644 modules/jsdoc/doclet.js delete mode 100644 modules/jsdoc/name.js delete mode 100644 modules/jsdoc/opts/parser.js delete mode 100644 modules/jsdoc/package.js delete mode 100644 modules/jsdoc/schema.js delete mode 100644 modules/jsdoc/src/handlers.js delete mode 100644 modules/jsdoc/src/parser.js delete mode 100644 modules/jsdoc/src/scanner.js delete mode 100644 modules/jsdoc/tag.js delete mode 100644 modules/jsdoc/tag/dictionary.js delete mode 100644 modules/jsdoc/tag/dictionary/definitions.js delete mode 100644 modules/jsdoc/tag/type.js delete mode 100644 modules/jsdoc/tag/validator.js delete mode 100644 modules/sitepen/jsonschema.js delete mode 100644 modules/typicaljoe/taffy.js delete mode 100644 modules/underscore/template.js delete mode 100644 package.json delete mode 100644 plugins/markdown.js delete mode 100644 templates/default/publish.js delete mode 100644 templates/default/static/styles/jsdoc-default.css delete mode 100644 templates/default/static/styles/node-dark.css delete mode 100644 templates/default/tmpl/container.tmpl delete mode 100644 templates/default/tmpl/details.tmpl delete mode 100644 templates/default/tmpl/example.tmpl delete mode 100644 templates/default/tmpl/examples.tmpl delete mode 100644 templates/default/tmpl/exceptions.tmpl delete mode 100644 templates/default/tmpl/fires.tmpl delete mode 100644 templates/default/tmpl/method.tmpl delete mode 100644 templates/default/tmpl/params.tmpl delete mode 100644 templates/default/tmpl/properties.tmpl delete mode 100644 templates/default/tmpl/returns.tmpl delete mode 100644 templates/haruki/publish.js delete mode 100644 test/cases/accesstag.js delete mode 100644 test/cases/alias.js delete mode 100644 test/cases/alias2.js delete mode 100644 test/cases/alias3.js delete mode 100644 test/cases/also.js delete mode 100644 test/cases/augmentstag.js delete mode 100644 test/cases/authortag.js delete mode 100644 test/cases/borrowstag.js delete mode 100644 test/cases/borrowstag2.js delete mode 100644 test/cases/classtag.js delete mode 100644 test/cases/constructortag.js delete mode 100644 test/cases/constructstag.js delete mode 100644 test/cases/constructstag2.js delete mode 100644 test/cases/constructstag3.js delete mode 100644 test/cases/copyrighttag.js delete mode 100644 test/cases/defaulttag.js delete mode 100644 test/cases/deprecatedtag.js delete mode 100644 test/cases/exceptiontag.js delete mode 100644 test/cases/exports.js delete mode 100644 test/cases/exportstag.js delete mode 100644 test/cases/exportstag2.js delete mode 100644 test/cases/exportstag3.js delete mode 100644 test/cases/file.js delete mode 100644 test/cases/globaltag.js delete mode 100644 test/cases/ignoretag.js delete mode 100644 test/cases/inner.js delete mode 100644 test/cases/innerscope.js delete mode 100644 test/cases/innerscope2.js delete mode 100644 test/cases/jslangnames.js delete mode 100644 test/cases/lends.js delete mode 100644 test/cases/lends2.js delete mode 100644 test/cases/lendsglobal.js delete mode 100644 test/cases/memberoftag.js delete mode 100644 test/cases/memberoftag2.js delete mode 100644 test/cases/modules/data/mod-1.js delete mode 100644 test/cases/modules/data/mod-2.js delete mode 100644 test/cases/modules/data/mod-3.js delete mode 100644 test/cases/moduletag.js delete mode 100644 test/cases/moduletag2.js delete mode 100644 test/cases/objectlit.js delete mode 100644 test/cases/objectlit2.js delete mode 100644 test/cases/paramtag.js delete mode 100644 test/cases/privatetag.js delete mode 100644 test/cases/projecttag.js delete mode 100644 test/cases/quotename.js delete mode 100644 test/cases/quotename2.js delete mode 100644 test/cases/readonlytag.js delete mode 100644 test/cases/requirestag.js delete mode 100644 test/cases/returnstag.js delete mode 100644 test/cases/seetag.js delete mode 100644 test/cases/sincetag.js delete mode 100644 test/cases/src/_dir2/four.js delete mode 100644 test/cases/src/_ignored.js delete mode 100644 test/cases/src/dir1/three.js delete mode 100644 test/cases/src/ignored.txt delete mode 100644 test/cases/src/one.js delete mode 100644 test/cases/src/two.js delete mode 100644 test/cases/this-and-objectlit.js delete mode 100644 test/cases/this.js delete mode 100644 test/cases/this2.js delete mode 100644 test/cases/this3.js delete mode 100644 test/cases/thistag.js delete mode 100644 test/cases/typedeftag.js delete mode 100644 test/cases/typekind.js delete mode 100644 test/cases/typetag.js delete mode 100644 test/cases/var.js delete mode 100644 test/cases/variations.js delete mode 100644 test/cases/versiontag.js delete mode 100644 test/cases/virtual.js delete mode 100644 test/runner.js delete mode 100644 test/t/cases/accesstag.js delete mode 100644 test/t/cases/alias.js delete mode 100644 test/t/cases/alias2.js delete mode 100644 test/t/cases/alias3.js delete mode 100644 test/t/cases/also.js delete mode 100644 test/t/cases/augmentstag.js delete mode 100644 test/t/cases/authortag.js delete mode 100644 test/t/cases/borrowstag.js delete mode 100644 test/t/cases/borrowstag2.js delete mode 100644 test/t/cases/classtag.js delete mode 100644 test/t/cases/constructortag.js delete mode 100644 test/t/cases/constructstag.js delete mode 100644 test/t/cases/constructstag2.js delete mode 100644 test/t/cases/constructstag3.js delete mode 100644 test/t/cases/copyrighttag.js delete mode 100644 test/t/cases/defaulttag.js delete mode 100644 test/t/cases/deprecatedtag.js delete mode 100644 test/t/cases/exceptiontag.js delete mode 100644 test/t/cases/exports.js delete mode 100644 test/t/cases/exportstag.js delete mode 100644 test/t/cases/exportstag2.js delete mode 100644 test/t/cases/exportstag3.js delete mode 100644 test/t/cases/file.js delete mode 100644 test/t/cases/globaltag.js delete mode 100644 test/t/cases/ignoretag.js delete mode 100644 test/t/cases/inner.js delete mode 100644 test/t/cases/innerscope.js delete mode 100644 test/t/cases/innerscope2.js delete mode 100644 test/t/cases/lends.js delete mode 100644 test/t/cases/lends2.js delete mode 100644 test/t/cases/lendsglobal.js delete mode 100644 test/t/cases/memberoftag.js delete mode 100644 test/t/cases/memberoftag2.js delete mode 100644 test/t/cases/modules/data/mod-1.js delete mode 100644 test/t/cases/modules/data/mod-2.js delete mode 100644 test/t/cases/modules/data/mod-3.js delete mode 100644 test/t/cases/moduletag.js delete mode 100644 test/t/cases/moduletag2.js delete mode 100644 test/t/cases/objectlit.js delete mode 100644 test/t/cases/objectlit2.js delete mode 100644 test/t/cases/paramtag.js delete mode 100644 test/t/cases/privatetag.js delete mode 100644 test/t/cases/projecttag.js delete mode 100644 test/t/cases/quotename.js delete mode 100644 test/t/cases/quotename2.js delete mode 100644 test/t/cases/readonlytag.js delete mode 100644 test/t/cases/requirestag.js delete mode 100644 test/t/cases/returnstag.js delete mode 100644 test/t/cases/seetag.js delete mode 100644 test/t/cases/sincetag.js delete mode 100644 test/t/cases/this-and-objectlit.js delete mode 100644 test/t/cases/this.js delete mode 100644 test/t/cases/this2.js delete mode 100644 test/t/cases/this3.js delete mode 100644 test/t/cases/thistag.js delete mode 100644 test/t/cases/typedeftag.js delete mode 100644 test/t/cases/typekind.js delete mode 100644 test/t/cases/typetag.js delete mode 100644 test/t/cases/var.js delete mode 100644 test/t/cases/variations.js delete mode 100644 test/t/cases/versiontag.js delete mode 100644 test/t/cases/virtual.js delete mode 100644 test/t/common/dumper.js delete mode 100644 test/t/common/events.js delete mode 100644 test/t/common/query.js delete mode 100644 test/t/common/scanner.js delete mode 100644 test/t/common/util.js delete mode 100644 test/t/jsdoc/name.js delete mode 100644 test/t/jsdoc/opts/parser.js delete mode 100644 test/t/jsdoc/src/handlers.js delete mode 100644 test/t/jsdoc/src/parser.js diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index ba2d2fb92..000000000 --- a/LICENSE.md +++ /dev/null @@ -1,202 +0,0 @@ -License -======= - -JSDoc 3 is free software, licensed under the Apache License, -Version 2.0 (the "License"); you MAY NOT use this software except in -compliance with the License. You have permission to use it for commercial, -non-commercial, or any other purpose you like, according to the -License below. - -Copyright (c) 2011 Michael Mathews -All rights reserved. - -You may obtain a copy of the License at -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied. See the License for the specific language governing -permissions and limitations under the License. - -You may obtain the source code for JSDoc 3 at -https://github.com/micmath/JSDoc - - -In Addition -=========== - -Third party software is included, used-by or distributed along -with JSDoc 3. Each is provided under its own license and has source -available from other locations. - - -Rhino (build/java/classes/js.jar) ----- - -Rhino is open source and licensed by Mozilla under the MPL 1.1 or -later/GPL 2.0 or later licenses. - -https://developer.mozilla.org/en/Rhino_License - -You may obtain the source code for Rhino from the Mozilla web site at -http://www.mozilla.org/rhino/download.html - -json2xml (modules/goessner/json2xml) ----- - -Copyright (c) Stefan Goessner 2006 - -json2xml is licensed under Creative Commons GNU LGPL License, -http://creativecommons.org/licenses/LGPL/2.1/ - -You may obtain the source code for json2xml at -http://goessner.net/download/prj/jsonxml/ - -Node (modules/common/assert, modules/common/util) ----- - -Copyright 2009, 2010 Ryan Lienhart Dahl. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. - -You may obtain the source code for Node at -https://github.com/ry/node - -JSONSchema Validator (modules/sitepen/jsonschema) ----- - -Copyright (c) 2007 Kris Zyp SitePen (www.sitepen.com) - -Licensed under the MIT license. You may obtain a copy of the -License at http://www.opensource.org/licenses/mit-license.php - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -You may obtain the source code for JSONSchema Validator at -http://github.com/kriszyp/commonjs-utils/blob/master/lib/json-schema.js -http://www.sitepen.com/blog/2010/03/02/commonjs-utilities/ - -markdown-js (modules/evilstreak/markdown) ----- - -markdown-js is released under the MIT license. You may obtain a copy of the -License at http://www.opensource.org/licenses/mit-license.php - -Copyright (c) 2009-2010 Dominic Baggott -Copyright (c) 2009-2010 Ash Berlin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -You may obtain the source code for markdown-js at -https://github.com/evilstreak/markdown-js - -sqlitejdbc (build/java/classes/sqlitejdbc-v054.jar) ----- - -Copyright (c) 2007 David Crawshaw - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -You may obtain the source code for sqlitejdbc at -https://github.com/crawshaw/sqlitejdbc - -Underscore Template (templates/lib/underscore/template.js) ----- - -Underscore.js 1.1.4 - -Copyright (c) 2011 Jeremy Ashkenas, DocumentCloud Inc. - -Underscore is freely distributable under the MIT license. -Portions of Underscore are inspired or borrowed from Prototype, -Oliver Steele's Functional, and John Resig's Micro-Templating. - -For all details and documentation: -http://documentcloud.github.com/underscore/#template - -TaffyDB (modules/typicaljoe/taffy.js) ----- - -Copyright (c) 2008 All rights reserved. - -Software License Agreement (BSD License) - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following condition is met: - -Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -You may obtain the source code for TaffyDB at -https://github.com/typicaljoe/taffydb \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 8cb8c36c8..000000000 --- a/README.md +++ /dev/null @@ -1,95 +0,0 @@ -JSDoc 3 -======= - -An inline API documentation processor for JavaScript. JSDoc 3 is intended to be -an upgrade to JsDoc Toolkit (JSDoc 2). - -Notice ------- - -This is *pre-release software*! It is under active development, not complete -and is not suitable for reqular use yet. - -Installation ------------- - -Download a copy of JSDoc 3 from the official Git Hub repository here: - - -To build the jar file that runs JSDoc 3, use the Apache ant build tool: - - cd jsdoc - ant - -This will create a file named `jsdoc.jar` in the project base directory. - -To test that the newly installed app is working, execute the following: - - java -jar jsdoc.jar --test - -Usage ------ - -This example assumes that your working directory is the jsdoc application base -directory: - - java -jar jsdoc.jar yourSourceCodeFile.js - -For help regarding the supported commandline options use the --help option. - - java -jar jsdoc.jar --help - -Included with JSDoc 3 is a bash shell script that can simplify the command line -usage slightly. For example: - - ./jsdoc --help - ./jsdoc yourSourceCodeFile.js - -Dependencies ------------- - -JSDoc 3 utilises the Mozilla Rhino engine, which requires Java. JSDoc 3 is known -to work with version 1.6.0_24 of Java. - -JSDoc 3 uses advanced features in the Rhino application which are only -available in or after Rhino 1.7 release 3. A copy of this version of Rhino is -included in JSDoc so this is not normally an issue that the user needs to be -concerned with. However, in rare cases, users may have their Java CLASSPATH -configured to override that included Rhino and point to some older version of -Rhino instead. If this is the case, simply correct the CLASSPATH to remove the -older Rhino. - -The build script for JSDoc 3 requires Apache ant. It is know to work with -version 1.8.2 of ant. - -Debugging ---------- - -Rhino is not always very friendly when it comes to reporting errors in -JavaScript. Luckily it comes with a full-on debugger included that can be much -more useful than a simple stack trace. To invoke JSDoc with the debugger try the -following command: - - $ java -classpath build-files/java/classes/js.jar \ - org.mozilla.javascript.tools.debugger.Main main.js `pwd` \ - your/script.js - -This will open a debugging window. Choose "Break on Exceptions" from the "Debug" -menu, then press the "Run" button. If there is an error, you should see exactly -where it is in the source code. - -See Also --------- - -Project Documentation: (under development) -JSDoc User's Group: -Subversion Mirror: -Project Annoncements: - -License -------- - -JSDoc 3 is copyright (c) 2011 Michael Mathews - -See file "LICENSE.md" in this distribution for more details about -terms of use. \ No newline at end of file diff --git a/build-files/build.properties b/build-files/build.properties deleted file mode 100644 index ecaaae159..000000000 --- a/build-files/build.properties +++ /dev/null @@ -1,2 +0,0 @@ -app.name=jsdoc -app.version=3.0.0beta1 diff --git a/build-files/java/classes/js.jar b/build-files/java/classes/js.jar deleted file mode 100644 index 64d9e3affc7c445ca7b49578a9732cbc0eb0f2e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1087236 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 z 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 z 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

6!$0&=r8VVYy`n0-`_Xdr(~eWi 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

Ph`5A@~wPYIIxz${lmA8-z@T+obKw9+&XfV*(2 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ʯC&RW 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%0ApVK2n^H@x>SKE@1r4#*_ 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._@r$B}e;{QlPz|^wr)HqW3=ZhGsTaJqX3j1!uB@ z)jpWZgmYMt&{!6nhayiJD+?}Uy;Zl+irX-f=*!^*g` z2zuwRKdD269-YfxQ-|`gs4V8Om(@d2-; zY0+G?R6SrMsge@4RBF+uYpaXSmgrMRM&g$b26l^L>cs`6Fb$PhphyIhyA$V3zhJ>c+1Ub`|EwT+eZ_Re~~U zcq+gxww5^>{S2IHS@Ny|{c#34v5oS`_;|6X`%BKStxzUsrR_oGj~D4g?qFvsu$!G# zQ?ge~?rfY~!kV9WvsL>66zxaI)P90q+JB(8_A^f6S18whgK@f&u);syIerA=)RDY0 zMTL)2N6YwRqkWVDUJ!U+zdzmslajS~;S?s;g~Uv9ggRC2P=nTt&Y`0Sd%<9GgK=S{ z?$-ChY`3~sbjbHWFOPGWl+N5?xd-QZZc%^Q2AbI>4&Wu9H>IO-Y-1%Vqx0&hS_eB{ zs5XpiE}+#X7v|BUywGj*YiAd^jX25{l6BHe$ksC;Pj`Vw&xA7Ff(ktgCh4e-^gO86 z3!qN#4fXm#uvYH_C+TiDUoV1N^nvhzeh9SdgJGvW1b(Lvg=cm9^_qn?%3}QSpxh20 z1b4|@ClA~#f)oyAaFaR)MOB4r41vZXDKw~qusTkyK!JJyijaH8r-;R2>I6xiyCr!( z6Xeh0x35V zDK`o!HySBdfs`8$HTq$&RG$ETy%Hk&B)C*R9Jc6F;ck68JfY8o=k;0evOXK$(C5H= zdNq8kACW-8&tepOF-F1P$0+!CjDkB*glr1lC@EM2o7GBm4|RB6P;g=j1t+PKB?Zru z6ntDz@T7DUwBMd4|K%!S;4__l2H|gL!qd1q+0#(zu*WNOOym{09xLt}@V*W5DvkK9 z+t{^}T~k-&aqGwoM2l-lip1dqb{!G|P5UOBESud1z4gJa7j(IS=%T>!&?r^}BhV_Y zi4wK|>2xI0X(0^L7r_{PF-+8#!Zdvu)arFepQGV;{WxgUkB1iBi*!03&eZGSD!l=2 z)O~Q9-U#>TP4KY33U=uJ1o}K4qt7id`fQf;83NY{1BtFbTrCWw3e(^ub&4=qjj&XN z60|^8jPyA?g+5bbyS|Ue12?mXKIo9A6)|#N#n}+GsDs@&4`WLYHo?40ytwyyS&F*W zF__U?AYVTL2I~|LrtPd{TTWaP7(&=t;STWn+OU@d;q$MI9eMgpoPvD{pXKT~eG90B$} zx-xm4Bd-hPb+NoImDgo-ZG&7P8@kQaVu4$!FbJ$_Vts{-k2p|noW30tIzd&a7HWlR z1J-9-E6qYWq^;!WkFuLL!7|ihx8!BX8tu@V4!Ft_J92u|XO1cQVz(ytbz7zBX=k_N z?~WqWhqRsNHal1w6~oJ$V7eU15+jYpJcb1?w6i;D4SWxX^EA(IMpc~8?#jz*hx^+^ z{%$IN25-f2n$HurMNWhPNX84n&@TeFekt_VFN5*=6;P>P1?TD4!iD-KxLn^1oAet| zC2mDAyBRw4Ti`kUcK9>u@UQf{;CuaU_)))yas6IasNcuj`u(iG{s22f-^NPy?Q9w% zrdHp`fkBGE$F2_2ZyM0#F}$03>BwN=wR|mu~Tv<+2JGQ)N1q= z6&T8vN>8(#)e5#&(KVW3A2o$aHccD>)nN;~E11$?h0th^k+j14QA~jUEYGQUopUOk zt+39eb)|a}R;2Hx;CeotN%)G+4d=7_C?rbU<+vXs?{-)&0&iLz5^?t!t$G=zXA*O*AgVp8`E&JV++bt zaB@?V7nJGG3`%>lkY2jPCl86~Mw4T1_JCl*RJA1+Ec5f(w)ldj&D9Tz1BlO2UhSmC~Xe~a26ZJ3QH2o{MO#d3L)&GiC;~ThD z{|^1Lza@O+;vtF4L2#MWoE|t&YR=POj9@Gdm%$))u3CebeE_&xtIkV4;Y@$WN@BV| zZgre3)P7SUrZKX8bRN0xdr<+&W5e44^-MJtmN}k0A!QGYiyeF`63E$sraYfLMh15$ zC6A-iL|v7Faf+Ltv9oB|_*Rh;#+PfYPLjiWIRcDmD}qg?lep09zChL1iOG0pTL*#oo~? z_5wCk^jdk(dFI*4CPwdlKfgbcnVp^4InQ}cf6h72&u9|=hrq;-Es-|!I(F-dNk z0;iff=9?DIF>PFKIsvXuK#qRA&Xm*xN9&`>qG1iVB#8Pf(L2(&LY|EYajjrOoI&i} zwpOV9#GodD!}hEhCP=C*RJht6xNamjy*#m97H4y4t2ixoj)I$&yV~;&Nu)og-4kJH#$>?*3W5O0wHGb^EcYd))u$D}1Y1)Mqi9`Q?fukEBYr zU=*9i8~{H|H*q=+&Dm3aHBNP&b@NP~wb)h0tEmPXPLFOCdpOu~mI0lLq)t|hXqI>qDK@KMONqQSR}v-7dgY9A9zHU zfn((qrP45eW=&R{tv5%<&N4zIkb1f42qBCe>)Slst27W4us~ds4T>ba(J-rx z*o@OkzQkzzo&6au2Dvgl`_sVTMKK^BaiW%(n@o`ty8-5yiI;~;F_0k1swsx24_OdX zQU!USa^2)HkHD8g>8O2txSi@yG&eo1o7-JR3K9=b!9%fR${ogf4LgwU#M&iu6nUn) zaIqmtfPx>SL8eFjB3OyakSeb$$^X%BiJLU5m_{>UBMinoIZfoYcG9z2^8VGrkFa)Sv`vjH;NmC`yhgv zW<0-u8`^R#d1@dhV(yIGk&);a#RWDvrOdRQ6*GPeJH={lRKo>>k+7cP+BAiM7mNKX+0O^6N>DNr+A!wYQG)Qf4qfhyd6Y!+|9YDBme&Br(^RB6zu+V5bJ(WeL?;!L$Axxc|qPQ zp}bZG?%>oO?{i`#J%Rr7fcmU(vPo@U+ICXBwC;jl!`qa25#`1WhZO{k7J%eCZ_JPF5 z+Akt^YWB9#^N-1q;9kZ~SemBBtg*E8@z?18sV^+>1j~Sbb@q~>=2?ayC*w0ci8p2N*-0st+*STx>zNq8Y5KRG$5MvWd^>xpR~ z;y|Pl*h~YCY1As1rCJ1WUeYMZ$ys|(;|o^6m(3#0%phiB+l6uPWDWcNbES!XJm8VRVGzW@ygD<~_TDFqJkC$?2|53=)7dhD90{24FV+@%3=r z+-+M@uH!7cl>p0_e7Ydjo~=K&HnsAinm4Q`pyXB3i7rIysxo0C!(|JyW)rVjLWZkW z8*9}ntX={iR^xGLh)}RXD~weQ>{o-xGI1Rcsbne9(q&vck9erE)39+JT~eFv<2egf zDrXTs4QhdQ51LoWy(q0UwEQznqvDZIg#K#z##ZN{_GkF6$2~ApDY-~ZxgIMasRj}~ zNhNJbKWBS9emUJUqYTgTsCGams<_1ddwANiSS`6E*?C5y7=2$s&QEI*#Z6I*Br}IJ z1HD9;vpOA$xqr&ia$0KDQ8#CPdN9K3ZAi_3;221x+IX%HJM4Iw5LIimAd(G}ulita z2Rm?nSwW@+fV2cRdbSKnTPL>fV~tAR8Z*j#0lH}s4F!7#&MCmE>{^mhJDd2pitGIJ zhFltwR^6cWVH`YRg%{PYgp!UKt=AwL8!~=c#xRF5F}0TYYm?!DsttT(7M|0im>Ty? z3ez3(ppkTBV_6O|u8OlVtdvY(cZjxVObmV5Ludk2Xkt7#NqKH4BkXyZRA?fJkf{S0 znl%6R_d&$n=@D=p-UX1GVs>8#=;dWEkQ+P5#V1%D3)HG6=%vlCXVzbC@W9^Oz~28l z;#Zx28Q81#xsh=4{#s7yLtlcbn(p&@(`3FrT8D{P77Bc^33Ny5_lEEHrtkO0@Au}v zy8`-RzH_j&q( zI(|40=8|IU^ao~Hv9g~3_oY|h8+hQGSfD3YzYj{k4@-Ynpn=|-|Gz5u@0n)R^?k8l zrFzrY1yP-4l~y$A?2`uv&v~1M+yyaLOYxn$7?bx^N=svImY18&7Fh%j5)i}d&H!Ul z0d!3mmgRs)=shAkM*MR$3Eo#SE^+#b-;^*I%%UqDAr6i>XOSC{r8Pv|4j2GUcjF>g z1agfRqX<_5GtCRh-0j%6WstV1b&2;qK^<$`k*DRsfE>*5oOduK3QmoJf3-cw{2~1? z*4sdtHAp+yTX$Q$*G|U1Tm`q$Bi5)@|Nb47-}~IqH3~p);onRpFu9KWYv%TY0zQX#_H+u(~^6Y z?cyNWrM`Nx2dB%KHpQ*r)mtnY^osX-c{+mFvi7+x_jjwY2$?CWhi25fN}C$zLir)OWYjW zQAJB^nXL$=5lu+^23gS{D#K zu3FAR_GTX^I6jB|T&EFmTgUcztLL)*&HqZ^$89*rgX1(b97;Ha7+iT~z^2H3iHqq* zPweKKWlB*uXBSm@MVhkq*4A$qk$H98wqh3mahc*VXBQND)#9;k7kYAus#mvhfYu4Z z-^#OR-N^#Kp?gcviQ2m^9+|c!J9KqjkiVr&dZky8z9nCD`CZV>_uHirB9i|Z(J_io zC8{AbeEu1dX$GI_cy%<=^BHO%*V|>c$}i?9|ElYg;RJ&TS_7j&@KM34KqaJ|a z*&N(k(qgHcyxhjCSx#0Nudmk4C1dB{;1&fR?P4*tDGVAm1$F zy5R4d?7`zkhs=B?&`3_O(r(lI%Zz;3q{^#C%KDh2aW3N__@k~>!kVtK(36{sshaao zDO>gLb9qCmwIn`~pHQur3eE-kyv%UgkjuNUb(Faw{`A99s#7C*5e{$Y_cdjvshk+i zXBi!<*@5O~o2okbLA4Lq%ZAyZ$Y-4{D)SaIa_2f&gFs`H3cj zYxP~~v(3}hh;r(pXJWv4>V@>-W-HV(p^+6_L3rKY&6mN^{OWhK=HqXvFY1njt%KJj z8EIl+8zs-SEO0un@x!b2d`PTd1zSed%-pZd`LxASv9ZL2E8Kvk_1i2|N7P2b(^n1= zeBq_az-QCCtI54}b;8*mQ_3r!io3nvASB+!q zC|RqcKW8??W!gHag(gE%Of{t}NL|Swr2eU~eXk~__ub2( zjge8EyrPkoZ`!~7yp@5E7vYq_h*LeaX7KAs<(^DQ41(C%?`k zVRAh*`ApwscSC;f4^6P)9rzRxJVCw?E&_4BvdGKbhFonDlO$cFFW)QJ8(-5r2$C=b zr!?k%I{B0t2IaMj-W{bKX8>fEQi*^LIKWP~9HxG3Bt-s9_iK#e#(8BV!M|&{*BEnB zM)Zk_>j}i7%Oik7nU7TtidQ@LSFT1{c#JgRi3Az;PWnvBCOcfu+Dom7=)N^>DLlI& z8(XdBOo=HSv=4F!;@%eVAN*xZj>Zu|(>ya6=}RM~lP>G4^Q`J?P98tN;Pm7zxt@U3 zIaa2i0BvA)I#II_L(LGj0k%lpTq6@ZY+22^M_Se7<}whT7{p=P44L`)k@0;KKAZlvX?K_T@lp3gK{#c1mpgGrSWz>7IAwfm>hk*n zRClvJF?ZLm74oBsE!8!Ki(KN%$Jzz(Bn%a+QHN;IuZcbpK0hmkf*da@gk6ns=X#MS zPkObW6Y!5Cz4|6MooI1@3BTh}7dxw>y+?=^yN$ZeG?#$GeD@c&Wc`XH)}^rThb=SV z_;Kq?;ig|~+o7*av%moChw)UaKtI@XY1_~@Z0bht0rm$_$_9jE<`>v?eJ|<3zBR9* zzp&IkVor1Ku=KP0s=0sc%hllP*f((QxX8Qcfjn?=Q+jR+`4)Vc4)-P1{0vq^TT; zW8|Vjl{0pDXjbs*IV(C(R*}c{IK~Ypm{ISdh|ex71_2Mf8 zX>UfGSXR}K?sK6I{fIo-^PfE3}l=bkd~evCPlHWja*M+|KZc2_V1Pf|J7JgS;PK)rjbLEW6li4;%!U~>7`?0}*c1>5UH^&)i@jMloi{u*3tG{b&33)*2Z z)|lANrlG|X!n0|GVoCyLtK^oF*EF6DUzZ(2>A;=ez6fTUU8r#BBI;d=)4{bhze6>s zPzo`Tos)L?I8ZL9KjrXl9KwS5!WDEI=1fbSo$oP$1u)N2^jP7-&*h=mg)ztNag`e| zH2>x2Du+IhPD*RuU~w#iBs!xqKg^}-;$DITBa1&qw?&R``x z>IW_-8MKwQdb`xQHHc{atY19>Rn*lhH|jAH*8J-G3QF1_ESkWjBSJ_l6zW2yugdbr zTy`k&6aCQ(y#HK?Cj)8I{~V2&*aIWuF2`*?xlFx8AIbRdzw80e5Y*9L2_XC~iO*vhUrq6&+IkWFcnX}Zm;}1Ad zL~D=DbPamKqRp_|IJO)pno~S;ciuKU$afuGj(D3G`JG?(tIsUOB1Z3_m@wCEIur@`=)RY|^Ve(#caA$;*S^;3Nyls7(``0R|EwKf{K1GQNNc^tKDj6a zhyJ4z%#foUietfsO4eZudgB)RK5lDv+p281^wzUc_=cp;g&X=xr|z&+t2g4|D-d3h z0#rDA+J&}t0f^bF?uaNuR+0VuVguaNdDJ!{&DXT6MD_OWhZ9>G;VCaYHZqyB?#!gMhKnmiVJHtM$W}h)3H%_{wS$bKIQXRG6Qf=Uoa8A7eUu4GPW^ zjO`LZvfWAG@4XzVAQHCD&#T2&YL|3BUc?hqBu_dz9O9B~zdP)tcdlb=MI|z~CD>U@ z=`UQ4t96;v=&HdBNRIM0y#cY?J3)&TSxd4W*FBEK>JmB4{N0# z$0{D+!mUK6+-ZKxj|lcvEQ;^h^g(nT??*ygkH1Cj|1jCH}>&;zB0!)hXyHn zWTN)QG7AIBdEo3?cZ5jA@jp)9O_*cnu(naEvd?lZ>gX5N0 zfM9%zVmD)6882t@yPta#s7xvj)x0dfgRJJwd@DBSPx0}Oap~k>=1gwHIS%^>?aCl@ z>Tc?}1bcJAhConBNmo=x(oi+WB3sF;tUHmquR)`Q4zIwhz+^OWewowFHt~jkBEj|q2%?HLYJ_6xQm@pvvA<1jev{Svn zkZYr?8$E#Z)}&*IH(W})v}36^-g4(;-FP?t#^#a7Qa2VsJI!r-Cvxa!@1FMy!RxrL z==}luUPo(0nKw>&BU?dFr<#k~N_ft7_CDrIO`cU5g5I;TnW%YMLN6yqmu4J{pABN@ z73z@TMtP2at%$QPPJ1np3+lglkgX_&u1HT$cup6=O7VpPRIWbmNK5VwAb6lThlz(3 z%Tc@63qR#;PpHGyt)`H24WzQR@YAu+?n~l(V;C7Wx^%s~)^t4Hf}iC68L)VF$2m5_ z)wc(yKVwz7Ll5EU>P##c#m!3z#rAu+0?(%7p`FRzQ_d_DSL{ERl|C7(8($ChZ$8nz ztH>2IJx)-D*TQ3t1Y*kWFj{SvO>Q*v+rFsTTh*sW`~cwV1I%mwfbnbgDTmer7k3E9 z*F?^ht?(-(%M2FTt0UyHGWUD3Q4JwNJidxGLYC@HVV0PizR(qNFJck$E%!&?tH0P?5G; z$lv4W>SJO^d^m#U(w8e%M3LbxJsXXgSiCOV5*$~EALibmIqOG;aemJByZxZ&jx%=V z80A}7=L=`V;zxVTz4D+cURduAXH31adLbJyZISV5;YjAXA2NJeQ;b5!rNX0_cq?Na zl(i6bX-W+qcDC5%k2Sl7k!WX#@AC)&9j@e@@r`a8#3`bGiFfnBf!TDgAKQx6-a>E; z{Xn{Q6&U%tF7=rEg4N!fy({xZ+}N_ejq--H@7PJq92hK>h#U=|DslQ3zt ze9q6MX{WwdXu~R~_D_rGuYr&KmP$hQy{>L=jQGy_?uy{EC+Zi3k1$*LE4YckvZySo zz9E%VZnW&D1VeWM6hlhNgyeTvKG#}b{Popn?>{+fe3s*b4ox zoVdq$709fulv!v;2LrKZ)DbRmeJBI>_mtO`k7e|i5}W7x*S$;fPV3(vFai8-A~bgt zx#MlAs{rQM$M6%Fw&2ud_L61@F25&^8kuHf_LpauQ}S4EHhjsrovYz#DceNkaL&Y? z-;@>XOO0YjIG6p4|Au3~vV?$%Of42M724{B+!f&wNRdDODmM$AFAeHSLeh;~d*9b(ht zx4X?SC|*Hr^`2JPYwmN_!|6Ii+lQ;A+kRT#!>NT7@E#U=kqSO*#&E0+8hhc6Fsf}l z-E~FN?NXXw;?atFo*43|4dqd?X?c(_hby^H#Le;P5Pji1zyd_(q$e7iSw3q@=cHYi<@UL>s7 zjoc<&hL?klR?}W3*_6i71f-(zgp_=Wd&Me5#cA&9zyDdV3gVo=&)xmgx`MB`2Ox~*0SuSul01?a|zk#nAFPv3T zzi>b=<5&H~H%~ndzn8Mb`ADcA>3RXQ@EM{qm0ub#BrJyHK2lBe%FiZcF3DT-pmgXQ zA9*)Y7am4bbHD&NG9fMDBf1vn*LYAsy4o?1vqS2)d1W4tjU!qSox2+A=d^=|x4AUV zvvE$(fh`Jd60gS@hoBT0r2ZA<@_JLx>}kHbW&FhpHu{#F0);fff_)0isJ42a+*SJy z+>b6~llb{!!y=bV%f)IoDF?{jd+#LHDp#OGkaknOwW~2EQ1tsIX(saVUV?XVbUO?FKl^zF^Vq!M3rD1XFQ(_+#Vx@A}>Z5%XM1o_n1oB>@O$)2_g;VJzxh zuF$eIeZ;v(`KMXbYkS3wCDo(9MLz zN4+U;*f%}2@%zzmuv|jsjg%#)PWidTpVO#EA&8^s!@}a808$gkj_-EA-@xy%z9ftA zUs`Ow&Smb`@5JS)U(x1GsX4@>{Q@*fR#W@cHJK-t3>cEtTa3At41d2{nID$tyivT< zyXbXwYstR6>?s_l=`;Gb9J)#+@c5($UopJAyqN~PkqW!i8ArU)C_HP;;b^>RCVkVZ zX_qcJG0O>(HVZEFO|Br%Zvrwe+?x!fwVvzd^vauQYG2U%8)M7PvT5zc;M(>k6~Gl? zRPC$mM6oWoUU~}fw32N+1y`+S6bZOCuXzNkDiV>TDIIyt?RCp;PjIfy7PW~ z@tew+0q$pn82e-w)asNGIAqu;s6>9x_^$rW{^e4#UQ$#h<^3VgE?o9^yL@~8_lNsc z^=^0W{Lly3RhNF_t!@#JWgz7E-y0}ISpi&b;qIo^498LRS_^@8HT{gRv3EKO%%sAE zJJv6VFYzbsMbyk;CCQY?VOn$;3EJiLA9ka@u;4urnSUPdnv|2uX zm&QqAGa2GL$IERd@^sKj#>1$W6 z%URw$6F>C`a45wwaM+eNCps2^7&egruS11Pn6t*Z2!2Rd0%`cNs@-Snp#m)v^*M|E zv3kGhuu6`et^hN5=>t1eX;Af!?MygQ5npV>WE4PK@%@7}5_)fXBYE|8j(6^ZI0-qF zGZy(seEXiqxqz`n{MCs4>52e!LH{C(aX*FNGMC;Y<_WX~S4V;c%68}u$a5bb;s^p5 z2E*#Y9iUqoquaBB~IZB4fEv{1>6@zo})d%Y# z8})uKI{wq!hB#-9%|mtXH+T>RYRPk2@m_0`~4F{>8qOZ zHb)Osn!WxKF%xBBk(!n5CdS8oklbS?CX<2igtSr%f0Zztsz?$#69yioLn5E9ce7aK z0KJh~j=L$x`9)mqJFak_5`o(oj^^Z!epM-Tb|s;Q5<$31l)x?L(}wiUow4i}=MlrUJL+c=Y;7T1L!+MeNJ@Q* zRTn1H5nV+T--upK;*LDL8B!DPJ;$dMkmG`j*^W_2{9>qM!bdKCJz5?Q*T&RcrO{?g5h{ttQ-KIXU ztg_h=;h>kq#CZ0vw>G}hR#|WR-ANVsiiHYh7 zHY%!Dc;q{z8uPmpZHd4PfmRcVOShYaC_4=I>yhT^~R{^;NO4e4nFdZ6O;J31NY>9`3uCnyQ zyK{9j$~ zAiH6wGyUa$q^K_R!97+e+xoU!EJq5HBBoGifg|uXxWy7`^ zajMUtu1LmYP@`@C+H8bQ;VC(B#mN+F-)Nt%^!R8q2Gu@mS_oq{TPEk2^1vHs7N8?7(W!S$4nn%CS+l(wA9aKL zT)Mgvh0-?K4La$XT6=`jhn3W7SfW7OG*pf1w-ge%%EP5Eg7ltSU^OIlq0HM;ij- zCyUiXqEjU5?4e%04X~xW_}zK zl@G13kR|NQ+(_(^HVY{`RCNBWjkW`5MFeBN~(_qP9mj zw&i?7x2&|s7sc~^OX|P}W$J@tVHNSdDuP3Wu8!H>FUAAOarWr26s9u5F z`O94tSXYhs?B)=P<3 zTtuTun77m(t{s~iQQcmqT)o86yIMi`QO;{mw~U}0XZ)1U0;QYdVmPEf5{5;ueSV2j z^?KH&InoN@*_~QgPmeMIUNl)c9e!yNW|%owQQvRoP5?zWaph&LFn`mE`w?tpq$*B2 zHbc7>TYQwZFmqlvx+4hs!~t=sjLh9ZXn7V>4C@D$Z*%ap9RE7sq#>OeyZ2}o|3%T@ zJ$ABDFFyeBQMfyr-}QI?kG;Yp+xrsK@V_^D7^vcslXfaA8oex3M(#R5mqs zb+UBv6t=f>ak96uF?AwkqBpiNbaqZw(Y8hrMEx$2Y?RfpwX^DO+Abj9m}FP;sRt+3 zLMlL~7A5dWvjMnFn3T$}2fSCJVnajkHwsAcHcIBVqBhn!&*Xd^^Q@!``1^nUQW)04 zX7MmcP0+<UVZ$CGT#0ee~q@)mLAHB7?KE?Ai8^fkCa z0{H|09RtwVp?XK-SC#J{L0k?#dr&wmq*gin0g<(s>%~aCEM@TwkIiClLRpY3LE_A2 zK2QlI9AnAo;z;9&ZQT1{>NvH+8`ANDR!*RY6!5hB6bK2APzk@-c~LFpU~tr$h4T?F zq!kB{=eo_IYNQnyqlO=70j94t9>Nk3Qa=(`$de5!YTu{|#saB*x2TL!A=(=S?qx58 z7bbD792*u){zVfyk_UwUP9hsN;||(C5;s8qXCyNJUlMigkp=%5=O=;bz*v3#rYk7; zRb5jpUm}|bZfhje3?=J(YpFrbI9(@fhOzK&^U0T?A?w4)|4|s_u7+<#Rc+JYZGO#n zGV_)3_4M(907T=FHH<6u>`W2LI>EI$%m?v;r-I9CAQ9VE@d^QZRKl)XTe~A&+}1iP z&ifdRE21Y15ziU642kn(qTxAF#|+n5nEZ&KJwSksg{M_AF9l^he!(0!4?bw;YWD1z zzx0f$1h<6*`&I%wbYa*_H$`txv!G*Vm0QVYSF{zIOqB`!k1=&YLK)#ZM${rtc58=Z zRVjK)0Pvtt^Kuic{9WEfx8)7YP72*d!qy*gVc`=y*dzJWJf zT+ztl50PMPWTZ)U>5}t0h2-&tw79|35eez}PTVIh$iri^-5&(XA=b{B17viAn|W0o zoK8(LOWX8!4ALIrr!&x>113MSDfvCGsEz<5TKj#qs_tk}oqW}pIp?t4|L4v#iG@hh z0|5fUfc&44#`0gJWvgn-|L4vdK~G6RgZ_)N-7KZu7wFMipd>i&G*2DD3%5}pwRX+k zsg3#*6_F=%o|aau(~}}*%(}%mzaV1z0~K>g_jccbjfS`@h+XM#9OP7gBHtf z(B%bRQW@m(RB$T}Cgal68zrpEPHb0Eww^Jz89kNHO-)4{Glcte)*Ruzo>k#sfV_cn zTusaHH77?+PK37x$)xQnTL96{7OgQ@K+gLwB;T7{&6;FCQ|xLCIf_w9e%`kQL^ApH zluE-4qNGHyNN>|nm1FG2vdXV667^y#XyRVeh&_Ja$@dH+DR6vR4q${W3PZV3-s=mGKe%u^F7+no9%YcRb$JI&Ij0&TQ8ikVi=&9;3|xbK z0xgmG_S&A2qj6SDuv&DizQ@LA)te2GItk(ScX%ab;hLrrU7s+yHkFok)Nv2}y%Dr* zVl4;5a6?N*To^yKzJGN~hw{*ZIVK|u{1jCn(NL0;73x)k$EnYi#q(-F0Hr?dXz=0Ou+0#^d_bN_pC$o?VaQ~#G7 zNdCzb-v5D2k+C;4F?ISs=T=$wKj)UOvATMTUKFuR4Ol?ow57o)iYegsHwv7jFe6(T z5x-2UG2Yg7!WtdaH?<@x3c)MzH|0ULrDfm0X})P|JpV}%+dS_6pPzov25_-9CJq9j z(i$z6+Vk36ky7YOwD^pxet(gp%PM{P6)OC9LpLKsc2t?U?yZ74T>(=7Sks2_TaV%s z^xL|trC<1?PhqXWS_A~T+r|SRvfSe0jo#nGEu{V0zyQq@>~){drW4#h<+7l9 zc=?U@0qB$@ZT}4*_^_OYW=gfM8d{(-E8Lr{#q}sE-@Q9!&i4761%K3Y+l`x1Si7Mdka^TLgL#YhiRrACzdS zYvH_cZfy9cJtAehCxsR6-rD4J`P1UHp5{*fA(FP%dP(@cM5V*=6vA!L>tmMKuJ!?O zuGBZgTbv&Ny#jN7ijdG#9>d`dqKxJt4@Vs7h`=IVOhK<3%NfS?W%JEGZ1(T3R#9G3 zeu1e%DdI;!WhTGB;yNDq)BcCJCjH}AO`!-9hs>tzz;XSY`f71)ar)*2)WT>_B+x@7zw`&x|R{1{$?7qz=39o7YY2`m8#J%+l$&#(UutS43vC@(M& zP|`nWh5iS?{%@&mDs1>4k^NuT7Awh0gD@fbTDIzTs%c-0P6zGgKN;L^E=&dz(o(B< z-6hrJmlWZQUq?KNL*<|%d;|F>acc6Rnu0NfrcY&Z*pmxyZ|my;;~G-@M#JG}_qAdA z3qh^87MH(%6^+$3ry~haD?;|nn59_I3kxSNLP^&+t*@IH*3V1TtxU@2N^rC@rEE$` z8Av3JXa7qqOJ*7xU$4y1@gim2Z@#ZqRIkc`CBUII99f`d8aYRr&L(H*uUR9nTUKx8 zahd|fRf1EdFGXnUnVNho9`d1T6z+t@m1P|-^R{L}eo(dZ0mTGLlDMIPPt#hl)v$u! zF+tAz*T;qh_Pdc5@chDs`AUG+&8Ko2+NKQb928%zJT%U7-yB3yH%fe!SdFpEqBh1Z z0A(=;hd+qD45L?BXIqtk5T+~$5wP+K^xtD6)Wk_-_AmE;p#cH0{r|`2zrr!C{^5JqU{e2J`dL?N{^>9^o+M%_sb0KmOXn`I3z|aaR;&%$%d7 z5HPs^(aD^nrVxEI?jbhvf=1id82Hmh$WL()9Cd<5+mC>1;UOpp=U28X+C_R`id9Rg z5in@i+XM<49AB=1Wr zKPHITkK~{g`ERi0Bac~Sj!Xu;z=jglqNVJ4dQ^J6!m{0kZeR~7%aMk*KKB~)ZU$h> zRElzKgIJKg3$H>OIcqwr~w?P^+qh}-S<1twK`gc__GKyQT zaT**L0{N4Q{L~_Ssm35`gR$EvvRms%-I^`8*#slbhHWXuvbq1X6!}vcXBrbO&DDt8 zy5uCL#36%ivvQ3w%$2(Qlc;dwi!=eN7S*I}!fxc>>y%ylr>Yv8RwXlW{~f=@wc;E3 z1Z2C`v*4``2C)fy`qslN(%HYL@%-jmPo18D92SiL&hYI3B!8dA@xi|oNVZo#E3$UTlW-`SXdf(~M56~a zzOSDd9HOj`B3}#NJ)4#D2DMVJ#P`cg?8OkuU2bvW!JQ)@z46?y=2?LXVKn*RH}d}5 zBV$~LVOsjs`P0P;ig~mcv;JJN4iFfJqs~;9s}Kd+3t^2B&9x~NH2`$^?XANu2o$ou zH}NhdqV+B&nC>B&DQ3k}zejP?Ct{Bh5*ZE7LgkL$O^PxXP~ixF;~iU0uvug7C8^F7 zyohYq4%`;p#e$4205xPcupm3I&^XY46Tb8@w1|6=73{h=CE1`fgfHou9-L?Fc6IK0 zIrz&41(v!26FoJmj5FMsnO}h^Vnh7C(B^%bt;bU2(WL>-Gy1LW9^a^$?QIZI$Y|Dk8 z1+{Quo3^^-_@Rw@6CAG|+l;=$+%3nNMKk}^X5WF-?gTzMfszc$Pu1JBsPP>U=kS}M zfNR!<9BjxoinuJ&>w~1^9eY40mV<9|*AT?4kc54Id zEdqO|3a`=zE@mH&|E|hu;q=6*?-NNqJJ#Tb^fuCWxM3EPP~rsfD(?cz?@ny)b^WgQ zLcH4cW2?O+3>Aszc^GJQKp#mGF_*%*Eux#al9QmhGl4AZ2@7>*mSS~Mak^Qj{FUwc zm*MoRbm-_5)90=aE13IW0!&V87xyo6R6Z~M-@w%T=z;=g%;dYg)^f1f{E1M$3@1m# ze2=h3bnaR(o`ZZCErrB~sU=5MWrlnyw&&)PmfrTDu^1EzOe%Y1ols~Zc9_o)#mp0pjs$DlBhoID$xCBqDqNMQo zxUmXqTt}pJ5V6RLu)`vKHAf)iYS|uBFehx6N7MZF%?SGB??dM_I>}y@wL<0+m6r2< zLgFQ07zY1~v3Cs5EZDY%lkV6ZJL%ZAZQHhO`{E>~qia-E;Sk z_49q+Rcnr_nsbb*IdUUL<)`6hjru{#P7K{)+wbT`H@64g97{ahC4Rw*!ja5*j3Kjj zX$PiLC3CZdA7mA%^*z^AjvFXHv%slu=%DFvM>1c`UgPX=ey9uOcT-suETUHrpjWzU-gW7(RBL68xIgk z%G}2yXb+XvM48mtGmvY@4c!oW?EP4(b=3-yr24ks2IVp7*8R;lL8YD}W&Oi7rKMyBzg6Pb2NxZ;GWz%w*O;N%fNt=gMD+MPwY%vg_?bGJY# z3|p~}>Ki*|{by6IGdC=U&qpUV;}iT}iHpiNS)0pfjL!d^RBnAgH2*{5;$UlM?BL`s z>}F_e=VWec^UsVWN=};gCqKH6$pfK^WRl9>pE8QNUp7fP8i@6AA}8MMSqmdBCXAev z&%id-yS8lN*zZ8TgFOgWG&?g9<8L<;Z(c@Qyt>;!=lMGZa7_fK!j<$&2Kq$sA^n32 z6%l*5KRNZuT${qFRb55~g!b`xSl*swW84A#{z`K$=oZpn;ku5r`xd*fm2nnxTbK;{ z?H*L<$zElH<_tKHj#Hw)e=F;P8x4*|KjP7u(i%_9+%~1TDSDF*#Cn$5V54KG*VsA{ zMRsv_LJAp?>t_%|1|Kj;p_n4lwf@XX<-`6~|9J+s#mSu(k>Y*QQ{IPErpc~oA<^~l=%b|muARJ54G}dYLrdOrI$}{pj2RB61 zieH~lQ0qX96hX%ecXHG1Rch1wb^jF%rSD*j?J&^Feg~rIJHyBSzXwCX*yNv|KUls` zrk@Wvle$P)NM1LU*FbE!(mIR_;kg8$v*d?6C#I9p zJw8WzY5>}+K#OqU1P|fGvpOtBbSK^E4L_T_2J{wMjlr?#De>XcZJEgEbbwGvl5x2R z`k({$a(N6)GOr1nPEp}Rb|gl%im3-+Uju~OXZb{ummWT$f7%qbx+hnMvfd(IAhY@E|zB|XNNj3g1tT~gslLt5(K5t6E%&m!A~QCe)4Nqdd$ zH{E=1we+AwrUkFFE)Vl4{qo5}zUF28;C#ud#NKL7}%1KO0*D|OIlhl;6NM|PescPqA zF7HsTX(B^G7|4e($c*1`&nJO_k!W`YC<8eaY)Oja$4xQKO+JBzPi$CBAkvXMi;+?{u7#EVJ$JS*&JMWm-QLzGZ6Y8AlzDtWm5P7Jz?bF zAaj}Zmg?El&C3Id_X{l#zYr5a@(R z8O_d6>_L02R>+Puu{ssY$&|^O)a7i!0oVPH>1L3Dw{TCUr;g;ZT=A0m3zBzcX)7ND zsRW;ooI)gy)D6B#oR@ZcVZuqd&#dO=t7u&s0Ykt%d!J$Q{?pSA6*Y;%PI8_AtDqIN zmVi;%kpY)%C&Hev5hKjm3J`?kN~9h10Ypn3(hkid!NxFu>p5GbSB%ep3t8(zC;0Mr z$ZWo;XX^g}qh{tdw*R?w|A)X9r7&)TM32mEBS3-!U@3$j0CWbN4$Oj1;X)K~hy<9dW*KnG=N;ubI!X2YD{QhKC%qk6IF}WZ z##XOT!6Kh6L43goP~jpZWj7+bI`h|4JC`8V!I6FK$G-NFN%K%O<>K8JX?IJf;#7yx z3)LYbp75E95RfBDyBImFMjB&8W2hX~4v{L7$r;yboX*dz&|hm1Dc9$8AC|)u8>qFz zl~6#=aZCG(L+{V#VM((S0~FmMx?pF+xGE)|1zghx~Fz~n!@Fex{;C7)1K2Thx96ZT`a~62^v8EqgR=!`{QTtbz~>?@Tl>p zWSyn;g+Xv0#X_zdhrf`=1|Cak?RDLO7R0-?qc;f*~`+>46s>Cs<=Sv@>6B9(ynhMIDP!D&E|^ zu$3>=HXeu68^vvroUIXOpJE~;@2*h)TE+e`sq3p(l2ajpfOe39fGGc6g#3S-yXu=S z@*>LDmbVd024qkWh=BnFBGIaLyZ{RE56~aY=16=2AcGbmlSCMs=QIrs5>!ibb4&Tj zJm-Nv;j$W5i>MXfR&8Z#yAf*^n!*=%EuXO7t5<2-F02`_`ypM9S8Yc(+(+4-Q=7|Q zPw&t`$vb%bm4CYNFaI2s+rjhDj(_l1_M=g-d&vWSVs;}70locvuJ`I880cc~QU(MP zIOG7{0!#aNVBtaJDKS<5S_-VvQoxN~JIlYpVsw)av>3U`4YUNBp|)Lt%m!SA*Iz*% zx?!56+_5a%O79)d?81)9`LL4k`lNyNuw@2np+!0k~1CaiBwnzCk7y9WY5h@EE zp96NysE(bIWyIf}H9^a)nUaFs!3eZQ>a5t*q3VIIFsth)(qSspN3A#$8NFZVHylt_<9|-3u>nk!exvR_j+WvQP&9nJ| zf#TFO;wgCKEa-xn48kWA96(K%YUMISm+2h+zB(=TJob7d$$4H>b5M_}# zv@J&bN+}NgUa>V>v1jSJm0+UEhPh^Rs^x@)dRTR~{D6+>`k&|A4&o^yvud^S=--%j zhMH1QjYrN}wnGzaABU<+iBUTT3882UR*`9jCRz^TXs$m?sPeI09`*^pDFdwjQFBR! zWX=nIfpMemUfNzaZ=N2OAitFSaCD{(wfUy6!0<7MJrR;j7eoBiMk z8_K>$3k$O)IUkq!dGXmS-Ox+a)$y$8%u0i$rIgJq3K6Vg`or+Wl+7K`5tB@zR8j7i za_8{SXxUuVfjbVFJv2<8vOUnuU%Rjz%?26K%+IOOO=`nzi9Nq7e^p&@_ynUFyNLr* zoZmH!z-yya+whmLBGL#&tg^V{lUEMo$f#2L2i@3BvIU22?NmhJmrm4ZL%~4*%4`(w znWSCxOGDiii+g(LkmT;}Q*vMzI(LRItL2#}<$hZT`2{z#PGPMeF)ENV5|^Vlk^!7L zqgma?iIzDO(c+~C*l~J>GB|ufwk_Qxhu0CadG$g7yr<7dTRSLaOqnXMSEp<-IFXor zPKUitsJ%{)sP$UIp7{sfUcLKMroOraaSJ!5t1r->V-boT791>k1<{(pd$x$2;GWFy z+WI$<@2ahpx%QSEmuiM4vnJzA5*~;kt;_l+5e&>Y4K2@?&2QJ01ZU#2E$y+KSLhVj@ zV93f*t5mz1Fr*w7a0jQxUs7G!VHtC*BrTA^NsMr33uBu+QTu)v((`3ESl`ys$)g%< zqUX^i*p5~aSz_tUjMa7rky8Mda^cp}%jRZRt@0ICZKDk85U8SLlWpMq?q}c`x$Zo1 z6=7mbs0fmlMTb69oD61my-HZ}GaC1e*=$Yw`a{YIZgW8$_Jl3|wx`VFG8bLmDKi7I zCz~A)36q0uU!NA~q@^({(i`gi4Cn720VvmEqJJj{rTadrr>i_Sm^uRX3KD-IN~vHl*pQG2P4n!2(&X@zhQ96LT~ zx!)Ti^#EU5|3S4tqh#H$6dK(-XyHN5_KPujC1gS(w>6<2b}lW%T6EH<*@;M7stm}) zNV6`=2=`JC#GQzHOlEvWYzy`kCHv{Cd(5shgUh@2>v>>UmasN~kK&E6sSl}?$x{{8kv7ZATlD1LO@Fu>4<{h z>~}Md)sa>0NDdCW?|Y%?hq=C+Em2O$U6s3U`*Tw4tGiSK^dCyC-N|YJ?(tYfwh(oC z<H(-vgEDNO%1 zLoy;ZAJ?-thkI`z121lC^A@w#RfDvlRHZkVUDX*Q?gT!$5RU47i&m!9Lx#OgB;|8v~w6X5|y zI%4-u%N;>Qr&5lmQpLwg4y9FC*+31nPE=W6>x3=0++J+5UtBrFao<~$x%Ebx0Z?Hd z8e&u*Xx-a|e%J?^CMQbYp9m!ubSLhHTTqMc3y-wNvN2@~`c*r)@w0k(9NjUYHh7s* zX2D12-83$@8!G6A$@)THVYN+h@>HztBiOe|A{+S5J)>slAem>=14dcjWV8vRlB#W{ z93$Nzz6>{J*cgE;-q(L2aQ;!IzRCX#XZq#~V7{w1`u|6Q_aBGtr1fp|P5(m#Oj3~k)~?Zg ziZ@;IDv`;QD+uz1-$2hq1Af)XvzpHpA{fGgbHk1oMy^i9pCpHxeg)x5N2=cYg@OC{ zk^08HPH8atKlWlDet2w|Zn>NIyubQ@{Dn(qL?1|kv6@(IwJ_ufv{b9LANV7U)q*}} zsW4hP6-$-Gia|xYfeN#ltYlEIy@~h=x(!9fI1lBGYvn*K%_XKW8+}es)g-WK-?5{K z0kYve`Q$de?7-@fb0vn-9K5~Eu%>$y?i%DX5_=Uoa%M@bv=HsD)9X2yK$)ajybjxX z+G-y^Ghv#F8{g8pB#e2!SgV1Lyr`D&`}b(whn(=P^kA%ci1$SVfawkm0NZMHj2%h1 zmm9<&Xgqk4E>z~)6gucqQ1dPZ2-mje}Z>SrrWywEKM;G(`a^r}x z$sNE)Xh$yz8kX+;n+cI20f__sTWtOmBO3tnLVHlAvDBHK_YmEbNu3lDmct!qkQ(1b z+Le7yc4v*rah|@Vn01f>bBWQ^`@{Q!J~au5F-GJKM3_chghlxU?2(v;v$14vA7pCw z@*PwUQN13un2y`*Q{tFuwIoT9NMrF~O`f~W;Gn84rd4}f(^XY5SP5=aHg%$pq7W|b zRd2)Tyqop$Z`Kgc*XJnQXOEeLp%quIMz#l| zTAzDA38XVT+GxXsQDB*(8*;-eFDb6$k}*|0Gee<0jrCNj~b)Y_0P|kZ|H4) zKZO5x2rB;XbD#g6B>ARCT)ue{5wPTi@C73gfZe}Ok7&&QH+p1pq!%SqS0gd=G&wC{ zY@`=fz6xAncmzLUSxf{B*lF*dTnIX!UtDmUf0{q&pn)D}ycCSpf2pefF{Qd^`6hpS zPbuQ>DMj`F8jpgrjgz^x@qZT8it9G>dMAa3mX@fhjRtQ}o&R_BuUb&^;xpr5EVL{-%ja-dUTTnsfPxk6Y(}4B zfIR#f3+pe)rcX2;7|OU>?K}cbi6e)RzfboILA!j#4bRd;#gu%6XQgyYVM?<|`l24k zc`AK4=Sp$`qN(_v?CAKtPJdHv zF6RGv)Tl^h-4RI{{VPk$CE=ppT2NC=InufeGPsb=&HP6wtP-VpA8I~Ig-v`yt5ki) z>Za4F@gHz!uLRyeRc~=lC$Md=>llaksmtO-lEjJUSjQKdo-3Db+q>x=*&N{3$o2q8 zD)Q7p1sHcwP%Wf!XHeE_|A35VIjV7na0Z*v)+#+AvFgwd!aA=?zP|EES>#AVWhz&r z%2Blx`xO3mlT?6b;P1?-L<|Dqia!`4l7P`=&MK&utFt5$c|_uha@O&7>rhX=$kuI4 zxPb*~on=mG*C@{Dt-nuJmcym?8T{JJ(l%%r?R$3d9Xj>rBGty;woDlwmvP+%oXYEF z9c|LK>&L0pv%8LgvrsS+fls9{k|*(eBh1bXaqCXj16IhmxW6~6xOSCWVoy@?)ihat zPrOt{TQWIX0`?GW136WOt8dpkl($@9$BA~_##!4mkkrxrP?s-6N`|CU1h}|+K_yHl z;mg3M5y~$a3U!iW@{QZQRLvx$<6L~qRvnipK}l^!s_CTgcJ5)QTqn{=^OmSPiaNS$ z_RD>ph3(_Jv*{9{>)Utjp&59Lfd<S_8CcLQ9a=w2ja;0?XS@+S(1=cDj0}p@dOP z?UH{B`mF-dyW8{=QYn^LSboUCP=o)0`A1)G?MDoz; z|DE}Dn6^i&*JjAnwVcgZrF5;Lz2=42u_5Q$UrB1kNTKCqh76d$w2xs6Td`8sJVV<82+d^Yw1Z1?jhxv*t@qmbRn zoGj|EalFAqlgA%8#yf)heSD!)i_skP;Y=>`)+yLK#Mu0rHKNH>^4F2zUx-~YEkv6R zjq}g^_x-p6zH`5W%r%Jl7hJ9}vy^p#YWAc<`IGuJyBRoxA$En_rT{$Y-%z>^L^TJRQor=Xy5Opu(CgP#0IlQ;->^ZAFInnkN;_AUs!=D7@)py zAI24T>=W$Zipwx|uUXgwS4S_WQv>F%ozIQDp9DK~mPl)NEQNgaS6lXiTlUjCv%ouD zD~%7*Rt`axs}0>e*-ke6zvp;Yb<&NG-!$*t_d>$D~a#6F#*v9W08mL`vgdV$&?Fkl5FHc}y0EFH9xp7rBDd-SZ9HBP3dg zK$>;T)j_oy6R*J1|4f`Tq8RT5^B_mA-wr9O$bU)twRECgT$veq*hYkd_ZHdsN5_)q zQJ>Uyo0D5FHKR}N>}*14H_3@G`|j#!kb|Y}fKbov{flu%=i|i?eQ7gkfq%OylZ!HO zBdx}GEyn$aeMobs&}mX#D7Dhx1nr{DhhrG3yi1lge@VEMy4`CA6`X4Q&7Gvx53p*E z&On&bPQF^pQE(>Gbh8K7XRq>CBAi_g7)%!aky< zw3ISmV8ESZM7-iAgQFi9Bq%AGF=`@6(qWR(VezSdVgutf9Yg9qTG83jp{nuWKGA8Q zP(2Z_Mxhy|k1Rjs467HLXmIi4lCiOA!$;6oX0wLnA#S zJp&+M5mXT{6EIZ#h%kQ?sd{=lU~?Ldsoy^i1#|wpUq{AP z(b>>U+Stj=)=1IJ-1?s>Zk3X?<-8oSk4*xTX3A>Yi^}%WYPs|}^)o*xWuQC)Skq6! zpQ|NI-}mPajfu)^PJIIK-btb0boqS!zV9%#;V^Ve!qNLX%1&_~u}`xO#Wfy= z#aEt0_&NLNeJ)_&fPFu|Y{lG=1|#z5ezUJmkZDObk|rj7fD=bSAk$TB5gJ{StsI^i zsC1c6kO3M~Q*OP+2P0DkOqzywTdp_1%D@}_j}GL|^!T1W<8$#J6@!gEY(v}4$kY@(LY1kSHt)Ox3A|K}_oRJqvG^8PMQD1d<| z{!N_z6P6R-Jc^R?gA|(8USP%#z;P{zYI-;MEL}_e{dFrZl z%gU;t&}0@%Q~3s3o{byB#k(?o1e@png4l_0c|cxo&$uWjkJ$ zwM;Vdem?30p^tAl1c-WX{5~p`rF#%3B|F`ddGPa?A!ja^|R=fq5$Sy*g zp545Y^6rBSTN9=v$V<@W4nKsmxmf=+QgvLGgRivHNx)CVz=RlK&V3W?cOK`5(xX zifskrZTbgKQYqE1@ddoh=R?sD53!%c;%W^fjMDZ3WyK8A10Kvc>r3dwUbRz9uF(UJT_B`>Qce zYTQ{s&U<6#_PYE42@}+bH9S5~$*%FYD#jYRAeN=sUaZWTn}Az@Vn!*70n*Bw8*7+^ z3`--q6E#C)nNYTQqLk?x48hO@2%BuiL9c8?8p}E)+OJ+Tb7Fvs#4>}0JKX%C0`%Q+ z-iH6Em!Kw}o06Oiv9gZvsDK2jeErHy`H6<1Sredna3&dZjlsf|{h%6OPL<=k%e;jk zXRdi&YCa_7#Q4S9+*-PB>RwYJRBxDNr ziHft%gHjq5k9U+LWD44S`CUt})-aqlWk#~aT}|a3Scs2iM2{3^@5tD5ZfWqR+G8(i z@>|f5%u?iTB_(KzI>$?|4`eP>*H99*#7C9yhu{R)&COIfn=BhGVJ|qw)`UlGB&tjH z!6Y8(E=1x#Skqj-FJl*1vPk$yJGBSLYo6S&2zF%obqAWeVy-0FMybctz#7hHHEG*F?m! z@(zAPZn(35@x5=EnqE2EJppuI+?yYLGug&#jxy${k6he6y^UyDa}W>q#a)T`#+I}R z=bZuR@}7$`Is>e0XMjhrBrl|_sv#-JCO4kC19zVl!RK zZS+%^{EZgCV^$tEQ{&Z1#FxVDPhwugfDi=7ti(tfc>=|JxqO9ujP_{d<49Z>32Z4> z5;03B1&elZNOETGu=5d8Kz8J2Wd|8)Fog{BJ=21e2VQZlCWvTl*DZHb^so7zyR}jIR;|1skaj6`uW5vw5;8!9K<)F0E zo%^y^CW&IKF^ccw8F`23uTtgq$$4l<=nbRgT|%zJkRD|^CdZDk@f_vlH4p9!CBI*5 zGj9(Sw|+1Mdw{MA)_c2!cq{O^CItzjU~*<5r*?m9iSydb$~uCsO^H*hlHvBO)(H?-)4bF%Q@2^mkX%+IN2`{&ewegJVtko|APl z_PF>22=h6qSMqx|3gQy^7hO3A4q{Wep>@~~DM8){wS6l=-r*T>(vu^MF=v2Jcb+bv znwHry+U$dYU{6qW57WKmiAP$VuFSG7#w&_b*W64^{u!L$w)wH@`~@?>hg!R?SsT!u zVN=6;j|Jlmzxn-gtQfD8PU|MeJuLT{Fdr&{J(DxGtoNKSA2NbH<1<{TJiZMe)fB$cmLC9#Z(HP^Jd?m0$OeleW!i7M+ztbIb!~O$ zhkgr4fa>$lGf~!;mKRJc?t+*nt6Pw>pWVqb$E(@7t}>R6+{!E{zf&)sSUtEWvB4k} zC`ylyMP%<@XStvw*etxxGPv`W{8R&Y>aI!-rg8}yS^%B-;f3+A*?uKFMAz}Xqcyv~ z^A@(-o9VTd*h^-wAj80kL`FKcJ}2aNY<2KH%gdY0t3F8dch>g09(JZPnX%seuLT99 z$^JI*IwpEp)lMMts`Lvp`Tc}h*@n`q7ZYA0sWRKB-sN~v+LL{Fvv9V4AJP%5{jls5A^ENVNMzFT4gR`aM$nriniAb@y zUZ*s5Ue%EQL!GzHQ^KgET2Q~hE0b;mEz{38T29k45R0%L;34|9{^j!~qk?3%@KP!4 zx&@@`*@h7%K`bw|;ZR)u2|DgdlQ+Aixg#PTM9mCULi)4J>_h|=8zEURY;3*1B}x40Ji zqMU`uR=!KGKZfA6yjraOXVb+bSy zR%bl##h-|!lMj%HG&EKa0SO&El&Lfr z&sC`4V(vsvnQ_|x=@RtrQgC@bK%8Y5{84Omi?1CO%d23X*r`-jB>3=bU$I60xKasH|==8E`A?jAA@gbfD~brjo2oE5w}5QqtL8++1ztZZB@V zIe6pTFm6e|OqCtDmW)dWU$Gy2Ryh%dL|0Jn<*sh71OSkb2I-Nwx8%a+TtI_TdPy&o zc1N!}QTgl1YrlukNRy3$i&3H{z7cN~=qedyi#4acB`3RIXd?VUK(ORfIDojM< zqyH-mys4wlp|^^m$ptjQqxjG6LaCi9Ij4{55NKXObf_EOWb#Y1{%M9bW)GM%wF5zX zd(-N;bMO@zdRrMc5q?8E@{5j!XnI~kc)F_&r3>4TVTG+g} zeVx#fh55bBErC6b85h}ZJ}!SSCWY#ow5<5tj>=RaG&ZtRZgMXQKo>2DT81jiI?C3`hv4naBF zUygzLah3{%A9G^5TF(YRKi+e|BXwM6guk%NJhmh$L@1)T11c&+gk`Wnor3`6h}#9U zwD*V}D5WX=-Q1^4_qY8Vr^lsR15RdI((6bLB+K*Y0=Y?CtmB^*$w(oe4cG1D5M;zh z;Ww2xdmJ}$smC`U$@l=BHXWr|+6Xc22lvAzKvl}fR* zS-rihbuQt;=Dy^AZ%@Q-Fv9hlgnZ8E=h4>EO->!%UXimAw&cKzx>Ha>5D?Nz8XB+a zqkzdNKU|tBkjJp4GqN{t-6A3a`r?s#zU2CZxU)mItot*drPv`Qu`*9%tA>uCH+7QK z@@sfmLTIMy$v8?UvM_lVDWZUotURT~Zdcwsuf;<( zlWdMQxzlByHlNqCgihl;uioahIHc;n**3aS(FbbI9Oqc`K=%-mNi)FeyRB~qRtSDk zSAoO8nuz?#ZT4UFtqK*yK%AkM=WNLJS^aw?-};D8MU9wT8*wSt(vY;HFR+J#bq@tP zfVJwN@p{4h$_@A4R>6E~1#pze2$o@<59(qUVwCR)5+AHzXJa2yq>UoH+wx=)S_Fr6 z=UPX#D;b4a3rL#wq9w4LAW-E6reA@evqe=RKv%)5FCEpkYkD3%O~xLqD%0YJ=Y>3j zq&7hgc4RPr%SwRPI{@=`e!&E{68oaAwOXr%$ihKiFB)h0qXsYw7h-GtuG9DqM;|kI zg;?pwH*rnm9`Go{8Izx|^zx%G_5vWL2Y9FMtPKTSel?r;FpG(FI@)x_#^BdB<#*hi zE`W%}4KcH z6Rve#OdfthDATZX@e!CtWpYxBCwd1Ot1E^yxB3ldM`^zEqoA28>2K7h-+){&-5)8D zA;{kahZetf->2}iV_HxbW|5LPu2R4(5MV2r4-RWb!(DPNC0X=1w`yrlZQ{vz^d{NK2-=tJR~6oJZf6o@{(!CRuD-Icq!~frOsj$sJ6HvFi~OLsN_b* zaLLJd7pFx19k#w`KrV1oC!X(9kF2eB&cHGXmVhK?;3XYDxg)(KJ(yQkehP~gY;XK} zQ$Et*(CTz$bmE!xjpP8&jdwYMBbY1smL30a``ag_9IS%Z2-}0#j@a;(Rny- zb?tV5n4(+S0dZ-|Z)gaNTMcY%)vU&CAjIU#B!hwU$-t=I)$LCRTi^WLT&uHwuFwQ@ z)%%x$4X43=7+@(t@DLgmsZzh+0kb3*Zl_J&QvUGKq?Ywk0!8DyMVon0RM1OpMcqE( zLNa6{e!odjgl~3Pzgy>=poxjW4%twx*Gb?(G#0RJ1TO-C%%ziCa!r3F>cMlryoRDa z`-mXt2bmUt7G~ca5#|!pl0ssf=i_Vy_J|cVQB=R5q~7As{0!f?{7YkCxLkA-%^p!I z_P1F>eA9&n>C=eA@W(PIXo(U3Vmsw>Vxp{yZsW**ysBqaD@R zNLS3WUn@4bmWW4xwW6y;SCrX_jq+AgU} zq)v`a&0i*RiDUW`9|h!OgzM^v#>QvTs3+$+fsr0EK1(9+jLuEk>;~S91?IUOW$YU( zxRW^dZ>@&rl%IHMH-hb9WD99GB-ox#Ei7PpjY_4CD#l06ADD2h6GWFT918FhRLeTc z$~h&*yjWsWw{++s3o+gCN0S!gOHxj}8VJ1^jV##qSnO=&$WUs8OZ4qT^$S7k zL>eRs7|Jpr_p<|Fm!-?IFNYi9!3`0VrxFz5mKGyDVU00(IAHlrnigiubn3yGSX?U! z)XA*um7Y-5jcA%Pqz1W7=Vo%*ozY-Du;W=>@Xw#{+`8j?*sHKc2CV2+-lf}rtG3nJ zQ9gd^cIBE(Clh^wq%{AWe9KjbdcE!@L=az+7}B8Uq2b4TRXPZ8H{;vXK=hGn;ntNQ zR3h&lNg1&j+RtWxNygk^{;Z$(D1Y9f_XM7h#h?6D8_Wzih7O;#FiarDAIUXrogPNv zyx2qcGiOWc2lFRWCN^8{;rS~pYyn@a*Dh|=&GkVRU$9L0B}2Xn>_2F7b%-ci>JzA! z?>#G$cIAEcv9U7EuCU^dBiEBxzuQ@p9|!4N_p&U&Ggfo!f+D=c>hAU|PW)5bT(*0h zc8!Xo^FAxo;l-O6wrVt^V{Nf{!eKuDZ1jw!KZ>R*zCg4aA-Um>bL~w$MCnYE)PRn37BtGn)~Ii8RO#f4h*z?c zOMK)FRc-aEbpI|G-e)stb?P~OEL=(kW5S9vA$8>eTggjeX^2*>>ciuQnzuv>1>>DhNmeH)!ndukJs zc~CTY(izwn=>(;&2~%3o9{=yEMxX1C8{k7WR8QrW@q=jG0#N$fJRChl^Vh#3c&8kb zg7_}<1N!x9Y;yFOVl+~lofS40+0&ZogQpun;aJH!icctic=3QW!-y5u!aZdc(6H0%_Ht{G}7q=EOuG# zK&)YJ=S@O-C9KL@+(G2_x@7$#BT7XC56!m8lB$2YvP+56{H&%swK-94yeo6Bq8Rs7 zGIozSm5QDqO!mMM%(m&sy?gY4{*f~VV;jtT_7PPjJ-JgS7UKOQ1SHu0$?3ijxFeo^ z7T&M`@6V8%sHorbuYNzS?UnIlk5v~1OGb-%i<%OCIR}?%Kx_vtRHH=^kitUx1YtW6YYL{gn@qy=hyJ5s(Ic1a}WjQ<)==!d67nD zR=gA;H;#h`UAQ_8KUB@wS_;Nz{oCx*3sDM~ z*8b|THlkVP9{j`u%lz8HwI@fXkuj?zh86vscOL@}c=|@rq#jv+MX$%NkmF1!p77*d zXxyb#?iD~zp@VPq9}5WraHGk~)kKSBmfq26TqKXr$gdk4|Cekx=;$c(hp63SmXd?> z$(x(NwaWY-Ve(2b}v=+Hmr;ZtAv-{ssDebY~R7#~dcZ;H7h z;_VZqhK0VmHY~;*jhy-c4|-NBiIn>iieG`Bl^}xcm_Af_d8UfKGQL|2x-+^=4=D@e z#h(nsHODpSua>W8QoeyFwsU7Ksh`bdJq10Mr@jl@hOci@Uw$XP2Cq43pJ>ItBlj_> zpQ;outcqV9UfpG1f?p-%(+TDSJ}hfd*ot35-Qg!+3=iLZ)QQknAEQ>|az8i0K-B;_5r#Ci)Jm<&Vaz)sJdXf%-=f2RM@; z&t7v=#9P!eeQ-nWFKUwUgZT)5O&EEnt{Zu$Wz_kQoYD43Wz;^4v%y`47C>3h9kd*{ z5`D{(Kf6VI>WIh(?s0L{y zSR-KcEGtIpR-vPSdi|i?c?h#U^zsAhvqB1*8xl?cEbA(SF#=*^MjEA}4y`TS!PTmm z;wRR4vYr_!9=^8a33jA}Y{aO;eg(puRl)%UZ7NmFf$Lv>dq2P^l-%PA8OxfHVJP&0 zSM--=E#ASC)Qj%za`CP10l1Q45PO`f(g^QZep*>}aW(}%X4ejKOs9b4 zugA6rJF@Y9#NIyz8ghJb-wiFLjVfo98dizw@zvsL+>vm8u!Q#uD|U%>tt9d$@UkvC zE;L9R*9O?hm^?R?n?<6eS(WFfSz(fdhf7r)hX*3=Z=6^G%7`e$NixdXrJYmSGwRey zC`}q>2Wl#iz~vWLMNJnLf8VHujY_DejULvvkz|zg&|DV}0Ts}>pf^pe$r?Kt{AKK- zOUfIgQ|yv9E@sfc5WV)%FE{ZG$bX7B=*9JErz5v ziMG-5#hc>#03yne#lJWzy%zNF?v9X#l5yaPz$BU?e=Fs>Sq~x(B;^oJPoKkc+BukX z-KI@}PfyV`ZR%01i07F4K|wajEPV^hva7T8DejU$i|2AHSr(xeprsGg4qB&})s23X zbTBM2Bu?#?^&^tTx)a6Bqt&pZKdOymr!pS|;=T}P;7g{Cj zX~k&y!*#?!1T_`EgXLFR#i^!OW?yO~B1s)c9Z)H(N^2@hG;*wT&1JQ}U*c5swX# zy*WG2YO05dAbAGaoc~@4x)C|O({-s;KZt51tF8k?hew_^PdQmE_#h-O*OMr256juV zjIJKb_KVpzIM)BzlCuONW{6-SWY+e-qCV&qPA-lY34Y2+Jtc8&7}eOXkUC&Fa7oDG z8{-HLf6KsX(Fo4yTA42&`lP6mq+isXQ3XaN%4!=>vXQr8PRdAP`BOWuv06M;7n*(- zhhLE(@W|ksV6CzY6?_DVj|Y|^Sn%8!Po5G#kSb#fK{Qys%AvTBoJws~@!V(#tf)=P zYhC_S`jl>k#Ti$ZAmzfqIb>8)KR-j0zz@}kkJ9B&wNRq&h9#sX^$6|4VQ89a#mPBu zWcq9MA(xKKs;ZVSTvgqa;%TfV{r2FtM#_bSbJ*y}z;SF~Y_Iq>(ZP@D8eJj0bUa&C z2U#Qhyk+LA;8`qvbV|^&th1=on&OJWH&IV6g%WATCwsc~fVGTJS6-*6T^C^=vgX^> zbMKKKUBU%eut_ycBUXDbcHOb|Q$GJwKJIna=M^ikAONe=%%n;ry9;?oWZk&*Bc)3)$WM-#&>1mN9gzcTfXpq%6NpD?VbU;Sx&d?u0h@ zT!=fu>5b;`k_1WC%W^GUn8~v($=Xo6yj`+JUE<#AGQ3L8W~)qCYq?1};x>hTI5mu} z&FGDXC^2pJkhHt}X?=vK8MQf~fC$x=F{syEwJxm|ixHg_pcykbcTt3u*JkI|u@N}B zMM7frtkf6o-+}vc$&|!7o1|1ND79!$fn$VqT+0T)j_SDHYv=I9fo#L~T(y;Ij@g`C z`TolkueHKZ{UYuAVvUhUMZ%}F(}QE2viWQItkE@T7hW)p^Okeq1ny92!?+NsCaEkz zSNM!m24`jpgxk*KT+b3JLUb69zvon~jF8)rMcE2`&}S1rt1Qd2y)ENfYDbya!Q+@h>XUoeO!LJT%=d9U@) zuR-%s?{5|}qD4-=b}B1iNp4mHszeIVvZBJ1C(-rF@~_L{r-^4ta7xzZ4d`=Z`9fLY zcrMHGy7RLvr#nAO_}nN%S&8yGJ9USMl(-dKkHDGi_v{a*dOhlDbq^&svS%rI z&QyQRo~Hz(l^01xyrh^Wdl|hHMEDid`q^YpauD`d~h197UHcbfz=y1W@YzO?1e2Ln|GGPDkGu zv};lPz6e!O+~8^9D=~(4(prZ?COw5MYv&Y+wY}mOOMK0(!q4u^c@RNShq4L=nCLO_ zX%<=#>WDhsQCln)E^@0L^(!K#JYQab65QdJL`?Pud()H`$qOZz+9S_A{%_rwvX6%G zItz+BR3X8H9<_AXPvvwrv>Ck)4yBV$W#GxJS6ZF^nJodcRizs_ zEWJ953v8`Pv|EVIT$67bmp~!G$W`Um+RaMO7GINfAdJt`SmHrZR<@7FKnOo|qyU-lO3M2?}~H9lZBwC)FIU z_yMa7I`d@07Sy)ZVmWK$f@RfEW7>BGo%3sC0{fWAej(j^LaV1S*m($X_*WRZ(ebSv zAc>j~>ysUKDz5qn7T|U@p%y;Di<8J@?HuE)*o7)P(rw>e={82yb2UKxPNy)}Rxd%7 znif?!a;lFur?{e~j8+X2B(ztOj$|g4B1QlNgq;P5OPcL)zzBQ1Xt^7><0igE$t*<@ zdp7xf;#Y%8x#!Id1TBiQMSE!Hj1c+7o+MvzspZg@l~fjwwYK63LnvAt9_M$D;%-!~ zN6S+jvPe}z6Q`|f!$Tl_v&-Yp&vtk0ul+M#iReHfl$Eq+f&8WZ+3}XI@t@im&DzS?@P^ngkmC0^jko#En4~T>} zc4LExNT1l(i}>5lEKRL{qqiAb^Lm>2R*nVUt(*OU2CjE{1RKa0R`VA6(KsEAW{2w%NSOs~Z zL5G7Wda%5li*y3&=E&)aJzBOLrxR9M%V{GO{eSYqBDPR>y6`G$5|6ebBQ9_^mR^*^f?*4E9TU-ctNjl+w!=*3-z+sjs6 zQRl;lH@IRJjosN+azy7EII3J1zGH{lex_g7=$UeN*sG+wI%)BLajH~OGx>;6M7VtKC=$v@^Ev@WQ{@V*~u@Eq_UDKM5>&y*|xIOr7$S-W-@}|a) zzlhNDZ3SJ4+2mewChCtQ%V&tFkj{5ib*YOE2a7xSN=s{~lf4VQ^0Jm%aa~XFbaxxto1O9{6Qa&yZBFJcl;Ke0&UBA3iBL$y)Fl88pNUnw*cy zK-yD|Eo7Y^>Ge}FiRU*(k#%b@L`TIt_?$h88gfH!943yVD$6+=Cx~NUt=)EU;*Bv9 z%siq!Nb#Zz^7J|!W=Epdc@;6o-sN=`n^^utOvP*+w$0Zocm6xI9b4!zASsq=jatA! ztG&A?1)0`*e^ZOE(H_p*eFWY>q@JDu+VwWIp2_~yF6Q7PhY+UF(a-idDzw3Y#!R}Y znb^)D28C#V$Kh#ch&tE08#!9pLm|=8+phP}4q5LBt>~>bdPTSt{32Fx`=HPBjAkel?shZilSL#sUTqC+BAad>{KLHIVw zVT)jIKu!~(fAq2)`Z2#~MvOkeB`r=ijcLX$PT+OM2ptcwiE#qEj_eG|ru7jq10zRr z%t#zDOAZen)`ZW28QF!bbvy~Cv+0(O^|>}#XVlb+6FY-H^|Y1_N3a~V0|=LrevSWg z2()9eLj;@>CR)_Q%nHwqk!B|0K~*6nh+DeVU{Q!!#@a{BAz2P(qvBD5%Ms5GydzED74k~^{VIH3 z9re5vpO1}tJ`SJjqMp~_vnT3#Ek4&rJvShnUU?mdXT7|EUws_@gP_vJQY_hsPlzG@ z2heiw1L-&X(UwSPJ$EUfT*ArOVYam`#?SjX%B$1;yzFp z}IcK+vI3Qwnvrz7Gl> z-UYRIaqHuX7{97(#uXWEZ6~)l2D}Gl z@IK6kKf^-!3oL<;U?uz&mD9(t4nBd6@GoeAPoWh)gKh9RoC;sScK8y`h5x`s@D*GJ z-@sMy9oz*!zyt6j_Ua*c7CY}9NrLwz8U7_H@U^5%I{YA+l7sj6YV5fuphP|q1(LzD zFhxEI?+n-nE9H|>h;-^#`4st7EK7H%$-f|ez`N6B;`cG|NBInSJ91JXydj^7cPh4D zC!d9HHRO`B<#U8|lwoO-q(o%URjHm zgEk(EDpv_{$Qh72@su5)DYp-BId?(70j|VdkTM`8D|;6>@shJUiudIR?@Q^xqygZN zGNX7uN4@~@Cb_%NZfJ&34Sfc*L*Y)WvmGYwIIK>cQzk2_u0EnJgSJeIx^@Ymn+DuQ zG)37b@qt;d;+YNX2Nk& zaTKskHsTk{mk3}d3&fKK>;T6;n9>F)Fh!AGvrwKJRZEimOYC~886yHp&gzskWfHZtJdq0%e zy^YzWJ5V7#3Z?s@Y~IL`SE7m?nRI1zfjK)+Lq7%+c0e+go3J0|a^`G@dHbOpZ`Io| zdk*U9`_ZPr0{+FJO{oiV+o9qSOe)n#e^o&mLR^Q8x(1RZ4-AmjLZ(y?!=wfnFL|Lz zS_iYG^-wGMV3l+{G)hg-Ecs!xbOLOZLU5MU3KvS7;BsjzTqSL@WotI1$~%xUM5CSZ zPHw*)w9#FV{WZa+Ef&HF0^z%I4}z9-mqjJ)jH#M5%Y5(O*$9c(s_ve`H&@D03)RfVYGA+6iOGv z9O)9Mlzs^-rAxshT?QMZE07XbM)5&Q6pq&l9Onv^l$MeE@C~TYGsd;UBF^GbU|3vw zO_Wkfldt1$1l{c-M+4=1w|u=-srmEHADlXK}RFo9znJ(uIkl-4V zxkhccbOt`%2>o21%r!1&!=+SC+-XTujEq9&W^VlkSeNT&`(bgR(>2EJ+yiND=fFLX z=*Gu}!h|*`ba^PdpWEqHZvYqOdm3EMHS{XORZOpj<16h37=*8itylex%(FMT6V9%m zVr*wp+o2s9ZnoR%%l<|msJ`-Q=^_MfH}uQRpvG(4Vaa}2dRLK?iezfLU_d6@1@26j zu?vzjU9Mf=$aH1xmX@o9PNgtGDKyo>M6EDMFHB~IE~PNVHL)-?X-b+>=vE5*x}EB7 zDCKRUQGGTyW4j~~hDaE9!XCsS!8K(MIJPIe&;|n#J(0JK=iP$6vpwN=nT1ZQW*epn zZs#ds(JSodPPvu$%NDTysrWYx|Hx}ufq&F%E$)6hpk{mOq2wusTA0!Xa|!F^8>blb z!qMMICc>m1a;NTue0RS>w?>7A;$2@XHYH7`$22Odv%-}AY5d!?wnMq1@g-4h55>Q1 z@t22xCD^rXFs2QijJ|I7DRy)Hjs9sH>6P2vH#W1saTjvfmNRjS=e$u@#Sh^2}OYJBc_rnzFL6{~zgyQiqR7sDbf_MzP(&G@6o`BP& zC*dOLDO3ti!yYVii}VcKCH)@mmY#(NrRU&r=~Z|^dJSHZUWeDDH{lEEBlwT>SNKNy zJA5zw1Ade~mL%z)k}7>7G3isuDSaj-NuNt8(ic)6=}W1f^tCil`bHWieJhQSzLUmC z-%B&3|4OCO4^p-CqqH3L%PLutj*}IsK~|-ptV>tPhIFm$kao*XX^)&B-6AJTzmZ+i zemO;YP)?N|k<+9nXK>nHxgM1sSjwz2h5DsuSR3 z`>qO>pmE%Tw)rYZ5P2_Q@NlDi6PlYKY?E(Bqt_4VQ!TgQTPIR!q5NxJ?t8Rwx8R+L z6f2i+#k)kL+Z_2eyh}prmB_c_T{6;emV5`^xsa06Z6X3Fh& zr$GwR;ePJv&6E@5-{KuZZ$C+X09!M-x_nUh`FqKuLn<|sI-90U&&=4(Z9yiA?~H-m zGeU`WY?o1~d^FHCW;cw=)YfF&0Go3&)iosJs#|q!L7xmS%XgzEh_79)c362=8`KPR z<)I=O=qlI^b2D}NY?kv6l zaf_GfRtd1$B0U`gixO-Iwe{67KV7$!wSlV4KyGmxt|>R7tQ)RTyI=%fyt`m9Udnbs zf4pGxDR?R1ijeEy?F`|&FI^97T%HM%R41*MHiV@gu7i=-8w=1|s=yvy2&TLk-L4w+ zHftdRgWf?HG9M$afL!d$u^3Jl$*W-=hRxL&Dld^e;K2|%B-g{q7#g3Cf$xf{!u&{2pVzL-I+IQ~rh2Up`$LBA3H;-$x?1df3*msx`z-36(gWzG`|axe@=#M`C-bFhQMSlQ-+iV72NM* z=)S1(BPdghxJ+=gCiysjO89;~=WQAKNGs(>IY-|LPja4B;cj?9evCL;azcarIDV@m z_dX#%DUAJYEJHeZ0yp+r?%s@tz*B`>OpnP0nYo$cYB=kDo|(Zj(8aMbz9@(|nz`hk zqa&%yJJ9N1g8|C5;FhmLx?c-J&<7YH-vIe|9Vg$!>5yx+X?qM4gwy2^a4ZT+%*tY(9Z@w8?IHK$R~BmNeM;AXuDZdQok zrdb3x)griABZ8Y&ps*C+B-h$P6pXR1b#%#fHPdC7D?pb_SBNfd*Cx6oxw7cOT&pRf zzZ%^6uGIu?zFW7zh9IJ}8`8r08CLGGZY@Ou^qcZieT0Qp$l4$=KlONeU?kLP1KUt& zxQ(k3jAXawHnyEo=x{rPBjNx46lXGe7BP~w%zz|+o2b>D^lB!yO3Bc7Xi!P z4;v$0Xvyz>aLM$9Ve%cu#&2K9XO8Pvn>3bNN;HN`4)Fkl&CD`Av+`-;&(&+tMKU zkJ1SFeW^hH0By%#q$2r4v@m~@=F5M_Q0X5ivmZ+VeBL78FP$QP%2{h0n9>-u9M5pM ztVNwd*35wtYRJDQ3n!Jqc=-=_XGqgws#OkM^2I!e)W9z}4WtXrz;q`G|10! zSw+SS+bg_#9;H@78@E+{0kM&>g_jT;OAf9l`-Rt;+~#ELsF2wFLM}RG$AqiTMf*;n&bt{svXmw=h`#4wdHjD8S#M0RO-V zkwt*xTT56Gkg!@pwfYrAa22W0<6;`uAFKlAhYK*9wyi3X}F)A(cyn zR4!*boUpe;fMi4mNcV*Ur2Pl_hhrAEbB+t5lQSz>A$85L%w+DbE3gjrPQTegB! zcqul*qF+o!qdF+aoni>!ZTTJX`ODaWq?wQ9qY8TJiF-$&dB<2@PhCZ~$MV~g_Kry6 zHz)7S)UKy6=a?HIG4+(pb~v>iPJ1MihMOFjBii8?dr2wY2d7sRC<;EGQP4r;XQ09d zWgO_rcyK5au%{+MAEgj7l}RvInGC~~DUhv9h4IQXn6Au%5~Uc*l@eI2l)`eQ%;vnF~)HxBB*iGuOhe+*bDe9pK-@-4=lpF_k+O3v{oU3CpsedgYrb~uX)%|uSm$3CWe zM|tVYhSfh?sKMk`BTlCl(LD9d1uvK%>oC35~MSf#86pK>fT zDs^yz;(;y7S~yv0fbEJG&Q&(RrHT)BD#ybO%0{?FX@uV@=n5$(z!OTq9xBa3-S9rj zzXGFSAXir^tU~=kJ)yuY=uCeg{|PC-6P5a(QMyz(7YeyVP>($w9!SMI8rPKg-CwXA z_1%Z^N5Xpl8NW-UQJ>s<;KGBDt`^d8b?yUj(F)h#`{3ex;leh+z*?pENSsRwHR{C_ zIE}hccdI)fAze@XCGSApbs}{j4QIbC%3r!H|9-ekf+D7naZ6_?m5-z|w=u5Bk?wd5 zF5dxD(;bh(<@@1Rg$eoY1T21q0!7Yr=RUadW^z~0a~s$3My|3NaVPAD9b{7JyV*qv z`RVl0&W;}~>G)AXJ6yd3lG63`1bS|REChBW=Qhl8jYPjkU?4JGMbr}{9PKQF}44A5HM=?DM7AWV#BIN>Dp8Yug)^1Q;1cC>xJvmIT&-LIyOk^9*UD9}SJ?q~D?5?Ju7;p++$j|(cS#fRIt{O-%H2|ha*woF zxmQ}D+{alJT^clVY4Tq&A|O_B$$#VH@n=Gw{C6IeUIN27<2e!68u=f{(g_fRyX22C z&jC-NO0nKHpnpxK&j1e`q{GX&Z(e852-Jlc8Sg&9JDJ~I$NkwXX{LZ6SDGjwD3o%z z0wdr2U-G9y8!r~h+?~hug^`E)VsAUl%gt+tYhy-vl?Sm~9s*N&B+6E}#XJGskyRsG z@tOR&sD8buepqz%c?Y0R9xBC~Fb+lgdL3^{ikYEP(1BB)#>RdJ{gh{5i1LT1Mu*wr zJPbuV+~^mg(PnIvggz^#(G;suXKsG{7GK2{U&9t(#}?m!LCRaU^2gL}F-x>acc*c> z6FvWp9vijYB--wjo>3Ek%Ac{pzhHwOMKyFdJ?ZXCc|3v|nG~d)iJ0>rDk!D~zv6&= zEv!%mqC^v&XIqBAAVaVhEs`U3S3B%}#4<{b)a&_!9F=cWoY8|i90+`Jb(q_*6=d}%-Y+OjU#q=T%>oV}^HERZuc9(+S}FoeHDA8~g^ zbwve}%x;F+%`njn-BB+oQN6@?FDV^*={s!vd-=a&TKQh=BNS_xgzR$OPDntiZfl2I zAIal(ITr!CjfOf7a@~DNz&s2VjLo$djUtY(5+9SE7~AQ++! zh8%SWM`E7Ul#RqBbhIr7n#AR6fK_YbM6pq-k^uA#|rek%Y{h zf+aOBa~5A9^>gU>PS|X#fC8pRudrH`6r_*OemF0pY{c^dFL32jr zV%%;~=$@EKN_8>vQ8n^W^mJZ7n^HOkKAl5)Z=9)Fb$PdtIz*NCAn}P!=Z&~%dgj?9 zh|rn0kD%*e9iZHf9dI=`sRJ<7r!JV=2lme&fzELI+z}T~()w!W#KfQKYEaZ;!Kv1P zsjh{g>N+?^^+BP!5sK7Cn5FumR1HMQ{5;V?3Y4LVCSSh@{az>cI!h7L1jVGmSvucW zU~n6LNB)21h>MG}&LhYjS$*LCQ}2k6h2xI6SWHnz^hed&j&<;lZ8S#EkdC?y(Kr#& zI2l~(X~p7B zMSR~bbU+1tKX2qkGX|bbbF})vOK<0swP_;->LcwA9LZ51X`zmnee+TuEL2CjRg6>G zv4TruyN~8@uSS`=2D$TENL6v=wsP3x}aB47DOu8CSDn>Ij})o-sgI(M{g{H$h70d8 zRMXqx@is`J7wPK#@PrCzVE4v!8ftqC<{avMkfi<=($ojgpgs&E(M(QIpTv$k7^MJ9 z6gLMP@3<ImF>5 zRN60Nkn{>Fw^tF5*U;3w1>@DXkrCg4>FOU5r}tpC`o4`<7Q&gqO^qAf`AiX=l?r9A z!Azm-$75V+m2)Tql|cfp5}|Gq5S^PAkV|!L%rX}BF9_a;QOYL4cBc|he3w)I)6w0c z!ZWZ85o#pat8=RgcvNf@pz+;Xz)9mweJY=Z8&VJOi{01&l5q87RPg^q3(dggWTkTQb; zPK6H_yEU4%=#z;|pPZ}mEOiD(soS*|6dFjr1PeI!z`2<`5_2WAf#!1Vfvs*WRH!S3 zY`Y@4^&K#7VCF6;Q1}?MYfQt6Li}`)^=Uu1UdUWdx4yxxH5BSJoO=8+CRIOzM#N%Tz;IOC08Y&Z$=b%K7W&v0GDQqG8+87?XyH>~ z5f>-4H zLhg`rc-j1zQA({9n6?Q)+l)Q91v0d)Fhtu1!?cqiTRRm-Yp1~^?R4zL?NF?p33Iix zpi(;t zMcxGT=@EzP+TppF5nt`nC|@IiN5@>>Dq}@-k-!^}d9~w2wOg??(KI7Jx1b%Kr=SsI zQ&Q^RQ#Jt07Ul2B~vhl%>qDo6NAA%n(h|-D%v)7#J#y=K&3YF+qUw z9=;)8tpxqzm#jr&FI5%f=k14=_tGfAD;8jB2+ym9TCQ7bhu5mwz?n;7FB%MPBrwD& zu8Nwe97mID8j7)Y6Dqlz5!~BgfOb17xI19Db|>U(cVTDlg+lFan6BM}oq3Rs z!`z+IUdJAO8+-U2gz-I8xbLH~{Qz>bKfyTdL+stZ*>FdC6H1; zP^Q`acC#SggxG$w@Nin)x2zyfjP2V@xi?*nh529Dsh?t}euka;1@zOtghAR@$dzBC zk@yD2YTrfCdV)>s2{xn??2aBKI(j%HbC`+N)0G(l=HCb-Ii-MLwtC#mMGyZh0(|5} zrNP=CqS;A2xIgl+iHyg z2WNbe=_xk&Qy>=>4Est z&trexjo|i0aQi`DeE?+Y88A%GgpvB-D4uZIJdtDbM2-lF>CU2brY+SD`t<+-;5K2C zGNb70fL%Qi z`stHlkUj?I0Xs*q!AP1-pTrs^~suW2@3(*$0FV34gV zOO>*o)Axf|`j#Wy^O3#_kiM0j&^IhcUDLNznIqshD?F}d(YH@W`nHiKh@l}5P4pUs zr50(p1ZlVw`s>S(hAV8C64Af0=w*#(TU5%jq06$N%M#Ezl)1`00n=k5NST?ga^h&| z+CfMp;r>$r(Fdg)om(#5N$Hwf=VQcww&a_oYw3(+i_)HEuU%0?QCr~GG!fF^TA0wgyLZ@7ybFLuq zFpI?fY!Z{ShpC)FJbM_GLrCRT1bGuucr${$1(njaC@Lq|R32tid6+HX!)z)Kv#C5^ zSs=jruW(J)#PmGbtG~=>gYqc4SdYiy}pBXr$y2#NKrgMOkU#z~tVhZ287N{r~lQ~Udj zu%~v;j3_iMC37XBc@?6$1JT@xXkLwIUV~^}i)da4WA$Cgb-Q7zexp4D9UsN8x*2Qd z4Mvd;BRkzjcDjx1bb;*DC}gXYg#y_kF~*_iB6k0XakceZqJkD(S)?rHb?ah;$e~m# zHTKY~H4(*fiA*2IR&-~S&(7?M80Sc9>LTp3*V>>>7oa%^w12k4C$W{@9R;1kuGAr* zGw9boL{+oJP-Fkx)PL=V(dY)`rhdvdcg5Y>qqj#5J@yZ;x}zTsiN!XbJfqKI0ed(a zTU%)`Wx3FI5o}l3fzKY{b&a>Zu0b@Cmg;W+q%R6guefKWM9^uS}hG@WXs>frtHwMz#iZ#P*(8}lfeivz~`i2SrZE^sH12p;Uq4QvP}e ztVD>vk)X&(H@Jk4NjFHu9qEqT0u*s{E7Be48Si?lYlKAjx|hMBAl2BaGWVQ zq1CxmZqTZP{APsiZtyPXIQdAHv`l1pog|C_Ew2!1m< zE1-V@ivB6`$LFYvzCc~{Zy2b5i3I--TE4GQ-F|~Q=v$bfe-9=4e_^ivBh1$iK{fW( zN`?xPDd1r`Y-A2-WllJmCBW${3C?GI;ZoKQcC!9(ElY>pEE8^E1K}1n2<~8m;a-*n z53wO|kPU@rSvI`J^59LD5AU!s@BteOe`n+1Gd2OfVv~5sUj#|0udFasgJWQrQiqz* zfvP`Q;=sRlZd`*1`q6Tg9hn>259O?0cb9e5=4$ z*0dx3|F=?)?J{Jk2Al6!i-n4PbMJv4Xm{v6@FOaLLlt~bH)ah3n+}Z402iATr4stu zu=TZJ>nqsUK|k#!M*dFZZW_S#Qk5lRBv=PvtHs5&f{QikdF0|D=^Amdp04NSb1ufa zy(pA;scM7dbaI2wpSnm*%r8fZG~U46OrLgf?e!1+hr?&KHPBX z2+JJKB*YNc+eE+KCi?Y!jGnB_E~Vbm9dISrBBbipD;q?Ye=ed9Z|(sYVR;2^?iC>I z^U*!$PFp#eek9EMB+NXZM=O(0y9;PPa+(CBxGA`8@@p+u6 zow9u8CqtK97tj3!T@$23}olSNcKyZ!Y)VRT?OTA2NG{5tYFtbJ-g1<^eKo0 z5rWY7Dn8*Ecx|KWwFff1VjzR=J{G~r@izK@L&+mPtnCW@$u|0<)CZmPs$G(b^amt) zMSek=q*zNi($$*%5{BIAnlkD>NqZy;TR!2&_8_*mBDS|7wzng;cObTRBDVV=pWO}P z**&O>?zi2*2!{En{x>R(csCvfD@`IMueGtRwXv?Xv97hTuC=jlR{Y(BLiq)G!b!(q zQ_}NdtS@^6CH_%JWRHQHJr4cZ6Uh8e#SevS=(23+vTW$GI85ZNwJ0YDn7$C}HyZNO zB*w*Wm31c;S&{)rlMGs9L#tuFE7B~o4~*W_TZ1}6Lra~m-!C~d5DRGdm(K8)bE20k zaSxV#i~{{HNMoNt2KyX_vVTJk`x0iduTXfuh9&G96x{D%E&H!6h-t7;tc}cpDe?zO zfM(n<_@McC>YWB#BpYmzY~XZxLs-G9@gzFxV%oWmoQXLa_-071<6At>NRPOAbqMRzcsuXSsYExl0+<-^UdfHTxtCPNeyQ(cQokM6r|GC3 zIOX{h-uB18^oMstzq~w7ZM1&aJ1B&yZHL~VcX=zY&`Nd9y;A>im6$Pr7UAKAR?gDN z4u|$xOV5s>CDBz>Nr6=pk5KXbrFjJiO&d()3!kNo8T5LfRpuj6rkPq#+X2pj7_Xyq zKCoTN6eu8>@?il~NU|XASug~NI|?*oG?>O1=x23YK(`G#stVW3Spix87hn^ zP-PThUr)upo(^k_Vpwm?hK)ukY&ObZyDmwQMh$#m)WR3W68Mj?R7x;b*fC`lq$;N=zd%;+2jyHgWf&=BQ$g4# zh%tqmZw#aqMRWXp*7lU-)OIbSkEye zWwG7H@G&t&Fq30Qu(<6Zfy_KUBtY=FdCHemqYIWs4`@Gl7RCqBqquxX$_OFQTOirk z3Vn=iFu*twa*dOqz&IJE8xj9z0Jy{;KyK7b%}g8gnKtM}0`%!T^rv#kFh&d(IO%7Q zg`;T-Q@2g3$VKQ5!0=oS&QU~rrmw_bl{}uNo;87LHJV57 zp1_UB8gGJdU=tQ}#FAZ#jD*|`J zRe^f7;7*qzJsd@%{@P7A(6k-dM}+hc-j)g+QF@{!!t0qxd6jmvYgM3u9-mN3?vOZX z=wGM>w=kpZ(rr?9W2Ap2P&q>p2vsmzha2OGWDMoMuc(~00z3%*Km(Y8hY-|<5zI%R zTi{XX9oPx|0#Cxg05X<96Py%iQF2`v5>h1|2$s-QXz<1h4TAm~uU3We(u2njqos1J zYqw}JK?$p+-}u%_VbCInTO*cCq*+;`uxjyy+uR!A$mbl7P%=9FniP$U?@mIfAR;JO zY9aopKhey(kcutT3(}Ik4Q+>`KB=Yp;sQ$!ihLc=at6gY2M&QRfE~ima|6Fb#`z*L z&X*81FXMc811bY=A{D%aRPY-(E$~}ppzlC!;CDE=e~--bU6>bm4;kqDaADvBxGeA? zQpBI&=YfwEBdnD=f*+^9rQIqNNkoJ)hpbfQvz5vm@^dkBG-REZ$gS?q$Q&H>SE8sx zi!zyd*Jx`c^_(FiQGhp^LI)Mqwbb5I)8fLQcAA+lz80^+7$MT-rwP25K35S+_bOsBhyfta}PYDwBkW zH0!aSc0}adQZP<|e1s91nQnujhap$bho~Nb61@Pr>4i|C7ePWVhCzA>4AV0MxyUJm2*ZcwXthnad0SfKZWpXo7Js>hY4k$|w&GzNhw2!;}Rm1}oMd&4q?$z=+Y z%M>P;$wAA7O9h#brg5j1$(r+_bPJms6KEjsxkvV+y76r_t8v`vZE~kq9H=0UY9nRf zVik2Qtml6ES(6lx4?{F5tOJPLP*T{V$XxY64H=HU&-MV(hk#!n3YLBX;%YdA^$}2{ zp9tOcD(Iz;gdzGU#L;LtMLz{5>SJM=J`V9y4RiDw7rD+=(&${tcXDB}kSIJt1IUo; zdM%Ua=XX+_u8Td(de!3^a)9-cn@mr!-W(j3Q$gU#=)@>*X0c|5ir1B4hSJ=X&2Uu< zOCm3746{Bl;l=)TildrIWZ$=47!d2KekOu>7TEf1B!@ZBSw9;_>hoZHi}K!xG*Qvz}9)%5EKxlPo@5T>GK1r}sOy(wXRp99xf1g9#jd$pD%|HmlrsFiRPuK!IWFpXU<&tn>c}ST9@&u( zh%wQ65b^PC(A8PYUVwo(mHO2~f?WK)Ns0?gv;K_{pLZMNaBa)C6 zr#;l9klM3k7kwG{^y{IMz8uMCCB*a_p}&3;oS?79DYjPe-OS?TEK@%qW}Rh9MigNw z6Av(6#skp8wplH4TbxW~SXv-A<;H7UMbwh6-K%Yr;O>xkuZ(a6H|#*!J@0Us4NkMl z{Sl4;<~jfd#fmqi(SeT2L$e{Gn zfu?OoumdNVnx4;C7+;@6K3Ou%Y=~T#TqXblhB8Ko3A~9@A;9K zie=3K?Lna-nt5!G0pJl^Q>cGngGGS7bR5LpfdB;g)@KC^uxGeo; z1pE~U>8~Qtui>I`#HAOzb|AEe#25#(hqXs!^J}DOI2jYm7ll21I|0|e*e+Hj0==bX zEJQ_=e&}&LYfD6b8|VK!*!=I2S-lHg^gm!1-iNsUq2jp~iv4Y3>O>(=ZR#ck1}XiJ zM?TfHN43W!fxU!vQx1mbldb%I$6F_<4WNY>HR4Uk0x~AcSdK1CmPVM3OtVq@!|dcV z8%?yAhIgXAMpALg$-+l>7;{Y0R@ATcsq{8LAk0olA(`=rH_gVR{K&LVO|!8nWGtuA z2FnYOM;5^_8%M8@1u#a^->9e_4MhE%HM8+41AiD#u?ZfC8f3#VqvQ-I!sSjzsFVn2biq?h$~qe%r+RD zV{o{{2*6^)fNKmBt~V^W-N=LOMm{`dM4-v&r1m3*;!y7tOlKSv30otvpXU`pJg;n6 z&#UmJ=M_79UN9^!N?Qe0hhUHAE+H~r0@Jj|Ma_$$T6;okM5?|9#%fP$yO1ethpt+a zwi_k5CX~o-#gR2}WcR2{1kcI6%{j3bz#nGS9a9kua>#H{GpmuA2f_|<2J#+j0H1hY z*hKKti85aS7AG}2>D{n6xiRnI*s&pXMrYtg83c?j5Hh+#o>7j&)eX8D-JzG!1BMzE zaFWpzPBwbMIHNbz7%`Y?#G%eexb{}(NZCQxnza@Q&lS=a3YCqq)wI9LrjXD>@Hn1l zX;zyRN@)zjz6=J_sKmYu!M+T2$tNYsCBHmOmoE~Yh4v(C12vP&?;AS?h9Z@2^pm7=mjd3_g)i_8sFwmF?DPs~0 zH)?U9PRBu-ii0!_rWx2`OjQK_ajLo~ ztEy^M)eKQptF~W;Nsg6H$OiRlY)P6;&#vnVmxbBT4oCtsB!SVrXUQC^A{Se==VUiO zk`{$o&K6K4CS@_#UXYLuV;%R9QJycSExE5VTXOF?AC8Z`(3YldlH~!#GjC~{&B*c% zHm-vlNLDjd=>Q_58CzMH#UG}+=Yw)XN$1~%8jiMGwy|?aUWC~_aoHXVXUzO zCKwO8B2{N76>f%tc7}p>hJ@CS%FS*8Z6_Ed;P#@NSShuCLp!7$mTV-KWIX(G9?F~T zsSCYHF^NM-XZ8+5So2Xgn>5Tv!k%8}!x>zIa_e=t78m+L^XLV<8#;fOPdrNnNVyLP zM9>$=PojY=`OQGN&DaGIqY0<_9vtvyNEm4x@Vzk1*axGGRs{b5Of;TFe*7Fx^@A|S zIHZL1&M39L;F%~$V4m_Qnx~L5Py2YN+qP}nwr$(CZQHi1PPtA^&2$gCzs&8spXdDrJ0dez ztd$XgkEY;~z|t2Xx`gG3U^2SGNon)PBFr8mM9B+>3Vux9gpa21EbmPT&uI4;ej)V_ z5XcyQVUS07;xa$N!akrv(RA<%dV}ak`%ENRUL zN&>}omUU99er?S?^Sv+WGRZWtsVA4h+SEhHg>0hZgH7TJ;;mv=P#QbX{(H*;Y%<`P zsLqTwODa&|DF89{npKwh7vq$WHx za|to(ojd^!KdvfcQ+QEO5q0PyK?3AX*%U)mGr`kd*%Ox7li~0duBp?0)(15TZ(c7( zvBzu_r`}A2w7#cl!#R7D3(l%airoxJjTMQ~qWjWV;bU|-9A+}qw47JrWh2D7qj5_c zdHy6X)LBY$vTDv4m|Xp*+#|E5@;GzJmWUHz_>s{1w6%Z|4iE`{Tyq~kkodEe=?Izs zS;=vpvh&ucMe92jH^d_kF}8uHAV;7ODO(~x=*sMyeq!JjD7Tm*OE-aEl%hk5q0Npa5HP)KZ zs2<3k!DXE@<(lb`{J8@mAOQE&&!M)kN60384Ds5h`THCt9f2aG{nM^5*|>i&{)8>caL>bzfJCvBiDsL*26A!4v5%~a(3aq2?g^mybzw#tp$84{mNxMF zsfoOSF08~8B)aWCXj#^}V5XT7``8ZPi3>_~bJ~!S)0O(|Zcx=MKC#43T-MAf6f7<9 zkOOr_#>WG2+{I93l7qGQj!U#|+9c;-YCE>T{mlUOPc(RFMch-;W ziVYE7F5X&fU&K!c*#PYGYzP<|wXwLcA}x5aDg?1M!q`>*gbvis%r=1%53XqXJAbBW zt^;c)9BuvDFp*PGb;DhdscBDj3)?`IQ`7ceM-S!zk;r-k)8Xi%%4!wk58cq1CJDs> zYm(Xd5dwKKwQi*IjVheMYw5q?wT@s`Q(Tn+wQ|6rPT0b8g2GKsByw{O_MECaSVE(E z1N>kd-pmzm<%UI(ZYB+kXrv>tIUP9Nr?BQRo2`mHNPH>94Ow_De`IS?pZkb*NWgC!knV$xE@7060Wc7^F0Gdp{ zAByYV8gIPx@5)!m6~bIQOO9AnoAy4-;i-{%f?s6LU4ScoFv);7gxYf&g8v$UA#MQR zlT2FSn$V{_>(-D{81kJbdC5!MrdT6T+9a%V32t%J|)`H#8HPW`2laY6xIzi9p9m z$ZjeeB@JJ6Js|z;qCu!h|41rG6g3vA7D34qVTy$xlCo+j;T0L78N^^&H3(JlfdNAB ziC5G>>fOcW-j5u8(+Qux>6Bl;G%&*w1cQ=)dIX_qBs|kdcn0FIG=*U)lVK^8VJVei z>DCXTDeua^gT+V@aOZR#_CG%*8zRgCANOYKBQBe?t@)@Yt){LLkzBP=4V%ent!0@T zCF8qTR*9chFO5@|hBViXl2>Sf1M(B7kyrGs;*w{BO@om@ZHW4s65tv>1>=`sIyL{` z+d%RAgY?5g^wfp$O>**|lL^Te{#ATKkqM}Uo99{N8JQiG3x91n{gIs~AdjP4>g_M1 zNFGVE(3^y}7z3O>Aikk0AjqOu=Bi{Y=kPG8*sW9P*#k(kgF#ig)Vkr~@CoyG3XGKT zT@8z)D_2*c6&OjKx!Qc)grkHAdRxaM) zvok_rm%V^x4W}h|VFxR8H@!yT_d=xNuq^l4yFL{lPvR)OHX!Zbl0#~E@SFbyI+Y1H zvZ{P;Dic)9f&;4QB5yJitW?dEux>VFY(=|#aL4iXsr}`{@K4t|=ZX=MMg(JY3nq|diizcO8O(j0b5jf~zMJ^mWk+cKc+VMPfs+Ca1e1QB`b?TMC;CqgH!A+C< zDr~U}2JGU=ew%M7Pz$VV zwJlp$rTZ+dtBQ5oTbnbOBOxVQQ`H2+Ri*0~b%U@5o4-L#|EXQD;uWbeJ{umN3?UqQ zM(c0Np#+mz(hoTAR{Z&Sk3ZrT3v#Xw+!|@lcX?5{iinTwTR>gGO&$WB$+_-w@YX={e%U)j;gWJ?^Im&~SNhW0D@R6lH;)u|771wb@`A zG5o@kwT94EtSfy;&UPnEgAZ3@3>U((%Qz=1e!H6xTovwzR#t+VtpMUCK0Cva%1Hoh?j|+mCjBFOTA+p;iFu;%KXUshcPJYtPEkm?$&w_S8cA&Zb zeV`DY;!3tCACqZ`HfM$0i zmW<1v%nS9t>LhQ7BW(NCT?KX$={acv_n7eNJw{Xrmg7F)kiNx)WcaXS&Cx0vZRp{Z z1ncw(GMl9rX!8yESdI1r5REZMV{&<@3l{9!n<55iLk|L(|@?FK|p;>d_0r2+i%*0T-k12B2GW6y0}ZxYsT7y zrSzwBJ9!aHAEvjV5?AyPt7>zvog<|2kj8mD=g85hUE5amNUzhO>c~?lC3-}1by)~P zwQ;n9czTsHW?OX5i^R#gAwj!4t)}qg!_^b$YE1GjAMHFD@c3lrTK3}$#O!Ll80(6% z27I=5mY2*}xUS|%p{aEit6|Yz&}P!szrJm#C^_Z|Le{n`<3X7o6T0c|FzRj`X4vn_ z9m}FMQ04Z7sd@e@bOI~0aNQ0H%z@V&i3QcxcVyppO3Wd)|}oMtgU0>khNdt-=qh>}P!+f2RYX<6=KyhHE+amVcqwCrH{Q z|6&&>%E&Xk0~9CJ=odL5%QW?d+^?|G4Sk}hR@~_4K5$R9`1%2_#M%cfgQ~3kYg)l@ z8#%aby$sTBf>5{MYFq()O|tGwZ3eblVemFP?i+I8@-`9Pwr_#OZUo;JXbm%Ura8At zs^fM-O0H|In|ESl8oHXAZXjJ7aE$nxj;up+^xHPR*EzlLx2)kz;nsyVWWCtEMsX){ zo5UK>ZWe?ut~ty3Pb(m%BG5E)N2KBf-t)1JpA=y$w6Ymw0Bd| zj+Q9&?`;D`Rs%-6j3mO|>C<2LQQmd|(TVrEAU!8uTPt62!?3IC$a>qL1Rr})RrIPn z?_|Iy%j}N2opO8AJSHO>UWcEowQHnzp}a5+sTfJ#&|N3(DvrISNXkx;tB!g&L>PP^ z;U3$?o4<${FMx3%hCli{8c&gzABZ2@@Mj!%!TJCcE~%EN`UXEaEW|db7CWLP2QeaR zf{=*+69k^i-v0ya0>$eGlO%O*H8wP1-(f{Uf=U9FMEam;9RV84><<8*YDiIgBxvlQS!8CV&yCO>t!PqVKW&)&mS{lBO_~;#XKC`n zdL3No6mAT$nR@hVAPbnwg%0HbA$+-zH=n1}o|z7@0*Z`J;6p|0Ry{SS%+;UUv)PE@yuJ zrQ?&TL9lg*koD-A1$;`A{$>k4cB^1n7p&*HOW$7yj=~E`dE=G8#fL82)-I^&`ggO* z3ryRX4z zz-X{5y6i=O-M^}j>Q(G^XeG#g-6^vWk#DErK(4O+CJ1@2f#E;C>2e(O&*&axu~Ba! zc7>`HR)_Kf;Rp|VP(VbU!)|oQBSfBg;SDg33d&_mAeL(9(SaEcYSf0XQ{XcSU2bfSU*wLZTlc&UaaipVRdA`5!45%^thDRlC&Thq@#|Jk%=jF}sK4(7OKlzO}I5Myh_Z zy(u3QV}+c(GZ$=I2PTPF{aJ^l*g(sXJ7YS=z4l;C5|*uY$rBiWIyTNWjWct~i*qn} zYnnP>4O^SgJ-ufVK8H>Rb!tvIx$P{*qcb-Ap<#&sT zsCVuBGZ1{3(hXXvOd$9sN|QtA)ZZjDCWrgF%97->8jD&{VU|U0kd>{9knjBMHU{q; zI6L@(8OvORdk~T;edUU;vX5o|;%^h)_zCp?gXY}GJ0kqB(-!XIAN)f6*w7o$|0H*e ztTU+mrpY#H8}J?;D9i_|g|@7xJ`YI|z^jJ+IEd8;UK`^hJ%}nFsC+&txb7ZjIm{1fV_6db1XQ?a}Yy z4jT+c%>ZWxmU&DT#Kvb?4qKMTLmZM6@*yW8H<)<9gzIM-UsD6magW`^RW9Qi!}i-x zzX#*3jiEtz*jRroi7$9+de_!iLt7*|s%DPP@mGY~VrrD)wbJct*}-2mK?&)#anz0{ zGM<&@5KCA>s6`RiMixCOOIA_nLlSI-5@q#gyR1Vo`e^l%7Gd<)N4VE#Kp#LHhjI-q z)JHqVzJ}ZhJeg-&$N2#E>YvvKQ3mlERHmMT9z|ZO3k(mpcogyrmwlYkhQjRt5Bz^DXFlrqKgf&i*s#9x8j9*SptIJe!)0Mkw|#hpv`P7pYg1 zx=aN?N7p>lnYk&Z91 z!HTdttH3L2IEQD(J3W#+kIy~2vIG7CnE z%9I>PJ_hI0YE@1-|FAM~c2Ilf0l6JON>r(W_}X*Yu;yn{4csi1&;<`hsv)1`pf zO3-X2SdIx?xpT*Q5^cOsfrlT+Trmv0#3t8_jHMcxjZ>jzqUgQE7Q}@f?*0 zsX~9p8%T^;@EucS0;_tAxb1S7g~e)S%0H6!KWA4u;#62VKo|#7#(xnGl7=7?VjEz{ zHhsc(ZfYNHYCRWqUV?9FP?REt&=$xhBNT~q)+*#Ok^#|(UW*VWH>Ok*eHxY>&iC?S z)^lnXrWI~Z%3mCVue#LhLyWpfce_M6r_S!JN=%+OX`A4h^RVDe!Q$^;W^5ZKSVnNt zd@>KGmS1lyWiw-P;pLjlnkwjHqAw`gGKnAnN00|%!|`j?fD4#^og{Wi6WL1#RqsJw z-RfH@A%z-CA$=Mx4bi6FVHz(n7SVPQc@yUr*71~H3GTt*y2hszU9=i)JKOk4Cmtnz zE1yujOA5`y5CD~GN<8Zn3$?>$_v#PHF*he8Gkwd=5bI>bw9p(ck-g9lakb`}eMmKW_BO4@$L zXm+OU5@>b^7uM^9q!BEhl?EtZ$m+RL5KIW^_9s{`cD$O>;4o+3EDD*iijxJ8hWn; z!f3v+P(4Zc+`LU#AQDa31N*RU{Sa?>h>Kbb^;&Di6UsU{jy|R4>k!3WS?JV(H7aD- zRB~Z=y;<}b&O-)d$Ag9Bd<<`(zNwZ5a#`iXmrr`H5ZPyI)4I?ND_Mz*Cq1|6xAD*Y z9Gz?N?u?#<78k_HF!yqRkI+JS3`)m_K?3h0bIw>L{W9Yaw82V3`kTw&$@G#G#{84_m5dyMgZrN|$$vEmuwznQ`BnQu=>(Bmbn}&7U z*5FL4f=`Q=E!eCF;4MToFyYh0dH(w_&;xfhL0@xlrXlvh*Dn8zW1b4@i zB!=71MM;yLOQM%3cuKK$%h@pGgx#4weO$$6hhnqia5Ca>I_621J2#qu%4g>&@_)*lk$6yn{$h-k2xm8 z2*e5l0@ci!+s&Df7CkePE+HNfmq}0T_$|`(e}r7Cq8e66Xw#pTBLqDPeM(6am~t4m z);$nS@f?vY_o9%l6izDb35_3@Q11-xOiF4Xb)uMEbGXE63;}sFUfBEbj=16uWV<%J zG(LRI-yJ%Zj=mt?ADk=Df0sRt6fSkBE3M(Y__F+VgQ<;C8q2c^l+IDr;GmS@pt$iO zhD4lq$McjQbC<*kUhcms)udpD$hR_9CN+b9SiwVW$5e0aTNKOFRn%Jz?{zHU{3?ej zOpf38?Zteb1z7R15{mCcU6tdm&6BDk!U2f`k+v8X*eKwN8yX>^GSlIW)E&5`W+7}w zW{XS_H%}{96med?V52mFyxI1Op7F!3lu=fM)H-GtB2$-YFjAA5o8X47<7O9E-M`B4 zCdxE;JmB5S|4a(Ob*-zQ*rjHXs&tD;wyAL6WUmh9DOQAtO_g+!i^eqZ*?@A1!Zh&h zIC)PgmM@4{h-^bxFu&>MG6*PBY){~HF;h?JN@eY^BMHKQUr!JzyfbyHthxe0eiJ7{ zM~n4(QdbH_uWl;1}{GkW)(5q4MR3$ruztjyu8wXDkJ|xF#SOe z@eA27E4=qe|JFk81#hAgIjExNqJ-27+h8li)n4sGaqER@x)V7FqyJRk7IbNdfyB*5 zlIGTge{mnip}9UdlvPJGpBjwXdkvVKIsTf2@N#@ey!x7i z@_M{Sg!LM9pMdjvd_aWoB6Pn%esLa@5?ELAPaCW+gQr{Q=6!1;zm7O8QU4-`@QS=w zr1W)$^@@B@4CTwj?^sh(L^CaGc9+cJek-nq7~z#mYcA`Cuzcj%Dc`?nKoecQ3Cu)g zZ-5BB`>VX%fGRgf+A1d`X&JcUj@?`t>8=%5!aGRgh9+ z#iGng5O*04HHw^1-(*FOXYpYdqMauQ&Gw5dbPUvVYuWgZ8cROBN2(qbov2hvIp87ul3^+ z_Urs{pm_b`1h+9X>R7^>&WU}KOfihlHE$ysr~ ze!&=;ikOaSNeKWCDQ2WW6D|ffsVd<|`Rjr>rS6N1;FT5W*+Vk1_+!kqN?a%G>S8j6 zgdnjN^}E8PyIBrj#3HV;|FTt>$r^4?z57I+Y{ot9JdftyDHPQ;;0(lf$S5Ul6k`GV z0vl!Gv@Bdhp2Gb|Dw~2?=(!&vfIKdA2_x0_rof#Kg?WRIm}9+;CLx!AVY$EEPlBqYqXKY#x=Mgpr#b>_ML2at$zd?r+5I!;n2moLJ z3;=-he+4>nhL$Eq&cq_N&W;{RCeFkR#0>v8nq=&-RFHY*jJ&=WWE9V;AW4!BOJkFk znUfz8$oPdMg^o(~!-dsluF1S6okypmt5QjR09VB~jQ=1?fTTcHQ$A?HL!nYfmbbg@ z4$F|%`l~;7x!q*C#4H!!$54Tv)>-?1XNdWp`UpY zbhbflU<&Z)p;7xn(^bh6)b>?c7EE_oV5Ck#(=O@Fw62~L0{pfRs zn-Or?jgyiLwx^hai3{g~8RYbz2`?OqK0#<)=;?-gc7c{n`Yj61<~)2G96lGS#wCSL z5a+ktk%yp6Vp}k9qOsT{Qy2Wnh7R$hQ`h|DYrYk z5hT*X29?6E2Ev@6P-+KWl(3Wi4)U=kZo$RGCsg+ki)%i=1Yv6!2gsnK|HSQb2 zc%>STEkueetTaa;EN4qpar4}a(*F29Hvi;DkoAKF^iEbV%OoivcSdR|m;>a@Y~~QK z9w;YU{AT(FElm;A*&2i0B=)7Eby;gXg1g9@=B3C{Q z6f(dAU6Bps#g1{6mcSA3!Z?{ZOhs^ss0(vr(v2!Aciw6}zQIpbAx? zbSufz(bF6iRnv4DcMzY?-VUSSGQo*6_lqL>2Bi*zKCq&lT0uINgGYCq=Weqz>`Z$z zn7*GscL4pVLyOFZD$ozvaYj_LBMzuNOQ^~4&W?-ZCTFYK;f0XVRJ0=nhAb$q;}%{_ zP=F|F%iAa68%L?2Z{VQhrY)B0Wy-9#vAqZ-ed%s^Q0CAPV_FAOnP^SX)pH3B<*RV>OGu)hSUg z6sfvS_gyJ^b&82`w4!QKT_m%39xmph2`mp!o{6%jveNuO`@Mj_gPMERp?k$k7*{tG zX}e4rMv+3?ZOEK0T8zA8*-y4^GvqiCIFM^U!e*1-Uk}8==31Cx2q!>c}Tm{ej`J+bXo)6xn+o>6ey}eowu!M<;j04wSXo>Bb9v zv$QS8TVtG=-=S`g^m0zeLJpTLZ2`{GUXYEt^+c0%WD_#&xsekMTdk11H#s;vX}=IR z!-UIj#Ks0&vUL&ywbjH;hCMOYAOlHZG0h4M&zI~Mtj zE`I^Z*;Kop?=_&C;4nZ$+@TofZ~*|j(seYZcts4ZS)}W}2dsQVlssQSv=p{9-%BGP zNsTYhl8_>lNzx5pwZ$-1$0O)gIAI7`W0DL&y=+)Q%oqwCcnyy|*9kjA@aj1(Q`xlQ zi(mFV^nancZz~JccugB-bw+Sw1cC{>r~wfJ{464760b{LDe_dMxVR;1ew`OR9pI}5 zH$3|GAMCp(F#&O>Qr-<^?S<%a2mJK-Z0uHQVLwEpxU=3#6R6sTx^go2>4|Kfn~EO# zOPuUE&clvcJ?20dZ#yDk4L3==H>X&ce_Ekqahwn#eBsB@{tw{4GW*71nH>}m0H6{W z0D$#>gW3PdYvrxqK@gq?tL&kK7KVnVd7Dz)B0H6n=3ZC@LIqz0@_xS(F%HWOrPcAq zvPYnBZx~1%A70!W;KzSB4c{~d!D2#)u)EQWhwJQm`k}h-`|As(A5{>IW&2+Ls5Axz z4%OD9Jtj0p1k2c#{nQ+G&USbmEWNVt3kXr9{ktN4Di(PQ=WC zyW$FYFNirO0jjMd+ub)IfetQ3s1cV^bkrwLop zVN4yg*{LQAd0y;xUT$FG>*7wtU3VAV}%@aan}w|#7bq~l+I+GK1LGB2>lwqP~D-Y--91`x#a}R7Ye?e zs9zA?A=pboomOF;#KItZ#j{Q(-NP|;LUoICWgNU{@ylBvO6g zI72g8dWH61k<}-b8kYWxEau-c#s8#dh?zJ$n>Z?2+d2OSwo;UI84Oee097k&=n?q!gOB1m~Z_VX6N`0$u_H&lg3 z^%;`>hANTT(*$4( znc*i-^|%xOuBE*~NkL!J3VjyR0nL=?p6SXocmMn6OpcCykAA39&>{~#aU#<@)P$S1 za&2j$lI_J)2USYj!Sy(~r{PXu_gL9$m{cjQSm^&)#q?*`T;Z3DGhtl}n%S z&B$;#9CaEqlD=yX1p4Wko`3$HIY1#!v0OM7#6Q0~-B?$-LG#ma<-u*$2x@X-du7dl zEuGD|aIhy3?j-$4^I*mUlM8KATOGcm;t~diMJycvZZDHnlF5qEB@yj4xrZvrr-}I2 znpcHR>8D7r(XyfHNla-bj#UfxAv)O&12j%ja;_9-Gv4p{}B_ z{UlTB>K_)p0W8<~Ce*?f|wey*gY9)*%kDLn47BBv<;F44BSAHfFTJ z#~a!V{qA)EC$}n|XePJFrfM)*bHzt|DjUq60s>t5njZ_a&?WqSUtJ_F6wfxR=Q2NX zkGUAw`NlkTplo9?(sUgaHqkSg2gHKVE~er0A63t4KYh4skMMI6tFZA`@qHlKq_o!VCm8D^i!AMj+K3FJP7gnUXIdiDr<3{iGqOXv{l)Nm`Jg{YM+>%-2M%JjYJmSZdfyI% zNRbg`?iYsnCfU7cKrHaib#7hVTu+&pxVZfO{bL7;A85qWamNM_Ta1HO{8OBe&xvh>H9km5DBJY9jI$}o1I2yF_w=T6nF1&GGP+?1lFw}%RH7VyRgSqyqWRZDk= zI#LKU)##ps%abEffkEy`?U0-f8#I?m#()k>vx9nEz;mThs)FY#$rfEx5^xGcYtK#5 z!)?A5M!`tT62S3b>az5fno)XmlO@)Uo_tDGf!?|9vQ)k5+6L+~MmhOi9b{&G-dd;j zN>JpqA0RY>HAjRIxvH}$Wo?+?x<>1}A!3+mnEramy+26zp4wNk7 zr!EW~4|q-oU!Y|ehif#v7%{p^Dfc7?$HrM9h7YMR zs4*;3THDy%`Ld_ZVs`umqh*`?yvi7E#f%GuVyTI$ibeo#;-9oLs|x~j^y%nTfh4jE z3F6p6I73c=C6IQ5N+EY#6wdp(Q7-`8kbHO|d~rtc#)}Mp=!Ff&MLojBT-;NukAIg6 zct5($@(L*R^4)t`!+9$P#^@3PVHW8LT^1E(;0!Qw*cv3dX-UBH^XKV`}rxx4A=p)OegIcm(!s0ueq5U+KGna{?#JE*|If!{-ds=X4%X zDn1qIFEvNt-Nt}NwJpGp&fS=<^F1=d^9MWT{+l>(C`W&c^~;K;-|2$+e=uGA2P^)Q z6UjDqi}L89cS2M&AUK8lSI$b#$fO`=Y-iCLhJvD}VAF`-uH|IzrfZom`iN2RnhV+_1Mrb_RLCNLior4F+1~ zjmN9n7%SY+w|#$OPK(ZkLI1qMzJukyHF(!`3vAvS;Oj!eh1B6DnQMhA-q2gKqN;X) zL7&<_i_%v=n~=YZi3uU}Eh9ju_#Qv)`;RHcHAyIG70tX1Kk$=>D$+rVbYtBUBQWo2 zIA47L^Y_~DL87D)R8+)u6Wd)rv;sZKVPEzAb=lISL~ueGfo=)qia@8raPP6s zHG~A>fb75=JMQx^oqw@-hJ~0B&W#^6Z|4bJjlSKWS73NW$=T;qG=q;Z(&J9!v{-px zYHKMC2Fyl`G}lb`gFKU+}Lx)b4=Av3*w%8}$VZbieBR0MO!alRAR)6Yt z%)3M$2IV{_MCO1(#g8ecKz@{1dcatTaUdZ|&fMqU(mU|R4yG>mr$s^@biN0(cAj%c zMZ1V4W-~CsR_P7o3B`ls)dJSVZ*&UTg(s#%z=^FP)59}8@Q;?)N5EHiNf{G1*AY6# z1*&b?4JPHXYPs10*|}jV$HzC&e=Wfk=1VcIzd(b7003b8AAs%uGis>nC}F9f`^th_ zuT$@pfH#v!Qo+YJuSRBSZaprP5;hmlYx1#mh1I(>O-(?r+L>u=umUS6H|2>k0bqM3PKuk9{9Q|$!`lLrF3F2hv3Gj~?q zH0arkeT2RvbSH&*gFGsCaRj%Fw`C~O_DSFtvqMb5zfj_JNOrCES(=0tV{ei8i7s9Y zqB9R}bhjD$Wc#8eU-{|eudLXsObidsW5miDDIZQF1|B)nIf#8t){ckfbd%KQCB;gsL^bcUvi$LBnm(NQE}#utCsZXg+k z3c$A>h{_yy9W~$~*rYTh5S+L}cgw5^`zKJM=%6NL%MT($tCDjF(abCfwbo^Gcj8-9qE;Wjk845%!F+N`VYkx=#%sQ(R%@6Plol zLLB17tboD)DMvErrpgMq7Q*fqXe=`^sd`2JNa3lr2KvSuhze%rmm?XBOuCWwgG7(PWQYl zDC6|R9R-g`{D9QxSY`3X`+IQ*?-hL7-2A%0kH|W)g)+by!-pRM2K-Y*xU0vZOL99X zg-&u9{m2+v^!#lzGR2Pjo=HGuBGLG^rt${L@-8ocnF51wtk4~Zv~b{*uxWh9+3b9` zde59>)lXM^kKoK*tB_V*DW%BUsY0taq7JMX%@0;w_-3X@s1gxGJ40h~xtfq}Ylp2H z_V4K>{!6suEhq5{tmJ8q(gKgU8`VTVU-E}@H(b0fQJtdAEOa8` zd1nJPs}I?=(y=mfJ&0Pi@-J?8gwkY6+w#PcdqB0U)yy;2smJ+$m)fp6+LG3OTP83l z007_rpo*y)Si6`A*;!lvit843w*QZ)p8Tu02_TRCENv|^^3%v8i^x+pi%^U}0iw{M zGzUvbw@AuFOL0*|P0?=HLVP%QKa7CMwEth48{VY5DFw(DZ@leNMvl{a4%6B6bzUD| zEC6xCFUH&faKzsbMuq*2lN4RGVBL=G)h2H#(joifg0;8R=xg*v2dIOzs8TUH_h@Y@ zxhw_MViXNse3X!_D?agg8G|z`x-%7!yP&Cu_M6z69f>RON9I$M{zi&tb;`PCTF~D| z8-P>QRGl>Di!Vu)sz_RA6gbPFobRU7;@blx<<|sDkcH|x=0*T|u#h+OS!53rm zWT(X+en5VL4k{a9QVvP1G_zSjed+>fprIOMAe<@Hq9qrq_w`%u8)c-IZb1(!kf{wDJ|3@HZgdEVpv3rWf7|g5{jZxt~7^ z!UTJl-^$ML1P2akoNG=*{ce|DRXevqq5b#+^w8i_|3;ww@P@mNyA5`KJ%r_UH}skV zt&N`FfMn~>7nH{*hNm~IlIS3a01(s;>XB1x)D9_^khUBGeo@r-dd`GAhvvSmXC<81 zygy|oUVupvh^4Yfh%CmYEF(*L5mSf2dgmdBA$$5-fSrG%h4VUsaVsCg6}Uk8s>3n_ z{*b(9{sZx|NdVXmH5+gL5hBm3Ga zWs$0?ak1@{PS@DVkd|fzhMVAnl*n&~Nehc=;+Y9B ziC1}*&r4+3p8=`A{hx}J@&HHYnm*0V5qEV{^*&93$x3~6RB$7to5VuzQ*XbAEZ|C; z6QG>fEX@mx1KNKq*YX3h;39Yfd6MIy!ZK*LB>~)OLoV z^j7X>rie56_wRnl?_6H5YAb7hf0wnmx*sPILICr6-X?-Mh*eY$sP-hgiipX=K{|E@ z28jb}nv#u)hW9L>ed210H0)v*`T=4RP5SMKax^~A=i+hBANW&@=Lr({oEVa3LEjmP z8qeo~akZ(7G8eZ29FlOJ&&7?p&*Q5pySU?uU!{pf$BLBt4gQN^y?;x@_&lG>#sEB_ zi|c~OS<-QZoK4C>{+Ogk#2q}37ma~aCbftz8YM^QVB3(JEqq!FVH8mr!I)s5j4l}k z7DyMr5+il-Zpc4UFoobM$(Up^W+;M`Dw>y-W=%qKu`DT@Zd4E|WysK+p-*Z{Wt3$b zQ9Px91bY?KW=mx}anmbl2*-_dI`-Bgd+FCU3ad$$dsY+xTcD>d8eu3jYzwodAoxR_ zHw*^;ke>{9rX<(Y@Bij#DOT2#eA2)ygd|sxDhei7HY97Bp#0I4*ZW=aO7+_($Sq93{~ii}Zq^jDN~-zPQ617oH9 z1Q&z*u#d-;yPQ-)<*vYHd~jG-&MjTw6a4ZUmCr5V%@v9}gFf*P;;+%-60v?nA7MSu=b|uWqbTrxfI=619&ss%I9gDxYiovJMuunfON60e`?zr=qH~5s z(}9p@fyT+gFg3IyYF3r#)e#L;s{GgAAyM{@0X3^)_{y-FcJ#uKJE*;5735Z~Nn+JUO~yz6?w)4dg04J*o1t@|J{^Vtpy8x{k7L1cpK1G6V>d z>6}^rBgSxaRW5ahIuq$MCAt!O zfjuhNMCMP~nkyY@;8p^HJh3%!Soa6fTPjy5$)*cQcjlHZm zM4D;QqUfp%%@<8*bJnVI?`<~^i-gSiug_1S(M0rtGmX%Yf%d7M9k&4&wK}!S_9mXE@#vqe| z8W-u};v4ThXNOiM4(1@TM+qhg@S_;(VOsE& z#exVb^zphKi1~x$Ftj5WN5`|y=?JB|sE+=^Ba(seiB}5HvD(MZ>`K|~*&0VdDk}qs zi|se51ezd1GZg5)rpV(O**mn=jh4#2$6Fr&dKC)1Q?8b-z20Q_8!sQcJ)PpcMND-v zfukr!e-fJf`$uT4{!~p-Y!w_QhYYS1In>~kli0ds&_D%k_7JjRuoknXs;Z{tdy`RH z%_Ll#8`Fey+O+&108&7$zv^J9wj9ZbFAKE<(;+$-6k{#qRPhy;mQE{1(%0sr1}{T3 zf048DGdTNnm}3K(R#}WT#W-9r?O_+RE}Ue+Y1PVB-7}h$eUI#RtX9-4)T~+0_N+Zb zAzNun(TpZ@4GTgo3N);dUm7C$@4YbEFwmMbro3F%iNo~x;L>6o7Kf8PA~`A7rRX}? zAmS&Nk-3)8ss+xj=2igKbu5A8mX$~P$;QfVg_g>rVxD}O*3C&e;Xy-wcBL&ZsNPlv zYnE4*+Uu|=u3m-=N{Y%tv0QeX)#Be(xE?L7tvJbio>*HUT?%Z-%5Z=x9UGgM;KG{K z<`k~1s0pr-%N>%!VCtE4yGBezX*@v6$QQXAlST>c!d3C$|3 z7azQ^whV2(pyT?4B#zdrXH?RhC6ef8F!anuo0MKjdGSRTktnug%Iw*;T|Z$>NwA8@ z4(VcoE+*y48npLfQ5Xxl0mCzASNOm>{={yswIi%9>(( z7I%pN(^TGfjGH9t&=y=;wua2x>dGoxYm&V}70`2I=<@VBl}c>VsKwRQ-5I1WJXuc# z>JzNQ%eu=wf{L=x@-b3N>o%i8H0g0<@SPP6kTjU9YfJ3a+xFA!k?efR+N!LLtxB4F zHJgny><_U^oj%QQ*peKQoS4|6*lXK?ZZ^~`YY;jIIwcE&YuhteVnFKN};#CW#z@is0&^nziLYd%}Aw%S$7&akh7X8m4BgT{1tK<9xD`=xmF+xFrN>Yq2yG zxlD9Fxi1i2Ul?lp+3lZpr!Y~QnP{=LEf{7)bayk_P9|C{-l}HIJ6-$vFg=yh`5*uy2M*Ki?SR8mT6IL=_&$p%L{ zZ|&Z_mRowX<&Al=a7t~9qYAMoWn|bSw4?xKYtgCkw`Tb1P_+2}B?9SMSWSEO3@-kk z@zXw0YBwoTqB5FD3A1=S@x08Q;|tm`k?=K`&X3-$)R9MX4LTwbw!9?DiPA0y)X7;;O3hwN1xJvn$;_+p%ReA=>^Av}f}* zjEwe+gB7(agVpw8Vyq^QPbR%3l@&|Nmeo36;>$uUPq1>^&1~7LR{wTH#F+rM0@t~QdBHk-#(R~N5sQ6`CtC~MEWjB3cW zhc=yD5UG;m=_IeRYFcnruspoeYM+~_pPg) zt$lkRCst~n!pfR(ff6E*+!J8{w)cqgqz0=iT=CAaWa(*w&u`zhDx+Nmdvugl#pMj< zpmiAKZ2gQ-I$LP?Y^QORAC<;46r1)jVCk9nw;dBRf&sLR`+sk1(uQqyu%)Rz{LG-q zWnC;OrWLAJ`^E?Hd#Y+9Wc_qE9NRQ6iI({A>Fa5BEk8QASo^fM30Q2zG?j-c?HY#Y zXEVym;wp0C+h~vVW>@A{)Y!2tR!MPrdDyc(_sm!pg^H*WeaZj8H2c3muPv>ukZM>* zW{;J!)joyQJ~dBE+?eLkL^u{Jf;hTtxvTr7+IK#lt~Ned=VIMJCI|Si_L+0hU=e@v zS5}or505zGhzrL#oGpW8yyW(-3QlsoLdUVPhX?1Hjego0qL1cpFK`{wW(0)Kjlmr8pB8%?jK4O4sHxu^+}jB?1Aov&K!oXsxDKFyH5)2wcvvsa+D zusx3=J5VsOxU_U?Mdj*>F-t;pjxGCCe7dxp0V%233!*pMHb zP*&+wpI%#oLXTn*EM6%W2&IyulQK?LjrRIvX=ofpJnCXH$^m{U4P)ul5=(wXb0oYB zUDEWERMG_wZW@{HO*;mWUQpX-S8coYr{lkroB{mPpHm_vr-+hGqKuyLgq2maBztg1 z*A(MinMx`=CY*EBYjVV4LOv>iV*7+gs}8QLTt#;M3MbMxAsn$MtJ()BJzADU2_vPQ zOKp{N?w!`G!8kX-cm#R5(Lc2T(g-?%$GVt8amJKmP}l}R;V{?kvR*rbT_xoxL{j(@ zvztQ-pQ;Cot6jC#y;^A;m_6cUkMr;G!5ZkX z-^=zOOne;h@>dZ(rZ#%n6YMZii{uSB{a7!rn8R-KvKJ5`pGR1)r^j*rsh7RO{^%8R z*?ScE<3!AO#XR;2PCF^-6yX}*QlcnU!Kr!)qF{Ap zpW^CeeQ2M1d^vo$o&B1+JDP)odU;uVEYaUn{kvuPPiWy)Q+XKRpn(A=G!MC z6sr$ere1NkxW_B*rE0y}sb5f~6Nl~d#XceTt5^I6C5?~dqezbDGw9z^j1%Zav9i)D{#}qYko$Ia@2B8 zj-?PE`l6tN;1&0a2fSjN*shCuuXs>AL?sV<#Ur#rTu+l1ynGfaWwAp%>J^XSloXFq zt;fYq60uzjvQBlQgt~#oVISLDvBlae_L7p6->*cHXYRcjwc@MkS%im+?dHJRM5?WUGd-=uulD3s_IBMA|8pQ#u zCc9f%v%F7faZPcbVw9d@XP3VZ9hG^-6XGD6DO3%`+LkaGQs5O&ii2MM4gV(*y4A}s zMAgVENospY%^?p?`a~W>^jS)WDt&4y`_#zemq0|lrelmgB!p4gdHFi(*zkx(;p2|x zfZGO8&5`BZBLK*yz^>mM7K7dq)tmup18(!W%T7^uWJKNY>AB5(B;V!z={0woAqWYo zEe?pMX#G0GLteg>-|vhotxYtxw!7pNhed-U*NzIHk4w>sLb=w$`o?Hdo2ooQ@ba7a zwQXCEkx@Hd@wBM&vT9b*wuWmN3hrgUMYBm9!G_`)v=;g8?4LAEW;pX|Wo2pE(zSi; zuuU&}1($EMMmBrJv*J0gcphgGO6mPxz7JPfwu3$DOg*_R(T6r>OUfy3($;TI0oBH7 zSWjl^CU!TaHd1Oc8o8(5J@ksBh*ccJ>CAWWJv8B7AcN;cFRNv%ynH|VuGIo4o4q7{ z>lH7HE6{m%w1XUJ90o@az2X(_@rqZ)YhLlXc*7Y+r;amJUhz9Lr^TCO%~mp;nSbE# zd-;dN^4!yL07-Qo_p%VN`~&_+FaMZ-qKmh@;%)JcE`IM7@6xcmhm7H$i$Cb%eXsa{ zO8$t5`ByYrABvB>;$!iNS9~h|)XYS)@3eWvXH@qWenJ5^)%rcTYN2-Q|qRaWCNFujT#Uxev8J~*$! z+X+R%YI#m&o40M5I;FuSwafaBr{}WBe@qGTM%c zZ0&T{W!i|gt(-Yw4;klH_>gl}u(-6cqMWvAY&x7cWHU&cH+Dd8TvKPAuQ6c-?c}{q z=fXkEv**v4fDr9z8-_S`ZB4j+Yy?}@(q%oXXgN*<=WAR9Z>U(_{;mlwb3r9U3aI>m z5GIya7Ds^~i;_eI4=GV}|L8D$r z8p6|=$RjhUOvV~_jDpPhYG2@_tH~3`Oe>l|5mUGftO&NaA?b{7d!;1K7WeR8LrBW} zsqYYEp0on$fQsPirfXKcvfE1zjaCs|E-10tlaw7T@HW0IG$s_HA2>j9m{?u8lDOS^ zSn2o-Yc4^uifMheojky~t(z~Fyhb0IS4JVUM)-6gs&*bA zPeR(Eo&Rt3wNhM)OfkX%QfPO#CWgUT(e6Z_7M^5xAewQ$YwH1S8R3sJm9|64Qwu~T zqm8{7(&6Y-R*$K%r~bIGk!Ft?enF`wz2K>-oJ0Gq<79k*$R0;kGw^j1$Y!W^NyxeX z=_w1fXum)LomROzTqyaA7?Hn5c7FcCan6nLh2!X*nceohkf9?@U*}d*z-z0sjk%fMz02;;2Yg!@uF&J`MvJ|l%nl2Pd zSGv}#8Cs4OMCIxU7vhLhoyw(lbf6pU*A#R^1K}L!c`B=MEQ6(m_PO!}xW-OF#L=TV z+ZVrurc6l2;v)ZOBaLhXbl`Ag#-4U)Mie&gJC%tvv6yDn+BTJ=d%gevuPJ4a%C(~j zCbc{pJmZKJYk6^KV$k`C9>a;^57`E&eQ$hO^kt0#j8XTlLV=L+9T)tMLzJ2hrK3^3 zx>y=@azoX?E-bfy4=3vH7)T`%dHl0BR1;iD(J8b!MFAKs?pB0RM=6r9I)=U5*0BYs z_?@$)d68iYGWt50U(xdSLLvg&e9eJI1QXb|4+!S0h!_Q(0v2qD5fN~aF$NX?ixD}U zpo4_)(PVz<^lB&2W#SnHIz-W}arEO;66h@FcPzS{5;O@Z&YG~QN^Y7nk()Y3nG=OT z3Ow>OKO#CIv2`g90Scb2_D<&ney->Obub)Mn8S+LY{+7BAQgP9@-fHcwg6@Mg;<~R)lPZH zdDqDISXRqcA-vVH?iy^rwi$gL*+tFh>&PyS$X|l_OPkT#k*$l!UxxYh5&6sU?-lGy zOs@kk+rX~EFIQu(0R;XBF!vzv`TIdB4EP&C1QOL8r2(`+qMjkvZ311?gHRg5unWx$ zwRNGDp|>jBDREze&rYD@^L;Sj1BihSAq74HKYR>l!6z^qK4sV9SHDdOyH4_xQrEK^ zfXUR2*cXni3)xNVW>COjzhWDmKFq^B$9ISLxRD*>zg|}daR=V0_-Q|!oocfIKIDZ4A z)Pa$hS`TVsho(`~=rc=;=vABzS};1lm%ZD>?smXU#~G=}p8InYu^-a5IpVRS1;9WA ztqCrz33TA*u#F4=7V_O~I6Opm<7YUK@-2LEd$$`lc zFbx-`;Sy{_z`VZ|OqL!E=Il0LhUsjA`2gGIz+3~G6zMFYGob8;j&&e*<@&dS-U#W3 zb8~V72OvX0li;Kx+kh=c9Z&`_2rreDLub@nP4h3y#hvB$C(FT2DVmdtq+)w3DzIl! zs7NO&GFwxz2B}z!R9uWyT!K_w+6EP24n(7(o;~PLF%{c!DZDvILMMD``=Rr^CZw^% zT6P_1?0Sf0H$=?*I2T!*(`5p@u@zvJPJmf@RKRy4;JXlTT^oS6I4b2Kcl7RX_%=k2 zo@m9lBal@GiMdZhmK?_}0_wpVWlW`RWjm0Yk0Li8M{e$fOtuSh*&Z0o_C|1Zh)d59 zcWj5aTpi+a^x=Xa~ii9rLM8!eF5Y4_;Xwnf)c1tw>L^R*FfhOFCw$VJ!8k{jd%b9#0d(3;| zShrvm*CHmI$3^3DXY%80e=A^e$%qCltqow|*}Dg&*#>rwBaMl!zEKfmMg#a;Xa+t2 zG(Hd#_@Ia}O>|)=x@=E$tQ^8}pcR&|@@Wgpc*HURu}o|OOPK3TSf0QcX=5qI-m5m3 zGXg0B`;*gRKzSipe7XcZ$gbLo(_uE*ta}otxgt}C(CkFMQzWO2j&;C1nS(2GjzWA! z9eByq$st=UMco7@5l~Y4wnTSrN|qv}34#Ku|s{ zun+pygDDgJd>SgPebB$DJ7XaplSN?g*~qQAkjm#l244u>__;8EFM`p0F^uEq!+2f- z`MeYg`BEt2%ivsI221z~xPX^SHq1hO(HCX*X?BFP9IS8|vchG^3YQ@(T!yT07(%IM zFr~t12sls}dzL-tjLC-%ljgKylEZ^M;S;C;*-oE00)aZn@d;v!npp=PpSqWrV9>iC zaq1}Xs2+$LJL#{>4nK}B@Jo>$>yRDjHt_Y(nO_cF_!ZEbUkUyA24u%oFq2;+yFD3+ z>W4Na5v;;ERI1P8qCpIp<1%25%YZp91LnwXE4U<#kV+Qa4t5lkv)$P{F;7x8IHGT| zQ$4UZ@v>vsp`)OR9hsZlf_}0fLgP!jg5L@zzYRNcJ9Op0hJpOf2(caP5;@o?McD1DL0dj*2!SQU$o8s`}Iv(EtN{DkCAJXJ4NhXeNj~5e@Kr zk@LSnVmCtvz6FJFEBN{S$n^(c2;T-H`F2VCXdAIh{3w_BQ7-YLaCv)Kir6SQ#RYUj zC(s@zMnO7GH~KnOzUto#$t|o<{%C}4ueu(~YwUHW@n}Rv$Tadwl3OZ?eW3D&2n`y! za=jrP4@RNLQ3y$DNyt-C33)R*AxSL>c^(NldJ000v$q^r{T$y;^P|@~uq7qOBPh{a zO5TprT1096Y1G#5u-`lD=(MJOG{PWitwgl`R~vnJm%WEj{tyBAUG~1aneYLa6yI)R zPzK}pTV(mN0%dfjx|LPr?1sVHAt5vDt`EUyT&CFKW=WIAB@W3`cf(Lpy9X18<*DK+ z7@nu0XKE#;=IQmY#Rg*~=27le%#EO22g+^0+(^oeqTDLXjotAkYX454(f>806r1{Ro`@ggWaNi03DulY*ou8uV3k7^oO9 zLb2d1#RC(R7|2&*VTKY1^OSg4q$EI4NrZAG2|`LTT%@GHwMrWNO7X$_N)Px{=>>mN z{P3-k3qL9WrYL=wru1boN$oeRQ*brqf8?FpxlaxF*MH$KFDQB?~ z8N(|0Ppn3n$gWT(Nntz=DUgoze<)Y6foNTSgsMn|VOaJt`ve8I08^i0nGOrx zRGFJv?WS&YQy;mhzo9706e~f~;ZL}Vi8k1X|MHIW5OI6rh*89n9Tu zo?O!xwa_}sMQu2t_J*3tzGwf!PTO|8Z4;x_r6`TCSo*a}lPXm{1Vi~K0-WjY&zbDs zEz}T|{0B?^i)jO){J?%>KRKNIS)%>LL3^HK*OIXp740vG_C$m!+X}5roj|eR?IVEG z*Y7!V2zc08%(Ibz%tkmr!kTJ;;sdY*r?ZOc!zWOKl=##p%`BZ-(G^V59b!cfh!;K4 zAMXV{M0Uhlo$b<_?b4fV(@QDN9YdotS2%6KW`GPZM+%yHlYNrjsAxB6T(^5;+=)0d zk*XVT5h=|>6|SZr<%hPy9-l~22apBW0Kvqi4X{jV!8<6woHX4bZ41ov>B@lJP_`Wk ze7YDQ6*=lZb%4~@!>R5Cjj*B)`e?WY%*XMXRWx7ti{`6n1-U|4UX+J6Ci58$uyP*q zQ9pz$O27t<0J}ATNfQ!`zj=cVDyu&+74>9Ap33qxWr&`l`&8^hXEdht0S!=jXcNT9 zG_6VI1|92vNKQaZVil=ZTkYeL)c_Yh4Rfe>_Ba|W&qO+Fsb{@1F)7u;zfB@;>CHM z#7pwLiI?WZB(BSg^@$|7tP$4d#rfin5wVe3uTLbdYlO?~Tp{)i8RYe;%7DDMda@4> zsaqhM@^)YGlaQa1DPfnHc6A9o@rrP-55kr6eTFa2zaKW_#rxtL;3_nm6R-Bg9e`^X zNXEqbeR>02%kmNq!gcdeIQGN!d5J!em*h)2G$dIWl7fGdxAGWYQcB8zyi{MRFAi6` zdiF10D#}h?2VaN88&H1gUAk?;)kr8y(q+m|K=B*B&2am3P8yDWw3+M{my zQu7k(S-r1AeD?;p5iMQ>UWZWENvN2)k>#baJfAN$32thDo5}LGlfTMKt0%Ncu(7Fp zqf_3SGPg99-{O=fQ07)yj=ax~1sPayiBoV1 z6?mu}ird$|4nChRtr2d|>*!1Lb!>oN*WnP{fyEsg;m*T$*`ccpoG{409AsJ*+AZHkkL3#>0 z`}fvE6#?C71HE{A*iuVRNv}ikaCnU3k@%ZN*lf!~2W+jAKxFt3#1;~W`yvE_S{lCi zdQefKJNPn4&1Fy#R^GZHh1LK3PhY}O$kLp-I$!wWamJ%jg%Xp%d`UEGu|XP%+g8~} zay*Ih2DslB?u zK2gdtMUZt9OWANy#?BTi*c7pnO&1kxo~UN$iV#~OYS{{L5vvpzvyixitrnNEi^V#2 znOM)R6PL4_#TD!>v4Pzyu43E8HS7^_E!!=wV+Y0c>=|(bdqv#H-WE5pkHyXG3$c-X zC2nE=5_fPR?&Mx^7x#&~c^7dn?=F7B`-#nbirB(uiu?F%aX()u9^gT-jhBn<{2sA` zZxN63`^7H)nApvCi9P(F*vk)z27W~B=g)~o{+c+z-xp8tFT_Fqop_R;5Kk#yaY*SP z4l5nSGfHRitkPRNr}PugD|zCmGDaLzrivGoS>i=yo_JYVAYM~~;&r7`yrHZW$Cb;) zTgp}9ZRK|Hj&hIqy|P2Ruk05eC`ZM|$~)pu%6sAqnuqhBD7f3Jb27`DEmRYvDh|)FGSmpT6Ew?*ws9a$3q%_j$O$Uu*|0f;S-*SsgBCm zFpnqUa-1$wU;t0%DcE)j`&rVL$_H^DPvspTi4VtbX$U!)kK_s5hp7~?6z%qo*rOy` ze8WpVrko`oQ_hkvZg7@-OuAaEHhc9lEJ%SnZ-g%8t;xN4_mDy^B$5f7c23+C#GW9Wr~;g!c;7~PT@S8 z_l7tw_%q@a({oiF2l>{|lw#~1P(o(qZ6=&*ORXfy(0&htKqLGqjTb@?5@(X;!A z#);F5er_-NgXX{;fN-OkE&~zLAU@b}fFDBckinGWFUUPKS~{PZTcJ~K3a)*sPsJtf zfjV0Do`!8ZHwawvKVeO_nB4GDy^yTNK&BcC-7wu-O>ph7WbF75J``(l=!L^L4Bskr zm&2$aVO``f(q>!^4(~8&ujTN#7G^D$@Vu}~z(*kYBl#$2FY`WW#Q{8j5Vp_X5A}%; zHo!x4c>ZuBJkkI=a?qT76pI?*u|hu?nTLj`$`CC@OHsGtLLgGK0c5DimFibd!>wo% z8AqXS4mqWdGmr*br^KC2**ZuJ&^i*dS55RrH)zO}T@L5#8xK%trmtJThM5tgl2yTR>hcX(9o z0Z*ts;VDc%tM-b<{e#DIS9+quH>jKL*9zdlSNsa0+j0mfkg%S>GUl3|Ph*1YXoH`Iv)j^P@4u%|c z2oBv)7^@D00(CgdQS;zDbp$L|N5XaLSlFnJgL~ES@PIl29#bd50d+DQRHsB7+B_wl zZTj<+WG|B`QluQ>;4!H_6=d%?KHizkvz)!KSTz3p(#BT(J0s?+JgQJ_d~g4`*EBsCb( zyJXidPUiVe?~lG3#6;}K@U{H{nYzmi24A|lx;Xu&;wTMp-6oY z7O4+Isrm@4RCmBC^-;K3eGD#BABWr2U6MytcAs4ty4@YQ+vVcVWy&5o4Q}SMddj9+Y8-#fzg-fi5&^joS~xlk)@n;VI08orDg#N5lSu?$dJj!J&GH6_nl$hcU6-#&+;51+y=3U&r{}E+mn3~eN&=Wr?OTA(Q*NtKrq zNkm^=g?RE5(cP$g*^4| zFiQOgj8nhHh4mX;SpSLI`8zmQ{T`O6|AuPy2Ux5A2hlu!xqheM>G=}G%p;{;^1X19^TOs;3F*wKGjm;ubL13u62a(wRHGN%V12)WQNw6 z#c5eAMeE9XXgyf2)|2(uda=P;Z#GQxvyoaZ8>0o-G_5~7M;pi%YlGNQZ7^G@4Usbc zG@7|RQTr@FLso|+sI3;FjUGsF4h2IWxSX#am<9v5E9Mrt8iI)sW8yeZX4{{ZH@5TJR_Iv zv6u5qzt3!dSMn^s-)G1O6`!>qUX|wAORZq!MuS1ii0Mb;4`1+{=N=6 zwn7!J5w1XD_{2_vGjmD5zMD%xB0^pk;4B7hDQMa<@M>j{tX%-<+6w5eRlrcK3eM6l zgh^U86lygvSF43Z+A0WYYhk5!5l)PYVYPM%T&-OS_iF25n|3)os$Btlv<+}TyV_md zhax{oYv^zm45ptC!||C*tFfFm+ZIo;5j8fr|dcrxE*I=)`*N-dp zWAgl-Myi~zv`31U*r6Zn(p<^%!hmE&D!#gIgSfyEcyALJfkybl;ar>fs9IzdAHA_o z0!2@}N4v#>YLRh_EKi^}4z`*2ej|KvIOiC|Q;^Lj)*CF9eK%~1$Jj#caaN-3V&&RyR-^4@muQV{_)QHn z9Pzmfe&!V@Toh$_sk>xeDn*aU)J;;a>TH!1UqcY6l}6wsdw!uyvDgw(3RIpO)BUI zo*c|yI$Kf8ZAo_KT?)>$zvE(%9{=;YdeG9<^&@Rjb*Eh_O*6a7FS3fDDl}PW|HY}I zhO7K2tLW=TrZ>?qqp-ABP{dxvb>cP1(%yt@?Kt$)-ol0bU6`u92SwT+V5#>P=LEaOF{NPC-e{l-P>s-iF9LTA(h4cGObR3Qvpe>2}YXsa> z7jCKx_cFfTfjcV0UIJUGKS(w{&4xDpnE1aEUp8^Zpd&brE z7{n!hi{76+LA=vGG17dxJV7*2Df$fB$&hEVhnu_`DW|#xn(l#k-3zID40P6Gp}QUj z{q#f_ttY`G{8pf+NSe<@YEq%UR96~whHUnR+zK3x_84un8~A;^v+0jiyL~Ih1nMZszLcfMz>+rn4qug|V;&+X(x<#mjo)MvrbY}?YK3emCMQNTLwfPPFMyL57u*1ZfeAKA_o=P!dGYZg<`i~uP|DOiu4|`gjQq@hOv4+j_Xu+3F-(6&yw23j|;#}NVY)dBwU8%y3r5$@(_ce zJvEvuQsa(*Sf`#zKV#-}bS?$vkS6yZfS(vlL+eEK@64H6f8raLV!7L|F92O%h!md- zG5R8i(-*t5105IsE9ZVwBHt(}VD#g$Q34JVS||y4NCX zkd2YCJK^}BF1+aq*^AEJ^K?Yd?uIG&`gvN;Q5cGb*SkmHmpbS{si)zW0-Tm7a&j9O zpzT`^v4!Du0F5-prq!SLt)GDKEA|1~g#>g(Pouw-wgK`TIl?u_uT|jHSL2Lb10D6X z&{e+}dg_-#AAKG4$M;BmJ&f0{fI@wPyJ~iYj{G+EGQ#%4*swtX)17W5&`-j(TJ-ml zlMz(~>o+%B^lc!Veni*-av?3n_|EhO5&mDMt4A{31AD321)#0LLH$<>Dzx?Mfw}bq|H&7l%9KlneArMhsdN)kV&5+lm3KE z`V5)$IWp;sHkf2n+7^?xv|>_@W38QnNk1Z!enKYwj7&Pw29v__(tal0heU1V;cI^5 zoXeO?`q7`3g2CFL0-WVJ91G1<2cZ< z6N^`%wHt-DJ}cZUlabdvbF#9!YEKlMF~Km7npK>X>5 zKe286_aXkRi2r`X{{Z6O)&_o?6Os5I<&QbLXj7dtz#II>$Ri!P6Hz9iy}}Ay1xV_! z)GjUz9HMy36Q3iUgL4kiwhb=czdy*5=jR*>96EnLODT{c4>^Z6Lt<`DiWtzqQs>Dy zhrh9D@>4*53N-svf8zGsqhO#_&|z9mleWD8MGlNTAdJ0W7!43-?1u#70M76yAj3F_ zg7*~kG!EfRKMZ}0BQU^t250-TFx+?!MjA&U-#7+E#tU#RzLyv;L8AIoQP+-24+gi)qR8N@a?BgP%9LC1MC8)zcLB=M)Mf`ETQ!;iJ z-`(`_b-T+0o}rrYN$=hPlUq`LwgGJDRo)X4sdCW^MwL5cm$$ zEuxuuDr(7p=V|_<5bsmb@yQ9uTL3$mPo+#F>)1qzymoJ(+h=@@y!{3z)3?aiAEB%9 z6Y}+E7-*buO=QF>Hv{R-1)^qfOKO&OEDYvGD%I-$bgEcvAz9sY9%3K#FOC&$J>mZMw_EbZ5p9vW8a3oJnE=+#H1nXlIRdiHk*>x~KyPW9+@I+{ z_s|`0$?tkgeuwt{{7L?ldpFKDb9(1S{wM@8iWGnRLDp&he%86rAK1sz10>j4Ekf1J z=}6iPByA>+%Pb_T2)decA{K$(F6(+b=&8(J1QH-kGO@}0u}jv-1C&GDxzfp*eaQ%3 zYj!zNr>hC_CZF7kM(1W{`05_*j2(qypLztItb<_`-}NNzIPZl+#~?P4N4k}ckdtLm zo^FSX2V}@Nojf$KE<35w%sj0TX65O!RFfBZ&=4GI&tZv@pi1v*pie{JiZ(ycyTS(p zdq+h2Sg91*9a-cv5BoGyQuo7yZ~*A~-$D7dN4^@TE0_yV5*MP#p9_iRBIsx?hAguf z{N@tqYnH%JvlK>~%V46p9P-UFm}#znbIfvBVpc%8Sp^~ULRe!~!%gNYxZPY0_n2$o ze)A%D(7Xg5H!p<-a~&MO^fQ=#*<3G&>@HNK`KSP&mS+!z&ZQdzRdFAFM4o$|1Ift8mIrAkYU~hJrqZ0gjMFlD5pE%a`Q2`&U_p;nmgf6a~I0%Zg{}lgRz09)?%U zr{TEyEd0@Y4n8xVhi}Xm;lJif@RRvlW|^(Kpv(X{3%YH&#PcCB| z)15gI53j&^{3y;53y#BFevEt2vHT-U<1e76=Y`K;0)G*q#K1Q&oWF!^V_5?FdN!0S zXD-FFLAaRFT(aO0+$QIe2^--E|E)YLyc3?_FUzw+lz#U}rYbzEFy+iDOxd%FQrAlZ z08{)Gxfgml{KM{t8?j(h9B?UqA1UVa?<6^^#O;yynOp_jF>)IvPfcRI=p14?nm#QT z@6S+^eU6gy1xm=5C?S7w4ZI9oE$@)WO>`qEtS7QvJ(2C|iERG59Ww`=9X-M6ACht` zXYN?eRsOvYpC^#AxExZ@Z*GH*^)OK;kHP2+N*t%lAus@wEL$2Ly)yMJ5bG=@nD3Ao zuZ0U_1)Ksq?XGvGt{(-{Pm>}(vZoVCCz(HhX8s74`4i5GpCQ#^(97cBw^SHlX)xF_ zV60`q1j`FWRxHf5;$gm(1WT-BSZ1ZdN-HfQa?c%Ma7P&25r!&<9~xZX^5b`5erT_g zJ%ZD9FLJ^{OQScsEEz*Yrq~Q=nG~g#iApUtQ{N0Gb(ZhPHD3nw9s`Rm>+WVdWpHnb zmLeKi&JaBu+lz*LkoarcA`e=@N1Xd&IE7KR-`< z#_j{{6mCMx`6(8Vm+ba2d>nGRQP0k!ei`om-_QEwdFo-Xq}i@fhc#Ga zjlNVPiMnVopZ4rd)YA0y5Y~6eUhqh4`&cgau^&YjAwVu$-RiGd)DVYoQVwm9ge(ekGw`?)xl269Fjrlk}PbJV*D?Lc%B?A z`XRakoBC3u-ez_@;gGe9NV3iFXtjgo>a+FW$-~il))#Y_?WA8lLQVe_+sBWiUTa_n z<@-rKfZlu{e^b7X^LOR@bLDJp)?_$j<-<{H3cP4dg;%X<@TOG&Z(D`%zBL{G zWX*sttazW$#$mv5&0l z*%#Ig>~GeM>|5(*_Jj2+F05O)$GV*-Sij~StUGw7btms>-NggeCO*)*myff4!>3!D z`MK5>zQnqZms{KUjn+f_7VBYtm-PtWYCXyyvL55Rt;hKRYbQT!?c&c{d-$u?UVhx# z$KSX1^N+1Y{<(F4e`P(vzqJnXAFL-8#d=DytV2qyby!KVo>qof&nd&Lqsl1jm@>(f zyyzI`1>_@{ zfSlhDkoMOHHfQPJ9HSCe?-T(zVi(MroHyo3-&FIn4Mz+@`mjG%3^+6aVxdQ8>|uB? zLH2W4RJbuEOe6m6d{IM**Y&c}W8}or{=3p}?)u;J>Mn`3PN1wyp|v*XbL9{yO``Jv z$-G$sT)L1g8o4U|8}us4Yi6HH=@j;M1(SKi2#DiT|1>Wsoopd#JEX{=`^kdGY3wcy zyPg>K{&i6{hL;X8O1??K+)*YG0dBX}UvXMxvuowZYuty5D>08sEl5d}k5_46XgS3* zR4iegAEsMfIsdUE7g=O=I;*>nu6^XM=_l?zw)j0x<|eSsuR7`r*AqO+&L_hN?yzyVHuGh@1PZp=k!y4+R6zKWYa2jTxb_ zg^AzR2z!ACZa+B#AlMRr*<^4JGOidMN11S79AnSRLs>tHC8&>iNo6+(xKD|FMhkvM z3(sZ(QD%q7o}|I?^1j6Gr-2CbfHSNy;}3b5_L59Xr~XX?Z{QKFU15eC^bl&b|O_D{Sp$QrKf~(mj8@+d{KM1L#TNj znbh!q7^yIbrt}}(Enqs$?av8l#?Vw90L-S10Hl2f&HsvQ7~6{7fmZzGm2r8UrB57u z9d#F~UYwr>8euWQzDKa4-Qzqgn#%w7=$&QvN^ez_SeE8J`nep@w@(@1E=Nh?6&Sm# z0i(k+E>AU{+hPWO;5nwiq}IQh4U@W47KEJ*YtT&&CdJE&bi0u6oD49@X1!E>P?U(L z2BECRmSvH}R3~XG5THYoTogDp>lz2ZqMfc-k@W+`jUxx)bj+ENV|Nt+#a(3qKXk1*GGyRM5vV*;JU?!S8miqOkCv+6|4^yTS>L%tVp9r|eMkMhY{XWHX}UCg}&xo zys%{pi~nXe?8)?r|Hb!<2-d2u-jhuX-uOlB-aU#<=r2!;c=)pZ`?hW25zLW$u3Gea zUjdfi)Vw_c!ifgAV{~o984&^O$|}4yTym7n1FB7SN34$v$3A-=TNm!(;}(<^(cW@I z)`j`d*Zz<0wbd#@fB#{8{e5h-0|I?itOY>~GBPHL325uz9L|`A65KNJ>&6e{eCF7+ zr)`K_p3V8m9zd@ir<=jGKc|AD9QC&PMW=_qs4Z}I=2&`P;PGEAwy$pn_ovc~fvIa( zk*{h&`RGbR5vn+u+KAMKWYq5y%GVDqLf>gA+ixts5*Ma6F!*PWJiuDbAgRX1i5Ks% zs78nTu2#VTJRJ_eYoJCvUIyhQ#CrmTy`*iu20uf~rmFe&`CA8SoThXgDT8iJNqo@$mf{pa{eK$P801qg$euKgbiF-YF7xUSfW~lkwpI@Wl z$5;~V{MR-F#!5$TPYo8d2*AA4;$cNj7OK<@G`hNU@cAHC!1lqT(NubgYpxu6eOu=WwB^d@dgwGm@oQev)_-z z$O9=2`Oi8a_w4&fhci|Am(WoE-0?$H3lIA8I<8Q^-~s-Q5|~#4ovvtmi0KVa^*uRz zPY>Gxd(-3{fn`m%6F{YWtATH&9^Tk$hR*f^}jLpGcj^;G!ZuV z_D*&D-@d6)N?KOmzNw$Zk{zS%mYP~ky5-Fl86x&o&&i6h`hsEX&G&;PqnEX5Oj${* zlC_^y;PgAcr}tt|rmb(0P?g$ionEFmx4+}v@9_zxm`7R9s0A9o= zULO7HQ0+yVZK!O9N@uy}*wBbG79OfvHo#o>!W;oZC9CP=q)~_?xfB>+v3g-|ai@`d z0{Mz^_qaZ_!pOF8J*KbzVmuQVt`D{<_=F<+C@^-@)^zTg<&7d~FOQotCd%6mATa>? zlS`Y@;M6NoVHA!9U|GN!H+{Ah9!85@5hu;sg4SoxamFCzC{B5y@jNt=r~Ctbv|(jT z`f6GX52=jM1Qhj;@ClWAw)An_UCCa~nYu~a!iki@o5r32b1%jzFpn~ba@~aic`qFf z+&X4?LLOTd3}EPGmDyUyKf^YAEnh5_%jkJAwHej>A}iiq$zYfgJ>txi$3d;`GbVye+J>iCyg`CX2c%+AoA88| zc1AB)?wC}Qx2Q|_eF;#bUv;Jato;neqKFn{=a4p(tNzv+Xu@$=v$K}E3q3idYT*O? z7BW{-_H6#6n<<*!sOef0@L<>-kOAHvtyPMCG(-LSjmqy|97X?uoCzrJp26?HD}AW{ zK604;!#`BT=G#OZ&6f^(wYIX8R9>)32^Ix}rBRg@Tp>((7HAPD;C(ezs_Q88<1B|i2e=iw0v5WnV5Ea9 zzO`VaGP)ymo-yWW!B!CP#0LVwccVnR`W5pc~wbWTM*vX!ImMHV9G!O-lf)r8F`(B(*~4!lJ{m_j5UpYR^PKv=!9klWSXT-C7-OHc1=Y>AfDF) zfkmP(C;4KD$1`W&y&IZtdl_>_rzs$hC)=e2O6v|LY0Ntm@_YXA|LHr3E>TQ2)u*%V zLs8}5U%0WpKgAcjdKbD_)E|Nu@Hxa{u{3&KAKk0ZyOwq_<{SRrCY5JpA$`@4g4OPh zBVLq%D#_NLCPzObrpMQ4Oj*m@Qb{}vck4RK3i^tvZa3Ar8-4lq7;rI?Pm|fM(TJ91 z#|B@pNOzxIh4hdkcN#Kx^g!2ngFW+-<7KBgnYnY-MNA~e2sO7Eu1Jtnl1ytw47~~gTW$!2!G11(hibAp0 ztHCpOP|It*VTz{2j2>iB^5scq^x4IGqp&h6u8J_3k3d`7rj42~YS&B3z4e6QW6ca- z7@s$+O=zsVQz=kh5|#VU0KV_{=(B$8TzFN6JM3K1LHgA~KjE>;``;0;UXhlsp)B5m zT;A~lwTTW4PGcCYz}*@Uo^WiJJ+d-w?F=(#=2Jx?ScJ~7p7y1UBHD!$7aNP)Dn^Sb zI|MZn3786*cab*-s_cFKY$Z+fu1A8w#isbb4!&Te`hU{@XR^RQssW46c2~mpJyQAY z%l+TIN0|Rv4Wbluq;S8}i;UQ8wOdq_Dw>*o<^M<$)*};A3&BIc)X^3`@68)CRsP(M zoR9^1H4FL-d@LJ;^z-L0cXyi zhn(=5ByO8gES?U-364LK0<^`kUu^8R5-z_RW1(_<>Q=tLvWHK|SkFpHjQ+%*mXXf1 zlMT`+^_z8cGE)~xbLr$}-XqMr3&C>jig20M4pl|#Yai0n?Ewbrm5bb*)Uz9fqfc9D zXxV|xI!QQ}l6^DTBs@eK*@`dY2cb&BMJ7~ldO>PS=Q31}lokt3pyb9{hxjy+m z3-5WzYo=p`;&VA`zF|*{OSJ?>I0ljMmCWAWs(x^HF;e>KUhS44h|?o7{MEEqgxa2z zFvEeG9|!*F`$8i$>uVNlvm)VmW)uk@N-Slb?JCEKGqTNj?0@zI}e4{_nH> z`aML9`F*b5-yGrJ`K|veM^O6bA8P|ACuutaV-rV78++@2o_CRwjNNw!LVaR~0OhzfqCyGe6y>h_Mu+6uot4?OGBn$FFb*JoP&(1Q8N%Kep^0jx zM7FYlP}&-|?TOAb_JWU_yEkZm@lunx{tFtKjoEQi2sh@|;n=OX?noTCqKii>-vRuX zH=mM|8wP90PIBcg?_Pb@-`V==wo-bXSn%ya7kAa-Bfq%q+uVAS7LK6JMQe;l+;FT4J1!P7DF;i z!j8H~%}6ho)oSJm?JnT4_mspI zSt^7y%0!zOfhZKc-lEzq=oBybS5tCj77vHmUYQD|=CA}t6}_u}J-p(a8yiVWKnd2Pj!SL` z85>DRn{RNCh=fO_H#>K&QCJyE>Qu#Z6k(ccj#aVe3eYERF`&V;N!utXW%k24zvk&Z z!)AR(Hczi6*{mi<@i}wN*O^UoUU_UkbuJ&BpW1!B&c6XY?zKl?WWwGVRD>A{4gMUV zNL5A_krgG-Q`s505aK=ErJ|tXs1f>JX48|mR}e)lM$=ZjW<{@ZSBCM?LFvic$$;rD z%Eyl>TZtS#RM=Lv*ARsyL%R>U#z)^CM5XEuB}eBeGVEa4vEcb>Ha)ibba)O4<4a-U zSGY3_lZ|RFrEWS~7s4c##}Ln~n9R(RHVtJCSgkyCH?AP6E!t_oPK%s&Fdu80&>ll6 z<#dt|VC=$oWQ&rT^Et#Fa{Xnd3kH zfL?%K(OAbvD~%En2L}<(c9Qw&y5yP5!D-7`5_tnhS@o0imCKT&Svw^R_$gCn+pgwR zq<-8Sx)Wa`M$hrrF;$N&$D;?gQBl=`;Cz$QDgaZ4nw~td(qt3b*;YC1Kyk8Y z2FhB8-x`Ft0gX7|A_qrg&1!B-i=Q?Xq%ZJ0k?_by1uW`<<}9txpbSSgJ*lfqhzOhY zDbom>ausd7ql5>??QHT;41J|j77~^v`KE3Wd`+!+McKD*^775Du|wdmUpVb~I@|;8 zz6lXZQrN1ltPULmaG!p-!EMx0M0GFQHXJu*!UQD#a4MIs^PMRBF4I&(J=i&ogLk+M zhgLUbCA!zJTB7YNF%0W#hsJnR79Zyit3?Kx3i*}Q_4SU<6>7{pU}hyD$wm5=H=DGS zWXBq>LN0hj18D%kz4=NEANaJDJ1{@7h$?bRmKQkDp|0|Ed`QZT(yKh9IF8}*;x+TT zcCLY_A|`3)L#hdn;{ZkGPaOdLb%ek$L|f9U@2G59{~XoFDtVTNisvmg=UY=Rz6waB zz%+~$vvudniS?M_G>2+LS8@lDmyx6Z!0uYhW8{iuU{{C@YmfBIvEva%w z^YLr7M3S4TjqV;m2YsbNxt0k=>Y#fh#9#enEncwQ%cmp-r91A)Ch5I+3#ov~7!7tH zZL(tiFD8F*iwKpi#7nWt)U{#$(6>P6jC)0aX@b1IdY>OKo?4nz6Ykq7)!^HgqR|B5 z&8|X(y7GZ@;6MoRAO=LC+AlrNfAa4{v=0>y?;;#kxX;oYYW-@+eq<)GIvocUp}$OHS>s8QbEtF(wGj@KeW>)KayY2N9ta8w8dE!z!N0>t zl+|D%FRoGUFH+d@TFGgAe2$U_JrheMqHQTJz11f46Psy_IIVPVf>BkQ!#O-B-vC83r(HZVSNS2q(E8z%TX=;%MkP(j$QNg=y(`JxDCeB9v?)U`7QIGzl7rCR z9qXstJ)Y(ze5pyG>DHd|-09}62um4$6?(Yf#aIhTozXI{xHeja)KuTC$dYnLyG-vi z_f4g%&31Z0aPI?G+bx5txw=j1FW>ikAtQPQ?evFD*tbm3Wmyl<$vqK-C`21L&!%y= z65NaR+&(cT>hA#D|DasWj9R_hc1LU7h>!J%UuxV=C;+??HTAE*_KJ#P^3HaST;naO zix${24eG5*3sRuJm_FJ=xd?~UIAEP@_3_LR>VPnOx>x^zuAkvps)`@UIu>+IT9ajI3Xr2Ef4^=5o+o1?z`GCSo z8Q8?-%TzQiCZhBOtm@$0U(SAsqK3~37pQ$v?6Ygh z(n7KDPCQLc`CeUg+HL(KRYwkZ;l>z&i%q4qq~8bqmqnrcRIiArxQe*UFvf2O!w%75 zSDlVS$B>8O`*l?{U$jO;{8e(-o##D{MjSwV2^=;!H1`kpbuPmdtk9LHIiv(dtaUp` zxId6GDkg2s%gted+{EZ4=mriMc}&SM+`M{0ggA4sJ}2!PYPDwlsJl)faz)tosG_oY z7C{lW1izPJLl=gFi?5$EbXx{Lp3Jf)SxK8brXPbn3Fs_;v4S4s>3R@6;a1~=WvW`v zS5PjMA>v#)g&O!-V=D7rh0aq@$8hDO&YMw48=6UgMe~rEoan6H;eRSpq)B1AbrsDl zlwfA>j|sS6Ec2X?2;(OQ*et*sJ8TNzV1q(bW2X)W2H+7KyPNMI6C@~@9wP}qc9MlG zel-W?@jO6c{ar*~!!$4xceUANe5cYm-!qvu#n957Yb%K6(Nzr5&8Vfk&7PaOexd4g zGg%i8@b#c7(WihE{FsCP&u+_7M_M4qc$}GGF62POKSq& z`&-ZEZ|W<)XBE^Y$S8@mgT_vYGwTg5#j=pp9lS0)v}vNF3|^zl7GgB>c&O`OXae z4F?27|35+EKM7%#s+1F&3fkvoA$b-HJ^?VuPbk#DSU7A5xO_6?C}@2NAQuLtUh$HW zH0Sbp-o^Po{kA3;S}CdVVB3v)hXBo_Qp&+3<+d9_4c{kOGgApu3B|*|k3N~hZrx7P zZ68lPJs-e3EPvsgcNMuG4TXja12DAb9NOU3;7A-6do$dn5bVZ@=|im`Ot#|yiFnm# ztp@s#wxfeK_*c!lyr5aF<@-MPgiwtbUHU_}V6xH>28`^4-Upu9Nf`~7nkL-NQVMie zE3kREo4D}r6mUG#(4nPl=dZTTvbjYqcE1F0;bEeCqa~N!s%a*sId)mChW2HTjPUE44629v^K+&E6_iy0Hq1)-ymt!0Osv>fK~jxUhJOaMM;@vFN4~fqw<@Ni)oz0(IM$#jyl7HewDoSg5OAteDratf2KdPA5obFZi?T99dnpiY!u>gz)ksW6HPPD9pAEnL z<&$(Afqf{b&pzKdR3&Y?MfX_Avd4mxV$R@5Kx;O191QCMp)zx5ysch>jNw!z z7^n0Y7+@^ap5YJ53?NtQ4v_NbL4mp#*(94vPtF=)JuzpsZ^(QZ0EQl`N z8DkfZH}nOnNlbH4P0i4v;r)8B!HMggYVyEX(b8Lcp>Y1l_e4VA{UBhPwq{uzjQcyS zRwYb>V7S!L(7=-a90+6^(QZT?7N^8oy6OkH#MHM@+%T18ov(L<^e zn=%xe)VInur9pv*XrHv7;s!H1!88z)Nn#&sRI!E!Xuz9{079UAU`yx3qb5`)_kTo1 zK}b2sHO|E1u;NMk6j#g;f}u3a(Jf3Z@%Te zhFznZx6t}RStIAbQmc=doz2ncZx#gE&f={Db7DxFER2^r##&HZ15gDSv3x(X4v`yO zFgxx&3c3Z)^O2;`o84UI_$DWX?74UAfx7n!pB${r9C<=m0{rz6HNcq%1l)Y6Nd=~X zOYJY~?Kz$$l+40cmLuU>`PYiH|Ir=2+?m$`BEz9;e?;zVKeQqkA&iTAmj^1LU zUAH8LzsstMvxT*VvxSM%{~7-%TG`Drpz&T(TVSZOH{TG{ zFs;EMhdd9Zrjn5nqo*pbxUn}e$(1p4+7{hb2<(yaU4uR=gq^WS6jjZj3_kL9A9XwW zeth1b_98T&mF^XX;;`{<^xMQta3frDwI1b;?nJxKDSH!PsdATi4*-HHIL>isRo)}> znyHgmyx`8NUd|pFg%61?P(9jyCb=`?-3R#&dr1<|MY%hE=Y6>Xt4@SZVD;|wDE>PB z9b}gFErF6RI&etvkC5!de1gj z$|4~!ua9B79H!U)Q@qb zv(CEZ6q3w8x-kBdTyVEu8NniYx0b$L&p6IJBC8*uEMW!S$^Fh_T!#hx{mL*f&teA# z{GyR|%fx2nm^(?EF`cMwl7Rp7DcWWt%A~SOf&xGh{lGR=b-Em`Sx?3`fh6#ZLAt@$MHMbiuo%&Nf+xYr-!pS~W3$gI&606gJ_< zh6yp1vvlAffEV!`fQ*Pe)J1V{nNYI00#|1wXEFl%?UvglamNuDThc`m1yEp0`gJoy zHkPmK%VeM@vag&zO&Fy-ClTk;Tw3nPwFGzO`_x%nX%E9+7>*nl7w(%C*}Aaae0eFo zdj(lyOx`-1Quo(1Q&C0y4+5;ip$HZ7pIu!7pQHTFj>P^8@_iN*yP^wkm%KPLHZYmX zsA%PQN&Ftvza-dPEBDt>F}w@2*E{`gGffif0GKtnzC-fCne?kjgNv^!#^)57-dYq` z=521kxSzz~9-+!(Rd%|QG!J>-k^}>SdWDIZP(9uJ(OyIna+YqM2t9FM!j*m>Vq*7P zRZvBvCYimzRio$2swnDsElQyU26D4`OS9)S{5jkqz0>;^T#xUR-39WOXCET0FDr+z zNj6VLrzS~_KI>C^K*ozNY>U%9!lfZ4eSBPv&*^`i4{o>K3UGcm5H{bc@&Bm4{O_@V z()u@Cka#mPP?uv9n*$Unnb&WQMKTvC7T9adjS1i{F#Q61AoiC1w+jH5srZL^{x##IjSu#d&Gx0P=%i zP|ngQp*xvp(g?UxIij-2j#{QA*eNKxq$E^g7LnmBieCSrM#3jw2S)UD8X3|(N)Zp4 zHzRfUM?N%pC~7dT=FecMhiQHOSOVgC%lDu@zJBw_SYEDKW}_|K@;#eM4Zdh8mZQ?* zKaEC3_=QS>+tGXE?)N%#HG*Z?I zrz7}F6s$#Mqc0ysxK9V&!5EFEOnoRK&^=eA9g2^Y$b>&G~a83Zb&K3oFH*!xahX)}R zpoK06w)hlKD@xRwV}eCF7BGDwPP-7QEjjyTe3@18#hBhI9S?1EOA!+^mrtSvAHaV|ZAk`DdCzqe}RxfpFCB zSiBJgdW?`N_sU2r9aNO$qL2c23`d0sFigJt*aQ9BnmKhqi?R> zoA{5hFV$$|56%rZqa(lr2F6IVQm_Pt9erKZ>Sy}D2EP9T{W;mM+D+fRvobso5c$7B zzrBf(g@LuAiRnLKpQUOgho<%&Jm#ivkOeLxs$hAescze(ShWXlKdaKd6G)-ifgj?4 z&E3&3HTA>1smg|*rHt`IpPo!6ouy22A2LIEFg>x5&~gs(1N;N>1JNdjxuFu)F#*wO z%Io`s@bbuh%H;I>d^@uPa^0OL`gW>}M)DMKl4cqH9kv%_E}NXk9@c_PEvyIhAqeI` z6~+Mpf(7SzXi;Zwjy|MTq4Jx``@14u}O>MPrjq*-4_M zAtZ?ppO;FIiE}Lp z=GRa6ZT%eiUno>CV^i)VY!r=r&_&UfKjMrh~BI3r9)^nyHRDmoLG8o`J_&06UMOqMc13}P*2*DAVwK@7 zOV4s;O4+kE7Mf>9kjt=7fbs7NjtrueN{(Nd$=_i*2dam`J3x#4iP?(|j+&}$kG||) zsI+Qa!B&eM!V8oeVo~eO+G2Vtu<#?j-VW_Pp{p1KMB_ET!}xA5twCA6fwvRYvAIAYCwI zB{@lsw|F2rOu8l4B)2QRrx4F>Ew)=hq+SSXA^aSqny@2aHYKeX+Ta`2=oa*-7N^bv z^Uef9dP}vxIv0|$i3aRzciCUXG6t*|w&_BW zm51148R;eRT$|eX?m_i--x^fh)wfvh(#B4MEPO~A2$+niv*gl#gc{RHe0>^`L&mYy zAXn14$whLaR;}Y5@J75da0gT2h|mF??NO0WWh?3!9!zOg!J z$++Y5WdbhqCW4TYCnct@DrN~jJ>e|OG|+%cn7VWJ1S zkX*+quC*_rsMK=mhxubiR%tra^f!Pg-1#FQI{Cw~iiXTjq|~!YoiW&DzCZn)m&(e7 z{q-Y|g}4U8vFiQ2r{|Wsd|)Y=y!2+5KWheWY)G+iwlm>F0u(0mq; zv=EmxJ>Qr(RQa$G&$LmL#7;G)Uv@S8)8Sii7`1kVUTv~%-K`xavZB(pvJz3D73ZVX z)!WfpkMNt`>?ga_%9ZOA{>Ojm*8a@ad&zwBp7wA0{qF|o9=1m2j&`;do+gg}to`3> zopPvxSiB8t=G1Ppo&i4si_mblp;)89ep}2*ApK_Cs@GvR$uMbIwMBnH`~>m?u1PnC z<101a`^`V*Zo00Fx;B&YGUe^`cjBcx?YmzaR|9H^mD9&^0$}yCqTWfCw$hQql3^q; z*aJkC2I2+sUxr#*%3X$|!N{mw&XQEFX?j%6k0L;ZY?j>$;(HC7QG%NKeeI7uvsGdj zit*c{N^4OeD^58Fi*$f(e!8DPMXG9Vw{5T0aP11Wkv)K}-?~=KB;Cm>{(0Oe?iJE= zz}bKW-R5-`T2uIKsiW@;L=95$n}bisNgFiE6U6R~${Nh~0Pov!Tb3i^wlMUMZc5$? zBuH8V5A?ANw|Q+_vGry0d8%nJYqLlFu%vckjem>*xp{DN!^xNz_E*mh`(ZJfB1ei4 zh-5$-9|l3NYQb(06<*eRyTfIKu$jk-SscXR==gKP?zPK%ye|{LM+-Z zRvjp56R&$Dr*{az`%mj)nqUc1QxiOK4r<042AsCTX(Ylhv`9zkfmNB~)=eL)`Zhvr`0N{45_qI(baS@$6&rE$hzk{Vs%l*HGbUwkJI zQrUWL{CO_*v+~a>UAnAXL2!mkSRNxIkF-6Iap~%8agK55_J7RP?K08Lwxbk`i&#ch z?@%QT)kR<@7bI}v=ES|g{-=WQkC~F-<>8FWHzpUpG5K$}xU!v0m2&LK2Xk0JmTu5Fkj7bbx zaQNN|B9C-&n0^q?kR2V|^GtJ2xA8trZxi+a)9gy(q1aZa_vS|?MsiaP)ecPRfbUb0 zUO5cZ2U=XJp^>!p)aZx2K{63ANxZ(A1`{hhuGx&kTjp?M{BFK%Pu6ptuw6c7I&hx0 zLtop%Tz8o0Z*DVk&FJ2QhGD%*IGjS1{{sh@zPEgN=x}r~DyY{m3hQRdRvTY9Hn9;l zi#=+|KDDEQ5dOUI7#nhxE*T!AF|I%Q@yq0jH;Scvy}D`Dik+s%lnw9o$DfErM7Rp< zEKEv{;&m#l0K1MV!$%%oGUpl#F0Ep_yEy}&QPy>g=?}GxV#?KO{7NPgIrFaU%^$AU zv&9zsA)Ahqxkulr_aWqoiu2H;MZmU$7fn)T%bmY|CA*WtShPmJ%tRXf00ClfgOCKDg2q3ZP=ycjp{! zJij+4ehhw~&DRyPa!Kio&ED#|ftIQzA4}|2S}2@wUGj*k=pz(;F1#wN4OUJP7zEW= z3Kb&CfP&gr`u-^?jerhbe1n9%Cj;?!3fd%=@?G=6gII|y8TC9G>v2b5hEp1 z<6jDWL)wRbX(s;xVDztfsFd%GBugS7pdbJLbo&1T@IOK8vjXXkCQ1l#{c=TP43!5j zDp2^F1zN_lLz`{1?~raoN9adCwh&YRnuHLf0x~)>61oC%Z2k(qsAz;ffbMb2>#A$_ zY3dRm`^JMW=i7^Ta_VAgYGR6x$HV%IcxXkS!iH+yhE=jDU2_twL#eg{yhFU!C-4IE zJXb#y%uAs5`$wc!9NbI0mK@wmv$i0RmwW{_u#04cI&M5FgA1Z9zj`O>h(Z0c}A_o>1@u>;aQSV1`Ig7z`erMSDg+%xbC z4CjPgEwD|pV+27rn6;nB1cF}R7pTqxGarEnu%7ZWfWT-dPw5%dz-*NJ$XqjUUixEE zL3&tEm6@}^EwuaQTsQD8`eR{1LfBX3nWI1^a39KJE5U8pSB;sNKwtEGuZTsSq>FmZ zLUpD=%QVBLA4@BGIvN_9DwtY4Es5%yx#i`JLwX9@T3VV?G%mI>oCu4FmNVD`>CY7v zmS+(ar!W!Je^VT3h?A|+uhph0WPT`Xm-)^0hKuwgzq9my_4y67qE0z}!JTfS)TwF& zNU&f`Q$%on+83k71e0?S`%L^;8i5|n961o6fjrFJr?z+2AUqhr5zAEf9k8)PZD;`0 z)zYyGaK;`=&mD%?avmHz!qg>}qQbs7>KLxFjzA6cBS(pG;L0CUE+)_?mMx~H9%j+P zlU`}d$ioadmzB}AxlGEBxt^t;#cM5txZy;$<0n&ybs9?DQ}HVdJv-?Yd*v-rh}|(e z*TF}$y<9?N1sR&=3Sh3EuGOwL<45GxdNn=j+M#k`L*Di)=$z-SbF8+zM`&eM{=sL2 zOOs`wN12*G57HZsxMiT!%yM8@4<|)*?Quah7;aBXg}O}Y9gMjWfl^!MWTVKma{)?eTi z+e8|UTrGn}=ihV~l#4!^}0tLQ z#>gI0m%ByI=%Lear+%XYD>VE*JK238{I8dk8xO<)uO7qBTBuS8Ga1LHdj1bUhUWV~ zmqQPGlccF9ETtr*nJ{B^rVYfG(AAMJe}^4cn(`q+Z&mXwi?k z+(>1YTx`pbe(oV2{e5MLU@+-6XNkR##cp0>k-OPnUqIWC^U*PE;kwgH3YW2>8v3D- zw&GX3xJ=TV&0))5VW8vZrH(_CTERAEc)Ha6oc+`CewW@E>ztNM{w$X^ zc0*R`^#jLcb=p4ck)kt-)^9r7UZT9sLhoTOS9*Xu&fCZ#2kNoA)fvn^2S&8ldT#Z~ zv5IlX9doB-H;S2T?>_~j4t7J6q*NfO}8Q7mEHm|;!k?-f$cKjU(lMe)ea-@?NuMdSemHXQY-1eab;}v6P z*RnfZo|wmr=f0(^u*qskA%E3m>8rxgnD6RpUpF4{E?)gSSHFS44P zBrQsfQBy_Cn_<#ZRMVDG=4ho5RAeh@1}`V-1k3RmR(XMYLO$%?N9>i?-<#uiLyX(E z3TD}cZY}O|Gpph|;+7;W?{U|Ai%oEw?zgNwpQBs}Gimbn6c@5oXg~c}w3*Y(;fVSy zHlkELW2uM=uIZ9}z=Ty+PE1Bu6FG}G`;{e1TI6&#R#7pt(XXZ)`nBxS>3TYilFirA z2qx!R^Y!%S^6S;o)^`uyND<>0@!(pT_s180%ocbhY)8Pw(ECRJ8ga`W^DEnkVM{~v zc{FO}=b`Jltn0GFRlpTnWz4qGv#xv1?%R$JxqHtp=(Ql=2@ncL7(&SKPV^qT8@ekF zM;JiJ`i}M9x=X%84$lwHZ}W`(T)Jzvdj!Xi*rWd}`b-L-2h?EsqWex>pIzgIYzJ*K zy|cYX@4D?i!Sx{e=|2lU{{#>MaK~}?RKx={1CtNpT(ca z0sMd-tWWgM$?L0Y!jP|^FQ#{P?}=;vS3AOoA-&zTIFnRB^DczFFo3d_VFOB*bpuP5 zc>~PWvK4z{!yZ;0#}>MUX#>aB=$WLoYS-1?3qTIQhsyzRW7&Ydv~GpnShQzv?bs!- zmjjgacfmb{ykT9!J~4aaY;43}aY$Ue&*o+?xTf2W!XJiN0m}%;ny(i+?Q( z=-4@f-v+v3^Zx0bu$!@~1-A{eZHjf})efi)jJg7Chut!Iwq1GVBl0GUz3~xvCLr2> z^M3?D!Vv~tv3o=DSw90m3jz@P5OICM_za&Fo*4l#068pQ6yLGy`D^BonEq)TUj*N+ zYuM{QA$oy&Z0|7d<-5x}%kVwGJr>Wj&o+Ro-YXnmMBnXe$m`G${y=`Vcj))B-RYfa zct2o2i)ZR*E5LT|HqIx)=hijibxep~pdZ^i?0d!T_Rco^7x0(GGrcMET+Yt(9pM7p z5VAK?Erib_6Aceb-8H0?$*bSb8TZ5@#1fAvn(;Y5N(ls6 zWDBQy{7c)&ufvq1ge8#%+Jp_ujXfG)BYaw4%*-(B4(XF4sv;?F#LsKZGh_We$7kwZ zv0iaLBZ3DEw@8j)9(W!woDn=Rok5)uodKOuouS@g-htlH-of5~-u>Sr-$UNR@tnS@ z(j9Om1r_7SB%BIK=O8RXodvjvb>avl=nLuR2(iQ91Ve~_#xah#55yP~1CxXW#X-f# zp#4yawUA(B0;Lo-{h2hPU5K&IsuY7g1{-TKVrUHRNKg;c2Bq=4QkacMjVL45DwcM{ zWkmJ>;(+Wx^#B3vZs1DrQuzB-MJ!~TcgOF7P}nR66+R+7#kBe9ZMf) z7kd?#6RQ`;AKNqQ#(ShL?$=6iIyaCz8hCU<n!vG{xawv>3l9*7aRUcZCoRF*K85YGW0hFmYRL0x@%j9YmhFS3sNt(Hb0wib@ zZK`7=09qycwD^f6ZjG@&fb4?9Hb8dCA%J8?#Xcz>jod9S{^vFIv4|wifpAfG?;noztLf)n}W|6d+f2d5-LgAJbzmc?=cPQ=T zdqp|_zM}2?xp#rNj-m*}(oV7U7p5d%b2Az1xpmj2=g z|L-M4R4HRt_y`(R-(5Vn?7}?!7B{TkGs}MAf@$+9%zJ@1zWc&{0!y9%ZSQI@zAr_Q z(UOb39S-zCoZh>!Amj}N>Si*2v_(GXA)oqO%)K2$dgmB^%a3wYq7VsR;>jBh^`e?S z>7_WzR2FKofZ+)wwb$lII#W=_4OnpfJ>-U%H8fMGk6Uu)$(eL3pWbI8N0B4Q5Z{;AEh`_lmF_;M6;`5 zMzA9t@j|OU>9T<2%|vt5GRIhL%CRG8^59_xx+8jW8{kOGCwX!gVoJg%aPlx>_Qxlj zc31RF;EP*pP$z%sL#aKrhu`95!x7RaX89i84Cgy=`C;Zv{_Bs`?#{f?2Y7qtx1`GL zjw#W1LiOQ@X@ZnvlGVbJGnAG=$-Hp~q?QF+35~PFx_L{Ul`~iS^!4A3E9u68YXH|3 zZsWwY@XChQ8CVD3RWtZ})DuGc7_JE02GJR+2h5gvOv#2N-9FDVZB2FRK75$cx zsA)`=jLSxlV+>EwbyLZlc1P-UgUKv!N95B+!_Z$R()bscr_! z1&dSWleGS0tO5irk>BCsMzJ+p6Kotrtu=Z%j8Xsk^(p`B7y17u)=+S?H`25EuW)0^ z1Kd?nc;%LZ$zj5p_0U+{*H94L4^#j#1r>+@B#hZl3|uW$9D;Wwf3<)0ycA%==l zxiEbK-!6lj$0irAtD`2gFD8c@>tuw_?HjkR6CZC^wwBkbpskgyIZ zOBTDBFb}Csll?5xZKM4y(rttNF4Aq2{ZCR}-TeT2F8Hx69_k8F!^hIi6K_Z!(uxtI z$G|}zio6oye~nlA?4<-DQMoUs}w&F~Kbl$rsm-CqNNE>30SQt$`MNAu6QinJ$Zl30XDcmx zC8MeqgQYezQgtA}C zJx44}9?3$y9SKVl#I>$bkyQ5bC0hZhJVRyqajUJ7k!`AGPxa3)qu?^S?487=?3^5p zYm=ShXo#JTGSNq zC}5`?&>hkp1p64pH|vWKsxgcWhRH+*Q(V@h2s2LsmIaHyCrzi)Wgib^g|QV26aW_G zND5RJ z1wzzP1OWd(hPZN=qM3-s&Q_)AwoXATk4Qx;U_?&wCD}eL%X8+xXkyPVKTpLdT2fpLXH z-+8|Ef8zpF7gUss1j+&xIv6^AH*AYI4XV zdnJH9r6uLy!?e7s_QzN$L4Q)X~*7NkC!=x`Iw;-il7C; zSOCGMdwfI<{UXkmLmG1XAWJTyj_?PP@#V22)ia3v%3c%?wCQf{Bo-En&~xs3EymMG z+bxErJ^6co;jx0vus;`y__U>!T7QW55BpK61`})R;bHWbG8+Aj`)q8A%EJy=v))u&U*KK)SZ0<={)+I;sZvxY}E4^afDT5=k<`_q`> z^W%iyQZb_!g&}cPA{5DSnpq=B&M1dchJ=gD{`o_UR|hF2NzWE|i3{x|`o{x>q!G^B zDP~XC%bFR5tq0NGi6+=NNu#eUib*MPN0)$1jIRs)icyXuw?!?>V^;Nw1kfgyYCekF zCjDb!rOqcfQ=VLxHI0g5KssQ=E^W5ahZiJIw&s_Km>PK5=fC+M0= z`z~dkR&bp89fJU-Al=iE51GkgO{EWKGx75{{8VB@DS5KvPVZ3oW55x4aG@VvXO|8b z#A8ONd43=~cbmd7CGaAIzc9m4M#Vr33uqX`21N>JB3nohjWt+}nu~ypH7E_6L77$L zb)88>*9uinrK4Z24-sy};i_<1ePRFgPRaYR^-04w#!Btlm#u-5Tob5ik=cQ=&jGi{ zCs>;(z_5-Ed|1|kpCpLa5m=HRbt^gjY1=c0!u|1BaJiyWuM7keFvOQ}Qc(&1=^NKf zgF;-$3k`uyVUF(8#%1-7VqV?DWrcc={l+(PTSXMB09iHV1iFd|2Pd2JwoSvXG_8S2 zK3X2t&CtLg9iJDog-NQzWetuZX(0nw3c5HqwXaqr6n-h~8+KcDO+L{>w*9rm{1rkE zfD@6YfL&Ip3_n&*LH2pYWsQ>(xE+gjFH5GB=P@H%k#0G%=57_bW(lR@Y4slrvVhbF zy-fwjEe@ATRwCdIp1ne#gtX}khD$;gH&i&hC1g#CX5xw`+$L}!Bxs_{5Gi25Ba@F6 zSB7<(kUjM?cH72F;oTK4J0dGgMvEJ@BQ49xhrN0=#U}0|oGO+rHIx*0PXa#~)pIaX z@(+MfzSI+~JHs_iI<~9K>{5S{B1N(ct~6$Z($3-v1;dR505$MjnzD`z9FIS?e?{pe zenqgClfGHvQr*$lXY{yuic3G>zY~OrjST4?4uF5Po=n|1ykk*IZ)FftO33x(;yxH`kL>gmSss3g%rp(xi5xou%+ zuC-E3#g@i_)a~`*Nc;$!qzc_~x37K>jN^3r)e&-Gs2WuXoy76H>fhcxC2m410|d)m zNyLB~9)IIGK8^}Pv_!dpIm_R8!~R94wwU;$WtHVQ!P3#WwSOnhwEk20$6Ur1XvYxz zd&gRvRDd5z|2gKdxxeEQU4cs`l3L&qnk3Iw5(?)t-%eaJG%QOnnWWA1w%of+V~Q|N zl6`KBPh+}-`C)#Wu^QqJ_mTt+QQk?11sZlbR1&PgvMmY=I@W9Ui4m{Lsw+tJP4D&_UC4FhACaXfF8;r z-+c#^OTj~7YehCqdCr(_Wp?69*-4dj1`?aQyU}&=dKH{^43kaG!gfhEJ~I1K_k>!A zJ^N$lN}fj!)3x`>tM7y7tQ+qkH-%W)T@2R+_a1kSw}A;mv{^eK>)|=c!Dbt%I!v@f_SkngxP=PH{(x zJ9lQ#S_D#*Pu(-tZz2@wf@u|Je&s#?ZsCRCya>ok$%Y30he$8Phb?kifS)@Pz}*D` zrAsOqq{i&diY@hx){m_U=8%Vd%+G=ie4)#083<}iY4+)v|A8cjYvce=H$Vj_Mk6oF z^Dop+^)D=L^)I{z;jihpXa><^<~bt2HfkYluA)M+SVGdeydFft)>Z*C>+jix4H-qp zBr}{glFhYYI~D}j`T4Gm-YWZXwlTnC{I%6WWcwi1Yl$+8p)1JDTuv)Tewlr4vJfA8i zY3VX7JA!I5S)R(iP~385bC$$qKxLp0iNk@ZA#6~tuV2hm%u7m2hC(Q^@h`lq`$hTP z!(m^yxrNKm8?xA`Q`alHDK!5&K9QZ_b!aU|HDakD5k`vUD*BOhl~ed!5cIWzzq)NyC?}^A3!tb(#7^;Xt?BNNI zO}rid++86{@2UQo-h|^xXnxneZPV9vhL(iMIlx61yJ3rq9M1ag4HBE8kEtsFl3Uw< zgslNgqdJ<0NmLuQc@mDZfsCY&&B?Y{BkKeh=O0fIP&90h%#j2opGOFL$G|r+gA!>P zCV+>>Xa;LM{*J`vx>Y<_hK3}v8!_m~IISczXcF3)H3MCQr^fUO!l*&Fd_38Vb_Ah|UBEEs{Q_PSCqPtPDND_{#zLr-Xy72}lJhh9J91 zn0_Gx*~2WPkw^(BRwa8&xz3Ul9HaV91xSa$LC1SsjGIHXgeSojYAB}_zoa6D)pSWTPz;c{p#{qumS&=$=&jo2tYnZT>bFV^v(c0j(_mTIEw4rM5S#B|RU}_$?c458oI>&N+TV5t^ zS$&|l^9FCV=HR!{26llN;CNAxcZm=KVuqw&gf@TYgp2Mm-C=st^7_&Zs@xX6Aa>77 zzNk+G+cfdsX0bwbuN3$DG;-V)G^2RWQ|_8rv3%rvf%KT~^xCY?+;&|1^Zm1Yk+^{e z|F`Gph8a^TBV0VgUri^Rr;=MND!XzqH|tXHgZQHT6nDI+(GCB?b^k|4uk;Pcb=ISw z&VWs0z+H@`FlRA2G(F5XNw2I|TnE;H?zFnZj?;mm!7$N^=rwGWYQP=26{S*Ja)OJ&Dx~s=XVw57c{u=T{)+xxD8K`jDeM@WB@wYhtHXESOMltF%)~LdU$crE9H}Mj| zj7n4?$>JRlqiCG<1MtE_F61x1iY>@a8MXw!H0|5x~y#w-;k|jeo;TBxx&jY%TBHPvQrzWR= z8gKzA5{$b;@RW%~3y*pq_1B-pFvfK0^MM%m)CBH9OoY`tpnS=~$5X_JGE86?^=le7x+UY^%G+N3F*hs% zV@5*n{^IA^13ADRf23F+Ae{$A5+Yk zI*lHH0TSh(5-FD|K8tvZsiuSG4|H410MdcPjJeGMrvI~udqYI{CJ9ZcJ&JGV00^xV(Fkv$K5O&{(}8)lKB*_ieG zyDeOE*MHJu$FF0Sp!QmG~Wm;LN*p)_7aASH?LYVXG}H5(&y`~K9gXLXc?fmMB@RlZ_aD^=^feu6Xwpn^UW^9lA0YLO)0wyFaT07b|yKU+U1lQIR?fX zRVG^(CA<0Hsr7AoVPeT2c*ua?ys-3tTIjIiqaf4)5qj_=WiiQ1KQNGrJ$Rrs_oua2 zh`=KGL}|)92EJHK4(pA#Q!h3RG-xoz+B%$W?(3AyqV<&8onEXmJN!jFwN>i~Pc0FW zQSE2hb53S+p|uT@-XcR~YvG$|p0x<_&s1EJy?M?Wxqmc&V;~$Hzf?p5r_wTTnwN?# zxMZFcP}T*DRXABp)u(ptd#g5ZR>-AkZ3>h!qb^q8Qt2x@YP>HqO_V53K7Z&KpSy!8 zO>GP{LC7}Yl{we}9IfoR(E#UZ1p9pD3(0G735PBPEOnp6YcaVrs})ugsXL}6X0Or> zPI;&uf5JyCrXzs47B=`7x$w0zc3n#jhEjYWo@&%IBQKTb)@#1BOgw8@HwXvNSGt8V z0;0S|I-9MT0p{d`8l-G(Qzlcq46)Vl&kJE2xMBozDwb!u=v0xCQ;idL6I{sv)`zX& zPjo%lyxUnpGd+HA&8t_HtYt>Exlsbw+I5=b$(9j}MhNi2E)Qgc_F)V{jMvh@4D zf&3BBDL%EBa<~JgrxmQ*J>7g8QngDJSFmR&KlAA}yG@4x|Md&cC z2ek~$<4YCn{p81E0$nbiz^KLZe44C*wj%TLYViFE(fDj~9FG<-^l177HV{-+&8z`6 zlY-8X#$0tn%lW^#wDUG#MmUTD$JnwH615{8=tLTb_u8=L0oKwXQ8bCU1jAJgqxat6 z^()uCl{jzjX1zqTrz+-Sn*N(6opjs#S+U>YUUs*gK9uMM_MB5`B0~~JTum+C&kx@= zDBKfn*%C($-z^puPDc?#CZ(D}jGI3VdnMGVRpcGaB94lW^`x18xKNct z0CDCntCvmGi3NR{>rxBVh@^FWBLx+kAdJ(NU`l){xYn^3^9&!gs&$Jc_VR~yWc6)* zw}j^SWqqf7<8Je}gTM1He`u6N=3fjnDyPM#{-I6)%#)i{wKPoe5PMi8^XwB-<`rd2 zu3l|I+Lc3#2bP$}YD6-HqzTPp1DeQ_=Xc#PHzhN-;4UBlh1hFhihWPs7h~_@>AVv% z&v1W&bsp6Q$bk&Qt-!OxJpdfU-Iy#ti*>pAp&qqD1BoaPm8xRso(2v8iEU8g1<~rZ5&$LqcKp>#*xpHyhgG za!|69UmRnXc((S}COZaWErR`N|0ZxmE}nD{zbi3z^nxxo>Hr8gRPnAOJCsSUW+u2q z9mu#Xui^nx=}=K^H0>Ie9Y?1BNPk%?kn{+CW=v5n#>6fX3_nq|KYH+i*6Oe4T{}nd9SE8IyIaC+2pidV9&QZYVTE0bO^}^^vs+}2ES+1J7o3?w zp$F>4J4?wv2YQ^Dp=noK<2}$-a5e?fE>O{fB6hfzeZx+mn87P{B?O91qwY6PrEwORtYOuVB8q zn_H77;ICotzMZw47jQIJ-wyO!=3wpw$n6XaPx^;j&Ex%nw2T-d3Qz8f!3b5(oas(a z)Qf(!25fKYi|Gkf8C>J87xm=~yqULK1yvny){Bvr+OH2J)>yWBg3d75qi?;o4>nfG zUs$w`tOBm9VtYov=c10na4r2$NA8DyvC6@iBn%=}{*}~C7&25Q4_A$255E;{&}YcO zAwjJ>)2GOw@xL^!3!g$%vaBvOco^h#jx^PM7z(rWV-KJ~IjI-kCu~-=G?EY^(x7c_ z$PKNtx5KGGV5?oyXVW0M)=%2^Rwl{TU)pC;Cfe3-+Q(8R^EQ!#U3Hf-z+z6osVS;Q zZj^McKQ<^a4OkD&}IUCqF_+9aal955HL zW%|#ED{5es)&RX@34P3(X}Dn{%CmWcT=zY)U^Q!)+c||HXUl+E{~1eSZ9pWHM_;i) zG^**6foMFNdAZ>vGGXmucXPMv^NH>N^(nY6rORw{Xq)xg z=mz6`?R^;eQt-g+DeVsGz2y$>ee)&JOV4wUy*H(N;@D*Nk2J{) zD@Zk2ObdoQ_Nn)&l#A_a`Wf!%fadEtBw8N>yX2nwoS@6)1^=#O=sra2Z)V=i1Yh>(Jz(elb~{G;U;C@EEA#X0 zI$)En`~lweY68xC&23PZN@dFZJu-pwcd~O~&7tbmW|Am$f~wxZYgv=zya;O_#2j*b zfR4cW!7kqcFXyHc@-)SYW}6?a%>NSSPA9Djzprd<*^UeDb*n8wGav<#jo|h^ywJjf zuL;wag73v)dDLO~ha+zlZUA3Ys{QM>oEWeTQsfU(#2F&b-|U1$GPb5%LpnOytmz0o z(ah}_Hr6b!Z@0d7hG5}8y><_knJ%TW8zD_t34O+@bRk>L%0)&dcd;*<;KRc<QMZq8=aXFq+Jfi^r0pi`!Qcj=BiblXT1q_zE*ZK}{zKVtOYVES z^IBz#jjWvN@~NzZtx!Zi^HLSeUd*p|{d6McPSyCwzUKVPC;l>-i#yGEwb|?SSkQ_$ zdMvRf`qpq7!=<3GHy2B< z8(cwsaQG&F#XNN{VXe<<=VEsRl{d-Blq^P1R*L#7gKBnbD^~#ORj|U598VJlDc6nS zDUeKZHXIswnvX_dp=2k^{^vjTCdB8axwb;#x(Ke`uU+A< z*)*#gv=(CL673b)aJX}g;%#XH?K(OhviSwTx`(I#$8))$3waVYWxU83zroRaRUU&_ zOv{Y_L`Tm`A%Qx19<68sT z3on2V1*;`6qPW-ZM+h1M1s{!4rb;+(8&_-FCN?6!H_a(S^LQV}Mz1)Hs~Nkt|ij#aF-C{~Ga+KG@L*)0#R%1P+;T!@&@? zb9m~+^q+@SP{*EDRchUhApz6^u3;yAj1Dzwla{bQmhe6STV&&F-g14}`5q$=gp*$+ z%4D0xDTX!m`6BLY@^Im&Ta7x)I zJWhd0=c0Wz7Wvad<;7zD!q?%xg~QUv#t$Lxvo|$qHztCqnOodr|M<01Z*4QTXwMAp zV}LWIcn=4ohwPpqUdJJp)Nm@fQGa{E@jf07!gVeO*Sp2p41A}h*r7!HwItM*CefBA z;*}=joyO;#Cgz>?_hrW#j&RWRUxg9YhsGwM4PM(vQYELA3e_p-oIvEGzW)2+@C7}c zJj9{#ZC$fUUJ)^{zpI7-F{>0kJUILR|gTQNv%@1wS z3vEIV40_SabN>C#%v5}6{dBhj_>o#bO{wsCT`u> zJH7fzh`_kqGth~2E(T{C;S&Fy^D!krQ#5Wv7Z#$4i_^u$Ym<_62>{&xd<5cAZ2Qjb zON}Di#Kmt*%TLY*>PKJxWf&nwsv|P1#7_F-vUSCD(_A@8=Oeb@7~t}*rsdnei8gM)E;(rhB! zO6MM(QZ$gYc+2bUxH^_gOj zqBLFh5Z7dtji2Rez5zdW|F24FpGJf94HFVzu)ECe%JLf{9ZoGhjvZTwvMv`sh10+3 z$8w7gt&u!hu_6CCXv5d-jHXJHq_G+&EWTv^9WA4A~?h zFr076FvhOZO*y>^FFGrDUg!X`$=GKncbvdYCfM9g+2yzetmZZah?|ad+~4mXjwW+Y zAdQZ1*-xa>P4rYPbJSAmxmfr!zXe4x1-`uDV}=hYQPgp?$jresMWzF1Sdl}m#mnK4 z`k|!oX$tY_xh;$m=5>#D8qqwq^E(8w(J14?XcISqSpD?~%M?S`G%dE;$&WW39?Xn` z9&iC?(1c5`eE}-0Zljw27-V0Cr)c&`kdFfy(H3Sux{!qf(86NKito?&i*2n@k_`2^)`SN(R&_hSH_Bwu?m63%DmqdRld&3 zk;yW&gN&KeR%V1Wv16G7F!SkCy!o9KPx+-SUSZU_U>qB793O8S7k?ZV4-gX{iH$!_ zh)0c&M~#b5j*U-_k5B%2NQn0@EKDjaM9?fx8dy>X)vT%VN40{zT&CQ!u7bK=FyED{ zLd{-Wj<3(hq0Fc8gmwB`soD;b<8zIX&&kXz?6=$!+uXgkl zp1u2Xeh@3{h9brT7$zRDfqy&dwxXzsWL_sdt;~YjYFx-oadw}#@5(xIwAZ}K3Jod> zlgT^ggm$ru?9)2V)X^%&yV_cEJ1n0jJ8|Wo2WVv`ZSM9l4y6X=xuy<9NegwZHO~vQ zMK<_HD94HrN!5yvu?>hOa}bEGMZT4T9jUO4yPBCSy4_V>wU{AO$bM2O4qjm^SbqyV z?oIX@(;KrSs9t%SO>-37ci?sQ7f7Ezm&;N9BMOQo$0oDluhWsO!samIl3 zq8bXZn$@rX>2U^)oUJCF*aACfM8__>^5s}>s+H}4OSWJW5bFr5Yyn-iXz90GpQ@GH z5JvR`&#Z3hcf({Tx*~CL0M;zqsv6{s`smIXG$S*>MVEONp;(UUtpietBNU()=<+kR z&1Q-oz*Y^{8_Bnk9z0&UQ-t-1rx0`6GNmHKjWF7MmXAhC?z9OYjNdGZO7!BIkCnNG zaYz}fG?MEi_#U*7)5JQ&TFi-K5u_8ACFNpTJnS=X&*W%Tnv--f-Jp`lwS?D9KIxG6 zKCc{oKlOA%wQ5d*HzWQ4ClL04Xg7x!^tnPDU3nUCykbDQKd2S(K>8u_^nqQOvGaSt zHJj7*{#lQx)$+hdZ&E=T@nLaPc8f=ui;50y_FrjUFMRN8Egp~o?P#0`X>8$iZ3tFf z+dE9VBJ)|@J1mDIn=$8meSjlVAtQ~k-#!xu9WQh+R`Y<`A(68sBVW|D0-q4w@H#I2 zT<^P={OapsdWA4?8@Ms@$jh5DD^pZ|M|QlbAx08G3JVp?pY&#c`24t=nQtD4M;rBi zN_d4y_9;Q1A&}qT5XK?+X>%`fIIXY{uP)c=2Y(*md_+nb}_|O z)wvqtbFPfx;x@J0ACiC19Gd~9+e&7)o{yVK5>zAFj>qGr- z$f;HP%F|3>A4_rTFPc&rPN1l&jH{#k^8X}b{wMnSSBA#%4=^bg{nszz|NC`lB{OSB zDLvc&?(b2|zR|B6BD4+_}hm@<-v2yQ=ip|yQXmoKFm!<2L&qAzB*3;Idxjqx6H||8OOgMqPrrX$D zh;j|tpR;S8xo;jiZ#=HQPUop=ez*Rn1C{gppGmjQ10 zkc-V_xSNOH?MpWv7t$p|gZ>hY?JdL_Gkz?=&mBBs^bly-O`Sm&@B$TV=%C6fYUr@o zs{+eSA{*aOUuGziku+7rc*cc91u|&vXZM)qNSh;hvJuboncRH}Zxk{;@?D#fF!91i zkjqxt<+TNNWAueguguKMT4|w5(2)Yth_n1xy0;5-G1`Kpj&VxTpIZkBuVTKelex6%>96j@rK5j>6dOVoF6LAn?j|iuZ2|bK?&5^5 z{qc&NNioo_6(&u0w{MauB=p@3NzLhR9xbYCPGdAY*c4Wij`MTGTShw=i}za;{u#@u zW7ZWHQ$=Tfpn204YnKFoX4A<`$=h9pV&sYl(Nhzy^N z0$TQwx&%V`IjM2RB8`g0K7F9h^tmQ&VFUkLohdTAuShN^}}5*r#hJLT_E5NFcC~8Qn4N^Mu@j}A!~<$3AtsNgx}+E z47%;)rVl`ai444T;`o3a6m&&w39iK|85V&BQtuAI=zG6Q`{e?hP1w0w04Q9ib zAqD4X{FaJ7cV4mZiV4~~eH|VXO|=YKGG2*?wLtJ^Z-NP9`4{Jrik6b&qy;wh4Eguy zU!>Gs>^VkK*$BhMc5w9il1rKLZjrdb$4-z4S1QH&E;v1*7v7-fKyU>P2cGgxZ-)1U zk$-%BUy%%-GW))fJl%M)bEU)Rh36a^Jn*Bn3Nz}Dm49)L+uv<^iMyGG*S1IFusBFx z{s~7pAkdYuu+_odLvBLhOduR+jA{pgs+L}}6^9$_;j5T?PDf@3l-!d?rtE3ym^r?? zC!gEV)N^?v`SI7FcYp9R+k>g^g+iqRpSQVzPSpreSQGt$Y;P68!DyP|6di974iA-2 zRh?vm*GdZ|@qDm%q}Yec1@#2f9^~%?d!q-l!c1}P<6bBvNEviup13yZ z9ga`Y7_eSk9~-G&TUwJ6itDVA<7}HAalA-t1q~Uu!FpG!kdkd|Xr@ev$s`HX1Hne$ zc~{5bVJwJ7A?MlsF6PuPWAlXK=RnGKQP1r5znHnrg^M&{VXO->$U5|>;B>{5N(Tf{ zg6g$H|Ht_ASVzD;x+I@b3eBI5^DH90$C-VF*YC;;bk8y`$F-01W8%mL3b0BSV}yC) zrF2D$Gc0q@*6VVJyq7~0T;J9KC1x2g=!{p#(+lD;YZOt^`eKgbIh0w4fnqwS4!-mWr@;cMxa|Nj zTm-PmCoaDe-uR>ppYDw{h+C^tAstJBIAef%W+ys?1l$vcy^N!mn`@G@&?>P+-WjW7 z@CBEPY+n1ir}$CPw4nVpgCqaeqi$pvIwZPHFFV^Bp%>v!V5$_Z~(T?+NZrcN`*$c;yod>S)?45PFzCSVWQqrvmSNjYh!wz(oL78ipJKg)2VEP z0`0Y~R)f|XD^7e}vuwUiBB+zui)ZZ^)x`O!3N;NyYZt%F*5( zWeZn@(LZt@%9A~v`6KZX(6spE{WEp!xMa>0R382Fg2vhRRDNwwoZ{8!;y&FQ;4?-`ETtpx-S6uRM2l)^xgIwH# zKrhqTeAf8VD|IwZcrhqUK211j`$4-++qDb(H8@5-s}re2hg6p6*Q_mh+h|k$hj!zH zSdb*I*6>^_ax+)Dqi6$%8YLRbn8458XX{zBurRr1y7CWX3H6 zoC7j&iJPoR{g;Gtp0InH_iy33T91-5hMaQ2VjBo?rR2`SjS*Qxw=S<}v&CT`W8d?^ zDc{Op(D}x@*Z_TgGqGfyfx`;3Neh-H0!iGe5#w5eXsF}$WB%_W{(xWFl!@)k3wZf3 z!Q>;va$ywuP{yHUq2Xq!RMjI>`B0DgV7w&8`5Kb~>OyucsZpQ$aM#F9?8N7{p{WrC z`(T+U54ZWcN@#5Rovo03DA2bCbqGCZ5x1h%ZZd;O*&Z*jP0>3=5{cO-FGKh&koV&n z#f{Lnm^KOxV03q=l;%5xXj)NpjCO}7Z!p^+H09(%cUqPTBxbbQdQf6f3#$<*CXU`^ zg|%8kk)mI?PL3%pp^KkZGMffF`_1GXhRXEoUIlK5bSp$ni~YKgvqVJ2{D|t31&2sf z0>s5_WBY7g#Xig$YnILNCU(e-Xbkl z>nmPBLvyzr!-zFU@o@t6bGAkf1P6pcffM!G0@NX*i%e(Axnj(@LY0Gtbxz04 zi(yNx;+1_g`ZUNjkXHE^Sc5oX;jEU(7jcMJC?3F1VN&QQ;@tSnyLxqhWEu7I zx`1m!wL59&T_p??TfGXI`*LtyDCgEy7dR6Ou~fS@k|q-T?8o08lOLw?4}e@G>>|itBp;6s_C)RRG$_nyObVO&(i_N|=;jDuR&~gqZo*qX z`E_0N)uj%pN$;JFCJc}EMYxnKioO!vei!(*v8JS0MV)a)h{q9ByEsVPlpdu{w(Mgj z`Mq^E&?_b9&=9Ygqf&-?o9d$h>9Y-o{Z=7j_1H$JU#*>9 zBcU_D*I41395+6fh9yoY=2ZvrqW0&Ve~=MZ4~@8dD^aeK-xk=vyEd;T5|kDk zF=Lf8p8ll`fT@Q$_^vZE=@B1Xp((4Z*Dm3P#|wm9cLZug8Ke(InNMt)!wc&Z;vJO3 zEeSvUSCmi=8Xl>ye~f!665~8)CJ%zDrwh52Xw)4%8=xHy<8>MXV@w2mfLeEv%v7S4)od&RbG+qP{dYsI#0+qP{d zE4J~o&AZl7yf>=WQh@>jm??WC& zNUkXgPv3N^A7}f(`ve}w;GHciBxHOH*S!yZX2i~}HxiRNabh^?Jm};)a-aVExVriU z(Bc~wgs^eaPsfwATZMe5Kt=W})X(iz_A~H}f<#$Mp1x8afgMB=6Vy(0>9DY|!a(@6 z!*7}i^;cC+&Nh^9ZqmVeQN8&K^}1tuV8?GgH@#6uP2UsH^dcmUQC?<3?63}TT0Hd<3bHd- zPf(8sF2yR>C&r0KJl2L=J9{K#Y7!LjkGY!o~0DGqhc z`S`H%yNX_bCTC<->_oZz=-SJ2k7gqTU#b05YYY(0hb@2M49vMmFyW(Y>SWQu?S~ex z^$cY$i{{-sRq%^3M1;WLI{F?08|fC;)Sc@OG}(8_ds^3*z5A_;ThfwN&9$R_4?=F7 zlLjp=XFv7*G?e;#mE*yZ##O#k#zz^@|)gd3)h4ut_Dd%p!rWvNE7`tH8G27y}*gqSI?{xXt172@|2gu?Q z;MA{)MSTWEbdg3_5zs%}q_84lqN`wbh94VQ+VCeH_)=nO=Ddew(PbkD%y@nf34KI7c)#NbqzWt zd=OufnW5`aYx0COiCjD}i`txB6GzOZ&C8)lP>t#bQMx_oWF0m_;i25q5WD`sUp+U| zC0Fd}R*G>mr-AXK?55N1yjf4~Ti(;3pUczJ07kW#f~+{{J;qR#7Q@EScS6A9mJ~c{F1(wTQg69bZx<)oz+hLa> z4Vw;bm7gG4B{zP$L)s`BvUCqPC+`~)=_VSn%`cP9#l@8+)yP-X+c$+qUPy%iKZ4_< z4DYDGbc0)rEkOc$8$i9b5ju1aJ1-rcn@b#&RNXnO#=JYRh998z^V~9u+hht$A1&i} zI#&+OIBl`8kuq&IW;W)o!;o7`So7%`v2_Wi59G-U3J>P6yynDUvUFxNA4KF8wxR_0 zb$w?0!#AZ3)voV8H8TudZ+1^ROxjb@Zw;F9Q_eb=9pO4SAYKXIfv-tExT~ax3NcMn z3Xc2P0*H0?EMk|DTIf`1kDa)PJH_JU6l7o+dz6Z15)i-fai_xSGC?Sqq=l1^NH+Ov zX%YL1JCq>=LyxZ;yOSz0doCZS3^GqhO{Vr})LwFGlny}UNxtE?rAdO_D+ldAY7;6w zK0~g(5PMLkqu-USzkV4!V2cDh*LyS%IJgYXz6AW_7^_+%ro(62b3=j%no{*->8JN& zlnZ36fiTS}@)500&`!7MK%xdth8$n5Pv5=0d6+A1mdN($baE+oVgaOt#VTa$0yub> zVR6M5w*uuhPwOa2Wmk24c`lohtkTzn4kl&Vt%z~DD3F=lI2cWHsdJfx0xW&5=P9Sg zbetn2rCyg#qAZNNXz76W#S#U1A`{bX&J|`hqsO*FSe8~_m%)Crk82Y&R3EU158hn~ z_tw0TXpI zhAOjBqFPql*^467xeb>_Xr^QKk!7Uxqwhu(ioS0Po|Dw|*u1|OA-fVHuH1FV%(3U? zHa0V13Z9eg#hoYkjf>gu;0R!=j3NdAR^TC3P+0a3hP(!5LfB1E1Fz)Y3L>oR0QHkO zK@+@uXQOf3PWE+G5L@;sBaNrkcSPz-(&@n#{}tQXUqZk=)J{PCE3DS`>+=q60CnN9 zIOI!-;4ZR3Y2#09(ueMEi>pC=*kIlv&aXw=~A z>~*vwDWp*R{F!Z*K(cKQDxPy4c>&_k#302T{H-q6Hk~i<>Tn(1|HcmD6N>ozyip7U@ZicriiNL z^gLy+(huEyM?lyozoMqHYtr@Q^!;-KZUIk$1`x*_OYYG%OwV{=zz}k8JTdY32RYg*Y z?L_nqoopT4|B+*Ls%(AdSjgXTwrbR#089o_CPv;QE|#WJuEIwZDO~bC$49oJE2-9J zurfFq1enhl1=q#4cQ0(ZJqhOSz?3JAk!gPp1@|c*b#!Ty3>-q28Jpbsl;wHJzV$NI zYI?Qx_5MlvyId`HCJf7`A!jQ(T`a^+wvQV6`GyDd<62*CAVz4<8UjyGjbIP~A)jDK zC_*yk<|pGd0%v>zov(ONEFwK|E`lqOlwpuJk4bhr!DVR6^v{-(3bMVTrULb~Fb-pi zaqJchSmw^ODs^w{GQk~WFdqGhQtZ;1d4kvy z?2@$&-`;%ns9XSXQ$_Vc`iktG1s4h%Eni}`1<^7u@fsqk6&>Of+1b#!6F0dTOLZMl zWzpEZUrF27wF(G&dasVn=5Op-)v^`aQ9yDURKAas;zgHi$Cym%ZQhZ79zcy@Lm3u0 zb)&&1YDe%Y307HU@)DTtjFqrv6&^suINJ<&qqin&+LR>L7@Y>i@co0&+I2ppt zAq^4i1K_6O0Z?J$xJrsaVeSYR7*I1t9g#MGHO0vdQqt22p&778ETW=L^K^A(d5l=$ z3_ScQLx_%2aWd!(e|plfX_Wc6%IGv6Euw|nsdg1HNE{fboW@7;BL#x+_ z?Q9gX6^}}dr|qxJIU2FKC)=L87`E*s#@$!<>^y9Fjm?~rvQu!og(r!n6N)mN6i$(h zfnnseP0-ErGOughEp&2o=Z3Z|9mJJK>lDDz z+Zb_1>$78W_qaNdHBJx&cm-U*%vA&(+v4uM167vAr)J57v;4xZW#t~AD$8c3jF=c; zaAikek8unv^MKH-!ZY0xnMNR4zn@S7MjN(+4>ieu02Qn-USq)<1fu$&&7yXJ>jPy{ zzq430;m67NP7YFMM16qhB7EYA1*-j27$}t%I%((-Z_3JbnQwAlYZ6A<5*ZC`6Q~H` zYn~xMM%ehxi@DD4{c{c_l0Fy)q)*9unBh0R_pp34QD-U%c@}bCiU73haggjDsL8Rh z3z}d{@Y_Nmt^j`!M~pbN3Ci8GpNcMjz5B7FfwQ|_eRzwJ;~o0XIt}A#f@6X$D^y}y zE_L%E<1~nn_=eHNu-&j`*TBcBwexO~C7oerR?)3^tsMGuxzqe(cT$@yVRc+qRaBR9 z7-l#G%7iXu$X}60XAMuOIAhGiHE0qmP{ikfh%SPq!|I#>e_(&3_!H{?u&a>f82nAU zX#oE2J7k^|Qq0!R&=5REUSTUAekB18<3Vx;CHi@01!=XW5a2Ic5naQIXxF_ zumWgre=$>!j2ylQ3&q$rgkKr&TjjMe_qT9t#OuM$|lDI zY%;Oy`k(|OsW6-{P!;*wKFynb~7}#b27KJ`G=ZDDy=IZ@xyZq+8C+R`27$9 z>A-J|5rXIc!4IC}3r+zpeA7UrsBd4Nz9#kiR`wmLa*nU`fDq0ntn2wS+;|$XHDI8w z$%TfyxLx)sYt^=!*BgW`BmoWq1RCfeWQ@HCKdRk9SdbC)!>ljH&l6q64v!GhTJ+$W z4;IcF{Z2n4x3I@rn{lZ{dxrW>*&)f7nvRKtsve(7vBF#=*0bx1#KY&~*?naD=*>I} zEx;JOz@{@cb=7UkBOfaWH8~f`Tyr}7xvlcxj*Iar87uZ09hrSv zt~u364pL=S=8l;9$cT-&k-%zm0#S=zCPWTwq>y@C*jOznO0Ps^R@gCm8#;NKKdITp zO=ASOp3C;Gfy6C{g%UQ~T^kjxL<%YXGNC-~P)eSaVMArs7b57jPO~~pH054jV$e`( zydMMQN5fl;9DO)D-k~yAuOf=Ld);qgl;+vtnXl~0g05x0sf#!cCjC{@nyQ@l4jqiX z0*UjRa5B%jF{+zly}$_DW`9rk?F z;TR4=T~|5`jeeN6!^!*N5v z5!y~F39o4G6$)v>5PGCH@-S1BTw9CSCL>H_pMg%dGGlHyhR|dXAJFAw`s~0y0ywU; z1PlxBL{N@$`s1p?{l6!X{(T8GW&Th_4{1jzEblwBKl$HsfvL`H^?cZ{69gS-iUD31~fp+7*IuT=ze1hf=1e$PnX zNY6wMpaFdipg0LA%YVtI{*r;Y?!sEFZwWwv1pr|9?`1&WNdJ5JyBO2*|MQQ)_birw zXhEZj_4k<=*~cc1#Jnwm#TxQnn0zL!88O^XOd?T%au78}Z@kWg5IzE4;-?qMj1B|Ldd*dWlCQsGkorgk##vg`_=L2(riQyBUE9l7KaJ#-xpSC znNFX;en=Yf^`s#0Hv@ir+YPl93{I6LS(Me(rH8~-O86Y6`-NTj(viQ~$9{K~$>#>U zCTZYLu$xL5O6zfTF`9y&%qL;UN%n)sFii>qaxZhiIX8+08zd3VkWiJzCRwKdO7J&k zvSh_uDyiCX&BEiGrfby3RBC9KFd79^H1#74uI;nD&V^xhv`omzEQ?jkl#3%&)J0#0 zOBFAos4rcBlqTcYO+t^7aHZFk+5f&owe;D<3;)syM%&0Nbg~6L$(sV1K+i8rV9aW)l0ldC6W=lMBz<}e!m=X zfd#U)%jtVBlSVSL=miJZ|HbCD0E*eXYAk>pPRfP1{5`g3U0{+_(|6VF45=-X{t5Du zHj#XH^%vT#VOt0*zdA*!um|`MS6)-s=cO@Hl6E@J`X8VJ^?}1^32B_WThiad&A6$R z3?Nk2+Rj0GEOb&|5HNgt@IKEeXZO5G(I=N;24tByc8_4WGg%^jOY(C@VvupxqonZB z*zwC|FdSnp1Ln$Qpknyq48M`*s_tZs(1_R*r9Pm)2YqXu$ST99$nvJ&<3SAo3i592 zaiFp}(Pb*W~DDbQeTNBvREKk^0*TM`~WtqGdGOn*J^Ow$O38#-ar{hw6A}eHP#QB%cVE zuaq0m4J(j%jO;BjpG+Gc$qj6#eFZV=(zarQuDhRDLp~s}dM^#)tc(W5%E!!!3C@<9 z;C-*gJ%5MfvNT>Hrpr=BmAzY<%a#66r7vy#hxaF5dKsQ=$Yr_k(~dXV8^%Q2%2nLG z4KNA|tnGgi~4V@1kiIO1gy@|zyHU1GU~?h(bc^(X3|rjT{(Zj@k7mz;2Lk|LMg#z0`d?_Ztbv8Gq0>Lq zI#cD%6=@maQ$?1r+MbR@jSn!0&j`XWZYE}BfgGJP(S9G8-9~(kB)lOhc_gk*<3~|6 zn|V6Vt<0;;T0wQZ?yI1sgQ};v0r#$z^p@sTcEeCj1^wFPA*TZz%!>P>jug|M& z)*oCUyu&qkT^d~` zDB(jb=PHg(%JxH%9rE@SVWgH@-wa~*9 z$tG2Y6Jb&$nh9aT^?Jy%M-C>9YbD4IDivixd)lI%b~kaUj%KB3Qlf=ah81yhdIk-> zx=Xc{3cecr7Up84Yfo)r%7l4GtV#->pzj@lsgUWPxY7kzs61AQw};9w8fp8g5oNzO zab8TBxn^+SEI=ulZ?oDtRWIztv_T{njbYv}Sr`wjsGAuqQwQH8tdp%Fp6cW)8Vlyf z2Mx7npPq0>(}m}M-p0sEm7OD*V-!SW)s4%ns+Y^X(T$g+a~7zkPec*5jWTXpms??2 zqb&znCuLYwRiKtpL&b)@?go^dcq!*$cu&zPe<-n8(qJ{_)hkUO?+9sL-Bcf;NOGN9 zbe$6&>pb^1p(Z92#hdvjJL|%AQtf#pk2q&iBpF2?tPWtWlPOc5U??o`2%qZuCKXr} z+x8I<--V5pNVSyhtYkXtAa*qNGEAXFS}wOZQK&klTT*FOt+G2V#Swk?cj*oTYY(GG zowxynlKB+v9X$sI#jY2Lh(d}oW4CAnE!CJx9(YB*l@~RWSN&Rr-d)d8kDDBD<_dy9 zP~?!=iwH5tF{Pj1uX@NjqqCD=ICOf4G{-r*E{K9gb>a#vb~Z9@BC99%k{({R=O1pq z?g+|vbs*sIiQF=4DSoKQf94wwezr#Lp1(ohS-SCj=O4zqDJD7aAg+bJJSW~=v}^^V zax0~-c1zbKsRjtf8h5iFq|sfqKuirBJTgVg8qHXo84mAUk^7KdepRV_dml54u&O*w zDGy+_T30hPRiBT!_Z5GmD#cB0(UwSAf4iGp5Zq>zD0hl_GZl4!V#~OkYkGbCCcXPgw)C3U@*Wf;iohlvq~gW>W!mo zvIGd}ItJ%TYyaS~;mNtp6II=?UH9a)yN))Xt6?YFb~x^`6ngdOveB=7XB_NguX`XL z%nrN!5@nso8z4Kwi6BulWTQ9iyj+(Ztozg`c|zLi5>ZZ$I*RUsBC}OvuZzK|YIM98s6fjl2&Q5X-0VyLn0{T=dF#oY-^Ja= zy}Qkn{vSzGu?v`z8ey-nOo~Sp-DtX;__5`xw!kCH9vE@EY$yBTQbLW+uul?DAnV^q z*rZqhp4>e;$sHuNu~2S(ogDN(HU?srR0mDxyeZ9vUX~*r^^_>yahW5`P3RBcC8iWhs1-XH7veF5v zyZ6VMtNjubk~wheyZerwW}{RUeT~6|e&ix;DQ>B`+NDmdD$hulNEXiv}Y!l3{pdM#s1x+xFLN9q7o13q{@30USX#`K- zjTkH6cliItYW_b@LxNWNj*g<=9)tA%tc%1++J0Nj4}YDt*q^OgkR5y!6*}W?2U+H+ zC=U=41PaR0a$9F8*CiT?P8A7wkd@~^YLl(!XO|37<-xRh9=bR2XogvmDIu|}68vR^l4Gr27CpF}0US8G+&z+WJ z+JiLG&1-b8wYuy)3 zLz4PeqL4ku&x>5S{)Q|3YdMj@eg+jTC3!=#NkeX}eh$Hd)6Fh`)Wx0}dvyfpUgcWo za(R*##G&3A9BkdWGe?^I{3v9@Sm=crDP62~rgULUlHkK8zHrFmbV(I4(n*XYimjfm zIDP%Z$2|MX{`}2!i0yn}?%0Kt_Zv+G%M49!f93qeF9uOIx`1IuWto{JXRDN!a4aMB zLZG}q6Q$pFO%FbWuSkKIm5eKQ+aHd4UwA9S)Eg}Jc&;OLdV5vw?r=|&F92{S4L2cw zs#1Z`6N|bJ{$&WhA4GOP(064m|9=}q4F62g6xMCNgNPfe-5ya3bF45InXHc~SwNcN z7zkfzk>mT~H8$?CP!`KH(WzS~({ako z#pnIi1vDqj0v2Rrf*|~bDpxa&My;iC6bI+>w8m^F3nX|ab>5B8u)BTSQwH5RWBxi* zDU6fUYvj#`$g{S8y#sAL*Nz4G>Zw_1`#h`#s|iD4m=ih`tt-wqLYD!(@D{`N>Ey$~*M^#@JG?Uj_-Azw_R0P5pD_L*7L~nISkjo(Dt35Ij#d~sb zhdv2|f(iD?3;WUt`_c^i(ha*DTCc{{k56bc_n2{?ROPJ_X=fO^Fr0#+1&sx-Q`iGK zNDIaZOjhDx@0Is-rY4fQdQ|QsT7oiSjbWQY9e53TZ#yO-;^G0+x$$JNvnW}&U~pnK zug;5~H%eqg4>Os38vYHyA71Va(&dr+38Pf@m9eXb>1nIqD|3cvwiKcJWXatMUe}Nx! z+1|fSTm~QSgH?EH;1**pP4Gr}hxPBOl-=~qV)GqPAHd(a|NkKG|4&ttHg+gp@G#q0%wR+4c1ePFbSM(;woaH3>|epEZ@cj@6qu zLq~4OAtb%7jr!>;%fw|Yr*Z))_!^0I6|fF{r~%(H8#bLT-8@RC37g-x2+r%#HC?IQ zHJ#o#vK~&|HTh&-Mi3_N)Rr8=sr+Gm}dTYL_3xvpY39!cRfUW_7*s`J&OcQl@tba0nr!*0J1@?fw7 zSy^{bGxQ;i>z*e#Cj#Tvk5cPMZPpZr=5|9McnJt%87Ms#<;s=Dz32Aud$=-$g4`Wp zMv|FVT!%f;60B0>WNr>kJbWjhvgEMqHsH95H^MyD#y}0b4gqQUS_>$)QqqNvJ}NGh z^Lt<>9;g&FWIU1yI1u!v>9C&I;yWEaGtf(4DZ+BI%ch1D!R;5NpZ?DM=h(rnaQ1t} z@7+1*%|x9xyV630Ty%VFDZ1qCn4UlKwZa2RvAtwfzWNaz>jAs;YkJwU_Rt4N?$FDl zMaC7;&wDMg*Jv|8RXN{sWqkNg(aXe++2ZZuE8GS8sV#o)HWV8T?|1X(qRo&L4@JfB zJd3skwF_`wicfhTkHmA!*NMi56yL&FFqe~y&cMaSM&(KrD{`1faA?n+$Ve88zR6_G z6)9>euOB;=m9n&DShPjr9>Je)U*V!Jpp6)0Igy7(0g@2Qt08?>hZwn15!j!C-7H+$8(gWjgkT@NP(1KO>N2-i7@M@WYK5o;1>)5G$NWh~EGn=3?AT3V}c05i;eHPFZW2Q?pKREy}OGwIjg2 zlp>jQYuorf(&q2nV!l8Q&6|{`W{BG@E(M&PVOk3O^c!BoVBD=d$aP}Cv^DnAcMf%< zupXEXk5nrbC(F>>>fl=Fpj%;bbthwME-iAO?eoaesUbVMcV^DTo`3ZdZj9`0JAmme zN)rJLT=A0YNiK~V%0E#DZfr54?^Q_-p&LhtoNZZMSncYQV!@&`D2ic1U@-`fG*XJF zk8g6)WD>q+C5fv%xCoUMHl)wj+8{%b5#dDl4VjINs$v-@_HvwL+oGY(V2W%YHwBLm zPk!*%`wUAoVdJhZ*h(lsDrpqmi!|wA-W=)!dr=pc%c}qmyFoHmk1(nWp>t5D5woUe z)FEQA%O~MbH$_u7niX;vWHOn$l5%w_O5I>uOVxt7%LQRC$Y}(&?S6S})Q`7Kfk#u! zk6pn3Tz#V(tF1V$s$nY~H8Z_mup7thOZc%pdVrcVVnA-x{u4u5Gblc883K}}%Ei!{ z7F&ZW)<#d#i0(Gdde$wEUSDW}NdJBtOASgPi%NW3tIW_iReVX&XnRN=Xi`sGw3-|l z_E7mEo7f0eSaVOLjd7HS6RQtA}nm@U_uiTngUE-;LthD#(1Kfi`Ut;5_ z9o5b*1d9Mna2OW50=4?tsjDWdTPw5D+vz0&CRsYD5SZA!!hrR5KFD*i_iQDRVkJ0P1&K(s9NV&R0hg zTsmhWjhr17MLS_i5;981vxo3ZOXvwLNpf&{;Gm z2)$mksM7}ypJrKiRM!;i3P^{&Zt8-P?t{gF+r#3J9$KHs5gZskNmA4)m?pTcEK!HMy3c+BUx1#=o4F zLS)*ICGRx_V8=uCA)u}Z5&>dbl|K1#9(NKz9I=fyc7lmunUJCaJ&k7E+?(~Ej?sZ<0&lXFDYqt_{=*#)z90l)K!pnpkT)X}L7Etok3 z-TA~_es^M#soUMX|6N$x5u8}C>IzhdSn@X%1S(3vEz|^tmuG%{Kk~`XnDNu;v@sEv zrbdKwaON8^x+!Ayc5;eU`__uviJ-n+#}zBsW}LnVI)2fXNwK8@>i7yQJw)dYg8<_? zvWTLpqZhq^!U%^N8Jd`rSrskP3Ux*T1PrN_ykH^;F}o?={Dm~5Ikn+KLrLO++QL@I zL?31!?YvHZVM)>oq4Z?L(Kb~qcd7`o0xFytzRI#T6C+txh)qkjA#^n|rZLrf;7)lY zpm^G5Qc;I}JEZlYzgAArYer0=uTPKgLpj%Bms8Y<+(kqYh~$!m3(R65hj{?0%&Py8 zR3|Ar5Mn@##G;D-W685y51yR&gXC8_2c5`5@&=Z_%fO2ySFbmSJJ;ngE9~|2lFuF_ zF6mn&rF(`zo9zY!=TqzPfeZDtRH)a}3)IV`fjD-Fs%DVC>UEDVy`~X>$7ly@oIJL5R$ZiQ&v#rxa|P2mPzF8Z*p&{iN6O3E*eNcb?D^`9iqsqJ@^MNY zVDwko`o}}CfO4U^4~6AUFZtU`aeTtlz`D`gNNu-kVUBFq@%?Cf0p*JC70Rw0J8{IV zTu>rUX~Ie5Nh;18qZWtD4H<54X${H-^*IDXKZ~PL0?oM9MxELBbim)zK*t+tR)GY1 zSyI4deB=Nz{lRK@0kwpuVMLpeOBHTIIZ+bWUA}#TZeG#)+h^!k4j#7Wv|OS`Rc*-vvc z)@l}}Y-P*_O%YTKIZBVZ>Z+$miFsDr-IdEdPA{E?==oXn5cXM!mTFaV((9%r5hgk}q1-LTOMMX7mWg#RF(V-XuT>pR zE3GK}qS{JTJ@(+j#FjY!MW>BksD&c38CrmDf|)z@f!ny5XFcL;um zZ4ZY%Bqr=grLjFoCi@HS?5bWsiyl&Q9@II4fa7mZ9?sen7Ci{-0fjcWaWh7nJTQAG z>p_QCOlS{aN;5Qq1~3xtD3#M8iC0{e*?F(2JG0_sgyKE1nKQ9Dh=OCHxv(&q!NA2a zx(a#7T9uof`7xo5BBgB?W6(>vLxWBRI9CeRUB)oq_5@Tfm6M*M1kP*s0~;%)%R%lj zl8tgNj3@GSyY4!u^aTHviu>*GF-14N7X(}-ogUSMz3vyiLV*O?gr0DYcTGh&79_OEr<*eHf4vnR|`1wWl zYMnS+%2#~|54hOMSHp^@s9w6>=)7{SyTPZ1ZX(dn zQ>kvcp*6N(Wd|Z%)fe#&mt%eowtaQ1@bmv6cdeoNVKu;QSC7nbY0NoVAG+}X@{ZP= z5pT!KQp;5~89LeFPwDjl+%>|5oKRA|^Mh+dA*p=$dTU}bX!X=lJ(Y4Hd3ATGpPy7c zT{me1w}0{(vWd?S8&#jOYi!Q8-oY^GYnhGvm-gXIaLQNzb5NpD;$Fs-I_?^`59Rq7 zF0bb+6>ob(@oN1@eTw&5b}vk#%U8<{234ukbLV-FWNOa%_!OIZQ9!9^v!Yd5!~#en zrlMP;eJr$1g9>IHrOt(ZSzK`I`%=OebiHv_Iu|RH3CPN>^G)xYeR#BLa&jp4-4A?6 zE})Q`ccz$z1m|t(fvWArUU7o+wj8%TGs|08Tm0UDRCR6Z5IP1yKVZ`j@azG8 z4gJj6R{Udp+Rd=&>4x>|DD|ln;46pznKW_`%n5?0AoMu|XjvRqtGEQC*c=1RvN=Y8 zQmhcQZdRmjo@DM=azBrHzsNd4lvBJ|)I7y$0F|X(St;mZZm}vqy>Q;V54rG0@G;;f z{v2XY)kqe-o5C|%4{Ynh;MLCwh?8V~bA?^^goxpK5u*ynUotjcgj}548%g{|l ztOqPH$!lJpsZQ6Nor^L$Nc7EOKC})TbeNsDC@!OmH<{a ztwFA)kaR-z&#|k-`eC~v1m26SzgJz18vw!3ziYv(-yh4rsk+$M*gEO|)f(qWE1@X( z{o~}|{8!`gKMt>fG2;^be8@pxp-r<(l9iNbyC5fX$7_iVC@AYDvapa=~ za(I)0aNB~Rq%;)*J-&|mpI2IJc-gjB05r8%d3y%a!m2qaX$;XPBIbz4e}cW^QCMgV zEpP8qwZwe=b0#VzPQ+0x%1$`OBNA2UN$qas=(Cd4cSrGhu~J&3$m{PNi0!ndfsInP zBVvaHPUDWAKKbz?Rc_*-HuM;xE=2@=`(NY44k6S@WX~RQi!6H0*hz!dynkVf^cLW~ z`0_b2Mc91!_5_Y1(K1&{Se__bhq0+TzLm@Fe6*(UnKDmiPmwhNiZ()3Osycn+pR3g zaf6+0b@`GEGk!X=+thT4o8?AUQg{amt_;Z>xOD$Z7gAJoTMgwm&R^djAycMPEegga|lxl;Yk(hK^ERQQ9p=XwT>x z=F9T6CyUgP5q9Uz(w>2dR20M%`pKt1mwII%ivOSI7y1^gN06v6V&4ct2dOO7r?<4a ze!oRO^fH*Y-is1aJN>

~*-p#(PG6#375FrG(IIEW(+I;OHVo$kh>a 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

%JV9LlLfZ+`m1KSHbxd7X3*3M-qnw1 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 diff --git a/build-files/java/classes/sqlitejdbc-v054.jar b/build-files/java/classes/sqlitejdbc-v054.jar deleted file mode 100644 index 180de267ede9bfda0443ea1454d3f8fe353ad738..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2314530 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

1DC=_GP@t$pQ*CaYY7M1By>S8C$RYc;v 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

F?i1=ES*ZqN(LYmMC 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 ^;?c*8e4*6p$I1W$RW^7vS5f3i@ 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℞=4E=SJ?Sqwb#OQt^pCGPtLq{yV1T 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

s?NAdY6;xQdL`&{BiDPN`vckSk0lywh2D$ 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 Ux;x8>gfn6C-0-Xf(KR{9SHi07k`awVu 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%0AH|;Ulli&J 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

IUC`GZ)mLtUNgb48-2@&Fj1i03EIU2rJ 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 z%0A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 lX+EKw5OI};Ji1~o5|wOG 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

8jEVYnO#CY0VmI}` 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 wy-8LzSsfTOO*EPjt0_xSfgp*aQg;PUq7c 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

s{Q*T5%VM;LMjys`x6WW* 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 F1qaZ<~Wk$Dr!(vpp^rV#(7M;@tz9iHS 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 z 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 - LICENSE: Apache License 2.0 - See file 'LICENSE.md' in this project. - USAGE: java -jar run.jar - */ - -import java.io.File; -import java.net.URL; -import java.util.*; - -public class Run { - // requires java.io.File, java.net.URL - public static void main(String[] args) throws java.io.IOException { - - // get the absolute file path to the jar file containing this class - ClassLoader loader = Run.class.getClassLoader(); - - // url is like "file:/Users/michael/WorkArea/jsdoc/run.jar!/Run.class" - String jarUrl = loader.getResource("Run.class").getPath(); - - // parse the filepath out of the URL - String delims = "[:!]"; - String[] tokens = jarUrl.split(delims); - String jarPath = tokens[1]; - - // the base directory, assumed to contain main.js - String jarDir = new File(jarPath).getParent(); - String mainPath = jarDir + "/main.js"; - - // Rhino eats the first arg (the path to the script file it is running) - // so we add it twice: one for Rhino the next for us - String[] mainArgs = {mainPath, mainPath}; - String[] allArgs = concat(mainArgs, args); - - // main.js will now get arguments like: - // ["/abs/path/to/main.js", "-a", "aval", "-b", "bval"] - org.mozilla.javascript.tools.shell.Main.main(allArgs); - } - - // requires java.util - public static String[] concat(String[] a, String[] b) { - List ab = new ArrayList(a.length + b.length); - Collections.addAll(ab, a); - Collections.addAll(ab, b); - return ab.toArray(new String[] {}); - } -} diff --git a/build-files/templates/package.json b/build-files/templates/package.json deleted file mode 100644 index 3a39d8d9d..000000000 --- a/build-files/templates/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "@app.name@", - "version": "@app.version@", - "revision": "@timestamp@", - "description": "An automatic documentation generator for javascript.", - "keywords": [ "documentation", "javascript" ], - "licenses": [ - { - "type": "Apache 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0" - } - ], - "repositories": [ - { - "type": "git", - "url": "git://github.com/micmath/jsdoc.git" - }, - { - "type": "svn", - "url": "https://jsdoc.googlecode.com/svn/trunk" - } - ], - "bugs": "http://code.google.com/p/jsdoc/issues/list", - "contributors" : [ - { - "name": "Michael Mathews", - "email": "micmath@gmail.com" - } - ], - "maintainers": [ - { - "name": "Michael Mathews", - "email": "micmath@gmail.com" - } - ] -} diff --git a/build.xml b/build.xml deleted file mode 100644 index 7e2edd039..000000000 --- a/build.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/changes.md b/changes.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/conf.json b/conf.json deleted file mode 100644 index 4978ae7fa..000000000 --- a/conf.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "tags": { - "allowUnknownTags": true - }, - - "source": { - "includePattern": ".+\\.js(doc)?$", - "excludePattern": "(^|\\/)_" - }, - - "plugins": [ - ] - -} \ No newline at end of file diff --git a/jsdoc b/jsdoc deleted file mode 100755 index 0ccd48d0d..000000000 --- a/jsdoc +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -BASEDIR=`dirname $0` -java -classpath ${BASEDIR}/build-files/java/classes/js.jar -jar ${BASEDIR}/jsdoc.jar $@ - -# or possibly? -# java -classpath build-files/java/classes/js.jar org.mozilla.javascript.tools.shell.Main main.js `pwd` \ No newline at end of file diff --git a/main.js b/main.js deleted file mode 100644 index a837c8f34..000000000 --- a/main.js +++ /dev/null @@ -1,273 +0,0 @@ -/** - * @project jsdoc - * @author Michael Mathews - * @license See LICENSE.md file included in this distribution. - */ - -// try: $ java -classpath build-files/java/classes/js.jar org.mozilla.javascript.tools.shell.Main main.js `pwd` script/to/parse.js - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// - -/** The absolute path to the base directory of the jsdoc application. - @type string - @global - */ -const BASEDIR = (arguments[0].replace(/([\/\\])main\.js$/, '$1') + '/').replace('//', '/'); // expects argument[0] to the abspath to main.js - -/** Include a JavaScript module, defined in the CommonJS way. - @param {string} id The identifier of the module you require. - @returns {mixed} The module's "exports" value. - @see - */ -function require(id) { // like commonjs - var moduleContent = '', - moduleUri; - - for (var i = 0, len = require.paths.length; i < len; i++) { - moduleUri = require.paths[i] + '/' + id + '.js'; - moduleContent = ''; - - var file = new java.io.File(moduleUri); - if ( file.exists() && file.canRead() && !file.isDirectory() ) { - try { - var scanner = new java.util.Scanner(file).useDelimiter("\\Z"); - moduleContent = String( scanner.next() ); - } - catch(ignored) { } - - if (moduleContent) { break; } - } - } - - if (moduleContent) { - try { - var f = new Function('require', 'exports', 'module', moduleContent), - exports = require.cache[moduleUri] || {}, - module = { id: id, uri: moduleUri }; - - - f.call({}, require, exports, module); - } - catch(e) { - throw 'Unable to require source code from "' + moduleUri + '": ' + e.toSource(); - } - - exports = module.exports || exports; - require.cache[id] = exports; - } - else { - throw 'The requested module cannot be returned: no content for id: "' + id + '" in paths: ' + require.paths.join(', '); - } - - return exports; -} -require.root = BASEDIR; -require.paths = [ require.root + 'modules', require.root + 'modules/common' ]; -require.cache = {}; // cache module exports. Like: {id: exported} - - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// - - -/** Data representing the environment in which this app is running. - @namespace -*/ -env = { - /** Running start and finish times. */ - run: { - start: new Date(), - finish: null - }, - - /** - The command line arguments passed into jsdoc. - @type Array - */ - args: Array.prototype.slice.call(arguments, 1), // jsdoc.jar adds argument[0], the abspath to main.js, user args follow - - - /** - The parsed JSON data from the configuration file. - @type Object - */ - conf: {}, - - /** - The command line arguments, parsed into a key/value hash. - @type Object - @example if (env.opts.help) { print 'Helpful message.'; } - */ - opts: {} -}; - -/** - Data that must be shared across the entire application. - @namespace -*/ -app = { - jsdoc: { - scanner: new (require('jsdoc/src/scanner').Scanner)(), - parser: new (require('jsdoc/src/parser').Parser)(), - name: require('jsdoc/name') - } -} - -try { main(); } -catch(e) { - if (e.rhinoException != null) { - e.rhinoException.printStackTrace(); - } - else throw e; -} -finally { env.run.finish = new Date(); } - -/** Print string/s out to the console. - @param {string} ... String/s to print out to console. - */ -function print() { - for (var i = 0, leni = arguments.length; i < leni; i++) { - java.lang.System.out.println('' + arguments[i]); - } -} - -/** - Try to recursively print out all key/values in an object. - @global - @param {Object} ... Object/s to dump out to console. - */ -function dump() { - for (var i = 0, leni = arguments.length; i < leni; i++) { - print( require('common/dumper').dump(arguments[i]) ); - } -} - -/** @global - @param {string} filepath The path to the script file to include (read and execute). -*/ -function include(filepath) { - try { - load(BASEDIR + filepath); - } - catch (e) { - print('Cannot include "' + BASEDIR + filepath + '": '+e); - } -} - -/** - Cause the VM running jsdoc to exit running. - @param {number} [n = 0] The exit status. - */ -function exit(n) { - n = n || 0; - java.lang.System.exit(n); -} - - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// - - -/** - Run the jsoc application. - */ -function main() { - var sourceFiles, - packageJson, - docs, - jsdoc = { - opts: { - parser: require('jsdoc/opts/parser'), - } - }; - - env.opts = jsdoc.opts.parser.parse(env.args); - - try { - env.conf = JSON.parse( - require('fs').read( env.opts.configure || BASEDIR+'conf.json' ) - ); - } - catch (e) { - throw('Configuration file cannot be evaluated. '+e); - } - - if (env.opts.query) { - env.opts.query = require('query').toObject(env.opts.query); - } - - if (env.opts.help) { - print( jsdoc.opts.parser.help() ); - exit(0); - } - else if (env.opts.test) { - include('test/runner.js'); - exit(0); - } - - // allow user-defined plugins to register listeners - if (env.conf.plugins) { - for (var i = 0, leni = env.conf.plugins.length; i < leni; i++) { - include(env.conf.plugins[i]); - } - } - - // any source file named package.json is treated special - for (var i = 0, l = env.opts._.length; i < l; i++ ) { - if (/\bpackage\.json$/i.test(env.opts._[i])) { - packageJson = require('fs').read( env.opts._[i] ); - env.opts._.splice(i--, 1); - } - } - - if (env.opts._.length > 0) { // are there any files to scan and parse? - - var includeMatch = (env.conf.source && env.conf.source.includePattern)? new RegExp(env.conf.source.includePattern) : null, - excludeMatch = (env.conf.source && env.conf.source.excludePattern)? new RegExp(env.conf.source.excludePattern) : null; - - sourceFiles = app.jsdoc.scanner.scan(env.opts._, (env.opts.recurse? 10 : undefined), includeMatch, excludeMatch); - - require('jsdoc/src/handlers').attachTo(app.jsdoc.parser); - - docs = app.jsdoc.parser.parse(sourceFiles, env.opts.encoding); - - if (packageJson) { - var packageDocs = new (require('jsdoc/package').Package)(packageJson); - packageDocs.files = sourceFiles || []; - docs.push(packageDocs); - } - - function indexAll(docs) { - var lookupTable = {}; - - docs.forEach(function(doc) { - if ( !lookupTable.hasOwnProperty(doc.longname) ) { - lookupTable[doc.longname] = []; - } - lookupTable[doc.longname].push(doc); - }); - docs.index = lookupTable; - } - - indexAll(docs); - - require('jsdoc/borrow').resolveBorrows(docs); - - if (env.opts.expel) { - dump(docs); - exit(0); - } - - env.opts.template = env.opts.template || 'default'; - - // should define a global "publish" function - include('templates/' + env.opts.template + '/publish.js'); - - if (typeof publish === 'function') { - publish( - new (require('typicaljoe/taffy'))(docs), - env.opts - ); - } - else { // TODO throw no publish warning? - } - } -} \ No newline at end of file diff --git a/modules/common/args.js b/modules/common/args.js deleted file mode 100644 index 6bb7a3996..000000000 --- a/modules/common/args.js +++ /dev/null @@ -1,140 +0,0 @@ -/** - Parse the command line arguments. - @module common/args - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ -(function() { - - /** - Create an instance of the parser. - @classdesc A parser to interpret the key value pairs entered on the command - line. - @constructor - */ - exports.ArgParser = function() { - this._options = []; - } - - exports.ArgParser.prototype._getOptionByShortName = function(name) { - for (var i = this._options.length; i--;) { - if (this._options[i].shortName === name) { return this._options[i]; } - } - return null; - } - - exports.ArgParser.prototype._getOptionByLongName = function(name) { - for (var i = this._options.length; i--;) { - if (this._options[i].longName === name) { return this._options[i]; } - } - return null; - } - - /** - * Provide information about a legal option. - * @param {character} shortName The short name of the option, entered like: -T. - * @param {string} longName The equivalent long name of the option, entered like: --test. - * @param {boolean} hasValue Does this option require a value? Like: -t templatename - * @param {string} helpText - * @example - * myParser.addOption('t', 'template', true, 'The path to the template.'); - * myParser.addOption('h', 'help', false, 'Show the help message.'); - */ - exports.ArgParser.prototype.addOption = function(shortName, longName, hasValue, helpText) { - this._options.push({shortName: shortName, longName: longName, hasValue: hasValue, helpText: helpText}); - }; - - /** - Generate a summary of all the options with corresponding help text. - @returns {string} - */ - exports.ArgParser.prototype.help = function() { - var help = 'OPTIONS:\n', - option; - - for (var i = 0, leni = this._options.length; i < leni; i++) { - option = this._options[i]; - - if (option.shortName) { - help += '-' + option.shortName + (option.longName? ' or ' : ''); - } - - if (option.longName) { - help += '--' + option.longName; - } - - if (option.hasValue) { - help += ' '; - } - - help += ' ' + option.helpText + '\n'; - } - - return help; - }; - - /** - Get the options. - @param {Array.} args An array, like ['-x', 'hello'] - @param {Object} [defaults={}] An optional collection of default values. - @returns {Object} The keys will be the longNames, or the shortName if - no longName is defined for that option. The values will be the values - provided, or `true` if the option accepts no value. - */ - exports.ArgParser.prototype.parse = function(args, defaults) { - var result = defaults || {}; - - result._ = []; - - for (var i = 0, leni = args.length; i < leni; i++) { - var arg = '' + args[i], - next = (i < leni-1)? '' + args[i+1] : null, - option, - shortName, - longName, - name, - value = null; - - // like -t - if (arg.charAt(0) === '-') { - - // like: --template - if (arg.charAt(1) === '-') { - name = longName = arg.slice(2); - option = this._getOptionByLongName(longName); - } - else { - name = shortName = arg.slice(1); - option = this._getOptionByShortName(shortName); - } - - if (option === null) { - throw new Error( 'Unknown command line option found: ' + name ); - } - - if (option.hasValue) { - value = next; - i++; - - if (value === null || value.charAt(0) === '-') { - throw new Error( 'Command line option requires a value: ' + name ); - } - } - else { - value = true; - } - - if (option.longName && shortName) { - name = option.longName; - } - - result[name] = value; - } - else { - result._.push(arg); - } - } - - return result; - } -})(); \ No newline at end of file diff --git a/modules/common/assert.js b/modules/common/assert.js deleted file mode 100644 index a693dfbcc..000000000 --- a/modules/common/assert.js +++ /dev/null @@ -1,302 +0,0 @@ -// http://wiki.commonjs.org/wiki/Unit_Testing/1.0 -// -// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8! -// -// Originally from narwhal.js (http://narwhaljs.org) -// Copyright (c) 2009 Thomas Robinson <280north.com> -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the 'Software'), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -// UTILITY -var common = { util: require('common/util') };; -var pSlice = Array.prototype.slice; - -// 1. The assert module provides functions that throw -// AssertionError's when particular conditions are not met. The -// assert module must conform to the following interface. - -var assert = exports; - -// 2. The AssertionError is defined in assert. -// new assert.AssertionError({ message: message, -// actual: actual, -// expected: expected }) - -assert.AssertionError = function AssertionError(options) { - this.name = 'AssertionError'; - this.message = options.message; - this.actual = options.actual; - this.expected = options.expected; - this.operator = options.operator; - var stackStartFunction = options.stackStartFunction || fail; - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, stackStartFunction); - } -}; -common.util.inherits(assert.AssertionError, Error); - -assert.AssertionError.prototype.toString = function() { - if (this.message) { - return [this.name + ':', this.message].join(' '); - } else { - return [this.name + ':', - JSON.stringify(this.expected), - this.operator, - JSON.stringify(this.actual)].join(' '); - } -}; - -// assert.AssertionError instanceof Error - -assert.AssertionError.__proto__ = Error.prototype; - -// At present only the three keys mentioned above are used and -// understood by the spec. Implementations or sub modules can pass -// other keys to the AssertionError's constructor - they will be -// ignored. - -// 3. All of the following functions must throw an AssertionError -// when a corresponding condition is not met, with a message that -// may be undefined if not provided. All assertion methods provide -// both the actual and expected values to the assertion error for -// display purposes. - -function fail(actual, expected, message, operator, stackStartFunction) { - throw new assert.AssertionError({ - message: message, - actual: actual, - expected: expected, - operator: operator, - stackStartFunction: stackStartFunction - }); -} - -// EXTENSION! allows for well behaved errors defined elsewhere. -assert.fail = fail; - -// 4. Pure assertion tests whether a value is truthy, as determined -// by !!guard. -// assert.ok(guard, message_opt); -// This statement is equivalent to assert.equal(true, guard, -// message_opt);. To test strictly for the value true, use -// assert.strictEqual(true, guard, message_opt);. - -assert.ok = function ok(value, message) { - if (!!!value) fail(value, true, message, '==', assert.ok); -}; - -// 5. The equality assertion tests shallow, coercive equality with -// ==. -// assert.equal(actual, expected, message_opt); - -assert.equal = function equal(actual, expected, message) { - if (actual != expected) fail(actual, expected, message, '==', assert.equal); -}; - -// 6. The non-equality assertion tests for whether two objects are not equal -// with != assert.notEqual(actual, expected, message_opt); - -assert.notEqual = function notEqual(actual, expected, message) { - if (actual == expected) { - fail(actual, expected, message, '!=', assert.notEqual); - } -}; - -// 7. The equivalence assertion tests a deep equality relation. -// assert.deepEqual(actual, expected, message_opt); - -assert.deepEqual = function deepEqual(actual, expected, message) { - if (!_deepEqual(actual, expected)) { - fail(actual, expected, message, 'deepEqual', assert.deepEqual); - } -}; - -function _deepEqual(actual, expected) { - // 7.1. All identical values are equivalent, as determined by ===. - if (actual === expected) { - return true; - - } else if (this.Buffer && Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) { - if (actual.length != expected.length) return false; - - for (var i = 0; i < actual.length; i++) { - if (actual[i] !== expected[i]) return false; - } - - return true; - - // 7.2. If the expected value is a Date object, the actual value is - // equivalent if it is also a Date object that refers to the same time. - } else if (actual instanceof Date && expected instanceof Date) { - return actual.getTime() === expected.getTime(); - - // 7.3. Other pairs that do not both pass typeof value == 'object', - // equivalence is determined by ==. - } else if (typeof actual != 'object' && typeof expected != 'object') { - return actual == expected; - - // 7.4. For all other Object pairs, including Array objects, equivalence is - // determined by having the same number of owned properties (as verified - // with Object.prototype.hasOwnProperty.call), the same set of keys - // (although not necessarily the same order), equivalent values for every - // corresponding key, and an identical 'prototype' property. Note: this - // accounts for both named and indexed properties on Arrays. - } else { - return objEquiv(actual, expected); - } -} - -function isUndefinedOrNull(value) { - return value === null || value === undefined; -} - -function isArguments(object) { - return Object.prototype.toString.call(object) == '[object Arguments]'; -} - -function objEquiv(a, b) { - if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) - return false; - // an identical 'prototype' property. - if (a.prototype !== b.prototype) return false; - //~~~I've managed to break Object.keys through screwy arguments passing. - // Converting to array solves the problem. - if (isArguments(a)) { - if (!isArguments(b)) { - return false; - } - a = pSlice.call(a); - b = pSlice.call(b); - return _deepEqual(a, b); - } - try { - var ka = Object.keys(a), - kb = Object.keys(b), - key, i; - } catch (e) {//happens when one is a string literal and the other isn't - return false; - } - // having the same number of owned properties (keys incorporates - // hasOwnProperty) - if (ka.length != kb.length) - return false; - //the same set of keys (although not necessarily the same order), - ka.sort(); - kb.sort(); - //~~~cheap key test - for (i = ka.length - 1; i >= 0; i--) { - if (ka[i] != kb[i]) - return false; - } - //equivalent values for every corresponding key, and - //~~~possibly expensive deep test - for (i = ka.length - 1; i >= 0; i--) { - key = ka[i]; - if (!_deepEqual(a[key], b[key])) return false; - } - return true; -} - -// 8. The non-equivalence assertion tests for any deep inequality. -// assert.notDeepEqual(actual, expected, message_opt); - -assert.notDeepEqual = function notDeepEqual(actual, expected, message) { - if (_deepEqual(actual, expected)) { - fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual); - } -}; - -// 9. The strict equality assertion tests strict equality, as determined by ===. -// assert.strictEqual(actual, expected, message_opt); - -assert.strictEqual = function strictEqual(actual, expected, message) { - if (actual !== expected) { - fail(actual, expected, message, '===', assert.strictEqual); - } -}; - -// 10. The strict non-equality assertion tests for strict inequality, as -// determined by !==. assert.notStrictEqual(actual, expected, message_opt); - -assert.notStrictEqual = function notStrictEqual(actual, expected, message) { - if (actual === expected) { - fail(actual, expected, message, '!==', assert.notStrictEqual); - } -}; - -function expectedException(actual, expected) { - if (!actual || !expected) { - return false; - } - - if (expected instanceof RegExp) { - return expected.test(actual); - } else if (actual instanceof expected) { - return true; - } else if ( expected.call({}, actual) === true ) { - return true; - } - - return false; -} - -function _throws(shouldThrow, block, expected, message) { - var actual; - - if (typeof expected === 'string') { - message = expected; - expected = null; - } - - try { - block(); - } catch (e) { - actual = e; - } - - message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + - (message ? ' ' + message : '.'); - - if (shouldThrow && !actual) { - fail('Missing expected exception' + message); - } - - if (!shouldThrow && expectedException(actual, expected)) { - fail('Got unwanted exception' + message); - } - - if ((shouldThrow && actual && expected && - !expectedException(actual, expected)) || (!shouldThrow && actual)) { - throw actual; - } -} - -// 11. Expected to throw an error: -// assert.throws(block, Error_opt, message_opt); - -assert['throws'] = function(block, /*optional*/error, /*optional*/message) { - _throws.apply(this, [true].concat(pSlice.call(arguments))); -}; - -// EXTENSION! This is annoying to write outside this module. -assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) { - _throws.apply(this, [false].concat(pSlice.call(arguments))); -}; - -assert.ifError = function(err) { if (err) {throw err;}}; \ No newline at end of file diff --git a/modules/common/dumper.js b/modules/common/dumper.js deleted file mode 100644 index b7a094d96..000000000 --- a/modules/common/dumper.js +++ /dev/null @@ -1,158 +0,0 @@ -/** - Recursively print out all names and values in a data structure. - @module common/dumper - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ -(function() { - /** - @param {any} object - */ - exports.dump = function(object) { - indentBy = 0; - output = ''; - - walk(object); - outdent(false); - return output; - } - - const INDENTATION = ' '; // 4 spaces - var indentBy, - output; - - function pad(depth) { - var padding = ''; - while (depth--) { - padding += INDENTATION; - } - return padding; - } - - /** - @param {string} openingBrace - The opening brace to add, like "{". - @private - @inner - @memberof module:common/dumper - */ - function indent(openingBrace) { - indentBy++; - if (openingBrace) output += openingBrace + '\n'; - } - - /** - @param {string|boolean} closingBrace - The closing brace to add, like "}" or if boolean - `false` no closing brace or trailing newline. - @private - @inner - @memberof module:common/dumper - */ - function outdent(closingBrace) { - indentBy--; - output = output.replace(/,\n$/, '\n'); // trim trailing comma - if (closingBrace === false) { output = output.replace(/\n$/, ''); } - else if (closingBrace) output += pad(indentBy) + closingBrace + ',\n'; - } - - var seen = []; - seen.has = function(object) { - for (var i = 0, l = seen.length; i < l; i++) { - if (seen[i] === object) { return true; } - } - return false; - } - - function walk(object) { - var value; - - if ( value = getValue(object) ) { - output += value + ',\n'; - } - else if ( isUnwalkable(object) ) { - output += ',\n' - } - else if ( isRegExp(object) ) { - output += ',\n' - } - else if ( isDate(object) ) { - output += ',\n' - } - else if ( isFunction(object) ) { - output += ',\n'; - } - else if ( isArray(object) ) { - if ( seen.has(object) ) { - output += ',\n'; - return; - } - else { - seen.push(object); - } - - indent('['); - for (var i = 0, leni = object.length; i < leni; i++) { - output += pad(indentBy); // + i + ': '; - walk( object[i] ); - } - outdent(']'); - } - else if ( isObject(object) ) { - if ( seen.has(object) ) { - output += ',\n'; - return; - } - else { - seen.push(object); - } - - indent('{'); - for (var p in object) { - if ( object.hasOwnProperty(p) ) { - output += pad(indentBy) + stringify(p) + ': '; - walk( object[p] ); - } - } - outdent('}'); - } - } - - function getValue(o) { // see: https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/typeof - if (o === null) { return 'null'; } - if ( /^(string|boolean|number|undefined)$/.test(typeof o) ) { - return ''+stringify(o); - } - } - - function stringify(o) { - return JSON.stringify(o); - } - - function isUnwalkable(o) { // some objects are unwalkable, like Java native objects - return (typeof o === 'object' && typeof o.constructor === 'undefined'); - } - - function isArray(o) { - return o && (o instanceof Array) || o.constructor === Array; - } - - function isRegExp(o) { - return (o instanceof RegExp) || - (typeof o.constructor !== 'undefined' && o.constructor.name === 'RegExp'); - } - - function isDate(o) { - return o && (o instanceof Date) || - (typeof o.constructor !== 'undefined' && o.constructor.name === 'Date'); - } - - function isFunction(o) { - return o && (typeof o === 'function' || o instanceof Function);// || - //(typeof o.constructor !== 'undefined' && (o.constructor||{}).name === 'Function'); - } - - function isObject(o) { - return o && o instanceof Object || - (typeof o.constructor !== 'undefined' && o.constructor.name === 'Object'); - } - -})(); \ No newline at end of file diff --git a/modules/common/events.js b/modules/common/events.js deleted file mode 100644 index d2e9c500e..000000000 --- a/modules/common/events.js +++ /dev/null @@ -1,71 +0,0 @@ -/** - Functions related to events. Designed to be mixed into other classes. - @exports common/events - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. -*/ -module.exports = { - /** - @param {string} type - @param {function} handler - @returns {this} - */ - on: function(type, handler, context) { - if ( !type || !handler ) { - return; - } - if ( !context ) { context = this; } - - if ( !this.__bindings ) { this.__bindings = {}; } - // TODO check here for hasOwnProperty? - if ( !this.__bindings[type] ) { this.__bindings[type] = []; } - - var call = function(e) { - return handler.call(context, e); - }; - this.__bindings[type].push( {handler: handler, call: call} ); - - return this; // chainable - }, - - /** - @param {string} type - @param {object} [eventData] - @returns {this} - */ - fire: function(eventType, eventData) { - if ( !eventType || !this.__bindings || !this.__bindings[eventType] ) { - return; - } - - // run handlers in first-in-first-run order - for (var i = 0, leni = this.__bindings[eventType].length; i < leni; i++) { - if ( false === this.__bindings[eventType][i].call(eventData) ) { - if (eventData) { eventData.defaultPrevented = true; } - } - } - - return this; // chainable - }, - - /** - @param {string} type - @param {function} handler - */ - removeListener: function(type, handler) { - if ( !type || !handler || !this.__bindings || !this.__bindings[type] ) { - return; - } - - var i = this.__bindings[type].length; - while ( i-- ) { - if ( this.__bindings[type][i].handler === handler ) { - this.__bindings[type].splice(i, 1); - } - } - - if (this.__bindings[type].length === 0) { - delete this.__bindings[type]; - } - } -}; \ No newline at end of file diff --git a/modules/common/fs.js b/modules/common/fs.js deleted file mode 100644 index 04f67182f..000000000 --- a/modules/common/fs.js +++ /dev/null @@ -1,180 +0,0 @@ -/** - Functions related to interaction with the filesystem. - @module common/fs - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ - -(function() { - var slash = java.lang.System.getProperty('file.separator') || '/', - File = java.io.File, - defaultEncoding = java.lang.System.getProperty('file.encoding'); - - /** - Read the contents of a file. - @param {string} path - @param {string} encoding - @returns {string} The contents of the file. - */ - exports.read = function(path, encoding) { - var options = options || {}, - encoding = encoding || defaultEncoding, - input; - - input = new java.util.Scanner( - new File(path), - encoding - ).useDelimiter("\\Z"); - - return String( input.next() ); - } - - /** - Write the content to a file. - @param {string} path - @param {string} content - @param {string} encoding - */ - exports.write = function(path, content, encoding) { - var options = options || {}, - encoding = encoding || defaultEncoding, - output; - - output = new java.io.PrintWriter( - new java.io.OutputStreamWriter( - new java.io.FileOutputStream(path), - encoding - ) - ); - - output.write(content); - output.flush(); - output.close(); - } - - /** - * Check if a file exists. - * @param {string} path The file to check. - * @returns {boolean} - */ - exports.exists = function(path) { - var file = new File(path); - - if (file.isDirectory()){ - return true; - } - if (!file.exists()){ - return false; - } - if (!file.canRead()){ - return false; - } - return true; - } - - /** - * Get a list of all files in a given directory. Will not include files that - * start with a dot. - * @type string[] - * @param {string} dir The starting directory to look in. - * @param {number} [recurse=1] How many levels deep to scan. - * @returns {string[]} An array of {string} paths to the files in the given directory. - */ - exports.ls = function(dir, recurse, _allFiles, _path) { - var files, - file; - - if (typeof _path === 'undefined') { // initially - _allFiles = []; - _path = [dir]; - } - - if (_path.length === 0) { return _allFiles; } - if (typeof recurse === 'undefined') { recurse = 1; } - - dir = new File(dir); - if (!dir.directory) { return [String(dir)]; } - files = dir.list(); - - for (var f = 0, lenf = files.length; f < lenf; f++) { - file = String(files[f]); - - if (file.match(/^\.[^\.\/\\]/)) { continue; } // skip dot files - - if ((new File(_path.join(slash) + slash + file)).list()) { // it's a directory - _path.push(file); - - if (_path.length - 1 < recurse) { - exports.ls(_path.join(slash), recurse, _allFiles, _path); - } - _path.pop(); - } - else { // it's a file - _allFiles.push( - fixSlash( (_path.join(slash) + slash + file) ) - ); - } - } - - return _allFiles; - } - - exports.copyFile = function(inFile, outDir, fileName) { - if (fileName == null) fileName = exports.toFile(inFile); - - outDir = exports.toDir(outDir); - - var inFile = new File(inFile); - var outFile = new File(outDir+slash+fileName); - - var bis = new Packages.java.io.BufferedInputStream(new Packages.java.io.FileInputStream(inFile), 4096); - var bos = new Packages.java.io.BufferedOutputStream(new Packages.java.io.FileOutputStream(outFile), 4096); - var theChar; - while ((theChar = bis.read()) != -1) { - bos.write(theChar); - } - bos.close(); - bis.close(); - } - - exports.toDir = function(path) { - var file = new File(path); - - if (file.isDirectory()){ - return path; - } - - var parts = path.split(/[\\\/]/); - parts.pop(); - - return parts.join(slash); - } - - exports.toFile = function(path) { - var parts = path.split(/[\\\/]/); - return parts.pop(); - } - - exports.mkPath = function(/**Array*/ path) { - if (path.constructor != Array) path = path.split(/[\\\/]/); - var make = ""; - for (var i = 0, l = path.length; i < l; i++) { - make += path[i] + slash; - if (! exports.exists(make)) { - exports.makeDir(make); - } - } - } - - exports.makeDir = function(/**string*/ path) { - var dirPath = (exports.toDir(path)); - (new File(dirPath)).mkdir(); - } - - // fix multiple slashes, like one//two - function fixSlash(path) { - return path.replace(/[\/\\]+/g, slash); - } - -})(); - diff --git a/modules/common/query.js b/modules/common/query.js deleted file mode 100644 index 075f89857..000000000 --- a/modules/common/query.js +++ /dev/null @@ -1,42 +0,0 @@ -/** - @description Support parsing of command line querystrings into JS objects. - @module common/query - @example - - -q 'format=xml&root+node=documentation&publish=' - - > becomes - - { - "format": "xml", - "root node": "documentation", - "publish": true - } -*/ -(function() { - var query = module.exports = { - /** - @name module:common/query.toObject - @param {string} querystring - @returns {object} - */ - toObject: function(querystring) { - var object = {}; - - querystring.replace( - new RegExp('([^?=&]+)(?:=([^&]*))?', 'g'), - function($0, key, val) { - object[query._decode(key)] = - (typeof val !== 'undefined')? query._decode(val) : true; - } - ); - - return object; - }, - - /** @private */ - _decode: function(string) { - return decodeURIComponent( string.replace(/\+/g, ' ') ); - } - }; -})(); \ No newline at end of file diff --git a/modules/common/sqlite.js b/modules/common/sqlite.js deleted file mode 100644 index 7bc9f97ad..000000000 --- a/modules/common/sqlite.js +++ /dev/null @@ -1,55 +0,0 @@ -importPackage(java.sql); -java.lang.Class.forName('org.sqlite.JDBC'); - -var DB = exports.DB = function(dbname) { - this.dbname = dbname; -} - -DB.prototype.connect = function() { - this.conn = DriverManager.getConnection('jdbc:sqlite:' + this.dbname); - return this; -} - -DB.prototype.prepare = function(statement) { // like "insert into symbols values (?, ?, ?);" - this.prep = this.conn.prepareStatement(statement); - return this; -} - -DB.prototype.values = function() { // replaces "?" placeholders in prepared statement - for (var i = 0, leni = arguments.length; i < leni; i++) { - this.prep.setString(i+1, arguments[i]); - } - this.prep.addBatch(); - - return this; -} - -DB.prototype.commit = function() { - this.conn.setAutoCommit(false); - this.prep.executeBatch(); - this.conn.setAutoCommit(true); - - return this; -} - -DB.prototype.query = function(statement) { // like "select * from symbols;" - this.stat = this.conn.createStatement(); - this.resultSet = this.stat.executeQuery(statement); - - return this.resultSet; -} - -DB.prototype.update = function(statement) { // like "create table symbols (id, longname, kind);" - this.stat = this.conn.createStatement(); - this.resultSet = this.stat.executeUpdate(statement); - - return this; -} - -DB.prototype.close = function() { - if (this.resultSet) this.resultSet.close(); - if (this.stat) this.stat.close(); - if (this.conn) this.conn.close(); - - return this; -} diff --git a/modules/common/util.js b/modules/common/util.js deleted file mode 100644 index 1b57ee349..000000000 --- a/modules/common/util.js +++ /dev/null @@ -1,119 +0,0 @@ -/** - @module common/util - */ - -exports.print = function() { - for (var i = 0, len = arguments.length; i < len; ++i) { - java.lang.System.out.print(String(arguments[i])); - } -}; - -exports.puts = function() { - for (var i = 0, len = arguments.length; i < len; ++i) { - java.lang.System.out.println(arguments[i] + '\n'); - } -}; - -exports.debug = function(x) { - exports.puts('DEBUG: ' + x + '\n'); -}; - -var error = exports.error = function(x) { - for (var i = 0, len = arguments.length; i < len; ++i) { - exports.puts(arguments[i] + '\n'); - } -}; - -exports.format = { - stylize: function(str, styleType) { - // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics - var styles = - { 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] }; - - var style = - { 'special': 'cyan', - 'number': 'blue', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' }[styleType]; - - if (style) { - return '\033[' + styles[style][0] + 'm' + str + - '\033[' + styles[style][1] + 'm'; - } else { - return str; - } - }, - - pad: function (n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); - } -} - -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - -/** - * Create a timestamp string. - * @returns {string} Like 26 Feb 2011 16:19:34 - */ -exports.timestamp = function() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], d.getFullYear(), time].join(' '); -} - -exports.log = function(msg) { - exports.puts(exports.timestamp() + ' - ' + msg.toString()); -}; - -/** - * Inherit the prototype methods from one constructor into another. - * @param {function} ctor Constructor function which needs to inherit the prototype. - * @param {function} superCtor Constructor function to inherit prototype from. - */ -exports.inherits = function(ctor, superCtor) { - ctor.super_ = superCtor; - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { value: ctor, enumerable: false } - }); -}; - -/** - * Mix in the members of a source object over a target object. - * @param {object} target - * @param {object} source - */ -exports.mixin = function(target, source /*...*/){ - var sourceProperty; - - for (var i = 1, len = arguments.length; i < len; i++) { - source = arguments[i]; - - for (sourceProperty in source) { - if( source.hasOwnProperty(sourceProperty) ) { - target[sourceProperty] = source[sourceProperty]; // overwrites target property - } - } - } - - return target; -}; \ No newline at end of file diff --git a/modules/evilstreak/markdown.js b/modules/evilstreak/markdown.js deleted file mode 100644 index cdfbeb654..000000000 --- a/modules/evilstreak/markdown.js +++ /dev/null @@ -1,1446 +0,0 @@ -// Released under MIT license -// Copyright (c) 2009-2010 Dominic Baggott -// Copyright (c) 2009-2010 Ash Berlin - -(function( expose ) { - -/** - * class Markdown - * - * Markdown processing in Javascript done right. We have very particular views - * on what constitutes 'right' which include: - * - * - produces well-formed HTML (this means that em and strong nesting is - * important) - * - * - has an intermediate representation to allow processing of parsed data (We - * in fact have two, both as [JsonML]: a markdown tree and an HTML tree). - * - * - is easily extensible to add new dialects without having to rewrite the - * entire parsing mechanics - * - * - has a good test suite - * - * This implementation fulfills all of these (except that the test suite could - * do with expanding to automatically run all the fixtures from other Markdown - * implementations.) - * - * ##### Intermediate Representation - * - * *TODO* Talk about this :) Its JsonML, but document the node names we use. - * - * [JsonML]: http://jsonml.org/ "JSON Markup Language" - **/ -var Markdown = expose.Markdown = function Markdown(dialect) { - switch (typeof dialect) { - case "undefined": - this.dialect = Markdown.dialects.Gruber; - break; - case "object": - this.dialect = dialect; - break; - default: - if (dialect in Markdown.dialects) { - this.dialect = Markdown.dialects[dialect]; - } - else { - throw new Error("Unknown Markdown dialect '" + String(dialect) + "'"); - } - break; - } - this.em_state = []; - this.strong_state = []; - this.debug_indent = ""; -} - -/** - * parse( markdown, [dialect] ) -> JsonML - * - markdown (String): markdown string to parse - * - dialect (String | Dialect): the dialect to use, defaults to gruber - * - * Parse `markdown` and return a markdown document as a Markdown.JsonML tree. - **/ -expose.parse = function( source, dialect ) { - // dialect will default if undefined - var md = new Markdown( dialect ); - return md.toTree( source ); -} - -/** - * toHTML( markdown ) -> String - * toHTML( md_tree ) -> String - * - markdown (String): markdown string to parse - * - md_tree (Markdown.JsonML): parsed markdown tree - * - * Take markdown (either as a string or as a JsonML tree) and run it through - * [[toHTMLTree]] then turn it into a well-formated HTML fragment. - **/ -expose.toHTML = function toHTML( source ) { - var input = expose.toHTMLTree( source ); - - return expose.renderJsonML( input ); -} - -/** - * toHTMLTree( markdown, [dialect] ) -> JsonML - * toHTMLTree( md_tree ) -> JsonML - * - markdown (String): markdown string to parse - * - dialect (String | Dialect): the dialect to use, defaults to gruber - * - md_tree (Markdown.JsonML): parsed markdown tree - * - * Turn markdown into HTML, represented as a JsonML tree. If a string is given - * to this function, it is first parsed into a markdown tree by calling - * [[parse]]. - **/ -expose.toHTMLTree = function toHTMLTree( input, dialect ) { - // convert string input to an MD tree - if ( typeof input ==="string" ) input = this.parse( input, dialect ); - - // Now convert the MD tree to an HTML tree - - // remove references from the tree - var attrs = extract_attr( input ), - refs = {}; - - if ( attrs && attrs.references ) { - refs = attrs.references; - } - - var html = convert_tree_to_html( input, refs ); - merge_text_nodes( html ); - return html; -} - -var mk_block = Markdown.mk_block = function(block, trail, line) { - // Be helpful for default case in tests. - if ( arguments.length == 1 ) trail = "\n\n"; - - var s = new String(block); - s.trailing = trail; - // To make it clear its not just a string - s.toSource = function() { - return "Markdown.mk_block( " + - uneval(block) + - ", " + - uneval(trail) + - ", " + - uneval(line) + - " )" - } - - if (line != undefined) - s.lineNumber = line; - - return s; -} - -function count_lines( str ) { - var n = 0, i = -1;; - while ( ( i = str.indexOf('\n', i+1) ) != -1) n++; - return n; -} - -// Internal - split source into rough blocks -Markdown.prototype.split_blocks = function splitBlocks( input, startLine ) { - // [\s\S] matches _anything_ (newline or space) - var re = /([\s\S]+?)($|\n(?:\s*\n|$)+)/g, - blocks = [], - m; - - var line_no = 1; - - if ( ( m = (/^(\s*\n)/)(input) ) != null ) { - // skip (but count) leading blank lines - line_no += count_lines( m[0] ); - re.lastIndex = m[0].length; - } - - while ( ( m = re(input) ) != null ) { - blocks.push( mk_block( m[1], m[2], line_no ) ); - line_no += count_lines( m[0] ); - } - - return blocks; -} - -/** - * Markdown#processBlock( block, next ) -> undefined | [ JsonML, ... ] - * - block (String): the block to process - * - next (Array): the following blocks - * - * Process `block` and return an array of JsonML nodes representing `block`. - * - * It does this by asking each block level function in the dialect to process - * the block until one can. Succesful handling is indicated by returning an - * array (with zero or more JsonML nodes), failure by a false value. - * - * Blocks handlers are responsible for calling [[Markdown#processInline]] - * themselves as appropriate. - * - * If the blocks were split incorrectly or adjacent blocks need collapsing you - * can adjust `next` in place using shift/splice etc. - * - * If any of this default behaviour is not right for the dialect, you can - * define a `__call__` method on the dialect that will get invoked to handle - * the block processing. - */ -Markdown.prototype.processBlock = function processBlock( block, next ) { - var cbs = this.dialect.block, - ord = cbs.__order__; - - if ( "__call__" in cbs ) { - return cvs.__call__.call(this, block, next); - } - - for ( var i = 0; i < ord.length; i++ ) { - //D:this.debug( "Testing", ord[i] ); - var res = cbs[ ord[i] ].call( this, block, next ); - if ( res ) { - //D:this.debug(" matched"); - if ( !res instanceof Array || ( res.length > 0 && !( res[0] instanceof Array ) ) ) - this.debug(ord[i], "didn't return a proper array"); - //D:this.debug( "" ); - return res; - } - } - - // Uhoh! no match! Should we throw an error? - return []; -} - -Markdown.prototype.processInline = function processInline( block ) { - return this.dialect.inline.__call__.call( this, String( block ) ); -} - -/** - * Markdown#toTree( source ) -> JsonML - * - source (String): markdown source to parse - * - * Parse `source` into a JsonML tree representing the markdown document. - **/ -// custom_tree means set this.tree to `custom_tree` and restore old value on return -Markdown.prototype.toTree = function toTree( source, custom_root ) { - var blocks = source instanceof Array - ? source - : this.split_blocks( source ); - - // Make tree a member variable so its easier to mess with in extensions - var old_tree = this.tree; - try { - this.tree = custom_root || this.tree || [ "markdown" ]; - - blocks: - while ( blocks.length ) { - var b = this.processBlock( blocks.shift(), blocks ); - - // Reference blocks and the like won't return any content - if ( !b.length ) continue blocks; - - this.tree.push.apply( this.tree, b ); - } - return this.tree; - } - finally { - if ( custom_root ) - this.tree = old_tree; - } - -} - -// Noop by default -Markdown.prototype.debug = function () { - var args = Array.prototype.slice.call( arguments); - args.unshift(this.debug_indent); - print.apply( print, args ); -} - -Markdown.prototype.loop_re_over_block = function( re, block, cb ) { - // Dont use /g regexps with this - var m, - b = block.valueOf(); - - while ( b.length && (m = re(b) ) != null) { - b = b.substr( m[0].length ); - cb.call(this, m); - } - return b; -} - -/** - * Markdown.dialects - * - * Namespace of built-in dialects. - **/ -Markdown.dialects = {}; - -/** - * Markdown.dialects.Gruber - * - * The default dialect that follows the rules set out by John Gruber's - * markdown.pl as closely as possible. Well actually we follow the behaviour of - * that script which in some places is not exactly what the syntax web page - * says. - **/ -Markdown.dialects.Gruber = { - block: { - atxHeader: function atxHeader( block, next ) { - var m = block.match( /^(#{1,6})\s*(.*?)\s*#*\s*(?:\n|$)/ ); - - if ( !m ) return undefined; - - var header = [ "header", { level: m[ 1 ].length }, m[ 2 ] ]; - - if ( m[0].length < block.length ) - next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) ); - - return [ header ]; - }, - - setextHeader: function setextHeader( block, next ) { - var m = block.match( /^(.*)\n([-=])\2\2+(?:\n|$)/ ); - - if ( !m ) return undefined; - - var level = ( m[ 2 ] === "=" ) ? 1 : 2; - var header = [ "header", { level : level }, m[ 1 ] ]; - - if ( m[0].length < block.length ) - next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) ); - - return [ header ]; - }, - - code: function code( block, next ) { - // | Foo - // |bar - // should be a code block followed by a paragraph. Fun - // - // There might also be adjacent code block to merge. - - var ret = [], - re = /^(?: {0,3}\t| {4})(.*)\n?/, - lines; - - // 4 spaces + content - var m = block.match( re ); - - if ( !m ) return undefined; - - block_search: - do { - // Now pull out the rest of the lines - var b = this.loop_re_over_block( - re, block.valueOf(), function( m ) { ret.push( m[1] ) } ); - - if (b.length) { - // Case alluded to in first comment. push it back on as a new block - next.unshift( mk_block(b, block.trailing) ); - break block_search; - } - else if (next.length) { - // Check the next block - it might be code too - var m = next[0].match( re ); - - if ( !m ) break block_search; - - // Pull how how many blanks lines follow - minus two to account for .join - ret.push ( block.trailing.replace(/[^\n]/g, '').substring(2) ); - - block = next.shift(); - } - else - break block_search; - } while (true); - - return [ [ "code_block", ret.join("\n") ] ]; - }, - - horizRule: function horizRule( block, next ) { - // this needs to find any hr in the block to handle abutting blocks - var m = block.match( /^(?:([\s\S]*?)\n)?[ \t]*([-_*])(?:[ \t]*\2){2,}[ \t]*(?:\n([\s\S]*))?$/ ); - - if ( !m ) { - return undefined; - } - - var jsonml = [ [ "hr" ] ]; - - // if there's a leading abutting block, process it - if ( m[ 1 ] ) { - jsonml.unshift.apply( jsonml, this.processBlock( m[ 1 ], [] ) ); - } - - // if there's a trailing abutting block, stick it into next - if ( m[ 3 ] ) { - next.unshift( mk_block( m[ 3 ] ) ); - } - - return jsonml; - }, - - // There are two types of lists. Tight and loose. Tight lists have no whitespace - // between the items (and result in text just in the
  • ) and loose lists, - // which have an empty line between list items, resulting in (one or more) - // paragraphs inside the
  • . - // - // There are all sorts weird edge cases about the original markdown.pl's - // handling of lists: - // - // * Nested lists are supposed to be indented by four chars per level. But - // if they aren't, you can get a nested list by indenting by less than - // four so long as the indent doesn't match an indent of an existing list - // item in the 'nest stack'. - // - // * The type of the list (bullet or number) is controlled just by the - // first item at the indent. Subsequent changes are ignored unless they - // are for nested lists - // - lists: (function( ) { - // Use a closure to hide a few variables. - var any_list = "[*+-]|\\d\\.", - bullet_list = /[*+-]/, - number_list = /\d+\./, - // Capture leading indent as it matters for determining nested lists. - is_list_re = new RegExp( "^( {0,3})(" + any_list + ")[ \t]+" ), - indent_re = "(?: {0,3}\\t| {4})"; - - // TODO: Cache this regexp for certain depths. - // Create a regexp suitable for matching an li for a given stack depth - function regex_for_depth( depth ) { - - return new RegExp( - // m[1] = indent, m[2] = list_type - "(?:^(" + indent_re + "{0," + depth + "} {0,3})(" + any_list + ")\\s+)|" + - // m[3] = cont - "(^" + indent_re + "{0," + (depth-1) + "}[ ]{0,4})" - ); - } - function expand_tab( input ) { - return input.replace( / {0,3}\t/g, " " ); - } - - // Add inline content `inline` to `li`. inline comes from processInline - // so is an array of content - function add(li, loose, inline, nl) { - if (loose) { - li.push( [ "para" ].concat(inline) ); - return; - } - // Hmmm, should this be any block level element or just paras? - var add_to = li[li.length -1] instanceof Array && li[li.length - 1][0] == "para" - ? li[li.length -1] - : li; - - // If there is already some content in this list, add the new line in - if (nl && li.length > 1) inline.unshift(nl); - - for (var i=0; i < inline.length; i++) { - var what = inline[i], - is_str = typeof what == "string"; - if (is_str && add_to.length > 1 && typeof add_to[add_to.length-1] == "string" ) - { - add_to[ add_to.length-1 ] += what; - } - else { - add_to.push( what ); - } - } - } - - // contained means have an indent greater than the current one. On - // *every* line in the block - function get_contained_blocks( depth, blocks ) { - - var re = new RegExp( "^(" + indent_re + "{" + depth + "}.*?\\n?)*$" ), - replace = new RegExp("^" + indent_re + "{" + depth + "}", "gm"), - ret = []; - - while ( blocks.length > 0 ) { - if ( re( blocks[0] ) ) { - var b = blocks.shift(), - // Now remove that indent - x = b.replace( replace, ""); - - ret.push( mk_block( x, b.trailing, b.lineNumber ) ); - } - break; - } - return ret; - } - - // passed to stack.forEach to turn list items up the stack into paras - function paragraphify(s, i, stack) { - var list = s.list; - var last_li = list[list.length-1]; - - if (last_li[1] instanceof Array && last_li[1][0] == "para") { - return; - } - if (i+1 == stack.length) { - // Last stack frame - // Keep the same array, but replace the contents - last_li.push( ["para"].concat( last_li.splice(1) ) ); - } - else { - var sublist = last_li.pop(); - last_li.push( ["para"].concat( last_li.splice(1) ), sublist ); - } - } - - // The matcher function - return function( block, next ) { - var m = block.match( is_list_re ); - if ( !m ) return undefined; - - function make_list( m ) { - var list = bullet_list( m[2] ) - ? ["bulletlist"] - : ["numberlist"]; - - stack.push( { list: list, indent: m[1] } ); - return list; - } - - - var stack = [], // Stack of lists for nesting. - list = make_list( m ), - last_li, - loose = false, - ret = [ stack[0].list ]; - - // Loop to search over block looking for inner block elements and loose lists - loose_search: - while( true ) { - // Split into lines preserving new lines at end of line - var lines = block.split( /(?=\n)/ ); - - // We have to grab all lines for a li and call processInline on them - // once as there are some inline things that can span lines. - var li_accumulate = ""; - - // Loop over the lines in this block looking for tight lists. - tight_search: - for (var line_no=0; line_no < lines.length; line_no++) { - var nl = "", - l = lines[line_no].replace(/^\n/, function(n) { nl = n; return "" }); - - // TODO: really should cache this - var line_re = regex_for_depth( stack.length ); - - m = l.match( line_re ); - //print( "line:", uneval(l), "\nline match:", uneval(m) ); - - // We have a list item - if ( m[1] !== undefined ) { - // Process the previous list item, if any - if ( li_accumulate.length ) { - add( last_li, loose, this.processInline( li_accumulate ), nl ); - // Loose mode will have been dealt with. Reset it - loose = false; - li_accumulate = ""; - } - - m[1] = expand_tab( m[1] ); - var wanted_depth = Math.floor(m[1].length/4)+1; - //print( "want:", wanted_depth, "stack:", stack.length); - if ( wanted_depth > stack.length ) { - // Deep enough for a nested list outright - //print ( "new nested list" ); - list = make_list( m ); - last_li.push( list ); - last_li = list[1] = [ "listitem" ]; - } - else { - // We aren't deep enough to be strictly a new level. This is - // where Md.pl goes nuts. If the indent matches a level in the - // stack, put it there, else put it one deeper then the - // wanted_depth deserves. - var found = stack.some(function(s, i) { - if ( s.indent != m[1] ) return false; - list = s.list; // Found the level we want - stack.splice(i+1); // Remove the others - //print("found"); - return true; // And stop looping - }); - - if (!found) { - //print("not found. l:", uneval(l)); - wanted_depth++; - if (wanted_depth <= stack.length) { - stack.splice(wanted_depth); - //print("Desired depth now", wanted_depth, "stack:", stack.length); - list = stack[wanted_depth-1].list; - //print("list:", uneval(list) ); - } - else { - //print ("made new stack for messy indent"); - list = make_list(m); - last_li.push(list); - } - } - - //print( uneval(list), "last", list === stack[stack.length-1].list ); - last_li = [ "listitem" ]; - list.push(last_li); - } // end depth of shenegains - nl = ""; - } - - // Add content - if (l.length > m[0].length) { - li_accumulate += nl + l.substr( m[0].length ); - } - } // tight_search - - if ( li_accumulate.length ) { - add( last_li, loose, this.processInline( li_accumulate ), nl ); - // Loose mode will have been dealt with. Reset it - loose = false; - li_accumulate = ""; - } - - // Look at the next block - we might have a loose list. Or an extra - // paragraph for the current li - var contained = get_contained_blocks( stack.length, next ); - - // Deal with code blocks or properly nested lists - if (contained.length > 0) { - // Make sure all listitems up the stack are paragraphs - stack.forEach( paragraphify, this ); - - last_li.push.apply( last_li, this.toTree( contained, [] ) ); - } - - var next_block = next[0] && next[0].valueOf() || ""; - - if ( next_block.match(is_list_re) || next_block.match( /^ / ) ) { - block = next.shift(); - - // Check for an HR following a list: features/lists/hr_abutting - var hr = this.dialect.block.horizRule( block, next ); - - if (hr) { - ret.push.apply(ret, hr); - break; - } - - // Make sure all listitems up the stack are paragraphs - stack.forEach( paragraphify , this ); - - loose = true; - continue loose_search; - } - break; - } // loose_search - - return ret; - } - })(), - - blockquote: function blockquote( block, next ) { - if ( !block.match( /^>/m ) ) - return undefined; - - var jsonml = []; - - // separate out the leading abutting block, if any - if ( block[ 0 ] != ">" ) { - var lines = block.split( /\n/ ), - prev = []; - - // keep shifting lines until you find a crotchet - while ( lines.length && lines[ 0 ][ 0 ] != ">" ) { - prev.push( lines.shift() ); - } - - // reassemble! - block = lines.join( "\n" ); - jsonml.push.apply( jsonml, this.processBlock( prev.join( "\n" ), [] ) ); - } - - // if the next block is also a blockquote merge it in - while ( next.length && next[ 0 ][ 0 ] == ">" ) { - var b = next.shift(); - block += block.trailing + b; - block.trailing = b.trailing; - } - - // Strip off the leading "> " and re-process as a block. - var input = block.replace( /^> ?/gm, '' ), - old_tree = this.tree; - jsonml.push( this.toTree( input, [ "blockquote" ] ) ); - - return jsonml; - }, - - referenceDefn: function referenceDefn( block, next) { - var re = /^\s*\[(.*?)\]:\s*(\S+)(?:\s+(?:(['"])(.*?)\3|\((.*?)\)))?\n?/; - // interesting matches are [ , ref_id, url, , title, title ] - - if ( !block.match(re) ) - return undefined; - - // make an attribute node if it doesn't exist - if ( !extract_attr( this.tree ) ) { - this.tree.splice( 1, 0, {} ); - } - - var attrs = extract_attr( this.tree ); - - // make a references hash if it doesn't exist - if ( attrs.references === undefined ) { - attrs.references = {}; - } - - var b = this.loop_re_over_block(re, block, function( m ) { - - if ( m[2] && m[2][0] == '<' && m[2][m[2].length-1] == '>' ) - m[2] = m[2].substring( 1, m[2].length - 1 ); - - var ref = attrs.references[ m[1].toLowerCase() ] = { - href: m[2] - }; - - if (m[4] !== undefined) - ref.title = m[4]; - else if (m[5] !== undefined) - ref.title = m[5]; - - } ); - - if (b.length) - next.unshift( mk_block( b, block.trailing ) ); - - return []; - }, - - para: function para( block, next ) { - // everything's a para! - return [ ["para"].concat( this.processInline( block ) ) ]; - } - } -} - -Markdown.dialects.Gruber.inline = { - __call__: function inline( text, patterns ) { - // Hmmm - should this function be directly in Md#processInline, or - // conversely, should Md#processBlock be moved into block.__call__ too - var out = [ ], - m, - // Look for the next occurange of a special character/pattern - re = new RegExp( "([\\s\\S]*?)(" + (patterns.source || patterns) + ")", "g" ), - lastIndex = 0; - - //D:var self = this; - //D:self.debug("processInline:", uneval(text) ); - function add(x) { - //D:self.debug(" adding output", uneval(x)); - if (typeof x == "string" && typeof out[out.length-1] == "string") - out[ out.length-1 ] += x; - else - out.push(x); - } - - while ( ( m = re.exec(text) ) != null) { - if ( m[1] ) add( m[1] ); // Some un-interesting text matched - else m[1] = { length: 0 }; // Or there was none, but make m[1].length == 0 - - var res; - if ( m[2] in this.dialect.inline ) { - res = this.dialect.inline[ m[2] ].call( - this, - text.substr( m.index + m[1].length ), m, out ); - } - // Default for now to make dev easier. just slurp special and output it. - res = res || [ m[2].length, m[2] ]; - - var len = res.shift(); - // Update how much input was consumed - re.lastIndex += ( len - m[2].length ); - - // Add children - res.forEach(add); - - lastIndex = re.lastIndex; - } - - // Add last 'boring' chunk - if ( text.length > lastIndex ) - add( text.substr( lastIndex ) ); - - return out; - }, - - "\\": function escaped( text ) { - // [ length of input processed, node/children to add... ] - // Only esacape: \ ` * _ { } [ ] ( ) # * + - . ! - if ( text.match( /^\\[\\`\*_{}\[\]()#\+.!\-]/ ) ) - return [ 2, text[1] ]; - else - // Not an esacpe - return [ 1, "\\" ]; - }, - - "![": function image( text ) { - // ![Alt text](/path/to/img.jpg "Optional title") - // 1 2 3 4 <--- captures - var m = text.match( /^!\[(.*?)\][ \t]*\([ \t]*(\S*)(?:[ \t]+(["'])(.*?)\3)?[ \t]*\)/ ); - - if ( m ) { - if ( m[2] && m[2][0] == '<' && m[2][m[2].length-1] == '>' ) - m[2] = m[2].substring( 1, m[2].length - 1 ); - - m[2] == this.dialect.inline.__call__.call( this, m[2], /\\/ )[0]; - - var attrs = { alt: m[1], href: m[2] || "" }; - if ( m[4] !== undefined) - attrs.title = m[4]; - - return [ m[0].length, [ "img", attrs ] ]; - } - - // ![Alt text][id] - m = text.match( /^!\[(.*?)\][ \t]*\[(.*?)\]/ ); - - if ( m ) { - // We can't check if the reference is known here as it likely wont be - // found till after. Check it in md tree->hmtl tree conversion - return [ m[0].length, [ "img_ref", { alt: m[1], ref: m[2].toLowerCase(), text: m[0] } ] ]; - } - - // Just consume the '![' - return [ 2, "![" ]; - }, - - "[": function link( text ) { - // [link text](/path/to/img.jpg "Optional title") - // 1 2 3 4 <--- captures - var m = text.match( /^\[([\s\S]*?)\][ \t]*\([ \t]*(\S+)(?:[ \t]+(["'])(.*?)\3)?[ \t]*\)/ ); - - if ( m ) { - if ( m[2] && m[2][0] == '<' && m[2][m[2].length-1] == '>' ) - m[2] = m[2].substring( 1, m[2].length - 1 ); - - // Process escapes only - m[2] = this.dialect.inline.__call__.call( this, m[2], /\\/ )[0]; - - var attrs = { href: m[2] || "" }; - if ( m[4] !== undefined) - attrs.title = m[4]; - - return [ m[0].length, [ "link", attrs, m[1] ] ]; - } - - // [Alt text][id] - // [Alt text] [id] - // [id] - m = text.match( /^\[([\s\S]*?)\](?: ?\[(.*?)\])?/ ); - - if ( m ) { - // [id] case, text == id - if ( m[2] === undefined || m[2] === "" ) m[2] = m[1]; - - // We can't check if the reference is known here as it likely wont be - // found till after. Check it in md tree->hmtl tree conversion. - // Store the original so that conversion can revert if the ref isn't found. - return [ - m[ 0 ].length, - [ - "link_ref", - { - ref: m[ 2 ].toLowerCase(), - original: m[ 0 ] - }, - m[ 1 ] - ] - ]; - } - - // Just consume the '[' - return [ 1, "[" ]; - }, - - - "<": function autoLink( text ) { - var m; - - if ( ( m = text.match( /^<(?:((https?|ftp|mailto):[^>]+)|(.*?@.*?\.[a-zA-Z]+))>/ ) ) != null ) { - if ( m[3] ) { - return [ m[0].length, [ "link", { href: "mailto:" + m[3] }, m[3] ] ]; - - } - else if ( m[2] == "mailto" ) { - return [ m[0].length, [ "link", { href: m[1] }, m[1].substr("mailto:".length ) ] ]; - } - else - return [ m[0].length, [ "link", { href: m[1] }, m[1] ] ]; - } - - return [ 1, "<" ]; - }, - - "`": function inlineCode( text ) { - // Inline code block. as many backticks as you like to start it - // Always skip over the opening ticks. - var m = text.match( /(`+)(([\s\S]*?)\1)/ ); - - if ( m && m[2] ) - return [ m[1].length + m[2].length, [ "inlinecode", m[3] ] ]; - else { - // TODO: No matching end code found - warn! - return [ 1, "`" ]; - } - }, - - " \n": function lineBreak( text ) { - return [ 3, [ "linebreak" ] ]; - } - -} - -// Meta Helper/generator method for em and strong handling -function strong_em( tag, md ) { - - var state_slot = tag + "_state", - other_slot = tag == "strong" ? "em_state" : "strong_state"; - - function CloseTag(len) { - this.len_after = len; - this.name = "close_" + md; - } - - return function ( text, orig_match ) { - - if (this[state_slot][0] == md) { - // Most recent em is of this type - //D:this.debug("closing", md); - this[state_slot].shift(); - - // "Consume" everything to go back to the recrusion in the else-block below - return[ text.length, new CloseTag(text.length-md.length) ]; - } - else { - // Store a clone of the em/strong states - var other = this[other_slot].slice(), - state = this[state_slot].slice(); - - this[state_slot].unshift(md); - - //D:this.debug_indent += " "; - - // Recurse - var res = this.processInline( text.substr( md.length ) ); - //D:this.debug_indent = this.debug_indent.substr(2); - - var last = res[res.length - 1]; - - //D:this.debug("processInline from", tag + ": ", uneval( res ) ); - - var check = this[state_slot].shift(); - if (last instanceof CloseTag) { - res.pop(); - // We matched! Huzzah. - var consumed = text.length - last.len_after; - return [ consumed, [ tag ].concat(res) ]; - } - else { - // Restore the state of the other kind. We might have mistakenly closed it. - this[other_slot] = other; - this[state_slot] = state; - - // We can't reuse the processed result as it could have wrong parsing contexts in it. - return [ md.length, md ]; - } - } - } // End returned function -} - -Markdown.dialects.Gruber.inline["**"] = strong_em("strong", "**"); -Markdown.dialects.Gruber.inline["__"] = strong_em("strong", "__"); -Markdown.dialects.Gruber.inline["*"] = strong_em("em", "*"); -Markdown.dialects.Gruber.inline["_"] = strong_em("em", "_"); - - -// Build default order from insertion order. -Markdown.buildBlockOrder = function(d) { - var ord = []; - for ( var i in d ) { - if ( i == "__order__" || i == "__call__" ) continue; - ord.push( i ); - } - d.__order__ = ord; -} - -// Build patterns for inline matcher -Markdown.buildInlinePatterns = function(d) { - var patterns = []; - - for ( var i in d ) { - if (i == "__call__") continue; - var l = i.replace( /([\\.*+?|()\[\]{}])/g, "\\$1" ) - .replace( /\n/, "\\n" ); - patterns.push( i.length == 1 ? l : "(?:" + l + ")" ); - } - - patterns = patterns.join("|"); - //print("patterns:", uneval( patterns ) ); - - var fn = d.__call__; - d.__call__ = function(text, pattern) { - if (pattern != undefined) - return fn.call(this, text, pattern); - else - return fn.call(this, text, patterns); - } -} - -// Helper function to make sub-classing a dialect easier -Markdown.subclassDialect = function( d ) { - function Block() {}; - Block.prototype = d.block; - function Inline() {}; - Inline.prototype = d.inline; - - return { block: new Block(), inline: new Inline() }; -} - -Markdown.buildBlockOrder ( Markdown.dialects.Gruber.block ); -Markdown.buildInlinePatterns( Markdown.dialects.Gruber.inline ); - -Markdown.dialects.Maruku = Markdown.subclassDialect( Markdown.dialects.Gruber ); - -Markdown.dialects.Maruku.block.document_meta = function document_meta( block, next ) { - // we're only interested in the first block - if ( block.lineNumber > 1 ) return undefined; - - // document_meta blocks consist of one or more lines of `Key: Value\n` - if ( ! block.match( /^(?:\w+:.*\n)*\w+:.*$/ ) ) return undefined; - - // make an attribute node if it doesn't exist - if ( !extract_attr( this.tree ) ) { - this.tree.splice( 1, 0, {} ); - } - - var pairs = block.split( /\n/ ); - for ( p in pairs ) { - var m = pairs[ p ].match( /(\w+):\s*(.*)$/ ), - key = m[ 1 ].toLowerCase(), - value = m[ 2 ]; - - this.tree[ 1 ][ key ] = value; - } - - // document_meta produces no content! - return []; -} - -Markdown.dialects.Maruku.block.block_meta = function block_meta( block, next ) { - // check if the last line of the block is an meta hash - var m = block.match( /(^|\n) {0,3}\{:\s*((?:\\\}|[^\}])*)\s*\}$/ ); - if ( !m ) return undefined; - - // process the meta hash - var attr = process_meta_hash( m[ 2 ] ); - - // if we matched ^ then we need to apply meta to the previous block - if ( m[ 1 ] === "" ) { - var node = this.tree[ this.tree.length - 1 ], - hash = extract_attr( node ); - - // if the node is a string (rather than JsonML), bail - if ( typeof node === "string" ) return undefined; - - // create the attribute hash if it doesn't exist - if ( !hash ) { - hash = {}; - node.splice( 1, 0, hash ); - } - - // add the attributes in - for ( a in attr ) { - hash[ a ] = attr[ a ]; - } - - // return nothing so the meta hash is removed - return []; - } - - // pull the meta hash off the block and process what's left - var b = block.replace( /\n.*$/, "" ), - result = this.processBlock( b, [] ); - - // get or make the attributes hash - var hash = extract_attr( result[ 0 ] ); - if ( !hash ) { - hash = {}; - result[ 0 ].splice( 1, 0, hash ); - } - - // attach the attributes to the block - for ( a in attr ) { - hash[ a ] = attr[ a ]; - } - - return result; -} - -Markdown.dialects.Maruku.block.definition_list = function definition_list( block, next ) { - // one or more terms followed by one or more definitions, in a single block - var tight = /^((?:[^\s:].*\n)+):\s+([^]+)$/, - list = [ "dl" ]; - - // see if we're dealing with a tight or loose block - if ( ( m = block.match( tight ) ) ) { - // pull subsequent tight DL blocks out of `next` - var blocks = [ block ]; - while ( next.length && tight.exec( next[ 0 ] ) ) { - blocks.push( next.shift() ); - } - - for ( var b = 0; b < blocks.length; ++b ) { - var m = blocks[ b ].match( tight ), - terms = m[ 1 ].replace( /\n$/, "" ).split( /\n/ ), - defns = m[ 2 ].split( /\n:\s+/ ); - - // print( uneval( m ) ); - - for ( var i = 0; i < terms.length; ++i ) { - list.push( [ "dt", terms[ i ] ] ); - } - - for ( var i = 0; i < defns.length; ++i ) { - // run inline processing over the definition - list.push( [ "dd" ].concat( this.processInline( defns[ i ].replace( /(\n)\s+/, "$1" ) ) ) ); - } - } - } - else { - return undefined; - } - - return [ list ]; -} - -Markdown.dialects.Maruku.inline[ "{:" ] = function inline_meta( text, matches, out ) { - if ( !out.length ) { - return [ 2, "{:" ]; - } - - // get the preceeding element - var before = out[ out.length - 1 ]; - - if ( typeof before === "string" ) { - return [ 2, "{:" ]; - } - - // match a meta hash - var m = text.match( /^\{:\s*((?:\\\}|[^\}])*)\s*\}/ ); - - // no match, false alarm - if ( !m ) { - return [ 2, "{:" ]; - } - - // attach the attributes to the preceeding element - var meta = process_meta_hash( m[ 1 ] ), - attr = extract_attr( before ); - - if ( !attr ) { - attr = {}; - before.splice( 1, 0, attr ); - } - - for ( var k in meta ) { - attr[ k ] = meta[ k ]; - } - - // cut out the string and replace it with nothing - return [ m[ 0 ].length, "" ]; -} - -Markdown.buildBlockOrder ( Markdown.dialects.Maruku.block ); -Markdown.buildInlinePatterns( Markdown.dialects.Maruku.inline ); - -function extract_attr( jsonml ) { - return jsonml instanceof Array - && jsonml.length > 1 - && typeof jsonml[ 1 ] === "object" - && !( jsonml[ 1 ] instanceof Array ) - ? jsonml[ 1 ] - : undefined; -} - -function process_meta_hash( meta_string ) { - var meta = split_meta_hash( meta_string ), - attr = {}; - - for ( var i = 0; i < meta.length; ++i ) { - // id: #foo - if ( /^#/.test( meta[ i ] ) ) { - attr.id = meta[ i ].substring( 1 ); - } - // class: .foo - else if ( /^\./.test( meta[ i ] ) ) { - // if class already exists, append the new one - if ( attr['class'] ) { - attr['class'] = attr['class'] + meta[ i ].replace( /./, " " ); - } - else { - attr['class'] = meta[ i ].substring( 1 ); - } - } - // attribute: foo=bar - else if ( /=/.test( meta[ i ] ) ) { - var s = meta[ i ].split( /=/ ); - attr[ s[ 0 ] ] = s[ 1 ]; - } - } - - return attr; -} - -function split_meta_hash( meta_string ) { - var meta = meta_string.split( "" ), - parts = [ "" ], - in_quotes = false; - - while ( meta.length ) { - var letter = meta.shift(); - switch ( letter ) { - case " " : - // if we're in a quoted section, keep it - if ( in_quotes ) { - parts[ parts.length - 1 ] += letter; - } - // otherwise make a new part - else { - parts.push( "" ); - } - break; - case "'" : - case '"' : - // reverse the quotes and move straight on - in_quotes = !in_quotes; - break; - case "\\" : - // shift off the next letter to be used straight away. - // it was escaped so we'll keep it whatever it is - letter = meta.shift(); - default : - parts[ parts.length - 1 ] += letter; - break; - } - } - - return parts; -} - -/** - * renderJsonML( jsonml[, options] ) -> String - * - jsonml (Array): JsonML array to render to XML - * - options (Object): options - * - * Converts the given JsonML into well-formed XML. - * - * The options currently understood are: - * - * - root (Boolean): wether or not the root node should be included in the - * output, or just its children. The default `false` is to not include the - * root itself. - */ -expose.renderJsonML = function( jsonml, options ) { - options = options || {}; - // include the root element in the rendered output? - options.root = options.root || false; - - var content = []; - - if ( options.root ) { - content.push( render_tree( jsonml ) ); - } - else { - jsonml.shift(); // get rid of the tag - if ( jsonml.length && typeof jsonml[ 0 ] === "object" && !( jsonml[ 0 ] instanceof Array ) ) { - jsonml.shift(); // get rid of the attributes - } - - while ( jsonml.length ) { - content.push( render_tree( jsonml.shift() ) ); - } - } - - return content.join( "\n\n" ); -} - -function render_tree( jsonml ) { - // basic case - if ( typeof jsonml === "string" ) { - return jsonml.replace( /&/g, "&" ) - .replace( //g, ">" ); - } - - var tag = jsonml.shift(), - attributes = {}, - content = []; - - if ( jsonml.length && typeof jsonml[ 0 ] === "object" && !( jsonml[ 0 ] instanceof Array ) ) { - attributes = jsonml.shift(); - } - - while ( jsonml.length ) { - content.push( arguments.callee( jsonml.shift() ) ); - } - - var tag_attrs = ""; - for ( var a in attributes ) { - tag_attrs += " " + a + '="' + attributes[ a ] + '"'; - } - - // be careful about adding whitespace here for inline elements - return "<"+ tag + tag_attrs + ">" + content.join( "" ) + ""; -} - -function convert_tree_to_html( tree, references ) { - // shallow clone - var jsonml = tree.slice( 0 ); - - // Clone attributes if the exist - var attrs = extract_attr( jsonml ); - if ( attrs ) { - jsonml[ 1 ] = {}; - for ( var i in attrs ) { - jsonml[ 1 ][ i ] = attrs[ i ]; - } - attrs = jsonml[ 1 ]; - } - - // basic case - if ( typeof jsonml === "string" ) { - return jsonml; - } - - // convert this node - switch ( jsonml[ 0 ] ) { - case "header": - jsonml[ 0 ] = "h" + jsonml[ 1 ].level; - delete jsonml[ 1 ].level; - break; - case "bulletlist": - jsonml[ 0 ] = "ul"; - break; - case "numberlist": - jsonml[ 0 ] = "ol"; - break; - case "listitem": - jsonml[ 0 ] = "li"; - break; - case "para": - jsonml[ 0 ] = "p"; - break; - case "markdown": - jsonml[ 0 ] = "html"; - if ( attrs ) delete attrs.references; - break; - case "code_block": - jsonml[ 0 ] = "pre"; - var i = attrs ? 2 : 1; - var code = [ "code" ]; - code.push.apply( code, jsonml.splice( i ) ); - jsonml[ i ] = code; - break; - case "inlinecode": - jsonml[ 0 ] = "code"; - break; - case "img": - jsonml[ 1 ].src = jsonml[ 1 ].href; - delete jsonml[ 1 ].href; - break; - case "linebreak": - jsonml[0] = "br"; - break; - case "link": - jsonml[ 0 ] = "a"; - break; - case "link_ref": - jsonml[ 0 ] = "a"; - - // grab this ref and clean up the attribute node - var ref = references[ attrs.ref ]; - - // if the reference exists, make the link - if ( ref ) { - delete attrs.ref; - - // add in the href and title, if present - attrs.href = ref.href; - if ( ref.title ) { - attrs.title = ref.title; - } - - // get rid of the unneeded original text - delete attrs.original; - } - // the reference doesn't exist, so revert to plain text - else { - return attrs.original; - } - break; - } - - // convert all the children - var i = 1; - - // deal with the attribute node, if it exists - if ( attrs ) { - // if there are keys, skip over it - for ( var key in jsonml[ 1 ] ) { - i = 2; - } - // if there aren't, remove it - if ( i === 1 ) { - jsonml.splice( i, 1 ); - } - } - - for ( ; i < jsonml.length; ++i ) { - jsonml[ i ] = arguments.callee( jsonml[ i ], references ); - } - - return jsonml; -} - - -// merges adjacent text nodes into a single node -function merge_text_nodes( jsonml ) { - // skip the tag name and attribute hash - var i = extract_attr( jsonml ) ? 2 : 1; - - while ( i < jsonml.length ) { - // if it's a string check the next item too - if ( typeof jsonml[ i ] === "string" ) { - if ( i + 1 < jsonml.length && typeof jsonml[ i + 1 ] === "string" ) { - // merge the second string into the first and remove it - jsonml[ i ] += jsonml.splice( i + 1, 1 )[ 0 ]; - } - else { - ++i; - } - } - // if it's not a string recurse - else { - arguments.callee( jsonml[ i ] ); - ++i; - } - } -} - -} )( (function() { - if ( typeof exports === "undefined" ) { - window.markdown = {}; - return window.markdown; - } - else { - return exports; - } -} )() ); diff --git a/modules/goessner/json2xml.js b/modules/goessner/json2xml.js deleted file mode 100644 index 5283249f2..000000000 --- a/modules/goessner/json2xml.js +++ /dev/null @@ -1,70 +0,0 @@ -/* This work is licensed under Creative Commons GNU LGPL License. - - License: http://creativecommons.org/licenses/LGPL/2.1/ - Version: 0.9/modified to conform to commonjs modules pattern - Author: Stefan Goessner/2006 - Web: http://goessner.net/ -*/ - -var json2xml = (typeof exports === 'undefined')? {} : exports; // like commonjs - -(function() { - - json2xml.convert = function(o) { - var toXml = function(v, name, ind) { - var xml = ""; - if (v instanceof Array) { - for (var i=0, n=v.length; i\n" : "/>"; - if (hasChild) { - for (var m in v) { - if (m == "#text") - xml += makeSafe(v[m]); - else if (m == "#cdata") - xml += ""; - else if (m.charAt(0) != "@") - xml += toXml(v[m], m, ind+"\t"); - } - xml += (xml.charAt(xml.length-1)=="\n"?ind:"") + "\n"; - } - } - else { // added special-character transform, but this needs to be better handled [micmath] - xml += ind + "<" + name + ">" + makeSafe(v.toString()) + "\n"; - } - return xml; - }, - xml=""; - - for (var m in o) { - xml += toXml(o[m], m, ""); - } - - return xml; - } - - function lines(str) { - // normalise line endings, all in file will be unixy - str = str.replace(/\r\n/g, '\n'); - - return str; - } - - function makeSafe(str) { - // xml special charaters - str = str.replace(/ - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ -(function() { - - // requires docs to have been indexed: docs.index must be defined here - /** - Take a copy of the docs for borrowed symbols and attach them to the - docs for the borrowing symbol. This process changes the symbols involved, - moving docs from the "borrowed" array and into the general docs, then - deleting the "borrowed" array. - */ - exports.resolveBorrows = function(docs) { - if (!docs.index) { - throw 'Docs has not been indexed: docs.index must be defined here.'; - } - - docs.forEach(function(doc) { - if (doc.borrowed) { - doc.borrowed.forEach(function(b, i) { - var lent = docs.index[b.from], // lent is an array - asName = b['as'] || b.from; - - if (lent) { - var cloned = doop(lent); - - cloned.forEach(function(clone) { - asName = asName.replace(/^prototype\./, '#'); - var parts = asName.split('#'); - - if (parts.length === 2) clone.scope = 'instance'; - else clone.scope = 'static'; - - asName = parts.pop(); - clone.name = asName; - clone.memberof = doc.longname; - clone.longname = clone.memberof + (clone.scope === 'instance'? '#': '.') + clone.name; - docs.push(clone); - }); - - } - }); - - delete doc.borrowed; - } - }); - } - - /** - Deep clone a simple object. - @private - */ - function doop(o) { - if (o instanceof Object && o.constructor != Function) { - var clone = o instanceof Array ? [] : {}, prop; - - for (prop in o){ - if ( o.hasOwnProperty(prop) ) { - clone[prop] = (o[prop] instanceof Object)? doop(o[prop]) : o[prop]; - } - } - return clone; - } - return o; - }; - -})(); \ No newline at end of file diff --git a/modules/jsdoc/doclet.js b/modules/jsdoc/doclet.js deleted file mode 100644 index 4229ab0ea..000000000 --- a/modules/jsdoc/doclet.js +++ /dev/null @@ -1,296 +0,0 @@ -/** - @overview - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ - -/** - @module jsdoc/doclet - @requires jsdoc/tag - @requires jsdoc/name - @requires jsdoc/tag/dictionary - */ -(function() { - var jsdoc = { - tag: { - Tag: require('jsdoc/tag').Tag, - dictionary: require('jsdoc/tag/dictionary') - }, - name: require('jsdoc/name') - }; - - /** - @class - @classdesc Represents a single JSDoc comment. - @param {string} docletSrc - The raw source code of the jsdoc comment. - @param {object=} meta - Properties describing the code related to this comment. - */ - exports.Doclet = function(docletSrc, meta) { - var newTags = []; - - /** The original text of the comment from the source code. */ - this.comment = docletSrc; - this.setMeta(meta); - - docletSrc = unwrap(docletSrc); - docletSrc = fixDescription(docletSrc); - - newTags = toTags.call(this, docletSrc); - - for (var i = 0, leni = newTags.length; i < leni; i++) { - this.addTag(newTags[i].title, newTags[i].text); - } - - this.postProcess(); - } - - /** Called once after all tags have been added. */ - exports.Doclet.prototype.postProcess = function() { - if (!this.preserveName) { jsdoc.name.resolve(this); } - if (this.name && !this.longname) { - this.setLongname(this.name); - } - if (this.memberof === '') { - delete(this.memberof); - } - if (!this.kind && this.meta && this.meta.code) { - this.addTag( 'kind', codetypeToKind(this.meta.code.type) ); - } - } - - /** Add a tag to this doclet. - @param {string} title - The title of the tag being added. - @param {string} [text] - The text of the tag being added. - */ - exports.Doclet.prototype.addTag = function(title, text) { - var tagDef = jsdoc.tag.dictionary.lookUp(title), - newTag = new jsdoc.tag.Tag(title, text, this.meta); - - if (tagDef && tagDef.onTagged) { - tagDef.onTagged(this, newTag) - } - - if (!tagDef) { - this.tags = this.tags || []; - this.tags.push(newTag); - } - - applyTag.call(this, newTag); - } - - /** Set the `memberof` property of this doclet. - @param {string} sid - The longname of the symbol that this doclet is a member of. - */ - exports.Doclet.prototype.setMemberof = function(sid) { - if (/^\.?/.test(sid)) { sid = sid.replace(/^.?/, ''); } - /** - The longname of the symbol that contains this one, if any. - @type string - */ - this.memberof = sid.replace(/\.prototype/g, '#'); - } - - /** Set the `longname` property of this doclet. - @param {string} name - */ - exports.Doclet.prototype.setLongname = function(name) { - if (/^\.?/.test(name)) { name = name.replace(/^\.?/, ''); } - - /** - The fully resolved symbol name. - @type string - */ - this.longname = name; - if (jsdoc.tag.dictionary.isNamespace(this.kind)) { - this.longname = jsdoc.name.applyNamespace(this.longname, this.kind); - } - } - - /** Add a symbol to this doclet's `borrowed` array. - @param {string} source - The longname of the symbol that is the source. - @param {string} target - The name the symbol is being assigned to. - */ - exports.Doclet.prototype.borrow = function(source, target) { - var about = {from: source}; - if (target) about.as = target; - - if (!this.borrowed) { - /** - A list of symbols that are borrowed by this one, if any. - @type Array. - */ - this.borrowed = []; - } - this.borrowed.push(about); - } - - /** Add a symbol to this doclet's `augments` array. - @param {string} base - The longname of the base symbol. - */ - exports.Doclet.prototype.augment = function(base) { - if (!this.augments) { - /** - A list of symbols that are augmented by this one, if any. - @type Array. - */ - this.augments = []; - } - this.augments.push(base); - } - - /** - Set the `meta` property of this doclet. - @param {object} meta - */ - exports.Doclet.prototype.setMeta = function(meta) { - if (!this.meta) { - /** - Information about the source code associated with this doclet. - @namespace - */ - this.meta = {}; - } - - if (meta.lineno) { - /** - The line number of the code associated with this doclet. - @type number - */ - this.meta.lineno = meta.lineno; - } - - if (meta.lineno) { - /** - The name of the file containing the code associated with this doclet. - @type string - */ - this.meta.filename = meta.filename; - } - - /** - Information about the code symbol. - @namespace - */ - this.meta.code = (this.meta.code || {}); - if (meta.id) this.meta.code.id = meta.id; - if (meta.code) { - if (meta.code.name) { - /** The name of the symbol in the source code. */ - this.meta.code.name = meta.code.name; - } - if (meta.code.type) { - /** The type of the symbol in the source code. */ - this.meta.code.type = meta.code.type; - } - if (meta.code.node) { - this.meta.code.node = meta.code.node; - } - if (meta.code.funcscope) { - this.meta.code.funcscope = meta.code.funcscope; - } - if (meta.code.value) { - /** The value of the symbol in the source code. */ - this.meta.code.value = meta.code.value; - } - } - } - - function applyTag(tag) { - if (tag.title === 'name') { - this.name = tag.value; - } - - if (tag.title === 'kind') { - this.kind = tag.value; - } - - if (tag.title === 'description') { - this.description = tag.value; - } - - if (tag.title === 'scope') { - this.scope = tag.value; - } - } - - // use the meta info about the source code to guess what the doclet kind should be - function codetypeToKind(type) { - var kind = (type || '').toLowerCase(); - - if (kind !== 'function') { - return 'property'; - } - - return kind; - } - - /** - Convert the raw source of the doclet comment into an array of Tag objects. - @private - */ - function toTags(docletSrc) { - var tagSrcs, - tags = []; - - docletSrc = unwrap(docletSrc); - tagSrcs = split(docletSrc); - - for each(tagSrc in tagSrcs) { - tags.push( {title: tagSrc.title, text: tagSrc.text} ); - } - - return tags; - } - - function unwrap(docletSrc) { - if (!docletSrc) { return ''; } - - // note: keep trailing whitespace for @examples - // extra opening/closing stars are ignored - // left margin is considered a star and a space - // use the /m flag on regex to avoid having to guess what this platform's newline is - docletSrc = - docletSrc.replace(/^\/\*\*+/, '') // remove opening slash+stars - .replace(/\**\*\/$/, "\\Z") // replace closing star slash with end-marker - .replace(/^\s*(\* ?|\\Z)/gm, '') // remove left margin like: spaces+star or spaces+end-marker - .replace(/\s*\\Z$/g, ''); // remove end-marker - - return docletSrc; - } - - function fixDescription(docletSrc) { - if (!/^\s*@/.test(docletSrc)) { - docletSrc = '@description ' + docletSrc; - } - return docletSrc; - } - - function split(docletSrc) { - var tagSrcs = []; - - // split out the basic tags, keep surrounding whitespace - // like: @tagTitle tagBody - docletSrc - .replace(/^(\s*)@(\S)/gm, '$1\\@$2') // replace splitter ats with an arbitrary sequence - .split('\\@') // then split on that arbitrary sequence - .forEach(function($) { - if ($) { - var parsedTag = $.match(/^(\S+)(:?\s+(\S[\s\S]*))?/); - - if (parsedTag) { - var [, tagTitle, tagText] = parsedTag; - - if (tagTitle) { - tagSrcs.push({ - title: tagTitle, - text: tagText - }); - } - } - } - }); - - return tagSrcs; - } - -})(); \ No newline at end of file diff --git a/modules/jsdoc/name.js b/modules/jsdoc/name.js deleted file mode 100644 index f2f41b05b..000000000 --- a/modules/jsdoc/name.js +++ /dev/null @@ -1,180 +0,0 @@ -/** - A collection of functions relating to JSDoc symbol name manipulation. - @module jsdoc/name - @requires jsdoc/tag/dictionary - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ -(function() { - var jsdoc = { - tagDictionary: require('jsdoc/tag/dictionary') - }; - - var puncToScope = { '.': 'static', '~': 'inner', '#': 'instance' }, - scopeToPunc = { 'static': '.', 'inner': '~', 'instance': '#' }, - Token = Packages.org.mozilla.javascript.Token; - - /** - Resolves the longname, memberof, variation and name values of the given doclet. - @param {module:jsdoc/doclet.Doclet} doclet - */ - exports.resolve = function(doclet) { - - var name = doclet.name, - memberof = doclet.memberof || '', - about = {}, - parentDoc; - - name = name? (''+name).replace(/\.prototype\.?/g, '#') : ''; - - // member of a var in an outer scope? - if (name && !memberof && doclet.meta.code && doclet.meta.code.funcscope) { - name = doclet.longname = doclet.meta.code.funcscope + '~' + name; - } - - if (memberof) { // @memberof tag given - memberof = memberof.replace(/\.prototype\.?/g, '#'); - - // the name is a fullname, like @name foo.bar, @memberof foo - if (name && name.indexOf(memberof) === 0) { - about = exports.shorten(name); - } - else if (name && /([#.~])$/.test(memberof) ) { // like @memberof foo# or @memberof foo~ - about = exports.shorten(memberof + name); - } - else if (name && doclet.scope ) { // like @memberof foo# or @memberof foo~ - about = exports.shorten(memberof + scopeToPunc[doclet.scope] + name); - } - } - else { // no @memberof - about = exports.shorten(name); - } - - if (about.name) { - doclet.name = about.name; - } - - if (about.memberof) { - doclet.setMemberof(about.memberof); - } - - if (about.longname && !doclet.longname) { - doclet.setLongname(about.longname); - } - - if (doclet.scope === 'global') { // via @global tag? - doclet.setLongname(doclet.name); - delete doclet.memberof; - } - else if (about.scope) { - doclet.scope = puncToScope[about.scope]; - } - else { - if (doclet.name && doclet.memberof && !doclet.longname) { - doclet.scope = 'static'; // default scope when none is provided - - doclet.setLongname(doclet.memberof + scopeToPunc[doclet.scope] + doclet.name); - } - } - - if (about.variation) { - doclet.variation = about.variation; - } - -//dump('doclet', doclet); - } - - /** - @inner - @memberof module:jsdoc/name - @param {string} name - @param {string} kind - @returns {string} The name with unsafe names enclosed in quotes. - */ - function quoteUnsafe(name, kind) { // docspaced names may have unsafe characters which need to be quoted by us - if ( (jsdoc.tagDictionary.lookUp(kind).setsDocletDocspace) && /[^$_a-zA-Z0-9\/]/.test(name) ) { - if (!/^[a-z_$-\/]+:\"/i.test(name)) { - return '"' + name.replace(/\"/g, '"') + '"'; - } - } - - return name; - } - - RegExp.escape = RegExp.escape || function(str) { - var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g"); // .*+?|()[]{}\ - return str.replace(specials, "\\$&"); - } - - /** - @method module:jsdoc/name.applyNamespace - @param {string} longname The full longname of the symbol. - @param {string} ns The namespace to be applied. - @returns {string} The longname with the namespace applied. - */ - exports.applyNamespace = function(longname, ns) { - var nameParts = exports.shorten(longname), - name = nameParts.name, - longname = nameParts.longname; - - if ( !/^[a-zA-Z]+?:.+$/i.test(name) ) { - longname = longname.replace( new RegExp(RegExp.escape(name)+'$'), ns + ':' + name ); - } - - return longname; - } - - /** - Given a longname like "a.b#c(2)", slice it up into ["a.b", "#", 'c', '2'], - representing the memberof, the scope, the name, and variation. - @param {string} longname - @returns {object} Representing the properties of the given name. - */ - exports.shorten = function(longname) { - // quoted strings in a longname are atomic, convert to tokens - var atoms = [], token; - - // handle quoted names like foo["bar"] - longname = longname.replace(/(\[?".+?"\]?)/g, function($) { - var dot = ''; - if ( /^\[/.test($) ) { - dot = '.'; - $ = $.replace( /^\[/g, '' ).replace( /\]$/g, '' ); - } - - token = '@{' + atoms.length + '}@'; - atoms.push($); - - return dot + token; // foo["bar"] => foo.@{1}@ - }); - - longname = longname.replace( /\.prototype\.?/g, '#' ); - - var parts = longname? - (longname.match( /^(:?(.+)([#.~]))?(.+?)$/ ) || []).reverse() - : ['']; - - var name = parts[0], - scope = parts[1] || '', // ., ~, or # - memberof = parts[2] || '', - variation; - - // like /** @name foo.bar(2) */ - if ( /(.+)\(([^)]+)\)$/.test(name) ) { - name = RegExp.$1, variation = RegExp.$2; - } - - //// restore quoted strings back again - var i = atoms.length; - while (i--) { - longname = longname.replace('@{'+i+'}@', atoms[i]); - memberof = memberof.replace('@{'+i+'}@', atoms[i]); - scope = scope.replace('@{'+i+'}@', atoms[i]); - name = name.replace('@{'+i+'}@', atoms[i]); - } - - //// - return {longname: longname, memberof: memberof, scope: scope, name: name, variation: variation}; - } - -})(); \ No newline at end of file diff --git a/modules/jsdoc/opts/parser.js b/modules/jsdoc/opts/parser.js deleted file mode 100644 index 85b55ac67..000000000 --- a/modules/jsdoc/opts/parser.js +++ /dev/null @@ -1,75 +0,0 @@ -/** - @module jsdoc/opts/parser - @requires common/args - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ -(function() { - var common = { - args: require('common/args') - }; - - var argParser = new common.args.ArgParser(), - ourOptions, - defaults = { - template: 'default', - destination: BASEDIR + 'out/' - }; - - argParser.addOption('t', 'template', true, 'The name of the template to use. Default: the "default" template'); - argParser.addOption('c', 'configure', true, 'The path to the configuration file. Default: jsdoc basedir + conf.json'); - argParser.addOption('e', 'encoding', true, 'Assume this encoding when reading all source files. Default: your system default encoding'); - argParser.addOption('n', 'nocode', false, 'Ignore doclets that don\'t explicitly provide a symbol name.'); - argParser.addOption('T', 'test', false, 'Run all tests and quit.'); - argParser.addOption('d', 'destination', true, 'The path to the output folder. Use "console" to dump data to the console. Default: console'); - argParser.addOption('V', 'validate', false, 'Validate the results produced by parsing the source code.'); - argParser.addOption('r', 'recurse', false, 'Recurse into subdirectories when scanning for source code files.'); - argParser.addOption('h', 'help', false, 'Print this message and quit.'); - argParser.addOption('X', 'expel', false, 'Dump all found doclet internals to console and quit.'); - argParser.addOption('q', 'query', true, 'Provide a querystring to define custom variable names/values to add to the options hash.'); - - -// TODO [-R, recurseonly] = a number representing the depth to recurse -// TODO [-f, filter] = a regex to filter on <-- this can be better defined in the configs? - - /** - Set the options for this app. - @throws {Error} Illegal arguments will throw errors. - @param {string|String[]} args The command line arguments for this app. - */ - exports.parse = function(args) { - args = args || []; - - if (typeof args === 'string' || args.constructor === String) { - args = (''+args).split(/\s+/g); - } - - ourOptions = argParser.parse(args, defaults); - - return ourOptions; - } - - /** - Display help message for options. - */ - exports.help = function() { - return argParser.help(); - } - - /** - Get a named option. - @param {string} name The name of the option. - @return {string} The value associated with the given name. - *//** - Get all the options for this app. - @return {Object} A collection of key/values representing all the options. - */ - exports.get = function(name) { - if (typeof name === 'undefined') { - return ourOptions; - } - else { - return ourOptions[name]; - } - } -})(); \ No newline at end of file diff --git a/modules/jsdoc/package.js b/modules/jsdoc/package.js deleted file mode 100644 index e4fcbf258..000000000 --- a/modules/jsdoc/package.js +++ /dev/null @@ -1,69 +0,0 @@ -/** - @overview - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ - -/** - @module jsdoc/package - @see http://wiki.commonjs.org/wiki/Packages/1.0 - */ -(function() { - /** - @class - @classdesc Represents a JavaScript package. - @param {string} json - The contents of package.json. - */ - exports.Package = function(json) { - /** The source files associated with this package. - @type {Array} - */ - this.files = []; - - /** The kind of this package. - @readonly - @default - @type {string} - */ - this.kind = 'package'; - - json = JSON.parse(json); - - /** The name of this package. - This value is found in the package.json file passed in as a command line option. - @type {string} - */ - this.name = json.name; - - /** The longname of this package. - @type {string} - */ - this.longname = this.kind + ':' + this.name; - - /** The description of this package. - @type {string} - */ - this.description = json.description; - - /** - The hash summary of the source file. - @type {string} - @since 3.2.0 - */ - this.version = json.version; - - /** - * The licenses of this package. - * @type {Array} - * @example - * "licenses": [ - * { - * "type": "GPLv2", - * "url": "http://www.example.com/licenses/gpl.html" - * } - * ] - */ - this.licenses = json.licenses; - } - -})(); \ No newline at end of file diff --git a/modules/jsdoc/schema.js b/modules/jsdoc/schema.js deleted file mode 100644 index be52250f7..000000000 --- a/modules/jsdoc/schema.js +++ /dev/null @@ -1,296 +0,0 @@ -/** - @overview Schema for validating JSON produced by JSDoc Toolkit. - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - @see - */ - -exports.jsdocSchema = { - "properties": { - "doc": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false, - "properties": { - "author": { - "type": ["string", "array"], - "optional": true, - "items": { - "type": "string" - } - }, - "path": { // unique identifier for each doc - "type": "string", - "maxItems": 1 - }, - "description": { // a description - "type": "string", - "optional": true, - "maxItems": 1 - }, - "classdesc": { // a description of the class that this constructor belongs to - "type": "string", - "optional": true, - "maxItems": 1 - }, - "name": { // probably a trailing substring of the path - "type": "string", - "maxItems": 1 - }, - "version": { // what is the version of this doc - "type": "string", - "optional": true, - "maxItems": 1 - }, - "since": { // at what previous version was this doc added? - "type": "string", - "optional": true, - "maxItems": 1 - }, - "see": { // some thing else to consider - "type": ["string", "array"], - "optional": true, - "items": { - "type": "string" - } - }, - "deprecated": { // is usage of this symbol deprecated? - "type": ["string", "boolean"], - "optional": true - }, - "scope": { // how is this symbol attached to it's enclosing scope? - "type": "string", - "maxItems": 1, - "enum": ["global", "static", "instance", "inner"] - }, - "memberof": { // probably a leading substring of the path - "type": "string", - "optional": true, - "maxItems": 1 - }, - "extends": { // the path to another constructor - "type": ["string", "array"], - "optional": true, - "items": { - "type": "string" - } - }, - "fires": { // the path to another doc object - "type": ["string", "array"], - "optional": true, - "items": { - "type": "string" - } - }, - "requires": { // the symbol being documented requires another symbol - "type": ["string", "array"], - "optional": true, - "items": { - "type": "string" - } - }, - "implements": { - "type": ["string", "array"], - "optional": true, - "items": { - "type": "string" - } - }, - "kind": { // what kind of symbol is this? - "type": "string", - "maxItems": 1, - "enum": ["constructor", "module", "event", "namespace", "method", "property", "enum", "class", "interface", "constant", "mixin", "file", "version"] - }, - "refersto": { // the path to another doc: this doc is simply a renamed alias to that - "type": "string", - "optional": true, - "maxItems": 1 - }, - "access": { // what access priviledges are allowed - "type": "string", - "optional": true, - "maxItems": 1, - "enum": ["private", "protected", "public"] - }, - "attrib": { // other attributes, like "readonly" - "type": "string", - "optional": true - }, - "type": { // what type is the value that this doc is associated with, like "number" - "type": ["string", "array"], - "optional": true, - "items": { - "type": "string" - } - }, - "exception" : { - "optional": true, - "type": "object", - "properties": { - "type": { // what is the type of the value thrown? - "type": "array", - "optional": true, - "items": { - "type": "string" - } - }, - "description": { // a description of the thrown value - "type": "string", - "optional": true - } - }, - "additionalProperties": false - }, - "returns" : { - "optional": true, - "type": "object", - "properties": { - "type": { // what is the type of the value returned? - "type": ["string", "array"], - "optional": true, - "items": { - "type": "string" - } - }, - "description": { // a description of the returned value - "type": "string", - "optional": true - } - }, - "additionalProperties": false - }, - "param" : { // are there function parameters associated with this doc? - "type": "array", - "optional": true, - "items": { - "type": "object", - "properties": { - "type": { // what are the types of value expected for this parameter? - "type": ["string", "array"], - "optional": true, - "items": { - "type": "string" - } - }, - "optional": { // is a value for this parameter optional? - "type": "boolean", - "optional": true, - "default": true - }, - "nullable": { // can the value for this parameter be null? - "type": "boolean", - "optional": true, - "default": true - }, - "defaultvalue": { // what is the default value for this parameter? - "type": "string", - "optional": true - }, - "name": { // what name does this parameter have within the function? - "type": "string" - }, - "description": { // a description of the parameter - "type": "string", - "optional": true - } - }, - "additionalProperties": false - } - }, - "thisobj": { - "type": ["string", "array"], - "optional": true, - "items": { - "type": "string" - } - }, - "example": { // some thing else to consider - "type": ["string", "array"], - "optional": true, - "items": { - "type": "string" - } - }, - "tags": { // arbitrary tags associated with this doc - "type": "array", - "optional": true, - "additionalProperties": false, - "items": { - "type": "string" - } - }, - "meta": { // information about this doc - "type": "object", - "optional": true, - "maxItems": 1, - "properties": { - "file": { // what is the name of the file this doc appears in? - "type": "string", - "optional": true, - "maxItems": 1 - }, - "line": { // on what line of the file does this doc appear? - "type": "number", - "optional": true, - "maxItems": 1 - } - }, - "additionalProperties": false - } - } - } - }, - "meta": { // information about the generation for all the docs - "type": "object", - "optional": true, - "maxItems": 1, - "properties": { - "project": { // to what project does this doc belong? - "type": "object", - "optional": true, - "maxItems": 1, - "properties": { - "name": { // the name of the project - "type": "string", - "maxItems": 1 - }, - "uri": { // the URI of the project - "type": "string", - "maxItems": 1, - "format": "uri" - }, - "version": { // the version of the project - "type": "string", - "maxItems": 1 - }, - "lang": { // the programming language used in the project - "type": "string", - "maxItems": 1 - } - }, - "additionalProperties": false - }, - "generated": { // some information about the running of the doc generator - "type": "object", - "optional": true, - "maxItems": 1, - "properties": { - "date": { // on what date and time was the doc generated? - "type": "string", - "maxItems": 1, - "optional": true, - "format": "date-time" - }, - "parser": { // what tool was used to generate the doc? - "type": "string", - "maxItems": 1, - "optional": true - } - }, - "additionalProperties": false - } - } - } - } -}; \ No newline at end of file diff --git a/modules/jsdoc/src/handlers.js b/modules/jsdoc/src/handlers.js deleted file mode 100644 index 8443a73f2..000000000 --- a/modules/jsdoc/src/handlers.js +++ /dev/null @@ -1,137 +0,0 @@ -/** - @module jsdoc/src/handlers - */ - -(function() { - var currentModule = null; - - /** - Attach these event handlers to a particular instance of a parser. - @param parser - */ - exports.attachTo = function(parser) { - var jsdoc = {doclet: require('jsdoc/doclet')}; - - // handles JSDoc comments that include a @name tag -- the code is ignored in such a case - parser.on('jsdocCommentFound', function(e) { - var newDoclet = new jsdoc.doclet.Doclet(e.comment, e); - - if (!newDoclet.name) { - return false; // only interested in virtual comments (with a @name) here - } - - addDoclet.call(this, newDoclet); - if (newDoclet.kind === 'module') { - currentModule = newDoclet.longname; - } - e.doclet = newDoclet; - }); - - // handles named symbols in the code, may or may not have a JSDoc comment attached - parser.on('symbolFound', function(e) { - var subDoclets = e.comment.split(/@also\b/g); - - for (var i = 0, l = subDoclets.length; i < l; i++) { - newSymbolDoclet.call(this, subDoclets[i], e); - } - }); - - function newSymbolDoclet(docletSrc, e) { - var newDoclet = new jsdoc.doclet.Doclet(docletSrc, e); - - // an undocumented symbol right after a virtual comment? rhino mistakenly connected the two - if (newDoclet.name) { // there was a @name in comment - // try again, without the comment - e.comment = '@undocumented'; - newDoclet = new jsdoc.doclet.Doclet(e.comment, e); - } - - if (newDoclet.alias) { - newDoclet.addTag('name', newDoclet.alias); - newDoclet.postProcess(); - } - else if (e.code && e.code.name) { // we need to get the symbol name from code - newDoclet.addTag('name', e.code.name); - if (!newDoclet.memberof && e.astnode) { - var memberofName, - scope; - if ( /^((module.)?exports|this)(\.|$)/.test(newDoclet.name) ) { - var nameStartsWith = RegExp.$1; - - newDoclet.name = newDoclet.name.replace(/^(exports|this)(\.|$)/, ''); - - // like /** @module foo */ exports.bar = 1; - if (nameStartsWith === 'exports' && currentModule) { - memberofName = currentModule; - scope = 'static'; - } - else if (newDoclet.name === 'module.exports' && currentModule) { - newDoclet.addTag('name', currentModule); - newDoclet.postProcess(); - } - else { - // like /** @module foo */ exports = {bar: 1}; - // or /** blah */ this.foo = 1; - memberofName = this.resolveThis(e.astnode); - scope = nameStartsWith === 'exports'? 'static' : 'instance'; - - // like /** @module foo */ this.bar = 1; - if (nameStartsWith === 'this' && currentModule && !memberofName) { - memberofName = currentModule; - scope = 'static'; - } - } - - if (memberofName) { - if (newDoclet.name) { - newDoclet.name = memberofName + (scope === 'instance'? '#' : '.') + newDoclet.name; - } - else { newDoclet.name = memberofName; } - } - } - else { - memberofName = this.astnodeToMemberof(e.astnode); - } - - if (memberofName) { newDoclet.addTag( 'memberof', memberofName); } - } - - newDoclet.postProcess(); - } - else { - return false; - } - - addDoclet.call(this, newDoclet); - e.doclet = newDoclet; - } - - //parser.on('fileBegin', function(e) { }); - - parser.on('fileComplete', function(e) { - currentModule = null; - }); - - function addDoclet(newDoclet) { - if (newDoclet) { - e = { doclet: newDoclet }; - this.fire('newDoclet', e); - - if (!e.defaultPrevented) { - if ( !filter(newDoclet) ) { - this.addResult(newDoclet); - } - } - } - } - - function filter(doclet) { - // you can't document prototypes - if ( /#$/.test(doclet.longname) ) return true; - // you can't document symbols added by the parser with a dummy name - if (doclet.meta.code && doclet.meta.code.name === '____') return true; - - return false; - } - } -})(); \ No newline at end of file diff --git a/modules/jsdoc/src/parser.js b/modules/jsdoc/src/parser.js deleted file mode 100644 index 6f83a44fd..000000000 --- a/modules/jsdoc/src/parser.js +++ /dev/null @@ -1,495 +0,0 @@ -/** - * @module jsdoc/src/parser - * @requires common/util - * @requires common/fs - * @requires common/events - */ - -(function() { - var Token = Packages.org.mozilla.javascript.Token, - currentParser = null, - currentSourceName = ''; - - /** - * @class - * @mixes module:common/events - * - * @example Create a new parser. - * var jsdocParser = new (require('jsdoc/src/parser').Parser)(); - */ - exports.Parser = function() { - this._resultBuffer = []; - this.refs = {}; - } - require('common/util').mixin(exports.Parser.prototype, require('common/events')); - - /** - * Parse the given source files for JSDoc comments. - * @param {Array.} sourceFiles An array of filepaths to the JavaScript sources. - * @param {string} [encoding=utf8] - * - * @fires jsdocCommentFound - * @fires symbolFound - * @fires newDoclet - * @fires fileBegin - * @fires fileComplete - * - * @example Parse two source files. - * var myFiles = ['file1.js', 'file2.js']; - * var docs = jsdocParser.parse(myFiles); - */ - exports.Parser.prototype.parse = function(sourceFiles, encoding) { - const SCHEMA = 'javascript:'; - var sourceCode = '', - filename = ''; - - if (typeof sourceFiles === 'string') { sourceFiles = [sourceFiles]; } - - for (i = 0, leni = sourceFiles.length; i < leni; i++) { - if (sourceFiles[i].indexOf(SCHEMA) === 0) { - sourceCode = sourceFiles[i].substr(SCHEMA.length); - filename = '[[string' + i + ']]'; - } - else { - filename = sourceFiles[i]; - try { - sourceCode = require('common/fs').read(filename, encoding); - } - catch(e) { - print('FILE READ ERROR: in module:jsdoc/parser.parseFiles: "' + filename + '" ' + e); - continue; - } - } - - currentParser = this; - this._parseSourceCode(sourceCode, filename); - currentParser = null; - } - - return this._resultBuffer; - } - - /** - * @returns {Array} The accumulated results of any calls to parse. - */ - exports.Parser.prototype.results = function() { - return this._resultBuffer; - } - - /** - * @param {Object} o The parse result to add to the result buffer. - */ - exports.Parser.prototype.addResult = function(o) { - this._resultBuffer.push(o); - } - - /** - * Empty any accumulated results of calls to parse. - */ - exports.Parser.prototype.clear = function() { - currentParser = null; - currentSourceName = ''; - this._resultBuffer = []; - } - - /** @private */ - exports.Parser.prototype._parseSourceCode = function(sourceCode, sourceName) { - currentSourceName = sourceName; - - sourceCode = pretreat(sourceCode); - - var ast = parserFactory().parse(sourceCode, sourceName, 1); - - var e = {filename: currentSourceName}; - this.fire('fileBegin', e); - - if (!e.defaultPrevented) { - ast.visit( - new Packages.org.mozilla.javascript.ast.NodeVisitor({ - visit: visitNode - }) - ); - } - - this.fire('fileComplete', e); - - currentSourceName = ''; - } - - function pretreat(code) { - return code - // merge adjacent doclets - .replace(/\*\/\/\*\*+/g, '@also') - // make lent objectliterals documentable by giving them a dummy name - .replace(/(\/\*\*[\s\S]*@lends\b[\s\S]*\*\/\s*)\{/g, '$1____ = {'); - } - - /** - * Given a node, determine what the node is a member of. - * @param {astnode} node - * @returns {string} The long name of the node that this is a member of. - */ - exports.Parser.prototype.astnodeToMemberof = function(node) { - var memberof = {}; - - if (node.type === Token.VAR || node.type === Token.FUNCTION) { - if (node.enclosingFunction) { // an inner var or func - memberof.id = 'astnode'+node.enclosingFunction.hashCode(); - memberof.doclet = this.refs[memberof.id]; - if (!memberof.doclet) { - return '~'; - } - return (memberof.doclet.longname||memberof.doclet.name) + '~'; - } - } - else { - memberof.id = 'astnode'+node.parent.hashCode(); - memberof.doclet = this.refs[memberof.id]; - if (!memberof.doclet) return ''; // global? - return memberof.doclet.longname||memberof.doclet.name; - } - } - - /** - * Resolve what "this" refers too, relative to a node. - * @param {astnode} node - The "this" node - * @returns {string} The longname of the enclosing node. - */ - exports.Parser.prototype.resolveThis = function(node) { - var memberof = {}; - - if (node.enclosingFunction) { - memberof.id = 'astnode'+node.enclosingFunction.hashCode(); - memberof.doclet = this.refs[memberof.id]; - - if (!memberof.doclet) { - return ''; // TODO handle global this? - } - - if (memberof.doclet['this']) { - return memberof.doclet['this']; - } - // like: Foo.constructor = function(n) { /** blah */ this.name = n; } - else if (memberof.doclet.kind === 'function' && memberof.doclet.memberof) { - return memberof.doclet.memberof; - } - // walk up to the closest class we can find - else if (memberof.doclet.kind === 'class' || memberof.doclet.kind === 'module') { - return memberof.doclet.longname||memberof.doclet.name; - } - else { - if (node.enclosingFunction){ - return this.resolveThis(node.enclosingFunction/*memberof.doclet.meta.code.val*/); - } - else return ''; // TODO handle global this? - } - } - else if (node.parent) { - var parent = node.parent; - if (parent.type === Token.COLON) parent = parent.parent; // go up one more - - memberof.id = 'astnode'+parent.hashCode(); - memberof.doclet = this.refs[memberof.id]; - - if (!memberof.doclet) return ''; // global? - - return memberof.doclet.longname||memberof.doclet.name; - } - else { - return ''; // global? - } - } - - /** - * Resolve what function a var is limited to. - * @param {astnode} node - * @param {string} basename The leftmost name in the long name: in foo.bar.zip the basename is foo. - */ - exports.Parser.prototype.resolveVar = function(node, basename) { - var doclet, - enclosingFunction = node.enclosingFunction; - - if (!enclosingFunction) { return ''; } // global - - doclet = this.refs['astnode'+enclosingFunction.hashCode()]; - - if ( doclet && doclet.meta.vars && ~doclet.meta.vars.indexOf(basename) ) { - return doclet.longname; - } - - return this.resolveVar(enclosingFunction, basename); - } - - /** @private */ - function visitNode(node) { - var e, - commentSrc; - - // look for stand-alone doc comments - if (node.type === Token.SCRIPT && node.comments) { - // note: ALL comments are seen in this block... - for each(var comment in node.comments.toArray()) { - if (comment.commentType !== Token.CommentType.JSDOC) { - continue; - } - - if (commentSrc = ''+comment.toSource()) { - - e = { - comment: commentSrc, - lineno: comment.getLineno(), - filename: currentSourceName - }; - - if ( isValidJsdoc(commentSrc) ) { - currentParser.fire('jsdocCommentFound', e, currentParser); - } - } - } - } - else if (node.type === Token.ASSIGN) { - e = { - id: 'astnode'+node.hashCode(), // the id of the ASSIGN node - comment: String(node.jsDoc||'@undocumented'), - lineno: node.getLineno(), - filename: currentSourceName, - astnode: node, - code: aboutNode(node) - }; - - var basename = e.code.name.replace(/^([$a-z_][$a-z_0-9]*).*?$/i, '$1'); - if (basename !== 'this') e.code.funcscope = currentParser.resolveVar(node, basename); - - if ( isValidJsdoc(e.comment) ) { - currentParser.fire('symbolFound', e, currentParser); - } - - if (e.doclet) { - currentParser.refs['astnode'+e.code.node.hashCode()] = e.doclet; // allow lookup from value => doclet - } - } - else if (node.type === Token.COLON) { // assignment within an object literal - e = { - id: 'astnode'+node.hashCode(), // the id of the COLON node - comment: String(node.left.jsDoc||'@undocumented'), - lineno: node.getLineno(), - filename: currentSourceName, - astnode: node, - code: aboutNode(node) - }; - - if ( isValidJsdoc(e.comment) ) { - currentParser.fire('symbolFound', e, currentParser); - } - - if (e.doclet) { - currentParser.refs['astnode'+e.code.node.hashCode()] = e.doclet; // allow lookup from value => doclet - } - } - else if (node.type == Token.VAR || node.type == Token.LET || node.type == Token.CONST) { - - if (node.variables) { - return true; // we'll get each var separately on future visits - } - - if (node.parent.variables.toArray()[0] === node) { // like /** blah */ var a=1, b=2, c=3; - // the first var assignment gets any jsDoc before the whole var series - node.jsDoc = node.parent.jsDoc; - } - - e = { - id: 'astnode'+node.hashCode(), // the id of the VARIABLE node - comment: String(node.jsDoc||'@undocumented'), - lineno: node.getLineno(), - filename: currentSourceName, - astnode: node, - code: aboutNode(node) - }; - - // keep track of vars in a function scope - if (node.enclosingFunction) { - var func = 'astnode'+node.enclosingFunction.hashCode(), - funcDoc = currentParser.refs[func]; - - if (funcDoc) { - funcDoc.meta.vars = funcDoc.meta.vars || []; - funcDoc.meta.vars.push(e.code.name); - } - } - - if ( isValidJsdoc(e.comment) ) { - currentParser.fire('symbolFound', e, currentParser); - } - - if (e.doclet) { - currentParser.refs['astnode'+e.code.node.hashCode()] = e.doclet; // allow lookup from value => doclet - } - } - else if (node.type == Token.FUNCTION) { - e = { - id: 'astnode'+node.hashCode(), // the id of the COLON node - comment: String(node.jsDoc||'@undocumented'), - lineno: node.getLineno(), - filename: currentSourceName, - astnode: node, - code: aboutNode(node) - }; - - e.code.name = String(node.name) || ''; - - if ( isValidJsdoc(e.comment) ) { - currentParser.fire('symbolFound', e, currentParser); - } - - if (e.doclet) { - currentParser.refs['astnode'+e.code.node.hashCode()] = e.doclet; // allow lookup from value => doclet - } - else if (!currentParser.refs['astnode'+e.code.node.hashCode()]) { // keep references to undocumented anonymous functions too as they might have scoped vars - currentParser.refs['astnode'+e.code.node.hashCode()] = { - longname: '', - meta: { code: e.code } - }; - } - } - - return true; - } - - /** @private */ - function parserFactory() { - var cx = Packages.org.mozilla.javascript.Context.getCurrentContext(); - - var ce = new Packages.org.mozilla.javascript.CompilerEnvirons(); - ce.setRecordingComments(true); - ce.setRecordingLocalJsDocComments(true); - ce.setLanguageVersion(180); - - ce.initFromContext(cx); - return new Packages.org.mozilla.javascript.Parser(ce, ce.getErrorReporter()); - } - - /** - * Attempts to find the name and type of the given node. - * @private - * @memberof module:src/parser.Parser - */ - function aboutNode(node) { - about = {}; - - if (node.type == Token.FUNCTION) { - about.name = '' + node.name; - - about.type = 'function'; - about.node = node; - - return about; - } - - if (node.type == Token.VAR || node.type == Token.LET || node.type == Token.CONST) { - about.name = nodeToString(node.target); - if (node.initializer) { // like var i = 0; - about.node = node.initializer; - about.value = nodeToString(about.node); - about.type = getTypeName(node.initializer); - } - else { // like var i; - about.node = node.target; - about.value = nodeToString(about.node); - about.type = 'undefined'; - } - - return about; - } - - if (node.type === Token.ASSIGN || node.type === Token.COLON) { - about.name = nodeToString(node.left); - if (node.type === Token.COLON) { - - // objlit keys with unsafe variable-name characters must be quoted - if (!/^[$_a-z][$_a-z0-9]*$/i.test(about.name) ) { - about.name = '"'+about.name.replace(/"/g, '\\"')+'"'; - } - } - about.node = node.right; - about.value = nodeToString(about.node); - about.type = getTypeName(node.right); - return about; - } - - // type 39 (NAME) - var string = nodeToString(node); - if (string) { - about.name = string; - return about; - } - - return about; - } - - /** @private - @memberof module:src/parser.Parser - */ - function nodeToString(node) { - var str; - - if (!node) return; - - if (node.type === Token.GETPROP) { - str = [nodeToString(node.target), node.property.string].join('.'); - } - else if (node.type === Token.VAR) { - str = nodeToString(node.target) - } - else if (node.type === Token.NAME) { - str = node.string; - } - else if (node.type === Token.STRING) { - str = node.value; - } - else if (node.type === Token.NUMBER) { - str = node.value; - } - else if (node.type === Token.THIS) { - str = 'this'; - } - else if (node.type === Token.GETELEM) { - str = node.toSource(); // like: Foo['Bar'] - } - else { - str = getTypeName(node); - } - - return '' + str; - }; - - /** @private - @memberof module:src/parser.Parser - */ - function getTypeName(node) { - var type = ''; - - if (node) { - type = ''+ Packages.org.mozilla.javascript.Token.typeToName(node.getType()); - } - - return type; - } - - /** @private - @memberof module:src/parser.Parser - */ - function isValidJsdoc(commentSrc) { - return commentSrc.indexOf('/***') !== 0; /*** ignore comments that start with many stars ***/ - } - -})(); - -/** - Fired whenever the parser encounters a JSDoc comment in the current source code. - @event jsdocCommentFound - @memberof module:jsdoc/src/parser.Parser - @param {event} e - @param {string} e.comment The text content of the JSDoc comment - @param {number} e.lineno The line number associated with the found comment. - @param {string} e.filename The file name associated with the found comment. - */ \ No newline at end of file diff --git a/modules/jsdoc/src/scanner.js b/modules/jsdoc/src/scanner.js deleted file mode 100644 index 68f504906..000000000 --- a/modules/jsdoc/src/scanner.js +++ /dev/null @@ -1,63 +0,0 @@ -/** - @module jsdoc/src/scanner - @requires module:common/fs - - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ - -(function() { - var common = { - fs: require('common/fs'), - mixin: require('common/util').mixin, - events: require('common/events') - }; - - /** - @constructor - @mixes module:common.events - */ - exports.Scanner = function() { - } - common.mixin(exports.Scanner.prototype, common.events); - - /** - Recursively searches the given searchPaths for js files. - @param {Array.} searchPaths - @param {number} [depth=1] - @fires sourceFileFound - */ - exports.Scanner.prototype.scan = function(searchPaths, depth, includeMatch, excludeMatch) { - var filePaths = [], - that = this; - - searchPaths = searchPaths || []; - depth = depth || 1; - - searchPaths.forEach(function($) { - filePaths = filePaths.concat(common.fs.ls($, depth)); - }); - - filePaths = filePaths.filter(function($) { - if (includeMatch && !includeMatch.test($)) { - return false - } - - if (excludeMatch && excludeMatch.test($)) { - return false - } - - return true; - }); - - filePaths = filePaths.filter(function($) { - var e = { fileName: $ }; - that.fire('sourceFileFound', e); - - return !e.defaultPrevented; - }); - - return filePaths; - } - -})(); \ No newline at end of file diff --git a/modules/jsdoc/tag.js b/modules/jsdoc/tag.js deleted file mode 100644 index c2173b539..000000000 --- a/modules/jsdoc/tag.js +++ /dev/null @@ -1,135 +0,0 @@ -/** - @overview - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ - -/** - Functionality related to JSDoc tags. - @module jsdoc/tag - @requires jsdoc/tag/dictionary - @requires jsdoc/tag/validator - @requires jsdoc/tag/type - */ -(function() { - - var jsdoc = { - tag: { - dictionary: require('jsdoc/tag/dictionary'), - validator: require('jsdoc/tag/validator'), - type: require('jsdoc/tag/type') - } - }; - - /** - Constructs a new tag object. Calls the tag validator. - @class - @classdesc Represents a single doclet tag. - @param {string} tagTitle - @param {string=} tagBody - @param {object=} meta - */ - exports.Tag = function(tagTitle, tagBody, meta) { - var tagDef = jsdoc.tag.dictionary.lookUp(tagTitle), - meta = meta || {}; - - this.originalTitle = trim(tagTitle); - - /** The title part of the tag: @title text */ - this.title = jsdoc.tag.dictionary.normalise( this.originalTitle ); - - /** The text part of the tag: @title text */ - this.text = trim(tagBody, tagDef.keepsWhitespace); - - if (this.text) { - - if (tagDef.onTagText) { - this.text = tagDef.onTagText(this.text); - } - - if (tagDef.canHaveType) { - - /** The value propertiy represents the result of parsing the tag text. */ - this.value = {}; - - var [ - /*Array.*/ typeNames, - /*any*/ remainingText, - /*?boolean*/ optional, - /*?boolean*/ nullable, - /*?boolean*/ variable - ] = jsdoc.tag.type.parse(this.text); - - if (typeNames.length) { - this.value.type = { - names: typeNames, - optional: optional, - nullable: nullable, - variable: variable - }; - } - - if (remainingText) { - if (tagDef.canHaveName) { - var [paramName, paramDesc, paramOptional, paramDefault] - = parseParamText(remainingText); - - // note the dash is a special case: as a param name it means "no name" - if (paramName && paramName !== '-') { this.value.name = paramName; } - - if (paramDesc) { this.value.description = paramDesc; } - if (paramOptional) { this.value.optional = paramOptional; } - if (paramDefault) { this.value.defaultvalue = paramDefault; } - } - else { - this.value.description = remainingText; - } - } - } - else { - this.value = this.text; - } - } - - jsdoc.tag.validator.validate(this, meta); - } - - function trim(text, newlines) { - if (!text) { return ''; } - - if (newlines) { - return text.replace(/^[\n\r\f]+|[\n\r\f]+$/g, ''); - } - else { - return text.replace(/^\s+|\s+$/g, ''); - } - } - - /** - Parse the parameter name and parameter desc from the tag text. - @private - @method parseParamText - @param {string} tagText - @returns {Array.} [pname, pdesc, poptional, pdefault]. - */ - function parseParamText(tagText) { - var pname, pdesc, poptional, pdefault; - - // like: pname, pname pdesc, or name - pdesc - tagText.match(/^(\[[^\]]+\]|\S+)((?:\s*\-\s*|\s+)(\S[\s\S]*))?$/); - pname = RegExp.$1; - pdesc = RegExp.$3; - - if ( /^\[\s*(.+?)\s*\]$/.test(pname) ) { - pname = RegExp.$1; - poptional = true; - - if ( /^(.+?)\s*=\s*(.+)$/.test(pname) ) { - pname = RegExp.$1; - pdefault = RegExp.$2; - } - } - return [pname, pdesc, poptional, pdefault]; - } - -})(); \ No newline at end of file diff --git a/modules/jsdoc/tag/dictionary.js b/modules/jsdoc/tag/dictionary.js deleted file mode 100644 index b0484168d..000000000 --- a/modules/jsdoc/tag/dictionary.js +++ /dev/null @@ -1,73 +0,0 @@ -/** - @overview - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ -(function() { - var _synonyms = {}, - _definitions = {}, - _namespaces = []; - - function _TagDefinition(title, etc) { - etc = etc || {}; - - this.title = dictionary.normalise(title); - - for (var p in etc) { - if (etc.hasOwnProperty(p)) { - this[p] = etc[p]; - } - } - } - - _TagDefinition.prototype.synonym = function(synonymName) { - _synonyms[synonymName.toLowerCase()] = this.title; - return this; // chainable - } - - /** @exports jsdoc/tag/dictionary */ - var dictionary = { - /** @function */ - defineTag: function(title, opts) { - _definitions[title] = new _TagDefinition(title, opts); - - if (opts.isNamespace) { - _namespaces.push(title); - } - - return _definitions[title]; - }, - - /** @function */ - lookUp: function(title) { - title = dictionary.normalise(title); - - if ( _definitions.hasOwnProperty(title) ) { - return _definitions[title]; - } - - return false; - }, - - /** @function */ - isNamespace: function(kind) { - return ( ~ _namespaces.indexOf(kind) ); - }, - - /** @function */ - normalise: function(title) { - canonicalName = title.toLowerCase(); - - if ( _synonyms.hasOwnProperty(canonicalName) ) { - return _synonyms[canonicalName]; - } - - return canonicalName; - } - }; - - require('jsdoc/tag/dictionary/definitions').defineTags(dictionary); - - module.exports = dictionary; - -})(); \ No newline at end of file diff --git a/modules/jsdoc/tag/dictionary/definitions.js b/modules/jsdoc/tag/dictionary/definitions.js deleted file mode 100644 index 958156939..000000000 --- a/modules/jsdoc/tag/dictionary/definitions.js +++ /dev/null @@ -1,538 +0,0 @@ -/** - Define tags that are known in JSDoc. - @module jsdoc/tag/dictionary/definitions - - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ -(function() { - /** Populate the given dictionary with all known JSDoc tag definitions. - @param {module:jsdoc/tag/dictionary} dictionary - */ - exports.defineTags = function(dictionary) { - - dictionary.defineTag('access', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - // only valid values are private and protected, public is default - if ( /^(private|protected)$/i.test(tag.value) ) { - doclet.access = tag.value.toLowerCase(); - } - else { - delete doclet.access; - } - } - }); - - dictionary.defineTag('alias', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - doclet.alias = tag.value; - } - }); - - dictionary.defineTag('lends', { - // mustHaveValue: true, - onTagged: function(doclet, tag) { - doclet.alias = tag.value || ''; - doclet.addTag('undocumented'); - } - }); - - dictionary.defineTag('author', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - doclet.author = tag.value; - } - }); - - // I add on to that - dictionary.defineTag('augments', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - doclet.augment( firstWordOf(tag.value) ); - } - }) - .synonym('extends'); - - // that adds on to me - dictionary.defineTag('borrows', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - var [target, source] = parseBorrows(doclet, tag); - doclet.borrow(target, source); - } - }) - .synonym('mixes'); - - dictionary.defineTag('class', { - onTagged: function(doclet, tag) { - doclet.addTag('kind', 'class'); - - // handle special case where both @class and @constructor tags exist in same doclet - if (tag.originalTitle === 'class') { - var looksLikeDesc = (tag.value || '').match(/\S+\s+\S+/); // multiple words after @class? - if ( looksLikeDesc || /@construct(s|or)\b/i.test(doclet.comment) ) { - doclet.classdesc = tag.value; // treat the @class tag as a @classdesc tag instead - return; - } - } - - setDocletNameToValue(doclet, tag); - } - }) - .synonym('constructor'); - - dictionary.defineTag('classdesc', { - onTagged: function(doclet, tag) { - doclet.classdesc = tag.value; - } - }); - - dictionary.defineTag('constant', { - canHaveType: true, - onTagged: function(doclet, tag) { - setDocletKindToTitle(doclet, tag); - setDocletNameToValue(doclet, tag); - if (tag.value && tag.value.type) { - doclet.type = tag.value.type; - } - } - }) - .synonym('const'); - - dictionary.defineTag('copyright', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - doclet.copyright = tag.value; - } - }); - - dictionary.defineTag('constructs', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - var ownerClassName = firstWordOf(tag.value); - doclet.addTag('alias', ownerClassName); - doclet.addTag('kind', 'class'); - } - }); - - dictionary.defineTag('defaultvalue', { - onTagged: function(doclet, tag) { - if (tag.value) { - doclet.defaultvalue = tag.value; - } - else if (doclet.meta && doclet.meta.code && typeof doclet.meta.code.value !== 'undefined') { - if (doclet.meta.code.type && /STRING|NUMBER|NAME|TRUE|FALSE/.test(doclet.meta.code.type)) { - doclet.defaultvalue = doclet.meta.code.value; - if (doclet.meta.code.type === 'STRING') { - // TODO: handle escaped quotes in values - doclet.defaultvalue = '"'+doclet.defaultvalue.replace(/"/g, '\\"')+'"' - } - - if (doclet.defaultvalue === 'TRUE' || doclet.defaultvalue == 'FALSE') { - doclet.defaultvalue = doclet.defaultvalue.toLowerCase(); - } - } - else if (doclet.meta.code.type === 'NULL') { - // TODO: handle escaped quotes in values - doclet.defaultvalue = 'null' - } - } - } - }) - .synonym('default'); - - dictionary.defineTag('deprecated', { - // value is optional - onTagged: function(doclet, tag) { - doclet.deprecated = tag.value || true; - } - }); - - dictionary.defineTag('description', { - mustHaveValue: true - }) - .synonym('desc'); - - dictionary.defineTag('event', { - onTagged: function(doclet, tag) { - setDocletKindToTitle(doclet, tag); - setDocletNameToValue(doclet, tag); - applyNamespace(doclet, tag); - } - }); - - dictionary.defineTag('example', { - keepsWhitespace: true, - mustHaveValue: true, - onTagged: function(doclet, tag) { - if (!doclet.examples) { doclet.examples = []; } - doclet.examples.push(tag.value); - } - }); - - dictionary.defineTag('exception', { - mustHaveValue: true, - canHaveType: true, - onTagged: function(doclet, tag) { - if (!doclet.exceptions) { doclet.exceptions = []; } - doclet.exceptions.push(tag.value); - if (tag.value && tag.value.type) { - doclet.type = tag.value.type; - } - } - }) - .synonym('throws'); - - dictionary.defineTag('exports', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - var modName = firstWordOf(tag.value); - - doclet.addTag('alias', modName); - doclet.addTag('kind', 'module'); - } - }); - - dictionary.defineTag('file', { - onTagged: function(doclet, tag) { - setNameToFile(doclet, tag); - setDocletKindToTitle(doclet, tag); - setDocletDescriptionToValue(doclet, tag); - - doclet.preserveName = true; - } - }) - .synonym('fileoverview') - .synonym('overview'); - - dictionary.defineTag('fires', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - if (!doclet.fires) { doclet.fires = []; } - doclet.fires.push(tag.value); - } - }); - - dictionary.defineTag('function', { - onTagged: function(doclet, tag) { - setDocletKindToTitle(doclet, tag); - setDocletNameToValue(doclet, tag); - } - }) - .synonym('method'); - - dictionary.defineTag('global', { - mustNotHaveValue: true, - onTagged: function(doclet, tag) { - doclet.scope = 'global'; - delete doclet.memberof; - } - }); - - dictionary.defineTag('ignore', { - mustNotHaveValue: true, - onTagged: function(doclet, tag) { - doclet.ignore = true; - } - }); - - dictionary.defineTag('inner', { - onTagged: function(doclet, tag) { - setDocletScopeToTitle(doclet, tag); - } - }); - - dictionary.defineTag('instance', { - onTagged: function(doclet, tag) { - setDocletScopeToTitle(doclet, tag); - } - }); - - dictionary.defineTag('kind', { - mustHaveValue: true - }); - - dictionary.defineTag('license', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - doclet.license = tag.value; - } - }); - - dictionary.defineTag('memberof', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - setDocletMemberof(doclet, tag); - } - }) - .synonym('member'); - - dictionary.defineTag('mixin', { - onTagged: function(doclet, tag) { - setDocletKindToTitle(doclet, tag); - setDocletNameToValue(doclet, tag); - } - }); - - dictionary.defineTag('module', { - canHaveType: true, - isNamespace: true, - onTagged: function(doclet, tag) { - setDocletKindToTitle(doclet, tag); - setDocletNameToValue(doclet, tag); - doclet.name || setDocletNameToFilename(doclet, tag); - if (tag.value && tag.value.type) { - doclet.type = tag.value.type; - } - } - }); - - dictionary.defineTag('name', { - mustHaveValue: true - }); - - dictionary.defineTag('namespace', { - canHaveType: true, - onTagged: function(doclet, tag) { - setDocletKindToTitle(doclet, tag); - setDocletNameToValue(doclet, tag); - if (tag.value && tag.value.type) { - doclet.type = tag.value.type; - } - } - }); - - dictionary.defineTag('param', { - mustHaveValue: true, - canHaveType: true, - canHaveName: true, - onTagged: function(doclet, tag) { - if (!doclet.params) { doclet.params = []; } - doclet.params.push(tag.value); - } - }) - .synonym('argument') - .synonym('arg'); - - dictionary.defineTag('private', { - mustNotHaveValue: true, - onTagged: function(doclet, tag) { - doclet.access = 'private'; - } - }); - - dictionary.defineTag('property', { - canHaveType: true, - onTagged: function(doclet, tag) { - setDocletKindToTitle(doclet, tag); - setDocletNameToValue(doclet, tag); - if (tag.value && tag.value.type) { - doclet.type = tag.value.type; - } - } - }); - - dictionary.defineTag('protected', { - mustNotHaveValue: true, - onTagged: function(doclet, tag) { - doclet.access = 'protected'; - } - }); - - dictionary.defineTag('public', { - mustNotHaveValue: true, - onTagged: function(doclet, tag) { - delete doclet.access; // public is default - } - }); - - // use this instead of old deprecated @final tag - dictionary.defineTag('readonly', { - mustNotHaveValue: true, - onTagged: function(doclet, tag) { - doclet.readonly = true; - } - }); - - dictionary.defineTag('requires', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - var modName = firstWordOf(tag.value); - if (modName.indexOf('module:') !== 0) { - modName = 'module:'+modName; - } - if (!doclet.requires) { doclet.requires = []; } - doclet.requires.push(modName); - } - }); - - dictionary.defineTag('returns', { - mustHaveValue: true, - canHaveType: true, - onTagged: function(doclet, tag) { - if (!doclet.returns) { doclet.returns = []; } - doclet.returns.push(tag.value); - } - }) - .synonym('return'); - - dictionary.defineTag('see', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - if (!doclet.see) { doclet.see = []; } - doclet.see.push(tag.value); - } - }); - - dictionary.defineTag('since', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - doclet.since = tag.value; - } - }); - - dictionary.defineTag('summary', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - doclet.summary = tag.value; - } - }); - - dictionary.defineTag('this', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - if (!doclet.see) { doclet.see = []; } - doclet['this'] = firstWordOf(tag.value); - } - }); - - dictionary.defineTag('type', { - mustHaveValue: true, - canHaveType: true, - onTagText: function(text) { - // any text must be formatted as a type, but for back compat braces are optional - if ( ! /^\{.+\}$/.test(text) ) { - text = '{ '+text+' }'; - } - return text; - }, - onTagged: function(doclet, tag) { - if (tag.value && tag.value.type) { - doclet.type = tag.value.type; - if (doclet.kind === 'function') doclet.addTag('returns', tag.text); // for backwards compatibility we allow @type for functions to imply return type - } - } - }); - - dictionary.defineTag('typedef', { - canHaveType: true, - canHaveName: true, - onTagged: function(doclet, tag) { - setDocletKindToTitle(doclet, tag); - - if (tag.value) { - if (tag.value.name) { - doclet.addTag('name', tag.value.name); - } - if (tag.value.type) { - doclet.type = tag.value.type; - } - } - } - }); - - dictionary.defineTag('undocumented', { - mustNotHaveValue: true, - onTagged: function(doclet, tag) { - doclet.undocumented = true; - doclet.comment = ''; - } - }); - - dictionary.defineTag('variation', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - doclet.variation = tag.value; - } - }); - - dictionary.defineTag('version', { - mustHaveValue: true, - onTagged: function(doclet, tag) { - doclet.version = tag.value; - } - }); - } - - /** @private */ - function setDocletKindToTitle(doclet, tag) { - doclet.addTag( 'kind', tag.title ); - } - - function setDocletScopeToTitle(doclet, tag) { - doclet.addTag( 'scope', tag.title ); - } - - function setDocletNameToValue(doclet, tag) { - if (tag.value && tag.value.description) { // as in a long tag - doclet.addTag( 'name', tag.value.description); - } - else if (tag.text) { // or a short tag - doclet.addTag('name', tag.text); - } - } - - function setDocletDescriptionToValue(doclet, tag) { - if (tag.value) { - doclet.addTag( 'description', tag.value ); - } - } - - function setNameToFile(doclet, tag) { - if (doclet.meta.filename) { doclet.addTag( 'name', 'file:'+doclet.meta.filename ); } - } - - function setDocletMemberof(doclet, tag) { - doclet.setMemberof(tag.value); - } - - function applyNamespace(doclet, tag) { - if (!doclet.name) return; // error? - - //doclet.displayname = doclet.name; - doclet.longname = app.jsdoc.name.applyNamespace(doclet.name, tag.title) - } - - function setDocletNameToFilename(doclet, tag) { - var name = doclet.meta.filename; - name = name.replace(/\.js$/i, ''); - - for (var i = 0, len = env.opts._.length; i < len; i++) { - if (name.indexOf(env.opts._[i]) === 0) { - name = name.replace(env.opts._[0], ''); - break - } - } - doclet.name = name; - } - - function parseBorrows(doclet, tag) { - var m = /^(\S+)(?:\s+as\s+(\S+))?$/.exec(tag.text); - if (m) { - if (m[1] && m[2]) { - return [ m[1], m[2] ]; - } - else if (m[1]) { - return [ m[1] ]; - } - } - } - - function firstWordOf(string) { - var m = /^(\S+)/.exec(string); - if (m) { return m[1]; } - else { return ''; } - } -})(); \ No newline at end of file diff --git a/modules/jsdoc/tag/type.js b/modules/jsdoc/tag/type.js deleted file mode 100644 index 04bdc2801..000000000 --- a/modules/jsdoc/tag/type.js +++ /dev/null @@ -1,113 +0,0 @@ -/** - @module jsdoc/tag/type - - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ - -(function() { - - /** - @param {string} tagValue - @returns {Array.} - */ - exports.parse = function(tagValue) { - if (typeof tagValue !== 'string') { tagValue = ''; } - var type = '', - text = '', - count = 0, - optional, - nullable, - variable; - - // type expressions start with '{' - if (tagValue[0] === '{') { - count++; - - // find matching closer '}' - for (var i = 1, leni = tagValue.length; i < leni; i++) { - if (tagValue[i] === '\\') { i++; continue; } // backslash escapes the next character - - if (tagValue[i] === '{') { count++; } - else if (tagValue[i] === '}') { count--; } - - if (count === 0) { - type = trim(tagValue.slice(1, i)) - .replace(/\\\{/g, '{') // unescape escaped curly braces - .replace(/\\\}/g, '}'); - text = trim(tagValue.slice(i+1)); - break; - } - } - } - - if (type === '') { text = tagValue; } - - [type, optional] = parseOptional(type); - [type, nullable] = parseNullable(type); - [type, variable] = parseVariable(type); - - type = parseTypes(type); // make it into an array - - return [type, text, optional, nullable, variable]; - } - - function parseOptional(type) { - var optional = null; - - // {sometype=} means optional - if ( /(.+)=$/.test(type) ) { - type = RegExp.$1; - optional = true; - } - - return [type, optional]; - } - - function parseNullable(type) { - var nullable = null; - - // {?sometype} means nullable, {!sometype} means not-nullable - if ( /^([\?\!])(.+)$/.test(type) ) { - type = RegExp.$2; - nullable = (RegExp.$1 === '?')? true : false; - } - - return [type, nullable]; - } - - function parseVariable(type) { - var variable = null; - - // {...sometype} means variable number of that type - if ( /^(\.\.\.)(.+)$/.test(type) ) { - type = RegExp.$2; - variable = true; - } - - return [type, variable]; - } - - function parseTypes(type) { - var types = []; - - if ( ~type.indexOf('|') ) { - // remove optional parens, like: { ( string | number ) } - // see: http://code.google.com/closure/compiler/docs/js-for-compiler.html#types - if ( /^\s*\(\s*(.+)\s*\)\s*$/.test(type) ) { - type = RegExp.$1; - } - types = type.split(/\s*\|\s*/g); - } - else if (type) { - types = [type]; - } - - return types; - } - - /** @private */ - function trim(text) { - return text.replace(/^\s+|\s+$/g, ''); - } -})(); \ No newline at end of file diff --git a/modules/jsdoc/tag/validator.js b/modules/jsdoc/tag/validator.js deleted file mode 100644 index 7f714529b..000000000 --- a/modules/jsdoc/tag/validator.js +++ /dev/null @@ -1,52 +0,0 @@ -/** - @module jsdoc/tag/validator - @requires jsdoc/tag/dictionary - - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. - */ -(function() { - - var dictionary = require('jsdoc/tag/dictionary'); - - /** - Validate the given tag. - */ - exports.validate = function(tag, meta) { - var tagDef = dictionary.lookUp(tag.title); - - if (!tagDef && !env.conf.tags.allowUnknownTags) { - throw new UnknownTagError(tag.title, meta); - } - - if (!tag.text) { - if (tagDef.mustHaveValue) { - throw new TagValueRequiredError(tag.title, meta); - } - } - else { - if (tagDef.mustNotHaveValue) { - throw new TagValueNotPermittedError(tag.title, meta); - } - } - } - - function UnknownTagError(tagName, meta) { - this.name = 'UnknownTagError'; - this.message = 'The @' + tagName + ' tag is not a known tag. File: ' + meta.filename + ', Line: ' + meta.lineno + '\n' + meta.comment; - } - UnknownTagError.prototype = Error.prototype; - - function TagValueRequiredError(tagName, meta) { - this.name = 'TagValueRequiredError'; - this.message = 'The @' + tagName + ' tag requires a value. File: ' + meta.filename + ', Line: ' + meta.lineno + '\n' + meta.comment; - } - TagValueRequiredError.prototype = Error.prototype; - - function TagValueNotPermittedError(tagName, message, meta) { - this.name = 'TagValueNotPermittedError'; - this.message = 'The @' + tagName + ' tag does not permit a value: "' + message + '". File: ' + meta.filename + ', Line: ' + meta.lineno + '\n' + meta.comment; - } - TagValueNotPermittedError.prototype = Error.prototype; - -})(); \ No newline at end of file diff --git a/modules/sitepen/jsonschema.js b/modules/sitepen/jsonschema.js deleted file mode 100644 index 3d6f6625d..000000000 --- a/modules/sitepen/jsonschema.js +++ /dev/null @@ -1,233 +0,0 @@ -/** - * JSONSchema Validator - Validates JavaScript objects using JSON Schemas - * (http://www.json.com/json-schema-proposal/) - * - * Copyright (c) 2007 Kris Zyp SitePen (www.sitepen.com) - * Licensed under the MIT (MIT-LICENSE.txt) license. -To use the validator call JSONSchema.validate with an instance object and an optional schema object. -If a schema is provided, it will be used to validate. If the instance object refers to a schema (self-validating), -that schema will be used to validate and the schema parameter is not necessary (if both exist, -both validations will occur). -The validate method will return an array of validation errors. If there are no errors, then an -empty list will be returned. A validation error will have two properties: -"property" which indicates which property had the error -"message" which indicates what the error was - */ - -// setup primitive classes to be JSON Schema types -String.type = "string"; -Boolean.type = "boolean"; -Number.type = "number"; -exports.Integer = {type:"integer"}; -Object.type = "object"; -Array.type = "array"; -Date.type = "string"; -Date.format = "date-time"; - -exports.validate = function(/*Any*/instance,/*Object*/schema) { - // Summary: - // To use the validator call JSONSchema.validate with an instance object and an optional schema object. - // If a schema is provided, it will be used to validate. If the instance object refers to a schema (self-validating), - // that schema will be used to validate and the schema parameter is not necessary (if both exist, - // both validations will occur). - // The validate method will return an object with two properties: - // valid: A boolean indicating if the instance is valid by the schema - // errors: An array of validation errors. If there are no errors, then an - // empty list will be returned. A validation error will have two properties: - // property: which indicates which property had the error - // message: which indicates what the error was - // - return validate(instance,schema,false); - }; -exports.checkPropertyChange = function(/*Any*/value,/*Object*/schema, /*String*/ property) { - // Summary: - // The checkPropertyChange method will check to see if an value can legally be in property with the given schema - // This is slightly different than the validate method in that it will fail if the schema is readonly and it will - // not check for self-validation, it is assumed that the passed in value is already internally valid. - // The checkPropertyChange method will return the same object type as validate, see JSONSchema.validate for - // information. - // - return validate(value,schema, property || "property"); - }; -var validate = exports._validate = function(/*Any*/instance,/*Object*/schema,/*Boolean*/ _changing) { - - var errors = []; - // validate a value against a property definition - function checkProp(value, schema, path,i){ - var l; - path += path ? typeof i == 'number' ? '[' + i + ']' : typeof i == 'undefined' ? '' : '.' + i : i; - function addError(message){ - errors.push({property:path,message:message}); - } - - if((typeof schema != 'object' || schema instanceof Array) && (path || typeof schema != 'function') && !(schema && schema.type)){ - if(typeof schema == 'function'){ - if(!(value instanceof schema)){ - addError("is not an instance of the class/constructor " + schema.name); - } - }else if(schema){ - addError("Invalid schema/property definition " + schema); - } - return null; - } - if(_changing && schema.readonly){ - addError("is a readonly field, it can not be changed"); - } - if(schema['extends']){ // if it extends another schema, it must pass that schema as well - checkProp(value,schema['extends'],path,i); - } - // validate a value against a type definition - function checkType(type,value){ - if(type){ - if(typeof type == 'string' && type != 'any' && - (type == 'null' ? value !== null : typeof value != type) && - !(value instanceof Array && type == 'array') && - !(type == 'integer' && value%1===0)){ - return [{property:path,message:(typeof value) + " value found, but a " + type + " is required"}]; - } - if(type instanceof Array){ - var unionErrors=[]; - for(var j = 0; j < type.length; j++){ // a union type - if(!(unionErrors=checkType(type[j],value)).length){ - break; - } - } - if(unionErrors.length){ - return unionErrors; - } - }else if(typeof type == 'object'){ - var priorErrors = errors; - errors = []; - checkProp(value,type,path); - var theseErrors = errors; - errors = priorErrors; - return theseErrors; - } - } - return []; - } - if(value === undefined){ - if(!schema.optional && !schema.get){ - addError("is missing and it is not optional"); - } - }else{ - errors = errors.concat(checkType(schema.type,value)); - if(schema.disallow && !checkType(schema.disallow,value).length){ - addError(" disallowed value was matched"); - } - if(value !== null){ - if(value instanceof Array){ - if(schema.items){ - if(schema.items instanceof Array){ - for(i=0,l=value.length; i schema.maxItems){ - addError("There must be a maximum of " + schema.maxItems + " in the array"); - } - }else if(schema.properties || schema.additionalProperties){ - errors.concat(checkObj(value, schema.properties, path, schema.additionalProperties)); - } - if(schema.pattern && typeof value == 'string' && !value.match(schema.pattern)){ - addError("does not match the regex pattern " + schema.pattern); - } - if(schema.maxLength && typeof value == 'string' && value.length > schema.maxLength){ - addError("may only be " + schema.maxLength + " characters long"); - } - if(schema.minLength && typeof value == 'string' && value.length < schema.minLength){ - addError("must be at least " + schema.minLength + " characters long"); - } - if(typeof schema.minimum !== undefined && typeof value == typeof schema.minimum && - schema.minimum > value){ - addError("must have a minimum value of " + schema.minimum); - } - if(typeof schema.maximum !== undefined && typeof value == typeof schema.maximum && - schema.maximum < value){ - addError("must have a maximum value of " + schema.maximum); - } - if(schema['enum']){ - var enumer = schema['enum']; - l = enumer.length; - var found; - for(var j = 0; j < l; j++){ - if(enumer[j]===value){ - found=1; - break; - } - } - if(!found){ - addError("does not have a value in the enumeration " + enumer.join(", ")); - } - } - if(typeof schema.maxDecimal == 'number' && - (value.toString().match(new RegExp("\\.[0-9]{" + (schema.maxDecimal + 1) + ",}")))){ - addError("may only have " + schema.maxDecimal + " digits of decimal places"); - } - } - } - return null; - } - // validate an object against a schema - function checkObj(instance,objTypeDef,path,additionalProp){ - - if(typeof objTypeDef =='object'){ - if(typeof instance != 'object' || instance instanceof Array){ - errors.push({property:path,message:"an object is required"}); - } - - for(var i in objTypeDef){ - if(objTypeDef.hasOwnProperty(i) && !(i.charAt(0) == '_' && i.charAt(1) == '_')){ - var value = instance[i]; - var propDef = objTypeDef[i]; - checkProp(value,propDef,path,i); - } - } - } - for(i in instance){ - if(instance.hasOwnProperty(i) && !(i.charAt(0) == '_' && i.charAt(1) == '_') && objTypeDef && !objTypeDef[i] && additionalProp===false){ - errors.push({property:path,message:(typeof value) + "The property " + i + - " is not defined in the schema and the schema does not allow additional properties"}); - } - var requires = objTypeDef && objTypeDef[i] && objTypeDef[i].requires; - if(requires && !(requires in instance)){ - errors.push({property:path,message:"the presence of the property " + i + " requires that " + requires + " also be present"}); - } - value = instance[i]; - if(additionalProp && (!(objTypeDef && typeof objTypeDef == 'object') || !(i in objTypeDef))){ - checkProp(value,additionalProp,path,i); - } - if(!_changing && value && value.$schema){ - errors = errors.concat(checkProp(value,value.$schema,path,i)); - } - } - return errors; - } - if(schema){ - checkProp(instance,schema,'',_changing || ''); - } - if(!_changing && instance && instance.$schema){ - checkProp(instance,instance.$schema,'',''); - } - return {valid:!errors.length,errors:errors}; -}; -exports.mustBeValid = function(result){ - // summary: - // This checks to ensure that the result is valid and will throw an appropriate error message if it is not - // result: the result returned from checkPropertyChange or validate - if(!result.valid){ - throw new TypeError(result.errors.map(function(error){return "for property " + error.property + ': ' + error.message;}).join(", \n")); - } -} - /* will add this later - newFromSchema : function() { - } -*/ diff --git a/modules/typicaljoe/taffy.js b/modules/typicaljoe/taffy.js deleted file mode 100644 index 03fe852ae..000000000 --- a/modules/typicaljoe/taffy.js +++ /dev/null @@ -1,1427 +0,0 @@ -/* - -Software License Agreement (BSD License) -http://taffydb.com -Copyright (c) 2008 -All rights reserved. -Version 1.7.3 - - -Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following condition is met: - -* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -SUMMARY: -TAFFY takes a JavaScript object and returns a set of methods -to search, modify, and manipulate that object. - -*/ - -var TAFFY = function (obj) { - var conf = { - template:null - }, T = TAFFY, raw = (T.isString(obj)) ? T.JSON.parse(obj) : obj, TOb = raw, TIA = [], t = true, f=false; - - - // **************************************** - // * - // * Create prvate mergeTemp function - // * Loop over set of indexes and apply a template to the record - // * - // **************************************** - var mergeTemp = function (rows,tmpl) { - var tmpl = tmpl || conf.template; - if (!TAFFY.isNull(tmpl)) - { - for(var x = 0, xl = rows.length; x < xl; x++) { - TOb[rows[x]] = TAFFY.mergeObj(TOb[rows[x]],tmpl); - } - } - }; - - // **************************************** - // * - // * Create prvate bTIA function - // * Loop over every index within the Taffy Object TOb - // * and populate the Taffy Index Array TIA with the indexes - // * - // **************************************** - var bTIA = function () { - TIA = []; - for(var x = 0, xl = TOb.length; x < xl; x++) { - TIA[TIA.length] = x; - } - }; - bTIA(); - - - // **************************************** - // * - // * Create prvate findTests Object - // * Collect all possible true/false expression used when - // * doing lookups via the public find method. - // * Purpose: Used to house and document all of the - // * possible ways to match a value to a field with the - // * TAFFY Object. Each of the contained functions does an - // * evaluation against a value from the TAFFY Obj and a test - // * provided by the caller of the find method. If this - // * evaluation is true then the find method will add - // * the TAFFY Object record to the results set. - // * - // **************************************** - - var findTests = { - - pickTest:function(Tt) - { - var m = (Tt.indexOf("!") === 0) ? f : t; - if (!m) - { - Tt = Tt.substring(1,Tt.length); - } - return {test:(Tt == 'equal') ? 'is' : - (Tt == 'notequal') ? 'not' : - (Tt == 'startswith') ? 'starts' : - (Tt == 'endswith') ? 'ends' : - (Tt == 'greaterthan') ? 'gt' : - (Tt == 'lessthan') ? 'lt' : - (Tt == 'regexppass') ? 'regex' : Tt,mode:(m) ? {s:t,f:f} : {s:f,f:t}}; - }, - run:function(s,mvalue,mtest,b) { - return ((s=="regex") ? (mtest.test(mvalue)) : - (s=="lt") ? (mvalue < mtest) : - (s=="gt") ? (mvalue > mtest) : - (s=="lte") ? (mvalue <= mtest) : - (s=="gte") ? (mvalue >= mtest) : - (s=="starts") ? (mvalue.indexOf(mtest) === 0) : - (s=="ends") ? (mvalue.substring((mvalue.length - mtest.length)) == mtest) : - (s=="like") ? (mvalue.indexOf(mtest) >= 0) : - (s=="is") ? (mvalue == mtest) : - (s=="has") ? (T.has(mvalue,mtest)) : - (s=="hasAll") ? (T.hasAll(mvalue,mtest)) : - (s=="length") ? (findTests.length(mvalue,mtest,b)) : - findTests[s](mvalue,mtest)) ? b.s : b.f; - }, - length:function (mvalue,mtest,b) - { - // If a value length exits and meets filter criteria - var rlen = (!T.isUndefined(mvalue.length)) ? mvalue.length : (!T.isUndefined(mvalue.getLength)) ? mvalue.getLength() : 0; - if (T.isObject(mtest)) { - for(var kt in mtest) - { - if (mtest.hasOwnProperty(kt)) - { - var pt = findTests.pickTest(kt); - return findTests.run(pt.test,rlen,mtest[kt],pt.mode) ? t : f; - } - } - } - // default return - return rlen == mtest ? b.s : b.f; - } - }; - - // Add in isObjectType checks - (function () { - for(var z in TAFFY) - { - if (TAFFY.hasOwnProperty(z) && z.indexOf("is") === 0) - { - (function (y) { - findTests["is" + y] = function (mvalue,mtest,b) { - return (TAFFY["is" + y](mvalue) == mtest) ? t : f; - }; - }(z.substring(2,z.length))); - } - } - }()); - - // **************************************** - // * - // * Create prvate bDexArray method - // * Return an array of indexes - // * Purpose: Used to create a variable that is an - // * array that contains the indexes of the records - // * that an action should be taken on. If a single - // * number is passed then an array is created with that - // * number being in postion 0. If an array is passed - // * in then that array is returned. If no value is - // * passed in then an array containing every index - // * in the TAFFY Obj is returned. If an object is passed - // * then a call to the find function is made and the - // * resulting array of indexes returned. - // * - // **************************************** - - var bDexArray = function (iA,f) { - var rA = []; - if (!T.isArray(iA) && TAFFY.isNumber(iA)) - { - rA[rA.length] = iA; - } - else if (T.isArray(iA)) - { - rA = iA; - - } - else if (T.isObject(iA)) - { - rA = f(iA); - } - else if (!T.isArray(iA) && !T.isNumber(iA)) - { - rA = TIA; - } - return rA; - }; - - // **************************************** - // * - // * Create private toLogicalArray method - // * return custom array for use in array.sort based on sort obj - // * argument - // * Purpose: This is used by the buildSortFunction function in the case - // * of logical and logicaldesc sort types. This function splits a complex - // * value into an array so that each array item can be compared against - // * the item at the index in each value. - // * - // **************************************** - var toLogicalArray = function (value) { - var rArray = [0],type = "none",value = value + ""; - if (!T.isNull(value) && !T.isUndefined(value)) { - for(var n = 0, nl = value.length;n y[z]){ - returnvar = 1; - break; - } - } - if (x.length < y.length && returnvar==0) - { - returnvar = -1; - } else if (x.length > y.length && returnvar==0) { - returnvar = 1; - } - } else if (custO[sa].sortDir == 'logicaldesc') { - x = toLogicalArray(x); - y = toLogicalArray(y); - for(var z = 0, zl = y.length;z y[z] && z < x.length) { - returnvar = -1; - break; - } else if (x[z] < y[z]){ - returnvar = 1; - break; - } - } - if (x.length < y.length && returnvar==0) - { - returnvar = 1; - } else if (x.length > y.length && returnvar==0) { - returnvar = -1; - } - } else { - if (T.isNull(x) || T.isUndefined(x) || x < y) { - returnvar = -1; - } else if (T.isNull(y) || T.isUndefined(y) || x > y){ - returnvar = 1; - } - } - - } - - } - return returnvar; - - }; - - }; - - // **************************************** - // * - // * Return Obj containing Methods - // * - // **************************************** - return { - - // **************************************** - // * - // * This is a simple true flag to identify - // * the returned collection as being created by - // * TAFFY() - // * - // **************************************** - TAFFY:true, - - // **************************************** - // * - // * Get the length of the TAFFY collection. - // * - // **************************************** - getLength:function () { - return TOb.length; - }, - - // **************************************** - // * - // * This is the date of the last change - // * to the TAFFY object. - // * - // **************************************** - lastModifyDate:new Date(), - - // **************************************** - // * - // * Create public find method - // * Returns array of index numbers for matching array values - // * Purpose: This takes an obj that defines a set of match - // * cases for use against the TOb. Matching indexes are - // * added to an array and then returned to the user. This is the - // * primary "lookup" feature of TAFFY and is how you find individual - // * or sets of records for use in update, remove, get, etc. - // * - // **************************************** - find : function (matchObj,findFilter) { - - - // define findMatches array and findMatchesLoaded flag - var findIndex = 0; - - // if findFilter is provided use findFilter to start findMatches array - // otherwise use TIA which contains all indexes of the TOb - if (T.isArray(findFilter)) { - var findMatches = findFilter; - } else { - var findMatches = TIA; - - } - - // if matchObject is a function run it against every item in findMatches - if (T.isFunction(matchObj)) { - var thisMatchArray = []; - // loop over every element in the findMatches - for (var d = 0, dl = findMatches.length; d < dl; d++) { - // add to matched item list if function returns true - if (matchObj(TOb[d], d)) { - thisMatchArray[thisMatchArray.length] = findMatches[d]; - } - } - findMatches = thisMatchArray; - } - else { - // loop over attributes in matchObj - for (var mi in matchObj) { - if (matchObj.hasOwnProperty(mi)) { - // default matchType, matchValue, matchField - var matchType = 'is', matchValue = '', matchField = mi, matchMode = { - s: t, - f: f - }, pt = {}; - - // If the matchObj attribute is an object - if (T.isObject(matchObj[mi])) { - - // loop over match field attributes - for (var fi in matchObj[mi]) { - if (matchObj[mi].hasOwnProperty(fi)) { - // switch over attributes, extract data - pt = findTests.pickTest(fi); - matchType = pt.test; - matchMode = pt.mode; - - matchValue = matchObj[mi][fi]; - } - } - } - // If the matchObj attribute is not an object - else { - // set the match value to the value provided - matchValue = matchObj[mi]; - } - - //define thisMatchArray for this find method - var thisMatchArray = []; - - // loop over every element in the findMatches - for (var d = 0, dl = findMatches.length; d < dl; d++) { - - // if the value is an array of values, loop rather than do 1 to 1 - if (T.isArray(matchValue) && matchType != 'isSameArray' && matchType != 'hasAll') { - // call the correct filter based on matchType and add the record if the filter returns true for normal mode - if (matchMode.s) { - for (var md = 0; md < matchValue.length; md++) { - - if (findTests.run(matchType, TOb[findMatches[d]][matchField], matchValue[md], matchMode)) { - thisMatchArray[thisMatchArray.length] = findMatches[d]; - - } - - } - } - else { - - // call the correct filter based on matchType and add the record only if fit passes every filter value if negative (!) mode - var pt = 1; - for (var md = 0; md < matchValue.length; md++) { - - if (!findTests.run(matchType, TOb[findMatches[d]][matchField], matchValue[md], matchMode)) { - pt = 0; - - } - - } - if (pt == 1) { - thisMatchArray[thisMatchArray.length] = findMatches[d]; - } - } - } - // if the value is a function call function and append index if it returns true - else - if (T.isFunction(matchValue) && matchValue(TOb[findMatches[d]][matchField], d)) { - thisMatchArray[thisMatchArray.length] = findMatches[d]; - } - // if the value is not an array but a single value - // If an exact match is found then add it to the array - - else - if (findTests.run(matchType, TOb[findMatches[d]][matchField], matchValue, matchMode)) { - thisMatchArray[thisMatchArray.length] = findMatches[d]; - - } - } - - findMatches = thisMatchArray; - } - } - } - // Garther only unique finds - findMatches = T.gatherUniques(findMatches); - - return findMatches; - }, - - // **************************************** - // * - // * Create public remove method - // * Purpose: This is used to remove a record from - // * the TOb by an index or an array of indexes. - // * - // **************************************** - remove : function (dex) { - - var removeIndex = bDexArray(dex,this.find); - - // loop over removeIndex and set each record to remove - // this is done so all records are flagged for remove - // before the size of the array changes do to the splice - // function below - for(var di = 0, dil = removeIndex.length; di < dil; di++) { - if (!T.isNull(this.onRemove)) - { - this.onRemove(TOb[removeIndex[di]]); - } - TOb[removeIndex[di]] = 'remove'; - } - - // nested function find delete - var removeRemaining = function () { - for(var tdi = 0, tdil = TOb.length; tdi < tdil; tdi++) { - if (TOb[tdi] === 'remove') { - return t; - } - } - return f; - }; - - // loop over TOb and remove all rows set to remove - while (removeRemaining()) { - for(var tdi = 0, tdil = TOb.length; tdi < tdil; tdi++) { - if (TOb[tdi] === 'remove') { - TOb.splice(tdi,1); - // update lastModifyDate - this.lastModifyDate = new Date(); - } - } - } - - // populate TIA - bTIA(); - return removeIndex; - }, - - - - - // **************************************** - // * - // * Create public insert method - // * Purpose: this takes an obj and inserts it into - // * the TAFFY Obj array - // * - // **************************************** - insert : function (newRecordObj) { - - var rec = (TAFFY.isArray(newRecordObj)) ? newRecordObj : [newRecordObj]; - - for (var x = 0; x < rec.length; x++) { - if (!T.isNull(this.onInsert)) { - this.onInsert(rec[x]); - } - - - // Do insert - TOb[TOb.length] = (TAFFY.isNull(conf.template)) ? rec[x] : TAFFY.mergeObj(conf.template, rec[x]); - - // update lastModifyDate - this.lastModifyDate = new Date(); - - // populate TIA - TIA[TIA.length] = TOb.length - 1; - - } - return [TOb.length-1]; - }, - - // **************************************** - // * - // * Create public update method - // * Purpose: This takes an obj of name/value - // * pairs and then a set of 1 or more indexes - // * and updates those records with in the TOb - // * - // **************************************** - update : function (updateObj,dex) { - - var updateIndex = bDexArray(dex,this.find), updateCount=0; - - for(var d = 0, dl = updateIndex.length; d < dl; d++) { - // set the updatedex - var updateDex = updateIndex[d]; - - if (!T.isNull(this.onUpdate)) - { - this.onUpdate(updateObj,TOb[updateDex]); - } - - // Merge Objects - TOb[updateDex] = T.mergeObj(TOb[updateDex],updateObj); - - // add the updaecount - updateCount++; - - } - - return updateIndex; - }, - - - // **************************************** - // * - // * Create public get method - // * Purpose: This return an array containing - // * the rows for a set of indexes. Used to get - // * a record set with the help of the find - // * function. Returns an empty array if - // * no records are found. - // * - // **************************************** - - get : function (dex) { - - var nT = []; - - var getIndex = bDexArray(dex,this.find); - - // loop over all of the indexes - for(var d = 0, dl = getIndex.length; d < dl; d++) { - - // add the TOb to the newTAFFYArray array - nT[nT.length] = TOb[getIndex[d]]; - } - return nT; - }, - - // **************************************** - // * - // * Create public first method - // * Purpose: This returns the first row - // * from a set of indexes. Used to get - // * a record with the help of the find - // * function. Returns false if no records - // * are found. - // * - // **************************************** - - first : function (dex) { - - var getIndex = bDexArray(dex,this.find); - - return (getIndex.length > 0) ? TOb[getIndex[0]] : false; - - }, - - // **************************************** - // * - // * Create public last method - // * Purpose: This returns the last row - // * from a set of indexes. Used to get - // * a record with the help of the find - // * function. Returns false if no records - // * are found. - // * - // **************************************** - - last : function (dex) { - - var getIndex = bDexArray(dex,this.find); - - return (getIndex.length > 0) ? TOb[getIndex[(getIndex.length - 1)]] : false; - }, - - // **************************************** - // * - // * Create public stringify method - // * Purpose: This returns a string JSON array - // * from a set of indexes. Used to get records - // * for handling by AJAX or other langauges. - // * - // **************************************** - - stringify : function (dex) { - - return T.JSON.stringify(this.get(dex)); - }, - - // **************************************** - // * - // * Create public orderBy method - // * Purpose: Reorder the array according - // * to a list of fields. Very useful for - // * ordering tables or other types of - // * sorting. - // * - // **************************************** - orderBy : function (Obj) { - - // Only attempt to sort if there is a length - // to the TAFFY array - if (TOb.length > 0) { - // Use the private buildSortFunction method - // to create a custom sort function unless one is provided - - if (T.isFunction(Obj)) { - var customSort = Obj; - } else { - var customSort = buildSortFunction(Obj); - } - - // Call JavaScript's array.sort with the custom - // sort function - TOb.sort(customSort); - - // update lastModifyDate - this.lastModifyDate = new Date(); - - - } - }, - - // **************************************** - // * - // * Create public forEach method - // * Purpose: Loop over every item in a TOb - // * (or at least the ones passed in the forIndex) - // * and call the provided user created function. - // * - // **************************************** - forEach : function (func2call,dex) { - - var forIndex = bDexArray(dex,this.find); - - var row; - // loop over all of the indexes - for(var fe = 0, fel = forIndex.length; fe < fel; fe++) { - // get this row from the TOb - row = TOb[forIndex[fe]]; - // call the function passed in to the method - var nr = func2call(row,forIndex[fe]); - - // If nr is an object then set the row equal to the new object - if (T.isObject(nr)) - { - if (TAFFY.isSameObject(nr,TAFFY.EXIT)) { - break; - } else { - this.update(nr,forIndex[fe]); - } - } - } - - }, - - // **************************************** - // * - // * Create public sum method - // * Purpose: Take a column name and a forIndex - // * and sum up the numeric total for every row. - // * - // **************************************** - sum : function (col,dex) { - var t = 0; - this.forEach(function (r) { - if(TAFFY.isNumeric(r[col])) { - t = t + r[col]; - } - - },dex) - - return t; - }, - - // **************************************** - // * - // * Create public max method - // * Purpose: Take a column name and a forIndex - // * and find the highest value in that column - // * over every row. - // * - // **************************************** - max : function (col,dex) { - var t, f = 0; - this.forEach(function (r) { - if (f==1 && r[col] > t) { - t = r[col]; - } else if (f==0) { - t=r[col]; - f=1; - } - },dex) - - return t; - }, - - // **************************************** - // * - // * Create public min method - // * Purpose: Take a column name and a forIndex - // * and find the lowest value in that column - // * over every row. - // * - // **************************************** - min : function (col,dex) { - var t, f = 0; - this.forEach(function (r) { - if (f==1 && r[col] < t) { - t = r[col]; - } else if (f==0) { - t=r[col]; - f=1; - } - },dex) - - return t; - }, - - // **************************************** - // * - // * Create public values method - // * Purpose: Take a column name and a forIndex - // * and find all the values for the rows returned. - // * - // **************************************** - values : function (col,dex) { - var t = []; - this.forEach(function (r) { - t[t.length] = r[col]; - },dex) - return t; - }, - // **************************************** - // * - // * Create public uniqueValues method - // * Purpose: Take a column name and a forIndex - // * and find only the unique values for the rows returned. - // * - // **************************************** - uniqueValues : function (col,dex) { - var t = TAFFY([]); - this.forEach(function (r) { - if (t.find({value:r[col]}).length == 0) { - t.insert({value:r[col]}); - } - },dex) - return t.values("value"); - }, - // **************************************** - // * - // * config variable object - // * - // **************************************** - config:{ - // **************************************** - // * - // * Create public set method - // * Purpose: Set a config value - // * - // **************************************** - set:function (n,v) { - conf[n] = v; - if (n == 'template' && !TAFFY.isNull(v)) { - mergeTemp(TIA,v); - } - }, - // **************************************** - // * - // * Create public get method - // * Purpose: Get a config value - // * - // **************************************** - get:function (n) { - return conf[n]; - } - }, - - // **************************************** - // * - // * Create public stringify method - // * Purpose: This returns a string JSON array - // * from a set of indexes. Used to get records - // * for handling by AJAX or other langauges. - // * - // **************************************** - - applyTemplate : function (tmp,dex) { - var getIndex = bDexArray(dex,this.find); - - mergeTemp(getIndex,tmp); - }, - // **************************************** - // * - // * Empty On Update Event - This can be replaced with a function - // * to call a custom action as each record is updated. - // * - // **************************************** - onUpdate:null, - - // **************************************** - // * - // * Empty On Remove Event - This can be replaced with a function - // * to call a custom action as each record is removed. - // * - // **************************************** - onRemove:null, - - // **************************************** - // * - // * Empty On Insert Event - This can be replaced with a function - // * to call a custom action as each record is inserted. - // * - // **************************************** - onInsert:null - - }; - -}; - - // **************************************** - // * - // * TAFFY Public Utilities - // * Accessed via TAFFY[methodname]() - // * - // **************************************** - - - // **************************************** - // * - // * typeOf Fixed in JavaScript as public utility - // * - // **************************************** - TAFFY.typeOf = function (v) { - var s = typeof v; - if (s === 'object') { - if (v) { - if (typeof v.length === 'number' && - !(v.propertyIsEnumerable('length')) && - typeof v.splice === 'function') { - s = 'array'; - } - } else { - s = 'null'; - } - } - return s; - }; - - - // **************************************** - // * - // * JSON Object Handler / public utility - // * See http://www.JSON.org/js.html - // * The following JSON Object is Public Domain - // * No warranty expressed or implied. Use at your own risk. - // * - // **************************************** - - TAFFY.JSON = function () { - - function f(n) { - return n < 10 ? '0' + n : n; - } - - Date.prototype.toJSON = function () { - - return this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z'; - }; - - - var m = { - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }; - - function stringify(value, whitelist) { - var a,i,k,l, r = /["\\\x00-\x1f\x7f-\x9f]/g,v; - - switch (typeof value) { - case 'string': - - return r.test(value) ? - '"' + value.replace(r, function (a) { - var c = m[a]; - if (c) { - return c; - } - c = a.charCodeAt(); - return '\\u00' + Math.floor(c / 16).toString(16) + - (c % 16).toString(16); - }) + '"' : - '"' + value + '"'; - - case 'number': - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - return String(value); - - case 'object': - - if (!value) { - return 'null'; - } - - if (typeof value.toJSON === 'function') { - return stringify(value.toJSON()); - } - a = []; - if (typeof value.length === 'number' && - !(value.propertyIsEnumerable('length'))) { - - l = value.length; - for (i = 0; i < l; i += 1) { - a.push(stringify(value[i], whitelist) || 'null'); - } - - return '[' + a.join(',') + ']'; - } - if (whitelist) { - - l = whitelist.length; - for (i = 0; i < l; i += 1) { - k = whitelist[i]; - if (typeof k === 'string') { - v = stringify(value[k], whitelist); - if (v) { - a.push(stringify(k) + ':' + v); - } - } - } - } else { - - for (k in value) { - if (typeof k === 'string') { - v = stringify(value[k], whitelist); - if (v) { - a.push(stringify(k) + ':' + v); - } - } - } - } - - return '{' + a.join(',') + '}'; - } - return ""; - } - - return { - stringify: stringify, - parse: function (text, filter) { - var j; - - function walk(k, v) { - var i, n; - if (v && typeof v === 'object') { - for (i in v) { - if (Object.prototype.hasOwnProperty.apply(v, [i])) { - n = walk(i, v[i]); - if (n !== undefined) { - v[i] = n; - } else { - delete v[i]; - } - } - } - } - return filter(k, v); - } - - - if (/^[\],:{}\s]*$/.test(text.replace(/\\./g, '@'). - replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'). - replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - - j = eval('(' + text + ')'); - - return typeof filter === 'function' ? walk('', j) : j; - } - - throw new SyntaxError('parseJSON'); - } - }; - }(); - - - // **************************************** - // * - // * End JSON Code Object Handler - // * - // **************************************** - - // **************************************** - // * - // * Create public utility mergeObj method - // * Return a new object where items from obj2 - // * have replaced or been added to the items in - // * obj1 - // * Purpose: Used to combine objs - // * - // **************************************** - TAFFY.mergeObj = function (ob1,ob2) { - var c = {}; - for(var n in ob1) - { - if (ob1.hasOwnProperty(n)) { - c[n] = ob1[n]; - } - } - for(var n in ob2) - { - if (ob2.hasOwnProperty(n)) { - c[n] = ob2[n]; - } - } - return c; - }; - - // **************************************** - // * - // * Create public utility getObjectKeys method - // * Returns an array of an objects keys - // * Purpose: Used to get the keys for an object - // * - // **************************************** - TAFFY.getObjectKeys = function (ob) { - var kA = []; - for(var n in ob) - { - if (ob.hasOwnProperty(n)) - { - kA[kA.length] = n; - } - } - kA.sort(); - return kA; - }; - - // **************************************** - // * - // * Create public utility isSameArray - // * Returns an array of an objects keys - // * Purpose: Used to get the keys for an object - // * - // **************************************** - TAFFY.isSameArray = function (ar1,ar2) { - return (TAFFY.isArray(ar1) && TAFFY.isArray(ar2) && ar1.join(",") == ar2.join(",")) ? true : false; - }; - - // **************************************** - // * - // * Create public utility isSameObject method - // * Returns true if objects contain the same - // * material or false if they do not - // * Purpose: Used to comare objects - // * - // **************************************** - TAFFY.isSameObject = function (ob1,ob2) { - var T = TAFFY; - if (T.isObject(ob1) && T.isObject(ob2)) { - if (T.isSameArray(T.getObjectKeys(ob1),T.getObjectKeys(ob2))) { - for(var n in ob1) - { - if (ob1.hasOwnProperty(n)) - { - if ((T.isObject(ob1[n]) && T.isObject(ob2[n]) && T.isSameObject(ob1[n],ob2[n])) - || (T.isArray(ob1[n]) && T.isArray(ob2[n]) && T.isSameArray(ob1[n],ob2[n])) - || (ob1[n] == ob2[n])) { - } else { - return false; - } - } - } - } else { - return false; - } - } else { - return false; - } - return true; - }; - - // **************************************** - // * - // * Create public utility has method - // * Returns true if a complex object, array - // * or taffy collection contains the material - // * provided in the second argument - // * Purpose: Used to comare objects - // * - // **************************************** - TAFFY.has = function(var1, var2){ - var T = TAFFY; - var re = true; - if (T.isTAFFY(var1)) { - re = var1.find(var2); - if (re.length > 0) - { - return true; - } else { - return false; - } - } - else { - switch (T.typeOf(var1)) { - case "object": - if (T.isObject(var2)) { - for (var x in var2) { - if (re === true&& var2.hasOwnProperty(x) && !T.isUndefined(var1[x]) && var1.hasOwnProperty(x)) { - re = T.has(var1[x], var2[x]); - } else { - return false; - } - } - return re; - } - else - if (T.isArray(var2)) { - for (var x = 0; x < var2.length; x++) { - re = T.has(var1, var2[x]); - if (re === true) { - return true; - } - } - } - else - if (T.isString(var2) && !TAFFY.isUndefined(var1[var2])) { - return true; - } - break; - case "array": - if (T.isObject(var2)) { - for (var n = 0; n < var1.length; n++) { - re = T.has(var1[n], var2); - if (re == true) { - return true; - } - } - } - else - if (T.isArray(var2)) { - for (var x = 0; x < var2.length; x++) { - for (var n = 0; n < var1.length; n++) { - re = T.has(var1[n], var2[x]); - if (re == true) { - return true; - } - } } - } - else - if (T.isString(var2)) { - for (var n = 0; n < var1.length; n++) { - re = T.has(var1[n], var2); - if (re == true) { - return true; - } - } - } - break; - case "string": - if (T.isString(var2) && var2 == var1) { - return true; - } - break; - default: - if (T.typeOf(var1) == T.typeOf(var2) && var1 == var2) { - return true; - } - break; - } - } - return false; - }; - - // **************************************** - // * - // * Create public utility hasAll method - // * Returns true if a complex object, array - // * or taffy collection contains the material - // * provided in the call - for arrays it must - // * contain all the material in each array item - // * Purpose: Used to comare objects - // * - // **************************************** - - TAFFY.hasAll = function (var1,var2) { - var T = TAFFY; - if (T.isArray(var2)) { - var ar = true; - for(var i = 0, il = var2.length;i/g, - interpolate : /<%=([\s\S]+?)%>/g -}; - -// JavaScript micro-templating, similar to John Resig's implementation. -// Underscore templating handles arbitrary delimiters, preserves whitespace, -// and correctly escapes quotes within interpolated code. -exports.render = function(templateStr, data) { - var settings = exports.settings, - compiledTemplate, - renderFunction; - - compiledTemplate = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' + - 'with(data||{}){__p.push(\'' + - templateStr.replace(/\\/g, '\\\\') - .replace(/'/g, "\\'") - .replace(settings.interpolate, function(match, code) { - return "'," + code.replace(/\\'/g, "'") + ",'"; - }) - .replace(settings.evaluate || null, function(match, code) { - return "');" + code.replace(/\\'/g, "'") - .replace(/[\r\n\t]/g, ' ') + "__p.push('"; - }) - .replace(/\r/g, '\\r') - .replace(/\n/g, '\\n') - .replace(/\t/g, '\\t') - + "');}return __p.join('');"; - - renderFunction = new Function('data', compiledTemplate); - return data ? renderFunction(data) : renderFunction; -}; \ No newline at end of file diff --git a/package.json b/package.json deleted file mode 100644 index 344152b77..000000000 --- a/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "jsdoc", - "version": "3.0.0beta1", - "revision": "2011-04-13-0000", - "description": "An automatic documentation generator for javascript.", - "keywords": [ "documentation", "javascript" ], - "licenses": [ - { - "type": "Apache 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0" - } - ], - "repositories": [ - { - "type": "git", - "url": "git://github.com/micmath/jsdoc.git" - }, - { - "type": "svn", - "url": "https://jsdoc.googlecode.com/svn/trunk" - } - ], - "bugs": "http://code.google.com/p/jsdoc/issues/list", - "contributors" : [ - { - "name": "Michael Mathews", - "email": "micmath@gmail.com" - } - ], - "maintainers": [ - { - "name": "Michael Mathews", - "email": "micmath@gmail.com" - } - ] -} diff --git a/plugins/markdown.js b/plugins/markdown.js deleted file mode 100644 index efacb173a..000000000 --- a/plugins/markdown.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - @overview Translate doclet descriptions from MarkDown into HTML. - */ - -(function() { - - var markdown = require('evilstreak/markdown'); - - app.jsdoc.parser.on('newDoclet', function(e) { - if (e.doclet.description) { - e.doclet.description = markdown.toHTML(e.doclet.description) - .replace( /&/g, "&" ) // because markdown escapes these - .replace( /</g, "<" ) - .replace( />/g, ">" ); - } - }); - -})(); \ No newline at end of file diff --git a/templates/default/publish.js b/templates/default/publish.js deleted file mode 100644 index 327a7233c..000000000 --- a/templates/default/publish.js +++ /dev/null @@ -1,290 +0,0 @@ -(function() { - - var template = require('underscore/template'), - fs = require('fs'); - - template.settings.evaluate = /<\?js([\s\S]+?)\?>/g; - template.settings.interpolate = /<\?js=([\s\S]+?)\?>/g; - - /** - @global - @param {TAFFY} data See . - @param {object} opts - */ - publish = function(data, opts) { - var out = '', - containerTemplate = template.render(fs.read(BASEDIR + 'templates/default/tmpl/container.tmpl')); - - function render(tmpl, partialData) { - var renderFunction = arguments.callee.cache[tmpl]; - if (!renderFunction) { - renderFunction = arguments.callee.cache[tmpl] = template.render(fs.read(BASEDIR + 'templates/default/tmpl/'+tmpl)); - } - partialData.render = arguments.callee; - partialData.find = find; - partialData.linkto = linkto; - partialData.htmlsafe = htmlsafe; - - return renderFunction.call(partialData, partialData); - } - render.cache = {}; - - function find(spec) { - return data.get( data.find(spec) ); - } - - function htmlsafe(str) { - return str.replace(/'+htmlsafe(returnTypes.length? ' ⇒ '+returnTypes.join('|') : '')+''; - } - - function addSignatureType(f) { - var types = []; - - if (f.type && f.type.names) { - types = f.type.names; - } - - f.signature = (f.signature || '') + ''+htmlsafe(types.length? ' :'+types.join('|') : '')+''; - } - - function addAttribs(f) { - var attribs = []; - - if (f.access && f.access !== 'public') { - attribs.push(f.access); - } - - if (f.scope && f.scope !== 'instance') { - if (f.kind == 'function' || f.kind == 'property') attribs.push(f.scope); - } - - if (f.readonly === true) { - if (f.kind == 'property') attribs.push('readonly'); - } - - f.attribs = ''+htmlsafe(attribs.length? '<'+attribs.join(', ')+'> ' : '')+''; - } - - data.remove({undocumented: true}); - - var packageInfo = (data.get( data.find({kind: 'package'}) ) || []) [0]; - - function renderLinks(text) { - text = text.replace(/\{@link (\S+)\}/g, function(match, longname) { - var link = linkto(longname); - return link; - }); - - return text; - } - - data.forEach(function(doclet) { - doclet.signature = ''; - doclet.attribs = ''; - - if (doclet.kind === 'function' || doclet.kind === 'class') { - addSignatureParams(doclet); - addSignatureReturns(doclet); - addAttribs(doclet); - } - - if (doclet.kind === 'property') { - addSignatureType(doclet); - addAttribs(doclet) - } - - if (doclet.examples) { - doclet.examples = doclet.examples.map(function(example) { - var caption, code; - - if (example.match(/^\s*([\s\S]+?)<\/caption>(\s*[\n\r])([\s\S]+)$/i)) { - caption = RegExp.$1; - code = RegExp.$3; - } - - return { - caption: caption || '', - code: code || example - }; - }); - } - }); - - data.orderBy(['longname', 'version', 'since']); - - // kinds of containers - var globals = data.get( data.find({kind: ['property', 'function'], memberof: {isUndefined: true}}) ), - modules = data.get( data.find({kind: 'module'}) ), - namespaces = data.get( data.find({kind: 'namespace'}) ); - - var outdir = opts.destination; - if (packageInfo) { - outdir += '/' + packageInfo.name + '/' + packageInfo.version + '/'; - } - fs.mkPath(outdir); - - // copy static files to outdir - var fromDir = BASEDIR + 'templates/default/static', - staticFiles = fs.ls(fromDir, 3); - - staticFiles.forEach(function(fileName) { - var toDir = fs.toDir(fileName.replace(fromDir, outdir)); - fs.mkPath(toDir); - fs.copyFile(fileName, toDir); - }); - - function linkto(longname, linktext) { - var url = longnameToUrl[longname]; - return url? ''+(linktext || longname)+'' : (linktext || longname); - } - - var containers= ['class', 'module', 'namespace'], - urlToLongname = {}, - longnameToUrl = {}; - - data.forEach(function(doclet) { - if (containers.indexOf(doclet.kind) < 0) { - var longname = doclet.longname, - urlSafe = ('global' || doclet.memberof).replace(/[^$a-z0-9._-]/gi, '_'), // TODO handle name collisions - url = urlSafe + '.html#'+doclet.name; - } - else { - var longname = doclet.longname, - urlSafe = longname.replace(/[^$a-z0-9._-]/gi, '_'), // TODO handle name collisions - url = urlSafe + '.html'; - } - - // bidirectional lookups: url <=> longname - urlToLongname[urlSafe] = longname; - longnameToUrl[longname] = url; - }); - - // do this after the urls have all been generated - data.forEach(function(doclet) { - if (doclet.classdesc) doclet.classdesc = renderLinks(doclet.classdesc); - if (doclet.description) doclet.description = renderLinks(doclet.description); - - doclet.ancestors = generateAncestry(doclet); - }); - - var nav = '', - seen = {}; - - var moduleNames = data.get( data.find({kind: 'module'}) ); - if (moduleNames.length) { - nav = nav + '

    Modules

      '; - moduleNames.forEach(function(m) { - if ( !seen.hasOwnProperty(m.longname) ) nav += '
    • '+linkto(m.longname, m.name)+'
    • '; - seen[m.longname] = true; - }); - - nav = nav + '
    '; - } - var namespaceNames = data.get( data.find({kind: 'namespace'}) ); - if (namespaceNames.length) { - nav = nav + '

    Namespaces

      '; - namespaceNames.forEach(function(n) { - if ( !seen.hasOwnProperty(n.longname) ) nav += '
    • '+linkto(n.longname, n.name)+'
    • '; - seen[n.longname] = true; - }); - - nav = nav + '
    '; - } - var classNames = data.get( data.find({kind: 'class'}) ); - if (classNames.length) { - nav = nav + '

    Classes

      '; - classNames.forEach(function(c) { - if ( !seen.hasOwnProperty(c.longname) ) nav += '
    • '+linkto(c.longname, c.name)+'
    • '; - seen[c.longname] = true; - }); - - nav = nav + '
    '; - } - - var globalNames = data.get( data.find({kind: ['property', 'function'], 'memberof': {'isUndefined': true}}) ); - - if (globalNames.length) { - nav = nav + '

    Global

      '; - globalNames.forEach(function(g) { - if ( !seen.hasOwnProperty(g.longname) ) nav += '
    • '+linkto(g.longname, g.name)+'
    • '; - seen[g.longname] = true; - }); - - nav = nav + '
    '; - } - - for (var longname in longnameToUrl) { - var classes = data.get( data.find({kind: 'class', longname: longname}) ); - if (classes.length) generate('Class: '+classes[0].name, classes, longnameToUrl[longname]); - - var modules = data.get( data.find({kind: 'module', longname: longname}) ); - if (modules.length) generate('Module: '+modules[0].name, modules, longnameToUrl[longname]); - - var namespaces = data.get( data.find({kind: 'namespace', longname: longname}) ); - if (namespaces.length) generate('Namespace: '+namespaces[0].name, namespaces, longnameToUrl[longname]); - } - - if (globals.length) generate('Global', [{kind: 'globalobj'}], 'global.html'); - - - function generate(title, docs, filename) { - var data = { - title: title, - docs: docs, - nav: nav, - - // helpers - render: render, - find: find, - linkto: linkto, - htmlsafe: htmlsafe - }; - - var path = outdir + '/' + filename, - html = containerTemplate.call(data, data); - - fs.write(path, html) - } - } - -})(); \ No newline at end of file diff --git a/templates/default/static/styles/jsdoc-default.css b/templates/default/static/styles/jsdoc-default.css deleted file mode 100644 index 23a79857c..000000000 --- a/templates/default/static/styles/jsdoc-default.css +++ /dev/null @@ -1,231 +0,0 @@ -body -{ - font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Verdana, Tahoma, sans-serif; - font-size: 13px; - color: #000; -} - -a { - color: #444; -} - -a:visited { - color: #444; -} - -a:active { - color: #444; -} - -header -{ - display: block; - /*border-bottom: 1px solid #ddd;*/ - padding: 6px 4px; -} - -.class-description { - font-style: italic; - font-family: Palatino, 'Palatino Linotype', serif; - font-size: 18px; -} - -#main { - float: left; - width: 100%; -} - -section -{ - display: block; - - background-color: #fff; - padding: 12px 24px; - border-bottom: 1px solid #ccc; - margin-right: 240px; -} - -sup { - color: #aaa; -} - -nav -{ - display: block; - - - float: left; - margin-left: -230px; - margin-top: 28px; - width: 220px; - border-left: 1px solid #ccc; - padding-left: 9px; -} - -nav ul { - font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif; - font-size: 13px; - line-height: 17px; - padding:0; - margin:0; - list-style-type:none; -} - -nav h3 { - margin-top: 12px; -} - -nav li { - margin-top: 6px; -} - -nav a { - color: #5C5954; -} - -nav a:visited { - color: #5C5954; -} - -nav a:active { - color: #5C5954; -} - -footer { - display: block; - padding: 6px; - margin-top: 12px; - font-style: italic; - font-size: 11px; -} - -h1 -{ - font-size: 32px; - font-weight: bold; - letter-spacing: -0.03em; - margin: 6px 0 9px 0; -} - -h2 -{ - font-size: 22px; - font-weight: bold; - letter-spacing: -0.03em; - margin: 6px 0 3px 0; -} - -h3 -{ - font-size: 20px; - font-weight: bold; - letter-spacing: -0.03em; - margin-top: 16px; - margin: 6px 0 3px 0; -} - -h4 -{ - font-size: 18px; - font-weight: bold; - letter-spacing: -0.03em; - margin-top: 16px; - margin: 18px 0 3px 0; - color: #A35A00; -} - -h5 -{ - font-size: 16px; - font-weight: bold; - letter-spacing: -0.03em; - margin: 8px 0 3px -16px; -} - -h6 -{ - font-size: 13px; - letter-spacing: -0.03em; - margin: 6px 0 3px 0; - font-style: italic; -} - -.important -{ - font-weight: bold; - color: #950B02; -} - -.yes-def { - text-indent: -1000px; -} - -.type-signature { - color: #aaa; -} - -.details dt { width:100px; float:left;} -.details dd { margin-left: 100px; } - -.description { margin-left: -16px; } - -.code-caption -{ - font-style: italic; - font-family: Palatino, 'Palatino Linotype', serif; - font-size: 14px; - margin: 0; -} - -.sh_sourceCode -{ - border: 1px solid #ddd; - width: 80%; -} - -.sh_sourceCode code -{ - font-family: Consolas, 'Lucida Console', Monaco, monospace; - font-size: 12px; - line-height: 18px; - display: block; - padding: 4px 12px; - margin: 0; - background-color: #fff; - color: #000; - border-left: 3px #ddd solid; -} - -.params -{ - border-spacing: 0; - border: 0; - border-collapse: collapse; -} - -.params .name { color: #1C02A3; } - -.params td, .params th -{ - border: 1px solid #ddd; - margin: 0px; - text-align: left; - vertical-align: top; - padding: 4px 6px; - display: table-cell; -} - -.params thead tr -{ - background-color: #ddd; - font-weight: bold; -} - -.params .params thead tr -{ - background-color: #fff; - font-weight: bold; -} - -.params th { border-right: 1px solid #aaa; } -.params thead .last { border-right: 1px solid #ddd; } \ No newline at end of file diff --git a/templates/default/static/styles/node-dark.css b/templates/default/static/styles/node-dark.css deleted file mode 100644 index 5849e2341..000000000 --- a/templates/default/static/styles/node-dark.css +++ /dev/null @@ -1,150 +0,0 @@ - .sh_sourceCode { - background-color: #ffffff; - color: #000000; - font-weight: normal; - font-style: normal; -} - - .sh_sourceCode .sh_keyword { - color: #000000; - font-weight: bold; - font-style: normal; -} - - .sh_sourceCode .sh_type { - color: #a52a2a; - font-weight: bold; - font-style: normal; -} - - .sh_sourceCode .sh_string { - color: #006400; - font-weight: normal; - font-style: normal; -} - - .sh_sourceCode .sh_regexp { - color: #006400; - font-weight: normal; - font-style: normal; -} - - .sh_sourceCode .sh_specialchar { - color: #2e8b57; - font-weight: normal; - font-style: normal; -} - - .sh_sourceCode .sh_comment { - color: #000000; - font-weight: normal; - font-style: italic; -} - - .sh_sourceCode .sh_number { - color: #006400; - font-weight: normal; - font-style: normal; -} - - .sh_sourceCode .sh_preproc { - color: #27408b; - font-weight: normal; - font-style: normal; -} - - .sh_sourceCode .sh_symbol { - color: #000000; - font-weight: bold; - font-style: normal; -} - - .sh_sourceCode .sh_function { - color: #000000; - font-weight: normal; - font-style: normal; -} - - .sh_sourceCode .sh_cbracket { - color: #000000; - font-weight: bold; - font-style: normal; -} - - .sh_sourceCode .sh_url { - color: #006400; - font-weight: normal; - font-style: normal; -} - - .sh_sourceCode .sh_date { - color: #000000; - font-weight: bold; - font-style: normal; -} - - .sh_sourceCode .sh_time { - color: #000000; - font-weight: bold; - font-style: normal; -} - - .sh_sourceCode .sh_file { - color: #000000; - font-weight: bold; - font-style: normal; -} - - .sh_sourceCode .sh_ip { - color: #006400; - font-weight: normal; - font-style: normal; -} - - .sh_sourceCode .sh_name { - color: #006400; - font-weight: normal; - font-style: normal; -} - - .sh_sourceCode .sh_variable { - color: #dda0dd; - font-weight: bold; - font-style: normal; -} - - .sh_sourceCode .sh_oldfile { - color: #2e8b57; - font-weight: normal; - font-style: normal; -} - - .sh_sourceCode .sh_newfile { - color: #006400; - font-weight: normal; - font-style: normal; -} - - .sh_sourceCode .sh_difflines { - color: #000000; - font-weight: bold; - font-style: normal; -} - - .sh_sourceCode .sh_selector { - color: #dda0dd; - font-weight: bold; - font-style: normal; -} - - .sh_sourceCode .sh_property { - color: #000000; - font-weight: bold; - font-style: normal; -} - - .sh_sourceCode .sh_value { - color: #006400; - font-weight: normal; - font-style: normal; -} diff --git a/templates/default/tmpl/container.tmpl b/templates/default/tmpl/container.tmpl deleted file mode 100644 index ebe5ab238..000000000 --- a/templates/default/tmpl/container.tmpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - - JSDoc: <?js= title ?> - - - - - - - - - - - -
    - -

    - - - -
    - -
    - '); - - if (doc.ancestors && doc.ancestors.length) { - print(''+doc.ancestors.join(' » ')+''); - print(' » '+doc.name); - } - else { - print(doc.name) - } - - if (doc.variation) { - print(''+doc.variation+''); - } - - print(''); - - if (doc.classdesc) { - print('

    '+doc.classdesc+'

    '); - } - ?> -
    - -
    - ' + doc.description + '

    '); - } - - print(render('details.tmpl', doc)); - - if (doc.examples && doc.examples.length) { - print('

    Example' + (doc.examples.length > 1? 's':'') + '

    '); - print( render('examples.tmpl', doc.examples) ); - } - } - ?> - - -

    Extends

    - -
      -
    • -
    - - - -

    Requires

    - -
      -
    • -
    - - - - -

    Classes

    - -
    -
    -
    -
    - - - - - -

    Namespaces

    - -
    -
    -
    -
    - - - - - -

    Properties

    - -
    - - - - - -

    Methods

    - -
    - - - - - -

    Events

    - -
    - -
    - -
    - -
    - -
    -
    - Documentation generated by JSDoc 3 on -
    - - - - \ No newline at end of file diff --git a/templates/default/tmpl/details.tmpl b/templates/default/tmpl/details.tmpl deleted file mode 100644 index 17d15e303..000000000 --- a/templates/default/tmpl/details.tmpl +++ /dev/null @@ -1,55 +0,0 @@ -
    - -
    Version:
    -
    - - - -
    Since:
    -
    - - - -
    Deprecated
    Yes
    '); - else print(':
    '+this.deprecated+'
    '); - ?> - - - - -
    Author:
    -
    - - - -
    Copyright:
    -
    - - - -
    License:
    -
    - - - -
    Default Value:
    -
    - - - -
    Source:
    -
    , line
    - - - -
    See:
    -
    -
      '+linkto(s)+''); - }); - ?>
    -
    - -
    diff --git a/templates/default/tmpl/example.tmpl b/templates/default/tmpl/example.tmpl deleted file mode 100644 index 47a10889a..000000000 --- a/templates/default/tmpl/example.tmpl +++ /dev/null @@ -1,2 +0,0 @@ - -
    diff --git a/templates/default/tmpl/examples.tmpl b/templates/default/tmpl/examples.tmpl deleted file mode 100644 index fdf78762e..000000000 --- a/templates/default/tmpl/examples.tmpl +++ /dev/null @@ -1,10 +0,0 @@ - -

    - -
    - \ No newline at end of file diff --git a/templates/default/tmpl/exceptions.tmpl b/templates/default/tmpl/exceptions.tmpl deleted file mode 100644 index e44498672..000000000 --- a/templates/default/tmpl/exceptions.tmpl +++ /dev/null @@ -1,28 +0,0 @@ -
  • - -
    - -
    - - - -
    -
    - Type -
    -
    - - - -
    -
    - -
  • \ No newline at end of file diff --git a/templates/default/tmpl/fires.tmpl b/templates/default/tmpl/fires.tmpl deleted file mode 100644 index 1eef451f6..000000000 --- a/templates/default/tmpl/fires.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -
  • - -
  • \ No newline at end of file diff --git a/templates/default/tmpl/method.tmpl b/templates/default/tmpl/method.tmpl deleted file mode 100644 index 4f6cf04e0..000000000 --- a/templates/default/tmpl/method.tmpl +++ /dev/null @@ -1,73 +0,0 @@ - -
    -

    - - -

    - -
    -
    - - -

    - -

    - - - - - This:'); - print( '
    • '+linkto(this['this'], this['this'])+'
    ' ); - } - ?> - - Parameters:'); - print( render('params.tmpl', params) ); - } - ?> - - -
    Fires:
    -
    - - - -
    Throws:
    -
    - - - Returns:'); - print('

    '+rdesc.join('

    ')+'

    '); - } - } - ?> - - Example' + (examples.length > 1? 's':'') + ''); - print( render('examples.tmpl', examples) ); - } - ?> - -
    diff --git a/templates/default/tmpl/params.tmpl b/templates/default/tmpl/params.tmpl deleted file mode 100644 index 41e84ab50..000000000 --- a/templates/default/tmpl/params.tmpl +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeArgumentDefaultDescription
    - - -
    ' ); - } - - if (param.nullable) { - print( '<nullable>
    ' ); - } - ?> -
    - - Properties' + render('params.tmpl', param.subparams) ); - }?>
    \ No newline at end of file diff --git a/templates/default/tmpl/properties.tmpl b/templates/default/tmpl/properties.tmpl deleted file mode 100644 index 91687252c..000000000 --- a/templates/default/tmpl/properties.tmpl +++ /dev/null @@ -1,24 +0,0 @@ - -
    -

    - - -

    - -
    -
    - -

    - -

    - - - - - Example' + (examples.length > 1? 's':'') + ''); - print( render('examples.tmpl', examples) ); - } - ?> -
    diff --git a/templates/default/tmpl/returns.tmpl b/templates/default/tmpl/returns.tmpl deleted file mode 100644 index 464d67f05..000000000 --- a/templates/default/tmpl/returns.tmpl +++ /dev/null @@ -1,31 +0,0 @@ -
  • - -
    - -
    - - - - -
    -
    - Type -
    -
    - - - -
    -
    - -
  • \ No newline at end of file diff --git a/templates/haruki/publish.js b/templates/haruki/publish.js deleted file mode 100644 index 782f3de65..000000000 --- a/templates/haruki/publish.js +++ /dev/null @@ -1,189 +0,0 @@ -/** - @overview Builds a tree-like JSON string from the doclet data. - @version 0.0.1 - */ - -(function() { - - /** - @global - @param {TAFFY} data - @param {object} opts - */ - publish = function(data, opts) { - - var root = {}, - docs; - - data.remove({undocumented: true}); - docs = data.get(); // <-- an array of Doclet objects - - graft(root, docs); - - - - if (opts.destination === 'console') { - if (opts.query && opts.query.format === 'xml') { - var xml = require('goessner/json2xml'); - print( '\n' + xml.convert(root) + '\n' ); - } - else { - dump(root); - } - } - else { - print('The only -d destination option currently supported is "console"!'); - } - - } - - function graft(parentNode, childNodes, parentLongname, parentName) { - childNodes - .filter(function (element) { - return (element.memberof === parentLongname); - }) - .forEach(function (element, i) { - //print((i+1)+': '+element.kind+' '+element.longname+' ('+element.name+')'); - - if (element.kind === 'namespace') { - if (! parentNode.namespaces) { - parentNode.namespaces = { }; - } - - var thisNamespace = parentNode.namespaces[element.name] = { - 'name': element.name, - 'description': element.description || '', - 'access': element.access || '' - }; - - graft(thisNamespace, childNodes, element.longname, element.name); - } - else if (element.kind === 'mixin') { - if (! parentNode.mixins) { - parentNode.mixins = { }; - } - - var thisMixin = parentNode.mixins[element.name] = { - 'name': element.name, - 'description': element.description || '', - 'access': element.access || '' - }; - - graft(thisMixin, childNodes, element.longname, element.name); - } - else if (element.kind === 'function') { - if (! parentNode.functions) { - parentNode.functions = { }; - } - - var thisFunction = parentNode.functions[element.name] = { - 'name': element.name, - 'access': element.access || '', - 'description': element.description || '', - 'parameters': [ ] - }; - - if (element.returns) { - parentNode.functions[element.name].returns = { - 'type': element.returns.type? (element.returns.type.names.length === 1? element.returns.type.names[0] : element.returns.type.names) : '', - 'description': element.returns.description || '' - }; - } - - if (element.params) { - for (var i = 0, len = element.params.length; i < len; i++) { - thisFunction.parameters.push({ - 'name': element.params[i].name, - 'type': element.params[i].type? (element.params[i].type.names.length === 1? element.params[i].type.names[0] : element.params[i].type.names) : '', - 'description': element.params[i].description || '', - 'default': element.params[i].defaultvalue || '', - 'optional': typeof element.params[i].optional === 'boolean'? element.params[i].optional : '', - 'nullable': typeof element.params[i].nullable === 'boolean'? element.params[i].nullable : '' - }); - } - } - } - else if (element.kind === 'property') { - if (! parentNode.properties) { - parentNode.properties = { }; - } - parentNode.properties[element.name] = { - 'name': element.name, - 'access': element.access || '', - 'description': element.description || '', - 'type': element.type? (element.type.length === 1? element.type[0] : element.type) : '' - }; - } - - else if (element.kind === 'event') { - if (! parentNode.events) { - parentNode.events = { }; - } - - var thisEvent = parentNode.events[element.name] = { - 'name': element.name, - 'access': element.access || '', - 'description': element.description || '', - 'parameters': [ - ] - }; - - if (element.returns) { - parentNode.events[element.name].returns = { - 'type': element.returns.type? (element.returns.type.names.length === 1? element.returns.type.names[0] : element.returns.type.names) : '', - 'description': element.returns.description || '' - }; - } - - if (element.params) { - for (var i = 0, len = element.params.length; i < len; i++) { - thisEvent.parameters.push({ - 'name': element.params[i].name, - 'type': element.params[i].type? (element.params[i].type.names.length === 1? element.params[i].type.names[0] : element.params[i].type.names) : '', - 'description': element.params[i].description || '', - 'default': element.params[i].defaultvalue || '', - 'optional': typeof element.params[i].optional === 'boolean'? element.params[i].optional : '', - 'nullable': typeof element.params[i].nullable === 'boolean'? element.params[i].nullable : '' - }); - } - } - } - else if (element.kind === 'class') { - if (! parentNode.classes) { - parentNode.classes = { }; - } - - var thisClass = parentNode.classes[element.name] = { - 'name': element.name, - 'description': element.classdesc || '', - 'extends': element.augments || [], - 'access': element.access || '', - 'fires': element.fires || '', - 'constructor': { - 'name': element.name, - 'description': element.description || '', - 'parameters': [ - ] - } - }; - - if (element.params) { - for (var i = 0, len = element.params.length; i < len; i++) { - thisClass.constructor.parameters.push({ - 'name': element.params[i].name, - 'type': element.params[i].type? (element.params[i].type.names.length === 1? element.params[i].type.names[0] : element.params[i].type.names) : '', - 'description': element.params[i].description || '', - 'default': element.params[i].defaultvalue || '', - 'optional': typeof element.params[i].optional === 'boolean'? element.params[i].optional : '', - 'nullable': typeof element.params[i].nullable === 'boolean'? element.params[i].nullable : '' - }); - } - } - - graft(thisClass, childNodes, element.longname, element.name); - } - }); - } - -})(); - diff --git a/test/cases/accesstag.js b/test/cases/accesstag.js deleted file mode 100644 index 497c20dd1..000000000 --- a/test/cases/accesstag.js +++ /dev/null @@ -1,29 +0,0 @@ -/** @constructor */ -function Thingy() { - - /** @access private */ - var foo = 0; - - /** @access protected */ - this._bar = 1; - - /** @access public */ - this.pez = 2; - -} - -// same as... - -/** @constructor */ -function OtherThingy() { - - /** @private */ - var foo = 0; - - /** @protected */ - this._bar = 1; - - /** @public */ - this.pez = 2; - -} \ No newline at end of file diff --git a/test/cases/alias.js b/test/cases/alias.js deleted file mode 100644 index bbb7305cb..000000000 --- a/test/cases/alias.js +++ /dev/null @@ -1,13 +0,0 @@ -var myObject = (function() { - - /** Give x another name. - @alias myObject - @namespace - */ - var x = { - /** document me */ - myProperty: 'foo' - } - - return x; -})(); \ No newline at end of file diff --git a/test/cases/alias2.js b/test/cases/alias2.js deleted file mode 100644 index e1d8e5a52..000000000 --- a/test/cases/alias2.js +++ /dev/null @@ -1,10 +0,0 @@ -(function() { - - /** @alias ns.Myclass# */ - var x = { - /** document me */ - myProperty: 'foo' - } - - return x; -})(); \ No newline at end of file diff --git a/test/cases/alias3.js b/test/cases/alias3.js deleted file mode 100644 index 3cea9abab..000000000 --- a/test/cases/alias3.js +++ /dev/null @@ -1,12 +0,0 @@ -Klass('trackr.CookieManager', - - /** @class - @alias trackr.CookieManager - @param {object} kv - */ - function(kv) { - /** document me */ - this.value = kv; - } - -); \ No newline at end of file diff --git a/test/cases/also.js b/test/cases/also.js deleted file mode 100644 index 602bc041a..000000000 --- a/test/cases/also.js +++ /dev/null @@ -1,20 +0,0 @@ -/** @class */ -function Asset() { - this._name = ''; -} - -/** - * - * Set the value of the name property. - * @param {string} newName - * - *//** - * - * Get the value of the name property. - * @returns {string} - * - */ -Asset.prototype.name = function(newName) { - if (newName) { this._name = newName; } - else { return this._name; } -} \ No newline at end of file diff --git a/test/cases/augmentstag.js b/test/cases/augmentstag.js deleted file mode 100644 index 7c2bd4c59..000000000 --- a/test/cases/augmentstag.js +++ /dev/null @@ -1,14 +0,0 @@ -/** -* @constructor -*/ -function Foo() { -} - - -/** -* @extends Foo -*/ -function Bar() { -} - - diff --git a/test/cases/authortag.js b/test/cases/authortag.js deleted file mode 100644 index 155bb5703..000000000 --- a/test/cases/authortag.js +++ /dev/null @@ -1,6 +0,0 @@ -/** @constructor - @author Michael Mathews -*/ -function Thingy() { - -} \ No newline at end of file diff --git a/test/cases/borrowstag.js b/test/cases/borrowstag.js deleted file mode 100644 index b6d065ddc..000000000 --- a/test/cases/borrowstag.js +++ /dev/null @@ -1,14 +0,0 @@ -/** @namespace - @borrows trstr as trim -*/ -var util = { - "trim": trstr -}; - -/** - Remove whitespace from around a string. - @param {string} str - */ -function trstr(str) { -} - diff --git a/test/cases/borrowstag2.js b/test/cases/borrowstag2.js deleted file mode 100644 index 9e80dd0d5..000000000 --- a/test/cases/borrowstag2.js +++ /dev/null @@ -1,21 +0,0 @@ -/** @namespace - @borrows rtrim -*/ -var str = { - rtrim: util.rtrim -}; - -/** @namespace - @borrows rtrim -*/ -var util = { - rtrim: rtrim -}; - -/** - Remove whitespace from the right side of a string. - @param {string} str - */ -function rtrim(str) { -} - diff --git a/test/cases/classtag.js b/test/cases/classtag.js deleted file mode 100644 index ea4584b11..000000000 --- a/test/cases/classtag.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - Describe the Ticker class here. - @class - */ -var Ticker = function() { - -}; - -/** - Describe the NewsSource class here. - @class NewsSource - */ \ No newline at end of file diff --git a/test/cases/constructortag.js b/test/cases/constructortag.js deleted file mode 100644 index 275ef3c62..000000000 --- a/test/cases/constructortag.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - Describe your constructor function here. - @class Describe your class here. - @constructor - @param {string} url - @throws MalformedURL - */ -function Feed(url) { -} - -/** - Document your method here. -*/ -Feed.prototype.refresh = function() { -} diff --git a/test/cases/constructstag.js b/test/cases/constructstag.js deleted file mode 100644 index a31a1cd02..000000000 --- a/test/cases/constructstag.js +++ /dev/null @@ -1,19 +0,0 @@ -Classify('TextBlock', { - - /** - Document your constructor function here. - @constructs TextBlock - @classdesc Describe your class here - @param {object} opts - @throws MissingNode - */ - construct: function(node, opts) { - }, - - /** - Document your method here. - @memberof TextBlock# - */ - align: function() { - } -}); \ No newline at end of file diff --git a/test/cases/constructstag2.js b/test/cases/constructstag2.js deleted file mode 100644 index 604d4bade..000000000 --- a/test/cases/constructstag2.js +++ /dev/null @@ -1,16 +0,0 @@ -Classify('Menu', - /** - @constructs Menu - @param items - */ - function (items) { - - }, - { - /** - @memberof Menu# - */ - show: function(){ - } - } -); diff --git a/test/cases/constructstag3.js b/test/cases/constructstag3.js deleted file mode 100644 index 3b4e410fd..000000000 --- a/test/cases/constructstag3.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - A class that represents a person. - @class - */ -var Person = Class.create({ - - /** - @constructs Person - @param {string} name - */ - initialize: function(name) { - - /** The name of the person. */ - this.name = name; - }, - - /** - @memberof Person# - @param {string} message - */ - say: function(message) { - - /** The person's message. */ - this.message = message; - } -}); diff --git a/test/cases/copyrighttag.js b/test/cases/copyrighttag.js deleted file mode 100644 index 68a09f34e..000000000 --- a/test/cases/copyrighttag.js +++ /dev/null @@ -1,6 +0,0 @@ -/** @constructor - @copyright (c) 2011 Michael Mathews -*/ -function Thingy() { - -} \ No newline at end of file diff --git a/test/cases/defaulttag.js b/test/cases/defaulttag.js deleted file mode 100644 index bd8461aa2..000000000 --- a/test/cases/defaulttag.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - @default - */ -var request = null; - -/** - @default - */ -var response = 'ok'; - -/** - @default - */ -var rcode = 200; - -/** - @default - */ -var rvalid = true; - -/** - @default - */ -var rerrored = false; - -/** - @default the parent window - */ -var win = getParentWindow(); - -/** - @default - */ -var header = getHeaders(request); \ No newline at end of file diff --git a/test/cases/deprecatedtag.js b/test/cases/deprecatedtag.js deleted file mode 100644 index 6b6269cba..000000000 --- a/test/cases/deprecatedtag.js +++ /dev/null @@ -1,11 +0,0 @@ -/** @deprecated -*/ -function foo() { - -} - -/** @deprecated since version 2.0 -*/ -function bar() { - -} \ No newline at end of file diff --git a/test/cases/exceptiontag.js b/test/cases/exceptiontag.js deleted file mode 100644 index 14d7d9a74..000000000 --- a/test/cases/exceptiontag.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - @throws {InvalidArgumentException} -*/ -function foo(x) { - -} - -/** - @exception Will throw an error if argument is null. -*/ -function bar(x) { - -} - -/** - @exception {DivideByZero} Argument x must be non-zero. -*/ -function pez(x) { - -} \ No newline at end of file diff --git a/test/cases/exports.js b/test/cases/exports.js deleted file mode 100644 index 9c1324781..000000000 --- a/test/cases/exports.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * An example of a server-side JavaScript module. - * @module hello/world - * @example - * var g = require('hello/world').sayHello('Gracie'); - */ - -/** - * Generate a greeting. - * @param {string} [subject="world"] To whom we greet. - * @returns {string} - */ -exports.sayHello = function(subject) { - return 'Hello ' + (subject || 'World'); -}; diff --git a/test/cases/exportstag.js b/test/cases/exportstag.js deleted file mode 100644 index 26f787eac..000000000 --- a/test/cases/exportstag.js +++ /dev/null @@ -1,20 +0,0 @@ -define(function () { - /** - A module representing a shirt. - @exports my/shirt - @version 1.0 - */ - var shirt = { - - /** A property of the module. */ - color: "black", - - /** @constructor */ - Turtleneck: function(size) { - /** A property of the class. */ - this.size = size; - } - }; - - return shirt; -}); \ No newline at end of file diff --git a/test/cases/exportstag2.js b/test/cases/exportstag2.js deleted file mode 100644 index 5e00268a3..000000000 --- a/test/cases/exportstag2.js +++ /dev/null @@ -1,18 +0,0 @@ -define( - ["my/buttons"], - function () { - /** - A module representing a coat. - @exports my/coat - @requires my/buttons - @version 1.0 - */ - var myModule = function(wool) { - /** document me */ - this.wool = wool; - } - - return myModule; - - } -); \ No newline at end of file diff --git a/test/cases/exportstag3.js b/test/cases/exportstag3.js deleted file mode 100644 index d48e94e29..000000000 --- a/test/cases/exportstag3.js +++ /dev/null @@ -1,22 +0,0 @@ -define( - /** - Utility functions to ease working with DOM elements. - @exports html/utils - */ - function () { - - var exports = { - /** Get the value of a property on an element. */ - getStyleProperty: function(element, propertyName) { - // ... - } - }; - - /** Determine if an element is in the document head. */ - exports.isInHead = function(element) { - // ... - } - - return exports; - } -); \ No newline at end of file diff --git a/test/cases/file.js b/test/cases/file.js deleted file mode 100644 index 15fb0fc92..000000000 --- a/test/cases/file.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @overview This is a file doclet. - */ - -function ignoreMe() { -} \ No newline at end of file diff --git a/test/cases/globaltag.js b/test/cases/globaltag.js deleted file mode 100644 index 44f1d186a..000000000 --- a/test/cases/globaltag.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - @global - @constructor - */ -window.Bar = new Function('', a, b, c); - -(function() { - - /** @global */ - var foo; - - foo = 'hello foo'; - - this.foo = foo; - -}).apply(window); \ No newline at end of file diff --git a/test/cases/ignoretag.js b/test/cases/ignoretag.js deleted file mode 100644 index 4e8c21215..000000000 --- a/test/cases/ignoretag.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - @ignore -*/ -function foo(x) { - -} diff --git a/test/cases/inner.js b/test/cases/inner.js deleted file mode 100644 index 4c07b97ab..000000000 --- a/test/cases/inner.js +++ /dev/null @@ -1,7 +0,0 @@ -function sendMessage(text) { - /** document me */ - var encoding = 'utf8'; - - /** document me */ - function encrypt(){} -} \ No newline at end of file diff --git a/test/cases/innerscope.js b/test/cases/innerscope.js deleted file mode 100644 index 5d2d5f5c4..000000000 --- a/test/cases/innerscope.js +++ /dev/null @@ -1,18 +0,0 @@ -/** @constructor */ -function Message(to) { - - var headers = {}, - response; - - /** document me */ - headers.to = to; - - (function() { - /** document me */ - response.code = '200'; - - /** document me */ - headers.from = ''; - })() -} - diff --git a/test/cases/innerscope2.js b/test/cases/innerscope2.js deleted file mode 100644 index 68f30cba6..000000000 --- a/test/cases/innerscope2.js +++ /dev/null @@ -1,19 +0,0 @@ -/** @constructor */ -function Message(to) { - - var headers = {}; - - /** document me */ - headers.to = to; - - (function() { - var headers = { - /** document me */ - cache: {} - }; - - /** document me */ - headers.from = ''; - })() -} - diff --git a/test/cases/jslangnames.js b/test/cases/jslangnames.js deleted file mode 100644 index 65f8404a9..000000000 --- a/test/cases/jslangnames.js +++ /dev/null @@ -1,24 +0,0 @@ - -/** @namespace */ -var constructor = { - /** document me */ - toString: function(){} -}; - -/** @namespace */ -var prototye = { - /** document me */ - valueOf: function(){} -} - -/** - This is Object - @namespace Object -*/ - -/** - This is Object.hasOwnProperty - @method Object.hasOwnProperty - */ - -// NOTE: you can't document a prototype of an object in JSDoc -- seriously, you just can't \ No newline at end of file diff --git a/test/cases/lends.js b/test/cases/lends.js deleted file mode 100644 index 6d86ae6df..000000000 --- a/test/cases/lends.js +++ /dev/null @@ -1,16 +0,0 @@ -/** @class */ -var Person = makeClass( - /** @lends Person# */ - { - /** Set up initial values. */ - initialize: function(name) { - /** The name of the person. */ - this.name = name; - }, - - /** Speak a message. */ - say: function(message) { - return this.name + " says: " + message; - } - } -); \ No newline at end of file diff --git a/test/cases/lends2.js b/test/cases/lends2.js deleted file mode 100644 index 57c4fa385..000000000 --- a/test/cases/lends2.js +++ /dev/null @@ -1,18 +0,0 @@ - -var Person = makeClass( - /** @lends Person# */ - { - /** Construct a Person. - @constructs Person - */ - initialize: function(name) { - /** The name of the person. */ - this.name = name; - }, - - /** Speak a message. */ - say: function(message) { - return this.name + " says: " + message; - } - } -); \ No newline at end of file diff --git a/test/cases/lendsglobal.js b/test/cases/lendsglobal.js deleted file mode 100644 index 13803be19..000000000 --- a/test/cases/lendsglobal.js +++ /dev/null @@ -1,14 +0,0 @@ -declare({ - globals: /** @lends */ { - - /** document me */ - 'test': function() { }, - - /** @namespace */ - 'test1': { - - /** document me */ - 'test2': function() { } - } - } -}); \ No newline at end of file diff --git a/test/cases/memberoftag.js b/test/cases/memberoftag.js deleted file mode 100644 index 2337c49f5..000000000 --- a/test/cases/memberoftag.js +++ /dev/null @@ -1,11 +0,0 @@ -/** @constructor - @member mathlib - */ -function Data() { - - /** @property */ - this.point = {}; -} - -/** @namespace */ -mathlib = {Data: Data}; \ No newline at end of file diff --git a/test/cases/memberoftag2.js b/test/cases/memberoftag2.js deleted file mode 100644 index b926dc6ae..000000000 --- a/test/cases/memberoftag2.js +++ /dev/null @@ -1,10 +0,0 @@ -create( - 'Observable', - { - /** @memberof Observable */ - cache: [], - - /** @memberof Observable.prototype */ - publish: function(msg) {} - } -); \ No newline at end of file diff --git a/test/cases/modules/data/mod-1.js b/test/cases/modules/data/mod-1.js deleted file mode 100644 index a5de108fe..000000000 --- a/test/cases/modules/data/mod-1.js +++ /dev/null @@ -1,5 +0,0 @@ -/** @module */ -define({ - property: "foo", - method: function() {} -}); \ No newline at end of file diff --git a/test/cases/modules/data/mod-2.js b/test/cases/modules/data/mod-2.js deleted file mode 100644 index 1027fd9d3..000000000 --- a/test/cases/modules/data/mod-2.js +++ /dev/null @@ -1,5 +0,0 @@ -/** @module my/module/name */ -define({ - property: "foo", - method: function() {} -}); \ No newline at end of file diff --git a/test/cases/modules/data/mod-3.js b/test/cases/modules/data/mod-3.js deleted file mode 100644 index 91a3251a0..000000000 --- a/test/cases/modules/data/mod-3.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - My test module. - @module my/module - */ -define(function() { - - /** - @undocumented - @alias module:my/module - */ - var mod = { - - /** Document a property. */ - myProperty: "foo", - - /** Document a method. */ - myMethod: function() {} - }; - - return mod; -}); \ No newline at end of file diff --git a/test/cases/moduletag.js b/test/cases/moduletag.js deleted file mode 100644 index fb4c4665c..000000000 --- a/test/cases/moduletag.js +++ /dev/null @@ -1,11 +0,0 @@ -/** - * @module bookshelf - */ - -/** - * @class - */ -this.Book = function(title) { - /** document me */ - this.title = title; -} \ No newline at end of file diff --git a/test/cases/moduletag2.js b/test/cases/moduletag2.js deleted file mode 100644 index 0dd0bc3ec..000000000 --- a/test/cases/moduletag2.js +++ /dev/null @@ -1,9 +0,0 @@ -/** @module color/mixer */ - -module.exports = { - /** Blend two colors together. */ - blend: function(color1, color2) { } -} - -/** Darken a color by the given shade. */ -exports.darken = function(color, shade) { } \ No newline at end of file diff --git a/test/cases/objectlit.js b/test/cases/objectlit.js deleted file mode 100644 index f976cfb44..000000000 --- a/test/cases/objectlit.js +++ /dev/null @@ -1,8 +0,0 @@ -/** document me */ -var tools = { - /** document me */ - serialiser: { - /** document me */ - value: '' - } -}; diff --git a/test/cases/objectlit2.js b/test/cases/objectlit2.js deleted file mode 100644 index 072d4eda5..000000000 --- a/test/cases/objectlit2.js +++ /dev/null @@ -1,8 +0,0 @@ -/** document me */ -var position = { - axis: { - /** document me */ - x: 0, - y: 0 - } -}; \ No newline at end of file diff --git a/test/cases/paramtag.js b/test/cases/paramtag.js deleted file mode 100644 index db431bfcc..000000000 --- a/test/cases/paramtag.js +++ /dev/null @@ -1,41 +0,0 @@ -/** -* @param { String | Array} targetName The name (or names) of what to find. -*/ -function find(targetName) { -} - -/** -* @param {function} callback -*/ -function bind(callback) { -} - -/** -* @param {function} -*/ -function unbind(callback) { -} - -/** -* @param id The id of the element. -*/ -function getElement(id) { -} - -/** -* @param ... Two or more elements. -*/ -function combine() { -} - -/** -* @param delimiter - What to split on. -*/ -function split(delimiter) { -} - -/** -* @param - If true make the commit atomic. -*/ -function commit(atomic) { -} diff --git a/test/cases/privatetag.js b/test/cases/privatetag.js deleted file mode 100644 index 71e0d9710..000000000 --- a/test/cases/privatetag.js +++ /dev/null @@ -1,11 +0,0 @@ -/** -* @constructor -* @private -*/ -function Foo() { - - /** document me */ - this.bar = 1; -} - - diff --git a/test/cases/projecttag.js b/test/cases/projecttag.js deleted file mode 100644 index b00c8e2c6..000000000 --- a/test/cases/projecttag.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - An automated documentation generator for JavaScript. - @project JSDoc - @version 3.0.0 - @copyright 2011 (c) Michael Mathews - @license Apache Version 2 - */ -function blah(url) { -} \ No newline at end of file diff --git a/test/cases/quotename.js b/test/cases/quotename.js deleted file mode 100644 index e484db5ed..000000000 --- a/test/cases/quotename.js +++ /dev/null @@ -1,19 +0,0 @@ -/** @namespace */ -var chat = {}; - -/** - @namespace - */ -chat["#channel"] = {}; - - -/** - @property - @type {boolean} - @defaultvalue - */ -chat["#channel"].open = true; - -/** - @event chat."#channel"."op:announce-motd" - */ \ No newline at end of file diff --git a/test/cases/quotename2.js b/test/cases/quotename2.js deleted file mode 100644 index b05c81367..000000000 --- a/test/cases/quotename2.js +++ /dev/null @@ -1,10 +0,0 @@ -/** @namespace */ -var contacts = { - - /** @namespace */ - 'say-"hello"@example.com': { - - /** document me */ - "username": 'Sue Smart' - } -} \ No newline at end of file diff --git a/test/cases/readonlytag.js b/test/cases/readonlytag.js deleted file mode 100644 index 30e826ce2..000000000 --- a/test/cases/readonlytag.js +++ /dev/null @@ -1,10 +0,0 @@ -/** -* @constructor -*/ -function Collection() { - - /** @readonly */ - this.length = 0; -} - - diff --git a/test/cases/requirestag.js b/test/cases/requirestag.js deleted file mode 100644 index 3fe272293..000000000 --- a/test/cases/requirestag.js +++ /dev/null @@ -1,12 +0,0 @@ -/** -* @requires module:foo/helper -*/ -function foo() { -} - -/** -* @requires foo -* @requires Pez#blat this text is ignored -*/ -function bar() { -} diff --git a/test/cases/returnstag.js b/test/cases/returnstag.js deleted file mode 100644 index d3cf4de4e..000000000 --- a/test/cases/returnstag.js +++ /dev/null @@ -1,11 +0,0 @@ -/** -* @returns { String | Array} The names of the found item(s). -*/ -function find(targetName) { -} - -/** -* @return The binding id. -*/ -function bind(callback) { -} diff --git a/test/cases/seetag.js b/test/cases/seetag.js deleted file mode 100644 index 9b9ad7235..000000000 --- a/test/cases/seetag.js +++ /dev/null @@ -1,11 +0,0 @@ -/** -* @see #search -*/ -function foo() { -} - -/** -* @see http://example.com/someref -*/ -function bar() { -} diff --git a/test/cases/sincetag.js b/test/cases/sincetag.js deleted file mode 100644 index 527b2a398..000000000 --- a/test/cases/sincetag.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - @since 1.2.3 -*/ -function foo(x) { - -} diff --git a/test/cases/src/_dir2/four.js b/test/cases/src/_dir2/four.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/cases/src/_ignored.js b/test/cases/src/_ignored.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/cases/src/dir1/three.js b/test/cases/src/dir1/three.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/cases/src/ignored.txt b/test/cases/src/ignored.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/cases/src/one.js b/test/cases/src/one.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/cases/src/two.js b/test/cases/src/two.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/cases/this-and-objectlit.js b/test/cases/this-and-objectlit.js deleted file mode 100644 index c8d5ca0fa..000000000 --- a/test/cases/this-and-objectlit.js +++ /dev/null @@ -1,12 +0,0 @@ -/** @constructor */ -function Page(title) { - this.parts = { - title: title, - body: { - /** document me */ - heading: '', - main: '' - } - } -} - diff --git a/test/cases/this.js b/test/cases/this.js deleted file mode 100644 index 7c167606d..000000000 --- a/test/cases/this.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - @constructor - */ -function Singer() { - - this.tralala = function() { // method of constructor Singer - /** document me */ - this.isSinging = true; // setting a member of constructor Singer - }; -} \ No newline at end of file diff --git a/test/cases/this2.js b/test/cases/this2.js deleted file mode 100644 index 88fd9fa61..000000000 --- a/test/cases/this2.js +++ /dev/null @@ -1,15 +0,0 @@ -/** @constructor */ -function TemplateBuilder(templateType) { - //** document me */ - //this.templateType = templateType; - - /** @constructor */ - this.Template = function() { // nested constructor of constructor TemplateFactory - /** document me */ - this.render = function(data) { - /** document me */ - this.rendered = true; - } - }; - -} \ No newline at end of file diff --git a/test/cases/this3.js b/test/cases/this3.js deleted file mode 100644 index 7e4e0a77e..000000000 --- a/test/cases/this3.js +++ /dev/null @@ -1,5 +0,0 @@ -function setPosition(newP) { - /** document me */ - this.position = newP; // sets global property -} - diff --git a/test/cases/thistag.js b/test/cases/thistag.js deleted file mode 100644 index 1ea79253f..000000000 --- a/test/cases/thistag.js +++ /dev/null @@ -1,10 +0,0 @@ -/** @constructor */ -function Foo(name) { - setName.apply(this, name); -} - -/** @this Foo */ -function setName(name) { - /** document me */ - this.name = name; -} \ No newline at end of file diff --git a/test/cases/typedeftag.js b/test/cases/typedeftag.js deleted file mode 100644 index 9d82cfdca..000000000 --- a/test/cases/typedeftag.js +++ /dev/null @@ -1,5 +0,0 @@ -/** @typedef {(string|number)} calc.NumberLike */ - -/** @param {calc.NumberLike} x A number or a string. */ -calc.readNumber = function(x) { -} \ No newline at end of file diff --git a/test/cases/typekind.js b/test/cases/typekind.js deleted file mode 100644 index cc4c54501..000000000 --- a/test/cases/typekind.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - @module {ConnectServer} blog/server -*/ - -module.exports = require('connect').createServer( - Connect.logger(), - Connect.conditionalGet(), - Connect.favicon(), - Connect.cache(), - Connect.gzip(), - require('wheat')(__dirname) -); - -/** - @property {number} module:blog/server.port - @default 8080 -*/ \ No newline at end of file diff --git a/test/cases/typetag.js b/test/cases/typetag.js deleted file mode 100644 index acaa7cac8..000000000 --- a/test/cases/typetag.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - @type {string|Array} -*/ -var foo; - - -/** - @type integer -*/ -var bar = +(new Date()).getTime(); \ No newline at end of file diff --git a/test/cases/var.js b/test/cases/var.js deleted file mode 100644 index 0daea9f53..000000000 --- a/test/cases/var.js +++ /dev/null @@ -1,10 +0,0 @@ -/** document me */ -const GREEN = 1, - RED = 0; - -/** document me */ -var validate = function(){}; - -var i, - /** document me */ - results; \ No newline at end of file diff --git a/test/cases/variations.js b/test/cases/variations.js deleted file mode 100644 index e292cae77..000000000 --- a/test/cases/variations.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @namespace anim - */ - -/** - * @method anim.fadein(1) - * @desc Show the nodelist elements by fading them to opaque. - * @since 1.0 - * - * @param {number} [duration=400] How long the animation will run. - * @param {function} [callback] Called once the animation is complete. - * - * @returns {this} - */ - -/** - * @method anim.fadein(2) - * @desc Show the nodelist elements by fading them to opaque. - * @since 1.4.3 - * - * @param {number} [duration=400] How long the animation will run. - * @param {string} [easing=swing] The easing function for the transition. - * @param {function} [callback] Called once the animation is complete. - * - * @returns {this} - */ \ No newline at end of file diff --git a/test/cases/versiontag.js b/test/cases/versiontag.js deleted file mode 100644 index a482075ad..000000000 --- a/test/cases/versiontag.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - @version 1.2.3 -*/ -function foo(x) { - -} diff --git a/test/cases/virtual.js b/test/cases/virtual.js deleted file mode 100644 index 4eb25c1d2..000000000 --- a/test/cases/virtual.js +++ /dev/null @@ -1,3 +0,0 @@ -/** @name dimensions */ - -var width = 12 \ No newline at end of file diff --git a/test/runner.js b/test/runner.js deleted file mode 100644 index 3bdd56d96..000000000 --- a/test/runner.js +++ /dev/null @@ -1,149 +0,0 @@ -var assert = require('common/assert'); - -var passCount = 0, - failCount = 0, - errorLog = [], - currentTestFile = ''; - -function test(description, f) { - try { - f(); - passCount++; - } - catch(e) { - errorLog.push(description + (currentTestFile? ' ['+currentTestFile+']':'') + '\n' + (e.message||'') + '\n - Expected: ' + e.expected + '\n - Actual: ' + e.actual); - failCount++; - } -} - -function testFile(filepath) { - currentTestFile = filepath; - include(filepath); - currentTestFile = ''; -} - -function report() { - print('\033[032mPASSED: ' + passCount + ' test' + (passCount == 1? '' : 's') + '.\033[0m'); - if (failCount) { - print('\033[031mFAILED: '+ failCount + ' test' + (passCount == 1? '' : 's') + '.\033[0m'); - for (var i = 0, leni = errorLog.length; i < leni; i++) { - print(' ' + (i+1) + '. ' + (i+1 < 10? ' ' : '') + (errorLog[i]||'') + '\n'); - } - } -} - -// helpers -var testhelpers = { - getDocSetFromFile: function(filename) { - var sourceCode = readFile(BASEDIR + filename), - testParser, - doclets; - - testParser = new (require('jsdoc/src/parser')).Parser(); - require('jsdoc/src/handlers').attachTo(testParser); - - doclets = testParser.parse('javascript:' + sourceCode); - testhelpers.indexAll(doclets); - - return { - doclets: doclets, - getByLongname: function(longname) { - return doclets.filter(function(doclet) { - return (doclet.longname || doclet.name) === longname; - }); - } - }; - }, - indexAll: function(docs) { - var index = {}; - docs.forEach(function(doc) { - if (!index[doc.longname]) index[doc.longname] = []; - index[doc.longname].push(doc); - }); - docs.index = index; - } -}; - -testFile('test/t/common/util.js'); -testFile('test/t/common/dumper.js'); -testFile('test/t/common/events.js'); -testFile('test/t/common/query.js'); -testFile('test/t/common/scanner.js'); - -testFile('test/t/jsdoc/opts/parser.js'); -testFile('test/t/jsdoc/src/parser.js'); -testFile('test/t/jsdoc/src/handlers.js'); -testFile('test/t/jsdoc/name.js'); - -testFile('test/t/cases/file.js'); - -testFile('test/t/cases/virtual.js'); - -testFile('test/t/cases/objectlit.js'); -testFile('test/t/cases/objectlit2.js'); - -testFile('test/t/cases/this.js'); -testFile('test/t/cases/this2.js'); -testFile('test/t/cases/this3.js'); - -testFile('test/t/cases/this-and-objectlit.js'); - -testFile('test/t/cases/var.js'); - -testFile('test/t/cases/inner.js'); -testFile('test/t/cases/innerscope.js'); -testFile('test/t/cases/innerscope2.js'); - -testFile('test/t/cases/modules/data/mod-1.js'); -testFile('test/t/cases/modules/data/mod-2.js'); - -testFile('test/t/cases/accesstag.js'); -testFile('test/t/cases/alias.js'); -testFile('test/t/cases/alias2.js'); -testFile('test/t/cases/alias3.js'); -testFile('test/t/cases/also.js'); -testFile('test/t/cases/augmentstag.js'); -testFile('test/t/cases/authortag.js'); -testFile('test/t/cases/borrowstag.js'); -testFile('test/t/cases/borrowstag2.js'); -testFile('test/t/cases/classtag.js'); -testFile('test/t/cases/constructstag.js'); -testFile('test/t/cases/constructstag2.js'); -testFile('test/t/cases/constructstag3.js'); -testFile('test/t/cases/constructortag.js'); -testFile('test/t/cases/copyrighttag.js'); -testFile('test/t/cases/defaulttag.js'); -testFile('test/t/cases/deprecatedtag.js'); -testFile('test/t/cases/exports.js'); -testFile('test/t/cases/exportstag.js'); -testFile('test/t/cases/exportstag2.js'); -testFile('test/t/cases/exportstag3.js'); -testFile('test/t/cases/exceptiontag.js'); -testFile('test/t/cases/globaltag.js'); -testFile('test/t/cases/ignoretag.js'); -testFile('test/t/cases/lends.js'); -testFile('test/t/cases/lends2.js'); -testFile('test/t/cases/lendsglobal.js'); -testFile('test/t/cases/memberoftag.js'); -testFile('test/t/cases/memberoftag2.js'); -testFile('test/t/cases/moduletag.js'); -testFile('test/t/cases/moduletag2.js'); -testFile('test/t/cases/paramtag.js'); -testFile('test/t/cases/privatetag.js'); -testFile('test/t/cases/quotename.js'); -testFile('test/t/cases/quotename2.js'); -testFile('test/t/cases/readonlytag.js'); -testFile('test/t/cases/requirestag.js'); -testFile('test/t/cases/returnstag.js'); -testFile('test/t/cases/seetag.js'); -testFile('test/t/cases/sincetag.js'); -testFile('test/t/cases/thistag.js'); -testFile('test/t/cases/typekind.js'); -testFile('test/t/cases/typetag.js'); -testFile('test/t/cases/typedeftag.js'); -testFile('test/t/cases/variations.js'); -testFile('test/t/cases/versiontag.js'); - - -report(); - diff --git a/test/t/cases/accesstag.js b/test/t/cases/accesstag.js deleted file mode 100644 index 9165cf959..000000000 --- a/test/t/cases/accesstag.js +++ /dev/null @@ -1,39 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/accesstag.js'), - foo = docSet.getByLongname('Thingy~foo')[0], - _bar = docSet.getByLongname('Thingy#_bar')[0], - pez = docSet.getByLongname('Thingy#pez')[0]; - - //dump(docSet.doclets); - - test('When a symbol has a @access private tag, the doclet has a access="private" property.', function() { - assert.equal(foo.access, 'private'); - }); - - test('When a symbol has a @access protected tag, the doclet has a access="protected" property.', function() { - assert.equal(_bar.access, 'protected'); - }); - - test('When a symbol has a @access public tag, the doclet has no access property.', function() { - assert.equal(typeof pez.access, 'undefined'); - }); - - // same as... - - foo = docSet.getByLongname('OtherThingy~foo')[0]; - _bar = docSet.getByLongname('OtherThingy#_bar')[0]; - pez = docSet.getByLongname('OtherThingy#pez')[0]; - - test('When a symbol has a @private tag, the doclet has a access="private" property.', function() { - assert.equal(foo.access, 'private'); - }); - - test('When a symbol has a @protected tag, the doclet has a access="protected" property.', function() { - assert.equal(_bar.access, 'protected'); - }); - - test('When a symbol has a @public tag, the doclet has no access property.', function() { - assert.equal(typeof pez.access, 'undefined'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/alias.js b/test/t/cases/alias.js deleted file mode 100644 index 2ffba19c8..000000000 --- a/test/t/cases/alias.js +++ /dev/null @@ -1,20 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/alias.js'), - found = docSet.getByLongname('myObject').filter(function($) { - return ! $.undocumented; - }), - - foundMember = docSet.getByLongname('myObject.myProperty') - - //dump(found); - - test('When a symbol is given an alias it is documented as if the name is the alias value.', function() { - assert.equal(found[0].longname, 'myObject'); - }); - - test('When a symbol is a member of an alias it is documented as if the memberof is the alias value.', function() { - assert.equal(foundMember[0].longname, 'myObject.myProperty'); - assert.equal(foundMember[0].memberof, 'myObject'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/alias2.js b/test/t/cases/alias2.js deleted file mode 100644 index e14f31b29..000000000 --- a/test/t/cases/alias2.js +++ /dev/null @@ -1,18 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/alias2.js'), - found = docSet.getByLongname('myObject').filter(function($) { - return ! $.undocumented; - }), - - foundMember = docSet.getByLongname('ns.Myclass#myProperty') - - //dump(found); - - test('When a symbol is a member of an alias of a nested name it is documented as if the memberof is the nested alias value.', function() { - assert.equal(foundMember[0].longname, 'ns.Myclass#myProperty'); - assert.equal(foundMember[0].name, 'myProperty'); - assert.equal(foundMember[0].memberof, 'ns.Myclass'); - assert.equal(foundMember[0].scope, 'instance'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/alias3.js b/test/t/cases/alias3.js deleted file mode 100644 index 1ff0e0ac1..000000000 --- a/test/t/cases/alias3.js +++ /dev/null @@ -1,12 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/alias3.js'), - tcm = docSet.getByLongname('trackr.CookieManager')[0], - tcmValue = docSet.getByLongname('trackr.CookieManager#value')[0]; - - //dump(found); - - test('When a symbol is a member of an aliased class, a this-variables is documented as if it were a member that class.', function() { - assert.equal(tcmValue.memberof, 'trackr.CookieManager'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/also.js b/test/t/cases/also.js deleted file mode 100644 index a48b23819..000000000 --- a/test/t/cases/also.js +++ /dev/null @@ -1,13 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/also.js'), - name = docSet.getByLongname('Asset#name').filter(function($) { - return ! $.undocumented; - }); - - //dump(name); - - test('When a symbol has two doclets adjacent to each other both doclets apply to the symbol.', function() { - assert.equal(name.length, 2, 'myObject'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/augmentstag.js b/test/t/cases/augmentstag.js deleted file mode 100644 index dbaf4b0c7..000000000 --- a/test/t/cases/augmentstag.js +++ /dev/null @@ -1,12 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/augmentstag.js'), - foo = docSet.getByLongname('Foo')[0], - bar = docSet.getByLongname('Bar')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @augments tag, the doclet has a augments property that includes that value.', function() { - assert.equal(typeof bar.augments, 'object'); - assert.equal(bar.augments[0], 'Foo'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/authortag.js b/test/t/cases/authortag.js deleted file mode 100644 index 7b7fabe81..000000000 --- a/test/t/cases/authortag.js +++ /dev/null @@ -1,11 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/authortag.js'), - Thingy = docSet.getByLongname('Thingy')[0]; - - //dump(docSet.doclets); - - test('When a symbol has a @author tag, the doclet has a author property with that value.', function() { - assert.equal(Thingy.author, 'Michael Mathews '); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/borrowstag.js b/test/t/cases/borrowstag.js deleted file mode 100644 index 4bef5814e..000000000 --- a/test/t/cases/borrowstag.js +++ /dev/null @@ -1,14 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/borrowstag.js'), - util = docSet.getByLongname('util').filter(function($) { - return ! $.undocumented; - })[0]; - - //dump(found); - - test('When a symbol has a @borrows-as tag, that is added to the symbol\'s "borrowed" property.', function() { - assert.equal(util.borrowed.length, 1); - assert.equal(util.borrowed[0].from, 'trstr'); - assert.equal(util.borrowed[0].as, 'trim'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/borrowstag2.js b/test/t/cases/borrowstag2.js deleted file mode 100644 index 002e7cf3d..000000000 --- a/test/t/cases/borrowstag2.js +++ /dev/null @@ -1,17 +0,0 @@ -var borrow = require('jsdoc/borrow'); - -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/borrowstag2.js'); - - borrow.resolveBorrows(docSet.doclets); - - var str_rtrim = docSet.getByLongname('str.rtrim').filter(function($) { - return ! $.undocumented; - })[0]; - - //dump(docSet); exit(); - - test('When a symbol has a @borrows tag, the borrowed symbol is added to the symbol.', function() { - assert.equal(typeof str_rtrim, 'object'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/classtag.js b/test/t/cases/classtag.js deleted file mode 100644 index d3293564e..000000000 --- a/test/t/cases/classtag.js +++ /dev/null @@ -1,16 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/classtag.js'), - ticker = docSet.getByLongname('Ticker')[0], - news = docSet.getByLongname('NewsSource')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has a @class tag, the doclet has a kind property set to "class".', function() { - assert.equal(ticker.kind, 'class'); - }); - - test('When a symbol has a @class tag with a value, the doclet has a name property set to that value.', function() { - assert.equal(news.kind, 'class'); - assert.equal(news.longname, 'NewsSource'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/constructortag.js b/test/t/cases/constructortag.js deleted file mode 100644 index af23362b5..000000000 --- a/test/t/cases/constructortag.js +++ /dev/null @@ -1,15 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/constructortag.js'), - feed = docSet.getByLongname('Feed')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @constructor tag, it is documented as a class.', function() { - assert.equal(feed.kind, 'class'); - }); - - test('When a symbol has an @constructor tag and a @class tag, the value of the @class tag becomes the classdesc property.', function() { - assert.equal(feed.classdesc, 'Describe your class here.'); - assert.equal(feed.description, 'Describe your constructor function here.'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/constructstag.js b/test/t/cases/constructstag.js deleted file mode 100644 index ec8c9d61a..000000000 --- a/test/t/cases/constructstag.js +++ /dev/null @@ -1,11 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/constructstag.js'), - textblock = docSet.getByLongname('TextBlock')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @constructs tag, it is documented as a class with that name.', function() { - assert.equal(textblock.kind, 'class'); - assert.equal(textblock.longname, 'TextBlock'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/constructstag2.js b/test/t/cases/constructstag2.js deleted file mode 100644 index 2cd8e5fc7..000000000 --- a/test/t/cases/constructstag2.js +++ /dev/null @@ -1,12 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/constructstag2.js'), - menu = docSet.getByLongname('Menu')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @constructs tag, it is documented as a class.', function() { - assert.equal(menu.name, 'Menu'); - assert.equal(menu.kind, 'class'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/constructstag3.js b/test/t/cases/constructstag3.js deleted file mode 100644 index 5e7a96496..000000000 --- a/test/t/cases/constructstag3.js +++ /dev/null @@ -1,12 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/constructstag3.js'), - personName = docSet.getByLongname('Person#name')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a function symbol has an @constructs tag, any this-variables are ducumented as instance members of the class.', function() { - assert.equal(personName.memberof, 'Person'); - assert.equal(personName.scope, 'instance'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/copyrighttag.js b/test/t/cases/copyrighttag.js deleted file mode 100644 index 76a144c40..000000000 --- a/test/t/cases/copyrighttag.js +++ /dev/null @@ -1,11 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/copyrighttag.js'), - Thingy = docSet.getByLongname('Thingy')[0]; - - //dump(docSet.doclets); - - test('When a symbol has a @copyright tag, the doclet has a copyright property with that value.', function() { - assert.equal(Thingy.copyright, '(c) 2011 Michael Mathews'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/defaulttag.js b/test/t/cases/defaulttag.js deleted file mode 100644 index e4d70c93a..000000000 --- a/test/t/cases/defaulttag.js +++ /dev/null @@ -1,41 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/defaulttag.js'), - request = (docSet.getByLongname('request') || [])[0], - response = (docSet.getByLongname('response') || [])[0], - rcode = (docSet.getByLongname('rcode') || [])[0], - rvalid = (docSet.getByLongname('rvalid') || [])[0], - rerrored = (docSet.getByLongname('rerrored') || [])[0], - win = (docSet.getByLongname('win') || [])[0]; - header = (docSet.getByLongname('header') || [])[0]; - - //dump(response); - - test('When symbol set to null has a @default tag with no text.', function() { - assert.equal(request.defaultvalue, 'null', 'The doclet\'s defaultValue property should be: undefined.'); - }); - - test('When symbol set to a string has a @default tag with no text.', function() { - assert.equal(response.defaultvalue, '"ok"', 'The doclet\'s defaultValue property should be that quoted string.'); - }); - - test('When symbol set to a number has a @default tag with no text.', function() { - assert.equal(rcode.defaultvalue, '200', 'The doclet\'s defaultValue property should be that number.'); - }); - - test('When symbol has a @default tag with text.', function() { - assert.equal(win.defaultvalue, 'the parent window', 'The doclet\'s defaultValue property should be that text.'); - }); - - test('When symbol has a @default tag with true.', function() { - assert.equal(rvalid.defaultvalue, 'true'); - }); - - test('When symbol has a @default tag with false.', function() { - assert.equal(rerrored.defaultvalue, 'false'); - }); - - test('When symbol has a @default tag with a function call.', function() { - assert.equal(typeof header.defaultvalue, 'undefined'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/deprecatedtag.js b/test/t/cases/deprecatedtag.js deleted file mode 100644 index 5a93f131c..000000000 --- a/test/t/cases/deprecatedtag.js +++ /dev/null @@ -1,16 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/deprecatedtag.js'), - foo = docSet.getByLongname('foo')[0], - bar = docSet.getByLongname('bar')[0]; - - //dump(docSet.doclets); - - test('When a symbol has a @deprecated tag with no value, the doclet has a deprecated property set to true.', function() { - assert.equal(foo.deprecated, true); - }); - - test('When a symbol has a @deprec tag with a value, the doclet has a deprecated property set to that value.', function() { - assert.equal(bar.deprecated, 'since version 2.0'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/exceptiontag.js b/test/t/cases/exceptiontag.js deleted file mode 100644 index de0ce730b..000000000 --- a/test/t/cases/exceptiontag.js +++ /dev/null @@ -1,20 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/exceptiontag.js'), - foo = docSet.getByLongname('foo')[0], - bar = docSet.getByLongname('bar')[0], - pez = docSet.getByLongname('pez')[0]; - - //dump(docSet.doclets); - - test('When a symbol has an @exception tag, the doclet has a exception property set to that value.', function() { - assert.equal(typeof foo.exceptions, 'object'); - assert.equal(foo.exceptions.length, 1); - - assert.equal(typeof bar.exceptions, 'object'); - assert.equal(bar.exceptions.length, 1); - - assert.equal(typeof pez.exceptions, 'object'); - assert.equal(pez.exceptions.length, 1); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/exports.js b/test/t/cases/exports.js deleted file mode 100644 index fc80c8fcd..000000000 --- a/test/t/cases/exports.js +++ /dev/null @@ -1,13 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/exports.js'), - helloworld = docSet.getByLongname('module:hello/world')[0], - sayhello = docSet.getByLongname('module:hello/world.sayHello')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol starts with the special name "exports" and is in a file with a @module tag, the symbol is documented as a member of that module.', function() { - assert.equal(typeof sayhello, 'object'); - assert.equal(sayhello.kind, 'function'); - assert.equal(sayhello.memberof, 'module:hello/world'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/exportstag.js b/test/t/cases/exportstag.js deleted file mode 100644 index c5395615c..000000000 --- a/test/t/cases/exportstag.js +++ /dev/null @@ -1,31 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/exportstag.js'), - shirt = docSet.getByLongname('module:my/shirt')[0], - color = docSet.getByLongname('module:my/shirt.color')[0], - tneck = docSet.getByLongname('module:my/shirt.Turtleneck')[0], - size = docSet.getByLongname('module:my/shirt.Turtleneck#size')[0]; - - //dump(docSet.doclets); exit(0); - - test('When an objlit symbol has an @exports tag, the doclet is aliased to "module:" + the tag value.', function() { - assert.equal(typeof shirt, 'object'); - assert.equal(shirt.alias, 'my/shirt'); - }); - - test('When an objlit symbol has an @exports tag, the doclet\'s longname includes the "module:" namespace.', function() { - assert.equal(shirt.longname, 'module:my/shirt'); - }); - - test('When an objlit symbol has an @exports tag, the doclet kind is set to module.', function() { - assert.equal(shirt.kind, 'module'); - }); - - test('When an objlit symbol has an @exports tag, the objlit members are documented as members of the module.', function() { - assert.equal(typeof color, 'object'); - assert.equal(color.memberof, 'module:my/shirt'); - - assert.equal(typeof tneck, 'object'); - assert.equal(typeof size, 'object'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/exportstag2.js b/test/t/cases/exportstag2.js deleted file mode 100644 index c638b9b33..000000000 --- a/test/t/cases/exportstag2.js +++ /dev/null @@ -1,26 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/exportstag2.js'), - coat = docSet.getByLongname('module:my/coat')[0], - wool = docSet.getByLongname('module:my/coat#wool')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a function symbol has an @exports tag, the doclet is aliased to "module:" + the tag value.', function() { - assert.equal(typeof coat, 'object'); - assert.equal(coat.alias, 'my/coat'); - }); - - test('When a function symbol has an @exports tag, the doclet\'s longname includes the "module:" namespace.', function() { - assert.equal(coat.longname, 'module:my/coat'); - }); - - test('When a function symbol has an @exports tag, the doclet kind is set to module.', function() { - assert.equal(coat.kind, 'module'); - }); - - test('When a function symbol has an @exports tag, the this members are documented as instance members of the module.', function() { - assert.equal(typeof wool, 'object'); - assert.equal(wool.memberof, 'module:my/coat'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/exportstag3.js b/test/t/cases/exportstag3.js deleted file mode 100644 index a75c9b372..000000000 --- a/test/t/cases/exportstag3.js +++ /dev/null @@ -1,19 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/exportstag3.js'), - html = docSet.getByLongname('module:html/utils')[0], - getstyle = docSet.getByLongname('module:html/utils.getStyleProperty')[0], - inhead = docSet.getByLongname('module:html/utils.isInHead')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a function symbol has an @exports tag and there is an objlit named "exports" the members are documented as members of the module.', function() { - assert.equal(typeof getstyle, 'object'); - assert.equal(getstyle.memberof, 'module:html/utils'); - }); - - test('When a function symbol has an @exports tag and there are members assinged to an "exports" name, the members are documented as members of the module.', function() { - assert.equal(typeof inhead, 'object'); - assert.equal(inhead.memberof, 'module:html/utils'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/file.js b/test/t/cases/file.js deleted file mode 100644 index 94fd7e66d..000000000 --- a/test/t/cases/file.js +++ /dev/null @@ -1,19 +0,0 @@ -(function() { - var srcParser = require('jsdoc/src/parser'), - doclets; - - app.jsdoc.parser = new srcParser.Parser(); - - require('jsdoc/src/handlers').attachTo(app.jsdoc.parser); - - doclets = app.jsdoc.parser.parse(BASEDIR + 'test/cases/file.js') - - //dump(doclets); - - test('When a file overview tag appears in a doclet.', function() { - var m = /^.*([\/\\]cases[\/\\]file\.js)$/.exec(doclets[0].name); - assert.equal(m.length, 2, 'The name of the doclet should start with file: and should end with the path to the file.'); - assert.equal(doclets[0].name, doclets[0].longname, 'The name and longname should be equal.'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/globaltag.js b/test/t/cases/globaltag.js deleted file mode 100644 index efea48076..000000000 --- a/test/t/cases/globaltag.js +++ /dev/null @@ -1,28 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/globaltag.js'), - found = docSet.getByLongname('foo').filter(function($) { - return ! $.undocumented; - }); - - //dump(docSet.doclets); - - test('When an inner symbol has a @global tag it is documented as if it were global.', function() { - assert.equal(found[0].name, 'foo'); - assert.equal(found[0].longname, 'foo'); - assert.equal(found[0].memberof, undefined); - assert.equal(found[0].scope, 'global'); - - }); - - found = docSet.getByLongname('Bar').filter(function($) { - return ! $.undocumented; - }); - - test('When an nested symbol has a @global tag it is documented as if it were global.', function() { - assert.equal(found[0].name, 'Bar'); - assert.equal(found[0].longname, 'Bar'); - assert.equal(found[0].memberof, undefined); - assert.equal(found[0].scope, 'global'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/ignoretag.js b/test/t/cases/ignoretag.js deleted file mode 100644 index c18eabcaa..000000000 --- a/test/t/cases/ignoretag.js +++ /dev/null @@ -1,11 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/ignoretag.js'), - foo = docSet.getByLongname('foo')[0]; - - //dump(docSet.doclets); - - test('When a symbol has an @ignore tag, the doclet has a ignore property set to true.', function() { - assert.equal(foo.ignore, true); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/inner.js b/test/t/cases/inner.js deleted file mode 100644 index 63a48f761..000000000 --- a/test/t/cases/inner.js +++ /dev/null @@ -1,21 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/inner.js'), - found1 = docSet.getByLongname('sendMessage~encoding'), - found2 = docSet.getByLongname('sendMessage~encrypt'); - - //dump(docSet); - - test('When a documented var member is inside a named function.', function() { - assert.equal(found1.length, 1, 'A doclet with the correct longname should be found.'); - assert.equal(found1[0].name, 'encoding', 'The short name should be correct.'); - assert.equal(found1[0].memberof, 'sendMessage', 'The memberof should be correct.'); - assert.equal(found1[0].scope, 'inner', 'The scope should default to "static".'); - }); - - test('When a documented function is inside a named function.', function() { - assert.equal(found2.length, 1, 'A doclet with the correct longname should be found.'); - assert.equal(found2[0].name, 'encrypt', 'The short name should be correct.'); - assert.equal(found2[0].memberof, 'sendMessage', 'The memberof should be correct.'); - assert.equal(found2[0].scope, 'inner', 'The scope should default to "static".'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/innerscope.js b/test/t/cases/innerscope.js deleted file mode 100644 index 8e6bee7d9..000000000 --- a/test/t/cases/innerscope.js +++ /dev/null @@ -1,20 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/innerscope.js'), - to = docSet.getByLongname('Message~headers.to'), - from = docSet.getByLongname('Message~headers.from'), - response = docSet.getByLongname('Message~response.code'); - - //dump(docSet); exit(); - - test('When a member of a var member is documented.', function() { - assert.equal(to.length, 1, 'It is like Outer~inner.member.'); - }); - - test('When a second member of a var member is documented.', function() { - assert.equal(response.length, 1, 'It is like Outer~inner.member.'); - }); - - test('When a deeply nested member of a var member is documented.', function() { - assert.equal(from.length, 1, 'It is still like Outer~inner.member.'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/innerscope2.js b/test/t/cases/innerscope2.js deleted file mode 100644 index c29516ac2..000000000 --- a/test/t/cases/innerscope2.js +++ /dev/null @@ -1,21 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/innerscope2.js'), - to = docSet.getByLongname('Message~headers.to'), - from = docSet.getByLongname('~headers.from'), - cache = docSet.getByLongname('~headers.cache'); - - //dump(docSet); - - test('When a var is declared in a function.', function() { - assert.equal(cache.length, 1, 'It is like Inner~member.'); - }); - - test('When a var is masked by an inner var and a member of the inner is documented.', function() { - assert.equal(from.length, 1, 'It is like Inner~inner.member.'); - }); - - test('When a documented member is assigned to a var that masks an outer var.', function() { - assert.equal(from[0].name, 'from'); - assert.equal(from[0].memberof, '~headers'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/lends.js b/test/t/cases/lends.js deleted file mode 100644 index 324590515..000000000 --- a/test/t/cases/lends.js +++ /dev/null @@ -1,14 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/lends.js'), - init = docSet.getByLongname('Person#initialize'), - say = docSet.getByLongname('Person#say'), - name = docSet.getByLongname('Person#name'); - - //dump(docSet); - - test('When a documented member is inside an objlit associated with a @lends tag.', function() { - assert.equal(init.length, 1, 'The member should be documented as a member of the lendee.'); - assert.equal(name.length, 1, 'The this member should be documented as a member of the lendee.'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/lends2.js b/test/t/cases/lends2.js deleted file mode 100644 index d3355fc2b..000000000 --- a/test/t/cases/lends2.js +++ /dev/null @@ -1,17 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/lends2.js'), - person = docSet.getByLongname('Person').filter(function($) { - return ! $.undocumented; - })[0], - say = docSet.getByLongname('Person#say'), - name = docSet.getByLongname('Person#name') - - //dump(person); - - test('When a documented member is inside an objlit associated with a @lends tag.', function() { - assert.equal(person.description, 'Construct a Person.', 'A tag with a @constructs tag is documented as a constructor.'); - assert.equal(say.length, 1, 'The member should be documented as a member of the lendee.'); - assert.equal(name.length, 1, 'The this member should be documented as a member of the lendee.'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/lendsglobal.js b/test/t/cases/lendsglobal.js deleted file mode 100644 index 451e9a0a9..000000000 --- a/test/t/cases/lendsglobal.js +++ /dev/null @@ -1,17 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/lendsglobal.js'), - testf = docSet.getByLongname('test')[0], - test1 = docSet.getByLongname('test1')[0], - test12 = docSet.getByLongname('test1.test2')[0]; - - //dump(testf, test1, test12); exit(); - - test('When a documented member is inside an objlit associated with a @lends tag that has no value.', function() { - assert.equal(typeof testf.memberof, 'undefined', 'The members of the objlit are not members of any symbol.'); - assert.equal(testf.longname, 'test', 'The members of the objlit are documented as global.'); - - - assert.equal(test12.memberof, 'test1', 'The nested members of the objlit are members of a global symbol.'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/memberoftag.js b/test/t/cases/memberoftag.js deleted file mode 100644 index 895ce5c01..000000000 --- a/test/t/cases/memberoftag.js +++ /dev/null @@ -1,15 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/memberoftag.js'), - Data = docSet.getByLongname('mathlib.Data')[0], - point = docSet.getByLongname('mathlib.Data#point')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @member tag, the doclet has a long name that includes the parent.', function() { - assert.equal(typeof Data, 'object'); - assert.equal(typeof point, 'object'); - - assert.equal(Data.memberof, 'mathlib'); - assert.equal(Data.name, 'Data'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/memberoftag2.js b/test/t/cases/memberoftag2.js deleted file mode 100644 index dc40e5773..000000000 --- a/test/t/cases/memberoftag2.js +++ /dev/null @@ -1,23 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/memberoftag2.js'), - publish = docSet.getByLongname('Observable#publish')[0], - cache = docSet.getByLongname('Observable.cache')[0]; - - //dump(docSet.doclets); exit(0); - - test('A symbol is documented as a static @memberof a class.', function() { - assert.equal(typeof cache, 'object', 'it should appear as a static member of that class.'); - assert.equal(cache.memberof, 'Observable'); - assert.equal(cache.scope, 'static'); - assert.equal(cache.name, 'cache'); - assert.equal(cache.longname, 'Observable.cache'); - }); - - test('A symbol is documented as a static @memberof a class prototype.', function() { - assert.equal(typeof publish, 'object', 'it should appear as an instance member of that class.'); - assert.equal(publish.memberof, 'Observable'); - assert.equal(publish.scope, 'instance'); - assert.equal(publish.name, 'publish'); - assert.equal(publish.longname, 'Observable#publish'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/modules/data/mod-1.js b/test/t/cases/modules/data/mod-1.js deleted file mode 100644 index 6f26452f6..000000000 --- a/test/t/cases/modules/data/mod-1.js +++ /dev/null @@ -1,18 +0,0 @@ -(function() { - var srcParser = require('jsdoc/src/parser'), - doclets; - - env.opts._ = [BASEDIR + 'test/cases/modules/']; - - app.jsdoc.parser = new srcParser.Parser(); - - require('jsdoc/src/handlers').attachTo(app.jsdoc.parser); - - doclets = app.jsdoc.parser.parse(BASEDIR + 'test/cases/modules/data/mod-1.js') - - test('When a module has no name documented, the name comes from the file path.', function() { - assert.ok(doclets.length > 1); - assert.equal(doclets[0].longname, 'module:data/mod-1'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/modules/data/mod-2.js b/test/t/cases/modules/data/mod-2.js deleted file mode 100644 index 5aff85abd..000000000 --- a/test/t/cases/modules/data/mod-2.js +++ /dev/null @@ -1,18 +0,0 @@ -(function() { - var srcParser = require('jsdoc/src/parser'), - doclets; - - env.opts._ = [BASEDIR + 'test/cases/modules/']; - - app.jsdoc.parser = new srcParser.Parser(); - - require('jsdoc/src/handlers').attachTo(app.jsdoc.parser); - - doclets = app.jsdoc.parser.parse(BASEDIR + 'test/cases/modules/data/mod-2.js') - - test('When a module has a name documented, that name is used.', function() { - assert.ok(doclets.length > 1); - assert.equal(doclets[0].longname, 'module:my/module/name'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/modules/data/mod-3.js b/test/t/cases/modules/data/mod-3.js deleted file mode 100644 index d4dcf9c2a..000000000 --- a/test/t/cases/modules/data/mod-3.js +++ /dev/null @@ -1,18 +0,0 @@ -(function() { - var srcParser = require('jsdoc/src/parser'), - doclets; - - env.opts._ = [BASEDIR + 'test/cases/modules/']; - - app.jsdoc.parser = new srcParser.Parser(); - - require('jsdoc/src/handlers').attachTo(app.jsdoc.parser); - - doclets = app.jsdoc.parser.parse(BASEDIR + 'test/cases/modules/data/mod-2.js') - - test('When a module has a name documented, that name is used.', function() { - assert.ok(doclets.length > 1); - assert.equal(doclets[0].name, 'module:my/module/name'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/moduletag.js b/test/t/cases/moduletag.js deleted file mode 100644 index e7acd52cc..000000000 --- a/test/t/cases/moduletag.js +++ /dev/null @@ -1,17 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/moduletag.js'), - book = docSet.getByLongname('module:bookshelf.Book')[0], - title = docSet.getByLongname('module:bookshelf.Book#title')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a global symbol starts with "this" and is in a file with a @module tag, the symbol is documented as a member of that module.', function() { - assert.equal(typeof book, 'object'); - assert.equal(book.memberof, 'module:bookshelf'); - }); - - test('When an inner symbol starts with "this" and is in a file with a @module tag, the symbol is documented as a member of its enclosing constructor.', function() { - assert.equal(typeof title, 'object'); - assert.equal(title.memberof, 'module:bookshelf.Book'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/moduletag2.js b/test/t/cases/moduletag2.js deleted file mode 100644 index 7ddba8ddc..000000000 --- a/test/t/cases/moduletag2.js +++ /dev/null @@ -1,25 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/moduletag2.js'), - mixer = docSet.getByLongname('module:color/mixer').filter(function($) { - return ! $.undocumented; - })[0], - blend = docSet.getByLongname('module:color/mixer.blend')[0], - darken = docSet.getByLongname('module:color/mixer.darken')[0]; - - //dump(mixer); exit(0); - - test('When a @module tag defines a module module.', function() { - assert.equal(typeof mixer, 'object'); - assert.equal(mixer.kind, 'module', 'A symbol of kind "module" is documented.'); - }); - - test('When an object literal is lent to a module with a @lends tag.', function() { - assert.equal(typeof blend, 'object'); - assert.equal(blend.kind, 'function', 'A member of that object literal is documented as a member of the module.'); - }); - - test('When a documented symbol is a member of a namespace "exports".', function() { - assert.equal(typeof darken, 'object'); - assert.equal(darken.kind, 'function', 'It is documented as a member of the module.'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/objectlit.js b/test/t/cases/objectlit.js deleted file mode 100644 index b777dd7af..000000000 --- a/test/t/cases/objectlit.js +++ /dev/null @@ -1,13 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/objectlit.js'), - found = docSet.getByLongname('tools.serialiser.value'); - - //dump(docSet); - - test('When a child of an objlit has no @name or @memberof tags.', function() { - assert.equal(found.length, 1, 'A doclet with the correct longname should be found.'); - assert.equal(found[0].name, 'value', 'The short name should be correct.'); - assert.equal(found[0].memberof, 'tools.serialiser', 'The memberof should be correct.'); - assert.equal(found[0].scope, 'static', 'The scope should default to "static".'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/objectlit2.js b/test/t/cases/objectlit2.js deleted file mode 100644 index ec486aae9..000000000 --- a/test/t/cases/objectlit2.js +++ /dev/null @@ -1,13 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/objectlit2.js'), - found = docSet.getByLongname('position.axis.x'); - - //dump(docSet); - - test('When a parent of an objlit has no documentation.', function() { - assert.equal(found.length, 1, 'A doclet with the correct longname should be found.'); - assert.equal(found[0].name, 'x', 'The short name should be correct.'); - assert.equal(found[0].memberof, 'position.axis', 'The memberof should be correct.'); - assert.equal(found[0].scope, 'static', 'The scope should default to "static".'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/paramtag.js b/test/t/cases/paramtag.js deleted file mode 100644 index 9a62441a5..000000000 --- a/test/t/cases/paramtag.js +++ /dev/null @@ -1,69 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/paramtag.js'), - find = docSet.getByLongname('find')[0], - unbind = docSet.getByLongname('unbind')[0], - bind = docSet.getByLongname('bind')[0], - getElement = docSet.getByLongname('getElement')[0], - combine = docSet.getByLongname('combine')[0], - split = docSet.getByLongname('split')[0], - commit = docSet.getByLongname('commit')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @param tag with a type before the name, the doclet has a params property that includes that param.', function() { - assert.equal(typeof find.params, 'object'); - assert.equal(find.params.length, 1); - assert.equal(find.params[0].type.names.join(', '), 'String, Array'); - assert.equal(find.params[0].name, 'targetName'); - assert.equal(find.params[0].description, 'The name (or names) of what to find.'); - }); - - test('When a symbol has an @param tag with only a type and name, the doclet has a params property that includes that param.', function() { - assert.equal(typeof bind.params, 'object'); - assert.equal(bind.params.length, 1); - assert.equal(bind.params[0].type.names.join(', '), 'function'); - assert.equal(bind.params[0].name, 'callback'); - assert.equal(bind.params[0].description, undefined); - }); - - test('When a symbol has an @param tag with only a type, the doclet has a params property that includes that param.', function() { - assert.equal(typeof unbind.params, 'object'); - assert.equal(unbind.params.length, 1); - assert.equal(unbind.params[0].type.names.join(', '), 'function'); - assert.equal(unbind.params[0].name, undefined); - assert.equal(unbind.params[0].description, undefined); - }); - - test('When a symbol has an @param tag with no type, the doclet has a params property that includes that param.', function() { - assert.equal(typeof getElement.params, 'object'); - assert.equal(getElement.params.length, 1); - assert.equal(getElement.params[0].type, undefined); - assert.equal(getElement.params[0].name, 'id'); - assert.equal(getElement.params[0].description, 'The id of the element.'); - }); - - test('When a symbol has an @param tag with a non-alpha name like "...", the doclet has a params property that includes that param.', function() { - assert.equal(typeof combine.params, 'object'); - assert.equal(combine.params.length, 1); - assert.equal(combine.params[0].type, undefined); - assert.equal(combine.params[0].name, '...'); - assert.equal(combine.params[0].description, 'Two or more elements.'); - }); - - test('When a symbol has an @param tag with name followed by a dash, the doclet has a params property that includes that param.', function() { - assert.equal(typeof split.params, 'object'); - assert.equal(split.params.length, 1); - assert.equal(split.params[0].type, undefined); - assert.equal(split.params[0].name, 'delimiter'); - assert.equal(split.params[0].description, 'What to split on.'); - }); - - test('When a symbol has an @param tag with no name or type, the doclet has a params property that includes that param.', function() { - assert.equal(typeof commit.params, 'object'); - assert.equal(commit.params.length, 1); - assert.equal(commit.params[0].type, undefined); - assert.equal(commit.params[0].name, undefined); - assert.equal(commit.params[0].description, 'If true make the commit atomic.'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/privatetag.js b/test/t/cases/privatetag.js deleted file mode 100644 index 9eae4304a..000000000 --- a/test/t/cases/privatetag.js +++ /dev/null @@ -1,11 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/privatetag.js'), - foo = docSet.getByLongname('Foo')[0], - bar = docSet.getByLongname('Foo#bar')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @private tag, the doclet has an access property that is "private".', function() { - assert.equal(foo.access, 'private'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/projecttag.js b/test/t/cases/projecttag.js deleted file mode 100644 index 5e7a96496..000000000 --- a/test/t/cases/projecttag.js +++ /dev/null @@ -1,12 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/constructstag3.js'), - personName = docSet.getByLongname('Person#name')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a function symbol has an @constructs tag, any this-variables are ducumented as instance members of the class.', function() { - assert.equal(personName.memberof, 'Person'); - assert.equal(personName.scope, 'instance'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/quotename.js b/test/t/cases/quotename.js deleted file mode 100644 index 489080dfb..000000000 --- a/test/t/cases/quotename.js +++ /dev/null @@ -1,11 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/quotename.js'), - found1 = docSet.getByLongname('chat.\"#channel\".open')[0]; - - // dump(docSet); - - test('When a member is quoted in square brackets.', function() { - assert.equal(found1.name, 'open', 'The short name should be correct.'); - assert.equal(found1.memberof, 'chat.\"#channel\"', 'The memberof should be correct.'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/quotename2.js b/test/t/cases/quotename2.js deleted file mode 100644 index e33799a2c..000000000 --- a/test/t/cases/quotename2.js +++ /dev/null @@ -1,11 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/quotename2.js'), - found1 = docSet.getByLongname("contacts.\"say-\\\"hello\\\"@example.com\".username")[0]; - - // dump(docSet); - - test('When a key name of a member of an objlit is quoted.', function() { - assert.equal(found1.name, 'username', 'The short name should be correct.'); - assert.equal(found1.memberof, "contacts.\"say-\\\"hello\\\"@example.com\"", 'The memberof should be correct.'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/readonlytag.js b/test/t/cases/readonlytag.js deleted file mode 100644 index f295ed35a..000000000 --- a/test/t/cases/readonlytag.js +++ /dev/null @@ -1,11 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/readonlytag.js'), - Collection = docSet.getByLongname('Collection')[0], - length = docSet.getByLongname('Collection#length')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @readonly tag, the doclet has an readonly property that is true.', function() { - assert.equal(length.readonly, true); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/requirestag.js b/test/t/cases/requirestag.js deleted file mode 100644 index de4537d58..000000000 --- a/test/t/cases/requirestag.js +++ /dev/null @@ -1,17 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/requirestag.js'), - foo = docSet.getByLongname('foo')[0], - bar = docSet.getByLongname('bar')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @requires tag, the doclet has a requires property that includes that value, with the "module:" namespace added.', function() { - assert.equal(typeof foo.requires, 'object'); - assert.equal(foo.requires[0], 'module:foo/helper'); - - assert.equal(typeof bar.requires, 'object'); - assert.equal(bar.requires[0], 'module:foo'); - assert.equal(bar.requires[1], 'module:Pez#blat'); - - }); -})(); \ No newline at end of file diff --git a/test/t/cases/returnstag.js b/test/t/cases/returnstag.js deleted file mode 100644 index ab04b34ee..000000000 --- a/test/t/cases/returnstag.js +++ /dev/null @@ -1,22 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/returnstag.js'), - find = docSet.getByLongname('find')[0], - bind = docSet.getByLongname('bind')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @returns tag with a type and description, the doclet has a returns array that includes that return.', function() { - assert.equal(typeof find.returns, 'object'); - assert.equal(find.returns.length, 1); - assert.equal(find.returns[0].type.names.join(', '), 'String, Array'); - assert.equal(find.returns[0].description, 'The names of the found item(s).'); - }); - - test('When a symbol has an @param tag with only a type and name, the doclet has a returns array property that includes that param.', function() { - assert.equal(typeof bind.returns, 'object'); - assert.equal(bind.returns.length, 1); - assert.equal(bind.returns[0].description, 'The binding id.'); - }); - - -})(); \ No newline at end of file diff --git a/test/t/cases/seetag.js b/test/t/cases/seetag.js deleted file mode 100644 index 646d892b7..000000000 --- a/test/t/cases/seetag.js +++ /dev/null @@ -1,15 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/seetag.js'), - foo = docSet.getByLongname('foo')[0], - bar = docSet.getByLongname('bar')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @see tag, the doclet has a see property that includes that value.', function() { - assert.equal(typeof foo.see, 'object'); - assert.equal(foo.see[0], '#search'); - - assert.equal(typeof bar.see, 'object'); - assert.equal(bar.see[0], 'http://example.com/someref'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/sincetag.js b/test/t/cases/sincetag.js deleted file mode 100644 index bf56bafda..000000000 --- a/test/t/cases/sincetag.js +++ /dev/null @@ -1,11 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/sincetag.js'), - foo = docSet.getByLongname('foo')[0]; - - //dump(docSet.doclets); - - test('When a symbol has an @since tag, the doclet has a since property set to true.', function() { - assert.equal(foo.since, '1.2.3'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/this-and-objectlit.js b/test/t/cases/this-and-objectlit.js deleted file mode 100644 index e6bd105d8..000000000 --- a/test/t/cases/this-and-objectlit.js +++ /dev/null @@ -1,26 +0,0 @@ -/** @constructor */ -function Page(title) { - this.parts = { - title: title, - body: { - /** document me */ - heading: '', - main: '' - } - } -} - -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/this-and-objectlit.js'), - found = docSet.getByLongname('Page#parts.body.heading'); - - //dump(docSet); - - test('When a member is nested inside an objectlit this property inside a constructor.', function() { - assert.equal(found.length, 1, 'A this member should be like Constructor#objlit.member.'); - assert.equal(found[0].name, 'heading', 'The short name should be correct.'); - assert.equal(found[0].memberof, 'Page#parts.body', 'The memberof should be correct.'); - assert.equal(found[0].scope, 'static', 'The scope should default to "static".'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/this.js b/test/t/cases/this.js deleted file mode 100644 index 212907da7..000000000 --- a/test/t/cases/this.js +++ /dev/null @@ -1,21 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/this.js'), - found1 = docSet.getByLongname('Singer#tralala'), - found2 = docSet.getByLongname('Singer#isSinging'); - - // dump(docSet); - - test('When a member is attached to this in a constructor.', function() { - assert.equal(found1.length, 1, 'The longname should be like Constructor#member.'); - assert.equal(found1[0].name, 'tralala', 'The short name should be correct.'); - assert.equal(found1[0].memberof, 'Singer', 'The memberof should be correct.'); - assert.equal(found1[0].scope, 'instance', 'The scope should default to "static".'); - }); - - test('When a member is attached to this in a method of a constructor.', function() { - assert.equal(found2.length, 1, 'The longname should be like Constructor#member.'); - assert.equal(found2[0].name, 'isSinging', 'The short name should be correct.'); - assert.equal(found2[0].memberof, 'Singer', 'The memberof should be correct.'); - assert.equal(found2[0].scope, 'instance', 'The scope should default to "static".'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/this2.js b/test/t/cases/this2.js deleted file mode 100644 index 86990e32c..000000000 --- a/test/t/cases/this2.js +++ /dev/null @@ -1,14 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/this2.js'), - found = docSet.getByLongname('TemplateBuilder#Template#rendered'); - - //dump(docSet); - - test('When a constructor is nested inside another a constructor.', function() { - assert.equal(found.length, 1, 'A this member should be like Constructor#Constructor#member.'); - assert.equal(found[0].name, 'rendered', 'The short name should be correct.'); - assert.equal(found[0].memberof, 'TemplateBuilder#Template', 'The memberof should be correct.'); - assert.equal(found[0].scope, 'instance', 'The scope should default to "static".'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/this3.js b/test/t/cases/this3.js deleted file mode 100644 index c7078cd80..000000000 --- a/test/t/cases/this3.js +++ /dev/null @@ -1,13 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/this3.js'), - found = docSet.getByLongname('position'); - - //dump(docSet); - - test('When a this is assigned to inside a non-constructor function.', function() { - assert.equal(found.length, 1, 'The member name should be global, like "member".'); - assert.equal(found[0].name, 'position', 'The short name should be correct.'); - assert.equal(found[0].memberof, undefined, 'The memberof should be correct.'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/thistag.js b/test/t/cases/thistag.js deleted file mode 100644 index 8277ea458..000000000 --- a/test/t/cases/thistag.js +++ /dev/null @@ -1,18 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/thistag.js'), - setName = docSet.getByLongname('setName')[0], - fooName = docSet.getByLongname('Foo#name')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has a @this tag, the doclet has a this property that is set to that value.', function() { - assert.equal(setName['this'], 'Foo'); - }); - - test('When a this symbol is documented inside a function with a @this tag, the symbol is documented as a member of that tags value.', function() { - assert.equal(typeof fooName, 'object'); - assert.equal(fooName.name, 'name'); - assert.equal(fooName.memberof, 'Foo'); - assert.equal(fooName.scope, 'instance'); - }); -})(); \ No newline at end of file diff --git a/test/t/cases/typedeftag.js b/test/t/cases/typedeftag.js deleted file mode 100644 index 1728c4cc2..000000000 --- a/test/t/cases/typedeftag.js +++ /dev/null @@ -1,24 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/typedeftag.js'), - numberlike = docSet.getByLongname('calc.NumberLike')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @typedef tag, the doclet has a kind property set to "typedef".', function() { - assert.equal(numberlike.kind, 'typedef'); - }); - - test('When a symbol has an @typedef tag with a type, the doclet has a type property set to that type.', function() { - assert.equal(typeof numberlike.type, 'object'); - assert.equal(typeof numberlike.type.names, 'object'); - assert.equal(numberlike.type.names.length, 2); - assert.equal(numberlike.type.names[0], 'string'); - assert.equal(numberlike.type.names[1], 'number'); - }); - - test('When a symbol has an @typedef tag with a name, the doclet has a name property set to that name.', function() { - assert.equal(numberlike.name, 'NumberLike'); - assert.equal(numberlike.longname, 'calc.NumberLike'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/typekind.js b/test/t/cases/typekind.js deleted file mode 100644 index 8e6b7975b..000000000 --- a/test/t/cases/typekind.js +++ /dev/null @@ -1,18 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/typekind.js'), - blog = docSet.getByLongname('module:blog/server')[0], - port = docSet.getByLongname('module:blog/server.port')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a module symbol has an kind tag, that includes a {type} clause', function() { - assert.equal(typeof blog.type, 'object', 'the doclet has a type.'); - assert.equal(blog.type.names.join(', '), 'ConnectServer', 'the doclet has a type property set to that {type} clause.'); - }); - - test('When a property symbol has an kind tag, that includes a {type} clause', function() { - assert.equal(typeof port.type, 'object', 'the doclet has a type.'); - assert.equal(port.type.names.join(', '), 'number', 'the doclet has a type property set to that {type} clause.'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/typetag.js b/test/t/cases/typetag.js deleted file mode 100644 index 4d0dc9bc9..000000000 --- a/test/t/cases/typetag.js +++ /dev/null @@ -1,18 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/typetag.js'), - foo = docSet.getByLongname('foo')[0], - bar = docSet.getByLongname('bar')[0]; - - //dump(docSet.doclets); exit(0); - - test('When a symbol has an @type tag, the doclet has a type property set to that value\'s type.', function() { - assert.equal(typeof foo.type, 'object'); - assert.equal(typeof foo.type.names, 'object'); - assert.equal(foo.type.names.join(', '), 'string, Array'); - }); - - test('When a symbol has an @type tag set to a plain string, the doclet has a type property set to that string as if it were a type.', function() { - assert.equal(bar.type.names.join(', '), 'integer'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/var.js b/test/t/cases/var.js deleted file mode 100644 index 0524da08f..000000000 --- a/test/t/cases/var.js +++ /dev/null @@ -1,31 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/var.js'), - found = [ - docSet.getByLongname('GREEN'), - docSet.getByLongname('RED'), - docSet.getByLongname('validate'), - docSet.getByLongname('i'), - docSet.getByLongname('results') - ]; - - //dump(docSet); - - test('When a series of constants are documented.', function() { - assert.equal(found[0].length, 1, 'The first constant should be found'); - assert.equal(found[0][0].comment, '/** document me */', 'The first constant should get the docs.'); - assert.equal(found[0][0].name, 'GREEN', 'The short name should be correct.'); - assert.equal(found[0][0].memberof, undefined, 'The memberof should be undefined.'); - assert.equal(found[0][0].scope, undefined, 'The scope should be undefined.'); - - assert.equal(found[1].length, 1, 'The second constant should be found'); - assert.equal(found[1][0].undocumented, true, 'The second constant should not get the docs.'); - }); - - test('When member of a series of vars are documented.', function() { - assert.equal(found[4][0].comment, '/** document me */', 'The correct var should get the docs.'); - assert.equal(found[4][0].name, 'results', 'The short name should be correct.'); - assert.equal(found[4][0].memberof, undefined, 'The memberof should be undefined.'); - assert.equal(found[4][0].scope, undefined, 'The scope should be undefined.'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/variations.js b/test/t/cases/variations.js deleted file mode 100644 index e2a9046f4..000000000 --- a/test/t/cases/variations.js +++ /dev/null @@ -1,23 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/variations.js'), - fadein1 = docSet.getByLongname('anim.fadein(1)')[0], - fadein2 = docSet.getByLongname('anim.fadein(2)')[0]; - - //dump(docSet.doclets); - - test('When a symbol has a name with a variation, the doclet has a variation property.', function() { - assert.equal(fadein1.variation, '1'); - assert.equal(fadein2.variation, '2'); - }); - - test('When a symbol has a name with a variation in the name, the doclet name has no variation in it.', function() { - assert.equal(fadein1.name, 'fadein'); - assert.equal(fadein2.name, 'fadein'); - }); - - test('When a symbol has a name with a variation in the name, the doclet longname has the variation in it.', function() { - assert.equal(fadein1.longname, 'anim.fadein(1)'); - assert.equal(fadein2.longname, 'anim.fadein(2)'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/versiontag.js b/test/t/cases/versiontag.js deleted file mode 100644 index a1e24b794..000000000 --- a/test/t/cases/versiontag.js +++ /dev/null @@ -1,11 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/versiontag.js'), - foo = docSet.getByLongname('foo')[0]; - - //dump(docSet.doclets); - - test('When a symbol has an @version tag, the doclet has a version property set to that value.', function() { - assert.equal(foo.version, '1.2.3'); - }); - -})(); \ No newline at end of file diff --git a/test/t/cases/virtual.js b/test/t/cases/virtual.js deleted file mode 100644 index dbe400602..000000000 --- a/test/t/cases/virtual.js +++ /dev/null @@ -1,18 +0,0 @@ -(function() { - var docSet = testhelpers.getDocSetFromFile('test/cases/virtual.js'), - found = [ - docSet.getByLongname('dimensions'), - docSet.getByLongname('width') - ]; - - //dump(docSet); - - test('When a virtual symbol is documented.', function() { - assert.equal(found[0].length, 1, 'The symbol should be documented'); - }); - - test('When an undocumented is after a comment for a virtual symbol is documented.', function() { - assert.equal(found[1].length, 1, 'The symbol should be documented'); - }); - -})(); \ No newline at end of file diff --git a/test/t/common/dumper.js b/test/t/common/dumper.js deleted file mode 100644 index 73d067061..000000000 --- a/test/t/common/dumper.js +++ /dev/null @@ -1,91 +0,0 @@ -var common = {dumper: require('common/dumper')}; - -test('There is a common/dumper module.', function() { - assert.equal(typeof common.dumper, 'object', 'The common/dumper module should be an object.'); -}); - -test('The common/dumper module exports a "dump" function.', function() { - assert.equal(typeof common.dumper.dump, 'function', 'The module:module:common/dumper.dump member should be a function.'); -}); - -test('The module:module:common/dumper.dump function dumps string values.', function() { - assert.equal(common.dumper.dump('hello'), '"hello"'); - assert.equal(common.dumper.dump('hello "world"'), '"hello \\"world\\""', 'Double quotes should be escaped.'); - assert.equal(common.dumper.dump('hello\nworld'), '"hello\\nworld"', 'Newlines should be escaped.'); -}); - -test('The module:module:common/dumper.dump function dumps number values.', function() { - assert.equal(common.dumper.dump(1), '1'); - assert.equal(common.dumper.dump(0.1), '0.1', 'Decimal numbers shuld be dumped.'); -}); - -test('The module:module:common/dumper.dump function dumps boolean values.', function() { - assert.equal(common.dumper.dump(true), 'true'); - assert.equal(common.dumper.dump(false), 'false'); -}); - -test('The module:module:common/dumper.dump function dumps null values.', function() { - assert.equal(common.dumper.dump(null), 'null'); -}); - -test('The module:module:common/dumper.dump function dumps undefined values.', function() { - assert.equal(common.dumper.dump(undefined), 'undefined'); -}); - -test('The module:module:common/dumper.dump function dumps regex values.', function() { - assert.equal(common.dumper.dump(/^[Ff]oo$/gi), ''); -}); - -test('The module:module:common/dumper.dump function dumps date values.', function() { - assert.equal(common.dumper.dump(new Date('January 1, 1901 GMT')), ''); -}); - -test('The module:module:common/dumper.dump function dumps function values.', function() { - assert.equal(common.dumper.dump(function myFunc(){}), ''); - assert.equal(common.dumper.dump(function(){}), ''); -}); - -test('The module:module:common/dumper.dump function dumps array values.', function() { - var actual = common.dumper.dump(["hello", "world"]), - expected = '[\n "hello",\n "world"\n]'; - - assert.equal(actual, expected); -}); - -test('The module:module:common/dumper.dump function dumps simple object values.', function() { - var actual = common.dumper.dump({hello: "world"}), - expected = '{\n "hello": "world"\n}'; - - assert.equal(actual, expected); -}); - -test('The module:common/dumper.dump function dumps constructed instance values.', function() { - function Foo(name){ this.name = name; } - Foo.prototype.sayHello = function(){} - - var actual = common.dumper.dump(new Foo('hello')), - expected = '{\n "name": "hello"\n}'; - - assert.equal(actual, expected, 'Members of the instance should appear, but not prototype members.'); -}); - -test('The module:common/dumper.dump function dumps complex mixed values.', function() { - function Foo(){} - - var actual = common.dumper.dump( - [undefined, null, new Foo(), 1, true, 'hello\n"world', new Error('oops'), /foo/gi, new Date('December 26, 2010 GMT'), {f: function myFunc(){}, o: {a:1}}] - ), - expected = '[\n undefined,\n null,\n {\n },\n 1,\n true,\n "hello\\n\\"world",\n {\n "message": "oops"\n },\n ,\n ,\n {\n "f": ,\n "o": {\n "a": 1\n }\n }\n]'; - - assert.equal(actual, expected); -}); - -test('The module:common/dumper.dump function doesn\'t crash on circular references.', function() { - var a = {}; - a.b = a; - - var actual = common.dumper.dump(a), - expected = '{\n "b": \n}'; - - assert.equal(actual, expected); -}); \ No newline at end of file diff --git a/test/t/common/events.js b/test/t/common/events.js deleted file mode 100644 index 22685a507..000000000 --- a/test/t/common/events.js +++ /dev/null @@ -1,34 +0,0 @@ -var common = {events: require('common/events')}; - -test('The common/events module is defined.', function() { - assert.notEqual(typeof common.events, 'undefined', 'The common/events module should be defined.'); - assert.equal(typeof common.events, 'object', 'The common/events module should be an object.'); -}); - -test('The common/events module exports a "on" function.', function() { - assert.notEqual(typeof common.events.on, 'undefined', 'The common/events.on member should be defined.'); - assert.equal(typeof common.events.on, 'function', 'The common/events.on member should be a function.'); -}); - -test('The common/events module exports a "fire" function.', function() { - assert.notEqual(typeof common.events.fire, 'undefined', 'The common/events.fire member should be defined.'); - assert.equal(typeof common.events.fire, 'function', 'The common/events.fire member should be a function.'); -}); - -test('The common/events module exports a "removeListener" function.', function() { - assert.notEqual(typeof common.events.removeListener, 'undefined', 'The common/events.removeListener member should be defined.'); - assert.equal(typeof common.events.removeListener, 'function', 'The common/events.removeListener member should be a function.'); -}); - -test('The common/events.on function attaches a handler to an object that can be fired.', function() { - var target = {}, - result = false; - - target.on = common.events.on; - target.fire = common.events.fire; - - target.on('test', function() { result = true; }); - target.fire('test'); - - assert.equal(result, true); -}); diff --git a/test/t/common/query.js b/test/t/common/query.js deleted file mode 100644 index f77e9947f..000000000 --- a/test/t/common/query.js +++ /dev/null @@ -1,16 +0,0 @@ -var common = {query: require('common/query')}; - -test('The common/query module is defined.', function() { - assert.notEqual(typeof common.query, 'undefined', 'The common/query module should be defined.'); - assert.equal(typeof common.query, 'object', 'The common/query module should be an object.'); -}); - -test('The common/query module exports a "toObject" function.', function() { - assert.notEqual(typeof common.query.toObject, 'undefined', 'The common/query.toObject member should be defined.'); - assert.equal(typeof common.query.toObject, 'function', 'The common/query.toObject member should be a function.'); -}); - -test('The common/query.toObject function dumps an object from a query string.', function() { - assert.deepEqual(common.query.toObject('name=Michael+Mathews'), {name: 'Michael Mathews'}); - assert.deepEqual(common.query.toObject('name=Michael+Mathews&city=London'), {name: 'Michael Mathews', city: 'London'}); -}); diff --git a/test/t/common/scanner.js b/test/t/common/scanner.js deleted file mode 100644 index a1983151f..000000000 --- a/test/t/common/scanner.js +++ /dev/null @@ -1,19 +0,0 @@ -var scanner = new (require('jsdoc/src/scanner').Scanner)(), - includeMatch = new RegExp(".+\\.js(doc)?$"), - excludeMatch = new RegExp("(^|\\/)_"), - sourceFiles = scanner.scan([BASEDIR+'/test/cases/src/'], 3, includeMatch, excludeMatch); - -sourceFiles = sourceFiles.map(function($) { - return $.replace(BASEDIR, ''); -}); - -//dump(sourceFiles); exit(); - -test('The scanner should return the correct source files', function() { - - assert.equal(sourceFiles.length, 3); - assert.equal(sourceFiles.indexOf("test/cases/src/one.js") > -1, true); - assert.equal(sourceFiles.indexOf("test/cases/src/two.js") > -1, true); - assert.equal(sourceFiles.indexOf("test/cases/src/dir1/three.js") > -1, true); - -}); diff --git a/test/t/common/util.js b/test/t/common/util.js deleted file mode 100644 index 656df1770..000000000 --- a/test/t/common/util.js +++ /dev/null @@ -1,51 +0,0 @@ -var common = {util: require('common/util')}; - -test('There is a common/util module.', function() { - assert.equal(typeof common.util, 'object', 'The common/util module should be an object.'); -}); - -test('The common/util module exports a "mixin" function.', function() { - assert.equal(typeof common.util.mixin, 'function', 'The module:common/util.mixin member should be a function.'); -}); - -test('The module:common/util.mixin function takes a target object and returns it.', function() { - var target = {a:1}, - returned; - - returned = common.util.mixin(target); // mixing nothing in - - assert.deepEqual(returned, target); -}); - -test('The module:common/util.mixin function can mix a source object into the target.', function() { - var target = {a: 1, b: 2}, - source = {c: 3}; - - common.util.mixin(target, source); // modify the target object - - assert.deepEqual( target, {a: 1, b: 2, c: 3} ); -}); - -test('The module:common/util.mixin function overwrites properties in the target if they exist in the source.', function() { - var target = {a: 1, b: 2}, - source = {b: 3, c: 4}; - - common.util.mixin(target, source); - - assert.equal(target.a, 1, 'Existing properties in the target with unique keys are left alone.'); - assert.equal(target.b, source.b, 'Existing properties in the target with same-named keys are overwritten.'); - assert.equal(target.c, source.c, 'Properties in the source with unique keys are added to the target.'); -}); - -test('The module:common/util.mixin function can mix several source objects into the target.', function() { - var target = {}, - source1 = {a: 1, b: 2}, - source2 = {b: 7, c: 4}, - source3 = {b: 3, d: 5}, - returned; - - returned = common.util.mixin({}, source1, source2, source3); // use a dummy target and the return value to avoid modifying the real target (source1) - - assert.deepEqual( source1, {a: 1, b: 2}, 'The source objects themselves are not modified by being mixed in.'); - assert.deepEqual( returned, {a: 1, b: 3, c: 4, d: 5}, 'The returned object has all the properties of the sources.'); -}); diff --git a/test/t/jsdoc/name.js b/test/t/jsdoc/name.js deleted file mode 100644 index 570d144a1..000000000 --- a/test/t/jsdoc/name.js +++ /dev/null @@ -1,119 +0,0 @@ -var jsdoc = {name: require('jsdoc/name') }; - -test('There is a jsdoc/name module.', function() { - assert.equal(typeof jsdoc.name, 'object'); -}); - -test('The jsdoc/name module exports an shorten function.', function() { - assert.equal(typeof jsdoc.name.shorten, 'function'); -}); - -test('The module:jsdoc/name.shorten function breaks a longname up into the correct memberof, name and scope parts.', function() { - var startName = 'lib.Panel#open', - parts = jsdoc.name.shorten(startName); - - assert.equal(parts.name, 'open', 'The name should be the bit after the last scoping character.'); - assert.equal(parts.memberof, 'lib.Panel', 'The memberof should be the bit before the last scoping character.'); - assert.equal(parts.scope, '#', 'The scope should be the scoping character itself.'); -}); - -test('The module:jsdoc/name.shorten function works on static names.', function() { - var startName = 'elements.selected.getVisible', - parts = jsdoc.name.shorten(startName); - - assert.equal(parts.name, 'getVisible'); - assert.equal(parts.memberof, 'elements.selected'); - assert.equal(parts.scope, '.'); -}); - -test('The module:jsdoc/name.shorten function works on protoyped names.', function() { - var startName = 'Validator.prototype.$element', - parts = jsdoc.name.shorten(startName); - - assert.equal(parts.name, '$element'); - assert.equal(parts.memberof, 'Validator'); - assert.equal(parts.scope, '#'); -}); - -test('The module:jsdoc/name.shorten function works on inner names.', function() { - var startName = 'Button~_onclick', - parts = jsdoc.name.shorten(startName); - - assert.equal(parts.name, '_onclick'); - assert.equal(parts.memberof, 'Button'); - assert.equal(parts.scope, '~'); -}); - -test('The module:jsdoc/name.shorten function works on global names.', function() { - var startName = 'close', - parts = jsdoc.name.shorten(startName); - - assert.equal(parts.name, 'close'); - assert.equal(parts.memberof, '', 'The memberof should be an empty string for global symbols.'); - assert.equal(parts.scope, '', 'The scope should be an empty string for global symbols.'); -}); - -test('The module:jsdoc/name.shorten function works on bracketed stringy names.', function() { - var startName = 'channels["#ops"]#open', - parts = jsdoc.name.shorten(startName); - - assert.equal(parts.name, 'open'); - assert.equal(parts.memberof, 'channels."#ops"', 'Bracketed stringy names should appear as quoted strings.'); - assert.equal(parts.scope, '#'); - - startName = 'channels["#bots"]["log.max"]', - parts = jsdoc.name.shorten(startName); - - assert.equal(parts.name, '"log.max"'); - assert.equal(parts.memberof, 'channels."#bots"'); - assert.equal(parts.scope, '.'); -}); - -test('The module:jsdoc/name.shorten function works on fully stringy names, like "foo.bar".', function() { - var startName = '"foo.bar"', - parts = jsdoc.name.shorten(startName); - - assert.equal(parts.name, '"foo.bar"', 'The name should be the full quoted string.'); - assert.equal(parts.longname, '"foo.bar"', 'The longname should be the full quoted string.'); - assert.equal(parts.memberof, '', 'There should be no memberof, as it is global.'); - assert.equal(parts.scope, '', 'The scope should be as global.'); -}); - -test('The jsdoc/name module exports an applyNamespace function.', function() { - assert.equal(typeof jsdoc.name.applyNamespace, 'function'); -}); - -test('The module:jsdoc/name.applyNamespace function inserts the namespace in the correct place.', function() { - var startName = 'lib.Panel#open', - endName = jsdoc.name.applyNamespace(startName, 'event'); - - assert.equal(endName, 'lib.Panel#event:open', 'The namespace should be inserted only before the name part of the longname.'); - - startName = 'maths/bigint'; - endName = jsdoc.name.applyNamespace(startName, 'module'); - - assert.equal(endName, 'module:maths/bigint', 'The namespace should be inserted before a global name.'); -}); - -test('The module:jsdoc/name.applyNamespace function treats quoted parts of the name as atomic.', function() { - var startName = 'foo."*dont\'t.look~in#here!"', - endName = jsdoc.name.applyNamespace(startName, 'event'); - - assert.equal(endName, 'foo.event:"*dont\'t.look~in#here!"', 'The namespace should be inserted before a quoted shortname.'); -}); - -test('The module:jsdoc/name.applyNamespace function will not add another namespace if one already exists.', function() { - var startName = 'lib.Panel#event:open', - endName = jsdoc.name.applyNamespace(startName, 'event'); - - assert.equal(endName, 'lib.Panel#event:open', 'The namespace should not be inserted twice.'); -}); - -test('The module:jsdoc/name.shorten function finds the variation.', function() { - var startName = 'anim.fadein(2)', - parts = jsdoc.name.shorten(startName); - - assert.equal(parts.variation, '2'); - assert.equal(parts.name, 'fadein'); - assert.equal(parts.longname, 'anim.fadein(2)'); -}); diff --git a/test/t/jsdoc/opts/parser.js b/test/t/jsdoc/opts/parser.js deleted file mode 100644 index fdfe67bbf..000000000 --- a/test/t/jsdoc/opts/parser.js +++ /dev/null @@ -1,37 +0,0 @@ -var opts = require('jsdoc/opts/parser'); - -test('The opts module is defined.', function() { - assert.notEqual(typeof opts, 'undefined', 'The opts module should not be undefined.'); - assert.equal(typeof opts, 'object', 'The opts module should be an object.'); -}); - -test('The opts module exports a "parse" function.', function() { - assert.notEqual(typeof opts.parse, 'undefined', 'The opts.parse method should not be undefined.'); - assert.equal(typeof opts.parse, 'function', 'The opts.parse method should be a function.'); -}); - -test('The opts module exports a "get" function.', function() { - assert.notEqual(typeof opts.get, 'undefined', 'The opts.get method should not be undefined.'); - assert.equal(typeof opts.get, 'function', 'The opts.get method should be a function.'); -}); - -test('The opts.parse function accepts a -t opt.', function() { - opts.parse(['-t', 'mytemplate']); - var r = opts.get(); - - assert.equal(r.template, 'mytemplate', 'The opts.get method should return an object with a set template property.'); -}); - -test('The opts.parse function accepts a -d opt.', function() { - opts.parse(['-d', 'mydestination']); - var r = opts.get(); - - assert.equal(r.destination, 'mydestination', 'The opts.get method should return an object with a set destination property.'); -}); - -test('The opts.parse function accepts a naked opt.', function() { - opts.parse(['myfile1', 'myfile2']); - var r = opts.get(); - - assert.deepEqual(r._, ['myfile1', 'myfile2'], 'The opts.get method should return an object with a set _ property.'); -}); \ No newline at end of file diff --git a/test/t/jsdoc/src/handlers.js b/test/t/jsdoc/src/handlers.js deleted file mode 100644 index 7121d6057..000000000 --- a/test/t/jsdoc/src/handlers.js +++ /dev/null @@ -1,16 +0,0 @@ -(function() { - - var jsdoc = {src: { parser: require('jsdoc/src/parser')}}, - testParser = new jsdoc.src.parser.Parser(); - - require('jsdoc/src/handlers').attachTo(testParser); - - test('A jsdoc comment with a @name and no code is turned into a doclet object.', function() { - var sourceCode = 'javascript:/** @name bar */', - result = testParser.parse(sourceCode); - - assert.equal(result.length, 1); - assert.equal(result[0].name, 'bar'); - }); - -})(); \ No newline at end of file diff --git a/test/t/jsdoc/src/parser.js b/test/t/jsdoc/src/parser.js deleted file mode 100644 index 7efa240ce..000000000 --- a/test/t/jsdoc/src/parser.js +++ /dev/null @@ -1,52 +0,0 @@ -(function() { - - var jsdoc = {src: { parser: require('jsdoc/src/parser')}}; - - test('There is a jsdoc/src/parser module.', function() { - assert.equal(typeof jsdoc.src.parser, 'object'); - }); - - test('The jsdoc/src/parser module has a Parser constructor.', function() { - assert.equal(typeof jsdoc.src.parser.Parser, 'function'); - }); - - test('The module:jsdoc/src/parser.Parser class has a parse function.', function() { - assert.equal(typeof jsdoc.src.parser.Parser.prototype.parse, 'function'); - }); - - test('The jsdoc/src/parser module has a results function.', function() { - assert.equal(typeof jsdoc.src.parser.Parser.prototype.results, 'function'); - }); - - test('The module:jsdoc/src/parser.Parser#parse function fires jsdocCommentFound events when parsing source code containing a jsdoc comment.', function() { - var sourceCode = 'javascript:/** @name bar */', - jsdocCounter = 0, - event = null, - parser = new jsdoc.src.parser.Parser(); - - parser - .on('jsdocCommentFound', function(e) { - jsdocCounter++; - event = e; - }) - .parse(sourceCode); - - assert.equal(jsdocCounter, 1); - - assert.equal(event.comment, '/** @name bar */', 'The full text of the comment is included in the event.'); - }); - - test('The module:jsdoc/src/parser.Parser#parse function fires symbolFound events when parsing source code containing a named symbol.', function() { - var sourceCode = 'javascript:var foo = 1;', - symbolCounter = 0, - parser = new jsdoc.src.parser.Parser(); - - parser - .on('symbolFound', function(e) { - symbolCounter++; - }) - .parse(sourceCode); - - assert.equal(symbolCounter, 1); - }); -})(); \ No newline at end of file From a2bb5358e6dba32d00a56da252fc585245fa59d5 Mon Sep 17 00:00:00 2001 From: Michael Mathews Date: Sat, 7 May 2011 15:14:34 +0100 Subject: [PATCH 02/14] Squashed 'lib/Rhino-Require/' content from commit b34307a git-subtree-dir: lib/Rhino-Require git-subtree-split: b34307ac1534b153df376820a115efa3be76b092 --- README.md | 9 + src/require.js | 253 ++++ test/README.md | 5 + test/lib/jsmock.js | 377 ++++++ test/lib/nodeunit.js | 1762 +++++++++++++++++++++++++++ test/mock/bar/myModuleLib/bar.js | 2 + test/mock/bar/myModuleLib/extras.js | 1 + test/mock/bar/package.json | 10 + test/mock/foo.js | 0 test/mock/zop/index.js | 0 test/node_modules/baz/index.js | 0 test/node_modules/foobar.js | 0 test/run.js | 108 ++ 13 files changed, 2527 insertions(+) create mode 100644 README.md create mode 100644 src/require.js create mode 100644 test/README.md create mode 100644 test/lib/jsmock.js create mode 100644 test/lib/nodeunit.js create mode 100644 test/mock/bar/myModuleLib/bar.js create mode 100644 test/mock/bar/myModuleLib/extras.js create mode 100644 test/mock/bar/package.json create mode 100644 test/mock/foo.js create mode 100644 test/mock/zop/index.js create mode 100644 test/node_modules/baz/index.js create mode 100644 test/node_modules/foobar.js create mode 100644 test/run.js diff --git a/README.md b/README.md new file mode 100644 index 000000000..cd93e4d4c --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +Rhino-Require +==== + +This is require() for rhino. + +A nodejs-compatible implementation of the commonjs require function, implemented +in code compatible with the Mozilla Rhino JavaScript engine. + +Written by Michael Mathews. Licensed as public domain. \ No newline at end of file diff --git a/src/require.js b/src/require.js new file mode 100644 index 000000000..64fe3c4f0 --- /dev/null +++ b/src/require.js @@ -0,0 +1,253 @@ +/* + Rhino-Require is Public Domain + + + The author or authors of this code dedicate any and all copyright interest + in this code to the public domain. We make this dedication for the benefit + of the public at large and to the detriment of our heirs and successors. We + intend this dedication to be an overt act of relinquishment in perpetuity of + all present and future rights to this code under copyright law. + */ + +(function(global) { + + var require = global.require = function(id) { /*debug*///console.log('require('+id+')'); + var moduleContent = '', + moduleUri; + + moduleUri = require.resolve(id); + moduleContent = ''; + + var file = new java.io.File(moduleUri); + try { + var scanner = new java.util.Scanner(file).useDelimiter("\\Z"); + moduleContent = String( scanner.next() ); + } + catch(e) { + throw 'Unable to read file at: '+moduleUri+', '+e; + } + + if (moduleContent) { + try { + var f = new Function('require', 'exports', 'module', moduleContent), + exports = require.cache[moduleUri] || {}, + module = { id: id, uri: moduleUri, exports: exports }; + + + require._root.unshift(moduleUri); + f.call({}, require, exports, module); + require._root.shift(); + } + catch(e) { + throw 'Unable to require source code from "' + moduleUri + '": ' + e.toSource(); + } + + exports = module.exports || exports; + require.cache[id] = exports; + } + else { + throw 'The requested module cannot be returned: no content for id: "' + id + '" in paths: ' + require.paths.join(', '); + } + + return exports; + } + require._root = ['']; + require.paths = []; + require.cache = {}; // cache module exports. Like: {id: exported} + + /** Given a module id, try to find the path to the associated module. + */ + require.resolve = function(id) { + // TODO: 1. load node core modules + + // 2. dot-relative module id, like './foo/bar' + var parts = id.match(/^(\.?\.\/|\/)(.+)$/), + isRelative = false, + isAbsolute = false, + basename = id; + + if (parts) { + isRelative = parts[1] === './' || parts[1] === '../'; + isAbsolute = parts[1] === '/'; + basename = parts[2]; + } + + if (typeof basename !== 'undefined') { + + if (isAbsolute) { + rootedId = id; + } + else { + var root = (isRelative? toDir(require._root[0] || '.') : '.'), + rootedId = (root + '/' + id).replace(/\/[^\/]+\/\.\.\//g, '/').replace(/\/\.\//g, '/'), + uri = ''; + } + + if ( uri = loadAsFile(rootedId) ) { } + else if ( uri = loadAsDir(rootedId) ) { } + else if ( uri = loadNodeModules(rootedId) ) { } + else if ( uri = nodeModulesPaths(rootedId, 'rhino_modules') ) { } + else if ( uri = nodeModulesPaths(rootedId, 'node_modules') ) { } + + if (uri !== '') return toAbsolute(uri); + + throw 'Require Error: Not found.'; + } + } + + /** Given a path, return the base directory of that path. + @example toDir('/foo/bar/somefile.js'); => '/foo/bar' + */ + function toDir(path) { + var file = new java.io.File(path); + + if (file.isDirectory()) { + return path; + } + + var parts = path.split(/[\\\/]/); + parts.pop(); + + return parts.join('/'); + } + + /** Returns true if the given path exists and is a file. + */ + function isFile(path) { + var file = new java.io.File(path); + + if (file.isFile()) { + return true; + } + + return false; + } + + /** Returns true if the given path exists and is a directory. + */ + function isDir(path) { + var file = new java.io.File(path); + + if (file.isDirectory()) { + return true; + } + + return false; + } + + /** Get the path of the current working directory + */ + function getCwd() { + return toDir( ''+new java.io.File('.').getAbsolutePath() ).replace(/\/\.$/, ''); + } + + function toAbsolute(relPath) { + absPath = ''+new java.io.File(relPath).getAbsolutePath(); + absPath = absPath.replace(/\/[^\/]+\/\.\.\//g, '/').replace(/\/\.\//g, '/'); + return absPath; + } + + /** Assume the id is a file, try to find it. + */ + function loadAsFile(id) { + if ( isFile(id) ) { return id; } + + if ( isFile(id+'.js') ) { return id+'.js'; } + + if ( isFile(id+'.node') ) { throw 'Require Error: .node files not supported'; } + } + + /** Assume the id is a directory, try to find a module file within it. + */ + function loadAsDir(id) { + if (!isDir(id)) { + return; + } + // look for the "main" property of the package.json file + if ( isFile(id+'/package.json') ) { + var packageJson = readFileSync(id+'/package.json', 'utf-8'); + eval( 'packageJson = '+ packageJson); + if (packageJson.hasOwnProperty('main')) { + var main = (id + '/' + packageJson.main).replace(/\/\.?\//g, '/'); + return require.resolve(main); + } + } + + if ( isFile(id+'/index.js') ) { + return id+'/index.js'; + } + } + + function loadNodeModules(id) { + var path, + uri; + for (var i = 0, len = require.paths.length; i < len; i++) { + path = require.paths[i]; + if (isDir(path)) { + path = (path + '/' + id).replace(/\/\.?\//g, '/'); + + uri = loadAsFile(path); + if (typeof uri !== 'undefined') { + return uri; + } + + uri = loadAsDir(path); + if (typeof uri !== 'undefined') { + return uri; + } + } + } + } + + function nodeModulesPaths(id, moduleFolder) { + var cwd = getCwd(), + dirs = cwd.split('/'), + dir, + path, + filename, + uri; + + while (dirs.length) { + dir = dirs.join('/'); + path = dir+'/'+moduleFolder; + + if ( isDir(path) ) { + filename = (path+'/'+id).replace(/\/\.?\//g, '/'); + + if ( uri = loadAsFile(filename) ) { + uri = uri.replace(cwd, '.'); + return uri; + } + + if ( uri = loadAsDir(filename) ) { + uri = uri.replace(cwd, '.'); + return uri; + } + } + + dirs.pop(); + } + } + + function readFileSync(filename, encoding, callback) { + if (typeof arguments[1] === 'function') { + encoding = null; + callback = arguments[1]; + } + + encoding = encoding || java.lang.System.getProperty('file.encoding'); + + try { + var content = new java.util.Scanner( + new java.io.File(filename), + encoding + ).useDelimiter("\\Z"); + + return String( content.next() ); + } + catch (e) { + return ''; + } + } + +})(this); \ No newline at end of file diff --git a/test/README.md b/test/README.md new file mode 100644 index 000000000..9d60454f5 --- /dev/null +++ b/test/README.md @@ -0,0 +1,5 @@ +To run the tests, change your current working directory to this test folder. + +Then: + + java -classpath js.jar org.mozilla.javascript.tools.shell.Main run.js diff --git a/test/lib/jsmock.js b/test/lib/jsmock.js new file mode 100644 index 000000000..3e78f5552 --- /dev/null +++ b/test/lib/jsmock.js @@ -0,0 +1,377 @@ +/* +* JSMock 1.2.2, a mock object library for JavaScript +* Copyright (C) 2006 Justin DeWind +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 2.1 of the License, or (at your option) any later version. +* +* This library 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 +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +JSMock = { + extend: function(object) { + var mockControl = new MockControl(); + object.createMock = function(objectToMock) {return mockControl.createMock(objectToMock)}; + object.resetMocks = function() {mockControl.reset()}; + object.verifyMocks = function() {mockControl.verify()}; + + if(!object.tearDown) { + object.tearDown = function() { + object.verifyMocks(); + } + } + else if(object.tearDown.constructor == Function) { + object.__oldTearDown__ = object.tearDown; + object.tearDown = function() { + object.__oldTearDown__(); + object.verifyMocks(); + } + } + } +} + +function MockControl() { + this.__expectationMatcher = new ExpectationMatcher(); + this.__lastMock = null; + this.__lastCallName = null; +} + +MockControl.prototype = { + + createMock: function(objectToMock) { + var mock = { calls: [], expects: function() {this.__recording = true; return this}, __recording: false}; + mock.expect = mock.expects; + + if(objectToMock != null) { + + if( typeof(objectToMock) == 'function' ) { + this.__createMethods(objectToMock, mock); + this.__createMethods(new objectToMock(), mock); + } + else if( typeof(objectToMock) == 'object') { + this.__createMethods(objectToMock, mock); + } + else { + throw new Error("Cannot mock out a " + typeof(objectToMock)); + } + + } + + var self = this; + mock.addMockMethod = function(method) { self.__createMethod(self, mock, method); } + + return mock; + }, + + andReturn: function(returnValue) { + this.__verifyLastMockNotNull("Cannot set return value without an expectation"); + this.__initializeReturnExpectationForMock(); + this.__lastMock.calls[this.__lastCallName].push( function() { return returnValue; }); + }, + + andThrow: function(throwMsg) { + this.__verifyLastMockNotNull("Cannot throw error without an expectation"); + this.__initializeReturnExpectationForMock(); + this.__lastMock.calls[this.__lastCallName].push( function() { throw new Error(throwMsg); }); + }, + + andStub: function(block) { + this.__verifyLastMockNotNull("Cannot stub without an expectation"); + if( typeof(block) != 'function') { + throw new Error("Stub must be a function"); + } + this.__initializeReturnExpectationForMock(); + this.__lastMock.calls[this.__lastCallName].push( function() { return block.apply(this, arguments); }); + }, + + reset: function() { + this.__expectationMatcher.reset(); + }, + + verify: function() { + if(!this.__expectationMatcher.matches()) + { + discrepancy = this.__expectationMatcher.discrepancy(); + message = discrepancy.message; + method = discrepancy.behavior.method + formattedArgs = ArgumentFormatter.format(discrepancy.behavior.methodArguments); + this.__expectationMatcher.reset(); + throw new Error(message + ": " + method + "(" + formattedArgs + ")"); + } + else { + this.__expectationMatcher.reset(); + } + + }, + + __createMethods: function(object, mock) { + for( property in object ) { + if( this.__isPublicMethod(object, property) ) { + this.__createMethod( this, mock, property ); + } + } + }, + + __createMethod: function(control, mock, method) { + mock[method] = + function() { + if( mock.__recording ) { + control.__lastMock = mock; + control.__lastCallName = method; + control.__expectationMatcher.addExpectedMethodCall( mock, method, arguments ); + mock.__recording = false; + return control; + } + else { + control.__expectationMatcher.addActualMethodCall( mock, method, arguments ); + if( mock.calls[method] != null) { + returnValue = mock.calls[method].shift(); + if( typeof(returnValue) == 'function') { + return returnValue.apply(this, arguments); + } + } + } + } + }, + + __isPublicMethod: function(object, property) { + try { + return typeof(object[property]) == 'function' && property.charAt(0) != "_"; + } catch(e) { + return false; + } + }, + + __verifyLastMockNotNull: function(throwMsg) { + if(this.__lastMock == null) { + throw new Error(throwMsg); + } + }, + + __initializeReturnExpectationForMock: function() { + if(typeof(this.__lastMock.calls[this.__lastCallName]) == 'undefined') { + this.__lastMock.calls[this.__lastCallName] = []; + } + } +} + +function ExpectationMatcher() { + this.__expectationBehaviorList = []; + this.__actualBehaviorList = []; + this.__discrepancy = null; + +} + +ExpectationMatcher.prototype = { + addExpectedMethodCall: function(caller, method, methodArguments ) { + this.__expectationBehaviorList.push(new InvocationBehavior(caller, method, methodArguments)); + }, + + addActualMethodCall: function(caller, method, methodArguments ) { + this.__actualBehaviorList.push(new InvocationBehavior(caller, method, methodArguments)); + }, + + matches: function() { + var self = this; + var matches = true; + + this.__expectationBehaviorList.eachIndexForJsMock(function(index, expectedBehavior) { + var actualBehavior = (self.__actualBehaviorList.length > index) ? self.__actualBehaviorList[index] : null; + + if(matches) { + if( actualBehavior === null ) { + self.__discrepancy = new Discrepancy("Expected function not called", expectedBehavior); + matches = false; + } + else if( expectedBehavior.method != actualBehavior.method ) { + self.__discrepancy = new Discrepancy("Surprise call", actualBehavior); + matches = false; + } + else if( expectedBehavior.caller != actualBehavior.caller ) { + self.__discrepancy = new Discrepancy("Surprise call from unexpected caller", actualBehavior); + matches = false; + } + else if( !self.__matchArguments(expectedBehavior.methodArguments, actualBehavior.methodArguments) ) { + self.__discrepancy = new Discrepancy("Unexpected Arguments", actualBehavior); + matches = false; + } + } + }); + + if( this.__actualBehaviorList.length > this.__expectationBehaviorList.length && matches ) { + this.__discrepancy = new Discrepancy("Surprise call", this.__actualBehaviorList[this.__expectationBehaviorList.length]); + matches = false + } + + return matches; + }, + + reset: function() { + this.__expectationBehaviorList = []; + this.__actualBehaviorList = []; + this.__discrepancy = null; + }, + + discrepancy: function() { + return this.__discrepancy; + }, + + __matchArguments: function(expectedArgs, actualArgs) { + var expectedArray = this.__convertArgumentsToArray(expectedArgs); + var actualArray = this.__convertArgumentsToArray(actualArgs); + return ArgumentMatcher.matches(expectedArray, actualArray); + }, + + __convertArgumentsToArray: function(args) { + var convertedArguments = []; + + for(var i = 0; i < args.length; i++) { + convertedArguments[i] = args[i]; + } + + return convertedArguments; + } +} + +function InvocationBehavior(caller, method, methodArguments) { + this.caller = caller; + this.method = method; + this.methodArguments = methodArguments; +} + +function TypeOf(type) { + if(typeof(type) != 'function') + throw new Error("Can only take constructors"); + + this.type = type; +} + +TypeOf.isA = function(type) { return new TypeOf(type); }; + +ArgumentMatcher = { + + matches: function(expected, actual) { + return this.__delegateMatching(expected, actual); + }, + + __delegateMatching: function(expected, actual) { + if( expected == null ) { + return this.__match( expected, actual ); + } + else if( expected.constructor == TypeOf ) { + return this.__match(expected.type, actual.constructor); + } + else if( expected.constructor == Array ) { + return this.__matchArrays(expected, actual); + } + else { + return this.__match(expected, actual); + } + }, + + __match: function(expected, actual) { + return ( expected == actual ); + }, + + __matchArrays: function(expected, actual) { + if ( actual == null) + return false; + + if( actual.constructor != Array) + return false; + + if( expected.length != actual.length ) + return false; + + for(var i = 0; i < expected.length; i++ ) { + if( !this.__delegateMatching(expected[i], actual[i]) ) + return false; + } + + return true; + } +} + +function Discrepancy(message, behavior) { + if(behavior.constructor != InvocationBehavior) + throw new Error("The behavior can only be an InvocationBehavior object"); + + this.message = message; + this.behavior = behavior; +} + +ArgumentFormatter = { + + format: function(args) { + var formattedArgs = ""; + for(var i = 0; i < args.length; i++) { + if( args[i] == null ) { + formattedArgs += ( formattedArgs == "" ) ? "null" : ", " + "null"; + } + else if( args[i].constructor == TypeOf || args[i].constructor == Function) { + var func = ( args[i].constructor == TypeOf ) ? args[i].type : args[i]; + formattedArgs += ( formattedArgs == "" ) ? this.__formatFunction(func) : ", " + this.__formatFunction(func); + } + else if( typeof(args[i]) == "string" ) { + formattedArgs += ( formattedArgs == "" ) ? "\"" + args[i].toString() + "\"" : ", \"" + args[i].toString() + "\"" + } + else if( args[i].constructor == Array ) { + formattedArgs += ( formattedArgs == "" ) ? "[" + this.format(args[i]) + "]" : ", [" + this.format(args[i]) + "]"; + } + else { + formattedArgs += ( formattedArgs == "" ) ? args[i].toString() : ", " + args[i].toString(); + } + } + return formattedArgs; + }, + + __formatFunction: function(func) { + // Manual checking is done for internal/native functions + // since Safari will not display them correctly + // for the intended regex parsing. + + if(func == Array) { + return "Array"; + } else if(func == Date) { + return "Date"; + } else if(func == Object) { + return "Object"; + } else if(func == String) { + return "String"; + } else if(func == Function) { + return "Function"; + } else if(func == RegExp) { + return "RegExp"; + } else if(func == Error) { + return "Error"; + } else if(func == Number) { + return "Number"; + } else if(func == Boolean) { + return "Boolean"; + } + var formattedFunc = func.toString().match(/function (\w+)/); + + return ( formattedFunc == null ) ? "{{Closure}}" : formattedFunc[1]; + } + +} + +/* Helpers */ + +// Implemented each method with a unique name to avoid conflicting +// with other libraries that implement it. +Array.prototype.eachIndexForJsMock = function(block) { + for(var index = 0; index < this.length; index++) + { + block(index, this[index]); + } +} diff --git a/test/lib/nodeunit.js b/test/lib/nodeunit.js new file mode 100644 index 000000000..f1b1e467f --- /dev/null +++ b/test/lib/nodeunit.js @@ -0,0 +1,1762 @@ +/*! + * Nodeunit + * https://github.com/caolan/nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + * + * json2.js + * http://www.JSON.org/json2.js + * Public Domain. + * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + */ +nodeunit = (function(){ +/* + http://www.JSON.org/json2.js + 2010-11-17 + + Public Domain. + + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + + See http://www.JSON.org/js.html + + + This code should be minified before deployment. + See http://javascript.crockford.com/jsmin.html + + USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO + NOT CONTROL. + + + This file creates a global JSON object containing two methods: stringify + and parse. + + JSON.stringify(value, replacer, space) + value any JavaScript value, usually an object or array. + + replacer an optional parameter that determines how object + values are stringified for objects. It can be a + function or an array of strings. + + space an optional parameter that specifies the indentation + of nested structures. If it is omitted, the text will + be packed without extra whitespace. If it is a number, + it will specify the number of spaces to indent at each + level. If it is a string (such as '\t' or ' '), + it contains the characters used to indent at each level. + + This method produces a JSON text from a JavaScript value. + + When an object value is found, if the object contains a toJSON + method, its toJSON method will be called and the result will be + stringified. A toJSON method does not serialize: it returns the + value represented by the name/value pair that should be serialized, + or undefined if nothing should be serialized. The toJSON method + will be passed the key associated with the value, and this will be + bound to the value + + For example, this would serialize Dates as ISO strings. + + Date.prototype.toJSON = function (key) { + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + + You can provide an optional replacer method. It will be passed the + key and value of each member, with this bound to the containing + object. The value that is returned from your method will be + serialized. If your method returns undefined, then the member will + be excluded from the serialization. + + If the replacer parameter is an array of strings, then it will be + used to select the members to be serialized. It filters the results + such that only members with keys listed in the replacer array are + stringified. + + Values that do not have JSON representations, such as undefined or + functions, will not be serialized. Such values in objects will be + dropped; in arrays they will be replaced with null. You can use + a replacer function to replace those with JSON values. + JSON.stringify(undefined) returns undefined. + + The optional space parameter produces a stringification of the + value that is filled with line breaks and indentation to make it + easier to read. + + If the space parameter is a non-empty string, then that string will + be used for indentation. If the space parameter is a number, then + the indentation will be that many spaces. + + Example: + + text = JSON.stringify(['e', {pluribus: 'unum'}]); + // text is '["e",{"pluribus":"unum"}]' + + + text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); + // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' + + text = JSON.stringify([new Date()], function (key, value) { + return this[key] instanceof Date ? + 'Date(' + this[key] + ')' : value; + }); + // text is '["Date(---current time---)"]' + + + JSON.parse(text, reviver) + This method parses a JSON text to produce an object or array. + It can throw a SyntaxError exception. + + The optional reviver parameter is a function that can filter and + transform the results. It receives each of the keys and values, + and its return value is used instead of the original value. + If it returns what it received, then the structure is not modified. + If it returns undefined then the member is deleted. + + Example: + + // Parse the text. Values that look like ISO date strings will + // be converted to Date objects. + + myData = JSON.parse(text, function (key, value) { + var a; + if (typeof value === 'string') { + a = +/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); + if (a) { + return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], + +a[5], +a[6])); + } + } + return value; + }); + + myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { + var d; + if (typeof value === 'string' && + value.slice(0, 5) === 'Date(' && + value.slice(-1) === ')') { + d = new Date(value.slice(5, -1)); + if (d) { + return d; + } + } + return value; + }); + + + This is a reference implementation. You are free to copy, modify, or + redistribute. +*/ + +/*jslint evil: true, strict: false, regexp: false */ + +/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, + call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, + getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, + lastIndex, length, parse, prototype, push, replace, slice, stringify, + test, toJSON, toString, valueOf +*/ + + +// Create a JSON object only if one does not already exist. We create the +// methods in a closure to avoid creating global variables. + +if (!this.JSON) { + this.JSON = {}; +} + +(function () { + "use strict"; + + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + if (typeof Date.prototype.toJSON !== 'function') { + + Date.prototype.toJSON = function (key) { + + return isFinite(this.valueOf()) ? + this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z' : null; + }; + + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + + + function quote(string) { + +// If the string contains no control characters, no quote characters, and no +// backslash characters, then we can safely slap some quotes around it. +// Otherwise we must also replace the offending characters with safe escape +// sequences. + + escapable.lastIndex = 0; + return escapable.test(string) ? + '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : + '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : + '"' + string + '"'; + } + + + function str(key, holder) { + +// Produce a string from holder[key]. + + var i, // The loop counter. + k, // The member key. + v, // The member value. + length, + mind = gap, + partial, + value = holder[key]; + +// If the value has a toJSON method, call it to obtain a replacement value. + + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + +// If we were called with a replacer function, then call the replacer to +// obtain a replacement value. + + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + +// What happens next depends on the value's type. + + switch (typeof value) { + case 'string': + return quote(value); + + case 'number': + +// JSON numbers must be finite. Encode non-finite numbers as null. + + return isFinite(value) ? String(value) : 'null'; + + case 'boolean': + case 'null': + +// If the value is a boolean or null, convert it to a string. Note: +// typeof null does not produce 'null'. The case is included here in +// the remote chance that this gets fixed someday. + + return String(value); + +// If the type is 'object', we might be dealing with an object or an array or +// null. + + case 'object': + +// Due to a specification blunder in ECMAScript, typeof null is 'object', +// so watch out for that case. + + if (!value) { + return 'null'; + } + +// Make an array to hold the partial results of stringifying this object value. + + gap += indent; + partial = []; + +// Is the value an array? + + if (Object.prototype.toString.apply(value) === '[object Array]') { + +// The value is an array. Stringify every element. Use null as a placeholder +// for non-JSON values. + + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + +// Join all of the elements together, separated with commas, and wrap them in +// brackets. + + v = partial.length === 0 ? '[]' : + gap ? '[\n' + gap + + partial.join(',\n' + gap) + '\n' + + mind + ']' : + '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + +// If the replacer is an array, use it to select the members to be stringified. + + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + k = rep[i]; + if (typeof k === 'string') { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + +// Otherwise, iterate through all of the keys in the object. + + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + +// Join all of the member texts together, separated with commas, +// and wrap them in braces. + + v = partial.length === 0 ? '{}' : + gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + +// If the JSON object does not yet have a stringify method, give it one. + + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + +// The stringify method takes a value and an optional replacer, and an optional +// space parameter, and returns a JSON text. The replacer can be a function +// that can replace values, or an array of strings that will select the keys. +// A default replacer method can be provided. Use of the space parameter can +// produce text that is more easily readable. + + var i; + gap = ''; + indent = ''; + +// If the space parameter is a number, make an indent string containing that +// many spaces. + + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + +// If the space parameter is a string, it will be used as the indent string. + + } else if (typeof space === 'string') { + indent = space; + } + +// If there is a replacer, it must be a function or an array. +// Otherwise, throw an error. + + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + +// Make a fake root object containing our value under the key of ''. +// Return the result of stringifying the value. + + return str('', {'': value}); + }; + } + + +// If the JSON object does not yet have a parse method, give it one. + + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + +// The parse method takes a text and an optional reviver function, and returns +// a JavaScript value if the text is a valid JSON text. + + var j; + + function walk(holder, key) { + +// The walk method is used to recursively walk the resulting structure so +// that modifications can be made. + + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + + +// Parsing happens in four stages. In the first stage, we replace certain +// Unicode characters with escape sequences. JavaScript handles many characters +// incorrectly, either silently deleting them, or treating them as line endings. + + text = String(text); + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + +// In the second stage, we run the text against regular expressions that look +// for non-JSON patterns. We are especially concerned with '()' and 'new' +// because they can cause invocation, and '=' because it can cause mutation. +// But just to be safe, we want to reject all unexpected forms. + +// We split the second stage into 4 regexp operations in order to work around +// crippling inefficiencies in IE's and Safari's regexp engines. First we +// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we +// replace all simple value tokens with ']' characters. Third, we delete all +// open brackets that follow a colon or comma or that begin the text. Finally, +// we look to see that the remaining characters are only whitespace or ']' or +// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. + + if (/^[\],:{}\s]*$/ +.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') +.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') +.replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + +// In the third stage we use the eval function to compile the text into a +// JavaScript structure. The '{' operator is subject to a syntactic ambiguity +// in JavaScript: it can begin a block or an object literal. We wrap the text +// in parens to eliminate the ambiguity. + + j = eval('(' + text + ')'); + +// In the optional fourth stage, we recursively walk the new structure, passing +// each name/value pair to a reviver function for possible transformation. + + return typeof reviver === 'function' ? + walk({'': j}, '') : j; + } + +// If the text is not JSON parseable, then a SyntaxError is thrown. + + throw new SyntaxError('JSON.parse'); + }; + } +}()); +var assert = {}; +var types = {}; +var core = {}; +var nodeunit = {}; +var reporter = {}; +(function(){ + + var async = {}; + + // global on the server, window in the browser + var root = this; + var previous_async = root.async; + + if(typeof module !== 'undefined' && module.exports) module.exports = async; + else root.async = async; + + async.noConflict = function(){ + root.async = previous_async; + return async; + }; + + //// cross-browser compatiblity functions //// + + var _forEach = function(arr, iterator){ + if(arr.forEach) return arr.forEach(iterator); + for(var i=0; i b ? 1 : 0; + }), function(x){return x.value;})); + }) + }; + + async.auto = function(tasks, callback){ + callback = callback || function(){}; + var keys = _keys(tasks); + if(!keys.length) return callback(null); + + var completed = []; + + var listeners = []; + var addListener = function(fn){ + listeners.unshift(fn); + }; + var removeListener = function(fn){ + for(var i=0; i +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the 'Software'), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +var pSlice = Array.prototype.slice; + +// 1. The assert module provides functions that throw +// AssertionError's when particular conditions are not met. The +// assert module must conform to the following interface. + +var assert = exports; + +// 2. The AssertionError is defined in assert. +// new assert.AssertionError({message: message, actual: actual, expected: expected}) + +assert.AssertionError = function AssertionError (options) { + this.name = "AssertionError"; + this.message = options.message; + this.actual = options.actual; + this.expected = options.expected; + this.operator = options.operator; + var stackStartFunction = options.stackStartFunction || fail; + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, stackStartFunction); + } +}; +// code from util.inherits in node +assert.AssertionError.super_ = Error; + + +// EDITED FOR BROWSER COMPATIBILITY: replaced Object.create call +// TODO: test what effect this may have +var ctor = function () { this.constructor = assert.AssertionError; }; +ctor.prototype = Error.prototype; +assert.AssertionError.prototype = new ctor(); + + +assert.AssertionError.prototype.toString = function() { + if (this.message) { + return [this.name+":", this.message].join(' '); + } else { + return [ this.name+":" + , JSON.stringify(this.expected ) + , this.operator + , JSON.stringify(this.actual) + ].join(" "); + } +}; + +// assert.AssertionError instanceof Error + +assert.AssertionError.__proto__ = Error.prototype; + +// At present only the three keys mentioned above are used and +// understood by the spec. Implementations or sub modules can pass +// other keys to the AssertionError's constructor - they will be +// ignored. + +// 3. All of the following functions must throw an AssertionError +// when a corresponding condition is not met, with a message that +// may be undefined if not provided. All assertion methods provide +// both the actual and expected values to the assertion error for +// display purposes. + +function fail(actual, expected, message, operator, stackStartFunction) { + throw new assert.AssertionError({ + message: message, + actual: actual, + expected: expected, + operator: operator, + stackStartFunction: stackStartFunction + }); +} + +// EXTENSION! allows for well behaved errors defined elsewhere. +assert.fail = fail; + +// 4. Pure assertion tests whether a value is truthy, as determined +// by !!guard. +// assert.ok(guard, message_opt); +// This statement is equivalent to assert.equal(true, guard, +// message_opt);. To test strictly for the value true, use +// assert.strictEqual(true, guard, message_opt);. + +assert.ok = function ok(value, message) { + if (!!!value) fail(value, true, message, "==", assert.ok); +}; + +// 5. The equality assertion tests shallow, coercive equality with +// ==. +// assert.equal(actual, expected, message_opt); + +assert.equal = function equal(actual, expected, message) { + if (actual != expected) fail(actual, expected, message, "==", assert.equal); +}; + +// 6. The non-equality assertion tests for whether two objects are not equal +// with != assert.notEqual(actual, expected, message_opt); + +assert.notEqual = function notEqual(actual, expected, message) { + if (actual == expected) { + fail(actual, expected, message, "!=", assert.notEqual); + } +}; + +// 7. The equivalence assertion tests a deep equality relation. +// assert.deepEqual(actual, expected, message_opt); + +assert.deepEqual = function deepEqual(actual, expected, message) { + if (!_deepEqual(actual, expected)) { + fail(actual, expected, message, "deepEqual", assert.deepEqual); + } +}; + +function _deepEqual(actual, expected) { + // 7.1. All identical values are equivalent, as determined by ===. + if (actual === expected) { + return true; + + } else if (Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) { + if (actual.length != expected.length) return false; + + for (var i = 0; i < actual.length; i++) { + if (actual[i] !== expected[i]) return false; + } + + return true; + + // 7.2. If the expected value is a Date object, the actual value is + // equivalent if it is also a Date object that refers to the same time. + } else if (actual instanceof Date && expected instanceof Date) { + return actual.getTime() === expected.getTime(); + + // 7.3. Other pairs that do not both pass typeof value == "object", + // equivalence is determined by ==. + } else if (typeof actual != 'object' && typeof expected != 'object') { + return actual == expected; + + // 7.4. For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical "prototype" property. Note: this + // accounts for both named and indexed properties on Arrays. + } else { + return objEquiv(actual, expected); + } +} + +function isUndefinedOrNull (value) { + return value === null || value === undefined; +} + +function isArguments (object) { + return Object.prototype.toString.call(object) == '[object Arguments]'; +} + +function objEquiv (a, b) { + if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) + return false; + // an identical "prototype" property. + if (a.prototype !== b.prototype) return false; + //~~~I've managed to break Object.keys through screwy arguments passing. + // Converting to array solves the problem. + if (isArguments(a)) { + if (!isArguments(b)) { + return false; + } + a = pSlice.call(a); + b = pSlice.call(b); + return _deepEqual(a, b); + } + try{ + var ka = _keys(a), + kb = _keys(b), + key, i; + } catch (e) {//happens when one is a string literal and the other isn't + return false; + } + // having the same number of owned properties (keys incorporates hasOwnProperty) + if (ka.length != kb.length) + return false; + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) + return false; + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!_deepEqual(a[key], b[key] )) + return false; + } + return true; +} + +// 8. The non-equivalence assertion tests for any deep inequality. +// assert.notDeepEqual(actual, expected, message_opt); + +assert.notDeepEqual = function notDeepEqual(actual, expected, message) { + if (_deepEqual(actual, expected)) { + fail(actual, expected, message, "notDeepEqual", assert.notDeepEqual); + } +}; + +// 9. The strict equality assertion tests strict equality, as determined by ===. +// assert.strictEqual(actual, expected, message_opt); + +assert.strictEqual = function strictEqual(actual, expected, message) { + if (actual !== expected) { + fail(actual, expected, message, "===", assert.strictEqual); + } +}; + +// 10. The strict non-equality assertion tests for strict inequality, as determined by !==. +// assert.notStrictEqual(actual, expected, message_opt); + +assert.notStrictEqual = function notStrictEqual(actual, expected, message) { + if (actual === expected) { + fail(actual, expected, message, "!==", assert.notStrictEqual); + } +}; + +function _throws (shouldThrow, block, err, message) { + var exception = null, + threw = false, + typematters = true; + + message = message || ""; + + //handle optional arguments + if (arguments.length == 3) { + if (typeof(err) == "string") { + message = err; + typematters = false; + } + } else if (arguments.length == 2) { + typematters = false; + } + + try { + block(); + } catch (e) { + threw = true; + exception = e; + } + + if (shouldThrow && !threw) { + fail( "Missing expected exception" + + (err && err.name ? " ("+err.name+")." : '.') + + (message ? " " + message : "") + ); + } + if (!shouldThrow && threw && typematters && exception instanceof err) { + fail( "Got unwanted exception" + + (err && err.name ? " ("+err.name+")." : '.') + + (message ? " " + message : "") + ); + } + if ((shouldThrow && threw && typematters && !(exception instanceof err)) || + (!shouldThrow && threw)) { + throw exception; + } +}; + +// 11. Expected to throw an error: +// assert.throws(block, Error_opt, message_opt); + +assert['throws'] = function(block, /*optional*/error, /*optional*/message) { + _throws.apply(this, [true].concat(pSlice.call(arguments))); +}; + +// EXTENSION! This is annoying to write outside this module. +assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) { + _throws.apply(this, [false].concat(pSlice.call(arguments))); +}; + +assert.ifError = function (err) { if (err) {throw err;}}; +})(assert); +(function(exports){ +/*! + * Nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + * + * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS! + * Only code on that line will be removed, its mostly to avoid requiring code + * that is node specific + */ + +/** + * Module dependencies + */ + + + +/** + * Creates assertion objects representing the result of an assert call. + * Accepts an object or AssertionError as its argument. + * + * @param {object} obj + * @api public + */ + +exports.assertion = function (obj) { + return { + method: obj.method || '', + message: obj.message || (obj.error && obj.error.message) || '', + error: obj.error, + passed: function () { + return !this.error; + }, + failed: function () { + return Boolean(this.error); + } + }; +}; + +/** + * Creates an assertion list object representing a group of assertions. + * Accepts an array of assertion objects. + * + * @param {Array} arr + * @param {Number} duration + * @api public + */ + +exports.assertionList = function (arr, duration) { + var that = arr || []; + that.failures = function () { + var failures = 0; + for (var i=0; i'; +}; + + +/** + * Run all tests within each module, reporting the results + * + * @param {Array} files + * @api public + */ + +exports.run = function (modules, options) { + var start = new Date().getTime(); + exports.addStyles(); + + var html = ''; + nodeunit.runModules(modules, { + moduleStart: function (name) { + html += '

    ' + name + '

    '; + html += '
      '; + }, + testDone: function (name, assertions) { + if (!assertions.failures()) { + html += '
    1. ' + name + '
    2. '; + } + else { + html += '
    3. ' + name; + for (var i=0; i'; + } + html += '
      ';
      +                        html += a.error.stack || a.error;
      +                        html += '
      '; + } + }; + html += '
    4. '; + } + }, + moduleDone: function () { + html += '
    '; + }, + done: function (assertions) { + var end = new Date().getTime(); + var duration = end - start; + if (assertions.failures()) { + html += '

    FAILURES: ' + assertions.failures() + + '/' + assertions.length + ' assertions failed (' + + assertions.duration + 'ms)

    '; + } + else { + html += '

    OK: ' + assertions.length + + ' assertions (' + assertions.duration + 'ms)

    '; + } + if (typeof document === 'undefined' && typeof print !== 'undefined') { + return print( html.replace(/
  • /g, '\033[1;032m√ \033[0m').replace(/
  • /g, '\033[1;031mX \033[0m').replace(//g, "\n").replace(/<\/h\d>/g, "\n").replace(/
    /g, "\n ").replace(/<\/(li|div)>/g, "\n").replace(/<[^>]+?>/g, '') ); + } + document.body.innerHTML += html; + } + }); +}; +})(reporter); +nodeunit = core; +nodeunit.assert = assert; +nodeunit.reporter = reporter; +nodeunit.run = reporter.run; +return nodeunit; })(); \ No newline at end of file diff --git a/test/mock/bar/myModuleLib/bar.js b/test/mock/bar/myModuleLib/bar.js new file mode 100644 index 000000000..7875591b5 --- /dev/null +++ b/test/mock/bar/myModuleLib/bar.js @@ -0,0 +1,2 @@ +exports.name = 'bar'; +exports.extras = require('./extras'); \ No newline at end of file diff --git a/test/mock/bar/myModuleLib/extras.js b/test/mock/bar/myModuleLib/extras.js new file mode 100644 index 000000000..9d62c3e9a --- /dev/null +++ b/test/mock/bar/myModuleLib/extras.js @@ -0,0 +1 @@ +exports.name = 'extras'; \ No newline at end of file diff --git a/test/mock/bar/package.json b/test/mock/bar/package.json new file mode 100644 index 000000000..6ab8a81f4 --- /dev/null +++ b/test/mock/bar/package.json @@ -0,0 +1,10 @@ +{ + "name": "my-test-package", + "version": "1.2.3", + "description": "Blah blah blah", + "keywords": [ + "package", + "example" + ], + "main": "./myModuleLib/bar.js" +} \ No newline at end of file diff --git a/test/mock/foo.js b/test/mock/foo.js new file mode 100644 index 000000000..e69de29bb diff --git a/test/mock/zop/index.js b/test/mock/zop/index.js new file mode 100644 index 000000000..e69de29bb diff --git a/test/node_modules/baz/index.js b/test/node_modules/baz/index.js new file mode 100644 index 000000000..e69de29bb diff --git a/test/node_modules/foobar.js b/test/node_modules/foobar.js new file mode 100644 index 000000000..e69de29bb diff --git a/test/run.js b/test/run.js new file mode 100644 index 000000000..0ceb994f0 --- /dev/null +++ b/test/run.js @@ -0,0 +1,108 @@ +// USAGE: java -classpath ~/Scripts/js.jar org.mozilla.javascript.tools.shell.Main test.js + +load('./lib/nodeunit.js'); +//load('lib/jsmock.js'); + +load('../src/require.js'); + +module = typeof module === 'undefined'? {} : module; +var test = module.exports = { + 'Basic tests.': { + 'The require function should be defined.': function(t) { + t.expect(1); + t.equal( typeof require, 'function' ); + t.done(); + } + }, + 'The require.resolve function.': { + 'The require.resolve function should be defined.': function(t) { + t.expect(1); + t.equal( typeof require.resolve, 'function' ); + t.done(); + }, + 'When an id starts with "./" it should resolve relative to the current working directory.': function(t) { + t.expect(1); + t.equal( require.resolve( './mock/foo'), toAbsolute('./mock/foo.js') ); + t.done(); + }, + 'When an id starts with "./" it should resolve relative to the current running module.': function(t) { + t.expect(1); + require._root.unshift('./mock/bar.js'); + t.equal( require.resolve('./foo'), toAbsolute('./mock/foo.js') ); + require._root.shift(); + t.done(); + }, + 'When an id does not start with "./" it should resolve relative to the cwd.': function(t) { + t.expect(1); + require._root.unshift('blah/one/two.js'); + t.equal( require.resolve('mock/foo'), toAbsolute('./mock/foo.js') ); + require._root.shift(); + t.done(); + } + }, + 'Resolve from package.json.': { + 'The require.resolve function should use the "main" property from package.json.': function(t) { + t.expect(1); + t.equal( require.resolve('./mock/bar'), toAbsolute('./mock/bar/myModuleLib/bar.js') ); + t.done(); + } + }, + 'Resolve from index file.': { + 'The require.resolve function should use the "index.js" file.': function(t) { + t.expect(1); + t.equal( require.resolve('./mock/zop'), toAbsolute('./mock/zop/index.js') ); + t.done(); + } + }, + 'Resolve from require.paths.': { + 'The require.resolve function should use the require.paths values.': function(t) { + t.expect(1); + require.paths.push('./mock'); + t.equal( require.resolve('foo'), toAbsolute('./mock/foo.js') ); + require.paths.pop(); + + t.done(); + } + }, + 'Resolve from node_modules.': { + 'The require.resolve function should use the node_modules dir.': function(t) { + t.expect(1); + t.equal( require.resolve('foobar'), toAbsolute('./node_modules/foobar.js') ); + t.done(); + }, + 'The require.resolve function should look for index in node_modules dir.': function(t) { + t.expect(1); + t.equal( require.resolve('baz'), toAbsolute('./node_modules/baz/index.js') ); + t.done(); + } + }, + 'Require from package.json.': { + 'The required module should be returned when it is listed in package.json.': function(t) { + t.expect(3); + var bar = require('mock/bar'); + t.equal( typeof bar, 'object' ); + t.equal( bar.name, 'bar' ); + t.equal( bar.extras.name, 'extras' ); + t.done(); + }, + 'The required dot-relative module should be returned when it is listed in package.json.': function(t) { + t.expect(2); + var bar = require('./mock/bar'); + t.equal( typeof bar, 'object' ); + t.equal( bar.name, 'bar' ); + t.done(); + } + } +}; + +var cwd = (typeof __dirname === 'undefined')? ''+new java.io.File('.').getAbsolutePath() : __dirname; +function toAbsolute(relPath) { + if ( /^\//.test(relPath) ) return relPath; + + relPath = relPath.replace(/^\.\//, ''); + var absPath = cwd + '/' + relPath; + absPath = absPath.replace(/\/[^\/]+\/\.\.\//g, '/').replace(/\/\.\//g, '/'); + return absPath; +} + +nodeunit.run(test); \ No newline at end of file From 618e579b8c1a75fae8ff1a56a110efa3b0ff6b98 Mon Sep 17 00:00:00 2001 From: Michael Mathews Date: Sat, 7 May 2011 15:16:47 +0100 Subject: [PATCH 03/14] Added node files. --- conf.json | 5 + jsdoc.js | 51 + lib/json.js | 238 +++ lib/nodeunit.js | 1761 ++++++++++++++++ lib/rhino-require.js | 253 +++ lib/rhino-shim.js | 69 + node_modules/.bin/nodeunit | 1 + node_modules/jsdoc/argparser.js | 140 ++ node_modules/jsdoc/doclet.js | 161 ++ node_modules/jsdoc/options.js | 71 + node_modules/jsdoc/parser.js | 136 ++ node_modules/jsdoc/plugin.js | 28 + node_modules/jsdoc/util/dumper.js | 158 ++ node_modules/jsecma5.js | 33 + node_modules/jsmods.js | 5 + node_modules/markdown/.gitignore | 1 + node_modules/markdown/README.markdown | 68 + node_modules/markdown/lib/index.js | 3 + node_modules/markdown/lib/markdown.js | 1452 +++++++++++++ node_modules/markdown/package.json | 42 + node_modules/markdown/seed.yml | 5 + node_modules/markdown/test/features.t.js | 84 + .../features/blockquotes/contains_code.json | 15 + .../features/blockquotes/contains_code.text | 7 + .../features/blockquotes/lazy_wrapping.json | 10 + .../features/blockquotes/lazy_wrapping.text | 4 + .../features/blockquotes/leading_paras.json | 18 + .../features/blockquotes/leading_paras.text | 5 + .../test/features/blockquotes/nested.json | 15 + .../test/features/blockquotes/nested.text | 5 + .../test/features/blockquotes/simple.json | 7 + .../test/features/blockquotes/simple.text | 1 + .../test/features/blockquotes/spaceless.json | 7 + .../test/features/blockquotes/spaceless.text | 2 + .../test/features/code/blank_lines.json | 26 + .../test/features/code/blank_lines.text | 22 + .../markdown/test/features/code/block.json | 10 + .../markdown/test/features/code/block.text | 7 + .../test/features/code/embedded_backtick.json | 8 + .../test/features/code/embedded_backtick.text | 1 + .../test/features/code/horizontal_rules.json | 7 + .../test/features/code/horizontal_rules.text | 10 + .../markdown/test/features/code/inline.json | 8 + .../markdown/test/features/code/inline.text | 1 + .../test/features/code/inline_multiline.json | 9 + .../test/features/code/inline_multiline.text | 2 + .../test/features/code/trailing_para.json | 13 + .../test/features/code/trailing_para.text | 4 + .../features/definition_lists/inline.json | 22 + .../features/definition_lists/inline.text | 5 + .../test/features/definition_lists/long.json | 16 + .../test/features/definition_lists/long.text | 7 + .../multiple_definitions.json | 28 + .../multiple_definitions.text | 9 + .../definition_lists/multiple_terms.json | 22 + .../definition_lists/multiple_terms.text | 7 + .../test/features/definition_lists/tight.json | 22 + .../test/features/definition_lists/tight.text | 8 + .../features/emphasis/multiple_lines.json | 9 + .../features/emphasis/multiple_lines.text | 2 + .../test/features/emphasis/nested.json | 24 + .../test/features/emphasis/nested.text | 3 + .../test/features/emphasis/simple.json | 24 + .../test/features/emphasis/simple.text | 3 + .../markdown/test/features/headers/atx.json | 20 + .../markdown/test/features/headers/atx.text | 11 + .../features/headers/atx_closing_hashes.json | 11 + .../features/headers/atx_closing_hashes.text | 5 + .../test/features/headers/setext.json | 8 + .../test/features/headers/setext.text | 5 + .../test/features/headers/trailing_paras.json | 20 + .../test/features/headers/trailing_paras.text | 10 + .../horizontal_rules/abutting_blocks.json | 17 + .../horizontal_rules/abutting_blocks.text | 5 + .../features/horizontal_rules/dashes.json | 3 + .../features/horizontal_rules/dashes.text | 1 + .../horizontal_rules/leading_spaces.json | 3 + .../horizontal_rules/leading_spaces.text | 1 + .../test/features/horizontal_rules/long.json | 3 + .../test/features/horizontal_rules/long.text | 1 + .../features/horizontal_rules/long_loose.json | 3 + .../features/horizontal_rules/long_loose.text | 1 + .../horizontal_rules/loose_dashes.json | 3 + .../horizontal_rules/loose_dashes.text | 1 + .../horizontal_rules/loose_stars.json | 3 + .../horizontal_rules/loose_stars.text | 1 + .../horizontal_rules/loose_underscores.json | 3 + .../horizontal_rules/loose_underscores.text | 1 + .../test/features/horizontal_rules/stars.json | 3 + .../test/features/horizontal_rules/stars.text | 1 + .../horizontal_rules/underscores.json | 3 + .../horizontal_rules/underscores.text | 1 + .../markdown/test/features/images/basic.json | 8 + .../markdown/test/features/images/basic.text | 1 + .../test/features/images/crotcheted_url.json | 8 + .../test/features/images/crotcheted_url.text | 1 + .../images/crotcheted_url_with_title.json | 9 + .../images/crotcheted_url_with_title.text | 1 + .../markdown/test/features/images/empty.json | 8 + .../markdown/test/features/images/empty.text | 1 + .../features/images/spaces_round_title.json | 9 + .../features/images/spaces_round_title.text | 1 + .../markdown/test/features/images/title.json | 9 + .../markdown/test/features/images/title.text | 1 + .../test/features/linebreaks/simple.json | 7 + .../test/features/linebreaks/simple.text | 2 + .../test/features/links/autolink_email.json | 10 + .../test/features/links/autolink_email.text | 1 + .../test/features/links/autolink_in_code.json | 8 + .../test/features/links/autolink_in_code.text | 1 + .../test/features/links/autolink_url.json | 10 + .../test/features/links/autolink_url.text | 1 + .../test/features/links/case_insensitive.json | 20 + .../test/features/links/case_insensitive.text | 3 + .../test/features/links/implicit.json | 15 + .../test/features/links/implicit.text | 4 + .../markdown/test/features/links/inline.json | 10 + .../markdown/test/features/links/inline.text | 1 + .../features/links/inline_with_newline.json | 10 + .../features/links/inline_with_newline.text | 2 + .../features/links/inline_with_title.json | 11 + .../features/links/inline_with_title.text | 1 + .../features/links/missing_references.json | 11 + .../features/links/missing_references.text | 5 + .../features/links/parens_escaped_inline.json | 10 + .../features/links/parens_escaped_inline.text | 1 + .../test/features/links/parens_inline.json | 10 + .../test/features/links/parens_inline.text | 1 + .../test/features/links/parens_reference.json | 10 + .../test/features/links/parens_reference.text | 3 + .../test/features/links/ref_reuse.json | 14 + .../test/features/links/ref_reuse.text | 3 + .../test/features/links/reference.json | 10 + .../test/features/links/reference.text | 3 + .../features/links/reference_with_space.json | 10 + .../features/links/reference_with_space.text | 3 + .../test/features/lists/bullet_types.json | 26 + .../test/features/lists/bullet_types.text | 11 + .../test/features/lists/hr_abutting.json | 9 + .../test/features/lists/hr_abutting.text | 6 + .../test/features/lists/hr_inside.json | 10 + .../test/features/lists/hr_inside.text | 5 + .../test/features/lists/lazy_wrapping.json | 10 + .../test/features/lists/lazy_wrapping.text | 4 + .../features/lists/leading_whitespace.json | 10 + .../features/lists/leading_whitespace.text | 2 + .../markdown/test/features/lists/loose.json | 22 + .../markdown/test/features/lists/loose.text | 11 + .../features/lists/loose_with_inline.json | 36 + .../features/lists/loose_with_inline.text | 8 + .../test/features/lists/multiline_inline.json | 10 + .../test/features/lists/multiline_inline.text | 2 + .../markdown/test/features/lists/nested.json | 39 + .../markdown/test/features/lists/nested.text | 9 + .../markdown/test/features/lists/numeric.json | 13 + .../markdown/test/features/lists/numeric.text | 3 + .../markdown/test/features/lists/tight.json | 13 + .../markdown/test/features/lists/tight.text | 3 + .../test/features/meta/attribute.json | 6 + .../test/features/meta/attribute.text | 3 + .../markdown/test/features/meta/class.json | 6 + .../markdown/test/features/meta/class.text | 3 + .../markdown/test/features/meta/code.json | 8 + .../markdown/test/features/meta/code.text | 6 + .../markdown/test/features/meta/document.json | 9 + .../markdown/test/features/meta/document.text | 4 + .../markdown/test/features/meta/id.json | 6 + .../markdown/test/features/meta/id.text | 3 + .../markdown/test/features/meta/inline.json | 15 + .../markdown/test/features/meta/inline.text | 2 + .../test/features/meta/inner_whitespace.json | 14 + .../test/features/meta/inner_whitespace.text | 8 + .../features/meta/leading_whitespace.json | 21 + .../features/meta/leading_whitespace.text | 14 + .../markdown/test/features/meta/list.json | 11 + .../markdown/test/features/meta/list.text | 6 + .../test/features/meta/multiple_classes.json | 11 + .../test/features/meta/multiple_classes.text | 4 + .../markdown/test/features/meta/quoted.json | 6 + .../markdown/test/features/meta/quoted.text | 3 + .../Amps_and_angle_encoding.json | 22 + .../Amps_and_angle_encoding.text | 21 + .../Amps_and_angle_encoding.xhtml | 17 + .../Auto_links.json | 20 + .../Auto_links.text | 13 + .../Auto_links.xhtml | 18 + .../Backslash_escapes.json | 49 + .../Backslash_escapes.text | 120 ++ .../Backslash_escapes.xhtml | 118 ++ .../Blockquotes_with_code_blocks.json | 4 + .../Blockquotes_with_code_blocks.text | 11 + .../Blockquotes_with_code_blocks.xhtml | 15 + .../Code_Blocks.json | 7 + .../Code_Blocks.text | 14 + .../Code_Blocks.xhtml | 18 + .../Code_Spans.json | 6 + .../Code_Spans.text | 5 + .../Code_Spans.xhtml | 5 + ...apped_paragraphs_with_list-like_lines.json | 2 + ...apped_paragraphs_with_list-like_lines.text | 8 + ...pped_paragraphs_with_list-like_lines.xhtml | 8 + .../Horizontal_rules.json | 3 + .../Horizontal_rules.text | 67 + .../Horizontal_rules.xhtml | 71 + .../Images.json | 48 + .../Images.text | 26 + .../Images.xhtml | 21 + .../Inline_HTML_(Advanced).json | 11 + .../Inline_HTML_(Advanced).text | 30 + .../Inline_HTML_(Advanced).xhtml | 30 + .../Inline_HTML_(Simple).html | 72 + .../Inline_HTML_(Simple).json | 18 + .../Inline_HTML_(Simple).text | 69 + .../Inline_HTML_comments.html | 13 + .../Inline_HTML_comments.json | 1 + .../Inline_HTML_comments.text | 13 + .../Links_inline_style.json | 52 + .../Links_inline_style.text | 24 + .../Links_inline_style.xhtml | 23 + .../Links_reference_style.json | 75 + .../Links_reference_style.text | 71 + .../Links_reference_style.xhtml | 52 + .../Links_shortcut_references.json | 19 + .../Links_shortcut_references.text | 20 + .../Links_shortcut_references.xhtml | 9 + .../Literal_quotes_in_titles.json | 10 + .../Literal_quotes_in_titles.text | 7 + .../Literal_quotes_in_titles.xhtml | 3 + .../Markdown_Documentation_-_Basics.json | 96 + .../Markdown_Documentation_-_Basics.text | 306 +++ .../Markdown_Documentation_-_Basics.xhtml | 314 +++ .../Markdown_Documentation_-_Syntax.json | 393 ++++ .../Markdown_Documentation_-_Syntax.text | 888 ++++++++ .../Markdown_Documentation_-_Syntax.xhtml | 942 +++++++++ .../Nested_blockquotes.json | 3 + .../Nested_blockquotes.text | 5 + .../Nested_blockquotes.xhtml | 9 + .../Ordered_and_unordered_lists.json | 59 + .../Ordered_and_unordered_lists.text | 131 ++ .../Ordered_and_unordered_lists.xhtml | 148 ++ .../Strong_and_em_together.json | 4 + .../Strong_and_em_together.text | 7 + .../Strong_and_em_together.xhtml | 7 + .../Markdown-from-MDTest1.1.mdtest/Tabs.json | 8 + .../Markdown-from-MDTest1.1.mdtest/Tabs.text | 21 + .../Markdown-from-MDTest1.1.mdtest/Tabs.xhtml | 25 + .../Tidyness.json | 4 + .../Tidyness.text | 5 + .../Tidyness.xhtml | 8 + .../Backslash_escapes.json | 5 + .../Backslash_escapes.text | 1 + .../Backslash_escapes.xhtml | 1 + .../Code_Spans.json | 2 + .../Code_Spans.text | 6 + .../Code_Spans.xhtml | 6 + .../Code_block_in_a_list_item.json | 3 + .../Code_block_in_a_list_item.text | 8 + .../Code_block_in_a_list_item.xhtml | 10 + .../Email_auto_links.json | 8 + .../Email_auto_links.text | 3 + .../Email_auto_links.xhtml | 3 + .../Emphasis.json | 47 + .../Emphasis.text | 69 + .../Emphasis.xhtml | 72 + .../Headers.json | 3 + .../Headers.text | 9 + .../Headers.xhtml | 39 + .../Horizontal_Rules.json | 9 + .../Horizontal_Rules.text | 29 + .../Horizontal_Rules.xhtml | 30 + .../Inline_HTML_(Simple).html | 15 + .../Inline_HTML_(Simple).json | 11 + .../Inline_HTML_(Simple).text | 15 + .../Inline_HTML_(Span).json | 11 + .../Inline_HTML_(Span).text | 4 + .../Inline_HTML_(Span).xhtml | 4 + .../Inline_HTML_comments.html | 9 + .../Inline_HTML_comments.json | 1 + .../Inline_HTML_comments.text | 9 + .../Ins_and_del.json | 3 + .../Ins_and_del.text | 17 + .../Ins_and_del.xhtml | 17 + .../Links_inline_style.json | 4 + .../Links_inline_style.text | 1 + .../Links_inline_style.xhtml | 1 + .../MD5_Hashes.json | 3 + .../MD5_Hashes.text | 11 + .../MD5_Hashes.xhtml | 11 + .../Nesting.json | 18 + .../Nesting.text | 11 + .../Nesting.xhtml | 11 + .../PHP-Specific_Bugs.json | 3 + .../PHP-Specific_Bugs.text | 22 + .../PHP-Specific_Bugs.xhtml | 17 + .../Parens_in_URL.json | 30 + .../Parens_in_URL.text | 14 + .../Parens_in_URL.xhtml | 11 + .../Tight_blocks.json | 6 + .../Tight_blocks.text | 1 + .../Tight_blocks.xhtml | 21 + node_modules/markdown/test/fixtures/README | 42 + .../Text-Markdown.mdtest/CoreDumps5.8.json | 3 + .../Text-Markdown.mdtest/CoreDumps5.8.text | 7 + .../Text-Markdown.mdtest/CoreDumps5.8.xhtml | 15 + .../Text-Markdown.mdtest/Emphasis.json | 2 + .../Text-Markdown.mdtest/Emphasis.text | 4 + .../Text-Markdown.mdtest/Emphasis.xhtml | 4 + .../HTML-Comment-encoding.json | 3 + .../HTML-Comment-encoding.text | 5 + .../HTML-Comment-encoding.xhtml | 5 + .../HTML5-attributes.html | 11 + .../HTML5-attributes.json | 10 + .../HTML5-attributes.text | 11 + .../Text-Markdown.mdtest/Links_brackets.json | 5 + .../Text-Markdown.mdtest/Links_brackets.text | 2 + .../Text-Markdown.mdtest/Links_brackets.xhtml | 1 + .../Links_multiline_bugs_1.html | 4 + .../Links_multiline_bugs_1.json | 8 + .../Links_multiline_bugs_1.text | 7 + .../Links_multiline_bugs_2.html | 4 + .../Links_multiline_bugs_2.json | 8 + .../Links_multiline_bugs_2.text | 6 + .../Links_reference_style.json | 88 + .../Links_reference_style.text | 87 + .../Links_reference_style.xhtml | 63 + .../Lists-multilevel-md5-edgecase.json | 8 + .../Lists-multilevel-md5-edgecase.text | 25 + .../Lists-multilevel-md5-edgecase.xhtml | 37 + .../Text-Markdown.mdtest/PHP-ASP_tags.json | 5 + .../Text-Markdown.mdtest/PHP-ASP_tags.text | 7 + .../Text-Markdown.mdtest/PHP-ASP_tags.xhtml | 7 + .../Text-Markdown.mdtest/Unicode.json | 3 + .../Text-Markdown.mdtest/Unicode.text | 5 + .../Text-Markdown.mdtest/Unicode.xhtml | 9 + .../docs-maruku-unittest/abbreviations.html | 3 + .../docs-maruku-unittest/abbreviations.json | 8 + .../docs-maruku-unittest/abbreviations.text | 11 + .../fixtures/docs-maruku-unittest/alt.html | 1 + .../fixtures/docs-maruku-unittest/alt.json | 4 + .../fixtures/docs-maruku-unittest/alt.text | 3 + .../fixtures/docs-maruku-unittest/blank.html | 3 + .../fixtures/docs-maruku-unittest/blank.json | 2 + .../fixtures/docs-maruku-unittest/blank.text | 4 + .../docs-maruku-unittest/blanks_in_code.html | 16 + .../docs-maruku-unittest/blanks_in_code.json | 6 + .../docs-maruku-unittest/blanks_in_code.text | 22 + .../docs-maruku-unittest/bug_def.html | 1 + .../docs-maruku-unittest/bug_def.json | 1 + .../docs-maruku-unittest/bug_def.text | 2 + .../docs-maruku-unittest/bug_table.html | 3 + .../docs-maruku-unittest/bug_table.json | 20 + .../docs-maruku-unittest/bug_table.text | 13 + .../fixtures/docs-maruku-unittest/code.html | 6 + .../fixtures/docs-maruku-unittest/code.json | 2 + .../fixtures/docs-maruku-unittest/code.text | 7 + .../fixtures/docs-maruku-unittest/code2.html | 5 + .../fixtures/docs-maruku-unittest/code2.json | 2 + .../fixtures/docs-maruku-unittest/code2.text | 3 + .../fixtures/docs-maruku-unittest/code3.html | 15 + .../fixtures/docs-maruku-unittest/code3.json | 8 + .../fixtures/docs-maruku-unittest/code3.text | 17 + .../fixtures/docs-maruku-unittest/convert.pl | 47 + .../docs-maruku-unittest/data_loss.html | 3 + .../docs-maruku-unittest/data_loss.json | 1 + .../docs-maruku-unittest/data_loss.text | 4 + .../fixtures/docs-maruku-unittest/easy.html | 1 + .../fixtures/docs-maruku-unittest/easy.json | 1 + .../fixtures/docs-maruku-unittest/easy.text | 1 + .../fixtures/docs-maruku-unittest/email.html | 1 + .../fixtures/docs-maruku-unittest/email.json | 4 + .../fixtures/docs-maruku-unittest/email.text | 4 + .../docs-maruku-unittest/entities.html | 14 + .../docs-maruku-unittest/entities.json | 45 + .../docs-maruku-unittest/entities.text | 20 + .../docs-maruku-unittest/escaping.html | 9 + .../docs-maruku-unittest/escaping.json | 5 + .../docs-maruku-unittest/escaping.text | 11 + .../docs-maruku-unittest/extra_dl.html | 9 + .../docs-maruku-unittest/extra_dl.json | 4 + .../docs-maruku-unittest/extra_dl.text | 10 + .../docs-maruku-unittest/extra_header_id.html | 9 + .../docs-maruku-unittest/extra_header_id.json | 20 + .../docs-maruku-unittest/extra_header_id.text | 14 + .../docs-maruku-unittest/extra_table1.html | 3 + .../docs-maruku-unittest/extra_table1.json | 18 + .../docs-maruku-unittest/extra_table1.text | 7 + .../docs-maruku-unittest/footnotes.html | 14 + .../docs-maruku-unittest/footnotes.json | 52 + .../docs-maruku-unittest/footnotes.text | 17 + .../docs-maruku-unittest/headers.html | 5 + .../docs-maruku-unittest/headers.json | 10 + .../docs-maruku-unittest/headers.text | 11 + .../docs-maruku-unittest/hex_entities.html | 1 + .../docs-maruku-unittest/hex_entities.json | 1 + .../docs-maruku-unittest/hex_entities.text | 3 + .../fixtures/docs-maruku-unittest/hrule.html | 1 + .../fixtures/docs-maruku-unittest/hrule.json | 5 + .../fixtures/docs-maruku-unittest/hrule.text | 2 + .../fixtures/docs-maruku-unittest/html2.html | 2 + .../fixtures/docs-maruku-unittest/html2.json | 1 + .../fixtures/docs-maruku-unittest/html2.text | 4 + .../fixtures/docs-maruku-unittest/html3.html | 1 + .../fixtures/docs-maruku-unittest/html3.json | 13 + .../fixtures/docs-maruku-unittest/html3.text | 5 + .../fixtures/docs-maruku-unittest/html4.html | 3 + .../fixtures/docs-maruku-unittest/html4.json | 11 + .../fixtures/docs-maruku-unittest/html4.text | 7 + .../fixtures/docs-maruku-unittest/html5.html | 3 + .../fixtures/docs-maruku-unittest/html5.json | 14 + .../fixtures/docs-maruku-unittest/html5.text | 5 + .../fixtures/docs-maruku-unittest/ie.html | 9 + .../fixtures/docs-maruku-unittest/ie.json | 42 + .../fixtures/docs-maruku-unittest/ie.text | 15 + .../fixtures/docs-maruku-unittest/images.html | 9 + .../fixtures/docs-maruku-unittest/images.json | 20 + .../fixtures/docs-maruku-unittest/images.text | 22 + .../docs-maruku-unittest/images2.html | 3 + .../docs-maruku-unittest/images2.json | 8 + .../docs-maruku-unittest/images2.text | 7 + .../docs-maruku-unittest/inline_html.html | 66 + .../docs-maruku-unittest/inline_html.json | 28 + .../docs-maruku-unittest/inline_html.text | 50 + .../docs-maruku-unittest/inline_html2.html | 3 + .../docs-maruku-unittest/inline_html2.json | 2 + .../docs-maruku-unittest/inline_html2.text | 2 + .../fixtures/docs-maruku-unittest/links.html | 19 + .../fixtures/docs-maruku-unittest/links.json | 49 + .../fixtures/docs-maruku-unittest/links.text | 36 + .../fixtures/docs-maruku-unittest/list1.html | 9 + .../fixtures/docs-maruku-unittest/list1.json | 2 + .../fixtures/docs-maruku-unittest/list1.text | 5 + .../fixtures/docs-maruku-unittest/list2.html | 11 + .../fixtures/docs-maruku-unittest/list2.json | 3 + .../fixtures/docs-maruku-unittest/list2.text | 8 + .../fixtures/docs-maruku-unittest/list3.html | 15 + .../fixtures/docs-maruku-unittest/list3.json | 4 + .../fixtures/docs-maruku-unittest/list3.text | 8 + .../fixtures/docs-maruku-unittest/list4.html | 19 + .../fixtures/docs-maruku-unittest/list4.json | 8 + .../fixtures/docs-maruku-unittest/list4.text | 16 + .../fixtures/docs-maruku-unittest/lists.html | 39 + .../fixtures/docs-maruku-unittest/lists.json | 13 + .../fixtures/docs-maruku-unittest/lists.text | 32 + .../docs-maruku-unittest/lists11.html | 1 + .../docs-maruku-unittest/lists11.json | 1 + .../docs-maruku-unittest/lists11.text | 2 + .../fixtures/docs-maruku-unittest/lists6.html | 1 + .../fixtures/docs-maruku-unittest/lists6.json | 1 + .../fixtures/docs-maruku-unittest/lists6.text | 1 + .../fixtures/docs-maruku-unittest/lists7.html | 10 + .../fixtures/docs-maruku-unittest/lists7.json | 4 + .../fixtures/docs-maruku-unittest/lists7.text | 6 + .../docs-maruku-unittest/lists7b.html | 31 + .../docs-maruku-unittest/lists7b.json | 6 + .../docs-maruku-unittest/lists7b.text | 6 + .../fixtures/docs-maruku-unittest/lists8.html | 13 + .../fixtures/docs-maruku-unittest/lists8.json | 5 + .../fixtures/docs-maruku-unittest/lists8.text | 7 + .../fixtures/docs-maruku-unittest/lists9.html | 17 + .../fixtures/docs-maruku-unittest/lists9.json | 5 + .../fixtures/docs-maruku-unittest/lists9.text | 5 + .../lists_after_paragraph.html | 37 + .../lists_after_paragraph.json | 20 + .../lists_after_paragraph.text | 45 + .../docs-maruku-unittest/lists_ol.html | 61 + .../docs-maruku-unittest/lists_ol.json | 19 + .../docs-maruku-unittest/lists_ol.text | 39 + .../fixtures/docs-maruku-unittest/loss.html | 1 + .../fixtures/docs-maruku-unittest/loss.json | 1 + .../fixtures/docs-maruku-unittest/loss.text | 2 + .../docs-maruku-unittest/misc_sw.html | 79 + .../docs-maruku-unittest/misc_sw.json | 139 ++ .../docs-maruku-unittest/misc_sw.text | 106 + .../fixtures/docs-maruku-unittest/olist.html | 9 + .../fixtures/docs-maruku-unittest/olist.json | 4 + .../fixtures/docs-maruku-unittest/olist.text | 5 + .../fixtures/docs-maruku-unittest/one.html | 1 + .../fixtures/docs-maruku-unittest/one.json | 1 + .../fixtures/docs-maruku-unittest/one.text | 1 + .../docs-maruku-unittest/paragraph.html | 1 + .../docs-maruku-unittest/paragraph.json | 1 + .../docs-maruku-unittest/paragraph.text | 2 + .../docs-maruku-unittest/paragraphs.html | 5 + .../docs-maruku-unittest/paragraphs.json | 3 + .../docs-maruku-unittest/paragraphs.text | 11 + .../docs-maruku-unittest/smartypants.html | 17 + .../docs-maruku-unittest/smartypants.json | 8 + .../docs-maruku-unittest/smartypants.text | 13 + .../docs-maruku-unittest/syntax_hl.html | 11 + .../docs-maruku-unittest/syntax_hl.json | 23 + .../docs-maruku-unittest/syntax_hl.text | 12 + .../table_attributes.html | 2 + .../table_attributes.json | 22 + .../table_attributes.text | 7 + .../fixtures/docs-maruku-unittest/test.html | 1 + .../fixtures/docs-maruku-unittest/test.json | 1 + .../fixtures/docs-maruku-unittest/test.text | 5 + .../docs-maruku-unittest/wrapping.html | 7 + .../docs-maruku-unittest/wrapping.json | 3 + .../docs-maruku-unittest/wrapping.text | 8 + .../fixtures/docs-maruku-unittest/xml.html | 6 + .../fixtures/docs-maruku-unittest/xml.json | 21 + .../fixtures/docs-maruku-unittest/xml.text | 11 + .../fixtures/docs-maruku-unittest/xml2.html | 3 + .../fixtures/docs-maruku-unittest/xml2.json | 1 + .../fixtures/docs-maruku-unittest/xml2.text | 3 + .../fixtures/docs-maruku-unittest/xml3.html | 4 + .../fixtures/docs-maruku-unittest/xml3.json | 1 + .../fixtures/docs-maruku-unittest/xml3.text | 7 + .../docs-maruku-unittest/xml_instruction.html | 4 + .../docs-maruku-unittest/xml_instruction.json | 2 + .../docs-maruku-unittest/xml_instruction.text | 11 + .../docs-php-markdown-extra/Abbr.html | 11 + .../docs-php-markdown-extra/Abbr.json | 44 + .../docs-php-markdown-extra/Abbr.text | 25 + .../Definition_Lists.html | 142 ++ .../Definition_Lists.json | 43 + .../Definition_Lists.text | 106 + .../docs-php-markdown-extra/Emphasis.html | 72 + .../docs-php-markdown-extra/Emphasis.json | 47 + .../docs-php-markdown-extra/Emphasis.text | 69 + .../docs-php-markdown-extra/Footnotes.html | 83 + .../docs-php-markdown-extra/Footnotes.json | 152 ++ .../docs-php-markdown-extra/Footnotes.text | 55 + .../Inline_HTML_with_Markdown_content.html | 125 ++ .../Inline_HTML_with_Markdown_content.json | 20 + .../Inline_HTML_with_Markdown_content.text | 104 + .../docs-php-markdown-extra/Tables.html | 310 +++ .../docs-php-markdown-extra/Tables.json | 130 ++ .../docs-php-markdown-extra/Tables.text | 104 + .../Email_auto_links.html | 3 + .../Email_auto_links.json | 8 + .../Email_auto_links.text | 3 + .../docs-php-markdown-todo/Emphasis.html | 72 + .../docs-php-markdown-todo/Emphasis.json | 47 + .../docs-php-markdown-todo/Emphasis.text | 69 + .../Inline_HTML_(Span).html | 4 + .../Inline_HTML_(Span).json | 11 + .../Inline_HTML_(Span).text | 4 + .../docs-php-markdown-todo/Ins_and_del.json | 3 + .../docs-php-markdown-todo/Ins_and_del.text | 17 + .../docs-php-markdown-todo/Ins_and_del.xhtml | 17 + .../Links_inline_style.html | 1 + .../Links_inline_style.json | 4 + .../Links_inline_style.text | 1 + .../docs-php-markdown-todo/Nesting.html | 11 + .../docs-php-markdown-todo/Nesting.json | 18 + .../docs-php-markdown-todo/Nesting.text | 11 + .../docs-php-markdown-todo/Parens_in_URL.html | 11 + .../docs-php-markdown-todo/Parens_in_URL.json | 30 + .../docs-php-markdown-todo/Parens_in_URL.text | 14 + .../docs-php-markdown/Backslash_escapes.html | 9 + .../docs-php-markdown/Backslash_escapes.json | 5 + .../docs-php-markdown/Backslash_escapes.text | 1 + .../docs-php-markdown/Code_Spans.html | 6 + .../docs-php-markdown/Code_Spans.json | 2 + .../docs-php-markdown/Code_Spans.text | 6 + .../Code_block_in_a_list_item.html | 11 + .../Code_block_in_a_list_item.json | 3 + .../Code_block_in_a_list_item.text | 8 + .../fixtures/docs-php-markdown/Headers.html | 39 + .../fixtures/docs-php-markdown/Headers.json | 3 + .../fixtures/docs-php-markdown/Headers.text | 9 + .../docs-php-markdown/Images_(Untitled).html | 5 + .../docs-php-markdown/Images_(Untitled).json | 12 + .../docs-php-markdown/Images_(Untitled).text | 7 + .../Inline_HTML_(Simple).html | 15 + .../Inline_HTML_(Simple).json | 11 + .../Inline_HTML_(Simple).text | 15 + .../Inline_HTML_comments.html | 9 + .../Inline_HTML_comments.json | 1 + .../Inline_HTML_comments.text | 9 + .../docs-php-markdown/PHP-Specific_Bugs.html | 17 + .../docs-php-markdown/PHP-Specific_Bugs.json | 3 + .../docs-php-markdown/PHP-Specific_Bugs.text | 22 + .../docs-php-markdown/Tight_blocks.html | 21 + .../docs-php-markdown/Tight_blocks.json | 6 + .../docs-php-markdown/Tight_blocks.text | 1 + .../auto_link.html | 3 + .../auto_link.json | 8 + .../auto_link.text | 3 + .../auto_link_safe_mode.html | 3 + .../auto_link_safe_mode.json | 8 + .../auto_link_safe_mode.opts | 1 + .../auto_link_safe_mode.text | 3 + .../basic_safe_mode.html | 5 + .../basic_safe_mode.json | 3 + .../basic_safe_mode.opts | 2 + .../basic_safe_mode.text | 5 + .../basic_safe_mode_escape.html | 5 + .../basic_safe_mode_escape.json | 3 + .../basic_safe_mode_escape.opts | 1 + .../basic_safe_mode_escape.text | 5 + .../blockquote.html | 11 + .../blockquote.json | 4 + .../blockquote.text | 5 + .../blockquote_with_pre.html | 9 + .../blockquote_with_pre.json | 2 + .../blockquote_with_pre.text | 6 + .../code_block_with_tabs.html | 4 + .../code_block_with_tabs.json | 2 + .../code_block_with_tabs.text | 3 + .../code_safe_emphasis.html | 2 + .../code_safe_emphasis.json | 1 + .../code_safe_emphasis.opts | 1 + .../code_safe_emphasis.text | 2 + .../codeblock.html | 8 + .../codeblock.json | 3 + .../codeblock.text | 7 + .../codespans.html | 2 + .../codespans.json | 1 + .../codespans.text | 2 + .../codespans_safe_mode.html | 2 + .../codespans_safe_mode.json | 1 + .../codespans_safe_mode.opts | 1 + .../codespans_safe_mode.text | 2 + .../emacs_head_vars.html | 4 + .../emacs_head_vars.json | 1 + .../emacs_head_vars.text | 4 + .../emacs_tail_vars.html | 8 + .../emacs_tail_vars.json | 1 + .../emacs_tail_vars.text | 8 + .../emphasis.html | 2 + .../emphasis.json | 1 + .../emphasis.text | 2 + .../escapes.html | 3 + .../escapes.json | 2 + .../escapes.text | 3 + .../footnotes.html | 27 + .../footnotes.json | 69 + .../footnotes.opts | 1 + .../footnotes.text | 18 + .../footnotes_letters.html | 23 + .../footnotes_letters.json | 53 + .../footnotes_letters.opts | 1 + .../footnotes_letters.text | 15 + .../footnotes_markup.html | 22 + .../footnotes_markup.json | 41 + .../footnotes_markup.opts | 1 + .../footnotes_markup.text | 10 + .../footnotes_safe_mode_escape.html | 12 + .../footnotes_safe_mode_escape.json | 20 + .../footnotes_safe_mode_escape.opts | 1 + .../footnotes_safe_mode_escape.text | 6 + .../header.html | 7 + .../header.json | 1 + .../header.text | 9 + .../hr.html | 12 + .../hr.json | 1 + .../hr.text | 12 + .../img_in_link.html | 4 + .../img_in_link.json | 12 + .../img_in_link.text | 7 + .../inline_links.html | 7 + .../inline_links.json | 18 + .../inline_links.text | 7 + .../issue2_safe_mode_borks_markup.html | 5 + .../issue2_safe_mode_borks_markup.json | 2 + .../issue2_safe_mode_borks_markup.opts | 1 + .../issue2_safe_mode_borks_markup.text | 6 + .../link_defn_alt_title_delims.html | 3 + .../link_defn_alt_title_delims.json | 13 + .../link_defn_alt_title_delims.text | 7 + .../link_patterns.html | 1 + .../link_patterns.json | 7 + .../link_patterns.opts | 7 + .../link_patterns.text | 1 + .../link_patterns_double_hit.html | 1 + .../link_patterns_double_hit.json | 7 + .../link_patterns_double_hit.opts | 7 + .../link_patterns_double_hit.text | 1 + .../link_patterns_edge_cases.html | 1 + .../link_patterns_edge_cases.json | 4 + .../link_patterns_edge_cases.opts | 6 + .../link_patterns_edge_cases.text | 1 + .../lists.html | 15 + .../lists.json | 8 + .../lists.text | 11 + .../mismatched_footnotes.html | 16 + .../mismatched_footnotes.json | 36 + .../mismatched_footnotes.opts | 1 + .../mismatched_footnotes.text | 9 + .../missing_link_defn.html | 1 + .../missing_link_defn.json | 4 + .../missing_link_defn.text | 7 + .../nested_list.html | 15 + .../nested_list.json | 6 + .../nested_list.text | 9 + .../nested_list_safe_mode.html | 15 + .../nested_list_safe_mode.json | 6 + .../nested_list_safe_mode.opts | 1 + .../nested_list_safe_mode.text | 9 + .../parens_in_url_4.html | 1 + .../parens_in_url_4.json | 5 + .../parens_in_url_4.text | 1 + .../raw_html.html | 5 + .../raw_html.json | 4 + .../raw_html.text | 6 + .../ref_links.html | 1 + .../ref_links.json | 7 + .../ref_links.text | 6 + .../sublist-para.html | 17 + .../sublist-para.json | 10 + .../sublist-para.text | 17 + .../syntax_color.html | 15 + .../syntax_color.json | 118 ++ .../syntax_color.opts | 1 + .../syntax_color.text | 15 + .../tricky_anchors.html | 11 + .../tricky_anchors.json | 29 + .../tricky_anchors.text | 11 + .../underline_in_autolink.html | 2 + .../underline_in_autolink.json | 4 + .../underline_in_autolink.text | 2 + node_modules/markdown/test/interface.t.js | 28 + node_modules/markdown/test/regressions.t.js | 510 +++++ node_modules/narcissus.js | 31 + node_modules/narcissus/LICENSE | 5 + node_modules/narcissus/README.md | 21 + .../narcissus/harmony-tests/README.txt | 17 + .../harmony-tests/fail-execute/eval-export.js | 1 + .../fail-execute/eval-resolve1.js | 1 + .../fail-execute/eval-resolve2.js | 1 + .../fail-execute/module-uninit-read.js | 8 + .../fail-resolve/export-cycle1.js | 3 + .../fail-resolve/export-cycle2.js | 7 + .../fail-resolve/export-cycle3.js | 7 + .../fail-resolve/export-cycle4.js | 15 + .../fail-resolve/export-unbound-var.js | 1 + .../fail-resolve/import-eval1.js | 2 + .../fail-resolve/import-eval2.js | 2 + .../fail-resolve/module-rebind-assignment1.js | 5 + .../fail-resolve/unbound-read.js | 1 + .../fail-resolve/unbound-write.js | 1 + node_modules/narcissus/harmony-tests/run.sh | 88 + .../harmony-tests/succeed/eval-import1.js | 5 + .../harmony-tests/succeed/eval-import2.js | 5 + .../harmony-tests/succeed/eval-module1.js | 9 + .../harmony-tests/succeed/eval-module2.js | 4 + .../harmony-tests/succeed/eval-resolve1.js | 5 + .../harmony-tests/succeed/eval-resolve2.js | 3 + .../harmony-tests/succeed/export-bound-var.js | 12 + .../harmony-tests/succeed/export-var.js | 5 + .../harmony-tests/succeed/global-this.js | 3 + .../succeed/incomplete-module1.js | 8 + .../succeed/incomplete-module2.js | 9 + .../succeed/module-completion.js | 1 + .../harmony-tests/succeed/module-rebind1.js | 8 + .../harmony-tests/succeed/module-rebind2.js | 10 + .../harmony-tests/succeed/module-rebind3.js | 9 + .../harmony-tests/succeed/module-this.js | 8 + .../harmony-tests/succeed/re-export1.js | 18 + .../harmony-tests/succeed/re-export2.js | 19 + .../succeed/uninitialized-module1.js | 7 + .../succeed/uninitialized-module2.js | 9 + .../succeed/uninitialized-module3.js | 14 + node_modules/narcissus/jstests | 44 + node_modules/narcissus/lib.zip | Bin 0 -> 52370 bytes node_modules/narcissus/lib/decompiler.js | 50 + node_modules/narcissus/lib/definitions.js | 47 + node_modules/narcissus/lib/jsbrowser.js | 65 + node_modules/narcissus/lib/jsdecomp.js | 528 +++++ node_modules/narcissus/lib/jsdefs.js | 675 ++++++ node_modules/narcissus/lib/jsexec.js | 1484 ++++++++++++++ node_modules/narcissus/lib/jslex.js | 508 +++++ node_modules/narcissus/lib/jsparse.js | 1813 +++++++++++++++++ node_modules/narcissus/lib/jsresolve.js | 717 +++++++ node_modules/narcissus/lib/lexer.js | 48 + node_modules/narcissus/lib/parser.js | 49 + node_modules/narcissus/main.js | 47 + node_modules/narcissus/njs | 106 + node_modules/narcissus/package.json | 7 + .../narcissus/xfail/narcissus-failures.txt | 1451 +++++++++++++ .../narcissus/xfail/narcissus-slow.txt | 18 + node_modules/nodeunit/.gitignore | 3 + node_modules/nodeunit/.npmignore | 3 + node_modules/nodeunit/CONTRIBUTORS.md | 60 + node_modules/nodeunit/LICENSE | 19 + node_modules/nodeunit/Makefile | 126 ++ node_modules/nodeunit/README.md | 433 ++++ node_modules/nodeunit/bin/nodeunit | 108 + node_modules/nodeunit/bin/nodeunit.json | 10 + node_modules/nodeunit/deps/async.js | 623 ++++++ node_modules/nodeunit/deps/ejs.js | 125 ++ node_modules/nodeunit/deps/json2.js | 483 +++++ node_modules/nodeunit/doc/nodeunit.md | 60 + .../nodeunit/examples/browser/nodeunit.js | 1757 ++++++++++++++++ .../nodeunit/examples/browser/suite1.js | 12 + .../nodeunit/examples/browser/suite2.js | 13 + .../nodeunit/examples/browser/test.html | 16 + node_modules/nodeunit/img/example_fail.png | Bin 0 -> 38642 bytes node_modules/nodeunit/img/example_pass.png | Bin 0 -> 14133 bytes node_modules/nodeunit/index.js | 3 + node_modules/nodeunit/lib/assert.js | 316 +++ node_modules/nodeunit/lib/core.js | 236 +++ node_modules/nodeunit/lib/nodeunit.js | 80 + .../nodeunit/lib/reporters/browser.js | 119 ++ .../nodeunit/lib/reporters/default.js | 131 ++ node_modules/nodeunit/lib/reporters/html.js | 112 + node_modules/nodeunit/lib/reporters/index.js | 9 + node_modules/nodeunit/lib/reporters/junit.js | 186 ++ .../nodeunit/lib/reporters/minimal.js | 117 ++ .../nodeunit/lib/reporters/skip_passed.js | 110 + node_modules/nodeunit/lib/track.js | 50 + node_modules/nodeunit/lib/types.js | 187 ++ node_modules/nodeunit/lib/utils.js | 209 ++ node_modules/nodeunit/man1/nodeunit.1 | 95 + node_modules/nodeunit/nodelint.cfg | 4 + node_modules/nodeunit/package.json | 53 + node_modules/nodeunit/share/junit.xml.ejs | 19 + node_modules/nodeunit/share/license.js | 11 + node_modules/nodeunit/share/nodeunit.css | 70 + .../fixtures/coffee/mock_coffee_module.coffee | 4 + .../test/fixtures/dir/mock_module3.js | 1 + .../test/fixtures/dir/mock_module4.js | 1 + .../nodeunit/test/fixtures/mock_module1.js | 1 + .../nodeunit/test/fixtures/mock_module2.js | 1 + .../nodeunit/test/fixtures/raw_jscode1.js | 3 + .../nodeunit/test/fixtures/raw_jscode2.js | 3 + .../nodeunit/test/fixtures/raw_jscode3.js | 1 + node_modules/nodeunit/test/test-base.js | 219 ++ .../nodeunit/test/test-failing-callbacks.js | 114 ++ node_modules/nodeunit/test/test-httputil.js | 55 + node_modules/nodeunit/test/test-runfiles.js | 214 ++ node_modules/nodeunit/test/test-runmodule.js | 125 ++ node_modules/nodeunit/test/test-runtest.js | 46 + node_modules/nodeunit/test/test-sandbox.js | 31 + node_modules/nodeunit/test/test-testcase.js | 234 +++ node_modules/nodeunit/test/test.html | 26 + node_modules/signals/.gitignore | 8 + node_modules/signals/.npmignore | 5 + node_modules/signals/CHANGELOG.markdown | 184 ++ node_modules/signals/README.markdown | 64 + node_modules/signals/dist/docs/files.html | 68 + node_modules/signals/dist/docs/index.html | 92 + .../signals/dist/docs/static/default.css | 248 +++ .../signals/dist/docs/symbolindex.html | 279 +++ .../signals/dist/docs/symbols/_global_.html | 108 + .../dist/docs/symbols/signals.Signal.html | 594 ++++++ .../docs/symbols/signals.SignalBinding.html | 500 +++++ .../signals/dist/docs/symbols/signals.html | 186 ++ ..._source_js-signals_dist_js-signals.js.html | 363 ++++ node_modules/signals/dist/js-signals.cjs.js | 354 ++++ node_modules/signals/package.json | 25 + node_modules/underscore.string/.gitignore | 1 + node_modules/underscore.string/.hgignore | 5 + .../underscore.string/README.markdown | 339 +++ node_modules/underscore.string/Rakefile | 8 + .../dist/underscore.string.min.js | 9 + .../lib/underscore.string.js | 302 +++ node_modules/underscore.string/package.json | 39 + node_modules/underscore.string/test/speed.js | 106 + .../underscore.string/test/strings.js | 236 +++ node_modules/underscore.string/test/test.html | 31 + .../test/test_underscore/arrays.js | 124 ++ .../test/test_underscore/chaining.js | 47 + .../test/test_underscore/collections.js | 207 ++ .../test/test_underscore/functions.js | 154 ++ .../test/test_underscore/objects.js | 246 +++ .../test/test_underscore/speed.js | 70 + .../test/test_underscore/temp.js | 27 + .../test/test_underscore/temp_tests.html | 19 + .../test/test_underscore/test.html | 42 + .../test/test_underscore/utility.js | 127 ++ .../underscore.string/test/underscore.js | 807 ++++++++ node_modules/underscore/.npmignore | 4 + node_modules/underscore/LICENSE | 22 + node_modules/underscore/README | 19 + node_modules/underscore/index.html | 1560 ++++++++++++++ node_modules/underscore/index.js | 1 + node_modules/underscore/package.json | 12 + node_modules/underscore/underscore.js | 807 ++++++++ package.json | 31 + plugin/md.js | 12 + rhino_modules/fs/index.js | 67 + rhino_modules/path/index.js | 9 + rhino_modules/sys/index.js | 6 + test-rhino.js | 15 + test.js | 8 + test/examples/only_comments.js | 2 + test/jsdoc_parser.js | 13 + test/jsdoc_parser_comments.js | 38 + test/jsdoc_parser_function.js | 29 + test/narcissus.js | 24 + 884 files changed, 41853 insertions(+) create mode 100644 conf.json create mode 100644 jsdoc.js create mode 100644 lib/json.js create mode 100644 lib/nodeunit.js create mode 100644 lib/rhino-require.js create mode 100644 lib/rhino-shim.js create mode 120000 node_modules/.bin/nodeunit create mode 100644 node_modules/jsdoc/argparser.js create mode 100644 node_modules/jsdoc/doclet.js create mode 100644 node_modules/jsdoc/options.js create mode 100644 node_modules/jsdoc/parser.js create mode 100644 node_modules/jsdoc/plugin.js create mode 100644 node_modules/jsdoc/util/dumper.js create mode 100644 node_modules/jsecma5.js create mode 100644 node_modules/jsmods.js create mode 100644 node_modules/markdown/.gitignore create mode 100644 node_modules/markdown/README.markdown create mode 100644 node_modules/markdown/lib/index.js create mode 100644 node_modules/markdown/lib/markdown.js create mode 100644 node_modules/markdown/package.json create mode 100644 node_modules/markdown/seed.yml create mode 100644 node_modules/markdown/test/features.t.js create mode 100644 node_modules/markdown/test/features/blockquotes/contains_code.json create mode 100644 node_modules/markdown/test/features/blockquotes/contains_code.text create mode 100644 node_modules/markdown/test/features/blockquotes/lazy_wrapping.json create mode 100644 node_modules/markdown/test/features/blockquotes/lazy_wrapping.text create mode 100644 node_modules/markdown/test/features/blockquotes/leading_paras.json create mode 100644 node_modules/markdown/test/features/blockquotes/leading_paras.text create mode 100644 node_modules/markdown/test/features/blockquotes/nested.json create mode 100644 node_modules/markdown/test/features/blockquotes/nested.text create mode 100644 node_modules/markdown/test/features/blockquotes/simple.json create mode 100644 node_modules/markdown/test/features/blockquotes/simple.text create mode 100644 node_modules/markdown/test/features/blockquotes/spaceless.json create mode 100644 node_modules/markdown/test/features/blockquotes/spaceless.text create mode 100644 node_modules/markdown/test/features/code/blank_lines.json create mode 100644 node_modules/markdown/test/features/code/blank_lines.text create mode 100644 node_modules/markdown/test/features/code/block.json create mode 100644 node_modules/markdown/test/features/code/block.text create mode 100644 node_modules/markdown/test/features/code/embedded_backtick.json create mode 100644 node_modules/markdown/test/features/code/embedded_backtick.text create mode 100644 node_modules/markdown/test/features/code/horizontal_rules.json create mode 100644 node_modules/markdown/test/features/code/horizontal_rules.text create mode 100644 node_modules/markdown/test/features/code/inline.json create mode 100644 node_modules/markdown/test/features/code/inline.text create mode 100644 node_modules/markdown/test/features/code/inline_multiline.json create mode 100644 node_modules/markdown/test/features/code/inline_multiline.text create mode 100644 node_modules/markdown/test/features/code/trailing_para.json create mode 100644 node_modules/markdown/test/features/code/trailing_para.text create mode 100644 node_modules/markdown/test/features/definition_lists/inline.json create mode 100644 node_modules/markdown/test/features/definition_lists/inline.text create mode 100644 node_modules/markdown/test/features/definition_lists/long.json create mode 100644 node_modules/markdown/test/features/definition_lists/long.text create mode 100644 node_modules/markdown/test/features/definition_lists/multiple_definitions.json create mode 100644 node_modules/markdown/test/features/definition_lists/multiple_definitions.text create mode 100644 node_modules/markdown/test/features/definition_lists/multiple_terms.json create mode 100644 node_modules/markdown/test/features/definition_lists/multiple_terms.text create mode 100644 node_modules/markdown/test/features/definition_lists/tight.json create mode 100644 node_modules/markdown/test/features/definition_lists/tight.text create mode 100644 node_modules/markdown/test/features/emphasis/multiple_lines.json create mode 100644 node_modules/markdown/test/features/emphasis/multiple_lines.text create mode 100644 node_modules/markdown/test/features/emphasis/nested.json create mode 100644 node_modules/markdown/test/features/emphasis/nested.text create mode 100644 node_modules/markdown/test/features/emphasis/simple.json create mode 100644 node_modules/markdown/test/features/emphasis/simple.text create mode 100644 node_modules/markdown/test/features/headers/atx.json create mode 100644 node_modules/markdown/test/features/headers/atx.text create mode 100644 node_modules/markdown/test/features/headers/atx_closing_hashes.json create mode 100644 node_modules/markdown/test/features/headers/atx_closing_hashes.text create mode 100644 node_modules/markdown/test/features/headers/setext.json create mode 100644 node_modules/markdown/test/features/headers/setext.text create mode 100644 node_modules/markdown/test/features/headers/trailing_paras.json create mode 100644 node_modules/markdown/test/features/headers/trailing_paras.text create mode 100644 node_modules/markdown/test/features/horizontal_rules/abutting_blocks.json create mode 100644 node_modules/markdown/test/features/horizontal_rules/abutting_blocks.text create mode 100644 node_modules/markdown/test/features/horizontal_rules/dashes.json create mode 100644 node_modules/markdown/test/features/horizontal_rules/dashes.text create mode 100644 node_modules/markdown/test/features/horizontal_rules/leading_spaces.json create mode 100644 node_modules/markdown/test/features/horizontal_rules/leading_spaces.text create mode 100644 node_modules/markdown/test/features/horizontal_rules/long.json create mode 100644 node_modules/markdown/test/features/horizontal_rules/long.text create mode 100644 node_modules/markdown/test/features/horizontal_rules/long_loose.json create mode 100644 node_modules/markdown/test/features/horizontal_rules/long_loose.text create mode 100644 node_modules/markdown/test/features/horizontal_rules/loose_dashes.json create mode 100644 node_modules/markdown/test/features/horizontal_rules/loose_dashes.text create mode 100644 node_modules/markdown/test/features/horizontal_rules/loose_stars.json create mode 100644 node_modules/markdown/test/features/horizontal_rules/loose_stars.text create mode 100644 node_modules/markdown/test/features/horizontal_rules/loose_underscores.json create mode 100644 node_modules/markdown/test/features/horizontal_rules/loose_underscores.text create mode 100644 node_modules/markdown/test/features/horizontal_rules/stars.json create mode 100644 node_modules/markdown/test/features/horizontal_rules/stars.text create mode 100644 node_modules/markdown/test/features/horizontal_rules/underscores.json create mode 100644 node_modules/markdown/test/features/horizontal_rules/underscores.text create mode 100644 node_modules/markdown/test/features/images/basic.json create mode 100644 node_modules/markdown/test/features/images/basic.text create mode 100644 node_modules/markdown/test/features/images/crotcheted_url.json create mode 100644 node_modules/markdown/test/features/images/crotcheted_url.text create mode 100644 node_modules/markdown/test/features/images/crotcheted_url_with_title.json create mode 100644 node_modules/markdown/test/features/images/crotcheted_url_with_title.text create mode 100644 node_modules/markdown/test/features/images/empty.json create mode 100644 node_modules/markdown/test/features/images/empty.text create mode 100644 node_modules/markdown/test/features/images/spaces_round_title.json create mode 100644 node_modules/markdown/test/features/images/spaces_round_title.text create mode 100644 node_modules/markdown/test/features/images/title.json create mode 100644 node_modules/markdown/test/features/images/title.text create mode 100644 node_modules/markdown/test/features/linebreaks/simple.json create mode 100644 node_modules/markdown/test/features/linebreaks/simple.text create mode 100644 node_modules/markdown/test/features/links/autolink_email.json create mode 100644 node_modules/markdown/test/features/links/autolink_email.text create mode 100644 node_modules/markdown/test/features/links/autolink_in_code.json create mode 100644 node_modules/markdown/test/features/links/autolink_in_code.text create mode 100644 node_modules/markdown/test/features/links/autolink_url.json create mode 100644 node_modules/markdown/test/features/links/autolink_url.text create mode 100644 node_modules/markdown/test/features/links/case_insensitive.json create mode 100644 node_modules/markdown/test/features/links/case_insensitive.text create mode 100644 node_modules/markdown/test/features/links/implicit.json create mode 100644 node_modules/markdown/test/features/links/implicit.text create mode 100644 node_modules/markdown/test/features/links/inline.json create mode 100644 node_modules/markdown/test/features/links/inline.text create mode 100644 node_modules/markdown/test/features/links/inline_with_newline.json create mode 100644 node_modules/markdown/test/features/links/inline_with_newline.text create mode 100644 node_modules/markdown/test/features/links/inline_with_title.json create mode 100644 node_modules/markdown/test/features/links/inline_with_title.text create mode 100644 node_modules/markdown/test/features/links/missing_references.json create mode 100644 node_modules/markdown/test/features/links/missing_references.text create mode 100644 node_modules/markdown/test/features/links/parens_escaped_inline.json create mode 100644 node_modules/markdown/test/features/links/parens_escaped_inline.text create mode 100644 node_modules/markdown/test/features/links/parens_inline.json create mode 100644 node_modules/markdown/test/features/links/parens_inline.text create mode 100644 node_modules/markdown/test/features/links/parens_reference.json create mode 100644 node_modules/markdown/test/features/links/parens_reference.text create mode 100644 node_modules/markdown/test/features/links/ref_reuse.json create mode 100644 node_modules/markdown/test/features/links/ref_reuse.text create mode 100644 node_modules/markdown/test/features/links/reference.json create mode 100644 node_modules/markdown/test/features/links/reference.text create mode 100644 node_modules/markdown/test/features/links/reference_with_space.json create mode 100644 node_modules/markdown/test/features/links/reference_with_space.text create mode 100644 node_modules/markdown/test/features/lists/bullet_types.json create mode 100644 node_modules/markdown/test/features/lists/bullet_types.text create mode 100644 node_modules/markdown/test/features/lists/hr_abutting.json create mode 100644 node_modules/markdown/test/features/lists/hr_abutting.text create mode 100644 node_modules/markdown/test/features/lists/hr_inside.json create mode 100644 node_modules/markdown/test/features/lists/hr_inside.text create mode 100644 node_modules/markdown/test/features/lists/lazy_wrapping.json create mode 100644 node_modules/markdown/test/features/lists/lazy_wrapping.text create mode 100644 node_modules/markdown/test/features/lists/leading_whitespace.json create mode 100644 node_modules/markdown/test/features/lists/leading_whitespace.text create mode 100644 node_modules/markdown/test/features/lists/loose.json create mode 100644 node_modules/markdown/test/features/lists/loose.text create mode 100644 node_modules/markdown/test/features/lists/loose_with_inline.json create mode 100644 node_modules/markdown/test/features/lists/loose_with_inline.text create mode 100644 node_modules/markdown/test/features/lists/multiline_inline.json create mode 100644 node_modules/markdown/test/features/lists/multiline_inline.text create mode 100644 node_modules/markdown/test/features/lists/nested.json create mode 100644 node_modules/markdown/test/features/lists/nested.text create mode 100644 node_modules/markdown/test/features/lists/numeric.json create mode 100644 node_modules/markdown/test/features/lists/numeric.text create mode 100644 node_modules/markdown/test/features/lists/tight.json create mode 100644 node_modules/markdown/test/features/lists/tight.text create mode 100644 node_modules/markdown/test/features/meta/attribute.json create mode 100644 node_modules/markdown/test/features/meta/attribute.text create mode 100644 node_modules/markdown/test/features/meta/class.json create mode 100644 node_modules/markdown/test/features/meta/class.text create mode 100644 node_modules/markdown/test/features/meta/code.json create mode 100644 node_modules/markdown/test/features/meta/code.text create mode 100644 node_modules/markdown/test/features/meta/document.json create mode 100644 node_modules/markdown/test/features/meta/document.text create mode 100644 node_modules/markdown/test/features/meta/id.json create mode 100644 node_modules/markdown/test/features/meta/id.text create mode 100644 node_modules/markdown/test/features/meta/inline.json create mode 100644 node_modules/markdown/test/features/meta/inline.text create mode 100644 node_modules/markdown/test/features/meta/inner_whitespace.json create mode 100644 node_modules/markdown/test/features/meta/inner_whitespace.text create mode 100644 node_modules/markdown/test/features/meta/leading_whitespace.json create mode 100644 node_modules/markdown/test/features/meta/leading_whitespace.text create mode 100644 node_modules/markdown/test/features/meta/list.json create mode 100644 node_modules/markdown/test/features/meta/list.text create mode 100644 node_modules/markdown/test/features/meta/multiple_classes.json create mode 100644 node_modules/markdown/test/features/meta/multiple_classes.text create mode 100644 node_modules/markdown/test/features/meta/quoted.json create mode 100644 node_modules/markdown/test/features/meta/quoted.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Auto_links.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Auto_links.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Auto_links.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Blocks.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Blocks.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Blocks.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Spans.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Spans.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Spans.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Images.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Images.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Images.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).html create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.html create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_inline_style.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_inline_style.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_inline_style.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_reference_style.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_reference_style.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_reference_style.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tabs.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tabs.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tabs.xhtml create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tidyness.json create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tidyness.text create mode 100644 node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tidyness.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Headers.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Headers.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Headers.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).html create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.html create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.xhtml create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.json create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.text create mode 100644 node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.xhtml create mode 100644 node_modules/markdown/test/fixtures/README create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/CoreDumps5.8.json create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/CoreDumps5.8.text create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/CoreDumps5.8.xhtml create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Emphasis.json create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Emphasis.text create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Emphasis.xhtml create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML-Comment-encoding.json create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML-Comment-encoding.text create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML-Comment-encoding.xhtml create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML5-attributes.html create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML5-attributes.json create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML5-attributes.text create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_brackets.json create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_brackets.text create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_brackets.xhtml create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_1.html create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_1.json create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_1.text create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_2.html create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_2.json create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_2.text create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_reference_style.json create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_reference_style.text create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_reference_style.xhtml create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.json create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.text create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.xhtml create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/PHP-ASP_tags.json create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/PHP-ASP_tags.text create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/PHP-ASP_tags.xhtml create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Unicode.json create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Unicode.text create mode 100644 node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Unicode.xhtml create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/abbreviations.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/abbreviations.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/abbreviations.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/alt.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/alt.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/alt.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/blank.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/blank.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/blank.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/blanks_in_code.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/blanks_in_code.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/blanks_in_code.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_def.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_def.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_def.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_table.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_table.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_table.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/code.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/code.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/code.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/code2.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/code2.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/code2.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/code3.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/code3.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/code3.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/convert.pl create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/data_loss.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/data_loss.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/data_loss.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/easy.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/easy.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/easy.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/email.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/email.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/email.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/entities.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/entities.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/entities.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/escaping.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/escaping.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/escaping.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_dl.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_dl.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_dl.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_header_id.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_header_id.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_header_id.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_table1.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_table1.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_table1.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/footnotes.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/footnotes.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/footnotes.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/headers.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/headers.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/headers.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/hex_entities.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/hex_entities.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/hex_entities.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/hrule.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/hrule.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/hrule.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/html2.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/html2.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/html2.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/html3.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/html3.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/html3.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/html4.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/html4.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/html4.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/html5.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/html5.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/html5.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/ie.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/ie.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/ie.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/images.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/images.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/images.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/images2.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/images2.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/images2.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html2.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html2.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html2.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/links.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/links.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/links.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/list1.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/list1.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/list1.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/list2.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/list2.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/list2.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/list3.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/list3.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/list3.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/list4.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/list4.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/list4.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists11.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists11.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists11.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists6.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists6.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists6.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7b.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7b.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7b.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists8.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists8.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists8.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists9.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists9.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists9.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_after_paragraph.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_after_paragraph.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_after_paragraph.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_ol.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_ol.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_ol.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/loss.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/loss.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/loss.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/misc_sw.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/misc_sw.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/misc_sw.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/olist.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/olist.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/olist.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/one.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/one.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/one.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraph.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraph.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraph.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraphs.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraphs.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraphs.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/smartypants.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/smartypants.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/smartypants.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/syntax_hl.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/syntax_hl.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/syntax_hl.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/table_attributes.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/table_attributes.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/table_attributes.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/test.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/test.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/test.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/wrapping.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/wrapping.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/wrapping.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/xml.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/xml.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/xml.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/xml2.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/xml2.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/xml2.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/xml3.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/xml3.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/xml3.text create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/xml_instruction.html create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/xml_instruction.json create mode 100644 node_modules/markdown/test/fixtures/docs-maruku-unittest/xml_instruction.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Abbr.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Abbr.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Abbr.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Definition_Lists.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Definition_Lists.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Definition_Lists.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Emphasis.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Emphasis.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Emphasis.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Footnotes.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Footnotes.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Footnotes.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Tables.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Tables.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-extra/Tables.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Email_auto_links.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Email_auto_links.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Email_auto_links.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Emphasis.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Emphasis.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Emphasis.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Inline_HTML_(Span).html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Inline_HTML_(Span).json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Inline_HTML_(Span).text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Ins_and_del.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Ins_and_del.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Ins_and_del.xhtml create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Links_inline_style.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Links_inline_style.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Links_inline_style.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Nesting.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Nesting.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Nesting.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Parens_in_URL.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Parens_in_URL.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown-todo/Parens_in_URL.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Backslash_escapes.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Backslash_escapes.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Backslash_escapes.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Code_Spans.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Code_Spans.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Code_Spans.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Code_block_in_a_list_item.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Code_block_in_a_list_item.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Code_block_in_a_list_item.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Headers.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Headers.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Headers.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Images_(Untitled).html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Images_(Untitled).json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Images_(Untitled).text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_(Simple).html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_(Simple).json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_(Simple).text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_comments.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_comments.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_comments.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/PHP-Specific_Bugs.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/PHP-Specific_Bugs.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/PHP-Specific_Bugs.text create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Tight_blocks.html create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Tight_blocks.json create mode 100644 node_modules/markdown/test/fixtures/docs-php-markdown/Tight_blocks.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codeblock.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codeblock.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codeblock.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emphasis.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emphasis.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emphasis.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/escapes.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/escapes.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/escapes.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/header.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/header.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/header.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/hr.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/hr.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/hr.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/img_in_link.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/img_in_link.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/img_in_link.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/inline_links.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/inline_links.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/inline_links.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/lists.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/lists.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/lists.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/raw_html.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/raw_html.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/raw_html.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/ref_links.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/ref_links.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/ref_links.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/sublist-para.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/sublist-para.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/sublist-para.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.opts create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.text create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.html create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.json create mode 100644 node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.text create mode 100644 node_modules/markdown/test/interface.t.js create mode 100644 node_modules/markdown/test/regressions.t.js create mode 100644 node_modules/narcissus.js create mode 100644 node_modules/narcissus/LICENSE create mode 100644 node_modules/narcissus/README.md create mode 100644 node_modules/narcissus/harmony-tests/README.txt create mode 100644 node_modules/narcissus/harmony-tests/fail-execute/eval-export.js create mode 100644 node_modules/narcissus/harmony-tests/fail-execute/eval-resolve1.js create mode 100644 node_modules/narcissus/harmony-tests/fail-execute/eval-resolve2.js create mode 100644 node_modules/narcissus/harmony-tests/fail-execute/module-uninit-read.js create mode 100644 node_modules/narcissus/harmony-tests/fail-resolve/export-cycle1.js create mode 100644 node_modules/narcissus/harmony-tests/fail-resolve/export-cycle2.js create mode 100644 node_modules/narcissus/harmony-tests/fail-resolve/export-cycle3.js create mode 100644 node_modules/narcissus/harmony-tests/fail-resolve/export-cycle4.js create mode 100644 node_modules/narcissus/harmony-tests/fail-resolve/export-unbound-var.js create mode 100644 node_modules/narcissus/harmony-tests/fail-resolve/import-eval1.js create mode 100644 node_modules/narcissus/harmony-tests/fail-resolve/import-eval2.js create mode 100644 node_modules/narcissus/harmony-tests/fail-resolve/module-rebind-assignment1.js create mode 100644 node_modules/narcissus/harmony-tests/fail-resolve/unbound-read.js create mode 100644 node_modules/narcissus/harmony-tests/fail-resolve/unbound-write.js create mode 100755 node_modules/narcissus/harmony-tests/run.sh create mode 100644 node_modules/narcissus/harmony-tests/succeed/eval-import1.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/eval-import2.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/eval-module1.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/eval-module2.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/eval-resolve1.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/eval-resolve2.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/export-bound-var.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/export-var.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/global-this.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/incomplete-module1.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/incomplete-module2.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/module-completion.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/module-rebind1.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/module-rebind2.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/module-rebind3.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/module-this.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/re-export1.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/re-export2.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/uninitialized-module1.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/uninitialized-module2.js create mode 100644 node_modules/narcissus/harmony-tests/succeed/uninitialized-module3.js create mode 100755 node_modules/narcissus/jstests create mode 100644 node_modules/narcissus/lib.zip create mode 100644 node_modules/narcissus/lib/decompiler.js create mode 100644 node_modules/narcissus/lib/definitions.js create mode 100644 node_modules/narcissus/lib/jsbrowser.js create mode 100644 node_modules/narcissus/lib/jsdecomp.js create mode 100644 node_modules/narcissus/lib/jsdefs.js create mode 100644 node_modules/narcissus/lib/jsexec.js create mode 100644 node_modules/narcissus/lib/jslex.js create mode 100644 node_modules/narcissus/lib/jsparse.js create mode 100644 node_modules/narcissus/lib/jsresolve.js create mode 100644 node_modules/narcissus/lib/lexer.js create mode 100644 node_modules/narcissus/lib/parser.js create mode 100644 node_modules/narcissus/main.js create mode 100755 node_modules/narcissus/njs create mode 100644 node_modules/narcissus/package.json create mode 100644 node_modules/narcissus/xfail/narcissus-failures.txt create mode 100644 node_modules/narcissus/xfail/narcissus-slow.txt create mode 100644 node_modules/nodeunit/.gitignore create mode 100644 node_modules/nodeunit/.npmignore create mode 100644 node_modules/nodeunit/CONTRIBUTORS.md create mode 100644 node_modules/nodeunit/LICENSE create mode 100644 node_modules/nodeunit/Makefile create mode 100644 node_modules/nodeunit/README.md create mode 100755 node_modules/nodeunit/bin/nodeunit create mode 100644 node_modules/nodeunit/bin/nodeunit.json create mode 100644 node_modules/nodeunit/deps/async.js create mode 100644 node_modules/nodeunit/deps/ejs.js create mode 100644 node_modules/nodeunit/deps/json2.js create mode 100644 node_modules/nodeunit/doc/nodeunit.md create mode 100644 node_modules/nodeunit/examples/browser/nodeunit.js create mode 100644 node_modules/nodeunit/examples/browser/suite1.js create mode 100644 node_modules/nodeunit/examples/browser/suite2.js create mode 100644 node_modules/nodeunit/examples/browser/test.html create mode 100644 node_modules/nodeunit/img/example_fail.png create mode 100644 node_modules/nodeunit/img/example_pass.png create mode 100644 node_modules/nodeunit/index.js create mode 100644 node_modules/nodeunit/lib/assert.js create mode 100644 node_modules/nodeunit/lib/core.js create mode 100644 node_modules/nodeunit/lib/nodeunit.js create mode 100644 node_modules/nodeunit/lib/reporters/browser.js create mode 100644 node_modules/nodeunit/lib/reporters/default.js create mode 100644 node_modules/nodeunit/lib/reporters/html.js create mode 100644 node_modules/nodeunit/lib/reporters/index.js create mode 100644 node_modules/nodeunit/lib/reporters/junit.js create mode 100644 node_modules/nodeunit/lib/reporters/minimal.js create mode 100644 node_modules/nodeunit/lib/reporters/skip_passed.js create mode 100644 node_modules/nodeunit/lib/track.js create mode 100644 node_modules/nodeunit/lib/types.js create mode 100644 node_modules/nodeunit/lib/utils.js create mode 100644 node_modules/nodeunit/man1/nodeunit.1 create mode 100644 node_modules/nodeunit/nodelint.cfg create mode 100644 node_modules/nodeunit/package.json create mode 100644 node_modules/nodeunit/share/junit.xml.ejs create mode 100644 node_modules/nodeunit/share/license.js create mode 100644 node_modules/nodeunit/share/nodeunit.css create mode 100644 node_modules/nodeunit/test/fixtures/coffee/mock_coffee_module.coffee create mode 100644 node_modules/nodeunit/test/fixtures/dir/mock_module3.js create mode 100644 node_modules/nodeunit/test/fixtures/dir/mock_module4.js create mode 100644 node_modules/nodeunit/test/fixtures/mock_module1.js create mode 100644 node_modules/nodeunit/test/fixtures/mock_module2.js create mode 100644 node_modules/nodeunit/test/fixtures/raw_jscode1.js create mode 100644 node_modules/nodeunit/test/fixtures/raw_jscode2.js create mode 100644 node_modules/nodeunit/test/fixtures/raw_jscode3.js create mode 100644 node_modules/nodeunit/test/test-base.js create mode 100644 node_modules/nodeunit/test/test-failing-callbacks.js create mode 100644 node_modules/nodeunit/test/test-httputil.js create mode 100644 node_modules/nodeunit/test/test-runfiles.js create mode 100644 node_modules/nodeunit/test/test-runmodule.js create mode 100644 node_modules/nodeunit/test/test-runtest.js create mode 100644 node_modules/nodeunit/test/test-sandbox.js create mode 100644 node_modules/nodeunit/test/test-testcase.js create mode 100644 node_modules/nodeunit/test/test.html create mode 100644 node_modules/signals/.gitignore create mode 100644 node_modules/signals/.npmignore create mode 100644 node_modules/signals/CHANGELOG.markdown create mode 100644 node_modules/signals/README.markdown create mode 100644 node_modules/signals/dist/docs/files.html create mode 100644 node_modules/signals/dist/docs/index.html create mode 100644 node_modules/signals/dist/docs/static/default.css create mode 100644 node_modules/signals/dist/docs/symbolindex.html create mode 100644 node_modules/signals/dist/docs/symbols/_global_.html create mode 100644 node_modules/signals/dist/docs/symbols/signals.Signal.html create mode 100644 node_modules/signals/dist/docs/symbols/signals.SignalBinding.html create mode 100644 node_modules/signals/dist/docs/symbols/signals.html create mode 100644 node_modules/signals/dist/docs/symbols/src/_Users_millermedeiros_Projects__open_source_js-signals_dist_js-signals.js.html create mode 100644 node_modules/signals/dist/js-signals.cjs.js create mode 100644 node_modules/signals/package.json create mode 100644 node_modules/underscore.string/.gitignore create mode 100644 node_modules/underscore.string/.hgignore create mode 100644 node_modules/underscore.string/README.markdown create mode 100644 node_modules/underscore.string/Rakefile create mode 100644 node_modules/underscore.string/dist/underscore.string.min.js create mode 100644 node_modules/underscore.string/lib/underscore.string.js create mode 100644 node_modules/underscore.string/package.json create mode 100644 node_modules/underscore.string/test/speed.js create mode 100644 node_modules/underscore.string/test/strings.js create mode 100644 node_modules/underscore.string/test/test.html create mode 100644 node_modules/underscore.string/test/test_underscore/arrays.js create mode 100644 node_modules/underscore.string/test/test_underscore/chaining.js create mode 100644 node_modules/underscore.string/test/test_underscore/collections.js create mode 100644 node_modules/underscore.string/test/test_underscore/functions.js create mode 100644 node_modules/underscore.string/test/test_underscore/objects.js create mode 100644 node_modules/underscore.string/test/test_underscore/speed.js create mode 100644 node_modules/underscore.string/test/test_underscore/temp.js create mode 100644 node_modules/underscore.string/test/test_underscore/temp_tests.html create mode 100644 node_modules/underscore.string/test/test_underscore/test.html create mode 100644 node_modules/underscore.string/test/test_underscore/utility.js create mode 100644 node_modules/underscore.string/test/underscore.js create mode 100644 node_modules/underscore/.npmignore create mode 100644 node_modules/underscore/LICENSE create mode 100644 node_modules/underscore/README create mode 100644 node_modules/underscore/index.html create mode 100644 node_modules/underscore/index.js create mode 100644 node_modules/underscore/package.json create mode 100644 node_modules/underscore/underscore.js create mode 100644 package.json create mode 100644 plugin/md.js create mode 100644 rhino_modules/fs/index.js create mode 100644 rhino_modules/path/index.js create mode 100644 rhino_modules/sys/index.js create mode 100755 test-rhino.js create mode 100644 test.js create mode 100644 test/examples/only_comments.js create mode 100644 test/jsdoc_parser.js create mode 100644 test/jsdoc_parser_comments.js create mode 100644 test/jsdoc_parser_function.js create mode 100644 test/narcissus.js diff --git a/conf.json b/conf.json new file mode 100644 index 000000000..aab9c0a16 --- /dev/null +++ b/conf.json @@ -0,0 +1,5 @@ +{ + "plugins": [ + "./plugin/md" + ] +} \ No newline at end of file diff --git a/jsdoc.js b/jsdoc.js new file mode 100644 index 000000000..36d520dcc --- /dev/null +++ b/jsdoc.js @@ -0,0 +1,51 @@ +// like: java -classpath ~/Scripts/js.jar org.mozilla.javascript.tools.shell.Main jsdoc.js examples/test1.js +// or: node jsdoc examples/test1.js + +(function() { + + // normalise rhino + if (typeof load !== 'undefined') { + load('lib/rhino-shim.js'); + } + + // global modules + global._ = require('underscore'); + _.mixin(require('underscore.string')); + global.signals = require('signals'); + + // needed modules + var fs = require('fs'), + opts = require('jsdoc/options').parse( process.argv.slice(2) ), + dumper = require('jsdoc/util/dumper'); + + // user configuration + try { + var conf = JSON.parse( + fs.readFileSync('./conf.json', 'utf-8') + ); + } + catch (e) { + throw('Configuration file cannot be evaluated. '+e); + } + + if (typeof conf.plugins !== 'undefined') { + for (var i = 0, len = conf.plugins.length; i < len; i++) { + require(conf.plugins[i]); + } + } + + if (opts.help) { + console.log('USAGE: node main.js yourfile.js'); + process.exit(0); + } + var srcFile = opts._[0]; + + var src = fs.readFileSync(srcFile, 'utf-8'); + + var parser = require('jsdoc/parser'); + + var symbols = parser.parse(src); + + console.log( dumper.dump(symbols) ); + +})(); \ No newline at end of file diff --git a/lib/json.js b/lib/json.js new file mode 100644 index 000000000..ae21742e0 --- /dev/null +++ b/lib/json.js @@ -0,0 +1,238 @@ +// This source code is free for use in the public domain. +// NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + +// http://code.google.com/p/json-sans-eval/ + +/** + * Parses a string of well-formed JSON text. + * + * If the input is not well-formed, then behavior is undefined, but it is + * deterministic and is guaranteed not to modify any object other than its + * return value. + * + * This does not use `eval` so is less likely to have obscure security bugs than + * json2.js. + * It is optimized for speed, so is much faster than json_parse.js. + * + * This library should be used whenever security is a concern (when JSON may + * come from an untrusted source), speed is a concern, and erroring on malformed + * JSON is *not* a concern. + * + * Pros Cons + * +-----------------------+-----------------------+ + * json_sans_eval.js | Fast, secure | Not validating | + * +-----------------------+-----------------------+ + * json_parse.js | Validating, secure | Slow | + * +-----------------------+-----------------------+ + * json2.js | Fast, some validation | Potentially insecure | + * +-----------------------+-----------------------+ + * + * json2.js is very fast, but potentially insecure since it calls `eval` to + * parse JSON data, so an attacker might be able to supply strange JS that + * looks like JSON, but that executes arbitrary javascript. + * If you do have to use json2.js with untrusted data, make sure you keep + * your version of json2.js up to date so that you get patches as they're + * released. + * + * @param {string} json per RFC 4627 + * @param {function (this:Object, string, *):*} opt_reviver optional function + * that reworks JSON objects post-parse per Chapter 15.12 of EcmaScript3.1. + * If supplied, the function is called with a string key, and a value. + * The value is the property of 'this'. The reviver should return + * the value to use in its place. So if dates were serialized as + * {@code { "type": "Date", "time": 1234 }}, then a reviver might look like + * {@code + * function (key, value) { + * if (value && typeof value === 'object' && 'Date' === value.type) { + * return new Date(value.time); + * } else { + * return value; + * } + * }}. + * If the reviver returns {@code undefined} then the property named by key + * will be deleted from its container. + * {@code this} is bound to the object containing the specified property. + * @return {Object|Array} + * @author Mike Samuel + */ +var jsonParse = (function () { + var number + = '(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)'; + var oneChar = '(?:[^\\0-\\x08\\x0a-\\x1f\"\\\\]' + + '|\\\\(?:[\"/\\\\bfnrt]|u[0-9A-Fa-f]{4}))'; + var string = '(?:\"' + oneChar + '*\")'; + + // Will match a value in a well-formed JSON file. + // If the input is not well-formed, may match strangely, but not in an unsafe + // way. + // Since this only matches value tokens, it does not match whitespace, colons, + // or commas. + var jsonToken = new RegExp( + '(?:false|true|null|[\\{\\}\\[\\]]' + + '|' + number + + '|' + string + + ')', 'g'); + + // Matches escape sequences in a string literal + var escapeSequence = new RegExp('\\\\(?:([^u])|u(.{4}))', 'g'); + + // Decodes escape sequences in object literals + var escapes = { + '"': '"', + '/': '/', + '\\': '\\', + 'b': '\b', + 'f': '\f', + 'n': '\n', + 'r': '\r', + 't': '\t' + }; + function unescapeOne(_, ch, hex) { + return ch ? escapes[ch] : String.fromCharCode(parseInt(hex, 16)); + } + + // A non-falsy value that coerces to the empty string when used as a key. + var EMPTY_STRING = new String(''); + var SLASH = '\\'; + + // Constructor to use based on an open token. + var firstTokenCtors = { '{': Object, '[': Array }; + + var hop = Object.hasOwnProperty; + + return function (json, opt_reviver) { + // Split into tokens + var toks = json.match(jsonToken); + // Construct the object to return + var result; + var tok = toks[0]; + var topLevelPrimitive = false; + if ('{' === tok) { + result = {}; + } else if ('[' === tok) { + result = []; + } else { + // The RFC only allows arrays or objects at the top level, but the JSON.parse + // defined by the EcmaScript 5 draft does allow strings, booleans, numbers, and null + // at the top level. + result = []; + topLevelPrimitive = true; + } + + // If undefined, the key in an object key/value record to use for the next + // value parsed. + var key; + // Loop over remaining tokens maintaining a stack of uncompleted objects and + // arrays. + var stack = [result]; + for (var i = 1 - topLevelPrimitive, n = toks.length; i < n; ++i) { + tok = toks[i]; + + var cont; + switch (tok.charCodeAt(0)) { + default: // sign or digit + cont = stack[0]; + cont[key || cont.length] = +(tok); + key = void 0; + break; + case 0x22: // '"' + tok = tok.substring(1, tok.length - 1); + if (tok.indexOf(SLASH) !== -1) { + tok = tok.replace(escapeSequence, unescapeOne); + } + cont = stack[0]; + if (!key) { + if (cont instanceof Array) { + key = cont.length; + } else { + key = tok || EMPTY_STRING; // Use as key for next value seen. + break; + } + } + cont[key] = tok; + key = void 0; + break; + case 0x5b: // '[' + cont = stack[0]; + stack.unshift(cont[key || cont.length] = []); + key = void 0; + break; + case 0x5d: // ']' + stack.shift(); + break; + case 0x66: // 'f' + cont = stack[0]; + cont[key || cont.length] = false; + key = void 0; + break; + case 0x6e: // 'n' + cont = stack[0]; + cont[key || cont.length] = null; + key = void 0; + break; + case 0x74: // 't' + cont = stack[0]; + cont[key || cont.length] = true; + key = void 0; + break; + case 0x7b: // '{' + cont = stack[0]; + stack.unshift(cont[key || cont.length] = {}); + key = void 0; + break; + case 0x7d: // '}' + stack.shift(); + break; + } + } + // Fail if we've got an uncompleted object. + if (topLevelPrimitive) { + if (stack.length !== 1) { throw new Error(); } + result = result[0]; + } else { + if (stack.length) { throw new Error(); } + } + + if (opt_reviver) { + // Based on walk as implemented in http://www.json.org/json2.js + var walk = function (holder, key) { + var value = holder[key]; + if (value && typeof value === 'object') { + var toDelete = null; + for (var k in value) { + if (hop.call(value, k) && value !== holder) { + // Recurse to properties first. This has the effect of causing + // the reviver to be called on the object graph depth-first. + + // Since 'this' is bound to the holder of the property, the + // reviver can access sibling properties of k including ones + // that have not yet been revived. + + // The value returned by the reviver is used in place of the + // current value of property k. + // If it returns undefined then the property is deleted. + var v = walk(value, k); + if (v !== void 0) { + value[k] = v; + } else { + // Deleting properties inside the loop has vaguely defined + // semantics in ES3 and ES3.1. + if (!toDelete) { toDelete = []; } + toDelete.push(k); + } + } + } + if (toDelete) { + for (var i = toDelete.length; --i >= 0;) { + delete value[toDelete[i]]; + } + } + } + return opt_reviver.call(holder, key, value); + }; + result = walk({ '': result }, ''); + } + + return result; + }; +})(); \ No newline at end of file diff --git a/lib/nodeunit.js b/lib/nodeunit.js new file mode 100644 index 000000000..df267910d --- /dev/null +++ b/lib/nodeunit.js @@ -0,0 +1,1761 @@ +/*! + * Nodeunit + * https://github.com/caolan/nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + * + * json2.js + * http://www.JSON.org/json2.js + * Public Domain. + * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + */ +nodeunit = (function(){ +/* + http://www.JSON.org/json2.js + 2010-11-17 + + Public Domain. + + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + + See http://www.JSON.org/js.html + + + This code should be minified before deployment. + See http://javascript.crockford.com/jsmin.html + + USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO + NOT CONTROL. + + + This file creates a global JSON object containing two methods: stringify + and parse. + + JSON.stringify(value, replacer, space) + value any JavaScript value, usually an object or array. + + replacer an optional parameter that determines how object + values are stringified for objects. It can be a + function or an array of strings. + + space an optional parameter that specifies the indentation + of nested structures. If it is omitted, the text will + be packed without extra whitespace. If it is a number, + it will specify the number of spaces to indent at each + level. If it is a string (such as '\t' or ' '), + it contains the characters used to indent at each level. + + This method produces a JSON text from a JavaScript value. + + When an object value is found, if the object contains a toJSON + method, its toJSON method will be called and the result will be + stringified. A toJSON method does not serialize: it returns the + value represented by the name/value pair that should be serialized, + or undefined if nothing should be serialized. The toJSON method + will be passed the key associated with the value, and this will be + bound to the value + + For example, this would serialize Dates as ISO strings. + + Date.prototype.toJSON = function (key) { + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + + You can provide an optional replacer method. It will be passed the + key and value of each member, with this bound to the containing + object. The value that is returned from your method will be + serialized. If your method returns undefined, then the member will + be excluded from the serialization. + + If the replacer parameter is an array of strings, then it will be + used to select the members to be serialized. It filters the results + such that only members with keys listed in the replacer array are + stringified. + + Values that do not have JSON representations, such as undefined or + functions, will not be serialized. Such values in objects will be + dropped; in arrays they will be replaced with null. You can use + a replacer function to replace those with JSON values. + JSON.stringify(undefined) returns undefined. + + The optional space parameter produces a stringification of the + value that is filled with line breaks and indentation to make it + easier to read. + + If the space parameter is a non-empty string, then that string will + be used for indentation. If the space parameter is a number, then + the indentation will be that many spaces. + + Example: + + text = JSON.stringify(['e', {pluribus: 'unum'}]); + // text is '["e",{"pluribus":"unum"}]' + + + text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); + // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' + + text = JSON.stringify([new Date()], function (key, value) { + return this[key] instanceof Date ? + 'Date(' + this[key] + ')' : value; + }); + // text is '["Date(---current time---)"]' + + + JSON.parse(text, reviver) + This method parses a JSON text to produce an object or array. + It can throw a SyntaxError exception. + + The optional reviver parameter is a function that can filter and + transform the results. It receives each of the keys and values, + and its return value is used instead of the original value. + If it returns what it received, then the structure is not modified. + If it returns undefined then the member is deleted. + + Example: + + // Parse the text. Values that look like ISO date strings will + // be converted to Date objects. + + myData = JSON.parse(text, function (key, value) { + var a; + if (typeof value === 'string') { + a = +/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); + if (a) { + return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], + +a[5], +a[6])); + } + } + return value; + }); + + myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { + var d; + if (typeof value === 'string' && + value.slice(0, 5) === 'Date(' && + value.slice(-1) === ')') { + d = new Date(value.slice(5, -1)); + if (d) { + return d; + } + } + return value; + }); + + + This is a reference implementation. You are free to copy, modify, or + redistribute. +*/ + +/*jslint evil: true, strict: false, regexp: false */ + +/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, + call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, + getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, + lastIndex, length, parse, prototype, push, replace, slice, stringify, + test, toJSON, toString, valueOf +*/ + + +// Create a JSON object only if one does not already exist. We create the +// methods in a closure to avoid creating global variables. + +if (!this.JSON) { + this.JSON = {}; +} + +(function () { + "use strict"; + + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + if (typeof Date.prototype.toJSON !== 'function') { + + Date.prototype.toJSON = function (key) { + + return isFinite(this.valueOf()) ? + this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z' : null; + }; + + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + + + function quote(string) { + +// If the string contains no control characters, no quote characters, and no +// backslash characters, then we can safely slap some quotes around it. +// Otherwise we must also replace the offending characters with safe escape +// sequences. + + escapable.lastIndex = 0; + return escapable.test(string) ? + '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : + '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : + '"' + string + '"'; + } + + + function str(key, holder) { + +// Produce a string from holder[key]. + + var i, // The loop counter. + k, // The member key. + v, // The member value. + length, + mind = gap, + partial, + value = holder[key]; + +// If the value has a toJSON method, call it to obtain a replacement value. + + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + +// If we were called with a replacer function, then call the replacer to +// obtain a replacement value. + + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + +// What happens next depends on the value's type. + + switch (typeof value) { + case 'string': + return quote(value); + + case 'number': + +// JSON numbers must be finite. Encode non-finite numbers as null. + + return isFinite(value) ? String(value) : 'null'; + + case 'boolean': + case 'null': + +// If the value is a boolean or null, convert it to a string. Note: +// typeof null does not produce 'null'. The case is included here in +// the remote chance that this gets fixed someday. + + return String(value); + +// If the type is 'object', we might be dealing with an object or an array or +// null. + + case 'object': + +// Due to a specification blunder in ECMAScript, typeof null is 'object', +// so watch out for that case. + + if (!value) { + return 'null'; + } + +// Make an array to hold the partial results of stringifying this object value. + + gap += indent; + partial = []; + +// Is the value an array? + + if (Object.prototype.toString.apply(value) === '[object Array]') { + +// The value is an array. Stringify every element. Use null as a placeholder +// for non-JSON values. + + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + +// Join all of the elements together, separated with commas, and wrap them in +// brackets. + + v = partial.length === 0 ? '[]' : + gap ? '[\n' + gap + + partial.join(',\n' + gap) + '\n' + + mind + ']' : + '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + +// If the replacer is an array, use it to select the members to be stringified. + + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + k = rep[i]; + if (typeof k === 'string') { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + +// Otherwise, iterate through all of the keys in the object. + + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + +// Join all of the member texts together, separated with commas, +// and wrap them in braces. + + v = partial.length === 0 ? '{}' : + gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + +// If the JSON object does not yet have a stringify method, give it one. + + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + +// The stringify method takes a value and an optional replacer, and an optional +// space parameter, and returns a JSON text. The replacer can be a function +// that can replace values, or an array of strings that will select the keys. +// A default replacer method can be provided. Use of the space parameter can +// produce text that is more easily readable. + + var i; + gap = ''; + indent = ''; + +// If the space parameter is a number, make an indent string containing that +// many spaces. + + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + +// If the space parameter is a string, it will be used as the indent string. + + } else if (typeof space === 'string') { + indent = space; + } + +// If there is a replacer, it must be a function or an array. +// Otherwise, throw an error. + + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + +// Make a fake root object containing our value under the key of ''. +// Return the result of stringifying the value. + + return str('', {'': value}); + }; + } + + +// If the JSON object does not yet have a parse method, give it one. + + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + +// The parse method takes a text and an optional reviver function, and returns +// a JavaScript value if the text is a valid JSON text. + + var j; + + function walk(holder, key) { + +// The walk method is used to recursively walk the resulting structure so +// that modifications can be made. + + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + + +// Parsing happens in four stages. In the first stage, we replace certain +// Unicode characters with escape sequences. JavaScript handles many characters +// incorrectly, either silently deleting them, or treating them as line endings. + + text = String(text); + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + +// In the second stage, we run the text against regular expressions that look +// for non-JSON patterns. We are especially concerned with '()' and 'new' +// because they can cause invocation, and '=' because it can cause mutation. +// But just to be safe, we want to reject all unexpected forms. + +// We split the second stage into 4 regexp operations in order to work around +// crippling inefficiencies in IE's and Safari's regexp engines. First we +// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we +// replace all simple value tokens with ']' characters. Third, we delete all +// open brackets that follow a colon or comma or that begin the text. Finally, +// we look to see that the remaining characters are only whitespace or ']' or +// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. + + if (/^[\],:{}\s]*$/ +.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') +.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') +.replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + +// In the third stage we use the eval function to compile the text into a +// JavaScript structure. The '{' operator is subject to a syntactic ambiguity +// in JavaScript: it can begin a block or an object literal. We wrap the text +// in parens to eliminate the ambiguity. + + j = eval('(' + text + ')'); + +// In the optional fourth stage, we recursively walk the new structure, passing +// each name/value pair to a reviver function for possible transformation. + + return typeof reviver === 'function' ? + walk({'': j}, '') : j; + } + +// If the text is not JSON parseable, then a SyntaxError is thrown. + + throw new SyntaxError('JSON.parse'); + }; + } +}()); +var assert = {}; +var types = {}; +var core = {}; +var nodeunit = {}; +var reporter = {}; +(function(){ + + var async = {}; + + // global on the server, window in the browser + var root = this; + var previous_async = root.async; + + if(typeof module !== 'undefined' && module.exports) module.exports = async; + else root.async = async; + + async.noConflict = function(){ + root.async = previous_async; + return async; + }; + + //// cross-browser compatiblity functions //// + + var _forEach = function(arr, iterator){ + if(arr.forEach) return arr.forEach(iterator); + for(var i=0; i b ? 1 : 0; + }), function(x){return x.value;})); + }) + }; + + async.auto = function(tasks, callback){ + callback = callback || function(){}; + var keys = _keys(tasks); + if(!keys.length) return callback(null); + + var completed = []; + + var listeners = []; + var addListener = function(fn){ + listeners.unshift(fn); + }; + var removeListener = function(fn){ + for(var i=0; i +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the 'Software'), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +var pSlice = Array.prototype.slice; + +// 1. The assert module provides functions that throw +// AssertionError's when particular conditions are not met. The +// assert module must conform to the following interface. + +var assert = exports; + +// 2. The AssertionError is defined in assert. +// new assert.AssertionError({message: message, actual: actual, expected: expected}) + +assert.AssertionError = function AssertionError (options) { + this.name = "AssertionError"; + this.message = options.message; + this.actual = options.actual; + this.expected = options.expected; + this.operator = options.operator; + var stackStartFunction = options.stackStartFunction || fail; + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, stackStartFunction); + } +}; +// code from util.inherits in node +assert.AssertionError.super_ = Error; + + +// EDITED FOR BROWSER COMPATIBILITY: replaced Object.create call +// TODO: test what effect this may have +var ctor = function () { this.constructor = assert.AssertionError; }; +ctor.prototype = Error.prototype; +assert.AssertionError.prototype = new ctor(); + + +assert.AssertionError.prototype.toString = function() { + if (this.message) { + return [this.name+":", this.message].join(' '); + } else { + return [ this.name+":" + , JSON.stringify(this.expected ) + , this.operator + , JSON.stringify(this.actual) + ].join(" "); + } +}; + +// assert.AssertionError instanceof Error + +assert.AssertionError.__proto__ = Error.prototype; + +// At present only the three keys mentioned above are used and +// understood by the spec. Implementations or sub modules can pass +// other keys to the AssertionError's constructor - they will be +// ignored. + +// 3. All of the following functions must throw an AssertionError +// when a corresponding condition is not met, with a message that +// may be undefined if not provided. All assertion methods provide +// both the actual and expected values to the assertion error for +// display purposes. + +function fail(actual, expected, message, operator, stackStartFunction) { + throw new assert.AssertionError({ + message: message, + actual: actual, + expected: expected, + operator: operator, + stackStartFunction: stackStartFunction + }); +} + +// EXTENSION! allows for well behaved errors defined elsewhere. +assert.fail = fail; + +// 4. Pure assertion tests whether a value is truthy, as determined +// by !!guard. +// assert.ok(guard, message_opt); +// This statement is equivalent to assert.equal(true, guard, +// message_opt);. To test strictly for the value true, use +// assert.strictEqual(true, guard, message_opt);. + +assert.ok = function ok(value, message) { + if (!!!value) fail(value, true, message, "==", assert.ok); +}; + +// 5. The equality assertion tests shallow, coercive equality with +// ==. +// assert.equal(actual, expected, message_opt); + +assert.equal = function equal(actual, expected, message) { + if (actual != expected) fail(actual, expected, message, "==", assert.equal); +}; + +// 6. The non-equality assertion tests for whether two objects are not equal +// with != assert.notEqual(actual, expected, message_opt); + +assert.notEqual = function notEqual(actual, expected, message) { + if (actual == expected) { + fail(actual, expected, message, "!=", assert.notEqual); + } +}; + +// 7. The equivalence assertion tests a deep equality relation. +// assert.deepEqual(actual, expected, message_opt); + +assert.deepEqual = function deepEqual(actual, expected, message) { + if (!_deepEqual(actual, expected)) { + fail(actual, expected, message, "deepEqual", assert.deepEqual); + } +}; + +function _deepEqual(actual, expected) { + // 7.1. All identical values are equivalent, as determined by ===. + if (actual === expected) { + return true; + + } else if (Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) { + if (actual.length != expected.length) return false; + + for (var i = 0; i < actual.length; i++) { + if (actual[i] !== expected[i]) return false; + } + + return true; + + // 7.2. If the expected value is a Date object, the actual value is + // equivalent if it is also a Date object that refers to the same time. + } else if (actual instanceof Date && expected instanceof Date) { + return actual.getTime() === expected.getTime(); + + // 7.3. Other pairs that do not both pass typeof value == "object", + // equivalence is determined by ==. + } else if (typeof actual != 'object' && typeof expected != 'object') { + return actual == expected; + + // 7.4. For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical "prototype" property. Note: this + // accounts for both named and indexed properties on Arrays. + } else { + return objEquiv(actual, expected); + } +} + +function isUndefinedOrNull (value) { + return value === null || value === undefined; +} + +function isArguments (object) { + return Object.prototype.toString.call(object) == '[object Arguments]'; +} + +function objEquiv (a, b) { + if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) + return false; + // an identical "prototype" property. + if (a.prototype !== b.prototype) return false; + //~~~I've managed to break Object.keys through screwy arguments passing. + // Converting to array solves the problem. + if (isArguments(a)) { + if (!isArguments(b)) { + return false; + } + a = pSlice.call(a); + b = pSlice.call(b); + return _deepEqual(a, b); + } + try{ + var ka = _keys(a), + kb = _keys(b), + key, i; + } catch (e) {//happens when one is a string literal and the other isn't + return false; + } + // having the same number of owned properties (keys incorporates hasOwnProperty) + if (ka.length != kb.length) + return false; + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) + return false; + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!_deepEqual(a[key], b[key] )) + return false; + } + return true; +} + +// 8. The non-equivalence assertion tests for any deep inequality. +// assert.notDeepEqual(actual, expected, message_opt); + +assert.notDeepEqual = function notDeepEqual(actual, expected, message) { + if (_deepEqual(actual, expected)) { + fail(actual, expected, message, "notDeepEqual", assert.notDeepEqual); + } +}; + +// 9. The strict equality assertion tests strict equality, as determined by ===. +// assert.strictEqual(actual, expected, message_opt); + +assert.strictEqual = function strictEqual(actual, expected, message) { + if (actual !== expected) { + fail(actual, expected, message, "===", assert.strictEqual); + } +}; + +// 10. The strict non-equality assertion tests for strict inequality, as determined by !==. +// assert.notStrictEqual(actual, expected, message_opt); + +assert.notStrictEqual = function notStrictEqual(actual, expected, message) { + if (actual === expected) { + fail(actual, expected, message, "!==", assert.notStrictEqual); + } +}; + +function _throws (shouldThrow, block, err, message) { + var exception = null, + threw = false, + typematters = true; + + message = message || ""; + + //handle optional arguments + if (arguments.length == 3) { + if (typeof(err) == "string") { + message = err; + typematters = false; + } + } else if (arguments.length == 2) { + typematters = false; + } + + try { + block(); + } catch (e) { + threw = true; + exception = e; + } + + if (shouldThrow && !threw) { + fail( "Missing expected exception" + + (err && err.name ? " ("+err.name+")." : '.') + + (message ? " " + message : "") + ); + } + if (!shouldThrow && threw && typematters && exception instanceof err) { + fail( "Got unwanted exception" + + (err && err.name ? " ("+err.name+")." : '.') + + (message ? " " + message : "") + ); + } + if ((shouldThrow && threw && typematters && !(exception instanceof err)) || + (!shouldThrow && threw)) { + throw exception; + } +}; + +// 11. Expected to throw an error: +// assert.throws(block, Error_opt, message_opt); + +assert['throws'] = function(block, /*optional*/error, /*optional*/message) { + _throws.apply(this, [true].concat(pSlice.call(arguments))); +}; + +// EXTENSION! This is annoying to write outside this module. +assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) { + _throws.apply(this, [false].concat(pSlice.call(arguments))); +}; + +assert.ifError = function (err) { if (err) {throw err;}}; +})(assert); +(function(exports){ +/*! + * Nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + * + * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS! + * Only code on that line will be removed, its mostly to avoid requiring code + * that is node specific + */ + +/** + * Module dependencies + */ + + + +/** + * Creates assertion objects representing the result of an assert call. + * Accepts an object or AssertionError as its argument. + * + * @param {object} obj + * @api public + */ + +exports.assertion = function (obj) { + return { + method: obj.method || '', + message: obj.message || (obj.error && obj.error.message) || '', + error: obj.error, + passed: function () { + return !this.error; + }, + failed: function () { + return Boolean(this.error); + } + }; +}; + +/** + * Creates an assertion list object representing a group of assertions. + * Accepts an array of assertion objects. + * + * @param {Array} arr + * @param {Number} duration + * @api public + */ + +exports.assertionList = function (arr, duration) { + var that = arr || []; + that.failures = function () { + var failures = 0; + for (var i=0; i'; +}; + + +/** + * Run all tests within each module, reporting the results + * + * @param {Array} files + * @api public + */ + +exports.run = function (modules, options) { + var start = new Date().getTime(); + exports.addStyles(); + + var html = ''; + nodeunit.runModules(modules, { + moduleStart: function (name) { + html += '

    ' + name + '

    '; + html += '
      '; + }, + testDone: function (name, assertions) { + if (!assertions.failures()) { + html += '
    1. ' + name + '
    2. '; + } + else { + html += '
    3. ' + name; + for (var i=0; i'; + } + html += '
      ';
      +                        html += a.error.stack || a.error;
      +                        html += '
      '; + } + }; + html += '
    4. '; + } + }, + moduleDone: function () { + html += '
    '; + }, + done: function (assertions) { + var end = new Date().getTime(); + var duration = end - start; + if (assertions.failures()) { + html += '

    FAILURES: ' + assertions.failures() + + '/' + assertions.length + ' assertions failed (' + + assertions.duration + 'ms)

    '; + } + else { + html += '

    OK: ' + assertions.length + + ' assertions (' + assertions.duration + 'ms)

    '; + } + if (typeof document === 'undefined' && typeof print !== 'undefined') { + return print( html.replace(/
  • /g, '\033[1;032m√ \033[0m').replace(/
  • /g, '\033[1;031mX \033[0m').replace(//g, "\n").replace(/<\/h\d>/g, "\n").replace(/
    /g, "\n ").replace(/<\/(li|div)>/g, "\n").replace(/<[^>]+?>/g, '') ); + } + document.body.innerHTML += html; + } + }); +}; +})(reporter); +nodeunit = core; +nodeunit.assert = assert; +nodeunit.reporter = reporter; +nodeunit.run = reporter.run; +return nodeunit; })(); \ No newline at end of file diff --git a/lib/rhino-require.js b/lib/rhino-require.js new file mode 100644 index 000000000..2de9bbb71 --- /dev/null +++ b/lib/rhino-require.js @@ -0,0 +1,253 @@ +/* + Rhino-Require is Public Domain + + + The author or authors of this code dedicate any and all copyright interest + in this code to the public domain. We make this dedication for the benefit + of the public at large and to the detriment of our heirs and successors. We + intend this dedication to be an overt act of relinquishment in perpetuity of + all present and future rights to this code under copyright law. + */ + +(function() { + + var require = global.require = function(id) { /*debug*///console.log('require('+id+')'); + var moduleContent = '', + moduleUri; + + moduleUri = require.resolve(id); + moduleContent = ''; + + var file = new java.io.File(moduleUri); + try { + var scanner = new java.util.Scanner(file).useDelimiter("\\Z"); + moduleContent = String( scanner.next() ); + } + catch(e) { + throw 'Unable to read file at: '+moduleUri+', '+e; + } + + if (moduleContent) { + try { + var f = new Function('require', 'exports', 'module', moduleContent), + exports = require.cache[moduleUri] || {}, + module = { id: id, uri: moduleUri, exports: exports }; + + + require._root.unshift(moduleUri); + f.call({}, require, exports, module); + require._root.shift(); + } + catch(e) { + throw 'Unable to require source code from "' + moduleUri + '": ' + e.toSource(); + } + + exports = module.exports || exports; + require.cache[id] = exports; + } + else { + throw 'The requested module cannot be returned: no content for id: "' + id + '" in paths: ' + require.paths.join(', '); + } + + return exports; + } + require._root = ['']; + require.paths = []; + require.cache = {}; // cache module exports. Like: {id: exported} + + /** Given a module id, try to find the path to the associated module. + */ + require.resolve = function(id) { + // TODO: 1. load node core modules + + // 2. dot-relative module id, like './foo/bar' + var parts = id.match(/^(\.?\.\/|\/)(.+)$/), + isRelative = false, + isAbsolute = false, + basename = id; + + if (parts) { + isRelative = parts[1] === './' || parts[1] === '../'; + isAbsolute = parts[1] === '/'; + basename = parts[2]; + } + + if (typeof basename !== 'undefined') { + + if (isAbsolute) { + rootedId = id; + } + else { + var root = (isRelative? toDir(require._root[0] || '.') : '.'), + rootedId = (root + '/' + id).replace(/\/[^\/]+\/\.\.\//g, '/').replace(/\/\.\//g, '/'), + uri = ''; + } + + if ( uri = loadAsFile(rootedId) ) { } + else if ( uri = loadAsDir(rootedId) ) { } + else if ( uri = loadNodeModules(rootedId) ) { } + else if ( uri = nodeModulesPaths(rootedId, 'rhino_modules') ) { } + else if ( uri = nodeModulesPaths(rootedId, 'node_modules') ) { } + + if (uri !== '') return toAbsolute(uri); + + throw 'Require Error: Not found.'; + } + } + + /** Given a path, return the base directory of that path. + @example toDir('/foo/bar/somefile.js'); => '/foo/bar' + */ + function toDir(path) { + var file = new java.io.File(path); + + if (file.isDirectory()) { + return path; + } + + var parts = path.split(/[\\\/]/); + parts.pop(); + + return parts.join('/'); + } + + /** Returns true if the given path exists and is a file. + */ + function isFile(path) { + var file = new java.io.File(path); + + if (file.isFile()) { + return true; + } + + return false; + } + + /** Returns true if the given path exists and is a directory. + */ + function isDir(path) { + var file = new java.io.File(path); + + if (file.isDirectory()) { + return true; + } + + return false; + } + + /** Get the path of the current working directory + */ + function getCwd() { + return toDir( ''+new java.io.File('.').getAbsolutePath() ).replace(/\/\.$/, ''); + } + + function toAbsolute(relPath) { + absPath = ''+new java.io.File(relPath).getAbsolutePath(); + absPath = absPath.replace(/\/[^\/]+\/\.\.\//g, '/').replace(/\/\.\//g, '/'); + return absPath; + } + + /** Assume the id is a file, try to find it. + */ + function loadAsFile(id) { + if ( isFile(id) ) { return id; } + + if ( isFile(id+'.js') ) { return id+'.js'; } + + if ( isFile(id+'.node') ) { throw 'Require Error: .node files not supported'; } + } + + /** Assume the id is a directory, try to find a module file within it. + */ + function loadAsDir(id) { + if (!isDir(id)) { + return; + } + // look for the "main" property of the package.json file + if ( isFile(id+'/package.json') ) { + var packageJson = readFileSync(id+'/package.json', 'utf-8'); + eval( 'packageJson = '+ packageJson); + if (packageJson.hasOwnProperty('main')) { + var main = (id + '/' + packageJson.main).replace(/\/\.?\//g, '/'); + return require.resolve(main); + } + } + + if ( isFile(id+'/index.js') ) { + return id+'/index.js'; + } + } + + function loadNodeModules(id) { + var path, + uri; + for (var i = 0, len = require.paths.length; i < len; i++) { + path = require.paths[i]; + if (isDir(path)) { + path = (path + '/' + id).replace(/\/\.?\//g, '/'); + + uri = loadAsFile(path); + if (typeof uri !== 'undefined') { + return uri; + } + + uri = loadAsDir(path); + if (typeof uri !== 'undefined') { + return uri; + } + } + } + } + + function nodeModulesPaths(id, moduleFolder) { + var cwd = getCwd(), + dirs = cwd.split('/'), + dir, + path, + filename, + uri; + + while (dirs.length) { + dir = dirs.join('/'); + path = dir+'/'+moduleFolder; + + if ( isDir(path) ) { + filename = (path+'/'+id).replace(/\/\.?\//g, '/'); + + if ( uri = loadAsFile(filename) ) { + uri = uri.replace(cwd, '.'); + return uri; + } + + if ( uri = loadAsDir(filename) ) { + uri = uri.replace(cwd, '.'); + return uri; + } + } + + dirs.pop(); + } + } + + function readFileSync(filename, encoding, callback) { + if (typeof arguments[1] === 'function') { + encoding = null; + callback = arguments[1]; + } + + encoding = encoding || java.lang.System.getProperty('file.encoding'); + + try { + var content = new java.util.Scanner( + new java.io.File(filename), + encoding + ).useDelimiter("\\Z"); + + return String( content.next() ); + } + catch (e) { + return ''; + } + } + +})(); \ No newline at end of file diff --git a/lib/rhino-shim.js b/lib/rhino-shim.js new file mode 100644 index 000000000..263c0727f --- /dev/null +++ b/lib/rhino-shim.js @@ -0,0 +1,69 @@ +global = this; + +load('lib/Rhino-Require/src/require.js'); + +(function(rhinoArgs) { + var dumper; + global.console = { + log: function(/*...*/) { + var args = Array.prototype.slice.call(arguments, 0), + dumper = dumper || require('jsdoc/util/dumper'); + + for (var i = 0, len = args.length; i < len; i++) { + if (typeof args[i] !== 'string') { + args[i] = dumper.dump(args[i]); + } + } + + print( args.join(' ') ); + } + }; + + global.process = { + exit: function(n) { + n = n || 0; + java.lang.System.exit(n); + }, + argv: [null, null].concat( Array.prototype.slice.call(rhinoArgs, 0) ) + }; + + if (typeof JSON === 'undefined') { // JSON is defined in Rhino 1.7+ + load('lib/json.js'); + global.JSON = { + parse: function(raw) { + return jsonParse(raw); + }, + stringify: function(o) { + return ''+ o; + } + } + } + + (function () { + var counter = 1; + var timeoutIds = {}; + + global.setTimeout = function(fn, delay) { + var id = counter++, + timer = new java.util.Timer(); + + timeoutIds[id] = [ + new JavaAdapter(java.util.TimerTask,{run: function(){fn(); timer.purge(); timer.cancel();}}), + timer + ]; + + timer.schedule(timeoutIds[id][0], delay); + return id; + } + + global.clearTimeout = function(id) { + if (typeof timeoutIds[id] !== 'undefined') { + timeoutIds[id][0].cancel(); + timeoutIds[id][1].purge(); + timeoutIds[id][1].cancel(); + delete timeoutIds[id]; + } + } + })(); + +})(arguments); \ No newline at end of file diff --git a/node_modules/.bin/nodeunit b/node_modules/.bin/nodeunit new file mode 120000 index 000000000..f31cdbe52 --- /dev/null +++ b/node_modules/.bin/nodeunit @@ -0,0 +1 @@ +../nodeunit/bin/nodeunit \ No newline at end of file diff --git a/node_modules/jsdoc/argparser.js b/node_modules/jsdoc/argparser.js new file mode 100644 index 000000000..108df7f2c --- /dev/null +++ b/node_modules/jsdoc/argparser.js @@ -0,0 +1,140 @@ +/** + Parse the command line arguments. + @module jsdoc/argparser + @author Michael Mathews + @license Apache License 2.0 - See file 'LICENSE.md' in this project. + */ +(function() { + + /** + Create an instance of the parser. + @classdesc A parser to interpret the key value pairs entered on the command + line. + @constructor + */ + exports.ArgParser = function() { + this._options = []; + } + + exports.ArgParser.prototype._getOptionByShortName = function(name) { + for (var i = this._options.length; i--;) { + if (this._options[i].shortName === name) { return this._options[i]; } + } + return null; + } + + exports.ArgParser.prototype._getOptionByLongName = function(name) { + for (var i = this._options.length; i--;) { + if (this._options[i].longName === name) { return this._options[i]; } + } + return null; + } + + /** + * Provide information about a legal option. + * @param {character} shortName The short name of the option, entered like: -T. + * @param {string} longName The equivalent long name of the option, entered like: --test. + * @param {boolean} hasValue Does this option require a value? Like: -t templatename + * @param {string} helpText + * @example + * myParser.addOption('t', 'template', true, 'The path to the template.'); + * myParser.addOption('h', 'help', false, 'Show the help message.'); + */ + exports.ArgParser.prototype.addOption = function(shortName, longName, hasValue, helpText) { + this._options.push({shortName: shortName, longName: longName, hasValue: hasValue, helpText: helpText}); + }; + + /** + Generate a summary of all the options with corresponding help text. + @returns {string} + */ + exports.ArgParser.prototype.help = function() { + var help = 'OPTIONS:\n', + option; + + for (var i = 0, leni = this._options.length; i < leni; i++) { + option = this._options[i]; + + if (option.shortName) { + help += '-' + option.shortName + (option.longName? ' or ' : ''); + } + + if (option.longName) { + help += '--' + option.longName; + } + + if (option.hasValue) { + help += ' '; + } + + help += ' ' + option.helpText + '\n'; + } + + return help; + }; + + /** + Get the options. + @param {Array.} args An array, like ['-x', 'hello'] + @param {Object} [defaults={}] An optional collection of default values. + @returns {Object} The keys will be the longNames, or the shortName if + no longName is defined for that option. The values will be the values + provided, or `true` if the option accepts no value. + */ + exports.ArgParser.prototype.parse = function(args, defaults) { + var result = defaults || {}; + + result._ = []; + + for (var i = 0, leni = args.length; i < leni; i++) { + var arg = '' + args[i], + next = (i < leni-1)? '' + args[i+1] : null, + option, + shortName, + longName, + name, + value = null; + + // like -t + if (arg.charAt(0) === '-') { + + // like: --template + if (arg.charAt(1) === '-') { + name = longName = arg.slice(2); + option = this._getOptionByLongName(longName); + } + else { + name = shortName = arg.slice(1); + option = this._getOptionByShortName(shortName); + } + + if (option === null) { + throw new Error( 'Unknown command line option found: ' + name ); + } + + if (option.hasValue) { + value = next; + i++; + + if (value === null || value.charAt(0) === '-') { + throw new Error( 'Command line option requires a value: ' + name ); + } + } + else { + value = true; + } + + if (option.longName && shortName) { + name = option.longName; + } + + result[name] = value; + } + else { + result._.push(arg); + } + } + + return result; + } +})(); \ No newline at end of file diff --git a/node_modules/jsdoc/doclet.js b/node_modules/jsdoc/doclet.js new file mode 100644 index 000000000..13a21fbb6 --- /dev/null +++ b/node_modules/jsdoc/doclet.js @@ -0,0 +1,161 @@ +(function() { + var plugin = require('jsdoc/plugin'); + + exports.Doclet = Doclet; + function Doclet(jsdoc, meta) { + if (jsdoc !== '') { + this.tags = this.parseTags(jsdoc); + } + else { + this.tags = []; + } + + plugin.manager.run('doclet', [this]); + } + + Doclet.prototype.parseTags = function(commentSrc) { + // tags have [title, type, pname, text] + + commentSrc = fixDescription( trim(commentSrc) ); + this.src = commentSrc; + var tags = splitTags(commentSrc), + tag; + + for (var i = 0, len = tags.length; i < len; i++) { + tag = tags[i]; + if ( dict.hasOwnProperty(tag.title) ) { + var def = dict[tag.title]; + if (typeof def.onTag === 'function') { + def.onTag(tag, this); + } + } + } + + return tags; + } + + var dict = {}; + dict.name = { + has: ['value'], + title: 'name', + onTag: function(tag, doc) { + tag.text = trim(tag.text); + if (tag.text) doc.name = tag.text; + } + } + + dict.description = { + has: ['value'], + title: 'description', + onTag: function(tag, doc) { + tag.text = trim(tag.text); + doc.description = tag.text; + } + } + dict.desc = dict.description; + + dict['var'] = { + has: ['value'], + title: 'var', + onTag: function(tag, doc) { + doc.kind = 'var'; + dict.name.onTag(tag, doc); // trimmed here + } + }; + + dict['example'] = { + has: ['value'], + title: 'example', + onTag: function(tag, doc) { + // do not trim, whitespace matters in examples + } + }; + + dict['type'] = { + has: ['value'], + title: 'type', + onTag: function(tag, doc) { + tag.text = trim(tag.text); + if ( /\{(.+?)\}/.test(tag.text) ) { + tag.text = trim(RegExp.$1); + } + } + }; + + function trim(text, newlines) { + if (!text) { return ''; } + + if (newlines) { + return text.replace(/^[\n\r\f]+|[\n\r\f]+$/g, ''); + } + else { + return text.replace(/^\s+|\s+$/g, ''); + } + } + + /** + Given the raw source of a jsdoc comment, splits it up into individual tags. + @returns An array of tags, like: [{title, text}], where the original src + would be like: "@title text" + */ + function parseParamText(tagSrc) { + var pname, pdesc, poptional, pdefault; + + // like: pname, pname pdesc, or name - pdesc + tagSrc.match(/^(\[[^\]]+\]|\S+)((?:\s*\-\s*|\s+)(\S[\s\S]*))?$/); + pname = RegExp.$1; + pdesc = RegExp.$3; + + if ( /^\[\s*(.+?)\s*\]$/.test(pname) ) { + pname = RegExp.$1; + poptional = true; + + if ( /^(.+?)\s*=\s*(.+)$/.test(pname) ) { + pname = RegExp.$1; + pdefault = RegExp.$2; + } + } + return [pname, pdesc, poptional, pdefault]; + } + + function fixDescription(docletSrc) { + if (docletSrc && !/^\s*@/.test(docletSrc)) { + docletSrc = '@description ' + docletSrc; + } + return docletSrc; + } + + /** + Given the raw source of a jsdoc comment, splits it up into individual tags. + @returns An array of tags, like: [{title, text}], where the original src + would be like: "@title text" + */ + function splitTags(docletSrc) { + var tagSrcs = []; + + // split out the basic tags, keep surrounding whitespace + // like: @tagTitle tagBody + docletSrc + .replace(/^(\s*)@(\S)/gm, '$1\\@$2') // replace splitter ats with an arbitrary sequence + .split('\\@') // then split on that arbitrary sequence + .forEach(function($) { + if ($) { + var parsedTag = $.match(/^(\S+)(:?\s+(\S[\s\S]*))?/); + + if (parsedTag) { + var tagTitle = parsedTag[1], + tagText = parsedTag[2]; + + if (tagTitle) { + tagSrcs.push({ + title: tagTitle.toLowerCase(), + text: tagText || '' + }); + } + } + } + }); + + return tagSrcs; + } +})(); \ No newline at end of file diff --git a/node_modules/jsdoc/options.js b/node_modules/jsdoc/options.js new file mode 100644 index 000000000..63f3701a6 --- /dev/null +++ b/node_modules/jsdoc/options.js @@ -0,0 +1,71 @@ +/** + @module jsdoc/options + @requires jsdoc/argparser + @author Michael Mathews + @license Apache License 2.0 - See file 'LICENSE.md' in this project. + */ +(function() { + var argv = require('jsdoc/argparser'); + + var argParser = new argv.ArgParser(), + ourOptions, + defaults = { + template: 'default', + destination: './out/' + }; + + argParser.addOption('t', 'template', true, 'The name of the template to use. Default: the "default" template'); + argParser.addOption('c', 'configure', true, 'The path to the configuration file. Default: jsdoc basedir + conf.json'); + argParser.addOption('e', 'encoding', true, 'Assume this encoding when reading all source files. Default: your system default encoding'); + argParser.addOption('d', 'destination', true, 'The path to the output folder. Use "console" to dump data to the console. Default: console'); + argParser.addOption('V', 'validate', false, 'Validate the results produced by parsing the source code.'); + argParser.addOption('r', 'recurse', false, 'Recurse into subdirectories when scanning for source code files.'); + argParser.addOption('h', 'help', false, 'Print this message and quit.'); + argParser.addOption('X', 'expel', false, 'Dump all found doclet internals to console and quit.'); + argParser.addOption('q', 'query', true, 'Provide a querystring to define custom variable names/values to add to the options hash.'); + + +// TODO [-R, recurseonly] = a number representing the depth to recurse +// TODO [-f, filter] = a regex to filter on <-- this can be better defined in the configs? + + /** + Set the options for this app. + @throws {Error} Illegal arguments will throw errors. + @param {string|String[]} args The command line arguments for this app. + */ + exports.parse = function(args) { + args = args || []; + + if (typeof args === 'string' || args.constructor === String) { + args = (''+args).split(/\s+/g); + } + + ourOptions = argParser.parse(args, defaults); + + return ourOptions; + } + + /** + Display help message for options. + */ + exports.help = function() { + return argParser.help(); + } + + /** + Get a named option. + @param {string} name The name of the option. + @return {string} The value associated with the given name. + *//** + Get all the options for this app. + @return {Object} A collection of key/values representing all the options. + */ + exports.get = function(name) { + if (typeof name === 'undefined') { + return ourOptions; + } + else { + return ourOptions[name]; + } + } +})(); \ No newline at end of file diff --git a/node_modules/jsdoc/parser.js b/node_modules/jsdoc/parser.js new file mode 100644 index 000000000..b6dc00a1a --- /dev/null +++ b/node_modules/jsdoc/parser.js @@ -0,0 +1,136 @@ +(function() { + + var Narcissus = require('narcissus').Narcissus, + Doclet = require('jsdoc/doclet').Doclet; + + + // handle orphaned doclets, associated with no code token + Narcissus.parser.Tokenizer.prototype.onJsDoc = function(doclet, meta) { + handle.JSDOC(doclet); + } + + var path, + symbols = 'wtf'; + + exports.parse = function(src) { + symbols = []; + + // may call handle.JSDOC + var ast = Narcissus.parser.parse(src, '', 1); +//console.log(String(ast)); + path = []; + + walk(ast.children); + + return symbols; + } + + function defined(o) { + return typeof o !== 'undefined'; + } + + function typeToName(type) { + var name; + if (name = typeToName.types[type]) { + return name; + } + return type; + } + typeToName.types = ['END', 'NEWLINE', 'SEMICOLON', 'COMMA', 'ASSIGN', 'HOOK', 'COLON', 'CONDITIONAL', 'OR', 'AND', 'BITWISE_OR', 'BITWISE_XOR', 'BITWISE_AND', 'EQ', 'NE', 'STRICT_EQ', 'STRICT_NE', 'LT', 'LE', 'GE', 'GT', 'LSH', 'RSH', 'URSH', 'PLUS', 'MINUS', 'MUL', 'DIV', 'MOD', 'NOT', 'BITWISE_NOT', 'UNARY_PLUS', 'UNARY_MINUS', 'INCREMENT', 'DECREMENT', 'DOT', 'LEFT_BRACKET', 'RIGHT_BRACKET', 'LEFT_CURLY', 'RIGHT_CURLY', 'LEFT_PAREN', 'RIGHT_PAREN', 'SCRIPT', 'BLOCK', 'LABEL', 'FOR_IN', 'CALL', 'NEW_WITH_ARGS', 'INDEX', 'ARRAY_INIT', 'OBJECT_INIT', 'PROPERTY_INIT', 'GETTER', 'SETTER', 'GROUP', 'LIST', 'LET_BLOCK', 'ARRAY_COMP', 'GENERATOR', 'COMP_TAIL', 'IDENTIFIER', 'NUMBER', 'STRING', 'REGEXP', 'BREAK', 'CASE', 'CATCH', 'CONST', 'CONTINUE', 'DEBUGGER', 'DEFAULT', 'DELETE', 'DO', 'ELSE', 'EXPORT', 'FALSE', 'FINALLY', 'FOR', 'FUNCTION', 'IF', 'IMPORT', 'IN', 'INSTANCEOF', 'LET', 'MODULE', 'NEW', 'NULL', 'RETURN', 'SWITCH', 'THIS', 'THROW', 'TRUE', 'TRY', 'TYPEOF', 'VAR', 'VOID', 'YIELD', 'WHILE', 'WITH']; + + var handle = { + JSDOC: function(jsdoc) { + //console.log( '>>> jsdoc "'+jsdoc+'"' ); + symbols.push({longname: null, jsdoc: new Doclet(jsdoc)}); + }, + VAR: function(node) { + var child = null, + varDoc = defined(node.jsdoc)? node.jsdoc : ''; + + while ( child = node.children.shift() ) { + if (varDoc) { + child.jsdoc = varDoc; + varDoc = null; + } + + var namePath = path.join('') + (path.length?'~':'') + child.name; + symbols.push({longname: namePath, jsdoc: defined(child.jsdoc)? new Doclet(child.jsdoc) : new Doclet('')}); + //console.log( '>>> variable '+namePath+(defined(child.jsdoc)? ' "'+child.jsdoc+'"' : '') ); + var children = walkable(child); + if (children) { walk(children); } + } + }, + FUNCTION: function(node) { + var namePath = path.join('') + (path.length?'~':'') + node.name, + jsdoc = defined(node.jsdoc)? node.jsdoc : ''; + + symbols.push({longname: namePath, jsdoc: new Doclet(jsdoc)}); + //console.log( '>>> function '+namePath+(defined(node.jsdoc)? ' "'+node.jsdoc+'"' : '') ); + path.push((path.length?'~':'')+node.name); + walk(node.body.children); + path.pop(); + }, + OBJECT_INIT: function(node) { + console.log( '>>> TODO object literal '+node.name+' '+node.jsdoc); + + } + + }; + + function walk(ast) { +//console.log('walk('+ast.length+')'); + var node = null, + nodeType = -1; + + while (node = ast.shift()) { + nodeType = typeToName(node.type); +//console.log('~>>>> nodeType: '+nodeType+' '+node.name); + if (handle.hasOwnProperty(nodeType) && typeof handle[nodeType] === 'function') { + handle[nodeType](node); + } + else if (node.jsdoc) { + handle.JSDOC(node.jsdoc); + } + + var children = walkable(node); + if (children) { walk(children); } + } + } + + function walkable(node) { + //console.log('>>> getting walkables of: '+typeToName(node.type)+' '+node.name); + if ( defined(node.body) && defined(node.body.children) && node.body.children !== null) { + //console.log('- has body/children'); + return node.body.children; + } + if ( defined(node.expression) && node.expression && defined(node.expression.children) && node.expression.children ) { + //console.log('- has expression/children'); + return node.expression.children; + } + // like: foo = function(){} + if ( defined(node.initializer)) { + //console.log('- has initializer'); + if (typeToName(node.initializer.type) === 'FUNCTION') { + //console.log('- has function value'); + path.push('~'+node.name); + return(node.initializer.body.children); + } + else if (typeToName(node.initializer.type) === 'OBJECT_INIT') { + //console.log('- has object value'); + path.push('~'+node.name); + return(node.initializer.children); + } + // like foo = /**doc*/{}; + else if (node.initializer.jsdoc) { + handle.JSDOC(node.initializer.jsdoc); + } + } + if ( defined(node.children) ) { + //console.log('- has children '+node.children.length); + return node.children; + } + //console.log('nothing to walk'); + } + + +})(); \ No newline at end of file diff --git a/node_modules/jsdoc/plugin.js b/node_modules/jsdoc/plugin.js new file mode 100644 index 000000000..2e103b4db --- /dev/null +++ b/node_modules/jsdoc/plugin.js @@ -0,0 +1,28 @@ +if (typeof global.pluginRegistry === 'undefined') { + global.pluginRegistry = {}; +} +registry = global.pluginRegistry; + +exports.manager = manager = { + on: function(name, callback) { +//console.log('on '+name); + if (!registry.hasOwnProperty(name)) { + registry[name] = []; + } + registry[name].push(callback); +//console.log('on registry '+registry.toSource()); + }, + run: function(name, args) { +//console.log('run '+name); +//consoleconsole.log('run registry '+registry.toSource()); + if (registry.hasOwnProperty(name)) { + var callbacks = registry[name]; +//console.log('callbacks '+callbacks.length); + for (var i = 0, len = callbacks.length; i < len; i++) { + callbacks[i].apply(manager, args); + } + } + } + +} + diff --git a/node_modules/jsdoc/util/dumper.js b/node_modules/jsdoc/util/dumper.js new file mode 100644 index 000000000..b7a094d96 --- /dev/null +++ b/node_modules/jsdoc/util/dumper.js @@ -0,0 +1,158 @@ +/** + Recursively print out all names and values in a data structure. + @module common/dumper + @author Michael Mathews + @license Apache License 2.0 - See file 'LICENSE.md' in this project. + */ +(function() { + /** + @param {any} object + */ + exports.dump = function(object) { + indentBy = 0; + output = ''; + + walk(object); + outdent(false); + return output; + } + + const INDENTATION = ' '; // 4 spaces + var indentBy, + output; + + function pad(depth) { + var padding = ''; + while (depth--) { + padding += INDENTATION; + } + return padding; + } + + /** + @param {string} openingBrace - The opening brace to add, like "{". + @private + @inner + @memberof module:common/dumper + */ + function indent(openingBrace) { + indentBy++; + if (openingBrace) output += openingBrace + '\n'; + } + + /** + @param {string|boolean} closingBrace - The closing brace to add, like "}" or if boolean + `false` no closing brace or trailing newline. + @private + @inner + @memberof module:common/dumper + */ + function outdent(closingBrace) { + indentBy--; + output = output.replace(/,\n$/, '\n'); // trim trailing comma + if (closingBrace === false) { output = output.replace(/\n$/, ''); } + else if (closingBrace) output += pad(indentBy) + closingBrace + ',\n'; + } + + var seen = []; + seen.has = function(object) { + for (var i = 0, l = seen.length; i < l; i++) { + if (seen[i] === object) { return true; } + } + return false; + } + + function walk(object) { + var value; + + if ( value = getValue(object) ) { + output += value + ',\n'; + } + else if ( isUnwalkable(object) ) { + output += ',\n' + } + else if ( isRegExp(object) ) { + output += ',\n' + } + else if ( isDate(object) ) { + output += ',\n' + } + else if ( isFunction(object) ) { + output += ',\n'; + } + else if ( isArray(object) ) { + if ( seen.has(object) ) { + output += ',\n'; + return; + } + else { + seen.push(object); + } + + indent('['); + for (var i = 0, leni = object.length; i < leni; i++) { + output += pad(indentBy); // + i + ': '; + walk( object[i] ); + } + outdent(']'); + } + else if ( isObject(object) ) { + if ( seen.has(object) ) { + output += ',\n'; + return; + } + else { + seen.push(object); + } + + indent('{'); + for (var p in object) { + if ( object.hasOwnProperty(p) ) { + output += pad(indentBy) + stringify(p) + ': '; + walk( object[p] ); + } + } + outdent('}'); + } + } + + function getValue(o) { // see: https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/typeof + if (o === null) { return 'null'; } + if ( /^(string|boolean|number|undefined)$/.test(typeof o) ) { + return ''+stringify(o); + } + } + + function stringify(o) { + return JSON.stringify(o); + } + + function isUnwalkable(o) { // some objects are unwalkable, like Java native objects + return (typeof o === 'object' && typeof o.constructor === 'undefined'); + } + + function isArray(o) { + return o && (o instanceof Array) || o.constructor === Array; + } + + function isRegExp(o) { + return (o instanceof RegExp) || + (typeof o.constructor !== 'undefined' && o.constructor.name === 'RegExp'); + } + + function isDate(o) { + return o && (o instanceof Date) || + (typeof o.constructor !== 'undefined' && o.constructor.name === 'Date'); + } + + function isFunction(o) { + return o && (typeof o === 'function' || o instanceof Function);// || + //(typeof o.constructor !== 'undefined' && (o.constructor||{}).name === 'Function'); + } + + function isObject(o) { + return o && o instanceof Object || + (typeof o.constructor !== 'undefined' && o.constructor.name === 'Object'); + } + +})(); \ No newline at end of file diff --git a/node_modules/jsecma5.js b/node_modules/jsecma5.js new file mode 100644 index 000000000..d59466012 --- /dev/null +++ b/node_modules/jsecma5.js @@ -0,0 +1,33 @@ +// ECMAScript3 versions of ECMAScript5 constructs used in Narcissus parser +// All properties will be writable, configurable and enumerable, no matter +// the descriptor. Descriptor get/set is also ignored. + +(function() { + if (Object.defineProperty === undefined) { + Object.defineProperty = function(obj, prop, descriptor) { + obj[prop] = descriptor.value; + }; + } + + if (Object.defineProperties === undefined) { + Object.defineProperties = function(obj, props) { + for (var prop in props) { + if (props.hasOwnProperty(prop)) { + Object.defineProperty(obj, prop, props[prop]); + } + } + }; + } + + if (Object.create === undefined) { + Object.create = function(obj, props) { + function ctor() {} + ctor.prototype = obj; + var o = new ctor(); + if (props !== undefined) { + Object.defineProperties(o, props); + } + return o; + }; + } +})(); diff --git a/node_modules/jsmods.js b/node_modules/jsmods.js new file mode 100644 index 000000000..0a149fb87 --- /dev/null +++ b/node_modules/jsmods.js @@ -0,0 +1,5 @@ +// module keyword is removed so that it parses like any identifier +delete Narcissus.definitions.tokens.module; +delete Narcissus.definitions.keywords.module; +delete Narcissus.definitions.tokenIds.module; +/* global */ tkn = Narcissus.definitions.tokenIds; diff --git a/node_modules/markdown/.gitignore b/node_modules/markdown/.gitignore new file mode 100644 index 000000000..a01ee289f --- /dev/null +++ b/node_modules/markdown/.gitignore @@ -0,0 +1 @@ +.*.swp diff --git a/node_modules/markdown/README.markdown b/node_modules/markdown/README.markdown new file mode 100644 index 000000000..30afcad71 --- /dev/null +++ b/node_modules/markdown/README.markdown @@ -0,0 +1,68 @@ +markdown-js +=========== + +Yet another markdown parser, this time for JavaScript. There's a few +options that precede this project but they all treat markdown to HTML +conversion as a single step process. You pass markdown in and get HTML +out, end of story. We had some pretty particular views on how the +process should actually look, which include: + + * producing well-formed HTML. This means that em and strong nesting is + important, as is the ability to output as both HTML and XHTML + + * having an intermediate representation to allow processing of parsed + data (we in fact have two, both [JsonML]: a markdown tree and an + HTML tree) + + * being easily extensible to add new dialects without having to + rewrite the entire parsing mechanics + + * having a good test suite. The only test suites we could find tested + massive blocks of input, and passing depended on outputting the HTML + with exactly the same whitespace as the original implementation + +[JsonML]: http://jsonml.org/ "JSON Markup Language" + +## Usage + +The simple way to use it with CommonJS is: + + var input = "# Heading\n\nParagraph"; + var output = require( "markdown" ).toHTML( input ); + print( output ); + +If you want more control check out the documentation in +[lib/markdown.js] which details all the methods and parameters +available (including examples!). One day we'll get the docs generated +and hosted somewhere for nicer browsing. + +We're yet to try it out in a browser, though it's high up on our list of +things to sort out for this project. + +[lib/markdown.js]: http://github.com/evilstreak/markdown-js/blob/master/lib/markdown.js + +## Intermediate Representation + +Internally the process to convert a chunk of markdown into a chunk of +HTML has three steps: + + 1. Parse the markdown into a JsonML tree. Any references found in the + parsing are stored in the attribute hash of the root node under the + key `references`. + + 2. Convert the markdown tree into an HTML tree. Rename any nodes that + need it (`bulletlist` to `ul` for example) and lookup any references + used by links or images. Remove the references attribute once done. + + 3. Stringify the HTML tree being careful not to wreck whitespace where + whitespace is important (surrounding inline elements for example). + +Each step of this process can be called individually if you need to do +some processing or modification of the data at an intermediate stage. +For example, you may want to grab a list of all URLs linked to in the +document before rendering it to HTML which you could do by recursing +through the HTML tree looking for `a` nodes. + +## License + +Released under the MIT license. diff --git a/node_modules/markdown/lib/index.js b/node_modules/markdown/lib/index.js new file mode 100644 index 000000000..8bb08734b --- /dev/null +++ b/node_modules/markdown/lib/index.js @@ -0,0 +1,3 @@ +// super simple module for the most common nodejs use case. +exports.markdown = require("./markdown"); +exports.parse = exports.markdown.toHTML; diff --git a/node_modules/markdown/lib/markdown.js b/node_modules/markdown/lib/markdown.js new file mode 100644 index 000000000..1686db4cb --- /dev/null +++ b/node_modules/markdown/lib/markdown.js @@ -0,0 +1,1452 @@ +// Released under MIT license +// Copyright (c) 2009-2010 Dominic Baggott +// Copyright (c) 2009-2010 Ash Berlin + +(function( expose ) { + +/** + * class Markdown + * + * Markdown processing in Javascript done right. We have very particular views + * on what constitutes 'right' which include: + * + * - produces well-formed HTML (this means that em and strong nesting is + * important) + * + * - has an intermediate representation to allow processing of parsed data (We + * in fact have two, both as [JsonML]: a markdown tree and an HTML tree). + * + * - is easily extensible to add new dialects without having to rewrite the + * entire parsing mechanics + * + * - has a good test suite + * + * This implementation fulfills all of these (except that the test suite could + * do with expanding to automatically run all the fixtures from other Markdown + * implementations.) + * + * ##### Intermediate Representation + * + * *TODO* Talk about this :) Its JsonML, but document the node names we use. + * + * [JsonML]: http://jsonml.org/ "JSON Markup Language" + **/ +var Markdown = expose.Markdown = function Markdown(dialect) { + switch (typeof dialect) { + case "undefined": + this.dialect = Markdown.dialects.Gruber; + break; + case "object": + this.dialect = dialect; + break; + default: + if (dialect in Markdown.dialects) { + this.dialect = Markdown.dialects[dialect]; + } + else { + throw new Error("Unknown Markdown dialect '" + String(dialect) + "'"); + } + break; + } + this.em_state = []; + this.strong_state = []; + this.debug_indent = ""; +} + +/** + * parse( markdown, [dialect] ) -> JsonML + * - markdown (String): markdown string to parse + * - dialect (String | Dialect): the dialect to use, defaults to gruber + * + * Parse `markdown` and return a markdown document as a Markdown.JsonML tree. + **/ +expose.parse = function( source, dialect ) { + // dialect will default if undefined + var md = new Markdown( dialect ); + return md.toTree( source ); +} + +/** + * toHTML( markdown, [dialect] ) -> String + * toHTML( md_tree ) -> String + * - markdown (String): markdown string to parse + * - md_tree (Markdown.JsonML): parsed markdown tree + * + * Take markdown (either as a string or as a JsonML tree) and run it through + * [[toHTMLTree]] then turn it into a well-formated HTML fragment. + **/ +expose.toHTML = function toHTML( source , dialect ) { + var input = expose.toHTMLTree( source , dialect ); + + return expose.renderJsonML( input ); +} + +/** + * toHTMLTree( markdown, [dialect] ) -> JsonML + * toHTMLTree( md_tree ) -> JsonML + * - markdown (String): markdown string to parse + * - dialect (String | Dialect): the dialect to use, defaults to gruber + * - md_tree (Markdown.JsonML): parsed markdown tree + * + * Turn markdown into HTML, represented as a JsonML tree. If a string is given + * to this function, it is first parsed into a markdown tree by calling + * [[parse]]. + **/ +expose.toHTMLTree = function toHTMLTree( input, dialect ) { + // convert string input to an MD tree + if ( typeof input ==="string" ) input = this.parse( input, dialect ); + + // Now convert the MD tree to an HTML tree + + // remove references from the tree + var attrs = extract_attr( input ), + refs = {}; + + if ( attrs && attrs.references ) { + refs = attrs.references; + } + + var html = convert_tree_to_html( input, refs ); + merge_text_nodes( html ); + return html; +} + +var mk_block = Markdown.mk_block = function(block, trail, line) { + // Be helpful for default case in tests. + if ( arguments.length == 1 ) trail = "\n\n"; + + var s = new String(block); + s.trailing = trail; + // To make it clear its not just a string + s.toSource = function() { + return "Markdown.mk_block( " + + uneval(block) + + ", " + + uneval(trail) + + ", " + + uneval(line) + + " )" + } + + if (line != undefined) + s.lineNumber = line; + + return s; +} + +function count_lines( str ) { + var n = 0, i = -1;; + while ( ( i = str.indexOf('\n', i+1) ) != -1) n++; + return n; +} + +// Internal - split source into rough blocks +Markdown.prototype.split_blocks = function splitBlocks( input, startLine ) { + // [\s\S] matches _anything_ (newline or space) + var re = /([\s\S]+?)($|\n(?:\s*\n|$)+)/g, + blocks = [], + m; + + var line_no = 1; + + if ( ( m = (/^(\s*\n)/)(input) ) != null ) { + // skip (but count) leading blank lines + line_no += count_lines( m[0] ); + re.lastIndex = m[0].length; + } + + while ( ( m = re(input) ) != null ) { + blocks.push( mk_block( m[1], m[2], line_no ) ); + line_no += count_lines( m[0] ); + } + + return blocks; +} + +/** + * Markdown#processBlock( block, next ) -> undefined | [ JsonML, ... ] + * - block (String): the block to process + * - next (Array): the following blocks + * + * Process `block` and return an array of JsonML nodes representing `block`. + * + * It does this by asking each block level function in the dialect to process + * the block until one can. Succesful handling is indicated by returning an + * array (with zero or more JsonML nodes), failure by a false value. + * + * Blocks handlers are responsible for calling [[Markdown#processInline]] + * themselves as appropriate. + * + * If the blocks were split incorrectly or adjacent blocks need collapsing you + * can adjust `next` in place using shift/splice etc. + * + * If any of this default behaviour is not right for the dialect, you can + * define a `__call__` method on the dialect that will get invoked to handle + * the block processing. + */ +Markdown.prototype.processBlock = function processBlock( block, next ) { + var cbs = this.dialect.block, + ord = cbs.__order__; + + if ( "__call__" in cbs ) { + return cbs.__call__.call(this, block, next); + } + + for ( var i = 0; i < ord.length; i++ ) { + //D:this.debug( "Testing", ord[i] ); + var res = cbs[ ord[i] ].call( this, block, next ); + if ( res ) { + //D:this.debug(" matched"); + if ( !res instanceof Array || ( res.length > 0 && !( res[0] instanceof Array ) ) ) + this.debug(ord[i], "didn't return a proper array"); + //D:this.debug( "" ); + return res; + } + } + + // Uhoh! no match! Should we throw an error? + return []; +} + +Markdown.prototype.processInline = function processInline( block ) { + return this.dialect.inline.__call__.call( this, String( block ) ); +} + +/** + * Markdown#toTree( source ) -> JsonML + * - source (String): markdown source to parse + * + * Parse `source` into a JsonML tree representing the markdown document. + **/ +// custom_tree means set this.tree to `custom_tree` and restore old value on return +Markdown.prototype.toTree = function toTree( source, custom_root ) { + var blocks = source instanceof Array + ? source + : this.split_blocks( source ); + + // Make tree a member variable so its easier to mess with in extensions + var old_tree = this.tree; + try { + this.tree = custom_root || this.tree || [ "markdown" ]; + + blocks: + while ( blocks.length ) { + var b = this.processBlock( blocks.shift(), blocks ); + + // Reference blocks and the like won't return any content + if ( !b.length ) continue blocks; + + this.tree.push.apply( this.tree, b ); + } + return this.tree; + } + finally { + if ( custom_root ) + this.tree = old_tree; + } + +} + +// Noop by default +Markdown.prototype.debug = function () { + var args = Array.prototype.slice.call( arguments); + args.unshift(this.debug_indent); + print.apply( print, args ); +} + +Markdown.prototype.loop_re_over_block = function( re, block, cb ) { + // Dont use /g regexps with this + var m, + b = block.valueOf(); + + while ( b.length && (m = re(b) ) != null) { + b = b.substr( m[0].length ); + cb.call(this, m); + } + return b; +} + +/** + * Markdown.dialects + * + * Namespace of built-in dialects. + **/ +Markdown.dialects = {}; + +/** + * Markdown.dialects.Gruber + * + * The default dialect that follows the rules set out by John Gruber's + * markdown.pl as closely as possible. Well actually we follow the behaviour of + * that script which in some places is not exactly what the syntax web page + * says. + **/ +Markdown.dialects.Gruber = { + block: { + atxHeader: function atxHeader( block, next ) { + var m = block.match( /^(#{1,6})\s*(.*?)\s*#*\s*(?:\n|$)/ ); + + if ( !m ) return undefined; + + var header = [ "header", { level: m[ 1 ].length }, m[ 2 ] ]; + + if ( m[0].length < block.length ) + next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) ); + + return [ header ]; + }, + + setextHeader: function setextHeader( block, next ) { + var m = block.match( /^(.*)\n([-=])\2\2+(?:\n|$)/ ); + + if ( !m ) return undefined; + + var level = ( m[ 2 ] === "=" ) ? 1 : 2; + var header = [ "header", { level : level }, m[ 1 ] ]; + + if ( m[0].length < block.length ) + next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) ); + + return [ header ]; + }, + + code: function code( block, next ) { + // | Foo + // |bar + // should be a code block followed by a paragraph. Fun + // + // There might also be adjacent code block to merge. + + var ret = [], + re = /^(?: {0,3}\t| {4})(.*)\n?/, + lines; + + // 4 spaces + content + var m = block.match( re ); + + if ( !m ) return undefined; + + block_search: + do { + // Now pull out the rest of the lines + var b = this.loop_re_over_block( + re, block.valueOf(), function( m ) { ret.push( m[1] ) } ); + + if (b.length) { + // Case alluded to in first comment. push it back on as a new block + next.unshift( mk_block(b, block.trailing) ); + break block_search; + } + else if (next.length) { + // Check the next block - it might be code too + var m = next[0].match( re ); + + if ( !m ) break block_search; + + // Pull how how many blanks lines follow - minus two to account for .join + ret.push ( block.trailing.replace(/[^\n]/g, '').substring(2) ); + + block = next.shift(); + } + else + break block_search; + } while (true); + + return [ [ "code_block", ret.join("\n") ] ]; + }, + + horizRule: function horizRule( block, next ) { + // this needs to find any hr in the block to handle abutting blocks + var m = block.match( /^(?:([\s\S]*?)\n)?[ \t]*([-_*])(?:[ \t]*\2){2,}[ \t]*(?:\n([\s\S]*))?$/ ); + + if ( !m ) { + return undefined; + } + + var jsonml = [ [ "hr" ] ]; + + // if there's a leading abutting block, process it + if ( m[ 1 ] ) { + jsonml.unshift.apply( jsonml, this.processBlock( m[ 1 ], [] ) ); + } + + // if there's a trailing abutting block, stick it into next + if ( m[ 3 ] ) { + next.unshift( mk_block( m[ 3 ] ) ); + } + + return jsonml; + }, + + // There are two types of lists. Tight and loose. Tight lists have no whitespace + // between the items (and result in text just in the
  • ) and loose lists, + // which have an empty line between list items, resulting in (one or more) + // paragraphs inside the
  • . + // + // There are all sorts weird edge cases about the original markdown.pl's + // handling of lists: + // + // * Nested lists are supposed to be indented by four chars per level. But + // if they aren't, you can get a nested list by indenting by less than + // four so long as the indent doesn't match an indent of an existing list + // item in the 'nest stack'. + // + // * The type of the list (bullet or number) is controlled just by the + // first item at the indent. Subsequent changes are ignored unless they + // are for nested lists + // + lists: (function( ) { + // Use a closure to hide a few variables. + var any_list = "[*+-]|\\d\\.", + bullet_list = /[*+-]/, + number_list = /\d+\./, + // Capture leading indent as it matters for determining nested lists. + is_list_re = new RegExp( "^( {0,3})(" + any_list + ")[ \t]+" ), + indent_re = "(?: {0,3}\\t| {4})"; + + // TODO: Cache this regexp for certain depths. + // Create a regexp suitable for matching an li for a given stack depth + function regex_for_depth( depth ) { + + return new RegExp( + // m[1] = indent, m[2] = list_type + "(?:^(" + indent_re + "{0," + depth + "} {0,3})(" + any_list + ")\\s+)|" + + // m[3] = cont + "(^" + indent_re + "{0," + (depth-1) + "}[ ]{0,4})" + ); + } + function expand_tab( input ) { + return input.replace( / {0,3}\t/g, " " ); + } + + // Add inline content `inline` to `li`. inline comes from processInline + // so is an array of content + function add(li, loose, inline, nl) { + if (loose) { + li.push( [ "para" ].concat(inline) ); + return; + } + // Hmmm, should this be any block level element or just paras? + var add_to = li[li.length -1] instanceof Array && li[li.length - 1][0] == "para" + ? li[li.length -1] + : li; + + // If there is already some content in this list, add the new line in + if (nl && li.length > 1) inline.unshift(nl); + + for (var i=0; i < inline.length; i++) { + var what = inline[i], + is_str = typeof what == "string"; + if (is_str && add_to.length > 1 && typeof add_to[add_to.length-1] == "string" ) + { + add_to[ add_to.length-1 ] += what; + } + else { + add_to.push( what ); + } + } + } + + // contained means have an indent greater than the current one. On + // *every* line in the block + function get_contained_blocks( depth, blocks ) { + + var re = new RegExp( "^(" + indent_re + "{" + depth + "}.*?\\n?)*$" ), + replace = new RegExp("^" + indent_re + "{" + depth + "}", "gm"), + ret = []; + + while ( blocks.length > 0 ) { + if ( re( blocks[0] ) ) { + var b = blocks.shift(), + // Now remove that indent + x = b.replace( replace, ""); + + ret.push( mk_block( x, b.trailing, b.lineNumber ) ); + } + break; + } + return ret; + } + + // passed to stack.forEach to turn list items up the stack into paras + function paragraphify(s, i, stack) { + var list = s.list; + var last_li = list[list.length-1]; + + if (last_li[1] instanceof Array && last_li[1][0] == "para") { + return; + } + if (i+1 == stack.length) { + // Last stack frame + // Keep the same array, but replace the contents + last_li.push( ["para"].concat( last_li.splice(1) ) ); + } + else { + var sublist = last_li.pop(); + last_li.push( ["para"].concat( last_li.splice(1) ), sublist ); + } + } + + // The matcher function + return function( block, next ) { + var m = block.match( is_list_re ); + if ( !m ) return undefined; + + function make_list( m ) { + var list = bullet_list( m[2] ) + ? ["bulletlist"] + : ["numberlist"]; + + stack.push( { list: list, indent: m[1] } ); + return list; + } + + + var stack = [], // Stack of lists for nesting. + list = make_list( m ), + last_li, + loose = false, + ret = [ stack[0].list ]; + + // Loop to search over block looking for inner block elements and loose lists + loose_search: + while( true ) { + // Split into lines preserving new lines at end of line + var lines = block.split( /(?=\n)/ ); + + // We have to grab all lines for a li and call processInline on them + // once as there are some inline things that can span lines. + var li_accumulate = ""; + + // Loop over the lines in this block looking for tight lists. + tight_search: + for (var line_no=0; line_no < lines.length; line_no++) { + var nl = "", + l = lines[line_no].replace(/^\n/, function(n) { nl = n; return "" }); + + // TODO: really should cache this + var line_re = regex_for_depth( stack.length ); + + m = l.match( line_re ); + //print( "line:", uneval(l), "\nline match:", uneval(m) ); + + // We have a list item + if ( m[1] !== undefined ) { + // Process the previous list item, if any + if ( li_accumulate.length ) { + add( last_li, loose, this.processInline( li_accumulate ), nl ); + // Loose mode will have been dealt with. Reset it + loose = false; + li_accumulate = ""; + } + + m[1] = expand_tab( m[1] ); + var wanted_depth = Math.floor(m[1].length/4)+1; + //print( "want:", wanted_depth, "stack:", stack.length); + if ( wanted_depth > stack.length ) { + // Deep enough for a nested list outright + //print ( "new nested list" ); + list = make_list( m ); + last_li.push( list ); + last_li = list[1] = [ "listitem" ]; + } + else { + // We aren't deep enough to be strictly a new level. This is + // where Md.pl goes nuts. If the indent matches a level in the + // stack, put it there, else put it one deeper then the + // wanted_depth deserves. + var found = stack.some(function(s, i) { + if ( s.indent != m[1] ) return false; + list = s.list; // Found the level we want + stack.splice(i+1); // Remove the others + //print("found"); + return true; // And stop looping + }); + + if (!found) { + //print("not found. l:", uneval(l)); + wanted_depth++; + if (wanted_depth <= stack.length) { + stack.splice(wanted_depth); + //print("Desired depth now", wanted_depth, "stack:", stack.length); + list = stack[wanted_depth-1].list; + //print("list:", uneval(list) ); + } + else { + //print ("made new stack for messy indent"); + list = make_list(m); + last_li.push(list); + } + } + + //print( uneval(list), "last", list === stack[stack.length-1].list ); + last_li = [ "listitem" ]; + list.push(last_li); + } // end depth of shenegains + nl = ""; + } + + // Add content + if (l.length > m[0].length) { + li_accumulate += nl + l.substr( m[0].length ); + } + } // tight_search + + if ( li_accumulate.length ) { + add( last_li, loose, this.processInline( li_accumulate ), nl ); + // Loose mode will have been dealt with. Reset it + loose = false; + li_accumulate = ""; + } + + // Look at the next block - we might have a loose list. Or an extra + // paragraph for the current li + var contained = get_contained_blocks( stack.length, next ); + + // Deal with code blocks or properly nested lists + if (contained.length > 0) { + // Make sure all listitems up the stack are paragraphs + stack.forEach( paragraphify, this ); + + last_li.push.apply( last_li, this.toTree( contained, [] ) ); + } + + var next_block = next[0] && next[0].valueOf() || ""; + + if ( next_block.match(is_list_re) || next_block.match( /^ / ) ) { + block = next.shift(); + + // Check for an HR following a list: features/lists/hr_abutting + var hr = this.dialect.block.horizRule( block, next ); + + if (hr) { + ret.push.apply(ret, hr); + break; + } + + // Make sure all listitems up the stack are paragraphs + stack.forEach( paragraphify , this ); + + loose = true; + continue loose_search; + } + break; + } // loose_search + + return ret; + } + })(), + + blockquote: function blockquote( block, next ) { + if ( !block.match( /^>/m ) ) + return undefined; + + var jsonml = []; + + // separate out the leading abutting block, if any + if ( block[ 0 ] != ">" ) { + var lines = block.split( /\n/ ), + prev = []; + + // keep shifting lines until you find a crotchet + while ( lines.length && lines[ 0 ][ 0 ] != ">" ) { + prev.push( lines.shift() ); + } + + // reassemble! + block = lines.join( "\n" ); + jsonml.push.apply( jsonml, this.processBlock( prev.join( "\n" ), [] ) ); + } + + // if the next block is also a blockquote merge it in + while ( next.length && next[ 0 ][ 0 ] == ">" ) { + var b = next.shift(); + block += block.trailing + b; + block.trailing = b.trailing; + } + + // Strip off the leading "> " and re-process as a block. + var input = block.replace( /^> ?/gm, '' ), + old_tree = this.tree; + jsonml.push( this.toTree( input, [ "blockquote" ] ) ); + + return jsonml; + }, + + referenceDefn: function referenceDefn( block, next) { + var re = /^\s*\[(.*?)\]:\s*(\S+)(?:\s+(?:(['"])(.*?)\3|\((.*?)\)))?\n?/; + // interesting matches are [ , ref_id, url, , title, title ] + + if ( !block.match(re) ) + return undefined; + + // make an attribute node if it doesn't exist + if ( !extract_attr( this.tree ) ) { + this.tree.splice( 1, 0, {} ); + } + + var attrs = extract_attr( this.tree ); + + // make a references hash if it doesn't exist + if ( attrs.references === undefined ) { + attrs.references = {}; + } + + var b = this.loop_re_over_block(re, block, function( m ) { + + if ( m[2] && m[2][0] == '<' && m[2][m[2].length-1] == '>' ) + m[2] = m[2].substring( 1, m[2].length - 1 ); + + var ref = attrs.references[ m[1].toLowerCase() ] = { + href: m[2] + }; + + if (m[4] !== undefined) + ref.title = m[4]; + else if (m[5] !== undefined) + ref.title = m[5]; + + } ); + + if (b.length) + next.unshift( mk_block( b, block.trailing ) ); + + return []; + }, + + para: function para( block, next ) { + // everything's a para! + return [ ["para"].concat( this.processInline( block ) ) ]; + } + } +} + +Markdown.dialects.Gruber.inline = { + __call__: function inline( text, patterns ) { + // Hmmm - should this function be directly in Md#processInline, or + // conversely, should Md#processBlock be moved into block.__call__ too + var out = [ ], + m, + // Look for the next occurange of a special character/pattern + re = new RegExp( "([\\s\\S]*?)(" + (patterns.source || patterns) + ")", "g" ), + lastIndex = 0; + + //D:var self = this; + //D:self.debug("processInline:", uneval(text) ); + function add(x) { + //D:self.debug(" adding output", uneval(x)); + if (typeof x == "string" && typeof out[out.length-1] == "string") + out[ out.length-1 ] += x; + else + out.push(x); + } + + while ( ( m = re.exec(text) ) != null) { + if ( m[1] ) add( m[1] ); // Some un-interesting text matched + else m[1] = { length: 0 }; // Or there was none, but make m[1].length == 0 + + var res; + if ( m[2] in this.dialect.inline ) { + res = this.dialect.inline[ m[2] ].call( + this, + text.substr( m.index + m[1].length ), m, out ); + } + // Default for now to make dev easier. just slurp special and output it. + res = res || [ m[2].length, m[2] ]; + + var len = res.shift(); + // Update how much input was consumed + re.lastIndex += ( len - m[2].length ); + + // Add children + res.forEach(add); + + lastIndex = re.lastIndex; + } + + // Add last 'boring' chunk + if ( text.length > lastIndex ) + add( text.substr( lastIndex ) ); + + return out; + }, + + "\\": function escaped( text ) { + // [ length of input processed, node/children to add... ] + // Only esacape: \ ` * _ { } [ ] ( ) # * + - . ! + if ( text.match( /^\\[\\`\*_{}\[\]()#\+.!\-]/ ) ) + return [ 2, text[1] ]; + else + // Not an esacpe + return [ 1, "\\" ]; + }, + + "![": function image( text ) { + // ![Alt text](/path/to/img.jpg "Optional title") + // 1 2 3 4 <--- captures + var m = text.match( /^!\[(.*?)\][ \t]*\([ \t]*(\S*)(?:[ \t]+(["'])(.*?)\3)?[ \t]*\)/ ); + + if ( m ) { + if ( m[2] && m[2][0] == '<' && m[2][m[2].length-1] == '>' ) + m[2] = m[2].substring( 1, m[2].length - 1 ); + + m[2] == this.dialect.inline.__call__.call( this, m[2], /\\/ )[0]; + + var attrs = { alt: m[1], href: m[2] || "" }; + if ( m[4] !== undefined) + attrs.title = m[4]; + + return [ m[0].length, [ "img", attrs ] ]; + } + + // ![Alt text][id] + m = text.match( /^!\[(.*?)\][ \t]*\[(.*?)\]/ ); + + if ( m ) { + // We can't check if the reference is known here as it likely wont be + // found till after. Check it in md tree->hmtl tree conversion + return [ m[0].length, [ "img_ref", { alt: m[1], ref: m[2].toLowerCase(), text: m[0] } ] ]; + } + + // Just consume the '![' + return [ 2, "![" ]; + }, + + "[": function link( text ) { + // [link text](/path/to/img.jpg "Optional title") + // 1 2 3 4 <--- captures + var m = text.match( /^\[([\s\S]*?)\][ \t]*\([ \t]*(\S+)(?:[ \t]+(["'])(.*?)\3)?[ \t]*\)/ ); + + if ( m ) { + if ( m[2] && m[2][0] == '<' && m[2][m[2].length-1] == '>' ) + m[2] = m[2].substring( 1, m[2].length - 1 ); + + // Process escapes only + m[2] = this.dialect.inline.__call__.call( this, m[2], /\\/ )[0]; + + var attrs = { href: m[2] || "" }; + if ( m[4] !== undefined) + attrs.title = m[4]; + + return [ m[0].length, [ "link", attrs, m[1] ] ]; + } + + // [Alt text][id] + // [Alt text] [id] + // [id] + m = text.match( /^\[([\s\S]*?)\](?: ?\[(.*?)\])?/ ); + + if ( m ) { + // [id] case, text == id + if ( m[2] === undefined || m[2] === "" ) m[2] = m[1]; + + // We can't check if the reference is known here as it likely wont be + // found till after. Check it in md tree->hmtl tree conversion. + // Store the original so that conversion can revert if the ref isn't found. + return [ + m[ 0 ].length, + [ + "link_ref", + { + ref: m[ 2 ].toLowerCase(), + original: m[ 0 ] + }, + m[ 1 ] + ] + ]; + } + + // Just consume the '[' + return [ 1, "[" ]; + }, + + + "<": function autoLink( text ) { + var m; + + if ( ( m = text.match( /^<(?:((https?|ftp|mailto):[^>]+)|(.*?@.*?\.[a-zA-Z]+))>/ ) ) != null ) { + if ( m[3] ) { + return [ m[0].length, [ "link", { href: "mailto:" + m[3] }, m[3] ] ]; + + } + else if ( m[2] == "mailto" ) { + return [ m[0].length, [ "link", { href: m[1] }, m[1].substr("mailto:".length ) ] ]; + } + else + return [ m[0].length, [ "link", { href: m[1] }, m[1] ] ]; + } + + return [ 1, "<" ]; + }, + + "`": function inlineCode( text ) { + // Inline code block. as many backticks as you like to start it + // Always skip over the opening ticks. + var m = text.match( /(`+)(([\s\S]*?)\1)/ ); + + if ( m && m[2] ) + return [ m[1].length + m[2].length, [ "inlinecode", m[3] ] ]; + else { + // TODO: No matching end code found - warn! + return [ 1, "`" ]; + } + }, + + " \n": function lineBreak( text ) { + return [ 3, [ "linebreak" ] ]; + } + +} + +// Meta Helper/generator method for em and strong handling +function strong_em( tag, md ) { + + var state_slot = tag + "_state", + other_slot = tag == "strong" ? "em_state" : "strong_state"; + + function CloseTag(len) { + this.len_after = len; + this.name = "close_" + md; + } + + return function ( text, orig_match ) { + + if (this[state_slot][0] == md) { + // Most recent em is of this type + //D:this.debug("closing", md); + this[state_slot].shift(); + + // "Consume" everything to go back to the recrusion in the else-block below + return[ text.length, new CloseTag(text.length-md.length) ]; + } + else { + // Store a clone of the em/strong states + var other = this[other_slot].slice(), + state = this[state_slot].slice(); + + this[state_slot].unshift(md); + + //D:this.debug_indent += " "; + + // Recurse + var res = this.processInline( text.substr( md.length ) ); + //D:this.debug_indent = this.debug_indent.substr(2); + + var last = res[res.length - 1]; + + //D:this.debug("processInline from", tag + ": ", uneval( res ) ); + + var check = this[state_slot].shift(); + if (last instanceof CloseTag) { + res.pop(); + // We matched! Huzzah. + var consumed = text.length - last.len_after; + return [ consumed, [ tag ].concat(res) ]; + } + else { + // Restore the state of the other kind. We might have mistakenly closed it. + this[other_slot] = other; + this[state_slot] = state; + + // We can't reuse the processed result as it could have wrong parsing contexts in it. + return [ md.length, md ]; + } + } + } // End returned function +} + +Markdown.dialects.Gruber.inline["**"] = strong_em("strong", "**"); +Markdown.dialects.Gruber.inline["__"] = strong_em("strong", "__"); +Markdown.dialects.Gruber.inline["*"] = strong_em("em", "*"); +Markdown.dialects.Gruber.inline["_"] = strong_em("em", "_"); + + +// Build default order from insertion order. +Markdown.buildBlockOrder = function(d) { + var ord = []; + for ( var i in d ) { + if ( i == "__order__" || i == "__call__" ) continue; + ord.push( i ); + } + d.__order__ = ord; +} + +// Build patterns for inline matcher +Markdown.buildInlinePatterns = function(d) { + var patterns = []; + + for ( var i in d ) { + if (i == "__call__") continue; + var l = i.replace( /([\\.*+?|()\[\]{}])/g, "\\$1" ) + .replace( /\n/, "\\n" ); + patterns.push( i.length == 1 ? l : "(?:" + l + ")" ); + } + + patterns = patterns.join("|"); + //print("patterns:", uneval( patterns ) ); + + var fn = d.__call__; + d.__call__ = function(text, pattern) { + if (pattern != undefined) + return fn.call(this, text, pattern); + else + return fn.call(this, text, patterns); + } +} + +// Helper function to make sub-classing a dialect easier +Markdown.subclassDialect = function( d ) { + function Block() {}; + Block.prototype = d.block; + function Inline() {}; + Inline.prototype = d.inline; + + return { block: new Block(), inline: new Inline() }; +} + +Markdown.buildBlockOrder ( Markdown.dialects.Gruber.block ); +Markdown.buildInlinePatterns( Markdown.dialects.Gruber.inline ); + +Markdown.dialects.Maruku = Markdown.subclassDialect( Markdown.dialects.Gruber ); + +Markdown.dialects.Maruku.block.document_meta = function document_meta( block, next ) { + // we're only interested in the first block + if ( block.lineNumber > 1 ) return undefined; + + // document_meta blocks consist of one or more lines of `Key: Value\n` + if ( ! block.match( /^(?:\w+:.*\n)*\w+:.*$/ ) ) return undefined; + + // make an attribute node if it doesn't exist + if ( !extract_attr( this.tree ) ) { + this.tree.splice( 1, 0, {} ); + } + + var pairs = block.split( /\n/ ); + for ( p in pairs ) { + var m = pairs[ p ].match( /(\w+):\s*(.*)$/ ), + key = m[ 1 ].toLowerCase(), + value = m[ 2 ]; + + this.tree[ 1 ][ key ] = value; + } + + // document_meta produces no content! + return []; +} + +Markdown.dialects.Maruku.block.block_meta = function block_meta( block, next ) { + // check if the last line of the block is an meta hash + var m = block.match( /(^|\n) {0,3}\{:\s*((?:\\\}|[^\}])*)\s*\}$/ ); + if ( !m ) return undefined; + + // process the meta hash + var attr = process_meta_hash( m[ 2 ] ); + + // if we matched ^ then we need to apply meta to the previous block + if ( m[ 1 ] === "" ) { + var node = this.tree[ this.tree.length - 1 ], + hash = extract_attr( node ); + + // if the node is a string (rather than JsonML), bail + if ( typeof node === "string" ) return undefined; + + // create the attribute hash if it doesn't exist + if ( !hash ) { + hash = {}; + node.splice( 1, 0, hash ); + } + + // add the attributes in + for ( a in attr ) { + hash[ a ] = attr[ a ]; + } + + // return nothing so the meta hash is removed + return []; + } + + // pull the meta hash off the block and process what's left + var b = block.replace( /\n.*$/, "" ), + result = this.processBlock( b, [] ); + + // get or make the attributes hash + var hash = extract_attr( result[ 0 ] ); + if ( !hash ) { + hash = {}; + result[ 0 ].splice( 1, 0, hash ); + } + + // attach the attributes to the block + for ( a in attr ) { + hash[ a ] = attr[ a ]; + } + + return result; +} + +Markdown.dialects.Maruku.block.definition_list = function definition_list( block, next ) { + // one or more terms followed by one or more definitions, in a single block + var tight = /^((?:[^\s:].*\n)+):\s+([^]+)$/, + list = [ "dl" ]; + + // see if we're dealing with a tight or loose block + if ( ( m = block.match( tight ) ) ) { + // pull subsequent tight DL blocks out of `next` + var blocks = [ block ]; + while ( next.length && tight.exec( next[ 0 ] ) ) { + blocks.push( next.shift() ); + } + + for ( var b = 0; b < blocks.length; ++b ) { + var m = blocks[ b ].match( tight ), + terms = m[ 1 ].replace( /\n$/, "" ).split( /\n/ ), + defns = m[ 2 ].split( /\n:\s+/ ); + + // print( uneval( m ) ); + + for ( var i = 0; i < terms.length; ++i ) { + list.push( [ "dt", terms[ i ] ] ); + } + + for ( var i = 0; i < defns.length; ++i ) { + // run inline processing over the definition + list.push( [ "dd" ].concat( this.processInline( defns[ i ].replace( /(\n)\s+/, "$1" ) ) ) ); + } + } + } + else { + return undefined; + } + + return [ list ]; +} + +Markdown.dialects.Maruku.inline[ "{:" ] = function inline_meta( text, matches, out ) { + if ( !out.length ) { + return [ 2, "{:" ]; + } + + // get the preceeding element + var before = out[ out.length - 1 ]; + + if ( typeof before === "string" ) { + return [ 2, "{:" ]; + } + + // match a meta hash + var m = text.match( /^\{:\s*((?:\\\}|[^\}])*)\s*\}/ ); + + // no match, false alarm + if ( !m ) { + return [ 2, "{:" ]; + } + + // attach the attributes to the preceeding element + var meta = process_meta_hash( m[ 1 ] ), + attr = extract_attr( before ); + + if ( !attr ) { + attr = {}; + before.splice( 1, 0, attr ); + } + + for ( var k in meta ) { + attr[ k ] = meta[ k ]; + } + + // cut out the string and replace it with nothing + return [ m[ 0 ].length, "" ]; +} + +Markdown.buildBlockOrder ( Markdown.dialects.Maruku.block ); +Markdown.buildInlinePatterns( Markdown.dialects.Maruku.inline ); + +function extract_attr( jsonml ) { + return jsonml instanceof Array + && jsonml.length > 1 + && typeof jsonml[ 1 ] === "object" + && !( jsonml[ 1 ] instanceof Array ) + ? jsonml[ 1 ] + : undefined; +} + +function process_meta_hash( meta_string ) { + var meta = split_meta_hash( meta_string ), + attr = {}; + + for ( var i = 0; i < meta.length; ++i ) { + // id: #foo + if ( /^#/.test( meta[ i ] ) ) { + attr.id = meta[ i ].substring( 1 ); + } + // class: .foo + else if ( /^\./.test( meta[ i ] ) ) { + // if class already exists, append the new one + if ( attr['class'] ) { + attr['class'] = attr['class'] + meta[ i ].replace( /./, " " ); + } + else { + attr['class'] = meta[ i ].substring( 1 ); + } + } + // attribute: foo=bar + else if ( /=/.test( meta[ i ] ) ) { + var s = meta[ i ].split( /=/ ); + attr[ s[ 0 ] ] = s[ 1 ]; + } + } + + return attr; +} + +function split_meta_hash( meta_string ) { + var meta = meta_string.split( "" ), + parts = [ "" ], + in_quotes = false; + + while ( meta.length ) { + var letter = meta.shift(); + switch ( letter ) { + case " " : + // if we're in a quoted section, keep it + if ( in_quotes ) { + parts[ parts.length - 1 ] += letter; + } + // otherwise make a new part + else { + parts.push( "" ); + } + break; + case "'" : + case '"' : + // reverse the quotes and move straight on + in_quotes = !in_quotes; + break; + case "\\" : + // shift off the next letter to be used straight away. + // it was escaped so we'll keep it whatever it is + letter = meta.shift(); + default : + parts[ parts.length - 1 ] += letter; + break; + } + } + + return parts; +} + +/** + * renderJsonML( jsonml[, options] ) -> String + * - jsonml (Array): JsonML array to render to XML + * - options (Object): options + * + * Converts the given JsonML into well-formed XML. + * + * The options currently understood are: + * + * - root (Boolean): wether or not the root node should be included in the + * output, or just its children. The default `false` is to not include the + * root itself. + */ +expose.renderJsonML = function( jsonml, options ) { + options = options || {}; + // include the root element in the rendered output? + options.root = options.root || false; + + var content = []; + + if ( options.root ) { + content.push( render_tree( jsonml ) ); + } + else { + jsonml.shift(); // get rid of the tag + if ( jsonml.length && typeof jsonml[ 0 ] === "object" && !( jsonml[ 0 ] instanceof Array ) ) { + jsonml.shift(); // get rid of the attributes + } + + while ( jsonml.length ) { + content.push( render_tree( jsonml.shift() ) ); + } + } + + return content.join( "\n\n" ); +} + +function escapeHTML( text ) { + return text.replace( /&/g, "&" ) + .replace( //g, ">" ) + .replace( /"/g, """ ) + .replace( /'/g, "'" ); +} + +function render_tree( jsonml ) { + // basic case + if ( typeof jsonml === "string" ) { + return escapeHTML( jsonml ); + } + + var tag = jsonml.shift(), + attributes = {}, + content = []; + + if ( jsonml.length && typeof jsonml[ 0 ] === "object" && !( jsonml[ 0 ] instanceof Array ) ) { + attributes = jsonml.shift(); + } + + while ( jsonml.length ) { + content.push( arguments.callee( jsonml.shift() ) ); + } + + var tag_attrs = ""; + for ( var a in attributes ) { + tag_attrs += " " + a + '="' + escapeHTML( attributes[ a ] ) + '"'; + } + + // be careful about adding whitespace here for inline elements + return "<"+ tag + tag_attrs + ">" + content.join( "" ) + ""; +} + +function convert_tree_to_html( tree, references ) { + // shallow clone + var jsonml = tree.slice( 0 ); + + // Clone attributes if the exist + var attrs = extract_attr( jsonml ); + if ( attrs ) { + jsonml[ 1 ] = {}; + for ( var i in attrs ) { + jsonml[ 1 ][ i ] = attrs[ i ]; + } + attrs = jsonml[ 1 ]; + } + + // basic case + if ( typeof jsonml === "string" ) { + return jsonml; + } + + // convert this node + switch ( jsonml[ 0 ] ) { + case "header": + jsonml[ 0 ] = "h" + jsonml[ 1 ].level; + delete jsonml[ 1 ].level; + break; + case "bulletlist": + jsonml[ 0 ] = "ul"; + break; + case "numberlist": + jsonml[ 0 ] = "ol"; + break; + case "listitem": + jsonml[ 0 ] = "li"; + break; + case "para": + jsonml[ 0 ] = "p"; + break; + case "markdown": + jsonml[ 0 ] = "html"; + if ( attrs ) delete attrs.references; + break; + case "code_block": + jsonml[ 0 ] = "pre"; + var i = attrs ? 2 : 1; + var code = [ "code" ]; + code.push.apply( code, jsonml.splice( i ) ); + jsonml[ i ] = code; + break; + case "inlinecode": + jsonml[ 0 ] = "code"; + break; + case "img": + jsonml[ 1 ].src = jsonml[ 1 ].href; + delete jsonml[ 1 ].href; + break; + case "linebreak": + jsonml[0] = "br"; + break; + case "link": + jsonml[ 0 ] = "a"; + break; + case "link_ref": + jsonml[ 0 ] = "a"; + + // grab this ref and clean up the attribute node + var ref = references[ attrs.ref ]; + + // if the reference exists, make the link + if ( ref ) { + delete attrs.ref; + + // add in the href and title, if present + attrs.href = ref.href; + if ( ref.title ) { + attrs.title = ref.title; + } + + // get rid of the unneeded original text + delete attrs.original; + } + // the reference doesn't exist, so revert to plain text + else { + return attrs.original; + } + break; + } + + // convert all the children + var i = 1; + + // deal with the attribute node, if it exists + if ( attrs ) { + // if there are keys, skip over it + for ( var key in jsonml[ 1 ] ) { + i = 2; + } + // if there aren't, remove it + if ( i === 1 ) { + jsonml.splice( i, 1 ); + } + } + + for ( ; i < jsonml.length; ++i ) { + jsonml[ i ] = arguments.callee( jsonml[ i ], references ); + } + + return jsonml; +} + + +// merges adjacent text nodes into a single node +function merge_text_nodes( jsonml ) { + // skip the tag name and attribute hash + var i = extract_attr( jsonml ) ? 2 : 1; + + while ( i < jsonml.length ) { + // if it's a string check the next item too + if ( typeof jsonml[ i ] === "string" ) { + if ( i + 1 < jsonml.length && typeof jsonml[ i + 1 ] === "string" ) { + // merge the second string into the first and remove it + jsonml[ i ] += jsonml.splice( i + 1, 1 )[ 0 ]; + } + else { + ++i; + } + } + // if it's not a string recurse + else { + arguments.callee( jsonml[ i ] ); + ++i; + } + } +} + +} )( (function() { + if ( typeof exports === "undefined" ) { + window.markdown = {}; + return window.markdown; + } + else { + return exports; + } +} )() ); diff --git a/node_modules/markdown/package.json b/node_modules/markdown/package.json new file mode 100644 index 000000000..9fc895fdb --- /dev/null +++ b/node_modules/markdown/package.json @@ -0,0 +1,42 @@ +{ + "name" : "markdown", + "version" : "0.2.1", + "description" : "A sensible Markdown parser for javascript", + "keywords" : [ "markdown", "text processing", "ast" ], + "maintainers" : [ + { + "name" : "Dominic Baggott", + "email" : "dominic.baggott@gmail.com", + "web" : "http://evilstreak.co.uk" + }, + { + "name" : "Ash Berlin", + "email" : "ash_markdownjs@firemirror.com", + "web" : "http://ashberlin.com" + } + ], + "contributors" : [ + { + "name" : "Dominic Baggott", + "email" : "dominic.baggott@gmail.com", + "web" : "http://evilstreak.co.uk" + }, + { + "name" : "Ash Berlin", + "email" : "ash_markdownjs@firemirror.com", + "web" : "http://ashberlin.com" + } + ], + "bugs" : "http://github.com/evilstreak/markdown-js/issues", + "licenses" : [ + { + "type" : "MIT", + "url" : "http://www.opensource.org/licenses/mit-license.php" + } + ], + "main" : "./lib/index.js", + "repository" : { + "type" : "git", + "url" : "git://github.com/evilstreak/markdown-js.git" + } +} diff --git a/node_modules/markdown/seed.yml b/node_modules/markdown/seed.yml new file mode 100644 index 000000000..a15b22903 --- /dev/null +++ b/node_modules/markdown/seed.yml @@ -0,0 +1,5 @@ +--- + name: markdown-js + description: JavaScript implementation of Markdown + tags: markdown parser + version: 0.1.2 diff --git a/node_modules/markdown/test/features.t.js b/node_modules/markdown/test/features.t.js new file mode 100644 index 000000000..d20f3dc80 --- /dev/null +++ b/node_modules/markdown/test/features.t.js @@ -0,0 +1,84 @@ +const test = require('test'), + asserts = test.asserts, + fs = require( "fs-base" ), + markdown = require( "markdown" ), + args = require( "system" ).args.splice( 1 ); + +function test_dialect( dialect, features ) { + var path = module.resource.resolve( "features" ), + dialect_test = exports[ "test_" + dialect ] = {}; + + for ( var f in features ) { + ( function( feature ) { + dialect_test[ "test_" + feature ] = function() { + var test_path = path + feature + "/"; + + // grab all the test files in this feature + var tests = fs.list( test_path ); + + // filter to only the raw files + tests = tests.filter( function( x ) x.match( /\.text$/ ) ); + + // remove the extensions + tests = tests.map( function( x ) x.replace( /\.text$/, "" ) ); + + for ( var t in tests ) { + // load the raw text + var test_name = tests[ t ].substring( tests[ t ].lastIndexOf( "/" ) + 1 ), + text_file = fs.rawOpen( test_path + tests[ t ] + ".text", "r" ), + text = text_file.readWhole(); + text_file.close(); + + // load the target output + if ( fs.isFile( test_path + tests[ t ] + ".json" ) ) { + try { + var json_file = fs.rawOpen( test_path + tests[ t ] + ".json", "r" ), + json = JSON.parse( json_file.readWhole() ); + json_file.close(); + + var output = markdown.toHTMLTree( text, dialect ); + asserts.same( output, json, test_name ); + } + catch( e ) { + asserts.ok( 0, "Failed with error on " + test_name + ": " + e ); + if ( e.stack ) + asserts.diag( e.stack ); + } + } + else { + asserts.ok( 0, "No target output for " + test_name ); + } + } + } + } )( features[ f ] ); + } +} + +if ( require.main === module ) { + var dialects = {}; + dialects.Gruber = [ + "blockquotes", + "code", + "emphasis", + "headers", + "horizontal_rules", + "images", + "linebreaks", + "links", + "lists" + ]; + + dialects.Maruku = dialects.Gruber.slice( 0 ); + dialects.Maruku.push( "meta", "definition_lists" ); + + // TODO if dialects/features were passed on the command line, filter to them + // if ( args.length ) { + // features = features.filter( function( x ) args.indexOf( x ) !== -1 ); + // } + + for ( d in dialects ) { + test_dialect( d, dialects[ d ] ); + } + + test.runner( exports ); +} diff --git a/node_modules/markdown/test/features/blockquotes/contains_code.json b/node_modules/markdown/test/features/blockquotes/contains_code.json new file mode 100644 index 000000000..c02dd38f8 --- /dev/null +++ b/node_modules/markdown/test/features/blockquotes/contains_code.json @@ -0,0 +1,15 @@ +["html", + ["blockquote", + ["p", + "There's a code block in here:" + ], + ["pre", + ["code", + "SET foo = TRUE\n\nIF foo GOTO 10" + ] + ], + ["p", + "Wasn't that nice?" + ] + ] +] diff --git a/node_modules/markdown/test/features/blockquotes/contains_code.text b/node_modules/markdown/test/features/blockquotes/contains_code.text new file mode 100644 index 000000000..a9f42cffe --- /dev/null +++ b/node_modules/markdown/test/features/blockquotes/contains_code.text @@ -0,0 +1,7 @@ +> There's a code block in here: +> +> SET foo = TRUE +> +> IF foo GOTO 10 +> +> Wasn't that nice? diff --git a/node_modules/markdown/test/features/blockquotes/lazy_wrapping.json b/node_modules/markdown/test/features/blockquotes/lazy_wrapping.json new file mode 100644 index 000000000..18302cce4 --- /dev/null +++ b/node_modules/markdown/test/features/blockquotes/lazy_wrapping.json @@ -0,0 +1,10 @@ +["html", + ["blockquote", + ["p", + "If you're too lazy\nto wrap your code nicely" + ], + ["p", + "This will still work" + ] + ] +] diff --git a/node_modules/markdown/test/features/blockquotes/lazy_wrapping.text b/node_modules/markdown/test/features/blockquotes/lazy_wrapping.text new file mode 100644 index 000000000..eba02ada0 --- /dev/null +++ b/node_modules/markdown/test/features/blockquotes/lazy_wrapping.text @@ -0,0 +1,4 @@ +> If you're too lazy +to wrap your code nicely + +> This will still work diff --git a/node_modules/markdown/test/features/blockquotes/leading_paras.json b/node_modules/markdown/test/features/blockquotes/leading_paras.json new file mode 100644 index 000000000..2911f0831 --- /dev/null +++ b/node_modules/markdown/test/features/blockquotes/leading_paras.json @@ -0,0 +1,18 @@ +["html", + ["p", + "Amy wrote:" + ], + ["blockquote", + ["p", + "No wai?" + ] + ], + ["p", + "Bob wrote:" + ], + ["blockquote", + ["p", + "Ya rly!" + ] + ] +] diff --git a/node_modules/markdown/test/features/blockquotes/leading_paras.text b/node_modules/markdown/test/features/blockquotes/leading_paras.text new file mode 100644 index 000000000..712b3b893 --- /dev/null +++ b/node_modules/markdown/test/features/blockquotes/leading_paras.text @@ -0,0 +1,5 @@ +Amy wrote: +> No wai? + +Bob wrote: +> Ya rly! diff --git a/node_modules/markdown/test/features/blockquotes/nested.json b/node_modules/markdown/test/features/blockquotes/nested.json new file mode 100644 index 000000000..c49536b82 --- /dev/null +++ b/node_modules/markdown/test/features/blockquotes/nested.json @@ -0,0 +1,15 @@ +["html", + ["blockquote", + ["p", + "One" + ], + ["blockquote", + ["p", + "Two" + ] + ], + ["p", + "Three" + ] + ] +] diff --git a/node_modules/markdown/test/features/blockquotes/nested.text b/node_modules/markdown/test/features/blockquotes/nested.text new file mode 100644 index 000000000..cec53f74c --- /dev/null +++ b/node_modules/markdown/test/features/blockquotes/nested.text @@ -0,0 +1,5 @@ +> One +> +> > Two +> +> Three diff --git a/node_modules/markdown/test/features/blockquotes/simple.json b/node_modules/markdown/test/features/blockquotes/simple.json new file mode 100644 index 000000000..8771e42fe --- /dev/null +++ b/node_modules/markdown/test/features/blockquotes/simple.json @@ -0,0 +1,7 @@ +["html", + ["blockquote", + ["p", + "Blockquote" + ] + ] +] diff --git a/node_modules/markdown/test/features/blockquotes/simple.text b/node_modules/markdown/test/features/blockquotes/simple.text new file mode 100644 index 000000000..74045e7ec --- /dev/null +++ b/node_modules/markdown/test/features/blockquotes/simple.text @@ -0,0 +1 @@ +> Blockquote diff --git a/node_modules/markdown/test/features/blockquotes/spaceless.json b/node_modules/markdown/test/features/blockquotes/spaceless.json new file mode 100644 index 000000000..46e1e3dd9 --- /dev/null +++ b/node_modules/markdown/test/features/blockquotes/spaceless.json @@ -0,0 +1,7 @@ +["html", + ["blockquote", + ["p", + "blockquote\nwithout spaces" + ] + ] +] diff --git a/node_modules/markdown/test/features/blockquotes/spaceless.text b/node_modules/markdown/test/features/blockquotes/spaceless.text new file mode 100644 index 000000000..31ae9fdbb --- /dev/null +++ b/node_modules/markdown/test/features/blockquotes/spaceless.text @@ -0,0 +1,2 @@ +>blockquote +>without spaces diff --git a/node_modules/markdown/test/features/code/blank_lines.json b/node_modules/markdown/test/features/code/blank_lines.json new file mode 100644 index 000000000..84ed59a60 --- /dev/null +++ b/node_modules/markdown/test/features/code/blank_lines.json @@ -0,0 +1,26 @@ +["html", + ["p", + "This block is composed of three lines:" + ], + ["pre", + ["code", + "one\n\nthree" + ] + ], + ["p", + "This block is composed of 5" + ], + ["pre", + ["code", + "one\n\n\nfour" + ] + ], + ["p", + "This block is composed of 2" + ], + ["pre", + ["code", + "two" + ] + ] +] diff --git a/node_modules/markdown/test/features/code/blank_lines.text b/node_modules/markdown/test/features/code/blank_lines.text new file mode 100644 index 000000000..0f2d7c322 --- /dev/null +++ b/node_modules/markdown/test/features/code/blank_lines.text @@ -0,0 +1,22 @@ +This block is composed of three lines: + + one + + three + +This block is composed of 5 + + + one + + + four + + +This block is composed of 2 + + + two + + + diff --git a/node_modules/markdown/test/features/code/block.json b/node_modules/markdown/test/features/code/block.json new file mode 100644 index 000000000..425b8b33d --- /dev/null +++ b/node_modules/markdown/test/features/code/block.json @@ -0,0 +1,10 @@ +["html", + ["p", + "Here is an example of AppleScript:" + ], + ["pre", + ["code", + "tell application \"Foo\"\n beep\nend tell\n\ttab" + ] + ] +] diff --git a/node_modules/markdown/test/features/code/block.text b/node_modules/markdown/test/features/code/block.text new file mode 100644 index 000000000..3656212a0 --- /dev/null +++ b/node_modules/markdown/test/features/code/block.text @@ -0,0 +1,7 @@ +Here is an example of AppleScript: + + tell application "Foo" + beep + end tell + tab + diff --git a/node_modules/markdown/test/features/code/embedded_backtick.json b/node_modules/markdown/test/features/code/embedded_backtick.json new file mode 100644 index 000000000..17078c5d0 --- /dev/null +++ b/node_modules/markdown/test/features/code/embedded_backtick.json @@ -0,0 +1,8 @@ +["html", + ["p", + "This is a ", + ["code", + "code span with an `embedded` backtick"], + "." + ] +] diff --git a/node_modules/markdown/test/features/code/embedded_backtick.text b/node_modules/markdown/test/features/code/embedded_backtick.text new file mode 100644 index 000000000..65313065a --- /dev/null +++ b/node_modules/markdown/test/features/code/embedded_backtick.text @@ -0,0 +1 @@ +This is a ``code span with an `embedded` backtick``. diff --git a/node_modules/markdown/test/features/code/horizontal_rules.json b/node_modules/markdown/test/features/code/horizontal_rules.json new file mode 100644 index 000000000..343f3a6fc --- /dev/null +++ b/node_modules/markdown/test/features/code/horizontal_rules.json @@ -0,0 +1,7 @@ +["html", + ["pre", + ["code", + "fsfsfsf\n* * *\n\n***\n\n*****\n\n- - -\n\n---------------------------------------" + ] + ] +] diff --git a/node_modules/markdown/test/features/code/horizontal_rules.text b/node_modules/markdown/test/features/code/horizontal_rules.text new file mode 100644 index 000000000..394a61398 --- /dev/null +++ b/node_modules/markdown/test/features/code/horizontal_rules.text @@ -0,0 +1,10 @@ + fsfsfsf + * * * + + *** + + ***** + + - - - + + --------------------------------------- diff --git a/node_modules/markdown/test/features/code/inline.json b/node_modules/markdown/test/features/code/inline.json new file mode 100644 index 000000000..75a92134d --- /dev/null +++ b/node_modules/markdown/test/features/code/inline.json @@ -0,0 +1,8 @@ +["html", + ["p", + ["code", + "This" + ], + " is a code span." + ] +] diff --git a/node_modules/markdown/test/features/code/inline.text b/node_modules/markdown/test/features/code/inline.text new file mode 100644 index 000000000..7f18b2240 --- /dev/null +++ b/node_modules/markdown/test/features/code/inline.text @@ -0,0 +1 @@ +`This` is a code span. diff --git a/node_modules/markdown/test/features/code/inline_multiline.json b/node_modules/markdown/test/features/code/inline_multiline.json new file mode 100644 index 000000000..d9ae07ef4 --- /dev/null +++ b/node_modules/markdown/test/features/code/inline_multiline.json @@ -0,0 +1,9 @@ +["html", + ["p", + "foo ", + ["code", + "code\ncode" + ], + " bar" + ] +] diff --git a/node_modules/markdown/test/features/code/inline_multiline.text b/node_modules/markdown/test/features/code/inline_multiline.text new file mode 100644 index 000000000..13c8d604d --- /dev/null +++ b/node_modules/markdown/test/features/code/inline_multiline.text @@ -0,0 +1,2 @@ +foo `code +code` bar diff --git a/node_modules/markdown/test/features/code/trailing_para.json b/node_modules/markdown/test/features/code/trailing_para.json new file mode 100644 index 000000000..fb02131f5 --- /dev/null +++ b/node_modules/markdown/test/features/code/trailing_para.json @@ -0,0 +1,13 @@ +["html", + ["p", + "Paragraph above" + ], + ["pre", + ["code", + "Code block" + ] + ], + ["p", + "Paragraph below" + ] +] diff --git a/node_modules/markdown/test/features/code/trailing_para.text b/node_modules/markdown/test/features/code/trailing_para.text new file mode 100644 index 000000000..abca8d8ba --- /dev/null +++ b/node_modules/markdown/test/features/code/trailing_para.text @@ -0,0 +1,4 @@ +Paragraph above + + Code block +Paragraph below diff --git a/node_modules/markdown/test/features/definition_lists/inline.json b/node_modules/markdown/test/features/definition_lists/inline.json new file mode 100644 index 000000000..2e9d3cb79 --- /dev/null +++ b/node_modules/markdown/test/features/definition_lists/inline.json @@ -0,0 +1,22 @@ +["html", + ["dl", + ["dt", + "a term" + ], + ["dd", + ["em", + "emphasised" + ], + " definition." + ], + ["dt", + "another term" + ], + ["dd", + ["strong", + "strong" + ], + " definition." + ] + ] +] diff --git a/node_modules/markdown/test/features/definition_lists/inline.text b/node_modules/markdown/test/features/definition_lists/inline.text new file mode 100644 index 000000000..b79dbc728 --- /dev/null +++ b/node_modules/markdown/test/features/definition_lists/inline.text @@ -0,0 +1,5 @@ +a term +: *emphasised* definition. + +another term +: **strong** definition. diff --git a/node_modules/markdown/test/features/definition_lists/long.json b/node_modules/markdown/test/features/definition_lists/long.json new file mode 100644 index 000000000..3dfdd2f90 --- /dev/null +++ b/node_modules/markdown/test/features/definition_lists/long.json @@ -0,0 +1,16 @@ +["html", + ["dl", + ["dt", + "first term" + ], + ["dd", + "the quick brown fox jumps\nover the lazy dog" + ], + ["dt", + "second term" + ], + ["dd", + "pack my box with five\ndozen liquor jugs" + ] + ] +] diff --git a/node_modules/markdown/test/features/definition_lists/long.text b/node_modules/markdown/test/features/definition_lists/long.text new file mode 100644 index 000000000..001df33d4 --- /dev/null +++ b/node_modules/markdown/test/features/definition_lists/long.text @@ -0,0 +1,7 @@ +first term +: the quick brown fox jumps + over the lazy dog + +second term +: pack my box with five +dozen liquor jugs diff --git a/node_modules/markdown/test/features/definition_lists/multiple_definitions.json b/node_modules/markdown/test/features/definition_lists/multiple_definitions.json new file mode 100644 index 000000000..6bb3d59c0 --- /dev/null +++ b/node_modules/markdown/test/features/definition_lists/multiple_definitions.json @@ -0,0 +1,28 @@ +["html", + ["dl", + ["dt", + "fruit" + ], + ["dd", + "apple" + ], + ["dd", + "banana" + ], + ["dd", + "pear" + ], + ["dt", + "animal" + ], + ["dd", + "cow" + ], + ["dd", + "duck" + ], + ["dd", + "horse" + ] + ] +] diff --git a/node_modules/markdown/test/features/definition_lists/multiple_definitions.text b/node_modules/markdown/test/features/definition_lists/multiple_definitions.text new file mode 100644 index 000000000..b6b0ecaec --- /dev/null +++ b/node_modules/markdown/test/features/definition_lists/multiple_definitions.text @@ -0,0 +1,9 @@ +fruit +: apple +: banana +: pear + +animal +: cow +: duck +: horse diff --git a/node_modules/markdown/test/features/definition_lists/multiple_terms.json b/node_modules/markdown/test/features/definition_lists/multiple_terms.json new file mode 100644 index 000000000..4cf7cd86b --- /dev/null +++ b/node_modules/markdown/test/features/definition_lists/multiple_terms.json @@ -0,0 +1,22 @@ +["html", + ["dl", + ["dt", + "fruit" + ], + ["dt", + "vegetable" + ], + ["dd", + "tomato" + ], + ["dt", + "animal" + ], + ["dt", + "mineral" + ], + ["dd", + "pet rock" + ] + ] +] diff --git a/node_modules/markdown/test/features/definition_lists/multiple_terms.text b/node_modules/markdown/test/features/definition_lists/multiple_terms.text new file mode 100644 index 000000000..e5447bf72 --- /dev/null +++ b/node_modules/markdown/test/features/definition_lists/multiple_terms.text @@ -0,0 +1,7 @@ +fruit +vegetable +: tomato + +animal +mineral +: pet rock diff --git a/node_modules/markdown/test/features/definition_lists/tight.json b/node_modules/markdown/test/features/definition_lists/tight.json new file mode 100644 index 000000000..a38e42bf5 --- /dev/null +++ b/node_modules/markdown/test/features/definition_lists/tight.json @@ -0,0 +1,22 @@ +["html", + ["dl", + ["dt", + "one" + ], + ["dd", + "alpha" + ], + ["dt", + "two" + ], + ["dd", + "beta" + ], + ["dt", + "three" + ], + ["dd", + "gamma" + ] + ] +] diff --git a/node_modules/markdown/test/features/definition_lists/tight.text b/node_modules/markdown/test/features/definition_lists/tight.text new file mode 100644 index 000000000..627641297 --- /dev/null +++ b/node_modules/markdown/test/features/definition_lists/tight.text @@ -0,0 +1,8 @@ +one +: alpha + +two +: beta + +three +: gamma diff --git a/node_modules/markdown/test/features/emphasis/multiple_lines.json b/node_modules/markdown/test/features/emphasis/multiple_lines.json new file mode 100644 index 000000000..193e11ad4 --- /dev/null +++ b/node_modules/markdown/test/features/emphasis/multiple_lines.json @@ -0,0 +1,9 @@ +["html", + ["p", + "You can ", + ["em", + "start emphasis on one line,\nand finish it" + ], + " on another." + ] +] diff --git a/node_modules/markdown/test/features/emphasis/multiple_lines.text b/node_modules/markdown/test/features/emphasis/multiple_lines.text new file mode 100644 index 000000000..9a6b98c67 --- /dev/null +++ b/node_modules/markdown/test/features/emphasis/multiple_lines.text @@ -0,0 +1,2 @@ +You can *start emphasis on one line, +and finish it* on another. diff --git a/node_modules/markdown/test/features/emphasis/nested.json b/node_modules/markdown/test/features/emphasis/nested.json new file mode 100644 index 000000000..0d61d950d --- /dev/null +++ b/node_modules/markdown/test/features/emphasis/nested.json @@ -0,0 +1,24 @@ +["html", + ["p", + "You can ", + ["strong", + "nest ", + ["em", + "em" + ], + " inside strong" + ], + "." + ], + ["p", + "You can ", + ["em", + "nest ", + ["strong", + "strong" + ], + " inside em" + ], + "." + ] +] diff --git a/node_modules/markdown/test/features/emphasis/nested.text b/node_modules/markdown/test/features/emphasis/nested.text new file mode 100644 index 000000000..1291b0954 --- /dev/null +++ b/node_modules/markdown/test/features/emphasis/nested.text @@ -0,0 +1,3 @@ +You can **nest *em* inside strong**. + +You can *nest **strong** inside em*. diff --git a/node_modules/markdown/test/features/emphasis/simple.json b/node_modules/markdown/test/features/emphasis/simple.json new file mode 100644 index 000000000..1da89e586 --- /dev/null +++ b/node_modules/markdown/test/features/emphasis/simple.json @@ -0,0 +1,24 @@ +["html", + ["p", + "Emphasis can be ", + ["em", + "weak" + ], + " or ", + ["strong", + "strong" + ], + "." + ], + ["p", + "It can ", + ["em", + "even" + ], + " use ", + ["strong", + "underscores" + ], + "." + ] +] diff --git a/node_modules/markdown/test/features/emphasis/simple.text b/node_modules/markdown/test/features/emphasis/simple.text new file mode 100644 index 000000000..5328d9963 --- /dev/null +++ b/node_modules/markdown/test/features/emphasis/simple.text @@ -0,0 +1,3 @@ +Emphasis can be *weak* or **strong**. + +It can _even_ use __underscores__. diff --git a/node_modules/markdown/test/features/headers/atx.json b/node_modules/markdown/test/features/headers/atx.json new file mode 100644 index 000000000..df472276f --- /dev/null +++ b/node_modules/markdown/test/features/headers/atx.json @@ -0,0 +1,20 @@ +["html", + ["h1", + "One" + ], + ["h2", + "Two" + ], + ["h3", + "Three" + ], + ["h4", + "Four" + ], + ["h5", + "Five" + ], + ["h6", + "Six" + ] +] diff --git a/node_modules/markdown/test/features/headers/atx.text b/node_modules/markdown/test/features/headers/atx.text new file mode 100644 index 000000000..541c9d3fe --- /dev/null +++ b/node_modules/markdown/test/features/headers/atx.text @@ -0,0 +1,11 @@ +# One + +## Two + +### Three + +#### Four + +##### Five + +###### Six diff --git a/node_modules/markdown/test/features/headers/atx_closing_hashes.json b/node_modules/markdown/test/features/headers/atx_closing_hashes.json new file mode 100644 index 000000000..acb205b5f --- /dev/null +++ b/node_modules/markdown/test/features/headers/atx_closing_hashes.json @@ -0,0 +1,11 @@ +["html", + ["h1", + "One" + ], + ["h2", + "Two" + ], + ["h3", + "Three" + ] +] diff --git a/node_modules/markdown/test/features/headers/atx_closing_hashes.text b/node_modules/markdown/test/features/headers/atx_closing_hashes.text new file mode 100644 index 000000000..4734f4337 --- /dev/null +++ b/node_modules/markdown/test/features/headers/atx_closing_hashes.text @@ -0,0 +1,5 @@ +# One # + +## Two ##### + +### Three ## diff --git a/node_modules/markdown/test/features/headers/setext.json b/node_modules/markdown/test/features/headers/setext.json new file mode 100644 index 000000000..f55020230 --- /dev/null +++ b/node_modules/markdown/test/features/headers/setext.json @@ -0,0 +1,8 @@ +["html", + ["h1", + "One" + ], + ["h2", + "Two" + ] +] diff --git a/node_modules/markdown/test/features/headers/setext.text b/node_modules/markdown/test/features/headers/setext.text new file mode 100644 index 000000000..58b746d30 --- /dev/null +++ b/node_modules/markdown/test/features/headers/setext.text @@ -0,0 +1,5 @@ +One +=== + +Two +--- diff --git a/node_modules/markdown/test/features/headers/trailing_paras.json b/node_modules/markdown/test/features/headers/trailing_paras.json new file mode 100644 index 000000000..f5ec1c3dd --- /dev/null +++ b/node_modules/markdown/test/features/headers/trailing_paras.json @@ -0,0 +1,20 @@ +["html", + ["h1", + "Header" + ], + ["p", + "Paragraph" + ], + ["h2", + "Header" + ], + ["p", + "Paragraph" + ], + ["h3", + "Header" + ], + ["p", + "Paragraph" + ] +] diff --git a/node_modules/markdown/test/features/headers/trailing_paras.text b/node_modules/markdown/test/features/headers/trailing_paras.text new file mode 100644 index 000000000..6cac19948 --- /dev/null +++ b/node_modules/markdown/test/features/headers/trailing_paras.text @@ -0,0 +1,10 @@ +Header +====== +Paragraph + +Header +------ +Paragraph + +### Header +Paragraph diff --git a/node_modules/markdown/test/features/horizontal_rules/abutting_blocks.json b/node_modules/markdown/test/features/horizontal_rules/abutting_blocks.json new file mode 100644 index 000000000..e08b7b28c --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/abutting_blocks.json @@ -0,0 +1,17 @@ +["html", + ["p", + "para" + ], + ["hr"], + ["ul", + ["li", + "list" + ] + ], + ["hr"], + ["blockquote", + ["p", + "blockquote" + ] + ] +] diff --git a/node_modules/markdown/test/features/horizontal_rules/abutting_blocks.text b/node_modules/markdown/test/features/horizontal_rules/abutting_blocks.text new file mode 100644 index 000000000..8762e2933 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/abutting_blocks.text @@ -0,0 +1,5 @@ +para +*** +* list + - - - +> blockquote diff --git a/node_modules/markdown/test/features/horizontal_rules/dashes.json b/node_modules/markdown/test/features/horizontal_rules/dashes.json new file mode 100644 index 000000000..693893244 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/dashes.json @@ -0,0 +1,3 @@ +["html", + ["hr"] +] diff --git a/node_modules/markdown/test/features/horizontal_rules/dashes.text b/node_modules/markdown/test/features/horizontal_rules/dashes.text new file mode 100644 index 000000000..ed97d539c --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/dashes.text @@ -0,0 +1 @@ +--- diff --git a/node_modules/markdown/test/features/horizontal_rules/leading_spaces.json b/node_modules/markdown/test/features/horizontal_rules/leading_spaces.json new file mode 100644 index 000000000..693893244 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/leading_spaces.json @@ -0,0 +1,3 @@ +["html", + ["hr"] +] diff --git a/node_modules/markdown/test/features/horizontal_rules/leading_spaces.text b/node_modules/markdown/test/features/horizontal_rules/leading_spaces.text new file mode 100644 index 000000000..366af230c --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/leading_spaces.text @@ -0,0 +1 @@ + * * * diff --git a/node_modules/markdown/test/features/horizontal_rules/long.json b/node_modules/markdown/test/features/horizontal_rules/long.json new file mode 100644 index 000000000..693893244 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/long.json @@ -0,0 +1,3 @@ +["html", + ["hr"] +] diff --git a/node_modules/markdown/test/features/horizontal_rules/long.text b/node_modules/markdown/test/features/horizontal_rules/long.text new file mode 100644 index 000000000..32727f7b8 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/long.text @@ -0,0 +1 @@ +********************* diff --git a/node_modules/markdown/test/features/horizontal_rules/long_loose.json b/node_modules/markdown/test/features/horizontal_rules/long_loose.json new file mode 100644 index 000000000..693893244 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/long_loose.json @@ -0,0 +1,3 @@ +["html", + ["hr"] +] diff --git a/node_modules/markdown/test/features/horizontal_rules/long_loose.text b/node_modules/markdown/test/features/horizontal_rules/long_loose.text new file mode 100644 index 000000000..5669cff2d --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/long_loose.text @@ -0,0 +1 @@ +* * * * * * * * * * * diff --git a/node_modules/markdown/test/features/horizontal_rules/loose_dashes.json b/node_modules/markdown/test/features/horizontal_rules/loose_dashes.json new file mode 100644 index 000000000..693893244 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/loose_dashes.json @@ -0,0 +1,3 @@ +["html", + ["hr"] +] diff --git a/node_modules/markdown/test/features/horizontal_rules/loose_dashes.text b/node_modules/markdown/test/features/horizontal_rules/loose_dashes.text new file mode 100644 index 000000000..75fb4cdc4 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/loose_dashes.text @@ -0,0 +1 @@ +- - - diff --git a/node_modules/markdown/test/features/horizontal_rules/loose_stars.json b/node_modules/markdown/test/features/horizontal_rules/loose_stars.json new file mode 100644 index 000000000..693893244 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/loose_stars.json @@ -0,0 +1,3 @@ +["html", + ["hr"] +] diff --git a/node_modules/markdown/test/features/horizontal_rules/loose_stars.text b/node_modules/markdown/test/features/horizontal_rules/loose_stars.text new file mode 100644 index 000000000..96b474ae5 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/loose_stars.text @@ -0,0 +1 @@ +* * * diff --git a/node_modules/markdown/test/features/horizontal_rules/loose_underscores.json b/node_modules/markdown/test/features/horizontal_rules/loose_underscores.json new file mode 100644 index 000000000..693893244 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/loose_underscores.json @@ -0,0 +1,3 @@ +["html", + ["hr"] +] diff --git a/node_modules/markdown/test/features/horizontal_rules/loose_underscores.text b/node_modules/markdown/test/features/horizontal_rules/loose_underscores.text new file mode 100644 index 000000000..f45d2aa49 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/loose_underscores.text @@ -0,0 +1 @@ +_ _ _ diff --git a/node_modules/markdown/test/features/horizontal_rules/stars.json b/node_modules/markdown/test/features/horizontal_rules/stars.json new file mode 100644 index 000000000..693893244 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/stars.json @@ -0,0 +1,3 @@ +["html", + ["hr"] +] diff --git a/node_modules/markdown/test/features/horizontal_rules/stars.text b/node_modules/markdown/test/features/horizontal_rules/stars.text new file mode 100644 index 000000000..6a7e45274 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/stars.text @@ -0,0 +1 @@ +*** diff --git a/node_modules/markdown/test/features/horizontal_rules/underscores.json b/node_modules/markdown/test/features/horizontal_rules/underscores.json new file mode 100644 index 000000000..693893244 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/underscores.json @@ -0,0 +1,3 @@ +["html", + ["hr"] +] diff --git a/node_modules/markdown/test/features/horizontal_rules/underscores.text b/node_modules/markdown/test/features/horizontal_rules/underscores.text new file mode 100644 index 000000000..88f351dc9 --- /dev/null +++ b/node_modules/markdown/test/features/horizontal_rules/underscores.text @@ -0,0 +1 @@ +___ diff --git a/node_modules/markdown/test/features/images/basic.json b/node_modules/markdown/test/features/images/basic.json new file mode 100644 index 000000000..57bb14514 --- /dev/null +++ b/node_modules/markdown/test/features/images/basic.json @@ -0,0 +1,8 @@ +["html", + ["p", + ["img", { + "src": "/path/to/img.jpg", + "alt": "Alt text" + } ] + ] +] diff --git a/node_modules/markdown/test/features/images/basic.text b/node_modules/markdown/test/features/images/basic.text new file mode 100644 index 000000000..7691a61c3 --- /dev/null +++ b/node_modules/markdown/test/features/images/basic.text @@ -0,0 +1 @@ +![Alt text](/path/to/img.jpg) diff --git a/node_modules/markdown/test/features/images/crotcheted_url.json b/node_modules/markdown/test/features/images/crotcheted_url.json new file mode 100644 index 000000000..456b6e747 --- /dev/null +++ b/node_modules/markdown/test/features/images/crotcheted_url.json @@ -0,0 +1,8 @@ +["html", + ["p", + ["img", { + "src": "/url/", + "alt": "alt text" + } ] + ] +] diff --git a/node_modules/markdown/test/features/images/crotcheted_url.text b/node_modules/markdown/test/features/images/crotcheted_url.text new file mode 100644 index 000000000..a63d32b3a --- /dev/null +++ b/node_modules/markdown/test/features/images/crotcheted_url.text @@ -0,0 +1 @@ +![alt text]() diff --git a/node_modules/markdown/test/features/images/crotcheted_url_with_title.json b/node_modules/markdown/test/features/images/crotcheted_url_with_title.json new file mode 100644 index 000000000..2d1cb3e36 --- /dev/null +++ b/node_modules/markdown/test/features/images/crotcheted_url_with_title.json @@ -0,0 +1,9 @@ +["html", + ["p", + ["img", { + "src": "/url/", + "alt": "alt text", + "title": "with a title" + } ] + ] +] diff --git a/node_modules/markdown/test/features/images/crotcheted_url_with_title.text b/node_modules/markdown/test/features/images/crotcheted_url_with_title.text new file mode 100644 index 000000000..e04a61d5e --- /dev/null +++ b/node_modules/markdown/test/features/images/crotcheted_url_with_title.text @@ -0,0 +1 @@ +![alt text]( "with a title") diff --git a/node_modules/markdown/test/features/images/empty.json b/node_modules/markdown/test/features/images/empty.json new file mode 100644 index 000000000..3c531695c --- /dev/null +++ b/node_modules/markdown/test/features/images/empty.json @@ -0,0 +1,8 @@ +["html", + ["p", + ["img", { + "src": "", + "alt": "Empty" + } ] + ] +] diff --git a/node_modules/markdown/test/features/images/empty.text b/node_modules/markdown/test/features/images/empty.text new file mode 100644 index 000000000..8f3ee484c --- /dev/null +++ b/node_modules/markdown/test/features/images/empty.text @@ -0,0 +1 @@ +![Empty]() diff --git a/node_modules/markdown/test/features/images/spaces_round_title.json b/node_modules/markdown/test/features/images/spaces_round_title.json new file mode 100644 index 000000000..a19cb6afb --- /dev/null +++ b/node_modules/markdown/test/features/images/spaces_round_title.json @@ -0,0 +1,9 @@ +["html", + ["p", + ["img", { + "src": "/url/", + "alt": "alt text", + "title": "title has spaces afterward" + } ] + ] +] diff --git a/node_modules/markdown/test/features/images/spaces_round_title.text b/node_modules/markdown/test/features/images/spaces_round_title.text new file mode 100644 index 000000000..03761e2e4 --- /dev/null +++ b/node_modules/markdown/test/features/images/spaces_round_title.text @@ -0,0 +1 @@ +![alt text](/url/ "title has spaces afterward" ) diff --git a/node_modules/markdown/test/features/images/title.json b/node_modules/markdown/test/features/images/title.json new file mode 100644 index 000000000..73e778b70 --- /dev/null +++ b/node_modules/markdown/test/features/images/title.json @@ -0,0 +1,9 @@ +["html", + ["p", + ["img", { + "src": "/path/to/img.jpg", + "alt": "Alt text", + "title": "Optional title" + } ] + ] +] diff --git a/node_modules/markdown/test/features/images/title.text b/node_modules/markdown/test/features/images/title.text new file mode 100644 index 000000000..85a352044 --- /dev/null +++ b/node_modules/markdown/test/features/images/title.text @@ -0,0 +1 @@ +![Alt text](/path/to/img.jpg "Optional title") diff --git a/node_modules/markdown/test/features/linebreaks/simple.json b/node_modules/markdown/test/features/linebreaks/simple.json new file mode 100644 index 000000000..30dacf137 --- /dev/null +++ b/node_modules/markdown/test/features/linebreaks/simple.json @@ -0,0 +1,7 @@ +["html", + ["p", + "The quick brown fox", + ["br"], + "jumps over the lazy dog." + ] +] diff --git a/node_modules/markdown/test/features/linebreaks/simple.text b/node_modules/markdown/test/features/linebreaks/simple.text new file mode 100644 index 000000000..c73db9c4b --- /dev/null +++ b/node_modules/markdown/test/features/linebreaks/simple.text @@ -0,0 +1,2 @@ +The quick brown fox +jumps over the lazy dog. diff --git a/node_modules/markdown/test/features/links/autolink_email.json b/node_modules/markdown/test/features/links/autolink_email.json new file mode 100644 index 000000000..863679d8f --- /dev/null +++ b/node_modules/markdown/test/features/links/autolink_email.json @@ -0,0 +1,10 @@ +["html", + ["p", + "Email addresses written like ", + ["a", + { "href" : "mailto:bill@microsoft.com" }, + "bill@microsoft.com" + ], + " get autolinkified." + ] +] diff --git a/node_modules/markdown/test/features/links/autolink_email.text b/node_modules/markdown/test/features/links/autolink_email.text new file mode 100644 index 000000000..7a3a58475 --- /dev/null +++ b/node_modules/markdown/test/features/links/autolink_email.text @@ -0,0 +1 @@ +Email addresses written like get autolinkified. diff --git a/node_modules/markdown/test/features/links/autolink_in_code.json b/node_modules/markdown/test/features/links/autolink_in_code.json new file mode 100644 index 000000000..234bb2a49 --- /dev/null +++ b/node_modules/markdown/test/features/links/autolink_in_code.json @@ -0,0 +1,8 @@ +["html", + ["p", + "Autolinks don't happen inside code: ", + ["code", + "" + ] + ] +] diff --git a/node_modules/markdown/test/features/links/autolink_in_code.text b/node_modules/markdown/test/features/links/autolink_in_code.text new file mode 100644 index 000000000..94b8e6241 --- /dev/null +++ b/node_modules/markdown/test/features/links/autolink_in_code.text @@ -0,0 +1 @@ +Autolinks don't happen inside code: `` diff --git a/node_modules/markdown/test/features/links/autolink_url.json b/node_modules/markdown/test/features/links/autolink_url.json new file mode 100644 index 000000000..54158341f --- /dev/null +++ b/node_modules/markdown/test/features/links/autolink_url.json @@ -0,0 +1,10 @@ +["html", + ["p", + "URLs like ", + ["a", + { "href" : "http://google.com" }, + "http://google.com" + ], + " get autolinkified." + ] +] diff --git a/node_modules/markdown/test/features/links/autolink_url.text b/node_modules/markdown/test/features/links/autolink_url.text new file mode 100644 index 000000000..eda590b0f --- /dev/null +++ b/node_modules/markdown/test/features/links/autolink_url.text @@ -0,0 +1 @@ +URLs like get autolinkified. diff --git a/node_modules/markdown/test/features/links/case_insensitive.json b/node_modules/markdown/test/features/links/case_insensitive.json new file mode 100644 index 000000000..ba6c4d96f --- /dev/null +++ b/node_modules/markdown/test/features/links/case_insensitive.json @@ -0,0 +1,20 @@ +["html", + ["p", + "This is ", + ["a", + { "href" : "http://google.com" }, + "google" + ], + ". ", + ["a", + { "href" : "http://google.com" }, + "Google" + ], + " and ", + ["a", + { "href" : "http://google.com" }, + "this" + ], + " are the same thing too" + ] +] diff --git a/node_modules/markdown/test/features/links/case_insensitive.text b/node_modules/markdown/test/features/links/case_insensitive.text new file mode 100644 index 000000000..8fc743896 --- /dev/null +++ b/node_modules/markdown/test/features/links/case_insensitive.text @@ -0,0 +1,3 @@ +This is [google]. [Google] and [this][GoOgLe] are the same thing too + +[GOOGLE]: http://google.com diff --git a/node_modules/markdown/test/features/links/implicit.json b/node_modules/markdown/test/features/links/implicit.json new file mode 100644 index 000000000..d67a734a2 --- /dev/null +++ b/node_modules/markdown/test/features/links/implicit.json @@ -0,0 +1,15 @@ +["html", + ["p", + "These ", + ["a", + { "href" : "http://links.com" }, + "links" + ], + " use ", + ["a", + { "href" : "http://implicit.com" }, + "implicit" + ], + " references." + ] +] diff --git a/node_modules/markdown/test/features/links/implicit.text b/node_modules/markdown/test/features/links/implicit.text new file mode 100644 index 000000000..f66f2cbef --- /dev/null +++ b/node_modules/markdown/test/features/links/implicit.text @@ -0,0 +1,4 @@ +These [links][] use [implicit] references. + +[links]: http://links.com +[implicit]: http://implicit.com diff --git a/node_modules/markdown/test/features/links/inline.json b/node_modules/markdown/test/features/links/inline.json new file mode 100644 index 000000000..8ac503993 --- /dev/null +++ b/node_modules/markdown/test/features/links/inline.json @@ -0,0 +1,10 @@ +["html", + ["p", + "An ", + ["a", + { "href" : "http://inline.com" }, + "inline" + ], + " link." + ] +] diff --git a/node_modules/markdown/test/features/links/inline.text b/node_modules/markdown/test/features/links/inline.text new file mode 100644 index 000000000..d6bbc758f --- /dev/null +++ b/node_modules/markdown/test/features/links/inline.text @@ -0,0 +1 @@ +An [inline](http://inline.com) link. diff --git a/node_modules/markdown/test/features/links/inline_with_newline.json b/node_modules/markdown/test/features/links/inline_with_newline.json new file mode 100644 index 000000000..0c459d0a0 --- /dev/null +++ b/node_modules/markdown/test/features/links/inline_with_newline.json @@ -0,0 +1,10 @@ +["html", + ["p", + "An ", + ["a", + { "href" : "http://inline.com" }, + "inline\nlink" + ], + " with a newline." + ] +] diff --git a/node_modules/markdown/test/features/links/inline_with_newline.text b/node_modules/markdown/test/features/links/inline_with_newline.text new file mode 100644 index 000000000..3c1708216 --- /dev/null +++ b/node_modules/markdown/test/features/links/inline_with_newline.text @@ -0,0 +1,2 @@ +An [inline +link](http://inline.com) with a newline. diff --git a/node_modules/markdown/test/features/links/inline_with_title.json b/node_modules/markdown/test/features/links/inline_with_title.json new file mode 100644 index 000000000..6d2d703a4 --- /dev/null +++ b/node_modules/markdown/test/features/links/inline_with_title.json @@ -0,0 +1,11 @@ +["html", + ["p", + "An ", + ["a", + { "href" : "http://inline.com", + "title" : "le title" }, + "inline link" + ], + " with a title." + ] +] diff --git a/node_modules/markdown/test/features/links/inline_with_title.text b/node_modules/markdown/test/features/links/inline_with_title.text new file mode 100644 index 000000000..5a2d66d42 --- /dev/null +++ b/node_modules/markdown/test/features/links/inline_with_title.text @@ -0,0 +1 @@ +An [inline link](http://inline.com "le title") with a title. diff --git a/node_modules/markdown/test/features/links/missing_references.json b/node_modules/markdown/test/features/links/missing_references.json new file mode 100644 index 000000000..3c0415a99 --- /dev/null +++ b/node_modules/markdown/test/features/links/missing_references.json @@ -0,0 +1,11 @@ +["html", + ["p", + "Link with [missing][id] reference" + ], + ["p", + "Link with [empty][] reference" + ], + ["p", + "Link with [inferred] reference" + ] +] diff --git a/node_modules/markdown/test/features/links/missing_references.text b/node_modules/markdown/test/features/links/missing_references.text new file mode 100644 index 000000000..3a1700987 --- /dev/null +++ b/node_modules/markdown/test/features/links/missing_references.text @@ -0,0 +1,5 @@ +Link with [missing][id] reference + +Link with [empty][] reference + +Link with [inferred] reference diff --git a/node_modules/markdown/test/features/links/parens_escaped_inline.json b/node_modules/markdown/test/features/links/parens_escaped_inline.json new file mode 100644 index 000000000..62496ec99 --- /dev/null +++ b/node_modules/markdown/test/features/links/parens_escaped_inline.json @@ -0,0 +1,10 @@ +["html", + ["p", + ["a", + { "href": "/url(test)", + "title": "title" }, + "Inline link" + ], + " with escaped parens." + ], +] diff --git a/node_modules/markdown/test/features/links/parens_escaped_inline.text b/node_modules/markdown/test/features/links/parens_escaped_inline.text new file mode 100644 index 000000000..726f02051 --- /dev/null +++ b/node_modules/markdown/test/features/links/parens_escaped_inline.text @@ -0,0 +1 @@ +[Inline link](/url\(test\) "title") with escaped parens. diff --git a/node_modules/markdown/test/features/links/parens_inline.json b/node_modules/markdown/test/features/links/parens_inline.json new file mode 100644 index 000000000..55e01987a --- /dev/null +++ b/node_modules/markdown/test/features/links/parens_inline.json @@ -0,0 +1,10 @@ +["html", + ["p", + ["a", + { "href": "/url(test)", + "title": "title" }, + "Inline link" + ], + " with non-escaped parens." + ], +] diff --git a/node_modules/markdown/test/features/links/parens_inline.text b/node_modules/markdown/test/features/links/parens_inline.text new file mode 100644 index 000000000..5f56b8923 --- /dev/null +++ b/node_modules/markdown/test/features/links/parens_inline.text @@ -0,0 +1 @@ +[Inline link](/url(test) "title") with non-escaped parens. diff --git a/node_modules/markdown/test/features/links/parens_reference.json b/node_modules/markdown/test/features/links/parens_reference.json new file mode 100644 index 000000000..525b96b42 --- /dev/null +++ b/node_modules/markdown/test/features/links/parens_reference.json @@ -0,0 +1,10 @@ +["html", + ["p", + ["a", + { "href": "/url(test)", + "title": "title" }, + "Reference link" + ], + " with non-escaped parens." + ], +] diff --git a/node_modules/markdown/test/features/links/parens_reference.text b/node_modules/markdown/test/features/links/parens_reference.text new file mode 100644 index 000000000..8456895e6 --- /dev/null +++ b/node_modules/markdown/test/features/links/parens_reference.text @@ -0,0 +1,3 @@ +[Reference link][1] with non-escaped parens. + +[1]: /url(test) "title" diff --git a/node_modules/markdown/test/features/links/ref_reuse.json b/node_modules/markdown/test/features/links/ref_reuse.json new file mode 100644 index 000000000..67c9cff01 --- /dev/null +++ b/node_modules/markdown/test/features/links/ref_reuse.json @@ -0,0 +1,14 @@ +["html", + ["p", + "Two ", + ["a", + { "href" : "http://google.com" }, + "links" + ], + ", one ", + ["a", + { "href" : "http://google.com" }, + "ref" + ] + ] +] diff --git a/node_modules/markdown/test/features/links/ref_reuse.text b/node_modules/markdown/test/features/links/ref_reuse.text new file mode 100644 index 000000000..5428cca22 --- /dev/null +++ b/node_modules/markdown/test/features/links/ref_reuse.text @@ -0,0 +1,3 @@ +Two [links][id], one [ref][id] + +[id]: http://google.com diff --git a/node_modules/markdown/test/features/links/reference.json b/node_modules/markdown/test/features/links/reference.json new file mode 100644 index 000000000..2876129f5 --- /dev/null +++ b/node_modules/markdown/test/features/links/reference.json @@ -0,0 +1,10 @@ +["html", + ["p", + "A ", + ["a", + { "href" : "http://reference.com" }, + "link using a reference" + ], + "." + ] +] diff --git a/node_modules/markdown/test/features/links/reference.text b/node_modules/markdown/test/features/links/reference.text new file mode 100644 index 000000000..ede662eb7 --- /dev/null +++ b/node_modules/markdown/test/features/links/reference.text @@ -0,0 +1,3 @@ +A [link using a reference][1]. + +[1]: http://reference.com diff --git a/node_modules/markdown/test/features/links/reference_with_space.json b/node_modules/markdown/test/features/links/reference_with_space.json new file mode 100644 index 000000000..09534f740 --- /dev/null +++ b/node_modules/markdown/test/features/links/reference_with_space.json @@ -0,0 +1,10 @@ +["html", + ["p", + "A ", + ["a", + { "href" : "http://reference.com" }, + "link using a reference" + ], + " separated by a space." + ] +] diff --git a/node_modules/markdown/test/features/links/reference_with_space.text b/node_modules/markdown/test/features/links/reference_with_space.text new file mode 100644 index 000000000..d1184c385 --- /dev/null +++ b/node_modules/markdown/test/features/links/reference_with_space.text @@ -0,0 +1,3 @@ +A [link using a reference] [1] separated by a space. + +[1]: http://reference.com diff --git a/node_modules/markdown/test/features/lists/bullet_types.json b/node_modules/markdown/test/features/lists/bullet_types.json new file mode 100644 index 000000000..b9161e067 --- /dev/null +++ b/node_modules/markdown/test/features/lists/bullet_types.json @@ -0,0 +1,26 @@ +["html", + ["p", + "Stars" + ], + ["ul", + ["li", + "star" + ] + ], + ["p", + "Dashes" + ], + ["ul", + ["li", + "dash" + ] + ], + ["p", + "Pluses" + ], + ["ul", + ["li", + "plus" + ] + ] +] diff --git a/node_modules/markdown/test/features/lists/bullet_types.text b/node_modules/markdown/test/features/lists/bullet_types.text new file mode 100644 index 000000000..2f152d662 --- /dev/null +++ b/node_modules/markdown/test/features/lists/bullet_types.text @@ -0,0 +1,11 @@ +Stars + +* star + +Dashes + +- dash + +Pluses + ++ plus diff --git a/node_modules/markdown/test/features/lists/hr_abutting.json b/node_modules/markdown/test/features/lists/hr_abutting.json new file mode 100644 index 000000000..db3fa1bae --- /dev/null +++ b/node_modules/markdown/test/features/lists/hr_abutting.json @@ -0,0 +1,9 @@ +["html", + ["ul", + [ "li", "foo" ], + [ "li", "bar" ], + ], + ["hr"], + ["p", "after"] +] + diff --git a/node_modules/markdown/test/features/lists/hr_abutting.text b/node_modules/markdown/test/features/lists/hr_abutting.text new file mode 100644 index 000000000..bafccd90a --- /dev/null +++ b/node_modules/markdown/test/features/lists/hr_abutting.text @@ -0,0 +1,6 @@ +* foo +* bar + + * * * +after + diff --git a/node_modules/markdown/test/features/lists/hr_inside.json b/node_modules/markdown/test/features/lists/hr_inside.json new file mode 100644 index 000000000..373ba003f --- /dev/null +++ b/node_modules/markdown/test/features/lists/hr_inside.json @@ -0,0 +1,10 @@ +["html", + ["ul", + [ "li", + ["p", "before"], + ["hr"], + ["p", "after"], + ] + ] +] + diff --git a/node_modules/markdown/test/features/lists/hr_inside.text b/node_modules/markdown/test/features/lists/hr_inside.text new file mode 100644 index 000000000..fb4b0198c --- /dev/null +++ b/node_modules/markdown/test/features/lists/hr_inside.text @@ -0,0 +1,5 @@ +* before + + - - - - + after + diff --git a/node_modules/markdown/test/features/lists/lazy_wrapping.json b/node_modules/markdown/test/features/lists/lazy_wrapping.json new file mode 100644 index 000000000..88021ec59 --- /dev/null +++ b/node_modules/markdown/test/features/lists/lazy_wrapping.json @@ -0,0 +1,10 @@ +["html", + ["ul", + ["li", + "If you're too\nlazy to wrap your" + ], + ["li", + "Lists nicely, this\nwill still work" + ] + ] +] diff --git a/node_modules/markdown/test/features/lists/lazy_wrapping.text b/node_modules/markdown/test/features/lists/lazy_wrapping.text new file mode 100644 index 000000000..dd05189fb --- /dev/null +++ b/node_modules/markdown/test/features/lists/lazy_wrapping.text @@ -0,0 +1,4 @@ +* If you're too +lazy to wrap your +* Lists nicely, this +will still work diff --git a/node_modules/markdown/test/features/lists/leading_whitespace.json b/node_modules/markdown/test/features/lists/leading_whitespace.json new file mode 100644 index 000000000..a502e7785 --- /dev/null +++ b/node_modules/markdown/test/features/lists/leading_whitespace.json @@ -0,0 +1,10 @@ +["html", + ["ul", + ["li", + "white" + ], + ["li", + "space" + ] + ] +] diff --git a/node_modules/markdown/test/features/lists/leading_whitespace.text b/node_modules/markdown/test/features/lists/leading_whitespace.text new file mode 100644 index 000000000..0b8e622c6 --- /dev/null +++ b/node_modules/markdown/test/features/lists/leading_whitespace.text @@ -0,0 +1,2 @@ + * white + * space diff --git a/node_modules/markdown/test/features/lists/loose.json b/node_modules/markdown/test/features/lists/loose.json new file mode 100644 index 000000000..a64cecc90 --- /dev/null +++ b/node_modules/markdown/test/features/lists/loose.json @@ -0,0 +1,22 @@ +["html", + ["ul", + ["li", + ["p", + "the quick brown fox jumps\nover the lazy dog" + ] + ], + ["li", + ["p", + "pack my box with five\ndozen liquor jugs" + ], + ["p", + "this item has a\nsecond paragraph" + ] + ], + ["li", + ["p", + "this item has\nonly one paragraph" + ] + ] + ] +] diff --git a/node_modules/markdown/test/features/lists/loose.text b/node_modules/markdown/test/features/lists/loose.text new file mode 100644 index 000000000..4ae8fa80f --- /dev/null +++ b/node_modules/markdown/test/features/lists/loose.text @@ -0,0 +1,11 @@ + * the quick brown fox jumps + over the lazy dog + + * pack my box with five + dozen liquor jugs + + this item has a + second paragraph + + * this item has + only one paragraph diff --git a/node_modules/markdown/test/features/lists/loose_with_inline.json b/node_modules/markdown/test/features/lists/loose_with_inline.json new file mode 100644 index 000000000..c0cbb7d0d --- /dev/null +++ b/node_modules/markdown/test/features/lists/loose_with_inline.json @@ -0,0 +1,36 @@ +["html", + ["ul", + ["li", + ["p", + "List item ", + ["em", + "ending" + ], + "\nwith ", + ["em", + "emphasis" + ], + "." + ] + ], + ["li", + ["p", + "List item\nwith ", + ["strong", + "strong emphasis" + ], + "." + ] + ], + ["li", + ["p", + "List item\nwith ", + ["a", + { "href" : "http://google.com" }, + "a link" + ], + "." + ] + ] + ] +] diff --git a/node_modules/markdown/test/features/lists/loose_with_inline.text b/node_modules/markdown/test/features/lists/loose_with_inline.text new file mode 100644 index 000000000..df532f64a --- /dev/null +++ b/node_modules/markdown/test/features/lists/loose_with_inline.text @@ -0,0 +1,8 @@ + * List item _ending_ + with _emphasis_. + + * List item + with **strong emphasis**. + + * List item + with [a link](http://google.com). diff --git a/node_modules/markdown/test/features/lists/multiline_inline.json b/node_modules/markdown/test/features/lists/multiline_inline.json new file mode 100644 index 000000000..21ec47614 --- /dev/null +++ b/node_modules/markdown/test/features/lists/multiline_inline.json @@ -0,0 +1,10 @@ +["html", + ["ul", + ["li", + "List items can have ", + [ "em", "inline content\nthat spans multiple lines" ], + ". Pain" + ] + ] +] + diff --git a/node_modules/markdown/test/features/lists/multiline_inline.text b/node_modules/markdown/test/features/lists/multiline_inline.text new file mode 100644 index 000000000..68dc2736f --- /dev/null +++ b/node_modules/markdown/test/features/lists/multiline_inline.text @@ -0,0 +1,2 @@ +* List items can have *inline content + that spans multiple lines*. Pain diff --git a/node_modules/markdown/test/features/lists/nested.json b/node_modules/markdown/test/features/lists/nested.json new file mode 100644 index 000000000..c88d1d38d --- /dev/null +++ b/node_modules/markdown/test/features/lists/nested.json @@ -0,0 +1,39 @@ +["html", + ["ol", + ["li", + "one", + ["ul", + ["li", + "alpha", + ["ul", + ["li", + "almond" + ], + ["li", + "brazil" + ] + ] + ], + ["li", + "beta", + ["ul", + ["li", + "cashew" + ] + ] + ] + ] + ], + ["li", + "two" + ], + ["li", + "three", + ["ul", + ["li", + "gamma" + ] + ] + ] + ] +] diff --git a/node_modules/markdown/test/features/lists/nested.text b/node_modules/markdown/test/features/lists/nested.text new file mode 100644 index 000000000..44f5a7669 --- /dev/null +++ b/node_modules/markdown/test/features/lists/nested.text @@ -0,0 +1,9 @@ +1. one + * alpha + - almond + - brazil + * beta + - cashew +2. two +3. three + * gamma diff --git a/node_modules/markdown/test/features/lists/numeric.json b/node_modules/markdown/test/features/lists/numeric.json new file mode 100644 index 000000000..b696015d9 --- /dev/null +++ b/node_modules/markdown/test/features/lists/numeric.json @@ -0,0 +1,13 @@ +["html", + ["ol", + ["li", + "one" + ], + ["li", + "two" + ], + ["li", + "three" + ] + ] +] diff --git a/node_modules/markdown/test/features/lists/numeric.text b/node_modules/markdown/test/features/lists/numeric.text new file mode 100644 index 000000000..e55dd9aec --- /dev/null +++ b/node_modules/markdown/test/features/lists/numeric.text @@ -0,0 +1,3 @@ +1. one +2. two +3. three diff --git a/node_modules/markdown/test/features/lists/tight.json b/node_modules/markdown/test/features/lists/tight.json new file mode 100644 index 000000000..b548cf0fe --- /dev/null +++ b/node_modules/markdown/test/features/lists/tight.json @@ -0,0 +1,13 @@ +["html", + ["ul", + ["li", + "alpha" + ], + ["li", + "beta" + ], + ["li", + "gamma" + ] + ] +] diff --git a/node_modules/markdown/test/features/lists/tight.text b/node_modules/markdown/test/features/lists/tight.text new file mode 100644 index 000000000..95887309b --- /dev/null +++ b/node_modules/markdown/test/features/lists/tight.text @@ -0,0 +1,3 @@ +* alpha +* beta +* gamma diff --git a/node_modules/markdown/test/features/meta/attribute.json b/node_modules/markdown/test/features/meta/attribute.json new file mode 100644 index 000000000..8ff7d2027 --- /dev/null +++ b/node_modules/markdown/test/features/meta/attribute.json @@ -0,0 +1,6 @@ +["html", + ["p", + { "foo" : "bar" }, + "A paragraph with an\narbitrary attribute." + ] +] diff --git a/node_modules/markdown/test/features/meta/attribute.text b/node_modules/markdown/test/features/meta/attribute.text new file mode 100644 index 000000000..fd9d568fa --- /dev/null +++ b/node_modules/markdown/test/features/meta/attribute.text @@ -0,0 +1,3 @@ +A paragraph with an +arbitrary attribute. +{: foo=bar} diff --git a/node_modules/markdown/test/features/meta/class.json b/node_modules/markdown/test/features/meta/class.json new file mode 100644 index 000000000..21a0013a3 --- /dev/null +++ b/node_modules/markdown/test/features/meta/class.json @@ -0,0 +1,6 @@ +["html", + ["p", + { "class" : "para" }, + "This is a paragraph\nwith an ID." + ] +] diff --git a/node_modules/markdown/test/features/meta/class.text b/node_modules/markdown/test/features/meta/class.text new file mode 100644 index 000000000..82ad4327f --- /dev/null +++ b/node_modules/markdown/test/features/meta/class.text @@ -0,0 +1,3 @@ +This is a paragraph +with an ID. +{: .para} diff --git a/node_modules/markdown/test/features/meta/code.json b/node_modules/markdown/test/features/meta/code.json new file mode 100644 index 000000000..6fc60af80 --- /dev/null +++ b/node_modules/markdown/test/features/meta/code.json @@ -0,0 +1,8 @@ +["html", + ["pre", + { "class" : "foo" }, + ["code", + "a code block;\n\nwith multiple lines;\n\nand a class;" + ] + ] +] diff --git a/node_modules/markdown/test/features/meta/code.text b/node_modules/markdown/test/features/meta/code.text new file mode 100644 index 000000000..a0c5b736a --- /dev/null +++ b/node_modules/markdown/test/features/meta/code.text @@ -0,0 +1,6 @@ + a code block; + + with multiple lines; + + and a class; +{: .foo} diff --git a/node_modules/markdown/test/features/meta/document.json b/node_modules/markdown/test/features/meta/document.json new file mode 100644 index 000000000..74d9e9c49 --- /dev/null +++ b/node_modules/markdown/test/features/meta/document.json @@ -0,0 +1,9 @@ +["html", + { + "key" : "value", + "anotherkey" : "another value" + }, + ["p", + "A regular paragraph" + ] +] diff --git a/node_modules/markdown/test/features/meta/document.text b/node_modules/markdown/test/features/meta/document.text new file mode 100644 index 000000000..553173a04 --- /dev/null +++ b/node_modules/markdown/test/features/meta/document.text @@ -0,0 +1,4 @@ +Key: value +AnotherKey: another value + +A regular paragraph diff --git a/node_modules/markdown/test/features/meta/id.json b/node_modules/markdown/test/features/meta/id.json new file mode 100644 index 000000000..ba9a79d9a --- /dev/null +++ b/node_modules/markdown/test/features/meta/id.json @@ -0,0 +1,6 @@ +["html", + ["p", + { "id" : "para" }, + "This is a paragraph\nwith an ID." + ] +] diff --git a/node_modules/markdown/test/features/meta/id.text b/node_modules/markdown/test/features/meta/id.text new file mode 100644 index 000000000..c392d6592 --- /dev/null +++ b/node_modules/markdown/test/features/meta/id.text @@ -0,0 +1,3 @@ +This is a paragraph +with an ID. +{: #para} diff --git a/node_modules/markdown/test/features/meta/inline.json b/node_modules/markdown/test/features/meta/inline.json new file mode 100644 index 000000000..1a459c204 --- /dev/null +++ b/node_modules/markdown/test/features/meta/inline.json @@ -0,0 +1,15 @@ +["html", + ["p", + "An ", + ["em", + { "class" : "foo" }, + "em" + ], + " and ", + ["strong", + { "class" : "bar" }, + "strong" + ], + "\nwith attached attributes." + ] +] diff --git a/node_modules/markdown/test/features/meta/inline.text b/node_modules/markdown/test/features/meta/inline.text new file mode 100644 index 000000000..a84a5316e --- /dev/null +++ b/node_modules/markdown/test/features/meta/inline.text @@ -0,0 +1,2 @@ +An *em*{: .foo} and **strong**{: .bar} +with attached attributes. diff --git a/node_modules/markdown/test/features/meta/inner_whitespace.json b/node_modules/markdown/test/features/meta/inner_whitespace.json new file mode 100644 index 000000000..3c1c33c38 --- /dev/null +++ b/node_modules/markdown/test/features/meta/inner_whitespace.json @@ -0,0 +1,14 @@ +["html", + ["p", + { "id" : "none" }, + "We can have no whitespace" + ], + ["p", + { "id" : "one" }, + "Or a single whitespace" + ], + ["p", + { "id" : "lots" }, + "And even lots of whitespace" + ] +] diff --git a/node_modules/markdown/test/features/meta/inner_whitespace.text b/node_modules/markdown/test/features/meta/inner_whitespace.text new file mode 100644 index 000000000..e75b3c596 --- /dev/null +++ b/node_modules/markdown/test/features/meta/inner_whitespace.text @@ -0,0 +1,8 @@ +We can have no whitespace +{:#none} + +Or a single whitespace +{: #one } + +And even lots of whitespace +{: #lots } diff --git a/node_modules/markdown/test/features/meta/leading_whitespace.json b/node_modules/markdown/test/features/meta/leading_whitespace.json new file mode 100644 index 000000000..ac6c55edb --- /dev/null +++ b/node_modules/markdown/test/features/meta/leading_whitespace.json @@ -0,0 +1,21 @@ +["html", + ["p", + { "id" : "zero" }, + "Zero" + ], + ["p", + { "id" : "one" }, + "One" + ], + ["p", + { "id" : "two" }, + "Two" + ], + ["p", + { "id" : "three" }, + "Three" + ], + ["p", + "Four\n {: #four}" + ] +] diff --git a/node_modules/markdown/test/features/meta/leading_whitespace.text b/node_modules/markdown/test/features/meta/leading_whitespace.text new file mode 100644 index 000000000..99f4b0335 --- /dev/null +++ b/node_modules/markdown/test/features/meta/leading_whitespace.text @@ -0,0 +1,14 @@ +Zero +{: #zero} + +One + {: #one} + +Two + {: #two} + +Three + {: #three} + +Four + {: #four} diff --git a/node_modules/markdown/test/features/meta/list.json b/node_modules/markdown/test/features/meta/list.json new file mode 100644 index 000000000..cf2da9e8f --- /dev/null +++ b/node_modules/markdown/test/features/meta/list.json @@ -0,0 +1,11 @@ +["html", + ["ul", + { "id" : "list" }, + ["li", + "here's a\nloose list" + ], + ["li", + "it might confuse the\nblock_meta routine" + ] + ] +] diff --git a/node_modules/markdown/test/features/meta/list.text b/node_modules/markdown/test/features/meta/list.text new file mode 100644 index 000000000..f0b0b3edb --- /dev/null +++ b/node_modules/markdown/test/features/meta/list.text @@ -0,0 +1,6 @@ + * here's a + loose list + + * it might confuse the + block_meta routine + {: #list} diff --git a/node_modules/markdown/test/features/meta/multiple_classes.json b/node_modules/markdown/test/features/meta/multiple_classes.json new file mode 100644 index 000000000..b9475a14f --- /dev/null +++ b/node_modules/markdown/test/features/meta/multiple_classes.json @@ -0,0 +1,11 @@ +["html", + ["p", + { "class" : "foo bar" }, + "Here's a paragraph and\nan ", + ["em", + { "class" : "foo bar" }, + "em" + ], + "\nwith multiple classes" + ] +] diff --git a/node_modules/markdown/test/features/meta/multiple_classes.text b/node_modules/markdown/test/features/meta/multiple_classes.text new file mode 100644 index 000000000..1d83b0719 --- /dev/null +++ b/node_modules/markdown/test/features/meta/multiple_classes.text @@ -0,0 +1,4 @@ +Here's a paragraph and +an *em*{: .foo .bar} +with multiple classes +{: .foo .bar} diff --git a/node_modules/markdown/test/features/meta/quoted.json b/node_modules/markdown/test/features/meta/quoted.json new file mode 100644 index 000000000..bb1084609 --- /dev/null +++ b/node_modules/markdown/test/features/meta/quoted.json @@ -0,0 +1,6 @@ +["html", + ["p", + { "foo" : "bar baz" }, + "A paragraph with a\nquoted attribute." + ] +] diff --git a/node_modules/markdown/test/features/meta/quoted.text b/node_modules/markdown/test/features/meta/quoted.text new file mode 100644 index 000000000..778e4034a --- /dev/null +++ b/node_modules/markdown/test/features/meta/quoted.text @@ -0,0 +1,3 @@ +A paragraph with a +quoted attribute. +{: foo="bar baz"} diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.json new file mode 100644 index 000000000..789f91650 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.json @@ -0,0 +1,22 @@ +["html", ["p", "AT&T has an ampersand in their name."], + ["p", "AT&T is another way to write it."], + ["p", "This & that."], + ["p", "4 < 5."], + ["p", "6 > 5."], + ["p", "Here's a ", ["a", { + "href": "http://example.com/?foo=1&bar=2" + }, + "link"], " with an ampersand in the URL."], + ["p", "Here's a link with an amersand in the link text: ", ["a", { + "href": "http://att.com/", + "title": "AT&T" + }, + "AT&T"], "."], + ["p", "Here's an inline ", ["a", { + "href": "/script?foo=1&bar=2" + }, + "link"], "."], + ["p", "Here's an inline ", ["a", { + "href": "/script?foo=1&bar=2" + }, + "link"], "."]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.text new file mode 100644 index 000000000..0e9527f93 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.text @@ -0,0 +1,21 @@ +AT&T has an ampersand in their name. + +AT&T is another way to write it. + +This & that. + +4 < 5. + +6 > 5. + +Here's a [link] [1] with an ampersand in the URL. + +Here's a link with an amersand in the link text: [AT&T] [2]. + +Here's an inline [link](/script?foo=1&bar=2). + +Here's an inline [link](). + + +[1]: http://example.com/?foo=1&bar=2 +[2]: http://att.com/ "AT&T" \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.xhtml new file mode 100644 index 000000000..9606860b6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.xhtml @@ -0,0 +1,17 @@ +

    AT&T has an ampersand in their name.

    + +

    AT&T is another way to write it.

    + +

    This & that.

    + +

    4 < 5.

    + +

    6 > 5.

    + +

    Here's a link with an ampersand in the URL.

    + +

    Here's a link with an amersand in the link text: AT&T.

    + +

    Here's an inline link.

    + +

    Here's an inline link.

    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Auto_links.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Auto_links.json new file mode 100644 index 000000000..0c92fc84e --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Auto_links.json @@ -0,0 +1,20 @@ +["html", ["p", "Link: ", ["a", { + "href": "http://example.com/" +}, +"http://example.com/"], "."], + ["p", "With an ampersand: ", ["a", { + "href": "http://example.com/?foo=1&bar=2" + }, + "http://example.com/?foo=1&bar=2"]], + ["ul", ["li", "In a list?"], + ["li", ["a", { + "href": "http://example.com/" + }, + "http://example.com/"]], + ["li", "It should."]], + ["blockquote", ["p", "Blockquoted: ", ["a", { + "href": "http://example.com/" + }, + "http://example.com/"]]], + ["p", "Auto-links should not occur here: ", ["code", ""]], + ["pre", ["code", "or here: \u000a"]]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Auto_links.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Auto_links.text new file mode 100644 index 000000000..abbc48869 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Auto_links.text @@ -0,0 +1,13 @@ +Link: . + +With an ampersand: + +* In a list? +* +* It should. + +> Blockquoted: + +Auto-links should not occur here: `` + + or here: \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Auto_links.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Auto_links.xhtml new file mode 100644 index 000000000..f8df9852c --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Auto_links.xhtml @@ -0,0 +1,18 @@ +

    Link: http://example.com/.

    + +

    With an ampersand: http://example.com/?foo=1&bar=2

    + + + +
    +

    Blockquoted: http://example.com/

    +
    + +

    Auto-links should not occur here: <http://example.com/>

    + +
    or here: <http://example.com/>
    +
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.json new file mode 100644 index 000000000..c6f479f75 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.json @@ -0,0 +1,49 @@ +["html", ["p", "These should all get escaped:"], + ["p", "Backslash: \\"], + ["p", "Backtick: `"], + ["p", "Asterisk: *"], + ["p", "Underscore: _"], + ["p", "Left brace: {"], + ["p", "Right brace: }"], + ["p", "Left bracket: ["], + ["p", "Right bracket: ]"], + ["p", "Left paren: ("], + ["p", "Right paren: )"], + ["p", "Greater-than: >"], + ["p", "Hash: #"], + ["p", "Period: ."], + ["p", "Bang: !"], + ["p", "Plus: +"], + ["p", "Minus: -"], + ["p", "These should not, because they occur within a code block:"], + ["pre", ["code", "Backslash: \\\\\u000a\u000aBacktick: \\`\u000a\u000aAsterisk: \\*\u000a\u000aUnderscore: \\_\u000a\u000aLeft brace: \\{\u000a\u000aRight brace: \\}\u000a\u000aLeft bracket: \\[\u000a\u000aRight bracket: \\]\u000a\u000aLeft paren: \\(\u000a\u000aRight paren: \\)\u000a\u000aGreater-than: \\>\u000a\u000aHash: \\#\u000a\u000aPeriod: \\.\u000a\u000aBang: \\!\u000a\u000aPlus: \\+\u000a\u000aMinus: \\-\u000a"]], + ["p", "Nor should these, which occur in code spans:"], + ["p", "Backslash: ", ["code", "\\\\"]], + ["p", "Backtick: ", ["code", "\\`"]], + ["p", "Asterisk: ", ["code", "\\*"]], + ["p", "Underscore: ", ["code", "\\_"]], + ["p", "Left brace: ", ["code", "\\{"]], + ["p", "Right brace: ", ["code", "\\}"]], + ["p", "Left bracket: ", ["code", "\\["]], + ["p", "Right bracket: ", ["code", "\\]"]], + ["p", "Left paren: ", ["code", "\\("]], + ["p", "Right paren: ", ["code", "\\)"]], + ["p", "Greater-than: ", ["code", "\\>"]], + ["p", "Hash: ", ["code", "\\#"]], + ["p", "Period: ", ["code", "\\."]], + ["p", "Bang: ", ["code", "\\!"]], + ["p", "Plus: ", ["code", "\\+"]], + ["p", "Minus: ", ["code", "\\-"]], + ["p", "These should get escaped, even though they're matching pairs for\u000aother Markdown constructs:"], + ["p", "*asterisks*"], + ["p", "_underscores_"], + ["p", "`backticks`"], + ["p", "This is a code span with a literal backslash-backtick sequence: ", ["code", "\\`"]], + ["p", "This is a tag with unescaped backticks ", ["span", { + "attr": "`ticks`" + }, + "bar"], "."], + ["p", "This is a tag with backslashes ", ["span", { + "attr": "\\\\backslashes\\\\" + }, + "bar"], "."]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.text new file mode 100644 index 000000000..5b014cb33 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.text @@ -0,0 +1,120 @@ +These should all get escaped: + +Backslash: \\ + +Backtick: \` + +Asterisk: \* + +Underscore: \_ + +Left brace: \{ + +Right brace: \} + +Left bracket: \[ + +Right bracket: \] + +Left paren: \( + +Right paren: \) + +Greater-than: \> + +Hash: \# + +Period: \. + +Bang: \! + +Plus: \+ + +Minus: \- + + + +These should not, because they occur within a code block: + + Backslash: \\ + + Backtick: \` + + Asterisk: \* + + Underscore: \_ + + Left brace: \{ + + Right brace: \} + + Left bracket: \[ + + Right bracket: \] + + Left paren: \( + + Right paren: \) + + Greater-than: \> + + Hash: \# + + Period: \. + + Bang: \! + + Plus: \+ + + Minus: \- + + +Nor should these, which occur in code spans: + +Backslash: `\\` + +Backtick: `` \` `` + +Asterisk: `\*` + +Underscore: `\_` + +Left brace: `\{` + +Right brace: `\}` + +Left bracket: `\[` + +Right bracket: `\]` + +Left paren: `\(` + +Right paren: `\)` + +Greater-than: `\>` + +Hash: `\#` + +Period: `\.` + +Bang: `\!` + +Plus: `\+` + +Minus: `\-` + + +These should get escaped, even though they're matching pairs for +other Markdown constructs: + +\*asterisks\* + +\_underscores\_ + +\`backticks\` + +This is a code span with a literal backslash-backtick sequence: `` \` `` + +This is a tag with unescaped backticks bar. + +This is a tag with backslashes bar. diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.xhtml new file mode 100644 index 000000000..29870dac5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.xhtml @@ -0,0 +1,118 @@ +

    These should all get escaped:

    + +

    Backslash: \

    + +

    Backtick: `

    + +

    Asterisk: *

    + +

    Underscore: _

    + +

    Left brace: {

    + +

    Right brace: }

    + +

    Left bracket: [

    + +

    Right bracket: ]

    + +

    Left paren: (

    + +

    Right paren: )

    + +

    Greater-than: >

    + +

    Hash: #

    + +

    Period: .

    + +

    Bang: !

    + +

    Plus: +

    + +

    Minus: -

    + +

    These should not, because they occur within a code block:

    + +
    Backslash: \\
    +
    +Backtick: \`
    +
    +Asterisk: \*
    +
    +Underscore: \_
    +
    +Left brace: \{
    +
    +Right brace: \}
    +
    +Left bracket: \[
    +
    +Right bracket: \]
    +
    +Left paren: \(
    +
    +Right paren: \)
    +
    +Greater-than: \>
    +
    +Hash: \#
    +
    +Period: \.
    +
    +Bang: \!
    +
    +Plus: \+
    +
    +Minus: \-
    +
    + +

    Nor should these, which occur in code spans:

    + +

    Backslash: \\

    + +

    Backtick: \`

    + +

    Asterisk: \*

    + +

    Underscore: \_

    + +

    Left brace: \{

    + +

    Right brace: \}

    + +

    Left bracket: \[

    + +

    Right bracket: \]

    + +

    Left paren: \(

    + +

    Right paren: \)

    + +

    Greater-than: \>

    + +

    Hash: \#

    + +

    Period: \.

    + +

    Bang: \!

    + +

    Plus: \+

    + +

    Minus: \-

    + + +

    These should get escaped, even though they're matching pairs for +other Markdown constructs:

    + +

    *asterisks*

    + +

    _underscores_

    + +

    `backticks`

    + +

    This is a code span with a literal backslash-backtick sequence: \`

    + +

    This is a tag with unescaped backticks bar.

    + +

    This is a tag with backslashes bar.

    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.json new file mode 100644 index 000000000..484110760 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.json @@ -0,0 +1,4 @@ +["html", ["blockquote", ["p", "Example:"], + ["pre", ["code", "sub status {\u000a print \"working\";\u000a}\u000a"]], + ["p", "Or:"], + ["pre", ["code", "sub status {\u000a return \"working\";\u000a}\u000a"]]]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.text new file mode 100644 index 000000000..c31d17104 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.text @@ -0,0 +1,11 @@ +> Example: +> +> sub status { +> print "working"; +> } +> +> Or: +> +> sub status { +> return "working"; +> } diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.xhtml new file mode 100644 index 000000000..990202a1b --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.xhtml @@ -0,0 +1,15 @@ +
    +

    Example:

    + +
    sub status {
    +    print "working";
    +}
    +
    + +

    Or:

    + +
    sub status {
    +    return "working";
    +}
    +
    +
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Blocks.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Blocks.json new file mode 100644 index 000000000..c8f62d73b --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Blocks.json @@ -0,0 +1,7 @@ +["html", ["pre", ["code", "code block on the first line\u000a"]], + ["p", "Regular text."], + ["pre", ["code", "code block indented by spaces\u000a"]], + ["p", "Regular text."], + ["pre", ["code", "the lines in this block \u000aall contain trailing spaces \u000a"]], + ["p", "Regular Text."], + ["pre", ["code", "code block on the last line\u000a"]]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Blocks.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Blocks.text new file mode 100644 index 000000000..b54b09285 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Blocks.text @@ -0,0 +1,14 @@ + code block on the first line + +Regular text. + + code block indented by spaces + +Regular text. + + the lines in this block + all contain trailing spaces + +Regular Text. + + code block on the last line \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Blocks.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Blocks.xhtml new file mode 100644 index 000000000..32703f5cb --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Blocks.xhtml @@ -0,0 +1,18 @@ +
    code block on the first line
    +
    + +

    Regular text.

    + +
    code block indented by spaces
    +
    + +

    Regular text.

    + +
    the lines in this block  
    +all contain trailing spaces  
    +
    + +

    Regular Text.

    + +
    code block on the last line
    +
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Spans.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Spans.json new file mode 100644 index 000000000..78b684088 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Spans.json @@ -0,0 +1,6 @@ +["html", ["p", ["code", ""]], + ["p", "Fix for backticks within HTML tag: ", ["span", { + "attr": "`ticks`" + }, + "like this"]], + ["p", "Here's how you put ", ["code", "`backticks`"], " in a code span."]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Spans.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Spans.text new file mode 100644 index 000000000..5c229c7ad --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Spans.text @@ -0,0 +1,5 @@ +`` + +Fix for backticks within HTML tag: like this + +Here's how you put `` `backticks` `` in a code span. \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Spans.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Spans.xhtml new file mode 100644 index 000000000..b057457d3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Code_Spans.xhtml @@ -0,0 +1,5 @@ +

    <test a=" content of attribute ">

    + +

    Fix for backticks within HTML tag: like this

    + +

    Here's how you put `backticks` in a code span.

    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.json new file mode 100644 index 000000000..09cd53b8f --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.json @@ -0,0 +1,2 @@ +["html", ["p", "In Markdown 1.0.0 and earlier. Version\u000a8. This line turns into a list item.\u000aBecause a hard-wrapped line in the\u000amiddle of a paragraph looked like a\u000alist item."], + ["p", "Here's one with a bullet.\u000a* criminey."]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.text new file mode 100644 index 000000000..f8a5b27bf --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.text @@ -0,0 +1,8 @@ +In Markdown 1.0.0 and earlier. Version +8. This line turns into a list item. +Because a hard-wrapped line in the +middle of a paragraph looked like a +list item. + +Here's one with a bullet. +* criminey. diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.xhtml new file mode 100644 index 000000000..e21ac79a2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.xhtml @@ -0,0 +1,8 @@ +

    In Markdown 1.0.0 and earlier. Version +8. This line turns into a list item. +Because a hard-wrapped line in the +middle of a paragraph looked like a +list item.

    + +

    Here's one with a bullet. +* criminey.

    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.json new file mode 100644 index 000000000..be4b070a6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.json @@ -0,0 +1,3 @@ +["html", ["p", "Dashes:"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["pre", ["code", "---\u000a"]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["pre", ["code", "- - -\u000a"]], + ["p", "Asterisks:"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["pre", ["code", "***\u000a"]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["pre", ["code", "* * *\u000a"]], + ["p", "Underscores:"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["pre", ["code", "___\u000a"]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["pre", ["code", "_ _ _\u000a"]]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.text new file mode 100644 index 000000000..1594bda27 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.text @@ -0,0 +1,67 @@ +Dashes: + +--- + + --- + + --- + + --- + + --- + +- - - + + - - - + + - - - + + - - - + + - - - + + +Asterisks: + +*** + + *** + + *** + + *** + + *** + +* * * + + * * * + + * * * + + * * * + + * * * + + +Underscores: + +___ + + ___ + + ___ + + ___ + + ___ + +_ _ _ + + _ _ _ + + _ _ _ + + _ _ _ + + _ _ _ diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.xhtml new file mode 100644 index 000000000..2dc2ab656 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.xhtml @@ -0,0 +1,71 @@ +

    Dashes:

    + +
    + +
    + +
    + +
    + +
    ---
    +
    + +
    + +
    + +
    + +
    + +
    - - -
    +
    + +

    Asterisks:

    + +
    + +
    + +
    + +
    + +
    ***
    +
    + +
    + +
    + +
    + +
    + +
    * * *
    +
    + +

    Underscores:

    + +
    + +
    + +
    + +
    + +
    ___
    +
    + +
    + +
    + +
    + +
    + +
    _ _ _
    +
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Images.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Images.json new file mode 100644 index 000000000..518f9d5ea --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Images.json @@ -0,0 +1,48 @@ +["html", ["p", ["img", { + "src": "/path/to/img.jpg", + "alt": "Alt text" +}]], + ["p", ["img", { + "src": "/path/to/img.jpg", + "alt": "Alt text", + "title": "Optional title" + }]], + ["p", "Inline within a paragraph: ", ["a", { + "href": "/url/" + }, + "alt text"], "."], + ["p", ["img", { + "src": "/url/", + "alt": "alt text", + "title": "title preceded by two spaces" + }]], + ["p", ["img", { + "src": "/url/", + "alt": "alt text", + "title": "title has spaces afterward" + }]], + ["p", ["img", { + "src": "/url/", + "alt": "alt text" + }]], + ["p", ["img", { + "src": "/url/", + "alt": "alt text", + "title": "with a title" + }], "."], + ["p", ["img", { + "alt": "Empty" + }]], + ["p", ["img", { + "src": "http://example.com/(parens).jpg", + "alt": "this is a stupid URL" + }]], + ["p", ["img", { + "src": "/url/", + "alt": "alt text" + }]], + ["p", ["img", { + "src": "/url/", + "alt": "alt text", + "title": "Title here" + }]]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Images.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Images.text new file mode 100644 index 000000000..570759091 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Images.text @@ -0,0 +1,26 @@ +![Alt text](/path/to/img.jpg) + +![Alt text](/path/to/img.jpg "Optional title") + +Inline within a paragraph: [alt text](/url/). + +![alt text](/url/ "title preceded by two spaces") + +![alt text](/url/ "title has spaces afterward" ) + +![alt text]() + +![alt text]( "with a title"). + +![Empty]() + +![this is a stupid URL](http://example.com/(parens).jpg) + + +![alt text][foo] + + [foo]: /url/ + +![alt text][bar] + + [bar]: /url/ "Title here" \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Images.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Images.xhtml new file mode 100644 index 000000000..925bc1476 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Images.xhtml @@ -0,0 +1,21 @@ +

    Alt text

    + +

    Alt text

    + +

    Inline within a paragraph: alt text.

    + +

    alt text

    + +

    alt text

    + +

    alt text

    + +

    alt text.

    + +

    Empty

    + +

    this is a stupid URL

    + +

    alt text

    + +

    alt text

    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).json new file mode 100644 index 000000000..b865a8784 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).json @@ -0,0 +1,11 @@ +["html", ["p", "Simple block on one line:"], "\u000a\u000a", ["div", "foo"], "\u000a\u000a", ["p", "And nested without indentation:"], "\u000a\u000a", ["div", "\u000a", ["div", "\u000a", ["div", "\u000afoo\u000a"], "\u000a", ["div", { + "style": ">" +}], "\u000a"], "\u000a", ["div", "bar"], "\u000a"], "\u000a\u000a", ["p", "And with attributes:"], "\u000a\u000a", ["div", "\u000a ", ["div", { + "id": "foo" +}], "\u000a"], "\u000a\u000a", ["p", "This was broken in 1.0.2b7:"], "\u000a\u000a", ["div", { + "class": "inlinepage" +}, +"\u000a", ["div", { + "class": "toggleableend" +}, +"\u000afoo\u000a"], "\u000a"], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).text new file mode 100644 index 000000000..3633f813f --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).text @@ -0,0 +1,30 @@ +Simple block on one line: + +
    foo
    + +And nested without indentation: + +
    +
    +
    +foo +
    +
    +
    +
    bar
    +
    + +And with attributes: + +
    +
    +
    +
    + +This was broken in 1.0.2b7: + +
    +
    +foo +
    +
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).xhtml new file mode 100644 index 000000000..884f14c18 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).xhtml @@ -0,0 +1,30 @@ +

    Simple block on one line:

    + +
    foo
    + +

    And nested without indentation:

    + +
    +
    +
    +foo +
    +
    +
    +
    bar
    +
    + +

    And with attributes:

    + +
    +
    +
    +
    + +

    This was broken in 1.0.2b7:

    + +
    +
    +foo +
    +
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).html b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).html new file mode 100644 index 000000000..6bf78f8fc --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).html @@ -0,0 +1,72 @@ +

    Here's a simple block:

    + +
    + foo +
    + +

    This should be a code block, though:

    + +
    <div>
    +    foo
    +</div>
    +
    + +

    As should this:

    + +
    <div>foo</div>
    +
    + +

    Now, nested:

    + +
    +
    +
    + foo +
    +
    +
    + +

    This should just be an HTML comment:

    + + + +

    Multiline:

    + + + +

    Code block:

    + +
    <!-- Comment -->
    +
    + +

    Just plain comment, with trailing spaces on the line:

    + + + +

    Code:

    + +
    <hr />
    +
    + +

    Hr's:

    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).json new file mode 100644 index 000000000..3ea76f8c3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).json @@ -0,0 +1,18 @@ +["html", ["p", "Here's a simple block:"], "\u000a\u000a", ["div", "\u000a foo\u000a"], "\u000a\u000a", ["p", "This should be a code block, though:"], + ["pre", ["code", "
    \u000a foo\u000a
    \u000a"]], + ["p", "As should this:"], + ["pre", ["code", "
    foo
    \u000a"]], + ["p", "Now, nested:"], "\u000a\u000a", ["div", "\u000a ", ["div", "\u000a ", ["div", "\u000a foo\u000a "], "\u000a "], "\u000a"], "\u000a\u000a", ["p", "This should just be an HTML comment:"], "\u000a\u000a", "\u000a\u000a", ["p", "Multiline:"], "\u000a\u000a", "\u000a\u000a", ["p", "Code block:"], + ["pre", ["code", "\u000a"]], + ["p", "Just plain comment, with trailing spaces on the line:"], "\u000a\u000a", " \u000a\u000a", ["p", "Code:"], + ["pre", ["code", "
    \u000a"]], + ["p", "Hr's:"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], " \u000a\u000a", ["hr"], " \u000a\u000a", ["hr"], " \u000a\u000a", ["hr", { + "class": "foo", + "id": "bar" +}], "\u000a\u000a", ["hr", { + "class": "foo", + "id": "bar" +}], "\u000a\u000a", ["hr", { + "class": "foo", + "id": "bar" +}], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).text new file mode 100644 index 000000000..14aa2dc27 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).text @@ -0,0 +1,69 @@ +Here's a simple block: + +
    + foo +
    + +This should be a code block, though: + +
    + foo +
    + +As should this: + +
    foo
    + +Now, nested: + +
    +
    +
    + foo +
    +
    +
    + +This should just be an HTML comment: + + + +Multiline: + + + +Code block: + + + +Just plain comment, with trailing spaces on the line: + + + +Code: + +
    + +Hr's: + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.html b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.html new file mode 100644 index 000000000..3f167a161 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.html @@ -0,0 +1,13 @@ +

    Paragraph one.

    + + + + + +

    Paragraph two.

    + + + +

    The end.

    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.json new file mode 100644 index 000000000..7b0e9aee5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.json @@ -0,0 +1 @@ +["html", ["p", "Paragraph one."], "\u000a\u000a", "\u000a\u000a", "\u000a\u000a", ["p", "Paragraph two."], "\u000a\u000a", "\u000a\u000a", ["p", "The end."]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.text new file mode 100644 index 000000000..41d830d03 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.text @@ -0,0 +1,13 @@ +Paragraph one. + + + + + +Paragraph two. + + + +The end. diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_inline_style.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_inline_style.json new file mode 100644 index 000000000..ba39d8009 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_inline_style.json @@ -0,0 +1,52 @@ +["html", ["p", "Just a ", ["a", { + "href": "/url/" +}, +"URL"], "."], + ["p", ["a", { + "href": "/url/", + "title": "title" + }, + "URL and title"], "."], + ["p", ["a", { + "href": "/url/", + "title": "title preceded by two spaces" + }, + "URL and title"], "."], + ["p", ["a", { + "href": "/url/", + "title": "title preceded by a tab" + }, + "URL and title"], "."], + ["p", ["a", { + "href": "/url/", + "title": "title has spaces afterward" + }, + "URL and title"], "."], + ["p", ["a", { + "href": "/url/" + }, + "URL wrapped in angle brackets"], "."], + ["p", ["a", { + "href": "/url/", + "title": "Here's the title" + }, + "URL w/ angle brackets + title"], "."], + ["p", ["a", "Empty"], "."], + ["p", ["a", { + "href": "http://en.wikipedia.org/wiki/WIMP_(computing)" + }, + "With parens in the URL"]], + ["p", "(With outer parens and ", ["a", { + "href": "/foo(bar)" + }, + "parens in url"], ")"], + ["p", ["a", { + "href": "/foo(bar)", + "title": "and a title" + }, + "With parens in the URL"]], + ["p", "(With outer parens and ", ["a", { + "href": "/foo(bar)", + "title": "and a title" + }, + "parens in url"], ")"]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_inline_style.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_inline_style.text new file mode 100644 index 000000000..aba965835 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_inline_style.text @@ -0,0 +1,24 @@ +Just a [URL](/url/). + +[URL and title](/url/ "title"). + +[URL and title](/url/ "title preceded by two spaces"). + +[URL and title](/url/ "title preceded by a tab"). + +[URL and title](/url/ "title has spaces afterward" ). + +[URL wrapped in angle brackets](). + +[URL w/ angle brackets + title]( "Here's the title"). + +[Empty](). + +[With parens in the URL](http://en.wikipedia.org/wiki/WIMP_(computing)) + +(With outer parens and [parens in url](/foo(bar))) + + +[With parens in the URL](/foo(bar) "and a title") + +(With outer parens and [parens in url](/foo(bar) "and a title")) diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_inline_style.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_inline_style.xhtml new file mode 100644 index 000000000..9f351ef54 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_inline_style.xhtml @@ -0,0 +1,23 @@ +

    Just a URL.

    + +

    URL and title.

    + +

    URL and title.

    + +

    URL and title.

    + +

    URL and title.

    + +

    URL wrapped in angle brackets.

    + +

    URL w/ angle brackets + title.

    + +

    Empty.

    + +

    With parens in the URL

    + +

    (With outer parens and parens in url)

    + +

    With parens in the URL

    + +

    (With outer parens and parens in url)

    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_reference_style.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_reference_style.json new file mode 100644 index 000000000..0621b21c6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_reference_style.json @@ -0,0 +1,75 @@ +["html", ["p", "Foo ", ["a", { + "href": "/url/", + "title": "Title" +}, +"bar"], "."], + ["p", "Foo ", ["a", { + "href": "/url/", + "title": "Title" + }, + "bar"], "."], + ["p", "Foo ", ["a", { + "href": "/url/", + "title": "Title" + }, + "bar"], "."], + ["p", "With ", ["a", { + "href": "/url/" + }, + "embedded [brackets]"], "."], + ["p", "Indented ", ["a", { + "href": "/url" + }, + "once"], "."], + ["p", "Indented ", ["a", { + "href": "/url" + }, + "twice"], "."], + ["p", "Indented ", ["a", { + "href": "/url" + }, + "thrice"], "."], + ["p", "Indented [four][] times."], + ["pre", ["code", "[four]: /url\u000a"]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["p", ["a", { + "href": "foo" +}, +"this"], " should work"], + ["p", "So should ", ["a", { + "href": "foo" + }, + "this"], "."], + ["p", "And ", ["a", { + "href": "foo" + }, + "this"], "."], + ["p", "And ", ["a", { + "href": "foo" + }, + "this"], "."], + ["p", "And ", ["a", { + "href": "foo" + }, + "this"], "."], + ["p", "But not [that] []."], + ["p", "Nor [that][]."], + ["p", "Nor [that]."], + ["p", "[Something in brackets like ", ["a", { + "href": "foo" + }, + "this"], " should work]"], + ["p", "[Same with ", ["a", { + "href": "foo" + }, + "this"], ".]"], + ["p", "In this case, ", ["a", { + "href": "/somethingelse/" + }, + "this"], " points to something else."], + ["p", "Backslashing should suppress [this] and [this]."], "\u000a\u000a", ["hr"], "\u000a\u000a", ["p", "Here's one where the ", ["a", { + "href": "/url/" +}, +"link\u000abreaks"], " across lines."], + ["p", "Here's another where the ", ["a", { + "href": "/url/" + }, + "link \u000abreaks"], " across lines, but with a line-ending space."]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_reference_style.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_reference_style.text new file mode 100644 index 000000000..341ec88e3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_reference_style.text @@ -0,0 +1,71 @@ +Foo [bar] [1]. + +Foo [bar][1]. + +Foo [bar] +[1]. + +[1]: /url/ "Title" + + +With [embedded [brackets]] [b]. + + +Indented [once][]. + +Indented [twice][]. + +Indented [thrice][]. + +Indented [four][] times. + + [once]: /url + + [twice]: /url + + [thrice]: /url + + [four]: /url + + +[b]: /url/ + +* * * + +[this] [this] should work + +So should [this][this]. + +And [this] []. + +And [this][]. + +And [this]. + +But not [that] []. + +Nor [that][]. + +Nor [that]. + +[Something in brackets like [this][] should work] + +[Same with [this].] + +In this case, [this](/somethingelse/) points to something else. + +Backslashing should suppress \[this] and [this\]. + +[this]: foo + + +* * * + +Here's one where the [link +breaks] across lines. + +Here's another where the [link +breaks] across lines, but with a line-ending space. + + +[link breaks]: /url/ diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_reference_style.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_reference_style.xhtml new file mode 100644 index 000000000..8e70c32f4 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_reference_style.xhtml @@ -0,0 +1,52 @@ +

    Foo bar.

    + +

    Foo bar.

    + +

    Foo bar.

    + +

    With embedded [brackets].

    + +

    Indented once.

    + +

    Indented twice.

    + +

    Indented thrice.

    + +

    Indented [four][] times.

    + +
    [four]: /url
    +
    + +
    + +

    this should work

    + +

    So should this.

    + +

    And this.

    + +

    And this.

    + +

    And this.

    + +

    But not [that] [].

    + +

    Nor [that][].

    + +

    Nor [that].

    + +

    [Something in brackets like this should work]

    + +

    [Same with this.]

    + +

    In this case, this points to something else.

    + +

    Backslashing should suppress [this] and [this].

    + +
    + +

    Here's one where the link +breaks across lines.

    + +

    Here's another where the link +breaks across lines, but with a line-ending space.

    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.json new file mode 100644 index 000000000..8074216e4 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.json @@ -0,0 +1,19 @@ +["html", ["p", "This is the ", ["a", { + "href": "/simple" +}, +"simple case"], "."], + ["p", "This one has a ", ["a", { + "href": "/foo" + }, + "line\u000abreak"], "."], + ["p", "This one has a ", ["a", { + "href": "/foo" + }, + "line \u000abreak"], " with a line-ending space."], + ["p", ["a", { + "href": "/that" + }, + "this"], " and the ", ["a", { + "href": "/other" + }, + "other"]]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.text new file mode 100644 index 000000000..8c44c98fe --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.text @@ -0,0 +1,20 @@ +This is the [simple case]. + +[simple case]: /simple + + + +This one has a [line +break]. + +This one has a [line +break] with a line-ending space. + +[line break]: /foo + + +[this] [that] and the [other] + +[this]: /this +[that]: /that +[other]: /other diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.xhtml new file mode 100644 index 000000000..bf81e939f --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.xhtml @@ -0,0 +1,9 @@ +

    This is the simple case.

    + +

    This one has a line +break.

    + +

    This one has a line +break with a line-ending space.

    + +

    this and the other

    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.json new file mode 100644 index 000000000..05e280237 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.json @@ -0,0 +1,10 @@ +["html", ["p", "Foo ", ["a", { + "href": "/url/", + "title": "Title with \"quotes\" inside" +}, +"bar"], "."], + ["p", "Foo ", ["a", { + "href": "/url/", + "title": "Title with \"quotes\" inside" + }, + "bar"], "."]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.text new file mode 100644 index 000000000..29d0e4235 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.text @@ -0,0 +1,7 @@ +Foo [bar][]. + +Foo [bar](/url/ "Title with "quotes" inside"). + + + [bar]: /url/ "Title with "quotes" inside" + diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.xhtml new file mode 100644 index 000000000..611c1ac61 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.xhtml @@ -0,0 +1,3 @@ +

    Foo bar.

    + +

    Foo bar.

    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.json new file mode 100644 index 000000000..38c2f80b1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.json @@ -0,0 +1,96 @@ +["html", ["h1", "Markdown: Basics"], "\u000a\u000a", ["ul", { + "id": "ProjectSubmenu" +}, +["li", ["a", { + "href": "/projects/markdown/", + "title": "Markdown Project Page" +}, +"Main"]], + ["li", ["a", { + "class": "selected", + "title": "Markdown Basics" + }, + "Basics"]], + ["li", ["a", { + "href": "/projects/markdown/syntax", + "title": "Markdown Syntax Documentation" + }, + "Syntax"]], + ["li", ["a", { + "href": "/projects/markdown/license", + "title": "Pricing and License Information" + }, + "License"]], + ["li", ["a", { + "href": "/projects/markdown/dingus", + "title": "Online Markdown Web Form" + }, + "Dingus"]]], "\u000a\u000a", ["h2", "Getting the Gist of Markdown's Formatting Syntax"], "\u000a\u000a", ["p", "This page offers a brief overview of what it's like to use Markdown.\u000aThe ", ["a", { + "href": "/projects/markdown/syntax", + "title": "Markdown Syntax" +}, +"syntax page"], " provides complete, detailed documentation for\u000aevery feature, but Markdown should be very easy to pick up simply by\u000alooking at a few examples of it in action. The examples on this page\u000aare written in a before/after style, showing example syntax and the\u000aHTML output produced by Markdown."], + ["p", "It's also helpful to simply try Markdown out; the ", ["a", { + "href": "/projects/markdown/dingus", + "title": "Markdown Dingus" + }, + "Dingus"], " is a\u000aweb application that allows you type your own Markdown-formatted text\u000aand translate it to XHTML."], + ["p", ["strong", "Note:"], " This document is itself written using Markdown; you\u000acan ", ["a", { + "href": "/projects/markdown/basics.text" + }, + "see the source for it by adding '.text' to the URL"], "."], "\u000a\u000a", ["h2", "Paragraphs, Headers, Blockquotes"], "\u000a\u000a", ["p", "A paragraph is simply one or more consecutive lines of text, separated\u000aby one or more blank lines. (A blank line is any line that looks like a\u000ablank line -- a line containing nothing spaces or tabs is considered\u000ablank.) Normal paragraphs should not be intended with spaces or tabs."], + ["p", "Markdown offers two styles of headers: ", ["em", "Setext"], " and ", ["em", "atx"], ".\u000aSetext-style headers for ", ["code", "

    "], " and ", ["code", "

    "], " are created by\u000a\"underlining\" with equal signs (", ["code", "="], ") and hyphens (", ["code", "-"], "), respectively.\u000aTo create an atx-style header, you put 1-6 hash marks (", ["code", "#"], ") at the\u000abeginning of the line -- the number of hashes equals the resulting\u000aHTML header level."], + ["p", "Blockquotes are indicated using email-style '", ["code", ">"], "' angle brackets."], + ["p", "Markdown:"], + ["pre", ["code", "A First Level Header\u000a====================\u000a\u000aA Second Level Header\u000a---------------------\u000a\u000aNow is the time for all good men to come to\u000athe aid of their country. This is just a\u000aregular paragraph.\u000a\u000aThe quick brown fox jumped over the lazy\u000adog's back.\u000a\u000a### Header 3\u000a\u000a> This is a blockquote.\u000a> \u000a> This is the second paragraph in the blockquote.\u000a>\u000a> ## This is an H2 in a blockquote\u000a"]], + ["p", "Output:"], + ["pre", ["code", "

    A First Level Header

    \u000a\u000a

    A Second Level Header

    \u000a\u000a

    Now is the time for all good men to come to\u000athe aid of their country. This is just a\u000aregular paragraph.

    \u000a\u000a

    The quick brown fox jumped over the lazy\u000adog's back.

    \u000a\u000a

    Header 3

    \u000a\u000a
    \u000a

    This is a blockquote.

    \u000a\u000a

    This is the second paragraph in the blockquote.

    \u000a\u000a

    This is an H2 in a blockquote

    \u000a
    \u000a"]], "\u000a\u000a", ["h3", "Phrase Emphasis"], "\u000a\u000a", ["p", "Markdown uses asterisks and underscores to indicate spans of emphasis."], + ["p", "Markdown:"], + ["pre", ["code", "Some of these words *are emphasized*.\u000aSome of these words _are emphasized also_.\u000a\u000aUse two asterisks for **strong emphasis**.\u000aOr, if you prefer, __use two underscores instead__.\u000a"]], + ["p", "Output:"], + ["pre", ["code", "

    Some of these words are emphasized.\u000aSome of these words are emphasized also.

    \u000a\u000a

    Use two asterisks for strong emphasis.\u000aOr, if you prefer, use two underscores instead.

    \u000a"]], "\u000a\u000a", ["h2", "Lists"], "\u000a\u000a", ["p", "Unordered (bulleted) lists use asterisks, pluses, and hyphens (", ["code", "*"], ",\u000a", ["code", "+"], ", and ", ["code", "-"], ") as list markers. These three markers are\u000ainterchangable; this:"], + ["pre", ["code", "* Candy.\u000a* Gum.\u000a* Booze.\u000a"]], + ["p", "this:"], + ["pre", ["code", "+ Candy.\u000a+ Gum.\u000a+ Booze.\u000a"]], + ["p", "and this:"], + ["pre", ["code", "- Candy.\u000a- Gum.\u000a- Booze.\u000a"]], + ["p", "all produce the same output:"], + ["pre", ["code", "
      \u000a
    • Candy.
    • \u000a
    • Gum.
    • \u000a
    • Booze.
    • \u000a
    \u000a"]], + ["p", "Ordered (numbered) lists use regular numbers, followed by periods, as\u000alist markers:"], + ["pre", ["code", "1. Red\u000a2. Green\u000a3. Blue\u000a"]], + ["p", "Output:"], + ["pre", ["code", "
      \u000a
    1. Red
    2. \u000a
    3. Green
    4. \u000a
    5. Blue
    6. \u000a
    \u000a"]], + ["p", "If you put blank lines between items, you'll get ", ["code", "

    "], " tags for the\u000alist item text. You can create multi-paragraph list items by indenting\u000athe paragraphs by 4 spaces or 1 tab:"], + ["pre", ["code", "* A list item.\u000a\u000a With multiple paragraphs.\u000a\u000a* Another item in the list.\u000a"]], + ["p", "Output:"], + ["pre", ["code", "

      \u000a
    • A list item.

      \u000a

      With multiple paragraphs.

    • \u000a
    • Another item in the list.

    • \u000a
    \u000a"]], "\u000a\u000a", ["h3", "Links"], "\u000a\u000a", ["p", "Markdown supports two styles for creating links: ", ["em", "inline"], " and\u000a", ["em", "reference"], ". With both styles, you use square brackets to delimit the\u000atext you want to turn into a link."], + ["p", "Inline-style links use parentheses immediately after the link text.\u000aFor example:"], + ["pre", ["code", "This is an [example link](http://example.com/).\u000a"]], + ["p", "Output:"], + ["pre", ["code", "

    This is an \u000aexample link.

    \u000a"]], + ["p", "Optionally, you may include a title attribute in the parentheses:"], + ["pre", ["code", "This is an [example link](http://example.com/ \"With a Title\").\u000a"]], + ["p", "Output:"], + ["pre", ["code", "

    This is an \u000aexample link.

    \u000a"]], + ["p", "Reference-style links allow you to refer to your links by names, which\u000ayou define elsewhere in your document:"], + ["pre", ["code", "I get 10 times more traffic from [Google][1] than from\u000a[Yahoo][2] or [MSN][3].\u000a\u000a[1]: http://google.com/ \"Google\"\u000a[2]: http://search.yahoo.com/ \"Yahoo Search\"\u000a[3]: http://search.msn.com/ \"MSN Search\"\u000a"]], + ["p", "Output:"], + ["pre", ["code", "

    I get 10 times more traffic from Google than from Yahoo or MSN.

    \u000a"]], + ["p", "The title attribute is optional. Link names may contain letters,\u000anumbers and spaces, but are ", ["em", "not"], " case sensitive:"], + ["pre", ["code", "I start my morning with a cup of coffee and\u000a[The New York Times][NY Times].\u000a\u000a[ny times]: http://www.nytimes.com/\u000a"]], + ["p", "Output:"], + ["pre", ["code", "

    I start my morning with a cup of coffee and\u000aThe New York Times.

    \u000a"]], "\u000a\u000a", ["h3", "Images"], "\u000a\u000a", ["p", "Image syntax is very much like link syntax."], + ["p", "Inline (titles are optional):"], + ["pre", ["code", "![alt text](/path/to/img.jpg \"Title\")\u000a"]], + ["p", "Reference-style:"], + ["pre", ["code", "![alt text][id]\u000a\u000a[id]: /path/to/img.jpg \"Title\"\u000a"]], + ["p", "Both of the above examples produce the same output:"], + ["pre", ["code", "\"alt\u000a"]], "\u000a\u000a", ["h3", "Code"], "\u000a\u000a", ["p", "In a regular paragraph, you can create code span by wrapping text in\u000abacktick quotes. Any ampersands (", ["code", "&"], ") and angle brackets (", ["code", "<"], " or\u000a", ["code", ">"], ") will automatically be translated into HTML entities. This makes\u000ait easy to use Markdown to write about HTML example code:"], + ["pre", ["code", "I strongly recommend against using any `` tags.\u000a\u000aI wish SmartyPants used named entities like `—`\u000ainstead of decimal-encoded entites like `—`.\u000a"]], + ["p", "Output:"], + ["pre", ["code", "

    I strongly recommend against using any\u000a<blink> tags.

    \u000a\u000a

    I wish SmartyPants used named entities like\u000a&mdash; instead of decimal-encoded\u000aentites like &#8212;.

    \u000a"]], + ["p", "To specify an entire block of pre-formatted code, indent every line of\u000athe block by 4 spaces or 1 tab. Just like with code spans, ", ["code", "&"], ", ", ["code", "<"], ",\u000aand ", ["code", ">"], " characters will be escaped automatically."], + ["p", "Markdown:"], + ["pre", ["code", "If you want your page to validate under XHTML 1.0 Strict,\u000ayou've got to put paragraph tags in your blockquotes:\u000a\u000a
    \u000a

    For example.

    \u000a
    \u000a"]], + ["p", "Output:"], + ["pre", ["code", "

    If you want your page to validate under XHTML 1.0 Strict,\u000ayou've got to put paragraph tags in your blockquotes:

    \u000a\u000a
    <blockquote>\u000a    <p>For example.</p>\u000a</blockquote>\u000a
    \u000a"]]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.text new file mode 100644 index 000000000..486055ca7 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.text @@ -0,0 +1,306 @@ +Markdown: Basics +================ + + + + +Getting the Gist of Markdown's Formatting Syntax +------------------------------------------------ + +This page offers a brief overview of what it's like to use Markdown. +The [syntax page] [s] provides complete, detailed documentation for +every feature, but Markdown should be very easy to pick up simply by +looking at a few examples of it in action. The examples on this page +are written in a before/after style, showing example syntax and the +HTML output produced by Markdown. + +It's also helpful to simply try Markdown out; the [Dingus] [d] is a +web application that allows you type your own Markdown-formatted text +and translate it to XHTML. + +**Note:** This document is itself written using Markdown; you +can [see the source for it by adding '.text' to the URL] [src]. + + [s]: /projects/markdown/syntax "Markdown Syntax" + [d]: /projects/markdown/dingus "Markdown Dingus" + [src]: /projects/markdown/basics.text + + +## Paragraphs, Headers, Blockquotes ## + +A paragraph is simply one or more consecutive lines of text, separated +by one or more blank lines. (A blank line is any line that looks like a +blank line -- a line containing nothing spaces or tabs is considered +blank.) Normal paragraphs should not be intended with spaces or tabs. + +Markdown offers two styles of headers: *Setext* and *atx*. +Setext-style headers for `

    ` and `

    ` are created by +"underlining" with equal signs (`=`) and hyphens (`-`), respectively. +To create an atx-style header, you put 1-6 hash marks (`#`) at the +beginning of the line -- the number of hashes equals the resulting +HTML header level. + +Blockquotes are indicated using email-style '`>`' angle brackets. + +Markdown: + + A First Level Header + ==================== + + A Second Level Header + --------------------- + + Now is the time for all good men to come to + the aid of their country. This is just a + regular paragraph. + + The quick brown fox jumped over the lazy + dog's back. + + ### Header 3 + + > This is a blockquote. + > + > This is the second paragraph in the blockquote. + > + > ## This is an H2 in a blockquote + + +Output: + +

    A First Level Header

    + +

    A Second Level Header

    + +

    Now is the time for all good men to come to + the aid of their country. This is just a + regular paragraph.

    + +

    The quick brown fox jumped over the lazy + dog's back.

    + +

    Header 3

    + +
    +

    This is a blockquote.

    + +

    This is the second paragraph in the blockquote.

    + +

    This is an H2 in a blockquote

    +
    + + + +### Phrase Emphasis ### + +Markdown uses asterisks and underscores to indicate spans of emphasis. + +Markdown: + + Some of these words *are emphasized*. + Some of these words _are emphasized also_. + + Use two asterisks for **strong emphasis**. + Or, if you prefer, __use two underscores instead__. + +Output: + +

    Some of these words are emphasized. + Some of these words are emphasized also.

    + +

    Use two asterisks for strong emphasis. + Or, if you prefer, use two underscores instead.

    + + + +## Lists ## + +Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`, +`+`, and `-`) as list markers. These three markers are +interchangable; this: + + * Candy. + * Gum. + * Booze. + +this: + + + Candy. + + Gum. + + Booze. + +and this: + + - Candy. + - Gum. + - Booze. + +all produce the same output: + +
      +
    • Candy.
    • +
    • Gum.
    • +
    • Booze.
    • +
    + +Ordered (numbered) lists use regular numbers, followed by periods, as +list markers: + + 1. Red + 2. Green + 3. Blue + +Output: + +
      +
    1. Red
    2. +
    3. Green
    4. +
    5. Blue
    6. +
    + +If you put blank lines between items, you'll get `

    ` tags for the +list item text. You can create multi-paragraph list items by indenting +the paragraphs by 4 spaces or 1 tab: + + * A list item. + + With multiple paragraphs. + + * Another item in the list. + +Output: + +

      +
    • A list item.

      +

      With multiple paragraphs.

    • +
    • Another item in the list.

    • +
    + + + +### Links ### + +Markdown supports two styles for creating links: *inline* and +*reference*. With both styles, you use square brackets to delimit the +text you want to turn into a link. + +Inline-style links use parentheses immediately after the link text. +For example: + + This is an [example link](http://example.com/). + +Output: + +

    This is an + example link.

    + +Optionally, you may include a title attribute in the parentheses: + + This is an [example link](http://example.com/ "With a Title"). + +Output: + +

    This is an + example link.

    + +Reference-style links allow you to refer to your links by names, which +you define elsewhere in your document: + + I get 10 times more traffic from [Google][1] than from + [Yahoo][2] or [MSN][3]. + + [1]: http://google.com/ "Google" + [2]: http://search.yahoo.com/ "Yahoo Search" + [3]: http://search.msn.com/ "MSN Search" + +Output: + +

    I get 10 times more traffic from Google than from Yahoo or MSN.

    + +The title attribute is optional. Link names may contain letters, +numbers and spaces, but are *not* case sensitive: + + I start my morning with a cup of coffee and + [The New York Times][NY Times]. + + [ny times]: http://www.nytimes.com/ + +Output: + +

    I start my morning with a cup of coffee and + The New York Times.

    + + +### Images ### + +Image syntax is very much like link syntax. + +Inline (titles are optional): + + ![alt text](/path/to/img.jpg "Title") + +Reference-style: + + ![alt text][id] + + [id]: /path/to/img.jpg "Title" + +Both of the above examples produce the same output: + + alt text + + + +### Code ### + +In a regular paragraph, you can create code span by wrapping text in +backtick quotes. Any ampersands (`&`) and angle brackets (`<` or +`>`) will automatically be translated into HTML entities. This makes +it easy to use Markdown to write about HTML example code: + + I strongly recommend against using any `` tags. + + I wish SmartyPants used named entities like `—` + instead of decimal-encoded entites like `—`. + +Output: + +

    I strongly recommend against using any + <blink> tags.

    + +

    I wish SmartyPants used named entities like + &mdash; instead of decimal-encoded + entites like &#8212;.

    + + +To specify an entire block of pre-formatted code, indent every line of +the block by 4 spaces or 1 tab. Just like with code spans, `&`, `<`, +and `>` characters will be escaped automatically. + +Markdown: + + If you want your page to validate under XHTML 1.0 Strict, + you've got to put paragraph tags in your blockquotes: + +
    +

    For example.

    +
    + +Output: + +

    If you want your page to validate under XHTML 1.0 Strict, + you've got to put paragraph tags in your blockquotes:

    + +
    <blockquote>
    +        <p>For example.</p>
    +    </blockquote>
    +    
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.xhtml new file mode 100644 index 000000000..d5bdbb29a --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.xhtml @@ -0,0 +1,314 @@ +

    Markdown: Basics

    + + + +

    Getting the Gist of Markdown's Formatting Syntax

    + +

    This page offers a brief overview of what it's like to use Markdown. +The syntax page provides complete, detailed documentation for +every feature, but Markdown should be very easy to pick up simply by +looking at a few examples of it in action. The examples on this page +are written in a before/after style, showing example syntax and the +HTML output produced by Markdown.

    + +

    It's also helpful to simply try Markdown out; the Dingus is a +web application that allows you type your own Markdown-formatted text +and translate it to XHTML.

    + +

    Note: This document is itself written using Markdown; you +can see the source for it by adding '.text' to the URL.

    + +

    Paragraphs, Headers, Blockquotes

    + +

    A paragraph is simply one or more consecutive lines of text, separated +by one or more blank lines. (A blank line is any line that looks like a +blank line -- a line containing nothing spaces or tabs is considered +blank.) Normal paragraphs should not be intended with spaces or tabs.

    + +

    Markdown offers two styles of headers: Setext and atx. +Setext-style headers for <h1> and <h2> are created by +"underlining" with equal signs (=) and hyphens (-), respectively. +To create an atx-style header, you put 1-6 hash marks (#) at the +beginning of the line -- the number of hashes equals the resulting +HTML header level.

    + +

    Blockquotes are indicated using email-style '>' angle brackets.

    + +

    Markdown:

    + +
    A First Level Header
    +====================
    +
    +A Second Level Header
    +---------------------
    +
    +Now is the time for all good men to come to
    +the aid of their country. This is just a
    +regular paragraph.
    +
    +The quick brown fox jumped over the lazy
    +dog's back.
    +
    +### Header 3
    +
    +> This is a blockquote.
    +> 
    +> This is the second paragraph in the blockquote.
    +>
    +> ## This is an H2 in a blockquote
    +
    + +

    Output:

    + +
    <h1>A First Level Header</h1>
    +
    +<h2>A Second Level Header</h2>
    +
    +<p>Now is the time for all good men to come to
    +the aid of their country. This is just a
    +regular paragraph.</p>
    +
    +<p>The quick brown fox jumped over the lazy
    +dog's back.</p>
    +
    +<h3>Header 3</h3>
    +
    +<blockquote>
    +    <p>This is a blockquote.</p>
    +
    +    <p>This is the second paragraph in the blockquote.</p>
    +
    +    <h2>This is an H2 in a blockquote</h2>
    +</blockquote>
    +
    + +

    Phrase Emphasis

    + +

    Markdown uses asterisks and underscores to indicate spans of emphasis.

    + +

    Markdown:

    + +
    Some of these words *are emphasized*.
    +Some of these words _are emphasized also_.
    +
    +Use two asterisks for **strong emphasis**.
    +Or, if you prefer, __use two underscores instead__.
    +
    + +

    Output:

    + +
    <p>Some of these words <em>are emphasized</em>.
    +Some of these words <em>are emphasized also</em>.</p>
    +
    +<p>Use two asterisks for <strong>strong emphasis</strong>.
    +Or, if you prefer, <strong>use two underscores instead</strong>.</p>
    +
    + +

    Lists

    + +

    Unordered (bulleted) lists use asterisks, pluses, and hyphens (*, ++, and -) as list markers. These three markers are +interchangable; this:

    + +
    *   Candy.
    +*   Gum.
    +*   Booze.
    +
    + +

    this:

    + +
    +   Candy.
    ++   Gum.
    ++   Booze.
    +
    + +

    and this:

    + +
    -   Candy.
    +-   Gum.
    +-   Booze.
    +
    + +

    all produce the same output:

    + +
    <ul>
    +<li>Candy.</li>
    +<li>Gum.</li>
    +<li>Booze.</li>
    +</ul>
    +
    + +

    Ordered (numbered) lists use regular numbers, followed by periods, as +list markers:

    + +
    1.  Red
    +2.  Green
    +3.  Blue
    +
    + +

    Output:

    + +
    <ol>
    +<li>Red</li>
    +<li>Green</li>
    +<li>Blue</li>
    +</ol>
    +
    + +

    If you put blank lines between items, you'll get <p> tags for the +list item text. You can create multi-paragraph list items by indenting +the paragraphs by 4 spaces or 1 tab:

    + +
    *   A list item.
    +
    +    With multiple paragraphs.
    +
    +*   Another item in the list.
    +
    + +

    Output:

    + +
    <ul>
    +<li><p>A list item.</p>
    +<p>With multiple paragraphs.</p></li>
    +<li><p>Another item in the list.</p></li>
    +</ul>
    +
    + +

    Links

    + +

    Markdown supports two styles for creating links: inline and +reference. With both styles, you use square brackets to delimit the +text you want to turn into a link.

    + +

    Inline-style links use parentheses immediately after the link text. +For example:

    + +
    This is an [example link](http://example.com/).
    +
    + +

    Output:

    + +
    <p>This is an <a href="http://example.com/">
    +example link</a>.</p>
    +
    + +

    Optionally, you may include a title attribute in the parentheses:

    + +
    This is an [example link](http://example.com/ "With a Title").
    +
    + +

    Output:

    + +
    <p>This is an <a href="http://example.com/" title="With a Title">
    +example link</a>.</p>
    +
    + +

    Reference-style links allow you to refer to your links by names, which +you define elsewhere in your document:

    + +
    I get 10 times more traffic from [Google][1] than from
    +[Yahoo][2] or [MSN][3].
    +
    +[1]: http://google.com/        "Google"
    +[2]: http://search.yahoo.com/  "Yahoo Search"
    +[3]: http://search.msn.com/    "MSN Search"
    +
    + +

    Output:

    + +
    <p>I get 10 times more traffic from <a href="http://google.com/"
    +title="Google">Google</a> than from <a href="http://search.yahoo.com/"
    +title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"
    +title="MSN Search">MSN</a>.</p>
    +
    + +

    The title attribute is optional. Link names may contain letters, +numbers and spaces, but are not case sensitive:

    + +
    I start my morning with a cup of coffee and
    +[The New York Times][NY Times].
    +
    +[ny times]: http://www.nytimes.com/
    +
    + +

    Output:

    + +
    <p>I start my morning with a cup of coffee and
    +<a href="http://www.nytimes.com/">The New York Times</a>.</p>
    +
    + +

    Images

    + +

    Image syntax is very much like link syntax.

    + +

    Inline (titles are optional):

    + +
    ![alt text](/path/to/img.jpg "Title")
    +
    + +

    Reference-style:

    + +
    ![alt text][id]
    +
    +[id]: /path/to/img.jpg "Title"
    +
    + +

    Both of the above examples produce the same output:

    + +
    <img src="/path/to/img.jpg" alt="alt text" title="Title" />
    +
    + +

    Code

    + +

    In a regular paragraph, you can create code span by wrapping text in +backtick quotes. Any ampersands (&) and angle brackets (< or +>) will automatically be translated into HTML entities. This makes +it easy to use Markdown to write about HTML example code:

    + +
    I strongly recommend against using any `<blink>` tags.
    +
    +I wish SmartyPants used named entities like `&mdash;`
    +instead of decimal-encoded entites like `&#8212;`.
    +
    + +

    Output:

    + +
    <p>I strongly recommend against using any
    +<code>&lt;blink&gt;</code> tags.</p>
    +
    +<p>I wish SmartyPants used named entities like
    +<code>&amp;mdash;</code> instead of decimal-encoded
    +entites like <code>&amp;#8212;</code>.</p>
    +
    + +

    To specify an entire block of pre-formatted code, indent every line of +the block by 4 spaces or 1 tab. Just like with code spans, &, <, +and > characters will be escaped automatically.

    + +

    Markdown:

    + +
    If you want your page to validate under XHTML 1.0 Strict,
    +you've got to put paragraph tags in your blockquotes:
    +
    +    <blockquote>
    +        <p>For example.</p>
    +    </blockquote>
    +
    + +

    Output:

    + +
    <p>If you want your page to validate under XHTML 1.0 Strict,
    +you've got to put paragraph tags in your blockquotes:</p>
    +
    +<pre><code>&lt;blockquote&gt;
    +    &lt;p&gt;For example.&lt;/p&gt;
    +&lt;/blockquote&gt;
    +</code></pre>
    +
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.json new file mode 100644 index 000000000..a8c819dfe --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.json @@ -0,0 +1,393 @@ +["html", ["h1", "Markdown: Syntax"], "\u000a\u000a", ["ul", { + "id": "ProjectSubmenu" +}, +["li", ["a", { + "href": "/projects/markdown/", + "title": "Markdown Project Page" +}, +"Main"]], + ["li", ["a", { + "href": "/projects/markdown/basics", + "title": "Markdown Basics" + }, + "Basics"]], + ["li", ["a", { + "class": "selected", + "title": "Markdown Syntax Documentation" + }, + "Syntax"]], + ["li", ["a", { + "href": "/projects/markdown/license", + "title": "Pricing and License Information" + }, + "License"]], + ["li", ["a", { + "href": "/projects/markdown/dingus", + "title": "Online Markdown Web Form" + }, + "Dingus"]]], + ["ul", ["li", ["a", { + "href": "#overview" + }, + "Overview"], "\u000a", ["ul", ["li", ["a", { + "href": "#philosophy" + }, + "Philosophy"]], + ["li", ["a", { + "href": "#html" + }, + "Inline HTML"]], + ["li", ["a", { + "href": "#autoescape" + }, + "Automatic Escaping for Special Characters"]]]], + ["li", ["a", { + "href": "#block" + }, + "Block Elements"], "\u000a", ["ul", ["li", ["a", { + "href": "#p" + }, + "Paragraphs and Line Breaks"]], + ["li", ["a", { + "href": "#header" + }, + "Headers"]], + ["li", ["a", { + "href": "#blockquote" + }, + "Blockquotes"]], + ["li", ["a", { + "href": "#list" + }, + "Lists"]], + ["li", ["a", { + "href": "#precode" + }, + "Code Blocks"]], + ["li", ["a", { + "href": "#hr" + }, + "Horizontal Rules"]]]], + ["li", ["a", { + "href": "#span" + }, + "Span Elements"], "\u000a", ["ul", ["li", ["a", { + "href": "#link" + }, + "Links"]], + ["li", ["a", { + "href": "#em" + }, + "Emphasis"]], + ["li", ["a", { + "href": "#code" + }, + "Code"]], + ["li", ["a", { + "href": "#img" + }, + "Images"]]]], + ["li", ["a", { + "href": "#misc" + }, + "Miscellaneous"], "\u000a", ["ul", ["li", ["a", { + "href": "#backslash" + }, + "Backslash Escapes"]], + ["li", ["a", { + "href": "#autolink" + }, + "Automatic Links"]]]]], + ["p", ["strong", "Note:"], " This document is itself written using Markdown; you\u000acan ", ["a", { + "href": "/projects/markdown/syntax.text" + }, + "see the source for it by adding '.text' to the URL"], "."], "\u000a\u000a", ["hr"], "\u000a\u000a", ["h2", { + "id": "overview" +}, +"Overview"], "\u000a\u000a", ["h3", { + "id": "philosophy" +}, +"Philosophy"], "\u000a\u000a", ["p", "Markdown is intended to be as easy-to-read and easy-to-write as is feasible."], + ["p", "Readability, however, is emphasized above all else. A Markdown-formatted\u000adocument should be publishable as-is, as plain text, without looking\u000alike it's been marked up with tags or formatting instructions. While\u000aMarkdown's syntax has been influenced by several existing text-to-HTML\u000afilters -- including ", ["a", { + "href": "http://docutils.sourceforge.net/mirror/setext.html" + }, + "Setext"], ", ", ["a", { + "href": "http://www.aaronsw.com/2002/atx/" + }, + "atx"], ", ", ["a", { + "href": "http://textism.com/tools/textile/" + }, + "Textile"], ", ", ["a", { + "href": "http://docutils.sourceforge.net/rst.html" + }, + "reStructuredText"], ",\u000a", ["a", { + "href": "http://www.triptico.com/software/grutatxt.html" + }, + "Grutatext"], ", and ", ["a", { + "href": "http://ettext.taint.org/doc/" + }, + "EtText"], " -- the single biggest source of\u000ainspiration for Markdown's syntax is the format of plain text email."], + ["p", "To this end, Markdown's syntax is comprised entirely of punctuation\u000acharacters, which punctuation characters have been carefully chosen so\u000aas to look like what they mean. E.g., asterisks around a word actually\u000alook like *emphasis*. Markdown lists look like, well, lists. Even\u000ablockquotes look like quoted passages of text, assuming you've ever\u000aused email."], "\u000a\u000a", ["h3", { + "id": "html" +}, +"Inline HTML"], "\u000a\u000a", ["p", "Markdown's syntax is intended for one purpose: to be used as a\u000aformat for ", ["em", "writing"], " for the web."], + ["p", "Markdown is not a replacement for HTML, or even close to it. Its\u000asyntax is very small, corresponding only to a very small subset of\u000aHTML tags. The idea is ", ["em", "not"], " to create a syntax that makes it easier\u000ato insert HTML tags. In my opinion, HTML tags are already easy to\u000ainsert. The idea for Markdown is to make it easy to read, write, and\u000aedit prose. HTML is a ", ["em", "publishing"], " format; Markdown is a ", ["em", "writing"], "\u000aformat. Thus, Markdown's formatting syntax only addresses issues that\u000acan be conveyed in plain text."], + ["p", "For any markup that is not covered by Markdown's syntax, you simply\u000ause HTML itself. There's no need to preface it or delimit it to\u000aindicate that you're switching from Markdown to HTML; you just use\u000athe tags."], + ["p", "The only restrictions are that block-level HTML elements -- e.g. ", ["code", "
    "], ",\u000a", ["code", ""], ", ", ["code", "
    "], ", ", ["code", "

    "], ", etc. -- must be separated from surrounding\u000acontent by blank lines, and the start and end tags of the block should\u000anot be indented with tabs or spaces. Markdown is smart enough not\u000ato add extra (unwanted) ", ["code", "

    "], " tags around HTML block-level tags."], + ["p", "For example, to add an HTML table to a Markdown article:"], + ["pre", ["code", "This is a regular paragraph.\u000a\u000a

    \u000a \u000a \u000a \u000a
    Foo
    \u000a\u000aThis is another regular paragraph.\u000a"]], + ["p", "Note that Markdown formatting syntax is not processed within block-level\u000aHTML tags. E.g., you can't use Markdown-style ", ["code", "*emphasis*"], " inside an\u000aHTML block."], + ["p", "Span-level HTML tags -- e.g. ", ["code", ""], ", ", ["code", ""], ", or ", ["code", ""], " -- can be\u000aused anywhere in a Markdown paragraph, list item, or header. If you\u000awant, you can even use HTML tags instead of Markdown formatting; e.g. if\u000ayou'd prefer to use HTML ", ["code", ""], " or ", ["code", ""], " tags instead of Markdown's\u000alink or image syntax, go right ahead."], + ["p", "Unlike block-level HTML tags, Markdown syntax ", ["em", "is"], " processed within\u000aspan-level tags."], "\u000a\u000a", ["h3", { + "id": "autoescape" +}, +"Automatic Escaping for Special Characters"], "\u000a\u000a", ["p", "In HTML, there are two characters that demand special treatment: ", ["code", "<"], "\u000aand ", ["code", "&"], ". Left angle brackets are used to start tags; ampersands are\u000aused to denote HTML entities. If you want to use them as literal\u000acharacters, you must escape them as entities, e.g. ", ["code", "<"], ", and\u000a", ["code", "&"], "."], + ["p", "Ampersands in particular are bedeviling for web writers. If you want to\u000awrite about 'AT&T', you need to write '", ["code", "AT&T"], "'. You even need to\u000aescape ampersands within URLs. Thus, if you want to link to:"], + ["pre", ["code", "http://images.google.com/images?num=30&q=larry+bird\u000a"]], + ["p", "you need to encode the URL as:"], + ["pre", ["code", "http://images.google.com/images?num=30&q=larry+bird\u000a"]], + ["p", "in your anchor tag ", ["code", "href"], " attribute. Needless to say, this is easy to\u000aforget, and is probably the single most common source of HTML validation\u000aerrors in otherwise well-marked-up web sites."], + ["p", "Markdown allows you to use these characters naturally, taking care of\u000aall the necessary escaping for you. If you use an ampersand as part of\u000aan HTML entity, it remains unchanged; otherwise it will be translated\u000ainto ", ["code", "&"], "."], + ["p", "So, if you want to include a copyright symbol in your article, you can write:"], + ["pre", ["code", "©\u000a"]], + ["p", "and Markdown will leave it alone. But if you write:"], + ["pre", ["code", "AT&T\u000a"]], + ["p", "Markdown will translate it to:"], + ["pre", ["code", "AT&T\u000a"]], + ["p", "Similarly, because Markdown supports ", ["a", { + "href": "#html" + }, + "inline HTML"], ", if you use\u000aangle brackets as delimiters for HTML tags, Markdown will treat them as\u000asuch. But if you write:"], + ["pre", ["code", "4 < 5\u000a"]], + ["p", "Markdown will translate it to:"], + ["pre", ["code", "4 < 5\u000a"]], + ["p", "However, inside Markdown code spans and blocks, angle brackets and\u000aampersands are ", ["em", "always"], " encoded automatically. This makes it easy to use\u000aMarkdown to write about HTML code. (As opposed to raw HTML, which is a\u000aterrible format for writing about HTML syntax, because every single ", ["code", "<"], "\u000aand ", ["code", "&"], " in your example code needs to be escaped.)"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["h2", { + "id": "block" +}, +"Block Elements"], "\u000a\u000a", ["h3", { + "id": "p" +}, +"Paragraphs and Line Breaks"], "\u000a\u000a", ["p", "A paragraph is simply one or more consecutive lines of text, separated\u000aby one or more blank lines. (A blank line is any line that looks like a\u000ablank line -- a line containing nothing but spaces or tabs is considered\u000ablank.) Normal paragraphs should not be intended with spaces or tabs."], + ["p", "The implication of the \"one or more consecutive lines of text\" rule is\u000athat Markdown supports \"hard-wrapped\" text paragraphs. This differs\u000asignificantly from most other text-to-HTML formatters (including Movable\u000aType's \"Convert Line Breaks\" option) which translate every line break\u000acharacter in a paragraph into a ", ["code", "
    "], " tag."], + ["p", "When you ", ["em", "do"], " want to insert a ", ["code", "
    "], " break tag using Markdown, you\u000aend a line with two or more spaces, then type return."], + ["p", "Yes, this takes a tad more effort to create a ", ["code", "
    "], ", but a simplistic\u000a\"every line break is a ", ["code", "
    "], "\" rule wouldn't work for Markdown.\u000aMarkdown's email-style ", ["a", { + "href": "#blockquote" + }, + "blockquoting"], " and multi-paragraph ", ["a", { + "href": "#list" + }, + "list items"], "\u000awork best -- and look better -- when you format them with hard breaks."], "\u000a\u000a", ["h3", { + "id": "header" +}, +"Headers"], "\u000a\u000a", ["p", "Markdown supports two styles of headers, ", ["a", { + "href": "http://docutils.sourceforge.net/mirror/setext.html" +}, +"Setext"], " and ", ["a", { + "href": "http://www.aaronsw.com/2002/atx/" +}, +"atx"], "."], + ["p", "Setext-style headers are \"underlined\" using equal signs (for first-level\u000aheaders) and dashes (for second-level headers). For example:"], + ["pre", ["code", "This is an H1\u000a=============\u000a\u000aThis is an H2\u000a-------------\u000a"]], + ["p", "Any number of underlining ", ["code", "="], "'s or ", ["code", "-"], "'s will work."], + ["p", "Atx-style headers use 1-6 hash characters at the start of the line,\u000acorresponding to header levels 1-6. For example:"], + ["pre", ["code", "# This is an H1\u000a\u000a## This is an H2\u000a\u000a###### This is an H6\u000a"]], + ["p", "Optionally, you may \"close\" atx-style headers. This is purely\u000acosmetic -- you can use this if you think it looks better. The\u000aclosing hashes don't even need to match the number of hashes\u000aused to open the header. (The number of opening hashes\u000adetermines the header level.) :"], + ["pre", ["code", "# This is an H1 #\u000a\u000a## This is an H2 ##\u000a\u000a### This is an H3 ######\u000a"]], "\u000a\u000a", ["h3", { + "id": "blockquote" +}, +"Blockquotes"], "\u000a\u000a", ["p", "Markdown uses email-style ", ["code", ">"], " characters for blockquoting. If you're\u000afamiliar with quoting passages of text in an email message, then you\u000aknow how to create a blockquote in Markdown. It looks best if you hard\u000awrap the text and put a ", ["code", ">"], " before every line:"], + ["pre", ["code", "> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\u000a> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\u000a> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\u000a> \u000a> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\u000a> id sem consectetuer libero luctus adipiscing.\u000a"]], + ["p", "Markdown allows you to be lazy and only put the ", ["code", ">"], " before the first\u000aline of a hard-wrapped paragraph:"], + ["pre", ["code", "> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\u000aconsectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\u000aVestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\u000a\u000a> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\u000aid sem consectetuer libero luctus adipiscing.\u000a"]], + ["p", "Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by\u000aadding additional levels of ", ["code", ">"], ":"], + ["pre", ["code", "> This is the first level of quoting.\u000a>\u000a> > This is nested blockquote.\u000a>\u000a> Back to the first level.\u000a"]], + ["p", "Blockquotes can contain other Markdown elements, including headers, lists,\u000aand code blocks:"], + ["pre", ["code", "> ## This is a header.\u000a> \u000a> 1. This is the first list item.\u000a> 2. This is the second list item.\u000a> \u000a> Here's some example code:\u000a> \u000a> return shell_exec(\"echo $input | $markdown_script\");\u000a"]], + ["p", "Any decent text editor should make email-style quoting easy. For\u000aexample, with BBEdit, you can make a selection and choose Increase\u000aQuote Level from the Text menu."], "\u000a\u000a", ["h3", { + "id": "list" +}, +"Lists"], "\u000a\u000a", ["p", "Markdown supports ordered (numbered) and unordered (bulleted) lists."], + ["p", "Unordered lists use asterisks, pluses, and hyphens -- interchangably\u000a-- as list markers:"], + ["pre", ["code", "* Red\u000a* Green\u000a* Blue\u000a"]], + ["p", "is equivalent to:"], + ["pre", ["code", "+ Red\u000a+ Green\u000a+ Blue\u000a"]], + ["p", "and:"], + ["pre", ["code", "- Red\u000a- Green\u000a- Blue\u000a"]], + ["p", "Ordered lists use numbers followed by periods:"], + ["pre", ["code", "1. Bird\u000a2. McHale\u000a3. Parish\u000a"]], + ["p", "It's important to note that the actual numbers you use to mark the\u000alist have no effect on the HTML output Markdown produces. The HTML\u000aMarkdown produces from the above list is:"], + ["pre", ["code", "
      \u000a
    1. Bird
    2. \u000a
    3. McHale
    4. \u000a
    5. Parish
    6. \u000a
    \u000a"]], + ["p", "If you instead wrote the list in Markdown like this:"], + ["pre", ["code", "1. Bird\u000a1. McHale\u000a1. Parish\u000a"]], + ["p", "or even:"], + ["pre", ["code", "3. Bird\u000a1. McHale\u000a8. Parish\u000a"]], + ["p", "you'd get the exact same HTML output. The point is, if you want to,\u000ayou can use ordinal numbers in your ordered Markdown lists, so that\u000athe numbers in your source match the numbers in your published HTML.\u000aBut if you want to be lazy, you don't have to."], + ["p", "If you do use lazy list numbering, however, you should still start the\u000alist with the number 1. At some point in the future, Markdown may support\u000astarting ordered lists at an arbitrary number."], + ["p", "List markers typically start at the left margin, but may be indented by\u000aup to three spaces. List markers must be followed by one or more spaces\u000aor a tab."], + ["p", "To make lists look nice, you can wrap items with hanging indents:"], + ["pre", ["code", "* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\u000a Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\u000a viverra nec, fringilla in, laoreet vitae, risus.\u000a* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\u000a Suspendisse id sem consectetuer libero luctus adipiscing.\u000a"]], + ["p", "But if you want to be lazy, you don't have to:"], + ["pre", ["code", "* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\u000aAliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\u000aviverra nec, fringilla in, laoreet vitae, risus.\u000a* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\u000aSuspendisse id sem consectetuer libero luctus adipiscing.\u000a"]], + ["p", "If list items are separated by blank lines, Markdown will wrap the\u000aitems in ", ["code", "

    "], " tags in the HTML output. For example, this input:"], + ["pre", ["code", "* Bird\u000a* Magic\u000a"]], + ["p", "will turn into:"], + ["pre", ["code", "

      \u000a
    • Bird
    • \u000a
    • Magic
    • \u000a
    \u000a"]], + ["p", "But this:"], + ["pre", ["code", "* Bird\u000a\u000a* Magic\u000a"]], + ["p", "will turn into:"], + ["pre", ["code", "
      \u000a
    • Bird

    • \u000a
    • Magic

    • \u000a
    \u000a"]], + ["p", "List items may consist of multiple paragraphs. Each subsequent\u000aparagraph in a list item must be intended by either 4 spaces\u000aor one tab:"], + ["pre", ["code", "1. This is a list item with two paragraphs. Lorem ipsum dolor\u000a sit amet, consectetuer adipiscing elit. Aliquam hendrerit\u000a mi posuere lectus.\u000a\u000a Vestibulum enim wisi, viverra nec, fringilla in, laoreet\u000a vitae, risus. Donec sit amet nisl. Aliquam semper ipsum\u000a sit amet velit.\u000a\u000a2. Suspendisse id sem consectetuer libero luctus adipiscing.\u000a"]], + ["p", "It looks nice if you indent every line of the subsequent\u000aparagraphs, but here again, Markdown will allow you to be\u000alazy:"], + ["pre", ["code", "* This is a list item with two paragraphs.\u000a\u000a This is the second paragraph in the list item. You're\u000aonly required to indent the first line. Lorem ipsum dolor\u000asit amet, consectetuer adipiscing elit.\u000a\u000a* Another item in the same list.\u000a"]], + ["p", "To put a blockquote within a list item, the blockquote's ", ["code", ">"], "\u000adelimiters need to be indented:"], + ["pre", ["code", "* A list item with a blockquote:\u000a\u000a > This is a blockquote\u000a > inside a list item.\u000a"]], + ["p", "To put a code block within a list item, the code block needs\u000ato be indented ", ["em", "twice"], " -- 8 spaces or two tabs:"], + ["pre", ["code", "* A list item with a code block:\u000a\u000a \u000a"]], + ["p", "It's worth noting that it's possible to trigger an ordered list by\u000aaccident, by writing something like this:"], + ["pre", ["code", "1986. What a great season.\u000a"]], + ["p", "In other words, a ", ["em", "number-period-space"], " sequence at the beginning of a\u000aline. To avoid this, you can backslash-escape the period:"], + ["pre", ["code", "1986\\. What a great season.\u000a"]], "\u000a\u000a", ["h3", { + "id": "precode" +}, +"Code Blocks"], "\u000a\u000a", ["p", "Pre-formatted code blocks are used for writing about programming or\u000amarkup source code. Rather than forming normal paragraphs, the lines\u000aof a code block are interpreted literally. Markdown wraps a code block\u000ain both ", ["code", "
    "], " and ", ["code", ""], " tags."],
    +    ["p", "To produce a code block in Markdown, simply indent every line of the\u000ablock by at least 4 spaces or 1 tab. For example, given this input:"],
    +    ["pre", ["code", "This is a normal paragraph:\u000a\u000a    This is a code block.\u000a"]],
    +    ["p", "Markdown will generate:"],
    +    ["pre", ["code", "

    This is a normal paragraph:

    \u000a\u000a
    This is a code block.\u000a
    \u000a"]], + ["p", "One level of indentation -- 4 spaces or 1 tab -- is removed from each\u000aline of the code block. For example, this:"], + ["pre", ["code", "Here is an example of AppleScript:\u000a\u000a tell application \"Foo\"\u000a beep\u000a end tell\u000a"]], + ["p", "will turn into:"], + ["pre", ["code", "

    Here is an example of AppleScript:

    \u000a\u000a
    tell application \"Foo\"\u000a    beep\u000aend tell\u000a
    \u000a"]], + ["p", "A code block continues until it reaches a line that is not indented\u000a(or the end of the article)."], + ["p", "Within a code block, ampersands (", ["code", "&"], ") and angle brackets (", ["code", "<"], " and ", ["code", ">"], ")\u000aare automatically converted into HTML entities. This makes it very\u000aeasy to include example HTML source code using Markdown -- just paste\u000ait and indent it, and Markdown will handle the hassle of encoding the\u000aampersands and angle brackets. For example, this:"], + ["pre", ["code", "
    \u000a © 2004 Foo Corporation\u000a
    \u000a"]], + ["p", "will turn into:"], + ["pre", ["code", "
    <div class=\"footer\">\u000a    &copy; 2004 Foo Corporation\u000a</div>\u000a
    \u000a"]], + ["p", "Regular Markdown syntax is not processed within code blocks. E.g.,\u000aasterisks are just literal asterisks within a code block. This means\u000ait's also easy to use Markdown to write about Markdown's own syntax."], "\u000a\u000a", ["h3", { + "id": "hr" +}, +"Horizontal Rules"], "\u000a\u000a", ["p", "You can produce a horizontal rule tag (", ["code", "
    "], ") by placing three or\u000amore hyphens, asterisks, or underscores on a line by themselves. If you\u000awish, you may use spaces between the hyphens or asterisks. Each of the\u000afollowing lines will produce a horizontal rule:"], + ["pre", ["code", "* * *\u000a\u000a***\u000a\u000a*****\u000a\u000a- - -\u000a\u000a---------------------------------------\u000a\u000a_ _ _\u000a"]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["h2", { + "id": "span" +}, +"Span Elements"], "\u000a\u000a", ["h3", { + "id": "link" +}, +"Links"], "\u000a\u000a", ["p", "Markdown supports two style of links: ", ["em", "inline"], " and ", ["em", "reference"], "."], + ["p", "In both styles, the link text is delimited by [square brackets]."], + ["p", "To create an inline link, use a set of regular parentheses immediately\u000aafter the link text's closing square bracket. Inside the parentheses,\u000aput the URL where you want the link to point, along with an ", ["em", "optional"], "\u000atitle for the link, surrounded in quotes. For example:"], + ["pre", ["code", "This is [an example](http://example.com/ \"Title\") inline link.\u000a\u000a[This link](http://example.net/) has no title attribute.\u000a"]], + ["p", "Will produce:"], + ["pre", ["code", "

    This is \u000aan example inline link.

    \u000a\u000a

    This link has no\u000atitle attribute.

    \u000a"]], + ["p", "If you're referring to a local resource on the same server, you can\u000ause relative paths:"], + ["pre", ["code", "See my [About](/about/) page for details.\u000a"]], + ["p", "Reference-style links use a second set of square brackets, inside\u000awhich you place a label of your choosing to identify the link:"], + ["pre", ["code", "This is [an example][id] reference-style link.\u000a"]], + ["p", "You can optionally use a space to separate the sets of brackets:"], + ["pre", ["code", "This is [an example] [id] reference-style link.\u000a"]], + ["p", "Then, anywhere in the document, you define your link label like this,\u000aon a line by itself:"], + ["pre", ["code", "[id]: http://example.com/ \"Optional Title Here\"\u000a"]], + ["p", "That is:"], + ["ul", ["li", "Square brackets containing the link identifier (optionally\u000aindented from the left margin using up to three spaces);"], + ["li", "followed by a colon;"], + ["li", "followed by one or more spaces (or tabs);"], + ["li", "followed by the URL for the link;"], + ["li", "optionally followed by a title attribute for the link, enclosed\u000ain double or single quotes."]], + ["p", "The link URL may, optionally, be surrounded by angle brackets:"], + ["pre", ["code", "[id]: \"Optional Title Here\"\u000a"]], + ["p", "You can put the title attribute on the next line and use extra spaces\u000aor tabs for padding, which tends to look better with longer URLs:"], + ["pre", ["code", "[id]: http://example.com/longish/path/to/resource/here\u000a \"Optional Title Here\"\u000a"]], + ["p", "Link definitions are only used for creating links during Markdown\u000aprocessing, and are stripped from your document in the HTML output."], + ["p", "Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are ", ["em", "not"], " case sensitive. E.g. these two links:"], + ["pre", ["code", "[link text][a]\u000a[link text][A]\u000a"]], + ["p", "are equivalent."], + ["p", "The ", ["em", "implicit link name"], " shortcut allows you to omit the name of the\u000alink, in which case the link text itself is used as the name.\u000aJust use an empty set of square brackets -- e.g., to link the word\u000a\"Google\" to the google.com web site, you could simply write:"], + ["pre", ["code", "[Google][]\u000a"]], + ["p", "And then define the link:"], + ["pre", ["code", "[Google]: http://google.com/\u000a"]], + ["p", "Because link names may contain spaces, this shortcut even works for\u000amultiple words in the link text:"], + ["pre", ["code", "Visit [Daring Fireball][] for more information.\u000a"]], + ["p", "And then define the link:"], + ["pre", ["code", "[Daring Fireball]: http://daringfireball.net/\u000a"]], + ["p", "Link definitions can be placed anywhere in your Markdown document. I\u000atend to put them immediately after each paragraph in which they're\u000aused, but if you want, you can put them all at the end of your\u000adocument, sort of like footnotes."], + ["p", "Here's an example of reference links in action:"], + ["pre", ["code", "I get 10 times more traffic from [Google] [1] than from\u000a[Yahoo] [2] or [MSN] [3].\u000a\u000a [1]: http://google.com/ \"Google\"\u000a [2]: http://search.yahoo.com/ \"Yahoo Search\"\u000a [3]: http://search.msn.com/ \"MSN Search\"\u000a"]], + ["p", "Using the implicit link name shortcut, you could instead write:"], + ["pre", ["code", "I get 10 times more traffic from [Google][] than from\u000a[Yahoo][] or [MSN][].\u000a\u000a [google]: http://google.com/ \"Google\"\u000a [yahoo]: http://search.yahoo.com/ \"Yahoo Search\"\u000a [msn]: http://search.msn.com/ \"MSN Search\"\u000a"]], + ["p", "Both of the above examples will produce the following HTML output:"], + ["pre", ["code", "

    I get 10 times more traffic from Google than from\u000aYahoo\u000aor MSN.

    \u000a"]], + ["p", "For comparison, here is the same paragraph written using\u000aMarkdown's inline link style:"], + ["pre", ["code", "I get 10 times more traffic from [Google](http://google.com/ \"Google\")\u000athan from [Yahoo](http://search.yahoo.com/ \"Yahoo Search\") or\u000a[MSN](http://search.msn.com/ \"MSN Search\").\u000a"]], + ["p", "The point of reference-style links is not that they're easier to\u000awrite. The point is that with reference-style links, your document\u000asource is vastly more readable. Compare the above examples: using\u000areference-style links, the paragraph itself is only 81 characters\u000along; with inline-style links, it's 176 characters; and as raw HTML,\u000ait's 234 characters. In the raw HTML, there's more markup than there\u000ais text."], + ["p", "With Markdown's reference-style links, a source document much more\u000aclosely resembles the final output, as rendered in a browser. By\u000aallowing you to move the markup-related metadata out of the paragraph,\u000ayou can add links without interrupting the narrative flow of your\u000aprose."], "\u000a\u000a", ["h3", { + "id": "em" +}, +"Emphasis"], "\u000a\u000a", ["p", "Markdown treats asterisks (", ["code", "*"], ") and underscores (", ["code", "_"], ") as indicators of\u000aemphasis. Text wrapped with one ", ["code", "*"], " or ", ["code", "_"], " will be wrapped with an\u000aHTML ", ["code", ""], " tag; double ", ["code", "*"], "'s or ", ["code", "_"], "'s will be wrapped with an HTML\u000a", ["code", ""], " tag. E.g., this input:"], + ["pre", ["code", "*single asterisks*\u000a\u000a_single underscores_\u000a\u000a**double asterisks**\u000a\u000a__double underscores__\u000a"]], + ["p", "will produce:"], + ["pre", ["code", "single asterisks\u000a\u000asingle underscores\u000a\u000adouble asterisks\u000a\u000adouble underscores\u000a"]], + ["p", "You can use whichever style you prefer; the lone restriction is that\u000athe same character must be used to open and close an emphasis span."], + ["p", "Emphasis can be used in the middle of a word:"], + ["pre", ["code", "un*fucking*believable\u000a"]], + ["p", "But if you surround an ", ["code", "*"], " or ", ["code", "_"], " with spaces, it'll be treated as a\u000aliteral asterisk or underscore."], + ["p", "To produce a literal asterisk or underscore at a position where it\u000awould otherwise be used as an emphasis delimiter, you can backslash\u000aescape it:"], + ["pre", ["code", "\\*this text is surrounded by literal asterisks\\*\u000a"]], "\u000a\u000a", ["h3", { + "id": "code" +}, +"Code"], "\u000a\u000a", ["p", "To indicate a span of code, wrap it with backtick quotes (", ["code", "`"], ").\u000aUnlike a pre-formatted code block, a code span indicates code within a\u000anormal paragraph. For example:"], + ["pre", ["code", "Use the `printf()` function.\u000a"]], + ["p", "will produce:"], + ["pre", ["code", "

    Use the printf() function.

    \u000a"]], + ["p", "To include a literal backtick character within a code span, you can use\u000amultiple backticks as the opening and closing delimiters:"], + ["pre", ["code", "``There is a literal backtick (`) here.``\u000a"]], + ["p", "which will produce this:"], + ["pre", ["code", "

    There is a literal backtick (`) here.

    \u000a"]], + ["p", "The backtick delimiters surrounding a code span may include spaces --\u000aone after the opening, one before the closing. This allows you to place\u000aliteral backtick characters at the beginning or end of a code span:"], + ["pre", ["code", "A single backtick in a code span: `` ` ``\u000a\u000aA backtick-delimited string in a code span: `` `foo` ``\u000a"]], + ["p", "will produce:"], + ["pre", ["code", "

    A single backtick in a code span: `

    \u000a\u000a

    A backtick-delimited string in a code span: `foo`

    \u000a"]], + ["p", "With a code span, ampersands and angle brackets are encoded as HTML\u000aentities automatically, which makes it easy to include example HTML\u000atags. Markdown will turn this:"], + ["pre", ["code", "Please don't use any `` tags.\u000a"]], + ["p", "into:"], + ["pre", ["code", "

    Please don't use any <blink> tags.

    \u000a"]], + ["p", "You can write this:"], + ["pre", ["code", "`—` is the decimal-encoded equivalent of `—`.\u000a"]], + ["p", "to produce:"], + ["pre", ["code", "

    &#8212; is the decimal-encoded\u000aequivalent of &mdash;.

    \u000a"]], "\u000a\u000a", ["h3", { + "id": "img" +}, +"Images"], "\u000a\u000a", ["p", "Admittedly, it's fairly difficult to devise a \"natural\" syntax for\u000aplacing images into a plain text document format."], + ["p", "Markdown uses an image syntax that is intended to resemble the syntax\u000afor links, allowing for two styles: ", ["em", "inline"], " and ", ["em", "reference"], "."], + ["p", "Inline image syntax looks like this:"], + ["pre", ["code", "![Alt text](/path/to/img.jpg)\u000a\u000a![Alt text](/path/to/img.jpg \"Optional title\")\u000a"]], + ["p", "That is:"], + ["ul", ["li", "An exclamation mark: ", ["code", "!"], ";"], + ["li", "followed by a set of square brackets, containing the ", ["code", "alt"], "\u000aattribute text for the image;"], + ["li", "followed by a set of parentheses, containing the URL or path to\u000athe image, and an optional ", ["code", "title"], " attribute enclosed in double\u000aor single quotes."]], + ["p", "Reference-style image syntax looks like this:"], + ["pre", ["code", "![Alt text][id]\u000a"]], + ["p", "Where \"id\" is the name of a defined image reference. Image references\u000aare defined using syntax identical to link references:"], + ["pre", ["code", "[id]: url/to/image \"Optional title attribute\"\u000a"]], + ["p", "As of this writing, Markdown has no syntax for specifying the\u000adimensions of an image; if this is important to you, you can simply\u000ause regular HTML ", ["code", ""], " tags."], "\u000a\u000a", ["hr"], "\u000a\u000a", ["h2", { + "id": "misc" +}, +"Miscellaneous"], "\u000a\u000a", ["h3", { + "id": "autolink" +}, +"Automatic Links"], "\u000a\u000a", ["p", "Markdown supports a shortcut style for creating \"automatic\" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:"], + ["pre", ["code", "\u000a"]], + ["p", "Markdown will turn this into:"], + ["pre", ["code", "http://example.com/\u000a"]], + ["p", "Automatic links for email addresses work similarly, except that\u000aMarkdown will also perform a bit of randomized decimal and hex\u000aentity-encoding to help obscure your address from address-harvesting\u000aspambots. For example, Markdown will turn this:"], + ["pre", ["code", "\u000a"]], + ["p", "into something like this:"], + ["pre", ["code", "address@exa\u000ample.com\u000a"]], + ["p", "which will render in a browser as a clickable link to \"address@example.com\"."], + ["p", "(This sort of entity-encoding trick will indeed fool many, if not\u000amost, address-harvesting bots, but it definitely won't fool all of\u000athem. It's better than nothing, but an address published in this way\u000awill probably eventually start receiving spam.)"], "\u000a\u000a", ["h3", { + "id": "backslash" +}, +"Backslash Escapes"], "\u000a\u000a", ["p", "Markdown allows you to use backslash escapes to generate literal\u000acharacters which would otherwise have special meaning in Markdown's\u000aformatting syntax. For example, if you wanted to surround a word with\u000aliteral asterisks (instead of an HTML ", ["code", ""], " tag), you can backslashes\u000abefore the asterisks, like this:"], + ["pre", ["code", "\\*literal asterisks\\*\u000a"]], + ["p", "Markdown provides backslash escapes for the following characters:"], + ["pre", ["code", "\\ backslash\u000a` backtick\u000a* asterisk\u000a_ underscore\u000a{} curly braces\u000a[] square brackets\u000a() parentheses\u000a# hash mark\u000a+ plus sign\u000a- minus sign (hyphen)\u000a. dot\u000a! exclamation mark\u000a"]]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.text new file mode 100644 index 000000000..57360a16c --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.text @@ -0,0 +1,888 @@ +Markdown: Syntax +================ + + + + +* [Overview](#overview) + * [Philosophy](#philosophy) + * [Inline HTML](#html) + * [Automatic Escaping for Special Characters](#autoescape) +* [Block Elements](#block) + * [Paragraphs and Line Breaks](#p) + * [Headers](#header) + * [Blockquotes](#blockquote) + * [Lists](#list) + * [Code Blocks](#precode) + * [Horizontal Rules](#hr) +* [Span Elements](#span) + * [Links](#link) + * [Emphasis](#em) + * [Code](#code) + * [Images](#img) +* [Miscellaneous](#misc) + * [Backslash Escapes](#backslash) + * [Automatic Links](#autolink) + + +**Note:** This document is itself written using Markdown; you +can [see the source for it by adding '.text' to the URL][src]. + + [src]: /projects/markdown/syntax.text + +* * * + +

    Overview

    + +

    Philosophy

    + +Markdown is intended to be as easy-to-read and easy-to-write as is feasible. + +Readability, however, is emphasized above all else. A Markdown-formatted +document should be publishable as-is, as plain text, without looking +like it's been marked up with tags or formatting instructions. While +Markdown's syntax has been influenced by several existing text-to-HTML +filters -- including [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4], +[Grutatext] [5], and [EtText] [6] -- the single biggest source of +inspiration for Markdown's syntax is the format of plain text email. + + [1]: http://docutils.sourceforge.net/mirror/setext.html + [2]: http://www.aaronsw.com/2002/atx/ + [3]: http://textism.com/tools/textile/ + [4]: http://docutils.sourceforge.net/rst.html + [5]: http://www.triptico.com/software/grutatxt.html + [6]: http://ettext.taint.org/doc/ + +To this end, Markdown's syntax is comprised entirely of punctuation +characters, which punctuation characters have been carefully chosen so +as to look like what they mean. E.g., asterisks around a word actually +look like \*emphasis\*. Markdown lists look like, well, lists. Even +blockquotes look like quoted passages of text, assuming you've ever +used email. + + + +

    Inline HTML

    + +Markdown's syntax is intended for one purpose: to be used as a +format for *writing* for the web. + +Markdown is not a replacement for HTML, or even close to it. Its +syntax is very small, corresponding only to a very small subset of +HTML tags. The idea is *not* to create a syntax that makes it easier +to insert HTML tags. In my opinion, HTML tags are already easy to +insert. The idea for Markdown is to make it easy to read, write, and +edit prose. HTML is a *publishing* format; Markdown is a *writing* +format. Thus, Markdown's formatting syntax only addresses issues that +can be conveyed in plain text. + +For any markup that is not covered by Markdown's syntax, you simply +use HTML itself. There's no need to preface it or delimit it to +indicate that you're switching from Markdown to HTML; you just use +the tags. + +The only restrictions are that block-level HTML elements -- e.g. `
    `, +``, `
    `, `

    `, etc. -- must be separated from surrounding +content by blank lines, and the start and end tags of the block should +not be indented with tabs or spaces. Markdown is smart enough not +to add extra (unwanted) `

    ` tags around HTML block-level tags. + +For example, to add an HTML table to a Markdown article: + + This is a regular paragraph. + +

    + + + +
    Foo
    + + This is another regular paragraph. + +Note that Markdown formatting syntax is not processed within block-level +HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an +HTML block. + +Span-level HTML tags -- e.g. ``, ``, or `` -- can be +used anywhere in a Markdown paragraph, list item, or header. If you +want, you can even use HTML tags instead of Markdown formatting; e.g. if +you'd prefer to use HTML `` or `` tags instead of Markdown's +link or image syntax, go right ahead. + +Unlike block-level HTML tags, Markdown syntax *is* processed within +span-level tags. + + +

    Automatic Escaping for Special Characters

    + +In HTML, there are two characters that demand special treatment: `<` +and `&`. Left angle brackets are used to start tags; ampersands are +used to denote HTML entities. If you want to use them as literal +characters, you must escape them as entities, e.g. `<`, and +`&`. + +Ampersands in particular are bedeviling for web writers. If you want to +write about 'AT&T', you need to write '`AT&T`'. You even need to +escape ampersands within URLs. Thus, if you want to link to: + + http://images.google.com/images?num=30&q=larry+bird + +you need to encode the URL as: + + http://images.google.com/images?num=30&q=larry+bird + +in your anchor tag `href` attribute. Needless to say, this is easy to +forget, and is probably the single most common source of HTML validation +errors in otherwise well-marked-up web sites. + +Markdown allows you to use these characters naturally, taking care of +all the necessary escaping for you. If you use an ampersand as part of +an HTML entity, it remains unchanged; otherwise it will be translated +into `&`. + +So, if you want to include a copyright symbol in your article, you can write: + + © + +and Markdown will leave it alone. But if you write: + + AT&T + +Markdown will translate it to: + + AT&T + +Similarly, because Markdown supports [inline HTML](#html), if you use +angle brackets as delimiters for HTML tags, Markdown will treat them as +such. But if you write: + + 4 < 5 + +Markdown will translate it to: + + 4 < 5 + +However, inside Markdown code spans and blocks, angle brackets and +ampersands are *always* encoded automatically. This makes it easy to use +Markdown to write about HTML code. (As opposed to raw HTML, which is a +terrible format for writing about HTML syntax, because every single `<` +and `&` in your example code needs to be escaped.) + + +* * * + + +

    Block Elements

    + + +

    Paragraphs and Line Breaks

    + +A paragraph is simply one or more consecutive lines of text, separated +by one or more blank lines. (A blank line is any line that looks like a +blank line -- a line containing nothing but spaces or tabs is considered +blank.) Normal paragraphs should not be intended with spaces or tabs. + +The implication of the "one or more consecutive lines of text" rule is +that Markdown supports "hard-wrapped" text paragraphs. This differs +significantly from most other text-to-HTML formatters (including Movable +Type's "Convert Line Breaks" option) which translate every line break +character in a paragraph into a `
    ` tag. + +When you *do* want to insert a `
    ` break tag using Markdown, you +end a line with two or more spaces, then type return. + +Yes, this takes a tad more effort to create a `
    `, but a simplistic +"every line break is a `
    `" rule wouldn't work for Markdown. +Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l] +work best -- and look better -- when you format them with hard breaks. + + [bq]: #blockquote + [l]: #list + + + + + +Markdown supports two styles of headers, [Setext] [1] and [atx] [2]. + +Setext-style headers are "underlined" using equal signs (for first-level +headers) and dashes (for second-level headers). For example: + + This is an H1 + ============= + + This is an H2 + ------------- + +Any number of underlining `=`'s or `-`'s will work. + +Atx-style headers use 1-6 hash characters at the start of the line, +corresponding to header levels 1-6. For example: + + # This is an H1 + + ## This is an H2 + + ###### This is an H6 + +Optionally, you may "close" atx-style headers. This is purely +cosmetic -- you can use this if you think it looks better. The +closing hashes don't even need to match the number of hashes +used to open the header. (The number of opening hashes +determines the header level.) : + + # This is an H1 # + + ## This is an H2 ## + + ### This is an H3 ###### + + +

    Blockquotes

    + +Markdown uses email-style `>` characters for blockquoting. If you're +familiar with quoting passages of text in an email message, then you +know how to create a blockquote in Markdown. It looks best if you hard +wrap the text and put a `>` before every line: + + > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet, + > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. + > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. + > + > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse + > id sem consectetuer libero luctus adipiscing. + +Markdown allows you to be lazy and only put the `>` before the first +line of a hard-wrapped paragraph: + + > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet, + consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. + Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. + + > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse + id sem consectetuer libero luctus adipiscing. + +Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by +adding additional levels of `>`: + + > This is the first level of quoting. + > + > > This is nested blockquote. + > + > Back to the first level. + +Blockquotes can contain other Markdown elements, including headers, lists, +and code blocks: + + > ## This is a header. + > + > 1. This is the first list item. + > 2. This is the second list item. + > + > Here's some example code: + > + > return shell_exec("echo $input | $markdown_script"); + +Any decent text editor should make email-style quoting easy. For +example, with BBEdit, you can make a selection and choose Increase +Quote Level from the Text menu. + + +

    Lists

    + +Markdown supports ordered (numbered) and unordered (bulleted) lists. + +Unordered lists use asterisks, pluses, and hyphens -- interchangably +-- as list markers: + + * Red + * Green + * Blue + +is equivalent to: + + + Red + + Green + + Blue + +and: + + - Red + - Green + - Blue + +Ordered lists use numbers followed by periods: + + 1. Bird + 2. McHale + 3. Parish + +It's important to note that the actual numbers you use to mark the +list have no effect on the HTML output Markdown produces. The HTML +Markdown produces from the above list is: + +
      +
    1. Bird
    2. +
    3. McHale
    4. +
    5. Parish
    6. +
    + +If you instead wrote the list in Markdown like this: + + 1. Bird + 1. McHale + 1. Parish + +or even: + + 3. Bird + 1. McHale + 8. Parish + +you'd get the exact same HTML output. The point is, if you want to, +you can use ordinal numbers in your ordered Markdown lists, so that +the numbers in your source match the numbers in your published HTML. +But if you want to be lazy, you don't have to. + +If you do use lazy list numbering, however, you should still start the +list with the number 1. At some point in the future, Markdown may support +starting ordered lists at an arbitrary number. + +List markers typically start at the left margin, but may be indented by +up to three spaces. List markers must be followed by one or more spaces +or a tab. + +To make lists look nice, you can wrap items with hanging indents: + + * Lorem ipsum dolor sit amet, consectetuer adipiscing elit. + Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, + viverra nec, fringilla in, laoreet vitae, risus. + * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. + Suspendisse id sem consectetuer libero luctus adipiscing. + +But if you want to be lazy, you don't have to: + + * Lorem ipsum dolor sit amet, consectetuer adipiscing elit. + Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, + viverra nec, fringilla in, laoreet vitae, risus. + * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. + Suspendisse id sem consectetuer libero luctus adipiscing. + +If list items are separated by blank lines, Markdown will wrap the +items in `

    ` tags in the HTML output. For example, this input: + + * Bird + * Magic + +will turn into: + +

      +
    • Bird
    • +
    • Magic
    • +
    + +But this: + + * Bird + + * Magic + +will turn into: + +
      +
    • Bird

    • +
    • Magic

    • +
    + +List items may consist of multiple paragraphs. Each subsequent +paragraph in a list item must be intended by either 4 spaces +or one tab: + + 1. This is a list item with two paragraphs. Lorem ipsum dolor + sit amet, consectetuer adipiscing elit. Aliquam hendrerit + mi posuere lectus. + + Vestibulum enim wisi, viverra nec, fringilla in, laoreet + vitae, risus. Donec sit amet nisl. Aliquam semper ipsum + sit amet velit. + + 2. Suspendisse id sem consectetuer libero luctus adipiscing. + +It looks nice if you indent every line of the subsequent +paragraphs, but here again, Markdown will allow you to be +lazy: + + * This is a list item with two paragraphs. + + This is the second paragraph in the list item. You're + only required to indent the first line. Lorem ipsum dolor + sit amet, consectetuer adipiscing elit. + + * Another item in the same list. + +To put a blockquote within a list item, the blockquote's `>` +delimiters need to be indented: + + * A list item with a blockquote: + + > This is a blockquote + > inside a list item. + +To put a code block within a list item, the code block needs +to be indented *twice* -- 8 spaces or two tabs: + + * A list item with a code block: + + + + +It's worth noting that it's possible to trigger an ordered list by +accident, by writing something like this: + + 1986. What a great season. + +In other words, a *number-period-space* sequence at the beginning of a +line. To avoid this, you can backslash-escape the period: + + 1986\. What a great season. + + + +

    Code Blocks

    + +Pre-formatted code blocks are used for writing about programming or +markup source code. Rather than forming normal paragraphs, the lines +of a code block are interpreted literally. Markdown wraps a code block +in both `
    ` and `` tags.
    +
    +To produce a code block in Markdown, simply indent every line of the
    +block by at least 4 spaces or 1 tab. For example, given this input:
    +
    +    This is a normal paragraph:
    +
    +        This is a code block.
    +
    +Markdown will generate:
    +
    +    

    This is a normal paragraph:

    + +
    This is a code block.
    +    
    + +One level of indentation -- 4 spaces or 1 tab -- is removed from each +line of the code block. For example, this: + + Here is an example of AppleScript: + + tell application "Foo" + beep + end tell + +will turn into: + +

    Here is an example of AppleScript:

    + +
    tell application "Foo"
    +        beep
    +    end tell
    +    
    + +A code block continues until it reaches a line that is not indented +(or the end of the article). + +Within a code block, ampersands (`&`) and angle brackets (`<` and `>`) +are automatically converted into HTML entities. This makes it very +easy to include example HTML source code using Markdown -- just paste +it and indent it, and Markdown will handle the hassle of encoding the +ampersands and angle brackets. For example, this: + + + +will turn into: + +
    <div class="footer">
    +        &copy; 2004 Foo Corporation
    +    </div>
    +    
    + +Regular Markdown syntax is not processed within code blocks. E.g., +asterisks are just literal asterisks within a code block. This means +it's also easy to use Markdown to write about Markdown's own syntax. + + + +

    Horizontal Rules

    + +You can produce a horizontal rule tag (`
    `) by placing three or +more hyphens, asterisks, or underscores on a line by themselves. If you +wish, you may use spaces between the hyphens or asterisks. Each of the +following lines will produce a horizontal rule: + + * * * + + *** + + ***** + + - - - + + --------------------------------------- + + _ _ _ + + +* * * + +

    Span Elements

    + + + +Markdown supports two style of links: *inline* and *reference*. + +In both styles, the link text is delimited by [square brackets]. + +To create an inline link, use a set of regular parentheses immediately +after the link text's closing square bracket. Inside the parentheses, +put the URL where you want the link to point, along with an *optional* +title for the link, surrounded in quotes. For example: + + This is [an example](http://example.com/ "Title") inline link. + + [This link](http://example.net/) has no title attribute. + +Will produce: + +

    This is + an example inline link.

    + +

    This link has no + title attribute.

    + +If you're referring to a local resource on the same server, you can +use relative paths: + + See my [About](/about/) page for details. + +Reference-style links use a second set of square brackets, inside +which you place a label of your choosing to identify the link: + + This is [an example][id] reference-style link. + +You can optionally use a space to separate the sets of brackets: + + This is [an example] [id] reference-style link. + +Then, anywhere in the document, you define your link label like this, +on a line by itself: + + [id]: http://example.com/ "Optional Title Here" + +That is: + +* Square brackets containing the link identifier (optionally + indented from the left margin using up to three spaces); +* followed by a colon; +* followed by one or more spaces (or tabs); +* followed by the URL for the link; +* optionally followed by a title attribute for the link, enclosed + in double or single quotes. + +The link URL may, optionally, be surrounded by angle brackets: + + [id]: "Optional Title Here" + +You can put the title attribute on the next line and use extra spaces +or tabs for padding, which tends to look better with longer URLs: + + [id]: http://example.com/longish/path/to/resource/here + "Optional Title Here" + +Link definitions are only used for creating links during Markdown +processing, and are stripped from your document in the HTML output. + +Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links: + + [link text][a] + [link text][A] + +are equivalent. + +The *implicit link name* shortcut allows you to omit the name of the +link, in which case the link text itself is used as the name. +Just use an empty set of square brackets -- e.g., to link the word +"Google" to the google.com web site, you could simply write: + + [Google][] + +And then define the link: + + [Google]: http://google.com/ + +Because link names may contain spaces, this shortcut even works for +multiple words in the link text: + + Visit [Daring Fireball][] for more information. + +And then define the link: + + [Daring Fireball]: http://daringfireball.net/ + +Link definitions can be placed anywhere in your Markdown document. I +tend to put them immediately after each paragraph in which they're +used, but if you want, you can put them all at the end of your +document, sort of like footnotes. + +Here's an example of reference links in action: + + I get 10 times more traffic from [Google] [1] than from + [Yahoo] [2] or [MSN] [3]. + + [1]: http://google.com/ "Google" + [2]: http://search.yahoo.com/ "Yahoo Search" + [3]: http://search.msn.com/ "MSN Search" + +Using the implicit link name shortcut, you could instead write: + + I get 10 times more traffic from [Google][] than from + [Yahoo][] or [MSN][]. + + [google]: http://google.com/ "Google" + [yahoo]: http://search.yahoo.com/ "Yahoo Search" + [msn]: http://search.msn.com/ "MSN Search" + +Both of the above examples will produce the following HTML output: + +

    I get 10 times more traffic from Google than from + Yahoo + or MSN.

    + +For comparison, here is the same paragraph written using +Markdown's inline link style: + + I get 10 times more traffic from [Google](http://google.com/ "Google") + than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or + [MSN](http://search.msn.com/ "MSN Search"). + +The point of reference-style links is not that they're easier to +write. The point is that with reference-style links, your document +source is vastly more readable. Compare the above examples: using +reference-style links, the paragraph itself is only 81 characters +long; with inline-style links, it's 176 characters; and as raw HTML, +it's 234 characters. In the raw HTML, there's more markup than there +is text. + +With Markdown's reference-style links, a source document much more +closely resembles the final output, as rendered in a browser. By +allowing you to move the markup-related metadata out of the paragraph, +you can add links without interrupting the narrative flow of your +prose. + + +

    Emphasis

    + +Markdown treats asterisks (`*`) and underscores (`_`) as indicators of +emphasis. Text wrapped with one `*` or `_` will be wrapped with an +HTML `` tag; double `*`'s or `_`'s will be wrapped with an HTML +`` tag. E.g., this input: + + *single asterisks* + + _single underscores_ + + **double asterisks** + + __double underscores__ + +will produce: + + single asterisks + + single underscores + + double asterisks + + double underscores + +You can use whichever style you prefer; the lone restriction is that +the same character must be used to open and close an emphasis span. + +Emphasis can be used in the middle of a word: + + un*fucking*believable + +But if you surround an `*` or `_` with spaces, it'll be treated as a +literal asterisk or underscore. + +To produce a literal asterisk or underscore at a position where it +would otherwise be used as an emphasis delimiter, you can backslash +escape it: + + \*this text is surrounded by literal asterisks\* + + + +

    Code

    + +To indicate a span of code, wrap it with backtick quotes (`` ` ``). +Unlike a pre-formatted code block, a code span indicates code within a +normal paragraph. For example: + + Use the `printf()` function. + +will produce: + +

    Use the printf() function.

    + +To include a literal backtick character within a code span, you can use +multiple backticks as the opening and closing delimiters: + + ``There is a literal backtick (`) here.`` + +which will produce this: + +

    There is a literal backtick (`) here.

    + +The backtick delimiters surrounding a code span may include spaces -- +one after the opening, one before the closing. This allows you to place +literal backtick characters at the beginning or end of a code span: + + A single backtick in a code span: `` ` `` + + A backtick-delimited string in a code span: `` `foo` `` + +will produce: + +

    A single backtick in a code span: `

    + +

    A backtick-delimited string in a code span: `foo`

    + +With a code span, ampersands and angle brackets are encoded as HTML +entities automatically, which makes it easy to include example HTML +tags. Markdown will turn this: + + Please don't use any `` tags. + +into: + +

    Please don't use any <blink> tags.

    + +You can write this: + + `—` is the decimal-encoded equivalent of `—`. + +to produce: + +

    &#8212; is the decimal-encoded + equivalent of &mdash;.

    + + + +

    Images

    + +Admittedly, it's fairly difficult to devise a "natural" syntax for +placing images into a plain text document format. + +Markdown uses an image syntax that is intended to resemble the syntax +for links, allowing for two styles: *inline* and *reference*. + +Inline image syntax looks like this: + + ![Alt text](/path/to/img.jpg) + + ![Alt text](/path/to/img.jpg "Optional title") + +That is: + +* An exclamation mark: `!`; +* followed by a set of square brackets, containing the `alt` + attribute text for the image; +* followed by a set of parentheses, containing the URL or path to + the image, and an optional `title` attribute enclosed in double + or single quotes. + +Reference-style image syntax looks like this: + + ![Alt text][id] + +Where "id" is the name of a defined image reference. Image references +are defined using syntax identical to link references: + + [id]: url/to/image "Optional title attribute" + +As of this writing, Markdown has no syntax for specifying the +dimensions of an image; if this is important to you, you can simply +use regular HTML `` tags. + + +* * * + + +

    Miscellaneous

    + + + +Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this: + + + +Markdown will turn this into: + + http://example.com/ + +Automatic links for email addresses work similarly, except that +Markdown will also perform a bit of randomized decimal and hex +entity-encoding to help obscure your address from address-harvesting +spambots. For example, Markdown will turn this: + + + +into something like this: + + address@exa + mple.com + +which will render in a browser as a clickable link to "address@example.com". + +(This sort of entity-encoding trick will indeed fool many, if not +most, address-harvesting bots, but it definitely won't fool all of +them. It's better than nothing, but an address published in this way +will probably eventually start receiving spam.) + + + +

    Backslash Escapes

    + +Markdown allows you to use backslash escapes to generate literal +characters which would otherwise have special meaning in Markdown's +formatting syntax. For example, if you wanted to surround a word with +literal asterisks (instead of an HTML `` tag), you can backslashes +before the asterisks, like this: + + \*literal asterisks\* + +Markdown provides backslash escapes for the following characters: + + \ backslash + ` backtick + * asterisk + _ underscore + {} curly braces + [] square brackets + () parentheses + # hash mark + + plus sign + - minus sign (hyphen) + . dot + ! exclamation mark + diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.xhtml new file mode 100644 index 000000000..5c01306cc --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.xhtml @@ -0,0 +1,942 @@ +

    Markdown: Syntax

    + + + + + +

    Note: This document is itself written using Markdown; you +can see the source for it by adding '.text' to the URL.

    + +
    + +

    Overview

    + +

    Philosophy

    + +

    Markdown is intended to be as easy-to-read and easy-to-write as is feasible.

    + +

    Readability, however, is emphasized above all else. A Markdown-formatted +document should be publishable as-is, as plain text, without looking +like it's been marked up with tags or formatting instructions. While +Markdown's syntax has been influenced by several existing text-to-HTML +filters -- including Setext, atx, Textile, reStructuredText, +Grutatext, and EtText -- the single biggest source of +inspiration for Markdown's syntax is the format of plain text email.

    + +

    To this end, Markdown's syntax is comprised entirely of punctuation +characters, which punctuation characters have been carefully chosen so +as to look like what they mean. E.g., asterisks around a word actually +look like *emphasis*. Markdown lists look like, well, lists. Even +blockquotes look like quoted passages of text, assuming you've ever +used email.

    + +

    Inline HTML

    + +

    Markdown's syntax is intended for one purpose: to be used as a +format for writing for the web.

    + +

    Markdown is not a replacement for HTML, or even close to it. Its +syntax is very small, corresponding only to a very small subset of +HTML tags. The idea is not to create a syntax that makes it easier +to insert HTML tags. In my opinion, HTML tags are already easy to +insert. The idea for Markdown is to make it easy to read, write, and +edit prose. HTML is a publishing format; Markdown is a writing +format. Thus, Markdown's formatting syntax only addresses issues that +can be conveyed in plain text.

    + +

    For any markup that is not covered by Markdown's syntax, you simply +use HTML itself. There's no need to preface it or delimit it to +indicate that you're switching from Markdown to HTML; you just use +the tags.

    + +

    The only restrictions are that block-level HTML elements -- e.g. <div>, +<table>, <pre>, <p>, etc. -- must be separated from surrounding +content by blank lines, and the start and end tags of the block should +not be indented with tabs or spaces. Markdown is smart enough not +to add extra (unwanted) <p> tags around HTML block-level tags.

    + +

    For example, to add an HTML table to a Markdown article:

    + +
    This is a regular paragraph.
    +
    +<table>
    +    <tr>
    +        <td>Foo</td>
    +    </tr>
    +</table>
    +
    +This is another regular paragraph.
    +
    + +

    Note that Markdown formatting syntax is not processed within block-level +HTML tags. E.g., you can't use Markdown-style *emphasis* inside an +HTML block.

    + +

    Span-level HTML tags -- e.g. <span>, <cite>, or <del> -- can be +used anywhere in a Markdown paragraph, list item, or header. If you +want, you can even use HTML tags instead of Markdown formatting; e.g. if +you'd prefer to use HTML <a> or <img> tags instead of Markdown's +link or image syntax, go right ahead.

    + +

    Unlike block-level HTML tags, Markdown syntax is processed within +span-level tags.

    + +

    Automatic Escaping for Special Characters

    + +

    In HTML, there are two characters that demand special treatment: < +and &. Left angle brackets are used to start tags; ampersands are +used to denote HTML entities. If you want to use them as literal +characters, you must escape them as entities, e.g. &lt;, and +&amp;.

    + +

    Ampersands in particular are bedeviling for web writers. If you want to +write about 'AT&T', you need to write 'AT&amp;T'. You even need to +escape ampersands within URLs. Thus, if you want to link to:

    + +
    http://images.google.com/images?num=30&q=larry+bird
    +
    + +

    you need to encode the URL as:

    + +
    http://images.google.com/images?num=30&amp;q=larry+bird
    +
    + +

    in your anchor tag href attribute. Needless to say, this is easy to +forget, and is probably the single most common source of HTML validation +errors in otherwise well-marked-up web sites.

    + +

    Markdown allows you to use these characters naturally, taking care of +all the necessary escaping for you. If you use an ampersand as part of +an HTML entity, it remains unchanged; otherwise it will be translated +into &amp;.

    + +

    So, if you want to include a copyright symbol in your article, you can write:

    + +
    &copy;
    +
    + +

    and Markdown will leave it alone. But if you write:

    + +
    AT&T
    +
    + +

    Markdown will translate it to:

    + +
    AT&amp;T
    +
    + +

    Similarly, because Markdown supports inline HTML, if you use +angle brackets as delimiters for HTML tags, Markdown will treat them as +such. But if you write:

    + +
    4 < 5
    +
    + +

    Markdown will translate it to:

    + +
    4 &lt; 5
    +
    + +

    However, inside Markdown code spans and blocks, angle brackets and +ampersands are always encoded automatically. This makes it easy to use +Markdown to write about HTML code. (As opposed to raw HTML, which is a +terrible format for writing about HTML syntax, because every single < +and & in your example code needs to be escaped.)

    + +
    + +

    Block Elements

    + +

    Paragraphs and Line Breaks

    + +

    A paragraph is simply one or more consecutive lines of text, separated +by one or more blank lines. (A blank line is any line that looks like a +blank line -- a line containing nothing but spaces or tabs is considered +blank.) Normal paragraphs should not be intended with spaces or tabs.

    + +

    The implication of the "one or more consecutive lines of text" rule is +that Markdown supports "hard-wrapped" text paragraphs. This differs +significantly from most other text-to-HTML formatters (including Movable +Type's "Convert Line Breaks" option) which translate every line break +character in a paragraph into a <br /> tag.

    + +

    When you do want to insert a <br /> break tag using Markdown, you +end a line with two or more spaces, then type return.

    + +

    Yes, this takes a tad more effort to create a <br />, but a simplistic +"every line break is a <br />" rule wouldn't work for Markdown. +Markdown's email-style blockquoting and multi-paragraph list items +work best -- and look better -- when you format them with hard breaks.

    + + + +

    Markdown supports two styles of headers, Setext and atx.

    + +

    Setext-style headers are "underlined" using equal signs (for first-level +headers) and dashes (for second-level headers). For example:

    + +
    This is an H1
    +=============
    +
    +This is an H2
    +-------------
    +
    + +

    Any number of underlining ='s or -'s will work.

    + +

    Atx-style headers use 1-6 hash characters at the start of the line, +corresponding to header levels 1-6. For example:

    + +
    # This is an H1
    +
    +## This is an H2
    +
    +###### This is an H6
    +
    + +

    Optionally, you may "close" atx-style headers. This is purely +cosmetic -- you can use this if you think it looks better. The +closing hashes don't even need to match the number of hashes +used to open the header. (The number of opening hashes +determines the header level.) :

    + +
    # This is an H1 #
    +
    +## This is an H2 ##
    +
    +### This is an H3 ######
    +
    + +

    Blockquotes

    + +

    Markdown uses email-style > characters for blockquoting. If you're +familiar with quoting passages of text in an email message, then you +know how to create a blockquote in Markdown. It looks best if you hard +wrap the text and put a > before every line:

    + +
    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
    +> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
    +> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
    +> 
    +> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
    +> id sem consectetuer libero luctus adipiscing.
    +
    + +

    Markdown allows you to be lazy and only put the > before the first +line of a hard-wrapped paragraph:

    + +
    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
    +consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
    +Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
    +
    +> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
    +id sem consectetuer libero luctus adipiscing.
    +
    + +

    Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by +adding additional levels of >:

    + +
    > This is the first level of quoting.
    +>
    +> > This is nested blockquote.
    +>
    +> Back to the first level.
    +
    + +

    Blockquotes can contain other Markdown elements, including headers, lists, +and code blocks:

    + +
    > ## This is a header.
    +> 
    +> 1.   This is the first list item.
    +> 2.   This is the second list item.
    +> 
    +> Here's some example code:
    +> 
    +>     return shell_exec("echo $input | $markdown_script");
    +
    + +

    Any decent text editor should make email-style quoting easy. For +example, with BBEdit, you can make a selection and choose Increase +Quote Level from the Text menu.

    + +

    Lists

    + +

    Markdown supports ordered (numbered) and unordered (bulleted) lists.

    + +

    Unordered lists use asterisks, pluses, and hyphens -- interchangably +-- as list markers:

    + +
    *   Red
    +*   Green
    +*   Blue
    +
    + +

    is equivalent to:

    + +
    +   Red
    ++   Green
    ++   Blue
    +
    + +

    and:

    + +
    -   Red
    +-   Green
    +-   Blue
    +
    + +

    Ordered lists use numbers followed by periods:

    + +
    1.  Bird
    +2.  McHale
    +3.  Parish
    +
    + +

    It's important to note that the actual numbers you use to mark the +list have no effect on the HTML output Markdown produces. The HTML +Markdown produces from the above list is:

    + +
    <ol>
    +<li>Bird</li>
    +<li>McHale</li>
    +<li>Parish</li>
    +</ol>
    +
    + +

    If you instead wrote the list in Markdown like this:

    + +
    1.  Bird
    +1.  McHale
    +1.  Parish
    +
    + +

    or even:

    + +
    3. Bird
    +1. McHale
    +8. Parish
    +
    + +

    you'd get the exact same HTML output. The point is, if you want to, +you can use ordinal numbers in your ordered Markdown lists, so that +the numbers in your source match the numbers in your published HTML. +But if you want to be lazy, you don't have to.

    + +

    If you do use lazy list numbering, however, you should still start the +list with the number 1. At some point in the future, Markdown may support +starting ordered lists at an arbitrary number.

    + +

    List markers typically start at the left margin, but may be indented by +up to three spaces. List markers must be followed by one or more spaces +or a tab.

    + +

    To make lists look nice, you can wrap items with hanging indents:

    + +
    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    +    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
    +    viverra nec, fringilla in, laoreet vitae, risus.
    +*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
    +    Suspendisse id sem consectetuer libero luctus adipiscing.
    +
    + +

    But if you want to be lazy, you don't have to:

    + +
    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    +Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
    +viverra nec, fringilla in, laoreet vitae, risus.
    +*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
    +Suspendisse id sem consectetuer libero luctus adipiscing.
    +
    + +

    If list items are separated by blank lines, Markdown will wrap the +items in <p> tags in the HTML output. For example, this input:

    + +
    *   Bird
    +*   Magic
    +
    + +

    will turn into:

    + +
    <ul>
    +<li>Bird</li>
    +<li>Magic</li>
    +</ul>
    +
    + +

    But this:

    + +
    *   Bird
    +
    +*   Magic
    +
    + +

    will turn into:

    + +
    <ul>
    +<li><p>Bird</p></li>
    +<li><p>Magic</p></li>
    +</ul>
    +
    + +

    List items may consist of multiple paragraphs. Each subsequent +paragraph in a list item must be intended by either 4 spaces +or one tab:

    + +
    1.  This is a list item with two paragraphs. Lorem ipsum dolor
    +    sit amet, consectetuer adipiscing elit. Aliquam hendrerit
    +    mi posuere lectus.
    +
    +    Vestibulum enim wisi, viverra nec, fringilla in, laoreet
    +    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
    +    sit amet velit.
    +
    +2.  Suspendisse id sem consectetuer libero luctus adipiscing.
    +
    + +

    It looks nice if you indent every line of the subsequent +paragraphs, but here again, Markdown will allow you to be +lazy:

    + +
    *   This is a list item with two paragraphs.
    +
    +    This is the second paragraph in the list item. You're
    +only required to indent the first line. Lorem ipsum dolor
    +sit amet, consectetuer adipiscing elit.
    +
    +*   Another item in the same list.
    +
    + +

    To put a blockquote within a list item, the blockquote's > +delimiters need to be indented:

    + +
    *   A list item with a blockquote:
    +
    +    > This is a blockquote
    +    > inside a list item.
    +
    + +

    To put a code block within a list item, the code block needs +to be indented twice -- 8 spaces or two tabs:

    + +
    *   A list item with a code block:
    +
    +        <code goes here>
    +
    + +

    It's worth noting that it's possible to trigger an ordered list by +accident, by writing something like this:

    + +
    1986. What a great season.
    +
    + +

    In other words, a number-period-space sequence at the beginning of a +line. To avoid this, you can backslash-escape the period:

    + +
    1986\. What a great season.
    +
    + +

    Code Blocks

    + +

    Pre-formatted code blocks are used for writing about programming or +markup source code. Rather than forming normal paragraphs, the lines +of a code block are interpreted literally. Markdown wraps a code block +in both <pre> and <code> tags.

    + +

    To produce a code block in Markdown, simply indent every line of the +block by at least 4 spaces or 1 tab. For example, given this input:

    + +
    This is a normal paragraph:
    +
    +    This is a code block.
    +
    + +

    Markdown will generate:

    + +
    <p>This is a normal paragraph:</p>
    +
    +<pre><code>This is a code block.
    +</code></pre>
    +
    + +

    One level of indentation -- 4 spaces or 1 tab -- is removed from each +line of the code block. For example, this:

    + +
    Here is an example of AppleScript:
    +
    +    tell application "Foo"
    +        beep
    +    end tell
    +
    + +

    will turn into:

    + +
    <p>Here is an example of AppleScript:</p>
    +
    +<pre><code>tell application "Foo"
    +    beep
    +end tell
    +</code></pre>
    +
    + +

    A code block continues until it reaches a line that is not indented +(or the end of the article).

    + +

    Within a code block, ampersands (&) and angle brackets (< and >) +are automatically converted into HTML entities. This makes it very +easy to include example HTML source code using Markdown -- just paste +it and indent it, and Markdown will handle the hassle of encoding the +ampersands and angle brackets. For example, this:

    + +
        <div class="footer">
    +        &copy; 2004 Foo Corporation
    +    </div>
    +
    + +

    will turn into:

    + +
    <pre><code>&lt;div class="footer"&gt;
    +    &amp;copy; 2004 Foo Corporation
    +&lt;/div&gt;
    +</code></pre>
    +
    + +

    Regular Markdown syntax is not processed within code blocks. E.g., +asterisks are just literal asterisks within a code block. This means +it's also easy to use Markdown to write about Markdown's own syntax.

    + +

    Horizontal Rules

    + +

    You can produce a horizontal rule tag (<hr />) by placing three or +more hyphens, asterisks, or underscores on a line by themselves. If you +wish, you may use spaces between the hyphens or asterisks. Each of the +following lines will produce a horizontal rule:

    + +
    * * *
    +
    +***
    +
    +*****
    +
    +- - -
    +
    +---------------------------------------
    +
    +_ _ _
    +
    + +
    + +

    Span Elements

    + + + +

    Markdown supports two style of links: inline and reference.

    + +

    In both styles, the link text is delimited by [square brackets].

    + +

    To create an inline link, use a set of regular parentheses immediately +after the link text's closing square bracket. Inside the parentheses, +put the URL where you want the link to point, along with an optional +title for the link, surrounded in quotes. For example:

    + +
    This is [an example](http://example.com/ "Title") inline link.
    +
    +[This link](http://example.net/) has no title attribute.
    +
    + +

    Will produce:

    + +
    <p>This is <a href="http://example.com/" title="Title">
    +an example</a> inline link.</p>
    +
    +<p><a href="http://example.net/">This link</a> has no
    +title attribute.</p>
    +
    + +

    If you're referring to a local resource on the same server, you can +use relative paths:

    + +
    See my [About](/about/) page for details.
    +
    + +

    Reference-style links use a second set of square brackets, inside +which you place a label of your choosing to identify the link:

    + +
    This is [an example][id] reference-style link.
    +
    + +

    You can optionally use a space to separate the sets of brackets:

    + +
    This is [an example] [id] reference-style link.
    +
    + +

    Then, anywhere in the document, you define your link label like this, +on a line by itself:

    + +
    [id]: http://example.com/  "Optional Title Here"
    +
    + +

    That is:

    + +
      +
    • Square brackets containing the link identifier (optionally +indented from the left margin using up to three spaces);
    • +
    • followed by a colon;
    • +
    • followed by one or more spaces (or tabs);
    • +
    • followed by the URL for the link;
    • +
    • optionally followed by a title attribute for the link, enclosed +in double or single quotes.
    • +
    + +

    The link URL may, optionally, be surrounded by angle brackets:

    + +
    [id]: <http://example.com/>  "Optional Title Here"
    +
    + +

    You can put the title attribute on the next line and use extra spaces +or tabs for padding, which tends to look better with longer URLs:

    + +
    [id]: http://example.com/longish/path/to/resource/here
    +    "Optional Title Here"
    +
    + +

    Link definitions are only used for creating links during Markdown +processing, and are stripped from your document in the HTML output.

    + +

    Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are not case sensitive. E.g. these two links:

    + +
    [link text][a]
    +[link text][A]
    +
    + +

    are equivalent.

    + +

    The implicit link name shortcut allows you to omit the name of the +link, in which case the link text itself is used as the name. +Just use an empty set of square brackets -- e.g., to link the word +"Google" to the google.com web site, you could simply write:

    + +
    [Google][]
    +
    + +

    And then define the link:

    + +
    [Google]: http://google.com/
    +
    + +

    Because link names may contain spaces, this shortcut even works for +multiple words in the link text:

    + +
    Visit [Daring Fireball][] for more information.
    +
    + +

    And then define the link:

    + +
    [Daring Fireball]: http://daringfireball.net/
    +
    + +

    Link definitions can be placed anywhere in your Markdown document. I +tend to put them immediately after each paragraph in which they're +used, but if you want, you can put them all at the end of your +document, sort of like footnotes.

    + +

    Here's an example of reference links in action:

    + +
    I get 10 times more traffic from [Google] [1] than from
    +[Yahoo] [2] or [MSN] [3].
    +
    +  [1]: http://google.com/        "Google"
    +  [2]: http://search.yahoo.com/  "Yahoo Search"
    +  [3]: http://search.msn.com/    "MSN Search"
    +
    + +

    Using the implicit link name shortcut, you could instead write:

    + +
    I get 10 times more traffic from [Google][] than from
    +[Yahoo][] or [MSN][].
    +
    +  [google]: http://google.com/        "Google"
    +  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
    +  [msn]:    http://search.msn.com/    "MSN Search"
    +
    + +

    Both of the above examples will produce the following HTML output:

    + +
    <p>I get 10 times more traffic from <a href="http://google.com/"
    +title="Google">Google</a> than from
    +<a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>
    +or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
    +
    + +

    For comparison, here is the same paragraph written using +Markdown's inline link style:

    + +
    I get 10 times more traffic from [Google](http://google.com/ "Google")
    +than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
    +[MSN](http://search.msn.com/ "MSN Search").
    +
    + +

    The point of reference-style links is not that they're easier to +write. The point is that with reference-style links, your document +source is vastly more readable. Compare the above examples: using +reference-style links, the paragraph itself is only 81 characters +long; with inline-style links, it's 176 characters; and as raw HTML, +it's 234 characters. In the raw HTML, there's more markup than there +is text.

    + +

    With Markdown's reference-style links, a source document much more +closely resembles the final output, as rendered in a browser. By +allowing you to move the markup-related metadata out of the paragraph, +you can add links without interrupting the narrative flow of your +prose.

    + +

    Emphasis

    + +

    Markdown treats asterisks (*) and underscores (_) as indicators of +emphasis. Text wrapped with one * or _ will be wrapped with an +HTML <em> tag; double *'s or _'s will be wrapped with an HTML +<strong> tag. E.g., this input:

    + +
    *single asterisks*
    +
    +_single underscores_
    +
    +**double asterisks**
    +
    +__double underscores__
    +
    + +

    will produce:

    + +
    <em>single asterisks</em>
    +
    +<em>single underscores</em>
    +
    +<strong>double asterisks</strong>
    +
    +<strong>double underscores</strong>
    +
    + +

    You can use whichever style you prefer; the lone restriction is that +the same character must be used to open and close an emphasis span.

    + +

    Emphasis can be used in the middle of a word:

    + +
    un*fucking*believable
    +
    + +

    But if you surround an * or _ with spaces, it'll be treated as a +literal asterisk or underscore.

    + +

    To produce a literal asterisk or underscore at a position where it +would otherwise be used as an emphasis delimiter, you can backslash +escape it:

    + +
    \*this text is surrounded by literal asterisks\*
    +
    + +

    Code

    + +

    To indicate a span of code, wrap it with backtick quotes (`). +Unlike a pre-formatted code block, a code span indicates code within a +normal paragraph. For example:

    + +
    Use the `printf()` function.
    +
    + +

    will produce:

    + +
    <p>Use the <code>printf()</code> function.</p>
    +
    + +

    To include a literal backtick character within a code span, you can use +multiple backticks as the opening and closing delimiters:

    + +
    ``There is a literal backtick (`) here.``
    +
    + +

    which will produce this:

    + +
    <p><code>There is a literal backtick (`) here.</code></p>
    +
    + +

    The backtick delimiters surrounding a code span may include spaces -- +one after the opening, one before the closing. This allows you to place +literal backtick characters at the beginning or end of a code span:

    + +
    A single backtick in a code span: `` ` ``
    +
    +A backtick-delimited string in a code span: `` `foo` ``
    +
    + +

    will produce:

    + +
    <p>A single backtick in a code span: <code>`</code></p>
    +
    +<p>A backtick-delimited string in a code span: <code>`foo`</code></p>
    +
    + +

    With a code span, ampersands and angle brackets are encoded as HTML +entities automatically, which makes it easy to include example HTML +tags. Markdown will turn this:

    + +
    Please don't use any `<blink>` tags.
    +
    + +

    into:

    + +
    <p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>
    +
    + +

    You can write this:

    + +
    `&#8212;` is the decimal-encoded equivalent of `&mdash;`.
    +
    + +

    to produce:

    + +
    <p><code>&amp;#8212;</code> is the decimal-encoded
    +equivalent of <code>&amp;mdash;</code>.</p>
    +
    + +

    Images

    + +

    Admittedly, it's fairly difficult to devise a "natural" syntax for +placing images into a plain text document format.

    + +

    Markdown uses an image syntax that is intended to resemble the syntax +for links, allowing for two styles: inline and reference.

    + +

    Inline image syntax looks like this:

    + +
    ![Alt text](/path/to/img.jpg)
    +
    +![Alt text](/path/to/img.jpg "Optional title")
    +
    + +

    That is:

    + +
      +
    • An exclamation mark: !;
    • +
    • followed by a set of square brackets, containing the alt +attribute text for the image;
    • +
    • followed by a set of parentheses, containing the URL or path to +the image, and an optional title attribute enclosed in double +or single quotes.
    • +
    + +

    Reference-style image syntax looks like this:

    + +
    ![Alt text][id]
    +
    + +

    Where "id" is the name of a defined image reference. Image references +are defined using syntax identical to link references:

    + +
    [id]: url/to/image  "Optional title attribute"
    +
    + +

    As of this writing, Markdown has no syntax for specifying the +dimensions of an image; if this is important to you, you can simply +use regular HTML <img> tags.

    + +
    + +

    Miscellaneous

    + + + +

    Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:

    + +
    <http://example.com/>
    +
    + +

    Markdown will turn this into:

    + +
    <a href="http://example.com/">http://example.com/</a>
    +
    + +

    Automatic links for email addresses work similarly, except that +Markdown will also perform a bit of randomized decimal and hex +entity-encoding to help obscure your address from address-harvesting +spambots. For example, Markdown will turn this:

    + +
    <address@example.com>
    +
    + +

    into something like this:

    + +
    <a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
    +&#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
    +&#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
    +&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>
    +
    + +

    which will render in a browser as a clickable link to "address@example.com".

    + +

    (This sort of entity-encoding trick will indeed fool many, if not +most, address-harvesting bots, but it definitely won't fool all of +them. It's better than nothing, but an address published in this way +will probably eventually start receiving spam.)

    + +

    Backslash Escapes

    + +

    Markdown allows you to use backslash escapes to generate literal +characters which would otherwise have special meaning in Markdown's +formatting syntax. For example, if you wanted to surround a word with +literal asterisks (instead of an HTML <em> tag), you can backslashes +before the asterisks, like this:

    + +
    \*literal asterisks\*
    +
    + +

    Markdown provides backslash escapes for the following characters:

    + +
    \   backslash
    +`   backtick
    +*   asterisk
    +_   underscore
    +{}  curly braces
    +[]  square brackets
    +()  parentheses
    +#   hash mark
    ++   plus sign
    +-   minus sign (hyphen)
    +.   dot
    +!   exclamation mark
    +
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.json new file mode 100644 index 000000000..310ad22d3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.json @@ -0,0 +1,3 @@ +["html", ["blockquote", ["p", "foo"], + ["blockquote", ["p", "bar"]], + ["p", "foo"]]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.text new file mode 100644 index 000000000..ed3c624ff --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.text @@ -0,0 +1,5 @@ +> foo +> +> > bar +> +> foo diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.xhtml new file mode 100644 index 000000000..d8ec7f8e0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.xhtml @@ -0,0 +1,9 @@ +
    +

    foo

    + +
    +

    bar

    +
    + +

    foo

    +
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.json new file mode 100644 index 000000000..d52c6830e --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.json @@ -0,0 +1,59 @@ +["html", ["h2", "Unordered"], "\u000a\u000a", ["p", "Asterisks tight:"], + ["ul", ["li", "asterisk 1"], + ["li", "asterisk 2"], + ["li", "asterisk 3"]], + ["p", "Asterisks loose:"], + ["ul", ["li", ["p", "asterisk 1"]], + ["li", ["p", "asterisk 2"]], + ["li", ["p", "asterisk 3"]]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["p", "Pluses tight:"], + ["ul", ["li", "Plus 1"], + ["li", "Plus 2"], + ["li", "Plus 3"]], + ["p", "Pluses loose:"], + ["ul", ["li", ["p", "Plus 1"]], + ["li", ["p", "Plus 2"]], + ["li", ["p", "Plus 3"]]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["p", "Minuses tight:"], + ["ul", ["li", "Minus 1"], + ["li", "Minus 2"], + ["li", "Minus 3"]], + ["p", "Minuses loose:"], + ["ul", ["li", ["p", "Minus 1"]], + ["li", ["p", "Minus 2"]], + ["li", ["p", "Minus 3"]]], "\u000a\u000a", ["h2", "Ordered"], "\u000a\u000a", ["p", "Tight:"], + ["ol", ["li", "First"], + ["li", "Second"], + ["li", "Third"]], + ["p", "and:"], + ["ol", ["li", "One"], + ["li", "Two"], + ["li", "Three"]], + ["p", "Loose using tabs:"], + ["ol", ["li", ["p", "First"]], + ["li", ["p", "Second"]], + ["li", ["p", "Third"]]], + ["p", "and using spaces:"], + ["ol", ["li", ["p", "One"]], + ["li", ["p", "Two"]], + ["li", ["p", "Three"]]], + ["p", "Multiple paragraphs:"], + ["ol", ["li", ["p", "Item 1, graf one."], + ["p", "Item 2. graf two. The quick brown fox jumped over the lazy dog's\u000aback."]], + ["li", ["p", "Item 2."]], + ["li", ["p", "Item 3."]]], "\u000a\u000a", ["h2", "Nested"], "\u000a\u000a", ["ul", ["li", "Tab\u000a", ["ul", ["li", "Tab\u000a", ["ul", ["li", "Tab"]]]]]], + ["p", "Here's another:"], + ["ol", ["li", "First"], + ["li", "Second:\u000a", ["ul", ["li", "Fee"], + ["li", "Fie"], + ["li", "Foe"]]], + ["li", "Third"]], + ["p", "Same thing but with paragraphs:"], + ["ol", ["li", ["p", "First"]], + ["li", ["p", "Second:"], + ["ul", ["li", "Fee"], + ["li", "Fie"], + ["li", "Foe"]]], + ["li", ["p", "Third"]]], + ["p", "This was an error in Markdown 1.0.1:"], + ["ul", ["li", ["p", "this"], + ["ul", ["li", "sub"]], + ["p", "that"]]]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.text new file mode 100644 index 000000000..7f3b49777 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.text @@ -0,0 +1,131 @@ +## Unordered + +Asterisks tight: + +* asterisk 1 +* asterisk 2 +* asterisk 3 + + +Asterisks loose: + +* asterisk 1 + +* asterisk 2 + +* asterisk 3 + +* * * + +Pluses tight: + ++ Plus 1 ++ Plus 2 ++ Plus 3 + + +Pluses loose: + ++ Plus 1 + ++ Plus 2 + ++ Plus 3 + +* * * + + +Minuses tight: + +- Minus 1 +- Minus 2 +- Minus 3 + + +Minuses loose: + +- Minus 1 + +- Minus 2 + +- Minus 3 + + +## Ordered + +Tight: + +1. First +2. Second +3. Third + +and: + +1. One +2. Two +3. Three + + +Loose using tabs: + +1. First + +2. Second + +3. Third + +and using spaces: + +1. One + +2. Two + +3. Three + +Multiple paragraphs: + +1. Item 1, graf one. + + Item 2. graf two. The quick brown fox jumped over the lazy dog's + back. + +2. Item 2. + +3. Item 3. + + + +## Nested + +* Tab + * Tab + * Tab + +Here's another: + +1. First +2. Second: + * Fee + * Fie + * Foe +3. Third + +Same thing but with paragraphs: + +1. First + +2. Second: + * Fee + * Fie + * Foe + +3. Third + + +This was an error in Markdown 1.0.1: + +* this + + * sub + + that diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.xhtml new file mode 100644 index 000000000..ba71eab39 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.xhtml @@ -0,0 +1,148 @@ +

    Unordered

    + +

    Asterisks tight:

    + +
      +
    • asterisk 1
    • +
    • asterisk 2
    • +
    • asterisk 3
    • +
    + +

    Asterisks loose:

    + +
      +
    • asterisk 1

    • +
    • asterisk 2

    • +
    • asterisk 3

    • +
    + +
    + +

    Pluses tight:

    + +
      +
    • Plus 1
    • +
    • Plus 2
    • +
    • Plus 3
    • +
    + +

    Pluses loose:

    + +
      +
    • Plus 1

    • +
    • Plus 2

    • +
    • Plus 3

    • +
    + +
    + +

    Minuses tight:

    + +
      +
    • Minus 1
    • +
    • Minus 2
    • +
    • Minus 3
    • +
    + +

    Minuses loose:

    + +
      +
    • Minus 1

    • +
    • Minus 2

    • +
    • Minus 3

    • +
    + +

    Ordered

    + +

    Tight:

    + +
      +
    1. First
    2. +
    3. Second
    4. +
    5. Third
    6. +
    + +

    and:

    + +
      +
    1. One
    2. +
    3. Two
    4. +
    5. Three
    6. +
    + +

    Loose using tabs:

    + +
      +
    1. First

    2. +
    3. Second

    4. +
    5. Third

    6. +
    + +

    and using spaces:

    + +
      +
    1. One

    2. +
    3. Two

    4. +
    5. Three

    6. +
    + +

    Multiple paragraphs:

    + +
      +
    1. Item 1, graf one.

      + +

      Item 2. graf two. The quick brown fox jumped over the lazy dog's +back.

    2. +
    3. Item 2.

    4. +
    5. Item 3.

    6. +
    + +

    Nested

    + +
      +
    • Tab +
        +
      • Tab +
          +
        • Tab
        • +
      • +
    • +
    + +

    Here's another:

    + +
      +
    1. First
    2. +
    3. Second: +
        +
      • Fee
      • +
      • Fie
      • +
      • Foe
      • +
    4. +
    5. Third
    6. +
    + +

    Same thing but with paragraphs:

    + +
      +
    1. First

    2. +
    3. Second:

      + +
        +
      • Fee
      • +
      • Fie
      • +
      • Foe
      • +
    4. +
    5. Third

    6. +
    + + +

    This was an error in Markdown 1.0.1:

    + +
      +
    • this

      + +
      • sub
      + +

      that

    • +
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.json new file mode 100644 index 000000000..f0e9b3594 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.json @@ -0,0 +1,4 @@ +["html", ["p", ["strong", ["em", "This is strong and em."]]], + ["p", "So is ", ["strong", ["em", "this"]], " word."], + ["p", ["strong", ["em", "This is strong and em."]]], + ["p", "So is ", ["strong", ["em", "this"]], " word."]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.text new file mode 100644 index 000000000..95ee690db --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.text @@ -0,0 +1,7 @@ +***This is strong and em.*** + +So is ***this*** word. + +___This is strong and em.___ + +So is ___this___ word. diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.xhtml new file mode 100644 index 000000000..71ec78c70 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.xhtml @@ -0,0 +1,7 @@ +

    This is strong and em.

    + +

    So is this word.

    + +

    This is strong and em.

    + +

    So is this word.

    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tabs.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tabs.json new file mode 100644 index 000000000..755f65b6c --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tabs.json @@ -0,0 +1,8 @@ +["html", ["ul", ["li", ["p", "this is a list item\u000aindented with tabs"]], + ["li", ["p", "this is a list item\u000aindented with spaces"]]], + ["p", "Code:"], + ["pre", ["code", "this code block is indented by one tab\u000a"]], + ["p", "And:"], + ["pre", ["code", " this code block is indented by two tabs\u000a"]], + ["p", "And:"], + ["pre", ["code", "+ this is an example list item\u000a indented with tabs\u000a\u000a+ this is an example list item\u000a indented with spaces\u000a"]]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tabs.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tabs.text new file mode 100644 index 000000000..589d1136e --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tabs.text @@ -0,0 +1,21 @@ ++ this is a list item + indented with tabs + ++ this is a list item + indented with spaces + +Code: + + this code block is indented by one tab + +And: + + this code block is indented by two tabs + +And: + + + this is an example list item + indented with tabs + + + this is an example list item + indented with spaces diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tabs.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tabs.xhtml new file mode 100644 index 000000000..3301ba803 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tabs.xhtml @@ -0,0 +1,25 @@ +
      +
    • this is a list item +indented with tabs

    • +
    • this is a list item +indented with spaces

    • +
    + +

    Code:

    + +
    this code block is indented by one tab
    +
    + +

    And:

    + +
        this code block is indented by two tabs
    +
    + +

    And:

    + +
    +   this is an example list item
    +    indented with tabs
    +
    ++   this is an example list item
    +    indented with spaces
    +
    diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tidyness.json b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tidyness.json new file mode 100644 index 000000000..38f3840ed --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tidyness.json @@ -0,0 +1,4 @@ +["html", ["blockquote", ["p", "A list within a blockquote:"], + ["ul", ["li", "asterisk 1"], + ["li", "asterisk 2"], + ["li", "asterisk 3"]]]] diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tidyness.text b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tidyness.text new file mode 100644 index 000000000..5f18b8da2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tidyness.text @@ -0,0 +1,5 @@ +> A list within a blockquote: +> +> * asterisk 1 +> * asterisk 2 +> * asterisk 3 diff --git a/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tidyness.xhtml b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tidyness.xhtml new file mode 100644 index 000000000..f2a8ce70f --- /dev/null +++ b/node_modules/markdown/test/fixtures/Markdown-from-MDTest1.1.mdtest/Tidyness.xhtml @@ -0,0 +1,8 @@ +
    +

    A list within a blockquote:

    +
      +
    • asterisk 1
    • +
    • asterisk 2
    • +
    • asterisk 3
    • +
    +
    diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.json new file mode 100644 index 000000000..fe607646e --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.json @@ -0,0 +1,5 @@ +["html", ["p", "Tricky combinaisons:"], + ["p", "backslash with \\-- two dashes"], + ["p", "backslash with \\> greater than"], + ["p", "\\[test](not a link)"], + ["p", "\\*no emphasis*"]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.text new file mode 100644 index 000000000..a5e769b7e --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.text @@ -0,0 +1 @@ +Tricky combinaisons: backslash with \\-- two dashes backslash with \\> greater than \\\[test](not a link) \\\*no emphasis* \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.xhtml new file mode 100644 index 000000000..08fb8ef84 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.xhtml @@ -0,0 +1 @@ +

    Tricky combinaisons:

    backslash with \-- two dashes

    backslash with \> greater than

    \[test](not a link)

    \*no emphasis*

    \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.json new file mode 100644 index 000000000..0854d4ff0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.json @@ -0,0 +1,2 @@ +["html", ["p", "From ", ["code", ""], "\u000aon two lines."], + ["p", "From ", ["code", ""], "\u000aon three lines."]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.text new file mode 100644 index 000000000..43f2bcfd5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.text @@ -0,0 +1,6 @@ +From `` +on two lines. + +From `` +on three lines. diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.xhtml new file mode 100644 index 000000000..9ed0df87e --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.xhtml @@ -0,0 +1,6 @@ +

    From <!-- to --> +on two lines.

    + +

    From <!-- +to --> +on three lines.

    diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.json new file mode 100644 index 000000000..aa10afbdf --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.json @@ -0,0 +1,3 @@ +["html", ["ul", ["li", ["p", "List Item:"], + ["pre", ["code", "code block\u000a\u000awith a blank line\u000a"]], + ["p", "within a list item."]]]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.text new file mode 100644 index 000000000..3fa24c31d --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.text @@ -0,0 +1,8 @@ + +* List Item: + + code block + + with a blank line + + within a list item. \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.xhtml new file mode 100644 index 000000000..7d57b1e77 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.xhtml @@ -0,0 +1,10 @@ +
      +
    • List Item:

      + +
      code block
      +
      +with a blank line
      +
      + +

      within a list item.

    • +
    \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.json new file mode 100644 index 000000000..935fb6d9b --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.json @@ -0,0 +1,8 @@ +["html", ["p", ["a", { + "href": "mailto:michel.fortin@michelf.com" +}, +"michel.fortin@michelf.com"]], + ["p", "International domain names: ", ["a", { + "href": "mailto:help@tūdaliņ.lv" + }, + "help@tūdaliņ.lv"]]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.text new file mode 100644 index 000000000..a8af4ec3c --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.text @@ -0,0 +1,3 @@ + + +International domain names: \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.xhtml new file mode 100644 index 000000000..a32c40874 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.xhtml @@ -0,0 +1,3 @@ +

    michel.fortin@michelf.com

    + +

    International domain names: help@tūdaliņ.lv

    diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.json new file mode 100644 index 000000000..bc25ffd9f --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.json @@ -0,0 +1,47 @@ +["html", ["p", "Combined emphasis:"], + ["ol", ["li", ["strong", ["em", "test test"]]], + ["li", ["strong", ["em", "test test"]]], + ["li", ["em", "test ", ["strong", "test"]]], + ["li", ["strong", "test ", ["em", "test"]]], + ["li", ["strong", ["em", "test"], " test"]], + ["li", ["em", ["strong", "test"], " test"]], + ["li", ["strong", ["em", "test"], " test"]], + ["li", ["strong", "test ", ["em", "test"]]], + ["li", ["em", "test ", ["strong", "test"]]], + ["li", ["em", "test ", ["strong", "test"]]], + ["li", ["strong", "test ", ["em", "test"]]], + ["li", ["strong", ["em", "test"], " test"]], + ["li", ["em", ["strong", "test"], " test"]], + ["li", ["strong", ["em", "test"], " test"]], + ["li", ["strong", "test ", ["em", "test"]]], + ["li", ["em", "test ", ["strong", "test"]]]], + ["p", "Incorrect nesting:"], + ["ol", ["li", "*test ", ["strong", "test* test"]], + ["li", "_test ", ["strong", "test_ test"]], + ["li", "**test ", ["em", "test"], "* test*"], + ["li", "__test ", ["em", "test"], "_ test_"], + ["li", ["em", "test *test"], " test*"], + ["li", ["em", "test _test"], " test_"], + ["li", ["strong", "test ", ["strong", "test"], " test"]], + ["li", ["strong", "test ", ["strong", "test"], " test"]]], + ["p", "No emphasis:"], + ["ol", ["li", "test* test *test"], + ["li", "test** test **test"], + ["li", "test_ test _test"], + ["li", "test__ test __test"]], + ["p", "Middle-word emphasis (asterisks):"], + ["ol", ["li", ["em", "a"], "b"], + ["li", "a", ["em", "b"]], + ["li", "a", ["em", "b"], "c"], + ["li", ["strong", "a"], "b"], + ["li", "a", ["strong", "b"]], + ["li", "a", ["strong", "b"], "c"]], + ["p", "Middle-word emphasis (underscore):"], + ["ol", ["li", ["em", "a"], "b"], + ["li", "a", ["em", "b"]], + ["li", "a", ["em", "b"], "c"], + ["li", ["strong", "a"], "b"], + ["li", "a", ["strong", "b"]], + ["li", "a", ["strong", "b"], "c"]], + ["p", "my", ["em", "precious"], "file.txt"], "\u000a\u000a", ["h2", "Tricky Cases"], "\u000a\u000a", ["p", "E**. ", ["strong", "Test"], " TestTestTest"], + ["p", "E**. ", ["strong", "Test"], " Test Test Test"]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.text new file mode 100644 index 000000000..ec48dec07 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.text @@ -0,0 +1,69 @@ +Combined emphasis: + +1. ***test test*** +2. ___test test___ +3. *test **test*** +4. **test *test*** +5. ***test* test** +6. ***test** test* +7. ***test* test** +8. **test *test*** +9. *test **test*** +10. _test __test___ +11. __test _test___ +12. ___test_ test__ +13. ___test__ test_ +14. ___test_ test__ +15. __test _test___ +16. _test __test___ + + +Incorrect nesting: + +1. *test **test* test** +2. _test __test_ test__ +3. **test *test** test* +4. __test _test__ test_ +5. *test *test* test* +6. _test _test_ test_ +7. **test **test** test** +8. __test __test__ test__ + + + +No emphasis: + +1. test* test *test +2. test** test **test +3. test_ test _test +4. test__ test __test + + + +Middle-word emphasis (asterisks): + +1. *a*b +2. a*b* +3. a*b*c +4. **a**b +5. a**b** +6. a**b**c + + +Middle-word emphasis (underscore): + +1. _a_b +2. a_b_ +3. a_b_c +4. __a__b +5. a__b__ +6. a__b__c + +my_precious_file.txt + + +## Tricky Cases + +E**. **Test** TestTestTest + +E**. **Test** Test Test Test diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.xhtml new file mode 100644 index 000000000..739913244 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.xhtml @@ -0,0 +1,72 @@ +

    Combined emphasis:

    + +
      +
    1. test test
    2. +
    3. test test
    4. +
    5. test test
    6. +
    7. test test
    8. +
    9. test test
    10. +
    11. test test
    12. +
    13. test test
    14. +
    15. test test
    16. +
    17. test test
    18. +
    19. test test
    20. +
    21. test test
    22. +
    23. test test
    24. +
    25. test test
    26. +
    27. test test
    28. +
    29. test test
    30. +
    31. test test
    32. +
    + +

    Incorrect nesting:

    + +
      +
    1. *test test* test
    2. +
    3. _test test_ test
    4. +
    5. **test test* test*
    6. +
    7. __test test_ test_
    8. +
    9. test *test test*
    10. +
    11. test _test test_
    12. +
    13. test test test
    14. +
    15. test test test
    16. +
    + +

    No emphasis:

    + +
      +
    1. test* test *test
    2. +
    3. test** test **test
    4. +
    5. test_ test _test
    6. +
    7. test__ test __test
    8. +
    + +

    Middle-word emphasis (asterisks):

    + +
      +
    1. ab
    2. +
    3. ab
    4. +
    5. abc
    6. +
    7. ab
    8. +
    9. ab
    10. +
    11. abc
    12. +
    + +

    Middle-word emphasis (underscore):

    + +
      +
    1. ab
    2. +
    3. ab
    4. +
    5. abc
    6. +
    7. ab
    8. +
    9. ab
    10. +
    11. abc
    12. +
    + +

    mypreciousfile.txt

    + +

    Tricky Cases

    + +

    E**. Test TestTestTest

    + +

    E**. Test Test Test Test

    diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Headers.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Headers.json new file mode 100644 index 000000000..bd094895e --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Headers.json @@ -0,0 +1,3 @@ +["html", ["h1", "Header"], "\u000a\u000a", ["h2", "Header"], "\u000a\u000a", ["h3", "Header"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["h1", "Header"], "\u000a\u000a", ["p", "Paragraph"], "\u000a\u000a", ["h2", "Header"], "\u000a\u000a", ["p", "Paragraph"], "\u000a\u000a", ["h3", "Header"], "\u000a\u000a", ["p", "Paragraph"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["p", "Paragraph"], "\u000a\u000a", ["h1", "Header"], "\u000a\u000a", ["p", "Paragraph"], + ["p", "Paragraph"], "\u000a\u000a", ["h2", "Header"], "\u000a\u000a", ["p", "Paragraph"], + ["p", "Paragraph"], "\u000a\u000a", ["h3", "Header"], "\u000a\u000a", ["p", "Paragraph"]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Headers.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Headers.text new file mode 100644 index 000000000..3a39174a5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Headers.text @@ -0,0 +1,9 @@ +Header ====== Header ------ ### Header + + - - - + +Header ====== Paragraph Header ------ Paragraph ### Header Paragraph + + - - - + +Paragraph Header ====== Paragraph Paragraph Header ------ Paragraph Paragraph ### Header Paragraph \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Headers.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Headers.xhtml new file mode 100644 index 000000000..3adb47074 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Headers.xhtml @@ -0,0 +1,39 @@ +

    Header

    + +

    Header

    + +

    Header

    + +
    + +

    Header

    + +

    Paragraph

    + +

    Header

    + +

    Paragraph

    + +

    Header

    + +

    Paragraph

    + +
    + +

    Paragraph

    + +

    Header

    + +

    Paragraph

    + +

    Paragraph

    + +

    Header

    + +

    Paragraph

    + +

    Paragraph

    + +

    Header

    + +

    Paragraph

    diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.json new file mode 100644 index 000000000..35f9138f0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.json @@ -0,0 +1,9 @@ +["html", ["p", "Horizontal rules:"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["p", "Not horizontal rules (testing for a bug in 1.0.1j):"], + ["p", "+++"], + ["p", ",,,"], + ["p", "==="], + ["p", "???"], + ["p", "AAA"], + ["p", "jjj"], + ["p", "j j j"], + ["p", "n n n"]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.text new file mode 100644 index 000000000..8e2da0b11 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.text @@ -0,0 +1,29 @@ +Horizontal rules: + +- - - + +* * * + +*** + +--- + +___ + +Not horizontal rules (testing for a bug in 1.0.1j): + ++++ + +,,, + +=== + +??? + +AAA + +jjj + +j j j + +n n n diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.xhtml new file mode 100644 index 000000000..b9170b1eb --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.xhtml @@ -0,0 +1,30 @@ +

    Horizontal rules:

    + +
    + +
    + +
    + +
    + +
    + +

    Not horizontal rules (testing for a bug in 1.0.1j):

    + +

    +++

    + +

    ,,,

    + +

    ===

    + +

    ???

    + +

    AAA

    + +

    jjj

    + +

    j j j

    + +

    n n n

    + diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).html b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).html new file mode 100644 index 000000000..facfefbac --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).html @@ -0,0 +1,15 @@ +

    With some attributes:

    + +
    + foo +
    + +
    + foo +
    + +

    Hr's:

    + +
    \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).json new file mode 100644 index 000000000..0cdbfd67f --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).json @@ -0,0 +1,11 @@ +["html", ["p", "With some attributes:"], "\u000a\u000a", ["div", { + "id": "test" +}, +"\u000a foo\u000a"], "\u000a\u000a", ["div", { + "id": "test", + "class": "nono" +}, +"\u000a foo\u000a"], "\u000a\u000a", ["p", "Hr's:"], "\u000a\u000a", ["hr", { + "class": "foo", + "id": "bar" +}]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).text new file mode 100644 index 000000000..9177105e8 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).text @@ -0,0 +1,15 @@ +With some attributes: + +
    + foo +
    + +
    + foo +
    + +Hr's: + +
    diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).json new file mode 100644 index 000000000..77e2b96c8 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).json @@ -0,0 +1,11 @@ +["html", ["p", ["abbr", { + "title": "` **Attribute Content Is Not A Code Span** `" +}, +"ACINACS"]], + ["p", ["abbr", { + "title": "`first backtick!" + }, + "SB"], " \u000a", ["abbr", { + "title": "`second backtick!" + }, + "SB"]]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).text new file mode 100644 index 000000000..19028bb3e --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).text @@ -0,0 +1,4 @@ +ACINACS + +SB +SB \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).xhtml new file mode 100644 index 000000000..4d18affe9 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).xhtml @@ -0,0 +1,4 @@ +

    ACINACS

    + +

    SB +SB

    \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.html b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.html new file mode 100644 index 000000000..b45f01481 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.html @@ -0,0 +1,9 @@ +

    Paragraph one.

    + + + +

    Paragraph two.

    + + + +

    The end.

    diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.json new file mode 100644 index 000000000..fd65c352c --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.json @@ -0,0 +1 @@ +["html", ["p", "Paragraph one."], "\u000a\u000a", "\u000a\u000a", ["p", "Paragraph two."], "\u000a\u000a", "\u000a\u000a", ["p", "The end."]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.text new file mode 100644 index 000000000..d57d00aa3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.text @@ -0,0 +1,9 @@ +Paragraph one. + + + +Paragraph two. + + + +The end. diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.json new file mode 100644 index 000000000..f907dab1d --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.json @@ -0,0 +1,3 @@ +["html", ["p", "Here is a block tag ins:"], "\u000a\u000a", ["ins", ["p", "Some text"]], "\u000a\u000a", ["p", ["ins", "And here it is inside a paragraph."]], + ["p", "And here it is ", ["ins", "in the middle of"], " a paragraph."], "\u000a\u000a", ["del", ["p", "Some text"]], "\u000a\u000a", ["p", ["del", "And here is ins as a paragraph."]], + ["p", "And here it is ", ["del", "in the middle of"], " a paragraph."]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.text new file mode 100644 index 000000000..2d54c660d --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.text @@ -0,0 +1,17 @@ +Here is a block tag ins: + + +

    Some text

    +
    + +And here it is inside a paragraph. + +And here it is in the middle of a paragraph. + + +

    Some text

    +
    + +And here is ins as a paragraph. + +And here it is in the middle of a paragraph. diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.xhtml new file mode 100644 index 000000000..60e8c5ff0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.xhtml @@ -0,0 +1,17 @@ +

    Here is a block tag ins:

    + + +

    Some text

    +
    + +

    And here it is inside a paragraph.

    + +

    And here it is in the middle of a paragraph.

    + + +

    Some text

    +
    + +

    And here is ins as a paragraph.

    + +

    And here it is in the middle of a paragraph.

    diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.json new file mode 100644 index 000000000..f7faf552a --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.json @@ -0,0 +1,4 @@ +["html", ["p", ["a", { + "href": "?}]*+|&)" +}, +"silly URL w/ angle brackets"], "."]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.text new file mode 100644 index 000000000..600a04422 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.text @@ -0,0 +1 @@ +[silly URL w/ angle brackets](). diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.xhtml new file mode 100644 index 000000000..d3e4d1118 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.xhtml @@ -0,0 +1 @@ +

    silly URL w/ angle brackets.

    diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.json new file mode 100644 index 000000000..17294783a --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.json @@ -0,0 +1,3 @@ +["html", ["h1", "Character Escapes"], "\u000a\u000a", ["p", "The MD5 value for ", ["code", "+"], " is \"26b17225b626fb9238849fd60eabdf60\"."], "\u000a\u000a", ["h1", "HTML Blocks"], "\u000a\u000a", ["p", "test"], + ["p", "The MD5 value for ", ["code", "

    test

    "], " is:"], + ["p", "6205333b793f34273d75379350b36826"]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.text new file mode 100644 index 000000000..7e032218c --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.text @@ -0,0 +1,11 @@ +# Character Escapes + +The MD5 value for `+` is "26b17225b626fb9238849fd60eabdf60". + +# HTML Blocks + +

    test

    + +The MD5 value for `

    test

    ` is: + +6205333b793f34273d75379350b36826 \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.xhtml new file mode 100644 index 000000000..894e4aa7b --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.xhtml @@ -0,0 +1,11 @@ +

    Character Escapes

    + +

    The MD5 value for + is "26b17225b626fb9238849fd60eabdf60".

    + +

    HTML Blocks

    + +

    test

    + +

    The MD5 value for <p>test</p> is:

    + +

    6205333b793f34273d75379350b36826

    diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.json new file mode 100644 index 000000000..7aab7f0e1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.json @@ -0,0 +1,18 @@ +["html", ["p", "Valid nesting:"], + ["p", ["strong", ["a", { + "href": "url" + }, + "Link"]]], + ["p", ["a", { + "href": "url" + }, + ["strong", "Link"]]], + ["p", ["strong", ["a", { + "href": "url" + }, + ["strong", "Link"]]]], + ["p", "Invalid nesting:"], + ["p", ["a", { + "href": "url" + }, + "[Link](url)"]]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.text new file mode 100644 index 000000000..791538c06 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.text @@ -0,0 +1,11 @@ +Valid nesting: + +**[Link](url)** + +[**Link**](url) + +**[**Link**](url)** + +Invalid nesting: + +[[Link](url)](url) \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.xhtml new file mode 100644 index 000000000..37845d311 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.xhtml @@ -0,0 +1,11 @@ +

    Valid nesting:

    + +

    Link

    + +

    Link

    + +

    Link

    + +

    Invalid nesting:

    + +

    [Link](url)

    diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.json new file mode 100644 index 000000000..ce3dfae49 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.json @@ -0,0 +1,3 @@ +["html", ["p", "This tests for a bug where quotes escaped by PHP when using \u000a", ["code", "preg_replace"], " with the ", ["code", "/e"], " modifier must be correctly unescaped\u000a(hence the ", ["code", "_UnslashQuotes"], " function found only in PHP Markdown)."], + ["p", "Headers below should appear exactly as they are typed (no backslash\u000aadded or removed)."], "\u000a\u000a", ["h1", "Header \"quoted\\\" again \\\"\""], "\u000a\u000a", ["h2", "Header \"quoted\\\" again \\\"\""], "\u000a\u000a", ["h3", "Header \"quoted\\\" again \\\"\""], "\u000a\u000a", ["p", "Test with tabs for ", ["code", "_Detab"], ":"], + ["pre", ["code", "Code 'block' with some \"tabs\" and \"quotes\"\u000a"]]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.text new file mode 100644 index 000000000..246b60d1c --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.text @@ -0,0 +1,22 @@ +This tests for a bug where quotes escaped by PHP when using +`preg_replace` with the `/e` modifier must be correctly unescaped +(hence the `_UnslashQuotes` function found only in PHP Markdown). + + + +Headers below should appear exactly as they are typed (no backslash +added or removed). + +Header "quoted\" again \\"" +=========================== + +Header "quoted\" again \\"" +--------------------------- + +### Header "quoted\" again \\"" ### + + + +Test with tabs for `_Detab`: + + Code 'block' with some "tabs" and "quotes" diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.xhtml new file mode 100644 index 000000000..c982417b6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.xhtml @@ -0,0 +1,17 @@ +

    This tests for a bug where quotes escaped by PHP when using +preg_replace with the /e modifier must be correctly unescaped +(hence the _UnslashQuotes function found only in PHP Markdown).

    + +

    Headers below should appear exactly as they are typed (no backslash +added or removed).

    + +

    Header "quoted\" again \""

    + +

    Header "quoted\" again \""

    + +

    Header "quoted\" again \""

    + +

    Test with tabs for _Detab:

    + +
    Code    'block' with    some    "tabs"  and "quotes"
    +
    diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.json new file mode 100644 index 000000000..207a072f2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.json @@ -0,0 +1,30 @@ +["html", ["p", ["a", { + "href": "/url(test)", + "title": "title" +}, +"Inline link 1 with parens"], "."], + ["p", ["a", { + "href": "/url(test)", + "title": "title" + }, + "Inline link 2 with parens"], "."], + ["p", ["a", { + "href": "/url(test)", + "title": "title" + }, + "Inline link 3 with non-escaped parens"], "."], + ["p", ["a", { + "href": "/url(test)", + "title": "title" + }, + "Inline link 4 with non-escaped parens"], "."], + ["p", ["a", { + "href": "/url(test)", + "title": "title" + }, + "Reference link 1 with parens"], "."], + ["p", ["a", { + "href": "/url(test)", + "title": "title" + }, + "Reference link 2 with parens"], "."]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.text new file mode 100644 index 000000000..bb7be4fb8 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.text @@ -0,0 +1,14 @@ +[Inline link 1 with parens](/url\(test\) "title"). + +[Inline link 2 with parens]( "title"). + +[Inline link 3 with non-escaped parens](/url(test) "title"). + +[Inline link 4 with non-escaped parens]( "title"). + +[Reference link 1 with parens][1]. + +[Reference link 2 with parens][2]. + + [1]: /url(test) "title" + [2]: "title" diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.xhtml new file mode 100644 index 000000000..a81aa029b --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.xhtml @@ -0,0 +1,11 @@ +

    Inline link 1 with parens.

    + +

    Inline link 2 with parens.

    + +

    Inline link 3 with non-escaped parens.

    + +

    Inline link 4 with non-escaped parens.

    + +

    Reference link 1 with parens.

    + +

    Reference link 2 with parens.

    \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.json b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.json new file mode 100644 index 000000000..116b198b0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.json @@ -0,0 +1,6 @@ +["html", ["p", "Paragraph and no space:\u000a* ciao"], + ["p", "Paragraph and 1 space:\u000a * ciao"], + ["p", "Paragraph and 3 spaces:\u000a * ciao"], + ["p", "Paragraph and 4 spaces:\u000a * ciao"], + ["p", "Paragraph before header:"], "\u000a\u000a", ["h1", "Header"], "\u000a\u000a", ["p", "Paragraph before blockquote:"], + ["blockquote", ["p", "Some quote."]]] diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.text b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.text new file mode 100644 index 000000000..ae4cdcb46 --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.text @@ -0,0 +1 @@ +Paragraph and no space: * ciao Paragraph and 1 space: * ciao Paragraph and 3 spaces: * ciao Paragraph and 4 spaces: * ciao Paragraph before header: #Header Paragraph before blockquote: >Some quote. \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.xhtml b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.xhtml new file mode 100644 index 000000000..86554308b --- /dev/null +++ b/node_modules/markdown/test/fixtures/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.xhtml @@ -0,0 +1,21 @@ +

    Paragraph and no space: +* ciao

    + +

    Paragraph and 1 space: + * ciao

    + +

    Paragraph and 3 spaces: + * ciao

    + +

    Paragraph and 4 spaces: + * ciao

    + +

    Paragraph before header:

    + +

    Header

    + +

    Paragraph before blockquote:

    + +
    +

    Some quote.

    +
    diff --git a/node_modules/markdown/test/fixtures/README b/node_modules/markdown/test/fixtures/README new file mode 100644 index 000000000..6d3176fa6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/README @@ -0,0 +1,42 @@ +All of these tests (so far) were copied from: + + github.com/bobtfish/text-markdown/t @ 29ffc3 + +which is licensed as follows: + +Copyright (c) 2004, John Gruber + +All rights reserved. + +MultiMarkdown changes Copyright (c) 2005-2006 Fletcher T. Penney + All rights reserved. + +Text::MultiMarkdown changes Copyright (c) 2006-2009 Darren Kulp + and Tomas Doran + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +* Neither the name "Markdown" nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +This software is provided by the copyright holders and contributors "as +is" and any express or implied warranties, including, but not limited +to, the implied warranties of merchantability and fitness for a +particular purpose are disclaimed. In no event shall the copyright owner +or contributors be liable for any direct, indirect, incidental, special, +exemplary, or consequential damages (including, but not limited to, +procurement of substitute goods or services; loss of use, data, or +profits; or business interruption) however caused and on any theory of +liability, whether in contract, strict liability, or tort (including +negligence or otherwise) arising in any way out of the use of this +software, even if advised of the possibility of such damage. diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/CoreDumps5.8.json b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/CoreDumps5.8.json new file mode 100644 index 000000000..899061f40 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/CoreDumps5.8.json @@ -0,0 +1,3 @@ +["html", ["ul", ["li", "Unordered\u000a", ["ol", ["li", "Ordered"]]]], + ["p", "Text"], + ["ul", ["li", "Unordered\u000a", ["ol", ["li", "Ordered"]]]]] diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/CoreDumps5.8.text b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/CoreDumps5.8.text new file mode 100644 index 000000000..30ce3125b --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/CoreDumps5.8.text @@ -0,0 +1,7 @@ +* Unordered +1. Ordered + +Text + +* Unordered +1. Ordered diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/CoreDumps5.8.xhtml b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/CoreDumps5.8.xhtml new file mode 100644 index 000000000..8a2963e51 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/CoreDumps5.8.xhtml @@ -0,0 +1,15 @@ +
      +
    • Unordered +
        +
      1. Ordered
      2. +
    • +
    + +

    Text

    + +
      +
    • Unordered +
        +
      1. Ordered
      2. +
    • +
    diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Emphasis.json b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Emphasis.json new file mode 100644 index 000000000..f38d5747f --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Emphasis.json @@ -0,0 +1,2 @@ +["html", ["p", ["em", "M*A*S*H"], " here I am going with original Markdown.."], + ["p", "foo_bar_bas I am going with PHP Markdown Extra here (by default, there is an option for original style behavior - see\u000adocs).."]] diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Emphasis.text b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Emphasis.text new file mode 100644 index 000000000..104f90e43 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Emphasis.text @@ -0,0 +1,4 @@ +_M*A*S*H_ here I am going with original Markdown.. + +foo_bar_bas I am going with PHP Markdown Extra here (by default, there is an option for original style behavior - see +docs).. diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Emphasis.xhtml b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Emphasis.xhtml new file mode 100644 index 000000000..96cef6d92 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Emphasis.xhtml @@ -0,0 +1,4 @@ +

    M*A*S*H here I am going with original Markdown..

    + +

    foo_bar_bas I am going with PHP Markdown Extra here (by default, there is an option for original style behavior - see +docs)..

    diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML-Comment-encoding.json b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML-Comment-encoding.json new file mode 100644 index 000000000..93946a000 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML-Comment-encoding.json @@ -0,0 +1,3 @@ +["html", ["p", "A markdown paragraph with a comment that ", ["em", "will"], " be processed by original Markdown. However MultiMarkdown and Pandoc do not convert the & sigil in the comment.. "], + ["p", "A paragraph "], + ["p"]] diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML-Comment-encoding.text b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML-Comment-encoding.text new file mode 100644 index 000000000..557c6afc1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML-Comment-encoding.text @@ -0,0 +1,5 @@ +A markdown paragraph with a comment that *will* be processed by original Markdown. However MultiMarkdown and Pandoc do not convert the & sigil in the comment.. + +A paragraph + +

    diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML-Comment-encoding.xhtml b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML-Comment-encoding.xhtml new file mode 100644 index 000000000..b19577fda --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML-Comment-encoding.xhtml @@ -0,0 +1,5 @@ +

    A markdown paragraph with a comment that will be processed by original Markdown. However MultiMarkdown and Pandoc do not convert the & sigil in the comment..

    + +

    A paragraph

    + +

    diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML5-attributes.html b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML5-attributes.html new file mode 100644 index 000000000..9dc2b4714 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML5-attributes.html @@ -0,0 +1,11 @@ +

    foo

    + +

    +this is a paragraph +

    + +

    +an h2 +

    + +

    normal

    diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML5-attributes.json b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML5-attributes.json new file mode 100644 index 000000000..1c5cf39fc --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML5-attributes.json @@ -0,0 +1,10 @@ +["html", ["h1", { + "class": "foo" +}, +"foo"], "\u000a\u000a", ["p", { + "class": "bar" +}, +"\u000athis is a paragraph\u000a"], "\u000a\u000a", ["h2", { + "class": "bar" +}, +"\u000aan h2\u000a"], "\u000a\u000a", ["p", "normal"]] diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML5-attributes.text b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML5-attributes.text new file mode 100644 index 000000000..66d655ac0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/HTML5-attributes.text @@ -0,0 +1,11 @@ +

    foo

    + +

    +this is a paragraph +

    + +

    +an h2 +

    + +normal diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_brackets.json b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_brackets.json new file mode 100644 index 000000000..c4577b696 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_brackets.json @@ -0,0 +1,5 @@ +["html", ["p", ["a", { + "href": "http://en.wikipedia.org/wiki/ZIP_(file_format)", + "title": "ZIP (file format) - Wikipedia, the free encyclopedia" +}, +"ZIP archives"]]] diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_brackets.text b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_brackets.text new file mode 100644 index 000000000..6dd3c5d59 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_brackets.text @@ -0,0 +1,2 @@ +[ZIP archives](http://en.wikipedia.org/wiki/ZIP_(file_format) "ZIP (file format) - Wikipedia, the free encyclopedia") + diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_brackets.xhtml b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_brackets.xhtml new file mode 100644 index 000000000..75376b983 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_brackets.xhtml @@ -0,0 +1 @@ +

    ZIP archives

    diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_1.html b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_1.html new file mode 100644 index 000000000..386174a2d --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_1.html @@ -0,0 +1,4 @@ +

    http://bugs.debian.org/459885

    + +

    link +text

    diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_1.json b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_1.json new file mode 100644 index 000000000..a793616b9 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_1.json @@ -0,0 +1,8 @@ +["html", ["p", ["a", { + "href": "http://bugs.debian.org/459885" +}, +"http://bugs.debian.org/459885"]], + ["p", ["a", { + "href": "/someurl/" + }, + "link \u000atext"]]] diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_1.text b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_1.text new file mode 100644 index 000000000..9744d4f8a --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_1.text @@ -0,0 +1,7 @@ + + +[link +text] [link +id] + +[link id]: /someurl/ diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_2.html b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_2.html new file mode 100644 index 000000000..7be828bdf --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_2.html @@ -0,0 +1,4 @@ +

    http://bugs.debian.org/459885

    + +

    Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla bla. This is my
    +University
    .

    diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_2.json b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_2.json new file mode 100644 index 000000000..6a43f3b1b --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_2.json @@ -0,0 +1,8 @@ +["html", ["p", ["a", { + "href": "http://bugs.debian.org/459885" +}, +"http://bugs.debian.org/459885"]], + ["p", "Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla bla. This is ", ["a", { + "href": "http://www.ua.es" + }, + "my ", ["br"], "\u000aUniversity"], "."]] diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_2.text b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_2.text new file mode 100644 index 000000000..773679e6e --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_multiline_bugs_2.text @@ -0,0 +1,6 @@ + + +Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla bla. This is [my +University][]. + + [my university]: http://www.ua.es diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_reference_style.json b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_reference_style.json new file mode 100644 index 000000000..ea65cafd3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_reference_style.json @@ -0,0 +1,88 @@ +["html", ["p", "Foo ", ["a", { + "href": "/url/", + "title": "Title" +}, +"bar"], "."], + ["p", "Foo ", ["a", { + "href": "/url/", + "title": "Title" + }, + "bar"], "."], + ["p", "Foo ", ["a", { + "href": "/url/", + "title": "Title" + }, + "bar"], "."], + ["p", "With ", ["a", { + "href": "/url/" + }, + "embedded [brackets]"], "."], + ["p", "Indented ", ["a", { + "href": "/url" + }, + "once"], "."], + ["p", "Indented ", ["a", { + "href": "/url" + }, + "twice"], "."], + ["p", "Indented ", ["a", { + "href": "/url" + }, + "thrice"], "."], + ["p", "Indented [four][] times."], + ["pre", ["code", "[four]: /url\u000a"]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["p", ["a", { + "href": "foo" +}, +"this"], " should work"], + ["p", "So should ", ["a", { + "href": "foo" + }, + "this"], "."], + ["p", "And ", ["a", { + "href": "foo" + }, + "this"], "."], + ["p", "And ", ["a", { + "href": "foo" + }, + "this"], "."], + ["p", "And ", ["a", { + "href": "foo" + }, + "this"], "."], + ["p", "But not [that] []."], + ["p", "Nor [that][]."], + ["p", "Nor [that]."], + ["p", "[Something in brackets like ", ["a", { + "href": "foo" + }, + "this"], " should work]"], + ["p", "[Same with ", ["a", { + "href": "foo" + }, + "this"], ".]"], + ["p", "In this case, ", ["a", { + "href": "/somethingelse/" + }, + "this"], " points to something else."], + ["p", "Backslashing should suppress [this] and [this]."], "\u000a\u000a", ["hr"], "\u000a\u000a", ["p", "Here's one where the ", ["a", { + "href": "/url/" +}, +"link\u000abreaks"], " across lines."], + ["p", "Here's another where the ", ["a", { + "href": "/url/" + }, + "link \u000abreaks"], " across lines, but with a line-ending space."], + ["p", "More multi line edge cases. First a broken link id"], + ["p", ["a", { + "href": "/someurl/" + }, + "link \u000atext"]], + ["p", "Then a line with 2 chars of trailing whitespace and a line break ", ["a", { + "href": "http://www.ua.es" + }, + "my ", ["br"], "\u000aUniversity"], "."], + ["p", "The a shortcut reference link with 2 chars of trailing whitespace and a line break ", ["a", { + "href": "http://www.ua.es" + }, + "my ", ["br"], "\u000aUniversity"], "."]] diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_reference_style.text b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_reference_style.text new file mode 100644 index 000000000..8b1aaf960 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_reference_style.text @@ -0,0 +1,87 @@ +Foo [bar] [1]. + +Foo [bar][1]. + +Foo [bar] +[1]. + +[1]: /url/ "Title" + + +With [embedded [brackets]] [b]. + + +Indented [once][]. + +Indented [twice][]. + +Indented [thrice][]. + +Indented [four][] times. + + [once]: /url + + [twice]: /url + + [thrice]: /url + + [four]: /url + + +[b]: /url/ + +* * * + +[this] [this] should work + +So should [this][this]. + +And [this] []. + +And [this][]. + +And [this]. + +But not [that] []. + +Nor [that][]. + +Nor [that]. + +[Something in brackets like [this][] should work] + +[Same with [this].] + +In this case, [this](/somethingelse/) points to something else. + +Backslashing should suppress \[this] and [this\]. + +[this]: foo + + +* * * + +Here's one where the [link +breaks] across lines. + +Here's another where the [link +breaks] across lines, but with a line-ending space. + + +[link breaks]: /url/ + +More multi line edge cases. First a broken link id + +[link +text] [link +id] + +[link id]: /someurl/ + +Then a line with 2 chars of trailing whitespace and a line break [my +University][]. + +The a shortcut reference link with 2 chars of trailing whitespace and a line break [my +University]. + + [my university]: http://www.ua.es \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_reference_style.xhtml b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_reference_style.xhtml new file mode 100644 index 000000000..07937219d --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Links_reference_style.xhtml @@ -0,0 +1,63 @@ +

    Foo bar.

    + +

    Foo bar.

    + +

    Foo bar.

    + +

    With embedded [brackets].

    + +

    Indented once.

    + +

    Indented twice.

    + +

    Indented thrice.

    + +

    Indented [four][] times.

    + +
    [four]: /url
    +
    + +
    + +

    this should work

    + +

    So should this.

    + +

    And this.

    + +

    And this.

    + +

    And this.

    + +

    But not [that] [].

    + +

    Nor [that][].

    + +

    Nor [that].

    + +

    [Something in brackets like this should work]

    + +

    [Same with this.]

    + +

    In this case, this points to something else.

    + +

    Backslashing should suppress [this] and [this].

    + +
    + +

    Here's one where the link +breaks across lines.

    + +

    Here's another where the link +breaks across lines, but with a line-ending space.

    + +

    More multi line edge cases. First a broken link id

    + +

    link +text

    + +

    Then a line with 2 chars of trailing whitespace and a line break my
    +University
    .

    + +

    The a shortcut reference link with 2 chars of trailing whitespace and a line break my
    +University
    .

    diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.json b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.json new file mode 100644 index 000000000..3c89c1b90 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.json @@ -0,0 +1,8 @@ +["html", ["h1", "text1"], "\u000a\u000a", ["ul", ["li", ["p", "text2"], + ["ul", ["li", "text3"]], + ["p", "text4"]]], "\u000a\u000a", ["h2", "text5"], "\u000a\u000a", ["ul", ["li", ["p", "text6"], + ["ul", ["li", "text7"]], + ["p", "text8"]]], "\u000a\u000a", ["h2", "text9"], "\u000a\u000a", ["ul", ["li", ["p", "text10"], + ["ul", ["li", "text11"]], + ["p", "text12"], + ["p", "text13"]]]] diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.text b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.text new file mode 100644 index 000000000..6bd63e8df --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.text @@ -0,0 +1,25 @@ +# text1 + + * text2 + + * text3 + + text4 + +## text5 + + * text6 + + * text7 + + text8 + +## text9 + + * text10 + + * text11 + + text12 + + text13 diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.xhtml b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.xhtml new file mode 100644 index 000000000..9c7617c41 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.xhtml @@ -0,0 +1,37 @@ +

    text1

    + +
      +
    • text2

      + +
        +
      • text3
      • +
      + +

      text4

    • +
    + +

    text5

    + +
      +
    • text6

      + +
        +
      • text7
      • +
      + +

      text8

    • +
    + +

    text9

    + +
      +
    • text10

      + +
        +
      • text11
      • +
      + +

      text12

      + +

      text13

    • +
    diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/PHP-ASP_tags.json b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/PHP-ASP_tags.json new file mode 100644 index 000000000..347d3d96d --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/PHP-ASP_tags.json @@ -0,0 +1,5 @@ +["html", ["p", "I am going with the same as Markdown.pl 1.0.2b8 here. ", ["em", "However"], " I reserve the right to also leave Template toolkit alone at a later date if I need to.."], "\u000a\u000a", ["foo", { + "ok": "ok", + "_": "_" +}, +"\u000a\u000a", "\u000a\u000a", ["p", "[% template_toolkit %]"]]] diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/PHP-ASP_tags.text b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/PHP-ASP_tags.text new file mode 100644 index 000000000..6cd1887c7 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/PHP-ASP_tags.text @@ -0,0 +1,7 @@ +I am going with the same as Markdown.pl 1.0.2b8 here. *However* I reserve the right to also leave Template toolkit alone at a later date if I need to.. + +<%foo ok %> + + + +[% template_toolkit %] \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/PHP-ASP_tags.xhtml b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/PHP-ASP_tags.xhtml new file mode 100644 index 000000000..96eb227a7 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/PHP-ASP_tags.xhtml @@ -0,0 +1,7 @@ +

    I am going with the same as Markdown.pl 1.0.2b8 here. However I reserve the right to also leave Template toolkit alone at a later date if I need to..

    + +<%foo ok %> + + + +

    [% template_toolkit %]

    diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Unicode.json b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Unicode.json new file mode 100644 index 000000000..2321f0cb3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Unicode.json @@ -0,0 +1,3 @@ +["html", ["blockquote", ["p", "Fo—o"]], + ["p", "μορεοϋερ"], + ["blockquote", ["p", "ßåř"]]] diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Unicode.text b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Unicode.text new file mode 100644 index 000000000..4b63bea87 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Unicode.text @@ -0,0 +1,5 @@ +> Fo—o + +μορεοϋερ + +> ßåř diff --git a/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Unicode.xhtml b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Unicode.xhtml new file mode 100644 index 000000000..ca06ddde4 --- /dev/null +++ b/node_modules/markdown/test/fixtures/Text-Markdown.mdtest/Unicode.xhtml @@ -0,0 +1,9 @@ +
    +

    Fo—o

    +
    + +

    μορεοϋερ

    + +
    +

    ßåř

    +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/abbreviations.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/abbreviations.html new file mode 100644 index 000000000..b67078545 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/abbreviations.html @@ -0,0 +1,3 @@ +

    The HTML specification is maintained by the W3C.

    + +

    Operation Tigra Genesis is going well.

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/abbreviations.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/abbreviations.json new file mode 100644 index 000000000..13a8f30a0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/abbreviations.json @@ -0,0 +1,8 @@ +["html", ["p", "The ", ["abbr", { + "title": "Hyper Text Markup Language" +}, +"HTML"], " specification is maintained by the ", ["abbr", { + "title": "World Wide Web Consortium" +}, +"W3C"], "."], + ["p", "Operation ", ["abbr", "Tigra Genesis"], " is going well."]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/abbreviations.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/abbreviations.text new file mode 100644 index 000000000..655131328 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/abbreviations.text @@ -0,0 +1,11 @@ + +The HTML specification is maintained by the W3C. + +*[HTML]: Hyper Text Markup Language +*[W3C]: World Wide Web Consortium + + + +Operation Tigra Genesis is going well. + +*[Tigra Genesis]: diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/alt.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/alt.html new file mode 100644 index 000000000..d4f1d3179 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/alt.html @@ -0,0 +1 @@ +

    bar

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/alt.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/alt.json new file mode 100644 index 000000000..dace1253c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/alt.json @@ -0,0 +1,4 @@ +["html", ["p", ["img", { + "src": "/foo.jpg", + "alt": "bar" +}]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/alt.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/alt.text new file mode 100644 index 000000000..915c68f69 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/alt.text @@ -0,0 +1,3 @@ + ![bar](/foo.jpg) + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/blank.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/blank.html new file mode 100644 index 000000000..f735d0397 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/blank.html @@ -0,0 +1,3 @@ +

    Linea 1

    + +

    Linea 2

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/blank.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/blank.json new file mode 100644 index 000000000..92f939437 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/blank.json @@ -0,0 +1,2 @@ +["html", ["p", "Linea 1"], + ["p", "Linea 2"]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/blank.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/blank.text new file mode 100644 index 000000000..e065a1221 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/blank.text @@ -0,0 +1,4 @@ + +Linea 1 + +Linea 2 diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/blanks_in_code.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/blanks_in_code.html new file mode 100644 index 000000000..a4ef5db6e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/blanks_in_code.html @@ -0,0 +1,16 @@ +

    This block is composed of three lines:

    + +
    one
    +
    +three
    + +

    This block is composed of 5

    + +
    one
    +
    +
    +four
    + +

    This block is composed of 2

    + +
    two
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/blanks_in_code.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/blanks_in_code.json new file mode 100644 index 000000000..8e405c38c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/blanks_in_code.json @@ -0,0 +1,6 @@ +["html", ["p", "This block is composed of three lines:"], + ["pre", ["code", "one\u000a\u000athree"]], + ["p", "This block is composed of 5"], + ["pre", ["code", "one\u000a\u000a\u000afour"]], + ["p", "This block is composed of 2"], + ["pre", ["code", "two"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/blanks_in_code.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/blanks_in_code.text new file mode 100644 index 000000000..0f2d7c322 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/blanks_in_code.text @@ -0,0 +1,22 @@ +This block is composed of three lines: + + one + + three + +This block is composed of 5 + + + one + + + four + + +This block is composed of 2 + + + two + + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_def.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_def.html new file mode 100644 index 000000000..ba6f60cfb --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_def.html @@ -0,0 +1 @@ +

    test:

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_def.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_def.json new file mode 100644 index 000000000..b2431e6b4 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_def.json @@ -0,0 +1 @@ +["html", ["p", ["span", "test"], ":"]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_def.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_def.text new file mode 100644 index 000000000..84893556e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_def.text @@ -0,0 +1,2 @@ +[test][]: + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_table.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_table.html new file mode 100644 index 000000000..ae9405217 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_table.html @@ -0,0 +1,3 @@ +

    hello

    + +
    hh
    c1c2
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_table.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_table.json new file mode 100644 index 000000000..ec42d74c8 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_table.json @@ -0,0 +1,20 @@ +["html", ["p", { + "class": "class1", + "style": "color:red" +}, +"hello"], "\u000a", ["table", { + "class": "class1", + "summary": "Table summary", + "style": "color:red" +}, +["thead", ["tr", ["th", "h"], + ["th", "h"]]], + ["tbody", ["tr", ["th", { + "scope": "row", + "style": "text-align: left;" + }, + " c1"], + ["td", { + "style": "text-align: left;" + }, + "c2"]]]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_table.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_table.text new file mode 100644 index 000000000..f18d1b8f5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/bug_table.text @@ -0,0 +1,13 @@ + + +hello +{: summary="Table summary" .class1 style="color:red"} + +h | h +----------|-- +{:t} c1 | c2 +{: summary="Table summary" .class1 style="color:red"} + + + +{:t: scope="row"} diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/code.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code.html new file mode 100644 index 000000000..a20950b89 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code.html @@ -0,0 +1,6 @@ +

    Here is an example of AppleScript:

    + +
    tell application "Foo"
    +    beep
    +end tell
    +	tab
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/code.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code.json new file mode 100644 index 000000000..d0084202f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code.json @@ -0,0 +1,2 @@ +["html", ["p", "Here is an example of AppleScript:"], + ["pre", ["code", "tell application \"Foo\"\u000a beep\u000aend tell\u000a\u0009tab"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/code.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code.text new file mode 100644 index 000000000..3656212a0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code.text @@ -0,0 +1,7 @@ +Here is an example of AppleScript: + + tell application "Foo" + beep + end tell + tab + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/code2.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code2.html new file mode 100644 index 000000000..9401dba53 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code2.html @@ -0,0 +1,5 @@ +
    +

    Code

    + +
    Ciao
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/code2.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code2.json new file mode 100644 index 000000000..3ea227549 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code2.json @@ -0,0 +1,2 @@ +["html", ["blockquote", ["p", "Code"], + ["pre", ["code", "Ciao"]]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/code2.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code2.text new file mode 100644 index 000000000..3f4ea5010 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code2.text @@ -0,0 +1,3 @@ +> Code +> +> Ciao diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/code3.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code3.html new file mode 100644 index 000000000..655a95222 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code3.html @@ -0,0 +1,15 @@ +

    This is code (4 spaces):

    + +
    Code
    + +

    This is not code

    + +
    Code
    + +

    This is code (1 tab):

    + +
    Code
    + +

    This is not code

    + +
    Code
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/code3.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code3.json new file mode 100644 index 000000000..d7f3dc1ab --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code3.json @@ -0,0 +1,8 @@ +["html", ["p", "This is code (4 spaces):"], + ["pre", ["code", "Code"]], + ["p", "This is not code"], + ["pre", ["code", "Code"]], + ["p", "This is code (1 tab):"], + ["pre", ["code", "Code"]], + ["p", "This is not code"], + ["pre", ["code", "Code"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/code3.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code3.text new file mode 100644 index 000000000..2e7c65252 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/code3.text @@ -0,0 +1,17 @@ + +This is code (4 spaces): + + Code +This is not code + + Code + +This is code (1 tab): + + Code +This is not code + + Code + + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/convert.pl b/node_modules/markdown/test/fixtures/docs-maruku-unittest/convert.pl new file mode 100644 index 000000000..20346c866 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/convert.pl @@ -0,0 +1,47 @@ +use strict; +use warnings; +open(LS, "ls -1 *.md|") or die; +my @list = ; +close(LS); + +foreach (@list) { + chomp; + s/\.md$//; + my ($markdown, $html) = convert_to_perl_test("$_.md"); + open(MD, ">$_.text") or die; + print MD $markdown; + close(MD); + open(MD, ">$_.html") or die; + print MD $html; + close(MD); +} + +sub convert_to_perl_test { + my ($file) = @_; + my $FH; + open($FH, '<', $file) or die("Cannot open $file"); + my ($markdown, $html); + my @lines = <$FH>; + close($FH); + my $mode = 0; + foreach my $l (@lines) { + if ($l =~ /^\*\*\*/) { + $mode = 0; + if ($l =~ /Markdown input/i) { + $mode = 1; + } + if ($l =~ /Output of to_html/) { + $mode = 2; + } + } + elsif ($mode > 0) { + if (1 == $mode) { + $markdown .= $l; + } + else { + $html .= $l; + } + } + } + return ($markdown, $html); +} diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/data_loss.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/data_loss.html new file mode 100644 index 000000000..32463a979 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/data_loss.html @@ -0,0 +1,3 @@ +
      +
    1. abcd efgh ijkl
    2. +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/data_loss.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/data_loss.json new file mode 100644 index 000000000..453cb50d9 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/data_loss.json @@ -0,0 +1 @@ +["html", ["ol", ["li", "abcd efgh ijkl"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/data_loss.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/data_loss.text new file mode 100644 index 000000000..a353aeb18 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/data_loss.text @@ -0,0 +1,4 @@ +1. abcd +efgh +ijkl + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/easy.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/easy.html new file mode 100644 index 000000000..8649e5560 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/easy.html @@ -0,0 +1 @@ +

    Hello! how are you?

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/easy.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/easy.json new file mode 100644 index 000000000..a4ae99de2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/easy.json @@ -0,0 +1 @@ +["html", ["p", ["em", "Hello!"], " how are ", ["strong", "you"], "?"]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/easy.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/easy.text new file mode 100644 index 000000000..d5ad50c0d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/easy.text @@ -0,0 +1 @@ +*Hello!* how are **you**? diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/email.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/email.html new file mode 100644 index 000000000..fe1000d7f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/email.html @@ -0,0 +1 @@ +

    This is an email address: andrea@invalid.it

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/email.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/email.json new file mode 100644 index 000000000..6cb0b7a0c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/email.json @@ -0,0 +1,4 @@ +["html", ["p", "This is an email address: ", ["a", { + "href": "mailto:andrea@invalid.it" +}, +"andrea@invalid.it"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/email.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/email.text new file mode 100644 index 000000000..4d154e4d4 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/email.text @@ -0,0 +1,4 @@ + + +This is an email address: + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/entities.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/entities.html new file mode 100644 index 000000000..94239c6bc --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/entities.html @@ -0,0 +1,14 @@ +

    Maruku translates HTML entities to the equivalent in LaTeX:

    + + + + + +
    EntityResult
    &copy;©
    &pound;£
    a&nbsp;ba b
    &lambda;λ
    &mdash;
    +

    Entity-substitution does not happen in code blocks or inline code.

    + +

    The following should not be translated:

    + +
    &copy;
    + +

    It should read just like this: &copy;.

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/entities.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/entities.json new file mode 100644 index 000000000..cd4853731 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/entities.json @@ -0,0 +1,45 @@ +["html", ["p", "Maruku translates HTML entities to the equivalent in LaTeX:"], "\u000a", ["table", ["thead", ["tr", ["th", "Entity"], + ["th", "Result"]]], + ["tbody", ["tr", ["td", { + "style": "text-align: left;" + }, + ["code", "©"]], + ["td", { + "style": "text-align: left;" + }, + "©"]], + ["tr", ["td", { + "style": "text-align: left;" + }, + ["code", "£"]], + ["td", { + "style": "text-align: left;" + }, + "£"]], + ["tr", ["td", { + "style": "text-align: left;" + }, + ["code", "a b"]], + ["td", { + "style": "text-align: left;" + }, + "a b"]], + ["tr", ["td", { + "style": "text-align: left;" + }, + ["code", "λ"]], + ["td", { + "style": "text-align: left;" + }, + "λ"]], + ["tr", ["td", { + "style": "text-align: left;" + }, + ["code", "—"]], + ["td", { + "style": "text-align: left;" + }, + "—"]]]], "\u000a", ["p", "Entity-substitution does not happen in code blocks or inline code."], + ["p", "The following should not be translated:"], + ["pre", ["code", "©"]], + ["p", "It should read just like this: ", ["code", "©"], "."]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/entities.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/entities.text new file mode 100644 index 000000000..7ad0b9e64 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/entities.text @@ -0,0 +1,20 @@ +Maruku translates HTML entities to the equivalent in LaTeX: + +Entity | Result +------------|---------- +`©` | © +`£` | £ +`a b` | a b +`λ` | λ +`—` | — + + +Entity-substitution does not happen in code blocks or inline code. + +The following should not be translated: + + © + +It should read just like this: `©`. + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/escaping.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/escaping.html new file mode 100644 index 000000000..165a7844b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/escaping.html @@ -0,0 +1,9 @@ +

    Hello: ! ! ` { } [ ] ( ) # . ! * * *

    + +

    Ora, emphasis, bold, * <- due asterischi-> * , un underscore-> _ , emphasis, incrediblee!

    + +

    This is Code with a special: -> ` <-(after)

    + +

    Start of paragraph

    + +

    End of paragraph

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/escaping.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/escaping.json new file mode 100644 index 000000000..d0d2cbc5e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/escaping.json @@ -0,0 +1,5 @@ +["html", ["p", "Hello: ! ! ` { } [ ] ( ) # . ! * * *"], + ["p", "Ora, ", ["em", "emphasis"], ", ", ["strong", "bold"], ", * <- due asterischi-> * , un underscore-> _ , ", ["em", "emphasis"], ", incre", ["em", "dible"], "e!"], + ["p", "This is ", ["code", "Code with a special: -> ` <-"], "(after)"], + ["p", ["code", "Start "], " of paragraph"], + ["p", "End of ", ["code", "paragraph "]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/escaping.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/escaping.text new file mode 100644 index 000000000..ff043c2ad --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/escaping.text @@ -0,0 +1,11 @@ + Hello: ! \! \` \{ \} \[ \] \( \) \# \. \! * \* * + + +Ora, *emphasis*, **bold**, * <- due asterischi-> * , un underscore-> _ , _emphasis_, + incre*dible*e! + +This is ``Code with a special: -> ` <- ``(after) + +`Start ` of paragraph + +End of `paragraph ` diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_dl.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_dl.html new file mode 100644 index 000000000..f66d4da3e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_dl.html @@ -0,0 +1,9 @@ +
    +
    Apple
    + +
    Pomaceous fruit of plants of the genus Malus in the family Rosaceae.
    + +
    Orange
    + +
    The fruit of an evergreen tree of the genus Citrus.
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_dl.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_dl.json new file mode 100644 index 000000000..f54ed0f4e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_dl.json @@ -0,0 +1,4 @@ +["html", ["dl", ["dt", "Apple"], + ["dd", "Pomaceous fruit of plants of the genus Malus in the family Rosaceae."], + ["dt", "Orange"], + ["dd", "The fruit of an evergreen tree of the genus Citrus."]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_dl.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_dl.text new file mode 100644 index 000000000..e9c01dc8b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_dl.text @@ -0,0 +1,10 @@ +CSS: style.css + + +Apple +: Pomaceous fruit of plants of the genus Malus in + the family Rosaceae. + +Orange +: The fruit of an evergreen tree of the genus Citrus. + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_header_id.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_header_id.html new file mode 100644 index 000000000..20ca1f63a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_header_id.html @@ -0,0 +1,9 @@ +

    Header 1

    + +

    Header 2

    + +

    Header 3

    + +

    Then you can create links to different parts of the same document like this:

    + +

    Link back to header 1, Link back to header 2, Link back to header 3

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_header_id.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_header_id.json new file mode 100644 index 000000000..87e879d85 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_header_id.json @@ -0,0 +1,20 @@ +["html", ["h1", { + "id": "header1" +}, +"Header 1"], "\u000a\u000a", ["h2", { + "id": "header2" +}, +"Header 2"], "\u000a\u000a", ["h3", { + "id": "header3" +}, +"Header 3"], "\u000a\u000a", ["p", "Then you can create links to different parts of the same document like this:"], + ["p", ["a", { + "href": "#header1" + }, + "Link back to header 1"], ", ", ["a", { + "href": "#header2" + }, + "Link back to header 2"], ", ", ["a", { + "href": "#header3" + }, + "Link back to header 3"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_header_id.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_header_id.text new file mode 100644 index 000000000..969f94777 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_header_id.text @@ -0,0 +1,14 @@ +Header 1 {#header1} +======== + +Header 2 {#header2} +-------- + +### Header 3 ### {#header3} + +Then you can create links to different parts of the same document like this: + +[Link back to header 1](#header1), +[Link back to header 2](#header2), +[Link back to header 3](#header3) + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_table1.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_table1.html new file mode 100644 index 000000000..4c780de3e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_table1.html @@ -0,0 +1,3 @@ + + +
    First HeaderSecond Header
    Content CellContent Cell
    Content CellContent Cell
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_table1.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_table1.json new file mode 100644 index 000000000..e635b2c61 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_table1.json @@ -0,0 +1,18 @@ +["html", ["table", ["thead", ["tr", ["th", "First Header"], + ["th", "Second Header"]]], + ["tbody", ["tr", ["td", { + "style": "text-align: left;" + }, + "Content Cell"], + ["td", { + "style": "text-align: left;" + }, + "Content Cell"]], + ["tr", ["td", { + "style": "text-align: left;" + }, + "Content Cell"], + ["td", { + "style": "text-align: left;" + }, + "Content Cell"]]]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_table1.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_table1.text new file mode 100644 index 000000000..769c7e7c0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/extra_table1.text @@ -0,0 +1,7 @@ +CSS: style.css + +First Header | Second Header +------------- | ------------- +Content Cell | Content Cell +Content Cell | Content Cell + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/footnotes.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/footnotes.html new file mode 100644 index 000000000..17d1a8fa0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/footnotes.html @@ -0,0 +1,14 @@ +

    That’s some text with a footnote 1 and another 2 and another 3.

    + +

    This is not a footnote.

    +

    1. +

      And that’s the footnote. This is second sentence (same paragraph).

      +
    2. +

      This is the very long one.

      + +

      That’s the second paragraph.

      +
    3. +

      And that’s the footnote.

      + +

      That’s the second paragraph of the footnote.

      +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/footnotes.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/footnotes.json new file mode 100644 index 000000000..a105cde2c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/footnotes.json @@ -0,0 +1,52 @@ +["html", ["p", "That’s some text with a footnote ", ["sup", { + "id": "fnref:1" +}, +["a", { + "href": "#fn:1", + "rel": "footnote" +}, +"1"]], " and another ", ["sup", { + "id": "fnref:2" +}, +["a", { + "href": "#fn:2", + "rel": "footnote" +}, +"2"]], " and another ", ["sup", { + "id": "fnref:3" +}, +["a", { + "href": "#fn:3", + "rel": "footnote" +}, +"3"]], "."], + ["p", "This is not a footnote."], "\u000a", ["div", { + "class": "footnotes" +}, +["hr"], + ["ol", ["li", { + "id": "fn:1" + }, + ["p", "And that’s the footnote. This is second sentence (same paragraph)."], "\u000a", ["a", { + "href": "#fnref:1", + "rev": "footnote" + }, + "↩"]], + ["li", { + "id": "fn:2" + }, + ["p", "This is the very long one."], + ["p", "That’s the second paragraph."], "\u000a", ["a", { + "href": "#fnref:2", + "rev": "footnote" + }, + "↩"]], + ["li", { + "id": "fn:3" + }, + ["p", "And that’s the footnote."], + ["p", "That’s the second paragraph of the footnote."], "\u000a", ["a", { + "href": "#fnref:3", + "rev": "footnote" + }, + "↩"]]]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/footnotes.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/footnotes.text new file mode 100644 index 000000000..05c6f99fd --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/footnotes.text @@ -0,0 +1,17 @@ +That's some text with a footnote [^b] and another [^c] and another [^a]. + +[^a]: And that's the footnote. + + That's the second paragraph of the footnote. + + +[^b]: And that's the footnote. +This is second sentence (same paragraph). + +[^c]: + This is the very long one. + + That's the second paragraph. + + +This is not a footnote. diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/headers.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/headers.html new file mode 100644 index 000000000..b6d3893df --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/headers.html @@ -0,0 +1,5 @@ +

    A title with emphasis

    + +

    A title with emphasis

    + +

    A title with emphasis

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/headers.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/headers.json new file mode 100644 index 000000000..27b0a89a7 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/headers.json @@ -0,0 +1,10 @@ +["html", ["h1", { + "id": "a_title_with_emphasis" +}, +"A title with ", ["em", "emphasis"]], "\u000a\u000a", ["h2", { + "id": "a_title_with_emphasis" +}, +"A title with ", ["em", "emphasis"]], "\u000a\u000a", ["h4", { + "id": "a_title_with_emphasis" +}, +"A title with ", ["em", "emphasis"]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/headers.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/headers.text new file mode 100644 index 000000000..387d4e9ce --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/headers.text @@ -0,0 +1,11 @@ +A title with *emphasis* +======================= + +A title with *emphasis* +----------------------- + + +#### A title with *emphasis* #### + + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/hex_entities.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/hex_entities.html new file mode 100644 index 000000000..8741bcc0a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/hex_entities.html @@ -0,0 +1 @@ +

    Examples of numeric character references include © or © for the copyright symbol, Α or Α for the Greek capital letter alpha, and ا or ا for the Arabic letter alef.

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/hex_entities.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/hex_entities.json new file mode 100644 index 000000000..7b347d0e2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/hex_entities.json @@ -0,0 +1 @@ +["html", ["p", "Examples of numeric character references include © or © for the copyright symbol, Α or Α for the Greek capital letter alpha, and ا or ا for the Arabic letter alef."]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/hex_entities.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/hex_entities.text new file mode 100644 index 000000000..98d3bfcdc --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/hex_entities.text @@ -0,0 +1,3 @@ +Examples of numeric character references include © or © for the copyright symbol, Α or Α for the Greek capital letter alpha, and ا or ا for the Arabic letter alef. + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/hrule.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/hrule.html new file mode 100644 index 000000000..b856afba1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/hrule.html @@ -0,0 +1 @@ +




    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/hrule.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/hrule.json new file mode 100644 index 000000000..7541e6a37 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/hrule.json @@ -0,0 +1,5 @@ +["html", ["hr"], + ["hr"], + ["hr"], + ["hr"], + ["hr"], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/hrule.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/hrule.text new file mode 100644 index 000000000..8ccef4e8d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/hrule.text @@ -0,0 +1,2 @@ +* * * + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/html2.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html2.html new file mode 100644 index 000000000..1c93e7cf1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html2.html @@ -0,0 +1,2 @@ +

    One

    123

    +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/html2.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html2.json new file mode 100644 index 000000000..301489fed --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html2.json @@ -0,0 +1 @@ +["html", ["p", "One ", ["div"], "123"], "\u000a", ["div"], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/html2.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html2.text new file mode 100644 index 000000000..58510e228 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html2.text @@ -0,0 +1,4 @@ +One +
    123 + +
    123 diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/html3.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html3.html new file mode 100644 index 000000000..8ca3d0628 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html3.html @@ -0,0 +1 @@ +

    taking part in some arcane conspirations which involve coffee, robots, sushi,

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/html3.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html3.json new file mode 100644 index 000000000..8e7968c43 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html3.json @@ -0,0 +1,13 @@ +["html", ["p", "taking part in ", ["a", { + "href": "http://sied.dis.uniroma1.it/" +}, +"some arcane conspirations"], " which involve ", ["b", { + "href": "http://www.flickr.com/photos/censi/70893277/" +}, +"coffee"], ", ", ["a", { + "href": "http://flickr.com/photos/censi/42775664/in/set-936677/" +}, +"robots"], ", ", ["a", { + "href": "http://www.flickr.com/photos/censi/42775888/in/set-936677/" +}, +"sushi"], ","]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/html3.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html3.text new file mode 100644 index 000000000..e742017f8 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html3.text @@ -0,0 +1,5 @@ +taking part in some arcane conspirations which +involve coffee, +robots, +sushi, + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/html4.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html4.html new file mode 100644 index 000000000..1b9c5a3d6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html4.html @@ -0,0 +1,3 @@ +
    + +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/html4.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html4.json new file mode 100644 index 000000000..25f5993d6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html4.json @@ -0,0 +1,11 @@ +["html", ["div", { + "class": "frame" +}, +"\u000a\u0009", ["a", { + "href": "http://www.flickr.com/photos/censi/54757256/", + "class": "photo" +}, +["img", { + "src": "http://static.flickr.com/27/54757256_1a2c1d2a95_m.jpg", + "moz-do-not-send": "true" +}]], "\u000a"], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/html4.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html4.text new file mode 100644 index 000000000..fc9c02827 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html4.text @@ -0,0 +1,7 @@ +
    + +
    + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/html5.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html5.html new file mode 100644 index 000000000..8ffffe20e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html5.html @@ -0,0 +1,3 @@ +
    + Aperitif +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/html5.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html5.json new file mode 100644 index 000000000..796883b29 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html5.json @@ -0,0 +1,14 @@ +["html", ["div", { + "class": "frame" +}, +"\u000a ", ["a", { + "href": "http://www.flickr.com/photos/censi/88561568/", + "class": "photo" +}, +["img", { + "src": "http://static.flickr.com/28/88561568_ab84d28245_m.jpg", + "height": "180", + "moz-do-not-send": "true", + "alt": "Aperitif", + "width": "240" +}]], "\u000a "], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/html5.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html5.text new file mode 100644 index 000000000..5adc250ab --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/html5.text @@ -0,0 +1,5 @@ +
    + Aperitif +
    + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/ie.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/ie.html new file mode 100644 index 000000000..2809bfd1d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/ie.html @@ -0,0 +1,9 @@ +

    <p>here's an apostrophe & a quote "</p>

    + +
    <p>here's an apostrophe & a quote "</p>
    + +
    <p>here's an apostrophe & a quote "</p>
    + +
    <p>here's an apostrophe & a quote "</p>
    + +
    <p>here's an apostrophe & a quote "</p>
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/ie.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/ie.json new file mode 100644 index 000000000..1ac3f5dfb --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/ie.json @@ -0,0 +1,42 @@ +["html", ["p", ["code", "

    here's an apostrophe & a quote \"

    "]], + ["pre", ["code", "

    here's an apostrophe & a quote \"

    "]], + ["pre", { + "lang": "xml" + }, + ["code", { + "class": "xml", + "lang": "xml" + }, + "

    here's an apostrophe & a quote \"

    "]], + ["pre", ["code", { + "class": "not_supported", + "lang": "not_supported" + }, + "

    here's an apostrophe & a quote \"

    "]], + ["pre", ["code", { + "class": "xml", + "lang": "xml" + }, + ["span", { + "class": "punct" + }, + "<"], + ["span", { + "class": "tag" + }, + "p"], + ["span", { + "class": "punct" + }, + ">"], "here's an apostrophe & a quote \"", ["span", { + "class": "punct" + }, + ""]]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/ie.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/ie.text new file mode 100644 index 000000000..7a4cfab0d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/ie.text @@ -0,0 +1,15 @@ +`

    here's an apostrophe & a quote "

    ` + +

    here's an apostrophe & a quote "

    +{:} + +

    here's an apostrophe & a quote "

    +{:lang=xml} + +

    here's an apostrophe & a quote "

    +{:html_use_syntax=true lang=not_supported} + +

    here's an apostrophe & a quote "

    +{:html_use_syntax=true lang=xml} + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/images.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/images.html new file mode 100644 index 000000000..a40a80495 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/images.html @@ -0,0 +1,9 @@ +

    This page does not uilizes Cascading Style Sheets

    + +

    Please mouseover to see the title: Cascading Style Sheets

    + +

    Please mouseover to see the title: Cascading Style Sheets

    + +

    I’ll say it one more time: this page does not use Cascading Style Sheets

    + +

    This is double size: Cascading Style Sheets

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/images.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/images.json new file mode 100644 index 000000000..cf315e565 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/images.json @@ -0,0 +1,20 @@ +["html", ["p", "This page does not uilizes ", ["img", { + "src": "http://jigsaw.w3.org/css-validator/images/vcss", + "alt": "Cascading Style Sheets" +}]], + ["p", "Please mouseover to see the title: ", ["img", { + "src": "http://jigsaw.w3.org/css-validator/images/vcss", + "alt": "Cascading Style Sheets" + }]], + ["p", "Please mouseover to see the title: ", ["img", { + "src": "http://jigsaw.w3.org/css-validator/images/vcss", + "alt": "Cascading Style Sheets" + }]], + ["p", "I’ll say it one more time: this page does not use ", ["img", { + "src": "http://jigsaw.w3.org/css-validator/images/vcss", + "alt": "Cascading Style Sheets" + }]], + ["p", "This is double size: ", ["img", { + "src": "http://jigsaw.w3.org/css-validator/images/vcss", + "alt": "Cascading Style Sheets" + }]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/images.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/images.text new file mode 100644 index 000000000..75693619c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/images.text @@ -0,0 +1,22 @@ + +This page does not uilizes ![Cascading Style Sheets](http://jigsaw.w3.org/css-validator/images/vcss) + + +Please mouseover to see the title: ![Cascading Style Sheets](http://jigsaw.w3.org/css-validator/images/vcss "Title ok!") + +Please mouseover to see the title: ![Cascading Style Sheets](http://jigsaw.w3.org/css-validator/images/vcss 'Title ok!') + + +I'll say it one more time: this page does not use ![Cascading Style Sheets] [css] + +This is double size: ![Cascading Style Sheets] [css2] + + + +[css]: http://jigsaw.w3.org/css-validator/images/vcss "Optional title attribute" + +[css2]: http://jigsaw.w3.org/css-validator/images/vcss "Optional title attribute" class=external + style="border:0;width:188px;height:131px" + + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/images2.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/images2.html new file mode 100644 index 000000000..ad36dd00a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/images2.html @@ -0,0 +1,3 @@ +

    This is an image.

    + +

    This is an image.

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/images2.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/images2.json new file mode 100644 index 000000000..038186cb0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/images2.json @@ -0,0 +1,8 @@ +["html", ["p", "This is an ", ["img", { + "src": "image.jpg", + "alt": "image" +}], "."], + ["p", "This is an ", ["img", { + "src": "image.jpg", + "alt": "image" + }], "."]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/images2.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/images2.text new file mode 100644 index 000000000..ef97f4b3a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/images2.text @@ -0,0 +1,7 @@ + +This is an ![image][]. + +This is an ![image]. + +[image]: image.jpg + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html.html new file mode 100644 index 000000000..71e7f08fe --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html.html @@ -0,0 +1,66 @@ +

    Input:

    + +
    <em>Emphasis</em>
    + +

    Result: Emphasis

    + +

    Input:

    + +
    <img src="http://jigsaw.w3.org/css-validator/images/vcss"/>
    + +

    Result on span:

    + +

    Result alone:

    + +

    Without closing:

    +
    +

    +

    This is

    + +

    true

    +
    +

    markdown text (paragraph)

    +

    +

    +

    +

    This is

    + +

    true

    +
    +

    markdown text (no paragraph)

    +

    +

    +

    +

    +

    This is

    + +

    true

    +
    +

    markdown text (block paragraph)

    +

    +

    +
    + + + + +
    +

    This is

    + +

    true

    +
    +

    markdown text. (no par)

    +
    +

    This is

    + +

    true

    +
    +

    markdown text. (par)

    +
    +

    The following is invalid HTML, and will generate an error:

    +
    HTML parse error: 
    +<table>
    +<td markdown="1">This is *true* markdown text. (no par)</td>
    +<td markdown="block">This is *true* markdown text. (par)</td>
    +</tr>
    HTML parse error: 
    +</table>
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html.json new file mode 100644 index 000000000..58c6fa0c2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html.json @@ -0,0 +1,28 @@ +["html", ["p", "Input:"], + ["pre", ["code", "Emphasis"]], + ["p", "Result: ", ["em", "Emphasis"]], + ["p", "Input:"], + ["pre", ["code", ""]], + ["p", "Result on span: ", ["img", { + "src": "http://jigsaw.w3.org/css-validator/images/vcss" + }]], + ["p", "Result alone:"], "\u000a", ["img", { + "src": "http://jigsaw.w3.org/css-validator/images/vcss" +}], "\u000a", ["p", "Without closing:"], "\u000a", ["img", { + "src": "http://jigsaw.w3.org/css-validator/images/vcss" +}], + ["div", ["p", ["p", "This is"], "\u000a", ["em", ["p", "true"]], "\u000a", ["p", "markdown text (paragraph)"]], + ["p", ["p", ["p", "This is"], "\u000a", ["em", ["p", "true"]], "\u000a", ["p", "markdown text (no paragraph)"]]], + ["p", ["p", ["p", "This is"], "\u000a", ["em", ["p", "true"]], "\u000a", ["p", "markdown text (block paragraph)"]]]], + ["table", ["tr", ["td", ["p", "This is"], "\u000a", ["em", ["p", "true"]], "\u000a", ["p", "markdown text. (no par)"]], + ["td", ["p", "This is"], "\u000a", ["em", ["p", "true"]], "\u000a", ["p", "markdown text. (par)"]]]], "\u000a", ["p", "The following is invalid HTML, and will generate an error:"], + ["pre", { + "class": "markdown-html-error", + "style": "border: solid 3px red; background-color: pink" + }, + "HTML parse error: \u000a\u000a\u000a\u000a"], + ["pre", { + "class": "markdown-html-error", + "style": "border: solid 3px red; background-color: pink" + }, + "HTML parse error: \u000a
    This is *true* markdown text. (no par)This is *true* markdown text. (par)
    "]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html.text new file mode 100644 index 000000000..ad89f66dd --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html.text @@ -0,0 +1,50 @@ +CSS: style.css + +Input: + + Emphasis + +Result: Emphasis + +Input: + + + +Result on span: + +Result alone: + + + +Without closing: + + + +
    + This is *true* markdown text (paragraph) + +

    + This is *true* markdown text (no paragraph) +

    +

    + This is *true* markdown text (block paragraph) +

    +
    + + + + + + +
    This is *true* markdown text. (no par)This is *true* markdown text. (par)
    + + +The following is invalid HTML, and will generate an error: + + + + + +
    This is *true* markdown text. (no par)This is *true* markdown text. (par)
    + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html2.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html2.html new file mode 100644 index 000000000..de87541ae --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html2.html @@ -0,0 +1,3 @@ +
    +

    Test bold

    +

    Test bold

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html2.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html2.json new file mode 100644 index 000000000..441544ecf --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html2.json @@ -0,0 +1,2 @@ +["html", ["div", ["p", "Test ", ["strong", "bold"]]], + ["p", "Test ", ["strong", "bold"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html2.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html2.text new file mode 100644 index 000000000..439f930d3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/inline_html2.text @@ -0,0 +1,2 @@ +
    Test **bold**
    +

    Test **bold**

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/links.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/links.html new file mode 100644 index 000000000..842544388 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/links.html @@ -0,0 +1,19 @@ +

    Search on Google

    + +

    Search on Google

    + +

    Search on Google

    + +

    Search on Google

    + +

    Search on Google images

    + +

    Inline: Google images

    + +

    Inline with title: Google images

    + +

    Inline with title: Google images

    + +

    Search on http://www.gogole.com or http://Here.com or ask bill@google.com or you might ask bill@google.com.

    + +

    If all else fails, ask Google

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/links.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/links.json new file mode 100644 index 000000000..6cb20e72c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/links.json @@ -0,0 +1,49 @@ +["html", ["p", "Search on ", ["a", { + "href": "http://www.google.com" +}, +"Google"]], + ["p", "Search on ", ["a", { + "href": "http://www.google.com" + }, + "Google"]], + ["p", "Search on ", ["a", { + "href": "http://www.google.com" + }, + "Google"]], + ["p", "Search on ", ["a", { + "href": "http://www.google.com" + }, + "Google"]], + ["p", "Search on ", ["a", { + "href": "http://images.google.com", + "title": "Google images" + }, + "Google images"]], + ["p", "Inline: ", ["a", { + "href": "http://google.com" + }, + "Google images"]], + ["p", "Inline with title: ", ["a", { + "href": "http://google.com", + "title": "Title" + }, + "Google images"]], + ["p", "Inline with title: ", ["a", { + "href": "http://google.com", + "title": "Title" + }, + "Google images"]], + ["p", "Search on ", ["a", { + "href": "http://www.gogole.com" + }, + "http://www.gogole.com"], " or ", ["a", { + "href": "http://Here.com" + }, + "http://Here.com"], " or ask ", ["a", { + "href": "mailto:bill@google.com" + }, + "bill@google.com"], " or you might ask bill@google.com."], + ["p", "If all else fails, ask ", ["a", { + "href": "http://www.google.com" + }, + "Google"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/links.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/links.text new file mode 100644 index 000000000..530f5c05f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/links.text @@ -0,0 +1,36 @@ + +Search on [Google][] + +Search on [Google] [] + +Search on [Google] [google] + +Search on [Google] [Google] + +Search on [Google images][] + +Inline: [Google images](http://google.com) + +Inline with title: [Google images](http://google.com "Title") + +Inline with title: [Google images]( http://google.com "Title" ) + + +Search on or or ask +or you might ask bill@google.com. + +If all else fails, ask [Google](http://www.google.com) + +[google]: http://www.google.com + +[google2]: http://www.google.com 'Single quotes' + +[google3]: http://www.google.com "Double quotes" + +[google4]: http://www.google.com (Parenthesis) + +[Google Search]: + http://www.google.com "Google search" + +[Google Images]: + http://images.google.com (Google images) diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/list1.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list1.html new file mode 100644 index 000000000..82824f2d9 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list1.html @@ -0,0 +1,9 @@ +
      +
    • +

      A list item with a blockquote:

      + +
      +

      This is a blockquote inside a list item.

      +
      +
    • +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/list1.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list1.json new file mode 100644 index 000000000..319381404 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list1.json @@ -0,0 +1,2 @@ +["html", ["ul", ["li", ["p", "A list item with a blockquote:"], + ["blockquote", ["p", "This is a blockquote inside a list item."]]]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/list1.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list1.text new file mode 100644 index 000000000..c3e37d8e5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list1.text @@ -0,0 +1,5 @@ +* A list item with a blockquote: + + > This is a blockquote + > inside a list item. + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/list2.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list2.html new file mode 100644 index 000000000..5d180a567 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list2.html @@ -0,0 +1,11 @@ +
      +
    • +

      This is a list item with two paragraphs.

      + +

      This is the second paragraph in the list item. You’re only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

      +
    • + +
    • +

      other

      +
    • +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/list2.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list2.json new file mode 100644 index 000000000..4d2f14be5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list2.json @@ -0,0 +1,3 @@ +["html", ["ul", ["li", ["p", "This is a list item with two paragraphs."], + ["p", "This is the second paragraph in the list item. You’re only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit."]], + ["li", ["p", "other"]]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/list2.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list2.text new file mode 100644 index 000000000..c1af1ad8a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list2.text @@ -0,0 +1,8 @@ +* This is a list item with two paragraphs. + + This is the second paragraph in the list item. You're +only required to indent the first line. Lorem ipsum dolor +sit amet, consectetuer adipiscing elit. + +* other + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/list3.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list3.html new file mode 100644 index 000000000..146008140 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list3.html @@ -0,0 +1,15 @@ +
      +
    • +

      A list item with a blockquote:

      + +
      +

      This is a blockquote inside a list item.

      +
      +
    • + +
    • +

      A list item with a code block:

      + +
      <code goes here>
      +
    • +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/list3.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list3.json new file mode 100644 index 000000000..cef3f82e9 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list3.json @@ -0,0 +1,4 @@ +["html", ["ul", ["li", ["p", "A list item with a blockquote:"], + ["blockquote", ["p", "This is a blockquote inside a list item."]]], + ["li", ["p", "A list item with a code block:"], + ["pre", ["code", ""]]]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/list3.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list3.text new file mode 100644 index 000000000..e6333b02c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list3.text @@ -0,0 +1,8 @@ +* A list item with a blockquote: + + > This is a blockquote + > inside a list item. + +* A list item with a code block: + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/list4.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list4.html new file mode 100644 index 000000000..45011d03d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list4.html @@ -0,0 +1,19 @@ +

    This is a list:

    + +
      +
    • one
    • + +
    • two
    • +
    + +

    This is not a list: * one ciao

    + +

    This is a list:

    + +
      +
    1. one
    2. + +
    3. two
    4. +
    + +

    This is not a list: 1987. one ciao

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/list4.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list4.json new file mode 100644 index 000000000..5a47d2919 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list4.json @@ -0,0 +1,8 @@ +["html", ["p", "This is a list:"], + ["ul", ["li", "one"], + ["li", "two"]], + ["p", "This is not a list: * one ciao"], + ["p", "This is a list:"], + ["ol", ["li", "one"], + ["li", "two"]], + ["p", "This is not a list: 1987. one ciao"]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/list4.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list4.text new file mode 100644 index 000000000..0d6e9ce02 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/list4.text @@ -0,0 +1,16 @@ +This is a list: +* one +* two + +This is not a list: +* one +ciao + +This is a list: +1. one +1. two + +This is not a list: +1987. one +ciao + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists.html new file mode 100644 index 000000000..c1972b2f2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists.html @@ -0,0 +1,39 @@ +
      +
    • Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
    • + +
    • Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    • + +
    • Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    • + +
    • Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    • + +
    • Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    • +
    + +

    Ancora

    + +
      +
    • +

      This is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.

      + +

      ATTENZIONE!

      +
    • + +
    • +

      Suspendisse id sem consectetuer libero luctus adipiscing.

      +
    • +
    + +

    Ancora

    + +
      +
    • +

      This is a list item with two paragraphs.

      + +

      This is the second paragraph in the list item. You’re only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

      +
    • + +
    • +

      Another item in the same list.

      +
    • +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists.json new file mode 100644 index 000000000..f14b87045 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists.json @@ -0,0 +1,13 @@ +["html", ["ul", ["li", "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus."], + ["li", "Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing."], + ["li", "Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing."], + ["li", "Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing."], + ["li", "Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing."]], + ["p", "Ancora"], + ["ul", ["li", ["p", "This is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus."], + ["p", "ATTENZIONE!"]], + ["li", ["p", "Suspendisse id sem consectetuer libero luctus adipiscing."]]], + ["p", "Ancora"], + ["ul", ["li", ["p", "This is a list item with two paragraphs."], + ["p", "This is the second paragraph in the list item. You’re only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit."]], + ["li", ["p", "Another item in the same list."]]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists.text new file mode 100644 index 000000000..9c41e9b49 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists.text @@ -0,0 +1,32 @@ +* Lorem ipsum dolor sit amet, consectetuer adipiscing elit. + Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, + viverra nec, fringilla in, laoreet vitae, risus. +* Donec sit amet nisl. Aliquam semper ipsum sit amet velit. + Suspendisse id sem consectetuer libero luctus adipiscing. +* Donec sit amet nisl. Aliquam semper ipsum sit amet velit. +Suspendisse id sem consectetuer libero luctus adipiscing. + * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. +Suspendisse id sem consectetuer libero luctus adipiscing. + * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. + Suspendisse id sem consectetuer libero luctus adipiscing. + +Ancora + +* This is a list item with two paragraphs. Lorem ipsum dolor + sit amet, consectetuer adipiscing elit. Aliquam hendrerit + mi posuere lectus. + + ATTENZIONE! + +* Suspendisse id sem consectetuer libero luctus adipiscing. + + +Ancora + +* This is a list item with two paragraphs. + + This is the second paragraph in the list item. You're +only required to indent the first line. Lorem ipsum dolor +sit amet, consectetuer adipiscing elit. + +* Another item in the same list. diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists11.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists11.html new file mode 100644 index 000000000..3382952d3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists11.html @@ -0,0 +1 @@ +

    - ένα

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists11.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists11.json new file mode 100644 index 000000000..ce4969147 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists11.json @@ -0,0 +1 @@ +["html", ["p", "- ένα"]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists11.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists11.text new file mode 100644 index 000000000..54e7ddc7b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists11.text @@ -0,0 +1,2 @@ +- ένα + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists6.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists6.html new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists6.html @@ -0,0 +1 @@ + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists6.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists6.json new file mode 100644 index 000000000..39ef51b31 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists6.json @@ -0,0 +1 @@ +["html"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists6.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists6.text new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists6.text @@ -0,0 +1 @@ + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7.html new file mode 100644 index 000000000..d42e22afe --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7.html @@ -0,0 +1,10 @@ +

    Ciao

    + +
      +
    • Tab * Tab * Tab
    • +
    +

    Ciao

    + +
      +
    • Tab * Tab * Tab
    • +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7.json new file mode 100644 index 000000000..357c2e85d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7.json @@ -0,0 +1,4 @@ +["html", ["p", "Ciao"], + ["ul", ["li", "Tab * Tab * Tab"]], + ["p", "Ciao"], + ["ul", ["li", "Tab * Tab * Tab"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7.text new file mode 100644 index 000000000..67605b1a7 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7.text @@ -0,0 +1,6 @@ +Ciao + +* Tab + * Tab + * Tab + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7b.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7b.html new file mode 100644 index 000000000..126e133e7 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7b.html @@ -0,0 +1,31 @@ +
      +
    • +a + +
        +
      • a1
      • + +
      • a2
      • +
      +
    • + +
    • +

      b

      +
    • +
    +-----| WARNING | ----- +
      +
    • +

      a

      + +
        +
      • a1
      • + +
      • a2
      • +
      +
    • + +
    • +

      b

      +
    • +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7b.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7b.json new file mode 100644 index 000000000..5a5bf88b8 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7b.json @@ -0,0 +1,6 @@ +["html", ["ul", ["li", "\u000aa\u000a\u000a", ["ul", ["li", "a1"], + ["li", "a2"]]], + ["li", ["p", "b"]]], "\u000a-----| WARNING | -----\u000a", ["ul", ["li", ["p", "a"], + ["ul", ["li", "a1"], + ["li", "a2"]]], + ["li", ["p", "b"]]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7b.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7b.text new file mode 100644 index 000000000..c963508f2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists7b.text @@ -0,0 +1,6 @@ +* a + * a1 + * a2 +* b + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists8.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists8.html new file mode 100644 index 000000000..de7955885 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists8.html @@ -0,0 +1,13 @@ +

    Here is a paragraph.

    + +
      +
    • Item 1
    • + +
    • Item 2
    • + +
    • Item 3
    • +
    +-----| WARNING | ----- +

    Here is a paragraph.

    + +

    * Item 1 * Item 2 * Item 3

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists8.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists8.json new file mode 100644 index 000000000..2332ba232 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists8.json @@ -0,0 +1,5 @@ +["html", ["p", "Here is a paragraph."], + ["ul", ["li", "Item 1"], + ["li", "Item 2"], + ["li", "Item 3"]], "\u000a-----| WARNING | -----\u000a", ["p", "Here is a paragraph."], + ["p", "* Item 1 * Item 2 * Item 3"]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists8.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists8.text new file mode 100644 index 000000000..d11e4a37a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists8.text @@ -0,0 +1,7 @@ +Here is a paragraph. + + + * Item 1 + * Item 2 + * Item 3 + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists9.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists9.html new file mode 100644 index 000000000..29fc1b913 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists9.html @@ -0,0 +1,17 @@ +
      +
    • +

      Due

      + +
        +
      1. tre
      2. + +
      3. tre
      4. + +
      5. tre
      6. +
      +
    • + +
    • +

      Due

      +
    • +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists9.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists9.json new file mode 100644 index 000000000..f91bd7490 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists9.json @@ -0,0 +1,5 @@ +["html", ["ul", ["li", ["p", "Due"], + ["ol", ["li", "tre"], + ["li", "tre"], + ["li", "tre"]]], + ["li", ["p", "Due"]]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists9.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists9.text new file mode 100644 index 000000000..68395e8dc --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists9.text @@ -0,0 +1,5 @@ +- Due + 1. tre + 1. tre + 1. tre +- Due diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_after_paragraph.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_after_paragraph.html new file mode 100644 index 000000000..8b52c96b2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_after_paragraph.html @@ -0,0 +1,37 @@ +

    Paragraph, list with no space: * ciao

    + +

    Paragraph, list with 1 space: * ciao

    + +

    Paragraph, list with 3 space: * ciao

    + +

    Paragraph, list with 4 spaces: * ciao

    + +

    Paragraph, list with 1 tab: * ciao

    + +

    Paragraph (1 space after), list with no space: * ciao

    + +

    Paragraph (2 spaces after), list with no space:
    * ciao

    + +

    Paragraph (3 spaces after), list with no space:
    * ciao

    + +

    Paragraph with block quote:

    + +
    +

    Quoted

    +
    + +

    Paragraph with header:

    + + + +

    Paragraph with header on two lines:

    + + + +

    Paragraph with html after

    + +

    Paragraph with html after, indented: Emphasis

    + +

    Paragraph with html after, indented: Emphasis tralla Emph

    + +

    Paragraph with html after, indented: Emphasis *tralla* Emph

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_after_paragraph.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_after_paragraph.json new file mode 100644 index 000000000..3d0e48585 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_after_paragraph.json @@ -0,0 +1,20 @@ +["html", ["p", "Paragraph, list with no space: * ciao"], + ["p", "Paragraph, list with 1 space: * ciao"], + ["p", "Paragraph, list with 3 space: * ciao"], + ["p", "Paragraph, list with 4 spaces: * ciao"], + ["p", "Paragraph, list with 1 tab: * ciao"], + ["p", "Paragraph (1 space after), list with no space: * ciao"], + ["p", "Paragraph (2 spaces after), list with no space:", ["br"], "* ciao"], + ["p", "Paragraph (3 spaces after), list with no space: ", ["br"], "* ciao"], + ["p", "Paragraph with block quote:"], + ["blockquote", ["p", "Quoted"]], + ["p", "Paragraph with header:"], "\u000a\u000a", ["h3", { + "id": "header" +}, +"header"], "\u000a\u000a", ["p", "Paragraph with header on two lines:"], "\u000a\u000a", ["h2", { + "id": "header" +}, +"header"], "\u000a\u000a", ["p", "Paragraph with html after ", ["div"]], + ["p", "Paragraph with html after, indented: ", ["em", "Emphasis"]], + ["p", "Paragraph with html after, indented: ", ["em", "Emphasis"], " ", ["em", "tralla"], " ", ["em", "Emph"]], + ["p", "Paragraph with html after, indented: ", ["em", "Emphasis *tralla* Emph"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_after_paragraph.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_after_paragraph.text new file mode 100644 index 000000000..c0be0c210 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_after_paragraph.text @@ -0,0 +1,45 @@ +Paragraph, list with no space: +* ciao + +Paragraph, list with 1 space: + * ciao + +Paragraph, list with 3 space: + * ciao + +Paragraph, list with 4 spaces: + * ciao + +Paragraph, list with 1 tab: + * ciao + +Paragraph (1 space after), list with no space: +* ciao + +Paragraph (2 spaces after), list with no space: +* ciao + +Paragraph (3 spaces after), list with no space: +* ciao + +Paragraph with block quote: +> Quoted + +Paragraph with header: +### header ### + +Paragraph with header on two lines: +header +------ + + +Paragraph with html after +
    + +Paragraph with html after, indented: + Emphasis + +Paragraph with html after, indented: Emphasis *tralla* Emph + +Paragraph with html after, indented: Emphasis *tralla* Emph + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_ol.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_ol.html new file mode 100644 index 000000000..4820f7d27 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_ol.html @@ -0,0 +1,61 @@ +
      +
    1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
    2. + +
    3. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    4. + +
    5. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    6. + +
    7. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    8. + +
    9. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    10. +
    + +

    Ancora

    + +
      +
    1. +

      This is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.

      + +

      ATTENZIONE!

      + +
        +
      • +

        Uno

        +
      • + +
      • +

        Due

        + +
          +
        1. tre
        2. + +
        3. tre
        4. + +
        5. tre
        6. +
        +
      • + +
      • +

        Due

        +
      • +
      +
    2. + +
    3. +

      Suspendisse id sem consectetuer libero luctus adipiscing.

      +
    4. +
    + +

    Ancora

    + +
      +
    • +

      This is a list item with two paragraphs.

      + +

      This is the second paragraph in the list item. You’re only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

      +
    • + +
    • +

      Another item in the same list.

      +
    • +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_ol.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_ol.json new file mode 100644 index 000000000..3de9311e5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_ol.json @@ -0,0 +1,19 @@ +["html", ["ol", ["li", "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus."], + ["li", "Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing."], + ["li", "Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing."], + ["li", "Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing."], + ["li", "Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing."]], + ["p", "Ancora"], + ["ol", ["li", ["p", "This is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus."], + ["p", "ATTENZIONE!"], + ["ul", ["li", ["p", "Uno"]], + ["li", ["p", "Due"], + ["ol", ["li", "tre"], + ["li", "tre"], + ["li", "tre"]]], + ["li", ["p", "Due"]]]], + ["li", ["p", "Suspendisse id sem consectetuer libero luctus adipiscing."]]], + ["p", "Ancora"], + ["ul", ["li", ["p", "This is a list item with two paragraphs."], + ["p", "This is the second paragraph in the list item. You’re only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit."]], + ["li", ["p", "Another item in the same list."]]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_ol.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_ol.text new file mode 100644 index 000000000..5b94ea0ed --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/lists_ol.text @@ -0,0 +1,39 @@ +1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. + Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, + viverra nec, fringilla in, laoreet vitae, risus. + 2. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. + Suspendisse id sem consectetuer libero luctus adipiscing. +3. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. +Suspendisse id sem consectetuer libero luctus adipiscing. + 3. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. +Suspendisse id sem consectetuer libero luctus adipiscing. + 4. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. + Suspendisse id sem consectetuer libero luctus adipiscing. + +Ancora + +1. This is a list item with two paragraphs. Lorem ipsum dolor + sit amet, consectetuer adipiscing elit. Aliquam hendrerit + mi posuere lectus. + + ATTENZIONE! + + - Uno + - Due + 1. tre + 1. tre + 1. tre + - Due + +2. Suspendisse id sem consectetuer libero luctus adipiscing. + + +Ancora + +* This is a list item with two paragraphs. + + This is the second paragraph in the list item. You're +only required to indent the first line. Lorem ipsum dolor +sit amet, consectetuer adipiscing elit. + +* Another item in the same list. diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/loss.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/loss.html new file mode 100644 index 000000000..3fc714a36 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/loss.html @@ -0,0 +1 @@ +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/loss.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/loss.json new file mode 100644 index 000000000..76a171105 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/loss.json @@ -0,0 +1 @@ +["html", ["br"], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/loss.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/loss.text new file mode 100644 index 000000000..1f94fd6e7 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/loss.text @@ -0,0 +1,2 @@ +
    123 + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/misc_sw.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/misc_sw.html new file mode 100644 index 000000000..c1a7405ee --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/misc_sw.html @@ -0,0 +1,79 @@ +

    General

    + +
      +
    • Operating System : Mac OS X: heaven, after the purgatory of Linux and the hell of Windows.
    • + +
    • Browser: Firefox. On a Mac, Camino.
    • + +
    • Email: GMail, “search, don’t sort” really works.
    • + +
    • Text Editor: TextMate, you have to buy it, but it’s worth every penny. There are rumours that it’s been converting (recovering) Emacs users (addicts). Unfortunately, it’s Mac only. An alternative is jedit (GPL, Java).
    • +
    + +

    Development

    + +
      +
    • +

      Build system: cmake, throw the autotools away.

      +
    • + +
    • +

      Source code control system: ditch CVS for subversion.

      +
    • + +
    • +

      Project management: Trac tracks everything.

      +
    • + +
    • +

      Scripting language: Ruby is Japanese pragmatism (and has a poignant guide). Python, you say? Python is too academic and snob:

      + +
      $ python       
      +Python 2.4.1 (\#1, Jun  4 2005, 00:54:33) 
      +Type "help", "copyright", "credits" or "license" for more information.
      +>>> exit
      +'Use Ctrl-D (i.e. EOF) to exit.'
      +>>> quit
      +'Use Ctrl-D (i.e. EOF) to exit.'
      +
    • + +
    • +

      Java IDE: JBuilder is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained generics and got opensourced.

      +
    • + +
    • +

      Mark-up language: HTML is so 2001, why don’t you take at look at Markdown? Look at the source of this page.

      +
    • + +
    • +

      C++ libraries: * QT for GUIs. * GSL for math. * Magick++ for manipulating images. * Cairo for creating PDFs. * Boost for just about everything else.

      +
    • +
    + +

    Research

    + +
      +
    • Writing papers: LaTeX
    • + +
    • Writing papers & enjoying the process: LyX
    • + +
    • Handsome figures in your papers: xfig or, better, jfig.
    • + +
    • The occasional presentation with many graphical content: OpenOffice Impress (using the OOOlatex plugin); the alternative is PowerPoint with the TexPoint plugin.
    • + +
    • Managing BibTeX: jabref: multi-platform, for all your bibtex needs.
    • + +
    • IEEExplore and BibTeX: convert citations using BibConverter.
    • +
    + +

    Cool websites

    + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/misc_sw.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/misc_sw.json new file mode 100644 index 000000000..dcf035e69 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/misc_sw.json @@ -0,0 +1,139 @@ +["html", ["h3", { + "id": "general" +}, +"General"], "\u000a\u000a", ["ul", ["li", ["em", "Operating System"], " : ", ["a", { + "href": "http://www.apple.com/getamac/" +}, +"Mac OS X"], ": heaven, after the purgatory of Linux and the hell of Windows."], + ["li", ["em", "Browser"], ": ", ["a", { + "href": "http://getfirefox.com/" + }, + "Firefox"], ". On a Mac, ", ["a", { + "href": "http://www.caminobrowser.org/" + }, + "Camino"], "."], + ["li", ["em", "Email"], ": ", ["a", { + "href": "http://gmail.com/" + }, + "GMail"], ", “search, don’t sort” really works."], + ["li", ["em", "Text Editor"], ": ", ["a", { + "href": "http://www.apple.com/getamac/" + }, + "TextMate"], ", you have to buy it, but it’s worth every penny. There are rumours that it’s been converting (recovering) Emacs users (addicts). Unfortunately, it’s Mac only. An alternative is ", ["a", { + "href": "http://www.jedit.org/" + }, + "jedit"], " (GPL, Java)."]], "\u000a\u000a", ["h3", { + "id": "development" +}, +"Development"], "\u000a\u000a", ["ul", ["li", ["p", ["em", "Build system"], ": ", ["a", { + "href": "http://www.cmake.org/" +}, +"cmake"], ", throw the ", ["a", { + "href": "http://sources.redhat.com/autobook/" +}, +"autotools"], " away."]], + ["li", ["p", ["em", "Source code control system"], ": ditch CVS for ", ["a", { + "href": "http://subversion.tigris.org" + }, + "subversion"], "."]], + ["li", ["p", ["em", "Project management"], ": ", ["a", { + "href": "http://trac.edgewall.org/" + }, + "Trac"], " tracks everything."]], + ["li", ["p", ["em", "Scripting language"], ": ", ["a", { + "href": "http://www.ruby-lang.org/" + }, + "Ruby"], " is Japanese pragmatism (and has a ", ["a", { + "href": "http://poignantguide.net/ruby/" + }, + "poignant"], " guide). Python, you say? Python is too academic and snob:"], + ["pre", ["code", "$ python \u000aPython 2.4.1 (\\#1, Jun 4 2005, 00:54:33) \u000aType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\u000a>>> exit\u000a'Use Ctrl-D (i.e. EOF) to exit.'\u000a>>> quit\u000a'Use Ctrl-D (i.e. EOF) to exit.'"]]], + ["li", ["p", ["em", "Java IDE"], ": ", ["a", { + "href": "http://www.borland.com/us/products/jbuilder/index.html" + }, + "JBuilder"], " is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained ", ["a", { + "href": "http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html" + }, + "generics"], " and got opensourced."]], + ["li", ["p", ["em", "Mark-up language"], ": HTML is so 2001, why don’t you take at look at ", ["a", { + "href": "http://en.wikipedia.org/wiki/Markdown" + }, + "Markdown"], "? ", ["a", { + "href": "data/misc_markdown.png" + }, + "Look at the source of this page"], "."]], + ["li", ["p", ["em", "C++ libraries"], ": * ", ["a", { + "href": "http://www.trolltech.no/" + }, + "QT"], " for GUIs. * ", ["a", { + "href": "http://www.gnu.org/software/gsl/" + }, + "GSL"], " for math. * ", ["a", { + "href": "http://www.imagemagick.org/Magick++/" + }, + "Magick++"], " for manipulating images. * ", ["a", { + "href": "http://cairographics.org/" + }, + "Cairo"], " for creating PDFs. * ", ["a", { + "href": "http://www.boost.org/" + }, + "Boost"], " for just about everything else."]]], "\u000a\u000a", ["h3", { + "id": "research" +}, +"Research"], "\u000a\u000a", ["ul", ["li", ["em", "Writing papers"], ": ", ["a", { + "href": "http://en.wikipedia.org/wiki/LaTeX" +}, +"LaTeX"]], + ["li", ["em", "Writing papers & enjoying the process"], ": ", ["a", { + "href": "http://www.lyx.org" + }, + "LyX"]], + ["li", ["em", "Handsome figures in your papers"], ": ", ["a", { + "href": "http://www.xfig.org/" + }, + "xfig"], " or, better, ", ["a", { + "href": "http://tams-www.informatik.uni-hamburg.de/applets/jfig/" + }, + "jfig"], "."], + ["li", ["em", "The occasional presentation with many graphical content"], ": ", ["a", { + "href": "http://www.openoffice.org/product/impress.html" + }, + "OpenOffice Impress"], " (using the ", ["a", { + "href": "http://ooolatex.sourceforge.net/" + }, + "OOOlatex plugin"], "); the alternative is PowerPoint with the ", ["a", { + "href": "http://texpoint.necula.org/" + }, + "TexPoint"], " plugin."], + ["li", ["em", "Managing BibTeX"], ": ", ["a", { + "href": "http://jabref.sourceforge.net/" + }, + "jabref"], ": multi-platform, for all your bibtex needs."], + ["li", ["em", "IEEExplore and BibTeX"], ": convert citations using ", ["a", { + "href": "http://www.bibconverter.net/ieeexplore/" + }, + "BibConverter"], "."]], "\u000a\u000a", ["h3", { + "id": "cool_websites" +}, +"Cool websites"], "\u000a\u000a", ["ul", ["li", ["em", "Best site in the wwworld"], ": ", ["a", { + "href": "http://en.wikipedia.org/" +}, +"Wikipedia"]], + ["li", ["a", { + "href": "http://www.mutopiaproject.org/" + }, + "Mutopia"], " for sheet music; ", ["a", { + "href": "http://www.gutenberg.org/" + }, + "the Gutenberg Project"], " for books; ", ["a", { + "href": "http://www.liberliber.it/" + }, + "LiberLiber"], " for books in italian."], + ["li", ["em", "Blogs"], ": ", ["a", { + "href": "http://bloglines.com/" + }, + "Bloglines"]], + ["li", ["em", "Sharing photos"], ": ", ["a", { + "href": "http://www.flickr.com/" + }, + "flickr"], " exposes an API you can use."]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/misc_sw.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/misc_sw.text new file mode 100644 index 000000000..9dab62a93 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/misc_sw.text @@ -0,0 +1,106 @@ +Subject: Software not painful to use +Subject_short: painless software +Topic: /misc/coolsw +Archive: no +Date: Nov 20 2006 +Order: -9.5 +inMenu: true + + +### General ### + +* *Operating System* : [Mac OS X][switch]: heaven, after the purgatory of Linux + and the hell of Windows. +* *Browser*: [Firefox][firefox]. On a Mac, [Camino][camino]. +* *Email*: [GMail][gmail], "search, don't sort" really works. +* *Text Editor*: [TextMate][textmate], you have to buy it, but it's worth every + penny. There are rumours that it's been converting (recovering) Emacs + users (addicts). Unfortunately, it's Mac only. An alternative is + [jedit][jedit] (GPL, Java). + +### Development ### + +* *Build system*: [cmake][cmake], throw the [autotools][autotools] away. +* *Source code control system*: ditch CVS for [subversion][subversion]. +* *Project management*: [Trac][trac] tracks everything. +* *Scripting language*: [Ruby][ruby] is Japanese pragmatism (and has a [poignant][poignant] guide). + Python, you say? Python is too academic and snob: + + $ python + Python 2.4.1 (\#1, Jun 4 2005, 00:54:33) + Type "help", "copyright", "credits" or "license" for more information. + >>> exit + 'Use Ctrl-D (i.e. EOF) to exit.' + >>> quit + 'Use Ctrl-D (i.e. EOF) to exit.' + +* *Java IDE*: [JBuilder][jbuilder] is great software and has a free version (IMHO better than Eclipse). Java + is not a pain anymore since it gained [generics][java-generics] and got opensourced. +* *Mark-up language*: HTML is so 2001, why don't you take at look at [Markdown][markdown]? [Look at the source of this page](data/misc_markdown.png). +* *C++ libraries*: + * [QT][qt] for GUIs. + * [GSL][gsl] for math. + * [Magick++][magick] for manipulating images. + * [Cairo][cairo] for creating PDFs. + * [Boost][boost] for just about everything else. + + +### Research ### + +* *Writing papers*: [LaTeX][latex] +* *Writing papers & enjoying the process*: [LyX][lyx] +* *Handsome figures in your papers*: [xfig][xfig] or, better, [jfig][jfig]. +* *The occasional presentation with many graphical content*: + [OpenOffice Impress][impress] (using the [OOOlatex plugin][ooolatex]); + the alternative is PowerPoint with the [TexPoint][texpoint] plugin. +* *Managing BibTeX*: [jabref][jabref]: multi-platform, for all your bibtex needs. +* *IEEExplore and BibTeX*: convert citations using [BibConverter][bibconverter]. + +### Cool websites ### + +* *Best site in the wwworld*: [Wikipedia][wikipedia] +* [Mutopia][mutopia] for sheet music; [the Gutenberg Project][gutenberg] for books; [LiberLiber][liberliber] for books in italian. +* *Blogs*: [Bloglines][bloglines] +* *Sharing photos*: [flickr][flickr] exposes an API you can use. + + +[firefox]: http://getfirefox.com/ +[gmail]: http://gmail.com/ +[bloglines]: http://bloglines.com/ +[wikipedia]: http://en.wikipedia.org/ +[ruby]: http://www.ruby-lang.org/ +[poignant]: http://poignantguide.net/ruby/ +[webgen]: http://webgen.rubyforge.org/ +[markdown]: http://daringfireball.net/projects/markdown/ +[latex]: http://en.wikipedia.org/wiki/LaTeX +[lyx]: http://www.lyx.org +[impress]: http://www.openoffice.org/product/impress.html +[ooolatex]: http://ooolatex.sourceforge.net/ +[texpoint]: http://texpoint.necula.org/ +[jabref]: http://jabref.sourceforge.net/ +[camino]: http://www.caminobrowser.org/ +[switch]: http://www.apple.com/getamac/ +[textmate]: http://www.apple.com/getamac/ +[cmake]: http://www.cmake.org/ +[xfig]: http://www.xfig.org/ +[jfig]: http://tams-www.informatik.uni-hamburg.de/applets/jfig/ +[subversion]: http://subversion.tigris.org +[jbuilder]: http://www.borland.com/us/products/jbuilder/index.html +[flickr]: http://www.flickr.com/ +[myflickr]: http://www.flickr.com/photos/censi +[bibconverter]: http://www.bibconverter.net/ieeexplore/ +[autotools]: http://sources.redhat.com/autobook/ +[jedit]: http://www.jedit.org/ +[qt]: http://www.trolltech.no/ +[gsl]: http://www.gnu.org/software/gsl/ +[magick]: http://www.imagemagick.org/Magick++/ +[cairo]: http://cairographics.org/ +[boost]: http://www.boost.org/ +[markdown]: http://en.wikipedia.org/wiki/Markdown +[trac]: http://trac.edgewall.org/ +[mutopia]: http://www.mutopiaproject.org/ +[liberliber]: http://www.liberliber.it/ +[gutenberg]: http://www.gutenberg.org/ +[java-generics]: http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/olist.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/olist.html new file mode 100644 index 000000000..d349edbe0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/olist.html @@ -0,0 +1,9 @@ +

    This is a list:

    + +
      +
    1. one
    2. + +
    3. two
    4. + +
    5. three
    6. +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/olist.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/olist.json new file mode 100644 index 000000000..a79813165 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/olist.json @@ -0,0 +1,4 @@ +["html", ["p", "This is a list:"], + ["ol", ["li", "one"], + ["li", "two"], + ["li", "three"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/olist.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/olist.text new file mode 100644 index 000000000..e68a65915 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/olist.text @@ -0,0 +1,5 @@ +This is a list: + +2. one +2. two +3. three diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/one.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/one.html new file mode 100644 index 000000000..e38afbae7 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/one.html @@ -0,0 +1 @@ +

    One line

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/one.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/one.json new file mode 100644 index 000000000..56c6552be --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/one.json @@ -0,0 +1 @@ +["html", ["p", "One line"]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/one.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/one.text new file mode 100644 index 000000000..b8ab5853c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/one.text @@ -0,0 +1 @@ +One line diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraph.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraph.html new file mode 100644 index 000000000..b814fa2ba --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraph.html @@ -0,0 +1 @@ +

    Paragraph

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraph.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraph.json new file mode 100644 index 000000000..d6f73d0da --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraph.json @@ -0,0 +1 @@ +["html", ["p", "Paragraph"]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraph.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraph.text new file mode 100644 index 000000000..94258d1b2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraph.text @@ -0,0 +1,2 @@ +Paragraph + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraphs.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraphs.html new file mode 100644 index 000000000..17785330f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraphs.html @@ -0,0 +1,5 @@ +

    Paragraph 1

    + +

    Paragraph 2

    + +

    Paragraph 3 Paragraph 4 Paragraph Br->
    Paragraph 5

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraphs.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraphs.json new file mode 100644 index 000000000..82b87fb70 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraphs.json @@ -0,0 +1,3 @@ +["html", ["p", "Paragraph 1"], + ["p", "Paragraph 2"], + ["p", "Paragraph 3 Paragraph 4 Paragraph Br->", ["br"], "Paragraph 5"]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraphs.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraphs.text new file mode 100644 index 000000000..77b5ff8ac --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/paragraphs.text @@ -0,0 +1,11 @@ +Paragraph 1 + +Paragraph 2 + + +Paragraph 3 +Paragraph 4 +Paragraph Br-> +Paragraph 5 + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/smartypants.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/smartypants.html new file mode 100644 index 000000000..cf0df19d1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/smartypants.html @@ -0,0 +1,17 @@ +
    'Twas a "test" to 'remember' in the '90s.
    + +

    ‘Twas a “test” to ‘remember’ in the ’90s.

    + +
    It was --- in a sense --- really... interesting.
    + +

    It was — in a sense — really… interesting.

    + +
    I -- too -- met << some curly quotes >> there or <<here>>No space.
    + +

    I – too – met « some curly quotes » there or «here»No space.

    + +
    She was 6\"12\'.
    + +
    +

    She was 6"12'.

    +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/smartypants.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/smartypants.json new file mode 100644 index 000000000..3ec5f74d6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/smartypants.json @@ -0,0 +1,8 @@ +["html", ["pre", ["code", "'Twas a \"test\" to 'remember' in the '90s."]], + ["p", "‘Twas a “test” to ‘remember’ in the ’90s."], + ["pre", ["code", "It was --- in a sense --- really... interesting."]], + ["p", "It was — in a sense — really… interesting."], + ["pre", ["code", "I -- too -- met << some curly quotes >> there or <>No space."]], + ["p", "I – too – met « some curly quotes » there or «here»No space."], + ["pre", ["code", "She was 6\\\"12\\'."]], + ["blockquote", ["p", "She was 6\"12'."]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/smartypants.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/smartypants.text new file mode 100644 index 000000000..14478ea5b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/smartypants.text @@ -0,0 +1,13 @@ + 'Twas a "test" to 'remember' in the '90s. +'Twas a "test" to 'remember' in the '90s. + + It was --- in a sense --- really... interesting. +It was --- in a sense --- really... interesting. + + I -- too -- met << some curly quotes >> there or <>No space. +I -- too -- met << some curly quotes >> there or <>No space. + + + She was 6\"12\'. +> She was 6\"12\'. + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/syntax_hl.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/syntax_hl.html new file mode 100644 index 000000000..0c2ac27a3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/syntax_hl.html @@ -0,0 +1,11 @@ +

    This is ruby code:

    + +
    require 'maruku'
    +
    +puts Maruku.new($stdin).to_html
    + +

    This is ruby code:

    + +
    require 'maruku'
    + +
    puts Maruku.new($stdin).to_html
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/syntax_hl.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/syntax_hl.json new file mode 100644 index 000000000..3442f4c3c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/syntax_hl.json @@ -0,0 +1,23 @@ +["html", ["p", "This is ruby code:"], + ["pre", ["code", "require 'maruku'\u000a\u000aputs Maruku.new($stdin).to_html"]], + ["p", "This is ruby code:"], + ["pre", ["code", { + "class": "ruby", + "lang": "ruby" + }, + ["span", { + "class": "ident" + }, + "require"], " ", ["span", { + "class": "punct" + }, + "'"], + ["span", { + "class": "string" + }, + "maruku"], + ["span", { + "class": "punct" + }, + "'"]]], + ["pre", ["code", "puts Maruku.new($stdin).to_html"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/syntax_hl.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/syntax_hl.text new file mode 100644 index 000000000..ec6d1a412 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/syntax_hl.text @@ -0,0 +1,12 @@ +This is ruby code: + + require 'maruku' + + puts Maruku.new($stdin).to_html + +This is ruby code: + + require 'maruku' +{: lang=ruby html_use_syntax} + + puts Maruku.new($stdin).to_html diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/table_attributes.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/table_attributes.html new file mode 100644 index 000000000..5e6304d7a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/table_attributes.html @@ -0,0 +1,2 @@ + +
    hh
    c1c2
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/table_attributes.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/table_attributes.json new file mode 100644 index 000000000..1c004cb1e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/table_attributes.json @@ -0,0 +1,22 @@ +["html", ["table", { + "cellspacing": "2em", + "class": "class1", + "border": "3", + "rules": "cols", + "frame": "lhs", + "summary": "Table summary", + "cellpadding": "4px", + "width": "50%", + "style": "color:red" +}, +["thead", ["tr", ["th", "h"], + ["th", "h"]]], + ["tbody", ["tr", ["th", { + "scope": "row", + "style": "text-align: left;" + }, + " c1"], + ["td", { + "style": "text-align: left;" + }, + "c2"]]]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/table_attributes.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/table_attributes.text new file mode 100644 index 000000000..3dc217d94 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/table_attributes.text @@ -0,0 +1,7 @@ + +h | h +----------|-- +{:t} c1 | c2 +{: summary="Table summary" .class1 style="color:red" border=3 width="50%" frame=lhs rules=cols cellspacing=2em cellpadding=4px} + +{:t: scope="row"} diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/test.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/test.html new file mode 100644 index 000000000..84945554f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/test.html @@ -0,0 +1 @@ +
           $ python       
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/test.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/test.json new file mode 100644 index 000000000..f3394ab22 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/test.json @@ -0,0 +1 @@ +["html", ["pre", ["code", " $ python "]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/test.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/test.text new file mode 100644 index 000000000..96c7f45f1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/test.text @@ -0,0 +1,5 @@ + + $ python + + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/wrapping.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/wrapping.html new file mode 100644 index 000000000..941a5008e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/wrapping.html @@ -0,0 +1,7 @@ +

    Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Break:
    Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet.

    + +
      +
    • Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet Lorem ipsum Break:
      Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet
    • + +
    • Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet
    • +
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/wrapping.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/wrapping.json new file mode 100644 index 000000000..d32bcde4a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/wrapping.json @@ -0,0 +1,3 @@ +["html", ["p", "Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Break:", ["br"], "Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet."], + ["ul", ["li", "Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet Lorem ipsum Break:", ["br"], "Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet"], + ["li", "Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet"]]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/wrapping.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/wrapping.text new file mode 100644 index 000000000..fcfdd9add --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/wrapping.text @@ -0,0 +1,8 @@ +Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Break: +Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. + +* Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet + Lorem ipsum Break: + Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet +* Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml.html new file mode 100644 index 000000000..8b39ac899 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml.json new file mode 100644 index 000000000..ca90965e0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml.json @@ -0,0 +1,21 @@ +["html", ["svg:svg"], + ["svg:svg", { + "height": "400px", + "width": "600px" + }, + "\u000a ", ["svg:g", { + "id": "group" + }, + "\u000a\u0009", ["svg:circle", { + "cy": "3cm", + "id": "circ1", + "r": "1cm", + "cx": "3cm", + "style": "fill:red;" + }], "\u000a\u0009", ["svg:circle", { + "cy": "3cm", + "id": "circ2", + "r": "1cm", + "cx": "7cm", + "style": "fill:red;" + }], "\u000a "], "\u000a"], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml.text new file mode 100644 index 000000000..98fb57c51 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml.text @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml2.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml2.html new file mode 100644 index 000000000..54fef9bc3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml2.html @@ -0,0 +1,3 @@ + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml2.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml2.json new file mode 100644 index 000000000..15ac8a55a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml2.json @@ -0,0 +1 @@ +["html", "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml2.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml2.text new file mode 100644 index 000000000..54fef9bc3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml2.text @@ -0,0 +1,3 @@ + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml3.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml3.html new file mode 100644 index 000000000..92c8a1f21 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml3.html @@ -0,0 +1,4 @@ +Blah + + +
    em
    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml3.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml3.json new file mode 100644 index 000000000..7ddefcb53 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml3.json @@ -0,0 +1 @@ +["html", ["table", "Blah", ["thead", ["td", ["em", "em"]]]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml3.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml3.text new file mode 100644 index 000000000..17553e13d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml3.text @@ -0,0 +1,7 @@ + + Blah + + + +
    *em*
    + diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml_instruction.html b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml_instruction.html new file mode 100644 index 000000000..60f8aedad --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml_instruction.html @@ -0,0 +1,4 @@ + +

    Targets

    + +

    Inside: last

    diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml_instruction.json b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml_instruction.json new file mode 100644 index 000000000..f6ebfe0e2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml_instruction.json @@ -0,0 +1,2 @@ +["html", "\u000a", ["p", "Targets ", " ", " "], + ["p", "Inside: ", " last"]] diff --git a/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml_instruction.text b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml_instruction.text new file mode 100644 index 000000000..7e42a4187 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-maruku-unittest/xml_instruction.text @@ -0,0 +1,11 @@ + + + + + + +Targets + +Inside: last + + diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Abbr.html b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Abbr.html new file mode 100644 index 000000000..89d618d87 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Abbr.html @@ -0,0 +1,11 @@ +

    Some text about HTML, SGML and HTML4.

    + +

    Let's talk about the U.S.A., (É.U. or É.-U. d'A. in French).

    + +

    And here we have a CD, some CDs, and some other CD's.

    + +

    Let's transfert documents through TCP/IP, using TCP packets.

    + +
    + +

    Bienvenue sur CMS.

    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Abbr.json b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Abbr.json new file mode 100644 index 000000000..0470586f3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Abbr.json @@ -0,0 +1,44 @@ +["html", ["p", "Some text about ", ["abbr", { + "title": "Hyper Text Markup Language" +}, +"HTML"], ", ", ["abbr", { + "title": "Standard Generalized Markup Language" +}, +"SGML"], " and ", ["abbr", { + "title": "Hyper Text Markup Language version 4" +}, +"HTML4"], "."], + ["p", "Let's talk about the ", ["abbr", { + "title": "United States of America" + }, + "U.S.A."], ", (", ["abbr", { + "title": "États-Unis d'Amérique" + }, + "É.U."], " or ", ["abbr", { + "title": "États-Unis d'Amérique" + }, + "É.-U. d'A."], " in French)."], + ["p", "And here we have a ", ["abbr", { + "title": "Compact Disk" + }, + "CD"], ", some CDs, and some other ", ["abbr", { + "title": "Compact Disk" + }, + "CD"], "'s."], + ["p", "Let's transfert documents through ", ["abbr", { + "title": "Transmission Control Protocol" + }, + "TCP"], "/", ["abbr", { + "title": "Internet Protocol" + }, + "IP"], ", using ", ["abbr", { + "title": "Transmission Control Protocol" + }, + "TCP"], " packets."], "\u000a\u000a", ["hr"], "\u000a\u000a", ["p", "Bienvenue sur ", ["a", { + "href": "http://www.bidulecms.com", + "title": "Bidule CMS" +}, +["abbr", { + "title": "Content Management System" +}, +"CMS"]], "."]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Abbr.text b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Abbr.text new file mode 100644 index 000000000..5dd4ef2cd --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Abbr.text @@ -0,0 +1,25 @@ +Some text about HTML, SGML and HTML4. + +Let's talk about the U.S.A., (É.U. or É.-U. d'A. in French). + +*[HTML4]: Hyper Text Markup Language version 4 +*[HTML]: Hyper Text Markup Language +*[SGML]: Standard Generalized Markup Language +*[U.S.A.]: United States of America +*[É.U.] : États-Unis d'Amérique +*[É.-U. d'A.] : États-Unis d'Amérique + +And here we have a CD, some CDs, and some other CD's. + +*[CD]: Compact Disk + +Let's transfert documents through TCP/IP, using TCP packets. + +*[IP]: Internet Protocol +*[TCP]: Transmission Control Protocol + + --- + +Bienvenue sur [CMS](http://www.bidulecms.com "Bidule CMS"). + +*[CMS]: Content Management System \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Definition_Lists.html b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Definition_Lists.html new file mode 100644 index 000000000..0ab9f4057 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Definition_Lists.html @@ -0,0 +1,142 @@ +

    A simple definition list:

    + +
    +
    Term 1
    +
    Definition 1
    + +
    Term 2
    +
    Definition 2
    +
    + +

    With multiple terms:

    + +
    +
    Term 1
    +
    Term 2
    +
    Definition 1
    + +
    Term 3
    +
    Term 4
    +
    Definition 2
    +
    + +

    With multiple definitions:

    + +
    +
    Term 1
    +
    Definition 1
    + +
    Definition 2
    + +
    Term 2
    +
    Definition 3
    + +
    Definition 4
    +
    + +

    With multiple lines per definition:

    + +
    +
    Term 1
    +
    Definition 1 line 1 ... +Definition 1 line 2
    + +
    Definition 2 line 1 ... +Definition 2 line 2
    + +
    Term 2
    +
    Definition 3 line 2 ... +Definition 3 line 2
    + +
    Definition 4 line 2 ... +Definition 4 line 2
    +
    + +

    With paragraphs:

    + +
    +
    Term 1
    +
    +

    Definition 1 (paragraph)

    +
    + +
    Term 2
    +
    +

    Definition 2 (paragraph)

    +
    +
    + +

    With multiple paragraphs:

    + +
    +
    Term 1
    +
    +

    Definition 1 paragraph 1 line 1 ... +Definition 1 paragraph 1 line 2

    + +

    Definition 1 paragraph 2 line 1 ... +Definition 1 paragraph 2 line 2

    +
    + +
    Term 2
    +
    +

    Definition 1 paragraph 1 line 1 ... +Definition 1 paragraph 1 line 2 (lazy)

    + +

    Definition 1 paragraph 2 line 1 ... +Definition 1 paragraph 2 line 2 (lazy)

    +
    +
    + +
    + +

    A mix:

    + +
    +
    Term 1
    +
    Term 2
    +
    +

    Definition 1 paragraph 1 line 1 ... +Definition 1 paragraph 1 line 2 (lazy)

    + +

    Definition 1 paragraph 2 line 1 ... +Definition 1 paragraph 2 line 2

    +
    + +
    +

    Definition 2 paragraph 1 line 1 ... +Definition 2 paragraph 1 line 2 (lazy)

    +
    + +
    Term 3
    +
    Definition 3 (no paragraph)
    + +
    Definition 4 (no paragraph)
    + +
    Definition 5 line 1 ... +Definition 5 line 2 (no paragraph)
    + +
    +

    Definition 6 paragraph 1 line 1 ... +Definition 6 paragraph 1 line 2

    +
    + +
    Definition 7 (no paragraph)
    + +
    +

    Definition 8 paragraph 1 line 1 (forced paragraph) ... +Definition 8 paragraph 1 line 2

    + +

    Definition 8 paragraph 2 line 1

    +
    + +
    Term 4
    +
    +

    Definition 9 paragraph 1 line 1 (forced paragraph) ... +Definition 9 paragraph 1 line 2

    + +

    Definition 9 paragraph 2 line 1

    +
    + +
    Definition 10 (no paragraph)
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Definition_Lists.json b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Definition_Lists.json new file mode 100644 index 000000000..b098d0daf --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Definition_Lists.json @@ -0,0 +1,43 @@ +["html", ["p", "A simple definition list:"], "\u000a\u000a", ["dl", ["dt", "Term 1"], + ["dd", "Definition 1"], + ["dt", "Term 2"], + ["dd", "Definition 2"]], "\u000a\u000a", ["p", "With multiple terms:"], "\u000a\u000a", ["dl", ["dt", "Term 1"], + ["dt", "Term 2"], + ["dd", "Definition 1"], + ["dt", "Term 3"], + ["dt", "Term 4"], + ["dd", "Definition 2"]], "\u000a\u000a", ["p", "With multiple definitions:"], "\u000a\u000a", ["dl", ["dt", "Term 1"], + ["dd", "Definition 1"], + ["dd", "Definition 2"], + ["dt", "Term 2"], + ["dd", "Definition 3"], + ["dd", "Definition 4"]], "\u000a\u000a", ["p", "With multiple lines per definition:"], "\u000a\u000a", ["dl", ["dt", "Term 1"], + ["dd", "Definition 1 line 1 ...\u000aDefinition 1 line 2"], + ["dd", "Definition 2 line 1 ...\u000aDefinition 2 line 2"], + ["dt", "Term 2"], + ["dd", "Definition 3 line 2 ...\u000aDefinition 3 line 2"], + ["dd", "Definition 4 line 2 ...\u000aDefinition 4 line 2"]], "\u000a\u000a", ["p", "With paragraphs:"], "\u000a\u000a", ["dl", ["dt", "Term 1"], + ["dd", ["p", "Definition 1 (paragraph)"]], + ["dt", "Term 2"], + ["dd", ["p", "Definition 2 (paragraph)"]]], "\u000a\u000a", ["p", "With multiple paragraphs:"], "\u000a\u000a", ["dl", ["dt", "Term 1"], + ["dd", ["p", "Definition 1 paragraph 1 line 1 ...\u000aDefinition 1 paragraph 1 line 2"], + ["p", "Definition 1 paragraph 2 line 1 ...\u000aDefinition 1 paragraph 2 line 2"]], + ["dt", "Term 2"], + ["dd", ["p", "Definition 1 paragraph 1 line 1 ...\u000aDefinition 1 paragraph 1 line 2 (lazy)"], + ["p", "Definition 1 paragraph 2 line 1 ...\u000aDefinition 1 paragraph 2 line 2 (lazy)"]]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["p", "A mix:"], "\u000a\u000a", ["dl", ["dt", "Term 1"], + ["dt", "Term 2"], + ["dd", ["p", "Definition 1 paragraph 1 line 1 ...\u000aDefinition 1 paragraph 1 line 2 (lazy)"], + ["p", "Definition 1 paragraph 2 line 1 ...\u000aDefinition 1 paragraph 2 line 2"]], + ["dd", ["p", "Definition 2 paragraph 1 line 1 ...\u000aDefinition 2 paragraph 1 line 2 (lazy)"]], + ["dt", "Term 3"], + ["dd", "Definition 3 (no paragraph)"], + ["dd", "Definition 4 (no paragraph)"], + ["dd", "Definition 5 line 1 ...\u000aDefinition 5 line 2 (no paragraph)"], + ["dd", ["p", "Definition 6 paragraph 1 line 1 ...\u000aDefinition 6 paragraph 1 line 2"]], + ["dd", "Definition 7 (no paragraph)"], + ["dd", ["p", "Definition 8 paragraph 1 line 1 (forced paragraph) ...\u000aDefinition 8 paragraph 1 line 2"], + ["p", "Definition 8 paragraph 2 line 1"]], + ["dt", "Term 4"], + ["dd", ["p", "Definition 9 paragraph 1 line 1 (forced paragraph) ...\u000aDefinition 9 paragraph 1 line 2"], + ["p", "Definition 9 paragraph 2 line 1"]], + ["dd", "Definition 10 (no paragraph)"]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Definition_Lists.text b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Definition_Lists.text new file mode 100644 index 000000000..eae1fb5a8 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Definition_Lists.text @@ -0,0 +1,106 @@ +A simple definition list: + +Term 1 +: Definition 1 + +Term 2 +: Definition 2 + +With multiple terms: + +Term 1 +Term 2 +: Definition 1 + +Term 3 +Term 4 +: Definition 2 + +With multiple definitions: + +Term 1 +: Definition 1 +: Definition 2 + +Term 2 +: Definition 3 +: Definition 4 + +With multiple lines per definition: + +Term 1 +: Definition 1 line 1 ... +Definition 1 line 2 +: Definition 2 line 1 ... +Definition 2 line 2 + +Term 2 +: Definition 3 line 2 ... + Definition 3 line 2 +: Definition 4 line 2 ... + Definition 4 line 2 + +With paragraphs: + +Term 1 + +: Definition 1 (paragraph) + +Term 2 + +: Definition 2 (paragraph) + +With multiple paragraphs: + +Term 1 + +: Definition 1 paragraph 1 line 1 ... + Definition 1 paragraph 1 line 2 + + Definition 1 paragraph 2 line 1 ... + Definition 1 paragraph 2 line 2 + +Term 2 + +: Definition 1 paragraph 1 line 1 ... +Definition 1 paragraph 1 line 2 (lazy) + + Definition 1 paragraph 2 line 1 ... +Definition 1 paragraph 2 line 2 (lazy) + +* * * + +A mix: + +Term 1 +Term 2 + +: Definition 1 paragraph 1 line 1 ... +Definition 1 paragraph 1 line 2 (lazy) + + Definition 1 paragraph 2 line 1 ... + Definition 1 paragraph 2 line 2 + +: Definition 2 paragraph 1 line 1 ... +Definition 2 paragraph 1 line 2 (lazy) + +Term 3 +: Definition 3 (no paragraph) +: Definition 4 (no paragraph) +: Definition 5 line 1 ... + Definition 5 line 2 (no paragraph) + +: Definition 6 paragraph 1 line 1 ... +Definition 6 paragraph 1 line 2 +: Definition 7 (no paragraph) +: Definition 8 paragraph 1 line 1 (forced paragraph) ... + Definition 8 paragraph 1 line 2 + + Definition 8 paragraph 2 line 1 + +Term 4 +: Definition 9 paragraph 1 line 1 (forced paragraph) ... + Definition 9 paragraph 1 line 2 + + Definition 9 paragraph 2 line 1 +: Definition 10 (no paragraph) \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Emphasis.html b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Emphasis.html new file mode 100644 index 000000000..dfb11a746 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Emphasis.html @@ -0,0 +1,72 @@ +

    Combined emphasis:

    + +
      +
    1. test test
    2. +
    3. test test
    4. +
    5. test test
    6. +
    7. test test
    8. +
    9. test test
    10. +
    11. test test
    12. +
    13. test test
    14. +
    15. test test
    16. +
    17. test test
    18. +
    19. test test
    20. +
    21. test test
    22. +
    23. test test
    24. +
    25. test test
    26. +
    27. test test
    28. +
    29. test test
    30. +
    31. test test
    32. +
    + +

    Incorrect nesting:

    + +
      +
    1. *test test* test
    2. +
    3. _test test_ test
    4. +
    5. **test test* test*
    6. +
    7. __test test_ test_
    8. +
    9. test *test test*
    10. +
    11. test _test test_
    12. +
    13. test test test
    14. +
    15. test test test
    16. +
    + +

    No emphasis:

    + +
      +
    1. test* test *test
    2. +
    3. test** test **test
    4. +
    5. test_ test _test
    6. +
    7. test__ test __test
    8. +
    + +

    Middle-word emphasis (asterisks):

    + +
      +
    1. ab
    2. +
    3. ab
    4. +
    5. abc
    6. +
    7. ab
    8. +
    9. ab
    10. +
    11. abc
    12. +
    + +

    Middle-word emphasis (underscore):

    + +
      +
    1. _a_b
    2. +
    3. a_b_
    4. +
    5. a_b_c
    6. +
    7. __a__b
    8. +
    9. a__b__
    10. +
    11. a__b__c
    12. +
    + +

    my_precious_file.txt

    + +

    Tricky Cases

    + +

    E**. Test TestTestTest

    + +

    E**. Test Test Test Test

    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Emphasis.json b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Emphasis.json new file mode 100644 index 000000000..10df510bd --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Emphasis.json @@ -0,0 +1,47 @@ +["html", ["p", "Combined emphasis:"], + ["ol", ["li", ["strong", ["em", "test test"]]], + ["li", ["strong", ["em", "test test"]]], + ["li", ["em", "test ", ["strong", "test"]]], + ["li", ["strong", "test ", ["em", "test"]]], + ["li", ["strong", ["em", "test"], " test"]], + ["li", ["em", ["strong", "test"], " test"]], + ["li", ["strong", ["em", "test"], " test"]], + ["li", ["strong", "test ", ["em", "test"]]], + ["li", ["em", "test ", ["strong", "test"]]], + ["li", ["em", "test ", ["strong", "test"]]], + ["li", ["strong", "test ", ["em", "test"]]], + ["li", ["strong", ["em", "test"], " test"]], + ["li", ["em", ["strong", "test"], " test"]], + ["li", ["strong", ["em", "test"], " test"]], + ["li", ["strong", "test ", ["em", "test"]]], + ["li", ["em", "test ", ["strong", "test"]]]], + ["p", "Incorrect nesting:"], + ["ol", ["li", "*test ", ["strong", "test* test"]], + ["li", "_test ", ["strong", "test_ test"]], + ["li", "**test ", ["em", "test"], "* test*"], + ["li", "__test ", ["em", "test"], "_ test_"], + ["li", ["em", "test *test"], " test*"], + ["li", ["em", "test _test"], " test_"], + ["li", ["strong", "test ", ["strong", "test"], " test"]], + ["li", ["strong", "test ", ["strong", "test"], " test"]]], + ["p", "No emphasis:"], + ["ol", ["li", "test* test *test"], + ["li", "test** test **test"], + ["li", "test_ test _test"], + ["li", "test__ test __test"]], + ["p", "Middle-word emphasis (asterisks):"], + ["ol", ["li", ["em", "a"], "b"], + ["li", "a", ["em", "b"]], + ["li", "a", ["em", "b"], "c"], + ["li", ["strong", "a"], "b"], + ["li", "a", ["strong", "b"]], + ["li", "a", ["strong", "b"], "c"]], + ["p", "Middle-word emphasis (underscore):"], + ["ol", ["li", "_a_b"], + ["li", "a_b_"], + ["li", "a_b_c"], + ["li", "__a__b"], + ["li", "a__b__"], + ["li", "a__b__c"]], + ["p", "my_precious_file.txt"], "\u000a\u000a", ["h2", "Tricky Cases"], "\u000a\u000a", ["p", "E**. ", ["strong", "Test"], " TestTestTest"], + ["p", "E**. ", ["strong", "Test"], " Test Test Test"]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Emphasis.text b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Emphasis.text new file mode 100644 index 000000000..ec48dec07 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Emphasis.text @@ -0,0 +1,69 @@ +Combined emphasis: + +1. ***test test*** +2. ___test test___ +3. *test **test*** +4. **test *test*** +5. ***test* test** +6. ***test** test* +7. ***test* test** +8. **test *test*** +9. *test **test*** +10. _test __test___ +11. __test _test___ +12. ___test_ test__ +13. ___test__ test_ +14. ___test_ test__ +15. __test _test___ +16. _test __test___ + + +Incorrect nesting: + +1. *test **test* test** +2. _test __test_ test__ +3. **test *test** test* +4. __test _test__ test_ +5. *test *test* test* +6. _test _test_ test_ +7. **test **test** test** +8. __test __test__ test__ + + + +No emphasis: + +1. test* test *test +2. test** test **test +3. test_ test _test +4. test__ test __test + + + +Middle-word emphasis (asterisks): + +1. *a*b +2. a*b* +3. a*b*c +4. **a**b +5. a**b** +6. a**b**c + + +Middle-word emphasis (underscore): + +1. _a_b +2. a_b_ +3. a_b_c +4. __a__b +5. a__b__ +6. a__b__c + +my_precious_file.txt + + +## Tricky Cases + +E**. **Test** TestTestTest + +E**. **Test** Test Test Test diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Footnotes.html b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Footnotes.html new file mode 100644 index 000000000..d689588f5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Footnotes.html @@ -0,0 +1,83 @@ +

    This is the first paragraph.1

    + +
      +
    • List item one.2
    • +
    • List item two.3
    • +
    + +

    Header4

    + +

    Some paragraph with a footnote5, and another6.

    + +

    Another paragraph with a named footnote7.

    + +

    This paragraph should not have a footnote marker since +the footnote is undefined.[^3]

    + +

    This paragraph should not have a footnote marker since +the footnote has already been used before.[^1]

    + +

    This paragraph links to a footnote with plenty of +block-level content.8

    + +

    This paragraph host the footnote reference within a +footnote test9.

    + +
    +
    +
      + +
    1. +

      This is the first note. 

      +
    2. + +
    3. +

      This is the second note. 

      +
    4. + +
    5. +

      This is the third note, defined out of order. 

      +
    6. + +
    7. +

      This is the fourth note. 

      +
    8. + +
    9. +

      Content for fifth footnote. 

      +
    10. + +
    11. +

      Content for sixth footnote spaning on +three lines, with some span-level markup like +emphasis, a link

      +
    12. + +
    13. +

      Footnote beginning on the line next to the marker. 

      +
    14. + +
    15. +

      Paragraph.

      + +
        +
      • List item
      • +
      + +
      +

      Blockquote

      +
      + +
      Code block
      +
      + +

      +
    16. + +
    17. +

      This footnote attemps to refer to another footnote. This +should be impossible.[^impossible] 

      +
    18. + +
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Footnotes.json b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Footnotes.json new file mode 100644 index 000000000..5938c558d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Footnotes.json @@ -0,0 +1,152 @@ +["html", ["p", "This is the first paragraph.", ["sup", { + "id": "fnref:first" +}, +["a", { + "href": "#fn:first", + "rel": "footnote" +}, +"1"]]], + ["ul", ["li", "List item one.", ["sup", { + "id": "fnref:second" + }, + ["a", { + "href": "#fn:second", + "rel": "footnote" + }, + "2"]]], + ["li", "List item two.", ["sup", { + "id": "fnref:third" + }, + ["a", { + "href": "#fn:third", + "rel": "footnote" + }, + "3"]]]], "\u000a\u000a", ["h1", "Header", ["sup", { + "id": "fnref:fourth" +}, +["a", { + "href": "#fn:fourth", + "rel": "footnote" +}, +"4"]]], "\u000a\u000a", ["p", "Some paragraph with a footnote", ["sup", { + "id": "fnref:1" +}, +["a", { + "href": "#fn:1", + "rel": "footnote" +}, +"5"]], ", and another", ["sup", { + "id": "fnref:2" +}, +["a", { + "href": "#fn:2", + "rel": "footnote" +}, +"6"]], "."], + ["p", "Another paragraph with a named footnote", ["sup", { + "id": "fnref:fn-name" + }, + ["a", { + "href": "#fn:fn-name", + "rel": "footnote" + }, + "7"]], "."], + ["p", "This paragraph should not have a footnote marker since \u000athe footnote is undefined.[^3]"], + ["p", "This paragraph should not have a footnote marker since \u000athe footnote has already been used before.[^1]"], + ["p", "This paragraph links to a footnote with plenty of \u000ablock-level content.", ["sup", { + "id": "fnref:block" + }, + ["a", { + "href": "#fn:block", + "rel": "footnote" + }, + "8"]]], + ["p", "This paragraph host the footnote reference within a \u000afootnote test", ["sup", { + "id": "fnref:reference" + }, + ["a", { + "href": "#fn:reference", + "rel": "footnote" + }, + "9"]], "."], "\u000a\u000a", ["div", { + "class": "footnotes" +}, +"\u000a", ["hr"], "\u000a", ["ol", ["li", { + "id": "fn:first" +}, +["p", "This is the first note. ", ["a", { + "href": "#fnref:first", + "rev": "footnote" +}, +"↩"]]], + ["li", { + "id": "fn:second" + }, + ["p", "This is the second note. ", ["a", { + "href": "#fnref:second", + "rev": "footnote" + }, + "↩"]]], + ["li", { + "id": "fn:third" + }, + ["p", "This is the third note, defined out of order. ", ["a", { + "href": "#fnref:third", + "rev": "footnote" + }, + "↩"]]], + ["li", { + "id": "fn:fourth" + }, + ["p", "This is the fourth note. ", ["a", { + "href": "#fnref:fourth", + "rev": "footnote" + }, + "↩"]]], + ["li", { + "id": "fn:1" + }, + ["p", "Content for fifth footnote. ", ["a", { + "href": "#fnref:1", + "rev": "footnote" + }, + "↩"]]], + ["li", { + "id": "fn:2" + }, + ["p", "Content for sixth footnote spaning on \u000athree lines, with some span-level markup like\u000a", ["em", "emphasis"], ", a ", ["a", { + "href": "http://www.michelf.com/" + }, + "link"], ". ", ["a", { + "href": "#fnref:2", + "rev": "footnote" + }, + "↩"]]], + ["li", { + "id": "fn:fn-name" + }, + ["p", "Footnote beginning on the line next to the marker. ", ["a", { + "href": "#fnref:fn-name", + "rev": "footnote" + }, + "↩"]]], + ["li", { + "id": "fn:block" + }, + ["p", "Paragraph."], + ["ul", ["li", "List item"]], + ["blockquote", ["p", "Blockquote"]], + ["pre", ["code", "Code block\u000a"]], + ["p", ["a", { + "href": "#fnref:block", + "rev": "footnote" + }, + "↩"]]], + ["li", { + "id": "fn:reference" + }, + ["p", "This footnote attemps to refer to another footnote. This \u000ashould be impossible.[^impossible] ", ["a", { + "href": "#fnref:reference", + "rev": "footnote" + }, + "↩"]]]]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Footnotes.text b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Footnotes.text new file mode 100644 index 000000000..d2cadf12f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Footnotes.text @@ -0,0 +1,55 @@ +This is the first paragraph.[^first] + +[^first]: This is the first note. + +* List item one.[^second] +* List item two.[^third] + +[^third]: This is the third note, defined out of order. +[^second]: This is the second note. +[^fourth]: This is the fourth note. + +# Header[^fourth] + +Some paragraph with a footnote[^1], and another[^2]. + +[^1]: Content for fifth footnote. +[^2]: Content for sixth footnote spaning on + three lines, with some span-level markup like + _emphasis_, a [link][]. + +[link]: http://www.michelf.com/ + +Another paragraph with a named footnote[^fn-name]. + +[^fn-name]: + Footnote beginning on the line next to the marker. + +This paragraph should not have a footnote marker since +the footnote is undefined.[^3] + +This paragraph should not have a footnote marker since +the footnote has already been used before.[^1] + +This paragraph links to a footnote with plenty of +block-level content.[^block] + +[^block]: + Paragraph. + + * List item + + > Blockquote + + Code block + +This paragraph host the footnote reference within a +footnote test[^reference]. + +[^reference]: + This footnote attemps to refer to another footnote. This + should be impossible.[^impossible] + +[^impossible]: + This footnote should not appear, as it is refered from + another footnote, which is not allowed. diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.html b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.html new file mode 100644 index 000000000..4751f7867 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.html @@ -0,0 +1,125 @@ +

    Markdown inside code blocks

    + +
    + +

    foo

    + +
    + +
    + +

    foo

    + +
    + +
    + +

    foo

    + +
    + + + +
    test emphasis (span)
    + + + +
    test emphasis (span)
    + + + +
    + +

    test emphasis (block)

    + +
    + +

    More complicated

    + + + + + +
    +* this is not a list item
    +* this is not a list item
    + +
      +
    • this is a list item
    • +
    + +
    + +

    With indent

    + +
    +
    + +

    This text is no code block: if it was, the +closing <div> would be too and the HTML block +would be invalid.

    + +

    Markdown content in HTML blocks is assumed to be +indented the same as the block opening tag.

    + +

    This should be the third paragraph after the header.

    + +
    +
    + +

    Code block with rogue </div>s in Markdown code span and block

    + +
    +
    + +

    This is a code block however:

    + +
    </div>
    +
    + +

    Funny isn't it? Here is a code span: </div>.

    + +
    +
    + +
    +
    + +
      +
    • List item, not a code block
    • +
    + +

    Some text

    + +
    This is a code block.
    +
    + +
    +
    + +

    No code block in markdown span mode

    + +

    + This is not a code block since Markdown parse paragraph + content as span. Code spans like </p> are allowed though. +

    + +

    Hello world

    + +

    Preserving attributes and tags on more than one line:

    + +

    +Some span content. +

    + +

    Header confusion bug

    + + + + + +
    Hello World! +============ + +Hello World!
    \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.json b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.json new file mode 100644 index 000000000..cd1f2a4e2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.json @@ -0,0 +1,20 @@ +["html", ["h1", "Markdown inside code blocks"], "\u000a\u000a", ["div", ["p", "foo"]], "\u000a\u000a", ["div", ["p", "foo"]], "\u000a\u000a", ["div", ["p", "foo"]], "\u000a\u000a", ["table", ["tr", ["td", "test ", ["em", "emphasis"], " (span)"]]], "\u000a\u000a", ["table", ["tr", ["td", "test ", ["em", "emphasis"], " (span)"]]], "\u000a\u000a", ["table", ["tr", ["td", ["p", "test ", ["em", "emphasis"], " (block)"]]]], "\u000a\u000a", ["h2", "More complicated"], "\u000a\u000a", ["table", ["tr", ["td", "\u000a* this is ", ["em", "not"], " a list item"]], + ["tr", ["td", "\u000a* this is ", ["em", "not"], " a list item"]], + ["tr", ["td", ["ul", ["li", "this ", ["em", "is"], " a list item"]]]]], "\u000a\u000a", ["h2", "With indent"], "\u000a\u000a", ["div", "\u000a ", ["div", ["p", "This text is no code block: if it was, the \u000aclosing ", ["code", "
    "], " would be too and the HTML block \u000awould be invalid."], + ["p", "Markdown content in HTML blocks is assumed to be \u000aindented the same as the block opening tag."], + ["p", ["strong", "This should be the third paragraph after the header."]]], "\u000a"], "\u000a\u000a", ["h2", "Code block with rogue ", ["code", "
    "], "s in Markdown code span and block"], "\u000a\u000a", ["div", "\u000a ", ["div", ["p", "This is a code block however:"], + ["pre", ["code", "
    \u000a"]], + ["p", "Funny isn't it? Here is a code span: ", ["code", "
    "], "."]], "\u000a"], "\u000a\u000a", ["div", "\u000a ", ["div", ["ul", ["li", "List item, not a code block"]], + ["p", "Some text"], + ["pre", ["code", "This is a code block.\u000a"]]], "\u000a"], "\u000a\u000a", ["h2", "No code block in markdown span mode"], "\u000a\u000a", ["p", "\u000a This is not a code block since Markdown parse paragraph \u000a content as span. Code spans like ", ["code", "

    "], " are allowed though.\u000a"], + ["p", ["em", "Hello"], " ", ["em", "world"]], "\u000a\u000a", ["h2", "Preserving attributes and tags on more than one line:"], "\u000a\u000a", ["p", { + "class": "test", + "id": "12" +}, +"\u000aSome ", ["em", "span"], " content.\u000a"], "\u000a\u000a", ["h2", "Header confusion bug"], "\u000a\u000a", ["table", { + "class": "canvas" +}, +["tr", ["td", { + "id": "main" +}, +"Hello World!\u000a============\u000a\u000aHello World!"]]]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.text b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.text new file mode 100644 index 000000000..1eb54502d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.text @@ -0,0 +1,104 @@ +# Markdown inside code blocks + +
    +foo +
    + +
    +foo +
    + +
    +foo +
    + + + +
    test _emphasis_ (span)
    + + + +
    test _emphasis_ (span)
    + + + +
    test _emphasis_ (block)
    + +## More complicated + + + + + +
    +* this is _not_ a list item
    +* this is _not_ a list item
    +* this _is_ a list item +
    + +## With indent + +
    +
    + This text is no code block: if it was, the + closing `
    ` would be too and the HTML block + would be invalid. + + Markdown content in HTML blocks is assumed to be + indented the same as the block opening tag. + + **This should be the third paragraph after the header.** +
    +
    + +## Code block with rogue `
    `s in Markdown code span and block + +
    +
    + + This is a code block however: + +
    + + Funny isn't it? Here is a code span: `
    `. + +
    +
    + +
    +
    + * List item, not a code block + +Some text + + This is a code block. +
    +
    + +## No code block in markdown span mode + +

    + This is not a code block since Markdown parse paragraph + content as span. Code spans like `

    ` are allowed though. +

    + +

    _Hello_ _world_

    + +## Preserving attributes and tags on more than one line: + +

    +Some _span_ content. +

    + + +## Header confusion bug + + + + + +
    Hello World! +============ + +Hello World!
    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Tables.html b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Tables.html new file mode 100644 index 000000000..e36286c8b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Tables.html @@ -0,0 +1,310 @@ +

    Simple tables

    + + + + + + + + + + + + + + + + + + +
    Header 1Header 2
    Cell 1Cell 2
    Cell 3Cell 4
    + +

    With leading pipes:

    + + + + + + + + + + + + + + + + + + +
    Header 1Header 2
    Cell 1Cell 2
    Cell 3Cell 4
    + +

    With tailing pipes:

    + + + + + + + + + + + + + + + + + + +
    Header 1Header 2
    Cell 1Cell 2
    Cell 3Cell 4
    + +

    With leading and tailing pipes:

    + + + + + + + + + + + + + + + + + + +
    Header 1Header 2
    Cell 1Cell 2
    Cell 3Cell 4
    + +
    + +

    One-column one-row table

    + +

    With leading pipes:

    + + + + + + + + + + + + +
    Header
    Cell
    + +

    With tailing pipes:

    + + + + + + + + + + + + +
    Header
    Cell
    + +

    With leading and tailing pipes:

    + + + + + + + + + + + + +
    Header
    Cell
    + +
    + +

    Table alignement:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    DefaultRightCenterLeft
    Long CellLong CellLong CellLong Cell
    CellCellCellCell
    + +

    Table alignement (alternate spacing):

    + + + + + + + + + + + + + + + + + + + + + + + + +
    DefaultRightCenterLeft
    Long CellLong CellLong CellLong Cell
    CellCellCellCell
    + +
    + +

    Empty cells

    + + + + + + + + + + + + + + + + + + +
    Header 1Header 2
    AB
    C
    + + + + + + + + + + + + + + + + + + +
    Header 1Header 2
    AB
    D
    + +
    + +

    Missing tailing pipe

    + + + + + + + + + + + + + + + + + + +
    Header 1Header 2
    CellCell
    CellCell
    + + + + + + + + + + + + + + + + + + +
    Header 1Header 2
    CellCell
    CellCell
    + + + + + + + + + + + + + + + + + + +
    Header 1Header 2
    CellCell
    CellCell
    + + + + + + + + + + + + + + + + + + +
    Header 1Header 2
    CellCell
    CellCell
    \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Tables.json b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Tables.json new file mode 100644 index 000000000..e25c9603d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Tables.json @@ -0,0 +1,130 @@ +["html", ["h1", "Simple tables"], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header 1"], + ["th", "Header 2"]]], + ["tbody", ["tr", ["td", "Cell 1"], + ["td", "Cell 2"]], + ["tr", ["td", "Cell 3"], + ["td", "Cell 4"]]]], "\u000a\u000a", ["p", "With leading pipes:"], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header 1"], + ["th", "Header 2"]]], + ["tbody", ["tr", ["td", "Cell 1"], + ["td", "Cell 2"]], + ["tr", ["td", "Cell 3"], + ["td", "Cell 4"]]]], "\u000a\u000a", ["p", "With tailing pipes:"], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header 1"], + ["th", "Header 2"]]], + ["tbody", ["tr", ["td", "Cell 1"], + ["td", "Cell 2"]], + ["tr", ["td", "Cell 3"], + ["td", "Cell 4"]]]], "\u000a\u000a", ["p", "With leading and tailing pipes:"], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header 1"], + ["th", "Header 2"]]], + ["tbody", ["tr", ["td", "Cell 1"], + ["td", "Cell 2"]], + ["tr", ["td", "Cell 3"], + ["td", "Cell 4"]]]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["h1", "One-column one-row table"], "\u000a\u000a", ["p", "With leading pipes:"], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header"]]], + ["tbody", ["tr", ["td", "Cell"]]]], "\u000a\u000a", ["p", "With tailing pipes:"], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header"]]], + ["tbody", ["tr", ["td", "Cell"]]]], "\u000a\u000a", ["p", "With leading and tailing pipes:"], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header"]]], + ["tbody", ["tr", ["td", "Cell"]]]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["p", "Table alignement:"], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Default"], + ["th", { + "align": "left" + }, + "Right"], + ["th", { + "align": "center" + }, + "Center"], + ["th", { + "align": "right" + }, + "Left"]]], + ["tbody", ["tr", ["td", "Long Cell"], + ["td", { + "align": "left" + }, + "Long Cell"], + ["td", { + "align": "center" + }, + "Long Cell"], + ["td", { + "align": "right" + }, + "Long Cell"]], + ["tr", ["td", "Cell"], + ["td", { + "align": "left" + }, + "Cell"], + ["td", { + "align": "center" + }, + "Cell"], + ["td", { + "align": "right" + }, + "Cell"]]]], "\u000a\u000a", ["p", "Table alignement (alternate spacing):"], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Default"], + ["th", { + "align": "left" + }, + "Right"], + ["th", { + "align": "center" + }, + "Center"], + ["th", { + "align": "right" + }, + "Left"]]], + ["tbody", ["tr", ["td", "Long Cell"], + ["td", { + "align": "left" + }, + "Long Cell"], + ["td", { + "align": "center" + }, + "Long Cell"], + ["td", { + "align": "right" + }, + "Long Cell"]], + ["tr", ["td", "Cell"], + ["td", { + "align": "left" + }, + "Cell"], + ["td", { + "align": "center" + }, + "Cell"], + ["td", { + "align": "right" + }, + "Cell"]]]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["h1", "Empty cells"], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header 1"], + ["th", "Header 2"]]], + ["tbody", ["tr", ["td", "A"], + ["td", "B"]], + ["tr", ["td", "C"], + ["td"]]]], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header 1"], + ["th", "Header 2"]]], + ["tbody", ["tr", ["td", "A"], + ["td", "B"]], + ["tr", ["td"], + ["td", "D"]]]], "\u000a\u000a", ["hr"], "\u000a\u000a", ["h1", "Missing tailing pipe"], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header 1"], + ["th", "Header 2"]]], + ["tbody", ["tr", ["td", "Cell"], + ["td", "Cell"]], + ["tr", ["td", "Cell"], + ["td", "Cell"]]]], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header 1"], + ["th", "Header 2"]]], + ["tbody", ["tr", ["td", "Cell"], + ["td", "Cell"]], + ["tr", ["td", "Cell"], + ["td", "Cell"]]]], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header 1"], + ["th", "Header 2"]]], + ["tbody", ["tr", ["td", "Cell"], + ["td", "Cell"]], + ["tr", ["td", "Cell"], + ["td", "Cell"]]]], "\u000a\u000a", ["table", ["thead", ["tr", ["th", "Header 1"], + ["th", "Header 2"]]], + ["tbody", ["tr", ["td", "Cell"], + ["td", "Cell"]], + ["tr", ["td", "Cell"], + ["td", "Cell"]]]]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Tables.text b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Tables.text new file mode 100644 index 000000000..71b93ca62 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-extra/Tables.text @@ -0,0 +1,104 @@ +# Simple tables + +Header 1 | Header 2 +--------- | --------- +Cell 1 | Cell 2 +Cell 3 | Cell 4 + +With leading pipes: + +| Header 1 | Header 2 +| --------- | --------- +| Cell 1 | Cell 2 +| Cell 3 | Cell 4 + +With tailing pipes: + +Header 1 | Header 2 | +--------- | --------- | +Cell 1 | Cell 2 | +Cell 3 | Cell 4 | + +With leading and tailing pipes: + +| Header 1 | Header 2 | +| --------- | --------- | +| Cell 1 | Cell 2 | +| Cell 3 | Cell 4 | + +* * * + +# One-column one-row table + +With leading pipes: + +| Header +| ------- +| Cell + +With tailing pipes: + +Header | +------- | +Cell | + +With leading and tailing pipes: + +| Header | +| ------- | +| Cell | + +* * * + +Table alignement: + +| Default | Right | Center | Left | +| --------- |:--------- |:---------:| ---------:| +| Long Cell | Long Cell | Long Cell | Long Cell | +| Cell | Cell | Cell | Cell | + +Table alignement (alternate spacing): + +| Default | Right | Center | Left | +| --------- | :-------- | :-------: | --------: | +| Long Cell | Long Cell | Long Cell | Long Cell | +| Cell | Cell | Cell | Cell | + +* * * + +# Empty cells + +| Header 1 | Header 2 | +| --------- | --------- | +| A | B | +| C | | + +Header 1 | Header 2 +--------- | --------- +A | B + | D + +* * * + +# Missing tailing pipe + +Header 1 | Header 2 +--------- | --------- | +Cell | Cell | +Cell | Cell | + +Header 1 | Header 2 | +--------- | --------- +Cell | Cell | +Cell | Cell | + +Header 1 | Header 2 | +--------- | --------- | +Cell | Cell +Cell | Cell | + +Header 1 | Header 2 | +--------- | --------- | +Cell | Cell | +Cell | Cell + diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Email_auto_links.html b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Email_auto_links.html new file mode 100644 index 000000000..a32c40874 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Email_auto_links.html @@ -0,0 +1,3 @@ +

    michel.fortin@michelf.com

    + +

    International domain names: help@tūdaliņ.lv

    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Email_auto_links.json b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Email_auto_links.json new file mode 100644 index 000000000..935fb6d9b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Email_auto_links.json @@ -0,0 +1,8 @@ +["html", ["p", ["a", { + "href": "mailto:michel.fortin@michelf.com" +}, +"michel.fortin@michelf.com"]], + ["p", "International domain names: ", ["a", { + "href": "mailto:help@tūdaliņ.lv" + }, + "help@tūdaliņ.lv"]]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Email_auto_links.text b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Email_auto_links.text new file mode 100644 index 000000000..a8af4ec3c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Email_auto_links.text @@ -0,0 +1,3 @@ + + +International domain names: \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Emphasis.html b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Emphasis.html new file mode 100644 index 000000000..739913244 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Emphasis.html @@ -0,0 +1,72 @@ +

    Combined emphasis:

    + +
      +
    1. test test
    2. +
    3. test test
    4. +
    5. test test
    6. +
    7. test test
    8. +
    9. test test
    10. +
    11. test test
    12. +
    13. test test
    14. +
    15. test test
    16. +
    17. test test
    18. +
    19. test test
    20. +
    21. test test
    22. +
    23. test test
    24. +
    25. test test
    26. +
    27. test test
    28. +
    29. test test
    30. +
    31. test test
    32. +
    + +

    Incorrect nesting:

    + +
      +
    1. *test test* test
    2. +
    3. _test test_ test
    4. +
    5. **test test* test*
    6. +
    7. __test test_ test_
    8. +
    9. test *test test*
    10. +
    11. test _test test_
    12. +
    13. test test test
    14. +
    15. test test test
    16. +
    + +

    No emphasis:

    + +
      +
    1. test* test *test
    2. +
    3. test** test **test
    4. +
    5. test_ test _test
    6. +
    7. test__ test __test
    8. +
    + +

    Middle-word emphasis (asterisks):

    + +
      +
    1. ab
    2. +
    3. ab
    4. +
    5. abc
    6. +
    7. ab
    8. +
    9. ab
    10. +
    11. abc
    12. +
    + +

    Middle-word emphasis (underscore):

    + +
      +
    1. ab
    2. +
    3. ab
    4. +
    5. abc
    6. +
    7. ab
    8. +
    9. ab
    10. +
    11. abc
    12. +
    + +

    mypreciousfile.txt

    + +

    Tricky Cases

    + +

    E**. Test TestTestTest

    + +

    E**. Test Test Test Test

    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Emphasis.json b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Emphasis.json new file mode 100644 index 000000000..bc25ffd9f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Emphasis.json @@ -0,0 +1,47 @@ +["html", ["p", "Combined emphasis:"], + ["ol", ["li", ["strong", ["em", "test test"]]], + ["li", ["strong", ["em", "test test"]]], + ["li", ["em", "test ", ["strong", "test"]]], + ["li", ["strong", "test ", ["em", "test"]]], + ["li", ["strong", ["em", "test"], " test"]], + ["li", ["em", ["strong", "test"], " test"]], + ["li", ["strong", ["em", "test"], " test"]], + ["li", ["strong", "test ", ["em", "test"]]], + ["li", ["em", "test ", ["strong", "test"]]], + ["li", ["em", "test ", ["strong", "test"]]], + ["li", ["strong", "test ", ["em", "test"]]], + ["li", ["strong", ["em", "test"], " test"]], + ["li", ["em", ["strong", "test"], " test"]], + ["li", ["strong", ["em", "test"], " test"]], + ["li", ["strong", "test ", ["em", "test"]]], + ["li", ["em", "test ", ["strong", "test"]]]], + ["p", "Incorrect nesting:"], + ["ol", ["li", "*test ", ["strong", "test* test"]], + ["li", "_test ", ["strong", "test_ test"]], + ["li", "**test ", ["em", "test"], "* test*"], + ["li", "__test ", ["em", "test"], "_ test_"], + ["li", ["em", "test *test"], " test*"], + ["li", ["em", "test _test"], " test_"], + ["li", ["strong", "test ", ["strong", "test"], " test"]], + ["li", ["strong", "test ", ["strong", "test"], " test"]]], + ["p", "No emphasis:"], + ["ol", ["li", "test* test *test"], + ["li", "test** test **test"], + ["li", "test_ test _test"], + ["li", "test__ test __test"]], + ["p", "Middle-word emphasis (asterisks):"], + ["ol", ["li", ["em", "a"], "b"], + ["li", "a", ["em", "b"]], + ["li", "a", ["em", "b"], "c"], + ["li", ["strong", "a"], "b"], + ["li", "a", ["strong", "b"]], + ["li", "a", ["strong", "b"], "c"]], + ["p", "Middle-word emphasis (underscore):"], + ["ol", ["li", ["em", "a"], "b"], + ["li", "a", ["em", "b"]], + ["li", "a", ["em", "b"], "c"], + ["li", ["strong", "a"], "b"], + ["li", "a", ["strong", "b"]], + ["li", "a", ["strong", "b"], "c"]], + ["p", "my", ["em", "precious"], "file.txt"], "\u000a\u000a", ["h2", "Tricky Cases"], "\u000a\u000a", ["p", "E**. ", ["strong", "Test"], " TestTestTest"], + ["p", "E**. ", ["strong", "Test"], " Test Test Test"]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Emphasis.text b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Emphasis.text new file mode 100644 index 000000000..ec48dec07 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Emphasis.text @@ -0,0 +1,69 @@ +Combined emphasis: + +1. ***test test*** +2. ___test test___ +3. *test **test*** +4. **test *test*** +5. ***test* test** +6. ***test** test* +7. ***test* test** +8. **test *test*** +9. *test **test*** +10. _test __test___ +11. __test _test___ +12. ___test_ test__ +13. ___test__ test_ +14. ___test_ test__ +15. __test _test___ +16. _test __test___ + + +Incorrect nesting: + +1. *test **test* test** +2. _test __test_ test__ +3. **test *test** test* +4. __test _test__ test_ +5. *test *test* test* +6. _test _test_ test_ +7. **test **test** test** +8. __test __test__ test__ + + + +No emphasis: + +1. test* test *test +2. test** test **test +3. test_ test _test +4. test__ test __test + + + +Middle-word emphasis (asterisks): + +1. *a*b +2. a*b* +3. a*b*c +4. **a**b +5. a**b** +6. a**b**c + + +Middle-word emphasis (underscore): + +1. _a_b +2. a_b_ +3. a_b_c +4. __a__b +5. a__b__ +6. a__b__c + +my_precious_file.txt + + +## Tricky Cases + +E**. **Test** TestTestTest + +E**. **Test** Test Test Test diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Inline_HTML_(Span).html b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Inline_HTML_(Span).html new file mode 100644 index 000000000..4d18affe9 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Inline_HTML_(Span).html @@ -0,0 +1,4 @@ +

    ACINACS

    + +

    SB +SB

    \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Inline_HTML_(Span).json b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Inline_HTML_(Span).json new file mode 100644 index 000000000..77e2b96c8 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Inline_HTML_(Span).json @@ -0,0 +1,11 @@ +["html", ["p", ["abbr", { + "title": "` **Attribute Content Is Not A Code Span** `" +}, +"ACINACS"]], + ["p", ["abbr", { + "title": "`first backtick!" + }, + "SB"], " \u000a", ["abbr", { + "title": "`second backtick!" + }, + "SB"]]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Inline_HTML_(Span).text b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Inline_HTML_(Span).text new file mode 100644 index 000000000..19028bb3e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Inline_HTML_(Span).text @@ -0,0 +1,4 @@ +ACINACS + +SB +SB \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Ins_and_del.json b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Ins_and_del.json new file mode 100644 index 000000000..f907dab1d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Ins_and_del.json @@ -0,0 +1,3 @@ +["html", ["p", "Here is a block tag ins:"], "\u000a\u000a", ["ins", ["p", "Some text"]], "\u000a\u000a", ["p", ["ins", "And here it is inside a paragraph."]], + ["p", "And here it is ", ["ins", "in the middle of"], " a paragraph."], "\u000a\u000a", ["del", ["p", "Some text"]], "\u000a\u000a", ["p", ["del", "And here is ins as a paragraph."]], + ["p", "And here it is ", ["del", "in the middle of"], " a paragraph."]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Ins_and_del.text b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Ins_and_del.text new file mode 100644 index 000000000..2d54c660d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Ins_and_del.text @@ -0,0 +1,17 @@ +Here is a block tag ins: + + +

    Some text

    +
    + +And here it is inside a paragraph. + +And here it is in the middle of a paragraph. + + +

    Some text

    +
    + +And here is ins as a paragraph. + +And here it is in the middle of a paragraph. diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Ins_and_del.xhtml b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Ins_and_del.xhtml new file mode 100644 index 000000000..60e8c5ff0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Ins_and_del.xhtml @@ -0,0 +1,17 @@ +

    Here is a block tag ins:

    + + +

    Some text

    +
    + +

    And here it is inside a paragraph.

    + +

    And here it is in the middle of a paragraph.

    + + +

    Some text

    +
    + +

    And here is ins as a paragraph.

    + +

    And here it is in the middle of a paragraph.

    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Links_inline_style.html b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Links_inline_style.html new file mode 100644 index 000000000..d3e4d1118 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Links_inline_style.html @@ -0,0 +1 @@ +

    silly URL w/ angle brackets.

    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Links_inline_style.json b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Links_inline_style.json new file mode 100644 index 000000000..f7faf552a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Links_inline_style.json @@ -0,0 +1,4 @@ +["html", ["p", ["a", { + "href": "?}]*+|&)" +}, +"silly URL w/ angle brackets"], "."]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Links_inline_style.text b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Links_inline_style.text new file mode 100644 index 000000000..600a04422 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Links_inline_style.text @@ -0,0 +1 @@ +[silly URL w/ angle brackets](). diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Nesting.html b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Nesting.html new file mode 100644 index 000000000..37845d311 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Nesting.html @@ -0,0 +1,11 @@ +

    Valid nesting:

    + +

    Link

    + +

    Link

    + +

    Link

    + +

    Invalid nesting:

    + +

    [Link](url)

    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Nesting.json b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Nesting.json new file mode 100644 index 000000000..7aab7f0e1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Nesting.json @@ -0,0 +1,18 @@ +["html", ["p", "Valid nesting:"], + ["p", ["strong", ["a", { + "href": "url" + }, + "Link"]]], + ["p", ["a", { + "href": "url" + }, + ["strong", "Link"]]], + ["p", ["strong", ["a", { + "href": "url" + }, + ["strong", "Link"]]]], + ["p", "Invalid nesting:"], + ["p", ["a", { + "href": "url" + }, + "[Link](url)"]]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Nesting.text b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Nesting.text new file mode 100644 index 000000000..791538c06 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Nesting.text @@ -0,0 +1,11 @@ +Valid nesting: + +**[Link](url)** + +[**Link**](url) + +**[**Link**](url)** + +Invalid nesting: + +[[Link](url)](url) \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Parens_in_URL.html b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Parens_in_URL.html new file mode 100644 index 000000000..a81aa029b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Parens_in_URL.html @@ -0,0 +1,11 @@ +

    Inline link 1 with parens.

    + +

    Inline link 2 with parens.

    + +

    Inline link 3 with non-escaped parens.

    + +

    Inline link 4 with non-escaped parens.

    + +

    Reference link 1 with parens.

    + +

    Reference link 2 with parens.

    \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Parens_in_URL.json b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Parens_in_URL.json new file mode 100644 index 000000000..207a072f2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Parens_in_URL.json @@ -0,0 +1,30 @@ +["html", ["p", ["a", { + "href": "/url(test)", + "title": "title" +}, +"Inline link 1 with parens"], "."], + ["p", ["a", { + "href": "/url(test)", + "title": "title" + }, + "Inline link 2 with parens"], "."], + ["p", ["a", { + "href": "/url(test)", + "title": "title" + }, + "Inline link 3 with non-escaped parens"], "."], + ["p", ["a", { + "href": "/url(test)", + "title": "title" + }, + "Inline link 4 with non-escaped parens"], "."], + ["p", ["a", { + "href": "/url(test)", + "title": "title" + }, + "Reference link 1 with parens"], "."], + ["p", ["a", { + "href": "/url(test)", + "title": "title" + }, + "Reference link 2 with parens"], "."]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Parens_in_URL.text b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Parens_in_URL.text new file mode 100644 index 000000000..bb7be4fb8 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown-todo/Parens_in_URL.text @@ -0,0 +1,14 @@ +[Inline link 1 with parens](/url\(test\) "title"). + +[Inline link 2 with parens]( "title"). + +[Inline link 3 with non-escaped parens](/url(test) "title"). + +[Inline link 4 with non-escaped parens]( "title"). + +[Reference link 1 with parens][1]. + +[Reference link 2 with parens][2]. + + [1]: /url(test) "title" + [2]: "title" diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Backslash_escapes.html b/node_modules/markdown/test/fixtures/docs-php-markdown/Backslash_escapes.html new file mode 100644 index 000000000..c5dbcfc24 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Backslash_escapes.html @@ -0,0 +1,9 @@ +

    Tricky combinaisons:

    + +

    backslash with \-- two dashes

    + +

    backslash with \> greater than

    + +

    \[test](not a link)

    + +

    \*no emphasis*

    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Backslash_escapes.json b/node_modules/markdown/test/fixtures/docs-php-markdown/Backslash_escapes.json new file mode 100644 index 000000000..fe607646e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Backslash_escapes.json @@ -0,0 +1,5 @@ +["html", ["p", "Tricky combinaisons:"], + ["p", "backslash with \\-- two dashes"], + ["p", "backslash with \\> greater than"], + ["p", "\\[test](not a link)"], + ["p", "\\*no emphasis*"]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Backslash_escapes.text b/node_modules/markdown/test/fixtures/docs-php-markdown/Backslash_escapes.text new file mode 100644 index 000000000..a5e769b7e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Backslash_escapes.text @@ -0,0 +1 @@ +Tricky combinaisons: backslash with \\-- two dashes backslash with \\> greater than \\\[test](not a link) \\\*no emphasis* \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Code_Spans.html b/node_modules/markdown/test/fixtures/docs-php-markdown/Code_Spans.html new file mode 100644 index 000000000..9ed0df87e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Code_Spans.html @@ -0,0 +1,6 @@ +

    From <!-- to --> +on two lines.

    + +

    From <!-- +to --> +on three lines.

    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Code_Spans.json b/node_modules/markdown/test/fixtures/docs-php-markdown/Code_Spans.json new file mode 100644 index 000000000..0854d4ff0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Code_Spans.json @@ -0,0 +1,2 @@ +["html", ["p", "From ", ["code", ""], "\u000aon two lines."], + ["p", "From ", ["code", ""], "\u000aon three lines."]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Code_Spans.text b/node_modules/markdown/test/fixtures/docs-php-markdown/Code_Spans.text new file mode 100644 index 000000000..43f2bcfd5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Code_Spans.text @@ -0,0 +1,6 @@ +From `` +on two lines. + +From `` +on three lines. diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Code_block_in_a_list_item.html b/node_modules/markdown/test/fixtures/docs-php-markdown/Code_block_in_a_list_item.html new file mode 100644 index 000000000..8ac5d83eb --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Code_block_in_a_list_item.html @@ -0,0 +1,11 @@ +
      +
    • List Item:

      + +
      code block
      +
      +
      +with a blank line
      +
      + +

      within a list item.

    • +
    \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Code_block_in_a_list_item.json b/node_modules/markdown/test/fixtures/docs-php-markdown/Code_block_in_a_list_item.json new file mode 100644 index 000000000..2d1ddf39b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Code_block_in_a_list_item.json @@ -0,0 +1,3 @@ +["html", ["ul", ["li", ["p", "List Item:"], + ["pre", ["code", "code block\u000a\u000a\u000awith a blank line\u000a"]], + ["p", "within a list item."]]]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Code_block_in_a_list_item.text b/node_modules/markdown/test/fixtures/docs-php-markdown/Code_block_in_a_list_item.text new file mode 100644 index 000000000..3fa24c31d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Code_block_in_a_list_item.text @@ -0,0 +1,8 @@ + +* List Item: + + code block + + with a blank line + + within a list item. \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Headers.html b/node_modules/markdown/test/fixtures/docs-php-markdown/Headers.html new file mode 100644 index 000000000..3adb47074 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Headers.html @@ -0,0 +1,39 @@ +

    Header

    + +

    Header

    + +

    Header

    + +
    + +

    Header

    + +

    Paragraph

    + +

    Header

    + +

    Paragraph

    + +

    Header

    + +

    Paragraph

    + +
    + +

    Paragraph

    + +

    Header

    + +

    Paragraph

    + +

    Paragraph

    + +

    Header

    + +

    Paragraph

    + +

    Paragraph

    + +

    Header

    + +

    Paragraph

    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Headers.json b/node_modules/markdown/test/fixtures/docs-php-markdown/Headers.json new file mode 100644 index 000000000..bd094895e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Headers.json @@ -0,0 +1,3 @@ +["html", ["h1", "Header"], "\u000a\u000a", ["h2", "Header"], "\u000a\u000a", ["h3", "Header"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["h1", "Header"], "\u000a\u000a", ["p", "Paragraph"], "\u000a\u000a", ["h2", "Header"], "\u000a\u000a", ["p", "Paragraph"], "\u000a\u000a", ["h3", "Header"], "\u000a\u000a", ["p", "Paragraph"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["p", "Paragraph"], "\u000a\u000a", ["h1", "Header"], "\u000a\u000a", ["p", "Paragraph"], + ["p", "Paragraph"], "\u000a\u000a", ["h2", "Header"], "\u000a\u000a", ["p", "Paragraph"], + ["p", "Paragraph"], "\u000a\u000a", ["h3", "Header"], "\u000a\u000a", ["p", "Paragraph"]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Headers.text b/node_modules/markdown/test/fixtures/docs-php-markdown/Headers.text new file mode 100644 index 000000000..3a39174a5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Headers.text @@ -0,0 +1,9 @@ +Header ====== Header ------ ### Header + + - - - + +Header ====== Paragraph Header ------ Paragraph ### Header Paragraph + + - - - + +Paragraph Header ====== Paragraph Paragraph Header ------ Paragraph Paragraph ### Header Paragraph \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Images_(Untitled).html b/node_modules/markdown/test/fixtures/docs-php-markdown/Images_(Untitled).html new file mode 100644 index 000000000..1b9bc0461 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Images_(Untitled).html @@ -0,0 +1,5 @@ +

    alt text

    + +

    alt text

    + +

    alt text

    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Images_(Untitled).json b/node_modules/markdown/test/fixtures/docs-php-markdown/Images_(Untitled).json new file mode 100644 index 000000000..a46b07443 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Images_(Untitled).json @@ -0,0 +1,12 @@ +["html", ["p", ["img", { + "src": "/url/", + "alt": "alt text" +}]], + ["p", ["img", { + "src": "/url/", + "alt": "alt text" + }]], + ["p", ["img", { + "src": "/url/", + "alt": "alt text" + }]]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Images_(Untitled).text b/node_modules/markdown/test/fixtures/docs-php-markdown/Images_(Untitled).text new file mode 100644 index 000000000..cb481dedd --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Images_(Untitled).text @@ -0,0 +1,7 @@ +![alt text](/url/) + +![alt text]() + +![alt text][foo] + + [foo]: /url/ \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_(Simple).html b/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_(Simple).html new file mode 100644 index 000000000..facfefbac --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_(Simple).html @@ -0,0 +1,15 @@ +

    With some attributes:

    + +
    + foo +
    + +
    + foo +
    + +

    Hr's:

    + +
    \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_(Simple).json b/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_(Simple).json new file mode 100644 index 000000000..0cdbfd67f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_(Simple).json @@ -0,0 +1,11 @@ +["html", ["p", "With some attributes:"], "\u000a\u000a", ["div", { + "id": "test" +}, +"\u000a foo\u000a"], "\u000a\u000a", ["div", { + "id": "test", + "class": "nono" +}, +"\u000a foo\u000a"], "\u000a\u000a", ["p", "Hr's:"], "\u000a\u000a", ["hr", { + "class": "foo", + "id": "bar" +}]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_(Simple).text b/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_(Simple).text new file mode 100644 index 000000000..9177105e8 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_(Simple).text @@ -0,0 +1,15 @@ +With some attributes: + +
    + foo +
    + +
    + foo +
    + +Hr's: + +
    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_comments.html b/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_comments.html new file mode 100644 index 000000000..b45f01481 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_comments.html @@ -0,0 +1,9 @@ +

    Paragraph one.

    + + + +

    Paragraph two.

    + + + +

    The end.

    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_comments.json b/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_comments.json new file mode 100644 index 000000000..fd65c352c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_comments.json @@ -0,0 +1 @@ +["html", ["p", "Paragraph one."], "\u000a\u000a", "\u000a\u000a", ["p", "Paragraph two."], "\u000a\u000a", "\u000a\u000a", ["p", "The end."]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_comments.text b/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_comments.text new file mode 100644 index 000000000..d57d00aa3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Inline_HTML_comments.text @@ -0,0 +1,9 @@ +Paragraph one. + + + +Paragraph two. + + + +The end. diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/PHP-Specific_Bugs.html b/node_modules/markdown/test/fixtures/docs-php-markdown/PHP-Specific_Bugs.html new file mode 100644 index 000000000..c982417b6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/PHP-Specific_Bugs.html @@ -0,0 +1,17 @@ +

    This tests for a bug where quotes escaped by PHP when using +preg_replace with the /e modifier must be correctly unescaped +(hence the _UnslashQuotes function found only in PHP Markdown).

    + +

    Headers below should appear exactly as they are typed (no backslash +added or removed).

    + +

    Header "quoted\" again \""

    + +

    Header "quoted\" again \""

    + +

    Header "quoted\" again \""

    + +

    Test with tabs for _Detab:

    + +
    Code    'block' with    some    "tabs"  and "quotes"
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/PHP-Specific_Bugs.json b/node_modules/markdown/test/fixtures/docs-php-markdown/PHP-Specific_Bugs.json new file mode 100644 index 000000000..ce3dfae49 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/PHP-Specific_Bugs.json @@ -0,0 +1,3 @@ +["html", ["p", "This tests for a bug where quotes escaped by PHP when using \u000a", ["code", "preg_replace"], " with the ", ["code", "/e"], " modifier must be correctly unescaped\u000a(hence the ", ["code", "_UnslashQuotes"], " function found only in PHP Markdown)."], + ["p", "Headers below should appear exactly as they are typed (no backslash\u000aadded or removed)."], "\u000a\u000a", ["h1", "Header \"quoted\\\" again \\\"\""], "\u000a\u000a", ["h2", "Header \"quoted\\\" again \\\"\""], "\u000a\u000a", ["h3", "Header \"quoted\\\" again \\\"\""], "\u000a\u000a", ["p", "Test with tabs for ", ["code", "_Detab"], ":"], + ["pre", ["code", "Code 'block' with some \"tabs\" and \"quotes\"\u000a"]]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/PHP-Specific_Bugs.text b/node_modules/markdown/test/fixtures/docs-php-markdown/PHP-Specific_Bugs.text new file mode 100644 index 000000000..246b60d1c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/PHP-Specific_Bugs.text @@ -0,0 +1,22 @@ +This tests for a bug where quotes escaped by PHP when using +`preg_replace` with the `/e` modifier must be correctly unescaped +(hence the `_UnslashQuotes` function found only in PHP Markdown). + + + +Headers below should appear exactly as they are typed (no backslash +added or removed). + +Header "quoted\" again \\"" +=========================== + +Header "quoted\" again \\"" +--------------------------- + +### Header "quoted\" again \\"" ### + + + +Test with tabs for `_Detab`: + + Code 'block' with some "tabs" and "quotes" diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Tight_blocks.html b/node_modules/markdown/test/fixtures/docs-php-markdown/Tight_blocks.html new file mode 100644 index 000000000..86554308b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Tight_blocks.html @@ -0,0 +1,21 @@ +

    Paragraph and no space: +* ciao

    + +

    Paragraph and 1 space: + * ciao

    + +

    Paragraph and 3 spaces: + * ciao

    + +

    Paragraph and 4 spaces: + * ciao

    + +

    Paragraph before header:

    + +

    Header

    + +

    Paragraph before blockquote:

    + +
    +

    Some quote.

    +
    diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Tight_blocks.json b/node_modules/markdown/test/fixtures/docs-php-markdown/Tight_blocks.json new file mode 100644 index 000000000..116b198b0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Tight_blocks.json @@ -0,0 +1,6 @@ +["html", ["p", "Paragraph and no space:\u000a* ciao"], + ["p", "Paragraph and 1 space:\u000a * ciao"], + ["p", "Paragraph and 3 spaces:\u000a * ciao"], + ["p", "Paragraph and 4 spaces:\u000a * ciao"], + ["p", "Paragraph before header:"], "\u000a\u000a", ["h1", "Header"], "\u000a\u000a", ["p", "Paragraph before blockquote:"], + ["blockquote", ["p", "Some quote."]]] diff --git a/node_modules/markdown/test/fixtures/docs-php-markdown/Tight_blocks.text b/node_modules/markdown/test/fixtures/docs-php-markdown/Tight_blocks.text new file mode 100644 index 000000000..ae4cdcb46 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-php-markdown/Tight_blocks.text @@ -0,0 +1 @@ +Paragraph and no space: * ciao Paragraph and 1 space: * ciao Paragraph and 3 spaces: * ciao Paragraph and 4 spaces: * ciao Paragraph before header: #Header Paragraph before blockquote: >Some quote. \ No newline at end of file diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link.html new file mode 100644 index 000000000..e4dde058e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link.html @@ -0,0 +1,3 @@ +

    I can has autolink? http://icanhascheeseburger.com

    + +

    Ask garfield: garfield@example.com

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link.json new file mode 100644 index 000000000..3748db61a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link.json @@ -0,0 +1,8 @@ +["html", ["p", "I can has autolink? ", ["a", { + "href": "http://icanhascheeseburger.com" +}, +"http://icanhascheeseburger.com"]], + ["p", "Ask garfield: ", ["a", { + "href": "mailto:garfield@example.com" + }, + "garfield@example.com"]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link.text new file mode 100644 index 000000000..e5354cd45 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link.text @@ -0,0 +1,3 @@ +I can has autolink? + +Ask garfield: diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.html new file mode 100644 index 000000000..e4dde058e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.html @@ -0,0 +1,3 @@ +

    I can has autolink? http://icanhascheeseburger.com

    + +

    Ask garfield: garfield@example.com

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.json new file mode 100644 index 000000000..3748db61a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.json @@ -0,0 +1,8 @@ +["html", ["p", "I can has autolink? ", ["a", { + "href": "http://icanhascheeseburger.com" +}, +"http://icanhascheeseburger.com"]], + ["p", "Ask garfield: ", ["a", { + "href": "mailto:garfield@example.com" + }, + "garfield@example.com"]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.opts new file mode 100644 index 000000000..ccb6a09bd --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.opts @@ -0,0 +1 @@ +{'safe_mode': True} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.text new file mode 100644 index 000000000..e5354cd45 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.text @@ -0,0 +1,3 @@ +I can has autolink? + +Ask garfield: diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.html new file mode 100644 index 000000000..393e9d2c7 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.html @@ -0,0 +1,5 @@ +

    blah [HTML_REMOVED] blah

    + +

    [HTML_REMOVED]yowzer![HTML_REMOVED]

    + +

    blah

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.json new file mode 100644 index 000000000..4d6a31f4c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.json @@ -0,0 +1,3 @@ +["html", ["p", "blah [HTML_REMOVED] blah"], + ["p", "[HTML_REMOVED]yowzer![HTML_REMOVED]"], + ["p", "blah"]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.opts new file mode 100644 index 000000000..e74c7ccec --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.opts @@ -0,0 +1,2 @@ +# Use the old (for-compat-only) way of specifying "replace" safe mode. +{"safe_mode": True} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.text new file mode 100644 index 000000000..ee042312a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.text @@ -0,0 +1,5 @@ +blah blah + +
    yowzer!
    + +blah diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.html new file mode 100644 index 000000000..af24510c2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.html @@ -0,0 +1,5 @@ +

    blah <img src="dangerous"> blah

    + +

    <div>yowzer!</div>

    + +

    blah

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.json new file mode 100644 index 000000000..02c9efb5f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.json @@ -0,0 +1,3 @@ +["html", ["p", "blah blah"], + ["p", "
    yowzer!
    "], + ["p", "blah"]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.opts new file mode 100644 index 000000000..ad487c046 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.opts @@ -0,0 +1 @@ +{"safe_mode": "escape"} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.text new file mode 100644 index 000000000..ee042312a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.text @@ -0,0 +1,5 @@ +blah blah + +
    yowzer!
    + +blah diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote.html new file mode 100644 index 000000000..5cde1cbad --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote.html @@ -0,0 +1,11 @@ +

    [Trent wrote]

    + +
    +

    no way

    +
    + +

    [Jeff wrote]

    + +
    +

    way

    +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote.json new file mode 100644 index 000000000..bb2081278 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote.json @@ -0,0 +1,4 @@ +["html", ["p", "[Trent wrote]"], + ["blockquote", ["p", "no way"]], + ["p", "[Jeff wrote]"], + ["blockquote", ["p", "way"]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote.text new file mode 100644 index 000000000..3bcecaa35 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote.text @@ -0,0 +1,5 @@ +[Trent wrote] +> no way + +[Jeff wrote] +> way diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.html new file mode 100644 index 000000000..d03cc7851 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.html @@ -0,0 +1,9 @@ +
    +

    Markdown indents blockquotes a couple of spaces + necessitating some tweaks for pre-blocks in that + blockquote:

    + +
    here is a check
    +for that
    +
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.json new file mode 100644 index 000000000..acd4c3d21 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.json @@ -0,0 +1,2 @@ +["html", ["blockquote", ["p", "Markdown indents blockquotes a couple of spaces\u000a necessitating some tweaks for pre-blocks in that\u000a blockquote:"], + ["pre", ["code", "here is a check\u000afor that\u000a"]]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.text new file mode 100644 index 000000000..e61b82f7b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.text @@ -0,0 +1,6 @@ +> Markdown indents blockquotes a couple of spaces +> necessitating some tweaks for pre-blocks in that +> blockquote: +> +> here is a check +> for that diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.html new file mode 100644 index 000000000..6c32e465a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.html @@ -0,0 +1,4 @@ +

    Test with tabs for _Detab:

    + +
    Code    'block' with    some    "tabs"  and "quotes"
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.json new file mode 100644 index 000000000..735e24d84 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.json @@ -0,0 +1,2 @@ +["html", ["p", "Test with tabs for ", ["code", "_Detab"], ":"], + ["pre", ["code", "Code 'block' with some \"tabs\" and \"quotes\"\u000a"]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.text new file mode 100644 index 000000000..bcf94c485 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.text @@ -0,0 +1,3 @@ +Test with tabs for `_Detab`: + + Code 'block' with some "tabs" and "quotes" diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.html new file mode 100644 index 000000000..f53e6a5f3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.html @@ -0,0 +1,2 @@ +

    This is italic and this is bold. +This is NOT _italic_ and this is __bold__ because --code-safe is turned on.

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.json new file mode 100644 index 000000000..8799d6ffe --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.json @@ -0,0 +1 @@ +["html", ["p", "This is ", ["em", "italic"], " and this is ", ["strong", "bold"], ".\u000aThis is NOT _italic_ and this is __bold__ because --code-safe is turned on."]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.opts new file mode 100644 index 000000000..cd0b9d619 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.opts @@ -0,0 +1 @@ +{"extras": ["code-friendly"]} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.text new file mode 100644 index 000000000..c54748303 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.text @@ -0,0 +1,2 @@ +This is *italic* and this is **bold**. +This is NOT _italic_ and this is __bold__ because --code-safe is turned on. diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codeblock.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codeblock.html new file mode 100644 index 000000000..bf7f5c23f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codeblock.html @@ -0,0 +1,8 @@ +
    some code
    +
    + +

    some 'splaining

    + +
    some more code
    +2 > 1
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codeblock.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codeblock.json new file mode 100644 index 000000000..5a5bf5e2e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codeblock.json @@ -0,0 +1,3 @@ +["html", ["pre", ["code", "some code\u000a"]], + ["p", "some 'splaining"], + ["pre", ["code", "some more code\u000a2 > 1\u000a"]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codeblock.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codeblock.text new file mode 100644 index 000000000..d374216fc --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codeblock.text @@ -0,0 +1,7 @@ + some code + +some 'splaining + + some more code + 2 > 1 + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans.html new file mode 100644 index 000000000..3528bcdef --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans.html @@ -0,0 +1,2 @@ +

    This is a code span. +And This is one with an `embedded backtick`.

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans.json new file mode 100644 index 000000000..9d3f44c4f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans.json @@ -0,0 +1 @@ +["html", ["p", ["code", "This"], " is a code span.\u000aAnd ", ["code", "This is one with an `embedded backtick`"], "."]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans.text new file mode 100644 index 000000000..67015a9f6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans.text @@ -0,0 +1,2 @@ +`This` is a code span. +And ``This is one with an `embedded backtick` ``. diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.html new file mode 100644 index 000000000..3528bcdef --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.html @@ -0,0 +1,2 @@ +

    This is a code span. +And This is one with an `embedded backtick`.

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.json new file mode 100644 index 000000000..9d3f44c4f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.json @@ -0,0 +1 @@ +["html", ["p", ["code", "This"], " is a code span.\u000aAnd ", ["code", "This is one with an `embedded backtick`"], "."]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.opts new file mode 100644 index 000000000..ccb6a09bd --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.opts @@ -0,0 +1 @@ +{'safe_mode': True} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.text new file mode 100644 index 000000000..67015a9f6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.text @@ -0,0 +1,2 @@ +`This` is a code span. +And ``This is one with an `embedded backtick` ``. diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.html new file mode 100644 index 000000000..b194eb9e6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.html @@ -0,0 +1,4 @@ + + +

    This sentence talks about the Python __init__ method, which I'd rather not be +interpreted as Markdown's strong.

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.json new file mode 100644 index 000000000..bbec5ed5a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.json @@ -0,0 +1 @@ +["html", "\u000a\u000a", ["p", "This sentence talks about the Python __init__ method, which I'd rather not be\u000ainterpreted as Markdown's strong."]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.text new file mode 100644 index 000000000..2d05ab8c2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.text @@ -0,0 +1,4 @@ + + +This sentence talks about the Python __init__ method, which I'd rather not be +interpreted as Markdown's strong. diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.html new file mode 100644 index 000000000..8b4701158 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.html @@ -0,0 +1,8 @@ +

    This sentence talks about the Python __init__ method, which I'd rather not be +interpreted as Markdown's strong.

    + + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.json new file mode 100644 index 000000000..648993fd9 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.json @@ -0,0 +1 @@ +["html", ["p", "This sentence talks about the Python __init__ method, which I'd rather not be\u000ainterpreted as Markdown's strong."], "\u000a\u000a", "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.text new file mode 100644 index 000000000..400d2eb94 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.text @@ -0,0 +1,8 @@ +This sentence talks about the Python __init__ method, which I'd rather not be +interpreted as Markdown's strong. + + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emphasis.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emphasis.html new file mode 100644 index 000000000..a850dc979 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emphasis.html @@ -0,0 +1,2 @@ +

    This is italic and this is bold. +This is also italic and this is bold.

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emphasis.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emphasis.json new file mode 100644 index 000000000..705d1e8cd --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emphasis.json @@ -0,0 +1 @@ +["html", ["p", "This is ", ["em", "italic"], " and this is ", ["strong", "bold"], ".\u000aThis is also ", ["em", "italic"], " and this is ", ["strong", "bold"], "."]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emphasis.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emphasis.text new file mode 100644 index 000000000..202dba6a1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/emphasis.text @@ -0,0 +1,2 @@ +This is *italic* and this is **bold**. +This is also _italic_ and this is __bold__. diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/escapes.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/escapes.html new file mode 100644 index 000000000..9670548b1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/escapes.html @@ -0,0 +1,3 @@ +

    **don't shout**

    + +

    *don't emphasize*

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/escapes.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/escapes.json new file mode 100644 index 000000000..a86965b31 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/escapes.json @@ -0,0 +1,2 @@ +["html", ["p", "**don't shout**"], + ["p", "*don't emphasize*"]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/escapes.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/escapes.text new file mode 100644 index 000000000..a79164e3d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/escapes.text @@ -0,0 +1,3 @@ +\*\*don't shout\*\* + +\*don't emphasize\* diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.html new file mode 100644 index 000000000..37c6d8b2d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.html @@ -0,0 +1,27 @@ +

    This is a para with a footnote.1

    + +

    This is another para with a footnote2 in it. Actually it has two3 of +them. No, three4.

    + +
    +
    +
      +
    1. +

      Here is the body of the first footnote. 

      +
    2. + +
    3. +

      And of the second footnote.

      + +

      This one has multiple paragraphs. 

      +
    4. + +
    5. +

      Here is a footnote body that starts on next line. 

      +
    6. + +
    7. +

      quickie "that looks like a link ref if not careful" 

      +
    8. +
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.json new file mode 100644 index 000000000..8d26e3c3e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.json @@ -0,0 +1,69 @@ +["html", ["p", "This is a para with a footnote.", ["sup", { + "class": "footnote-ref", + "id": "fnref-1" +}, +["a", { + "href": "#fn-1" +}, +"1"]]], + ["p", "This is another para with a footnote", ["sup", { + "class": "footnote-ref", + "id": "fnref-2" + }, + ["a", { + "href": "#fn-2" + }, + "2"]], " in it. Actually it has two", ["sup", { + "class": "footnote-ref", + "id": "fnref-3" + }, + ["a", { + "href": "#fn-3" + }, + "3"]], " of\u000athem. No, three", ["sup", { + "class": "footnote-ref", + "id": "fnref-4" + }, + ["a", { + "href": "#fn-4" + }, + "4"]], "."], "\u000a\u000a", ["div", { + "class": "footnotes" +}, +"\u000a", ["hr"], "\u000a", ["ol", ["li", { + "id": "fn-1" +}, +["p", "Here is the body of the first footnote.", ["a", { + "href": "#fnref-1", + "class": "footnoteBackLink", + "title": "Jump back to footnote 1 in the text." +}, +"↩"]]], + ["li", { + "id": "fn-2" + }, + ["p", "And of the second footnote."], + ["p", "This one has multiple paragraphs.", ["a", { + "href": "#fnref-2", + "class": "footnoteBackLink", + "title": "Jump back to footnote 2 in the text." + }, + "↩"]]], + ["li", { + "id": "fn-3" + }, + ["p", "Here is a footnote body that starts on next line.", ["a", { + "href": "#fnref-3", + "class": "footnoteBackLink", + "title": "Jump back to footnote 3 in the text." + }, + "↩"]]], + ["li", { + "id": "fn-4" + }, + ["p", "quickie \"that looks like a link ref if not careful\"", ["a", { + "href": "#fnref-4", + "class": "footnoteBackLink", + "title": "Jump back to footnote 4 in the text." + }, + "↩"]]]]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.opts new file mode 100644 index 000000000..9dfee9e21 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.opts @@ -0,0 +1 @@ +{"extras": ["footnotes"]} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.text new file mode 100644 index 000000000..7d6e71638 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes.text @@ -0,0 +1,18 @@ +This is a para with a footnote.[^1] + +This is another para with a footnote[^2] in it. Actually it has two[^3] of +them. No, three[^4]. + + +[^1]: Here is the body of the first footnote. + +[^2]: And of the second footnote. + + This one has multiple paragraphs. + +[^3]: + Here is a footnote body that starts on next line. + +[^4]: quickie "that looks like a link ref if not careful" + + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.html new file mode 100644 index 000000000..3702606f9 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.html @@ -0,0 +1,23 @@ +

    This is a para with a footnote.1

    + +

    This is another para with a footnote2 in it. Actually it has two3 of +them.

    + +
    +
    +
      +
    1. +

      Here is the body of the first footnote. 

      +
    2. + +
    3. +

      And of the second footnote.

      + +

      This one has multiple paragraphs. 

      +
    4. + +
    5. +

      Here is a footnote body that starts on next line. 

      +
    6. +
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.json new file mode 100644 index 000000000..3452a4c1b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.json @@ -0,0 +1,53 @@ +["html", ["p", "This is a para with a footnote.", ["sup", { + "class": "footnote-ref", + "id": "fnref-foo" +}, +["a", { + "href": "#fn-foo" +}, +"1"]]], + ["p", "This is another para with a footnote", ["sup", { + "class": "footnote-ref", + "id": "fnref-hyphen-ated" + }, + ["a", { + "href": "#fn-hyphen-ated" + }, + "2"]], " in it. Actually it has two", ["sup", { + "class": "footnote-ref", + "id": "fnref-Capital" + }, + ["a", { + "href": "#fn-Capital" + }, + "3"]], " of\u000athem."], "\u000a\u000a", ["div", { + "class": "footnotes" +}, +"\u000a", ["hr"], "\u000a", ["ol", ["li", { + "id": "fn-foo" +}, +["p", "Here is the body of the first footnote.", ["a", { + "href": "#fnref-foo", + "class": "footnoteBackLink", + "title": "Jump back to footnote 1 in the text." +}, +"↩"]]], + ["li", { + "id": "fn-hyphen-ated" + }, + ["p", "And of the second footnote."], + ["p", "This one has multiple paragraphs.", ["a", { + "href": "#fnref-hyphen-ated", + "class": "footnoteBackLink", + "title": "Jump back to footnote 2 in the text." + }, + "↩"]]], + ["li", { + "id": "fn-Capital" + }, + ["p", "Here is a footnote body that starts on next line.", ["a", { + "href": "#fnref-Capital", + "class": "footnoteBackLink", + "title": "Jump back to footnote 3 in the text." + }, + "↩"]]]]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.opts new file mode 100644 index 000000000..9dfee9e21 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.opts @@ -0,0 +1 @@ +{"extras": ["footnotes"]} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.text new file mode 100644 index 000000000..431a96b34 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.text @@ -0,0 +1,15 @@ +This is a para with a footnote.[^foo] + +This is another para with a footnote[^hyphen-ated] in it. Actually it has two[^Capital] of +them. + + +[^foo]: Here is the body of the first footnote. + +[^hyphen-ated]: And of the second footnote. + + This one has multiple paragraphs. + +[^Capital]: + Here is a footnote body that starts on next line. + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.html new file mode 100644 index 000000000..f3650416b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.html @@ -0,0 +1,22 @@ +

    This is a para with a footnote.1

    + +

    This is another para with a footnote.2

    + +
    +
    +
      +
    1. +

      And the body of the footnote has markup. For example, +a link to digg. And some code:

      + +
      print "Hello, World!"
      +
      + +

      +
    2. + +
    3. +

      This body has markup too, but doesn't end with a code block. 

      +
    4. +
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.json new file mode 100644 index 000000000..c2c8676a5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.json @@ -0,0 +1,41 @@ +["html", ["p", "This is a para with a footnote.", ["sup", { + "class": "footnote-ref", + "id": "fnref-1" +}, +["a", { + "href": "#fn-1" +}, +"1"]]], + ["p", "This is another para with a footnote.", ["sup", { + "class": "footnote-ref", + "id": "fnref-2" + }, + ["a", { + "href": "#fn-2" + }, + "2"]]], "\u000a\u000a", ["div", { + "class": "footnotes" +}, +"\u000a", ["hr"], "\u000a", ["ol", ["li", { + "id": "fn-1" +}, +["p", "And the ", ["strong", "body"], " of the footnote has ", ["code", "markup"], ". For example,\u000aa ", ["a", { + "href": "http://digg.com" +}, +"link to digg"], ". And some code:"], + ["pre", ["code", "print \"Hello, World!\"\u000a"]], + ["p", ["a", { + "href": "#fnref-1", + "class": "footnoteBackLink", + "title": "Jump back to footnote 1 in the text." + }, + "↩"]]], + ["li", { + "id": "fn-2" + }, + ["p", "This body has markup too, ", ["em", "but"], " doesn't end with a code block.", ["a", { + "href": "#fnref-2", + "class": "footnoteBackLink", + "title": "Jump back to footnote 2 in the text." + }, + "↩"]]]]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.opts new file mode 100644 index 000000000..9dfee9e21 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.opts @@ -0,0 +1 @@ +{"extras": ["footnotes"]} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.text new file mode 100644 index 000000000..07b59223e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.text @@ -0,0 +1,10 @@ +This is a para with a footnote.[^1] + +This is another para with a footnote.[^2] + +[^1]: And the **body** of the footnote has `markup`. For example, + a [link to digg](http://digg.com). And some code: + + print "Hello, World!" + +[^2]: This body has markup too, *but* doesn't end with a code block. diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.html new file mode 100644 index 000000000..6bce5a7bb --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.html @@ -0,0 +1,12 @@ +

    This is a para with a footnote.1

    + +
    +
    +
      +
    1. +

      Here is the <em>body</em> of <span class="yo">the</span> footnote.

      + +

      <div class="blah">And here is the second para of the footnote.</div> 

      +
    2. +
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.json new file mode 100644 index 000000000..9e00e0ee1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.json @@ -0,0 +1,20 @@ +["html", ["p", "This is a para with a footnote.", ["sup", { + "class": "footnote-ref", + "id": "fnref-1" +}, +["a", { + "href": "#fn-1" +}, +"1"]]], "\u000a\u000a", ["div", { + "class": "footnotes" +}, +"\u000a", ["hr"], "\u000a", ["ol", ["li", { + "id": "fn-1" +}, +["p", "Here is the body of the footnote."], + ["p", "
    And here is the second para of the footnote.
    ", ["a", { + "href": "#fnref-1", + "class": "footnoteBackLink", + "title": "Jump back to footnote 1 in the text." + }, + "↩"]]]]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.opts new file mode 100644 index 000000000..9d97404b4 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.opts @@ -0,0 +1 @@ +{"safe_mode": "escape", "extras": ["footnotes"]} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.text new file mode 100644 index 000000000..ae8e4e7d1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.text @@ -0,0 +1,6 @@ +This is a para with a footnote.[^1] + +[^1]: Here is the body of the footnote. + +
    And here is the second para of the footnote.
    + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/header.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/header.html new file mode 100644 index 000000000..90fc68a8d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/header.html @@ -0,0 +1,7 @@ +

    an h1

    + +

    an h2

    + +

    another h1

    + +

    another h2

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/header.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/header.json new file mode 100644 index 000000000..1300b2502 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/header.json @@ -0,0 +1 @@ +["html", ["h1", "an h1"], "\u000a\u000a", ["h2", "an h2"], "\u000a\u000a", ["h1", "another h1"], "\u000a\u000a", ["h2", "another h2"], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/header.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/header.text new file mode 100644 index 000000000..5ab06fd1f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/header.text @@ -0,0 +1,9 @@ +# an h1 + +## an h2 + +another h1 +========== + +another h2 +---------- diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/hr.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/hr.html new file mode 100644 index 000000000..442117ee5 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/hr.html @@ -0,0 +1,12 @@ +

    Dashes:

    + +
    + +
    + +
    + +
    + +
    ---
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/hr.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/hr.json new file mode 100644 index 000000000..edea7caf1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/hr.json @@ -0,0 +1 @@ +["html", ["p", "Dashes:"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["hr"], "\u000a\u000a", ["pre", ["code", "---\u000a"]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/hr.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/hr.text new file mode 100644 index 000000000..765b735e0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/hr.text @@ -0,0 +1,12 @@ +Dashes: + +--- + + --- + + --- + + --- + + --- + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/img_in_link.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/img_in_link.html new file mode 100644 index 000000000..09db27a70 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/img_in_link.html @@ -0,0 +1,4 @@ +

    This example from +http://orestis.gr/en/blog/2007/05/28/python-markdown-problems/:

    + +

    the google logo

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/img_in_link.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/img_in_link.json new file mode 100644 index 000000000..2662ec9a1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/img_in_link.json @@ -0,0 +1,12 @@ +["html", ["p", "This example from\u000a", ["a", { + "href": "http://orestis.gr/en/blog/2007/05/28/python-markdown-problems/" +}, +"http://orestis.gr/en/blog/2007/05/28/python-markdown-problems/"], ":"], + ["p", ["a", { + "href": "http://www.google.com/", + "title": "click to visit Google.com" + }, + ["img", { + "src": "http://www.google.com/images/logo.gif", + "alt": "the google logo" + }]]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/img_in_link.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/img_in_link.text new file mode 100644 index 000000000..8a0c1fdaf --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/img_in_link.text @@ -0,0 +1,7 @@ +This example from +: + +[![the google logo][logo]][google] +[logo]: http://www.google.com/images/logo.gif +[google]: http://www.google.com/ "click to visit Google.com" + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/inline_links.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/inline_links.html new file mode 100644 index 000000000..ad2aa72d6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/inline_links.html @@ -0,0 +1,7 @@ +

    an inline link

    + +

    a link "with" title

    + +

    an inline image link

    + +

    an image "with" title

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/inline_links.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/inline_links.json new file mode 100644 index 000000000..5dc43f196 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/inline_links.json @@ -0,0 +1,18 @@ +["html", ["p", "an inline ", ["a", { + "href": "/url/" +}, +"link"]], + ["p", "a ", ["a", { + "href": "/url/", + "title": "title" + }, + "link \"with\" title"]], + ["p", "an inline ", ["img", { + "src": "/url/", + "alt": "image link" + }]], + ["p", "an ", ["img", { + "src": "/url/", + "alt": "image \"with\" title", + "title": "title" + }]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/inline_links.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/inline_links.text new file mode 100644 index 000000000..444a9975c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/inline_links.text @@ -0,0 +1,7 @@ +an inline [link](/url/) + +a [link "with" title](/url/ "title") + +an inline ![image link](/url/) + +an ![image "with" title](/url/ "title") diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.html new file mode 100644 index 000000000..c36b6d9a9 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.html @@ -0,0 +1,5 @@ +

    Heading 2

    + +

    blah [HTML_REMOVED]alert('this should be removed')[HTML_REMOVED] blah

    + +

    [HTML_REMOVED]alert('as should this')[HTML_REMOVED]

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.json new file mode 100644 index 000000000..483d1c1ae --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.json @@ -0,0 +1,2 @@ +["html", ["h2", "Heading 2"], "\u000a\u000a", ["p", "blah [HTML_REMOVED]alert('this should be removed')[HTML_REMOVED] ", ["strong", "blah"]], + ["p", "[HTML_REMOVED]alert('as should this')[HTML_REMOVED]"]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.opts new file mode 100644 index 000000000..fd31b4e32 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.opts @@ -0,0 +1 @@ +{"safe_mode": "replace"} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.text new file mode 100644 index 000000000..38cb2b5b7 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.text @@ -0,0 +1,6 @@ +## Heading 2 + +blah **blah** + + + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.html new file mode 100644 index 000000000..57871fb55 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.html @@ -0,0 +1,3 @@ +

    Alternative delimiters for link definitions are allowed -- as of +Markdown 1.0.2, I think. Hence, this link and this link work +too.

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.json new file mode 100644 index 000000000..e35e754ad --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.json @@ -0,0 +1,13 @@ +["html", ["p", "Alternative delimiters for ", ["a", { + "href": "http://daringfireball.net/projects/markdown/syntax#link", + "title": "link syntax" +}, +"link definitions"], " are allowed -- as of\u000aMarkdown 1.0.2, I think. Hence, ", ["a", { + "href": "http://daringfireball.net/projects/markdown/syntax#link", + "title": "link syntax" +}, +"this link"], " and ", ["a", { + "href": "http://daringfireball.net/projects/markdown/syntax#link", + "title": "link syntax" +}, +"this link"], " work\u000atoo."]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.text new file mode 100644 index 000000000..3d62b11d7 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.text @@ -0,0 +1,7 @@ +Alternative delimiters for [link definitions][link1] are allowed -- as of +Markdown 1.0.2, I think. Hence, [this link][link2] and [this link][link3] work +too. + +[link1]: http://daringfireball.net/projects/markdown/syntax#link "link syntax" +[link2]: http://daringfireball.net/projects/markdown/syntax#link 'link syntax' +[link3]: http://daringfireball.net/projects/markdown/syntax#link (link syntax) diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.html new file mode 100644 index 000000000..6c98ea972 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.html @@ -0,0 +1 @@ +

    Recipe 123 and Komodo bug 234 are related.

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.json new file mode 100644 index 000000000..c7b0dcb4f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.json @@ -0,0 +1,7 @@ +["html", ["p", ["a", { + "href": "http://code.activestate.com/recipes/123/" +}, +"Recipe 123"], " and ", ["a", { + "href": "http://bugs.activestate.com/show_bug.cgi?id=234" +}, +"Komodo bug 234"], " are related."]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.opts new file mode 100644 index 000000000..bd85ea915 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.opts @@ -0,0 +1,7 @@ +{"extras": ["link-patterns"], + "link_patterns": [ + (re.compile("recipe\s+(\d+)", re.I), r"http://code.activestate.com/recipes/\1/"), + (re.compile("(?:komodo\s+)?bug\s+(\d+)", re.I), r"http://bugs.activestate.com/show_bug.cgi?id=\1"), + ], +} + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.text new file mode 100644 index 000000000..d8a408138 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns.text @@ -0,0 +1 @@ +Recipe 123 and Komodo bug 234 are related. diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.html new file mode 100644 index 000000000..4402dcf6a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.html @@ -0,0 +1 @@ +

    There once was a Mozilla bug 123 and a Komodo bug 123.

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.json new file mode 100644 index 000000000..52163772f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.json @@ -0,0 +1,7 @@ +["html", ["p", "There once was a ", ["a", { + "href": "http://bugzilla.mozilla.org/show_bug.cgi?id=123" +}, +"Mozilla bug 123"], " and a ", ["a", { + "href": "http://bugs.activestate.com/show_bug.cgi?id=123" +}, +"Komodo bug 123"], "."]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.opts new file mode 100644 index 000000000..d64982d8a --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.opts @@ -0,0 +1,7 @@ +{"extras": ["link-patterns"], + "link_patterns": [ + (re.compile(r'mozilla\s+bug\s+(\d+)', re.I), r'http://bugzilla.mozilla.org/show_bug.cgi?id=\1'), + (re.compile("(?:komodo\s+)?bug\s+(\d+)", re.I), r"http://bugs.activestate.com/show_bug.cgi?id=\1"), + ], +} + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.text new file mode 100644 index 000000000..29868b8d1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.text @@ -0,0 +1 @@ +There once was a Mozilla bug 123 and a Komodo bug 123. diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.html new file mode 100644 index 000000000..ffd0a72e3 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.html @@ -0,0 +1 @@ +

    Blah 123 becomes a line with two underscores.

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.json new file mode 100644 index 000000000..ad16ccfaf --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.json @@ -0,0 +1,4 @@ +["html", ["p", ["a", { + "href": "http://foo.com/blah_blah_blah/123" +}, +"Blah 123"], " becomes a line with two underscores."]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.opts new file mode 100644 index 000000000..99ce0f79e --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.opts @@ -0,0 +1,6 @@ +{"extras": ["link-patterns"], + "link_patterns": [ + (re.compile("Blah\s+(\d+)", re.I), r"http://foo.com/blah_blah_blah/\1"), + ], +} + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.text new file mode 100644 index 000000000..d1fb62cf1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.text @@ -0,0 +1 @@ +Blah 123 becomes a line with two underscores. diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/lists.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/lists.html new file mode 100644 index 000000000..f34c900b4 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/lists.html @@ -0,0 +1,15 @@ +

    count:

    + +
      +
    • one
    • +
    • two
    • +
    • three
    • +
    + +

    count in spanish:

    + +
      +
    1. uno
    2. +
    3. dos
    4. +
    5. tres
    6. +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/lists.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/lists.json new file mode 100644 index 000000000..2c1c55dd0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/lists.json @@ -0,0 +1,8 @@ +["html", ["p", "count:"], + ["ul", ["li", "one"], + ["li", "two"], + ["li", "three"]], + ["p", "count in spanish:"], + ["ol", ["li", "uno"], + ["li", "dos"], + ["li", "tres"]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/lists.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/lists.text new file mode 100644 index 000000000..8d2b43c64 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/lists.text @@ -0,0 +1,11 @@ +count: + +* one +* two +* three + +count in spanish: + +1. uno +2. dos +3. tres diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.html new file mode 100644 index 000000000..7ac7bfd53 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.html @@ -0,0 +1,16 @@ +

    This is sentence has a footnote foo1 and whamo[^whamo].

    + +

    This is another para with a numbered footnote2.

    + +
    +
    +
      +
    1. +

      Here is the body of the footnote foo. 

      +
    2. + +
    3. +

      Here is the body of the footnote 6. 

      +
    4. +
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.json new file mode 100644 index 000000000..69e09d87d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.json @@ -0,0 +1,36 @@ +["html", ["p", "This is sentence has a footnote foo", ["sup", { + "class": "footnote-ref", + "id": "fnref-foo" +}, +["a", { + "href": "#fn-foo" +}, +"1"]], " and whamo[^whamo]."], + ["p", "This is another para with a numbered footnote", ["sup", { + "class": "footnote-ref", + "id": "fnref-6" + }, + ["a", { + "href": "#fn-6" + }, + "2"]], "."], "\u000a\u000a", ["div", { + "class": "footnotes" +}, +"\u000a", ["hr"], "\u000a", ["ol", ["li", { + "id": "fn-foo" +}, +["p", "Here is the body of the footnote foo.", ["a", { + "href": "#fnref-foo", + "class": "footnoteBackLink", + "title": "Jump back to footnote 1 in the text." +}, +"↩"]]], + ["li", { + "id": "fn-6" + }, + ["p", "Here is the body of the footnote 6.", ["a", { + "href": "#fnref-6", + "class": "footnoteBackLink", + "title": "Jump back to footnote 2 in the text." + }, + "↩"]]]]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.opts new file mode 100644 index 000000000..9dfee9e21 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.opts @@ -0,0 +1 @@ +{"extras": ["footnotes"]} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.text new file mode 100644 index 000000000..d67919237 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.text @@ -0,0 +1,9 @@ +This is sentence has a footnote foo[^foo] and whamo[^whamo]. + +This is another para with a numbered footnote[^6]. + + +[^foo]: Here is the body of the footnote foo. +[^bar]: Here is the body of the footnote bar. +[^6]: Here is the body of the footnote 6. + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.html new file mode 100644 index 000000000..2f8a9e8a9 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.html @@ -0,0 +1 @@ +

    This is a [missing link][missing] and a used link.

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.json new file mode 100644 index 000000000..b2bc9d44c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.json @@ -0,0 +1,4 @@ +["html", ["p", "This is a [missing link][missing] and a ", ["a", { + "href": "http://foo.com" +}, +"used link"], "."]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.text new file mode 100644 index 000000000..817677f93 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.text @@ -0,0 +1,7 @@ + +This is a [missing link][missing] and a [used link][used]. + + +[used]: http://foo.com +[unused]: http://foo.com + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list.html new file mode 100644 index 000000000..c0617e425 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list.html @@ -0,0 +1,15 @@ +

    shopping list:

    + +
      +
    • veggies +
        +
      • carrots
      • +
      • lettuce
      • +
    • +
    • fruits +
        +
      • oranges
      • +
      • apples
      • +
      • peaches
      • +
    • +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list.json new file mode 100644 index 000000000..6879f11ca --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list.json @@ -0,0 +1,6 @@ +["html", ["p", "shopping list:"], + ["ul", ["li", "veggies\u000a", ["ul", ["li", "carrots"], + ["li", "lettuce"]]], + ["li", "fruits\u000a", ["ul", ["li", "oranges"], + ["li", "apples"], + ["li", ["em", "peaches"]]]]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list.text new file mode 100644 index 000000000..a37a19549 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list.text @@ -0,0 +1,9 @@ +shopping list: + +- veggies + + carrots + + lettuce +- fruits + + oranges + + apples + + *peaches* diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.html new file mode 100644 index 000000000..c0617e425 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.html @@ -0,0 +1,15 @@ +

    shopping list:

    + +
      +
    • veggies +
        +
      • carrots
      • +
      • lettuce
      • +
    • +
    • fruits +
        +
      • oranges
      • +
      • apples
      • +
      • peaches
      • +
    • +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.json new file mode 100644 index 000000000..6879f11ca --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.json @@ -0,0 +1,6 @@ +["html", ["p", "shopping list:"], + ["ul", ["li", "veggies\u000a", ["ul", ["li", "carrots"], + ["li", "lettuce"]]], + ["li", "fruits\u000a", ["ul", ["li", "oranges"], + ["li", "apples"], + ["li", ["em", "peaches"]]]]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.opts new file mode 100644 index 000000000..ccb6a09bd --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.opts @@ -0,0 +1 @@ +{'safe_mode': True} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.text new file mode 100644 index 000000000..a37a19549 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.text @@ -0,0 +1,9 @@ +shopping list: + +- veggies + + carrots + + lettuce +- fruits + + oranges + + apples + + *peaches* diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.html new file mode 100644 index 000000000..6535e80d2 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.html @@ -0,0 +1 @@ +

    Inline link 4 with non-escaped parens.

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.json new file mode 100644 index 000000000..2d9e60bde --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.json @@ -0,0 +1,5 @@ +["html", ["p", ["a", { + "href": "/url(test)", + "title": "title" +}, +"Inline link 4 with non-escaped parens"], "."]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.text new file mode 100644 index 000000000..5dfb9ab39 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.text @@ -0,0 +1 @@ +[Inline link 4 with non-escaped parens]( "title"). diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/raw_html.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/raw_html.html new file mode 100644 index 000000000..ec135c6ee --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/raw_html.html @@ -0,0 +1,5 @@ +

    Hi, there. blah

    + +
    + **ack** +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/raw_html.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/raw_html.json new file mode 100644 index 000000000..ff401bbf7 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/raw_html.json @@ -0,0 +1,4 @@ +["html", ["p", "Hi, ", ["span", { + "foo": "*bar*" +}, +["em", "there"]], ". ", " blah"], "\u000a\u000a", ["div", "\u000a **ack**\u000a"], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/raw_html.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/raw_html.text new file mode 100644 index 000000000..13cde3785 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/raw_html.text @@ -0,0 +1,6 @@ + +Hi, *there*. blah + +
    + **ack** +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/ref_links.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/ref_links.html new file mode 100644 index 000000000..406f8b54f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/ref_links.html @@ -0,0 +1 @@ +

    Google is fast star.

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/ref_links.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/ref_links.json new file mode 100644 index 000000000..95493a806 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/ref_links.json @@ -0,0 +1,7 @@ +["html", ["p", ["a", { + "href": "http://www.google.com/" +}, +"Google"], " is fast ", ["img", { + "src": "/img/star.png", + "alt": "star" +}], "."]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/ref_links.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/ref_links.text new file mode 100644 index 000000000..4df8c01e0 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/ref_links.text @@ -0,0 +1,6 @@ +[Google][] is fast ![star][]. + +[google]: http://www.google.com/ +[star]: /img/star.png + + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/sublist-para.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/sublist-para.html new file mode 100644 index 000000000..a2f551b10 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/sublist-para.html @@ -0,0 +1,17 @@ +

    Some quick thoughts from a coder's perspective:

    + +
      +
    • The source will be available in a Mercurial ...

    • +
    • Komodo is a Mozilla-based application...

      + +
        +
      • Get a slightly tweaked mozilla build (C++, JavaScript, XUL).
      • +
      • Get a slightly tweaks Python build (C).
      • +
      • Add a bunch of core logic (Python)...
      • +
      • Add Komodo chrome (XUL, JavaScript, CSS, DTDs).
      • +
      + +

      What this means is that work on and add significant functionality...

    • +
    • Komodo uses the same extension mechanisms as Firefox...

    • +
    • Komodo builds and runs on Windows, Linux and ...

    • +

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/sublist-para.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/sublist-para.json new file mode 100644 index 000000000..24adae887 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/sublist-para.json @@ -0,0 +1,10 @@ +["html", ["p", "Some quick thoughts from a coder's perspective:"], + ["ul", ["li", ["p", "The source will be available in a Mercurial ..."]], + ["li", ["p", "Komodo is a Mozilla-based application..."], + ["ul", ["li", "Get a slightly tweaked mozilla build (C++, JavaScript, XUL)."], + ["li", "Get a slightly tweaks Python build (C)."], + ["li", "Add a bunch of core logic (Python)..."], + ["li", "Add Komodo chrome (XUL, JavaScript, CSS, DTDs)."]], + ["p", ["p", "What this means is that work on and add significant functionality..."]]], + ["li", ["p", "Komodo uses the same extension mechanisms as Firefox..."]], + ["li", ["p", "Komodo builds and runs on Windows, Linux and ..."]]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/sublist-para.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/sublist-para.text new file mode 100644 index 000000000..7bf07ba3f --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/sublist-para.text @@ -0,0 +1,17 @@ +Some quick thoughts from a coder's perspective: + +- The source will be available in a Mercurial ... + +- Komodo is a Mozilla-based application... + + - Get a slightly tweaked mozilla build (C++, JavaScript, XUL). + - Get a slightly tweaks Python build (C). + - Add a bunch of core logic (Python)... + - Add Komodo chrome (XUL, JavaScript, CSS, DTDs). + + What this means is that work on and add significant functionality... + +- Komodo uses the same extension mechanisms as Firefox... + +- Komodo builds and runs on Windows, Linux and ... + diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.html new file mode 100644 index 000000000..2e172c139 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.html @@ -0,0 +1,15 @@ +

    Here is some sample code:

    + +
    import sys
    +def main(argv=sys.argv):
    +    logging.basicConfig()
    +    log.info('hi')
    +
    + +

    and:

    + +
    use 'zlib'
    +sub main(argv)
    +    puts 'hi'
    +end
    +
    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.json new file mode 100644 index 000000000..9c1f198e6 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.json @@ -0,0 +1,118 @@ +["html", ["p", "Here is some sample code:"], "\u000a\u000a", ["div", { + "class": "codehilite" +}, +["pre", ["code", ["span", { + "class": "k" +}, +"import"], " ", ["span", { + "class": "nn" +}, +"sys"], "\u000a", ["span", { + "class": "k" +}, +"def"], " ", ["span", { + "class": "nf" +}, +"main"], + ["span", { + "class": "p" + }, + "("], + ["span", { + "class": "n" + }, + "argv"], + ["span", { + "class": "o" + }, + "="], + ["span", { + "class": "n" + }, + "sys"], + ["span", { + "class": "o" + }, + "."], + ["span", { + "class": "n" + }, + "argv"], + ["span", { + "class": "p" + }, + "):"], "\u000a ", ["span", { + "class": "n" +}, +"logging"], + ["span", { + "class": "o" + }, + "."], + ["span", { + "class": "n" + }, + "basicConfig"], + ["span", { + "class": "p" + }, + "()"], "\u000a ", ["span", { + "class": "n" +}, +"log"], + ["span", { + "class": "o" + }, + "."], + ["span", { + "class": "n" + }, + "info"], + ["span", { + "class": "p" + }, + "("], + ["span", { + "class": "s" + }, + "'hi'"], + ["span", { + "class": "p" + }, + ")"], "\u000a"]]], "\u000a\u000a", ["p", "and:"], "\u000a\u000a", ["div", { + "class": "codehilite" +}, +["pre", ["code", ["span", { + "class": "n" +}, +"use"], " ", ["span", { + "class": "s1" +}, +"'zlib'"], "\u000a", ["span", { + "class": "nb" +}, +"sub"], " ", ["span", { + "class": "n" +}, +"main"], + ["span", { + "class": "p" + }, + "("], + ["span", { + "class": "n" + }, + "argv"], + ["span", { + "class": "p" + }, + ")"], "\u000a ", ["span", { + "class": "nb" +}, +"puts"], " ", ["span", { + "class": "s1" +}, +"'hi'"], "\u000a", ["span", { + "class": "k" +}, +"end"], "\u000a"]]], "\u000a"] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.opts b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.opts new file mode 100644 index 000000000..95dfd4185 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.opts @@ -0,0 +1 @@ +{"extras": ["code-color"]} diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.text new file mode 100644 index 000000000..b4b30e55d --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/syntax_color.text @@ -0,0 +1,15 @@ +Here is some sample code: + + :::python + import sys + def main(argv=sys.argv): + logging.basicConfig() + log.info('hi') + +and: + + :::ruby + use 'zlib' + sub main(argv) + puts 'hi' + end diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.html new file mode 100644 index 000000000..0ec6204f1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.html @@ -0,0 +1,11 @@ +

    with [brackets][] in text

    + +

    with [[brackets][]] in text

    + +

    full link [like](/this/) in text

    + +

    full link to img like is ok

    + +

    [only open bracket(/in/) text

    + +

    only close bracket text](/url/)

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.json new file mode 100644 index 000000000..cd92d155b --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.json @@ -0,0 +1,29 @@ +["html", ["p", ["a", { + "href": "/url/" +}, +"with [brackets][] in text"]], + ["p", ["a", { + "href": "/url/", + "title": "a title" + }, + "with [[brackets][]] in text"]], + ["p", ["a", { + "href": "/url/" + }, + "full link [like](/this/) in text"]], + ["p", ["a", { + "href": "/url/" + }, + "full link to img ", ["img", { + "src": "/this/", + "alt": "like" + }], " is ok"]], + ["p", "[only open ", ["a", { + "href": "/url/", + "title": "a title" + }, + "bracket(/in/) text"]], + ["p", ["a", { + "href": "/in/" + }, + "only close bracket"], " text](/url/)"]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.text new file mode 100644 index 000000000..217f6855c --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.text @@ -0,0 +1,11 @@ +[with [brackets][] in text](/url/) + +[with [[brackets][]] in text](/url/ "a title") + +[full link [like](/this/) in text](/url/) + +[full link to img ![like](/this/) is ok](/url/) + +[only open [bracket(/in/) text](/url/ 'a title') + +[only close bracket](/in/) text](/url/) diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.html b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.html new file mode 100644 index 000000000..9fef884ff --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.html @@ -0,0 +1,2 @@ +

    Eric wrote up a (long) intro to writing UDL definitions a while back on +his blog: http://blogs.activestate.com/ericp/2007/01/kid_adding_a_ne.html

    diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.json b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.json new file mode 100644 index 000000000..71dba0139 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.json @@ -0,0 +1,4 @@ +["html", ["p", "Eric wrote up a (long) intro to writing UDL definitions a while back on\u000ahis blog: ", ["a", { + "href": "http://blogs.activestate.com/ericp/2007/01/kid_adding_a_ne.html" +}, +"http://blogs.activestate.com/ericp/2007/01/kid_adding_a_ne.html"]]] diff --git a/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.text b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.text new file mode 100644 index 000000000..58ae3e0d1 --- /dev/null +++ b/node_modules/markdown/test/fixtures/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.text @@ -0,0 +1,2 @@ +Eric wrote up a (long) intro to writing UDL definitions a while back on +his blog: diff --git a/node_modules/markdown/test/interface.t.js b/node_modules/markdown/test/interface.t.js new file mode 100644 index 000000000..5e571d891 --- /dev/null +++ b/node_modules/markdown/test/interface.t.js @@ -0,0 +1,28 @@ +var markdown = require('Markdown'); + +function clone_array( input ) { + eval( "var tmp = " + input.toSource() ); + return tmp; +} + +tests = { + test_arguments_untouched: function() { + var input = "A [link][id] by id.\n\n[id]: http://google.com", + tree = markdown.parse( input ), + clone = clone_array( tree ); + + + var output = markdown.toHTML( tree ); + + asserts.same( tree, clone, "tree isn't modified" ); + // We had a problem where we would acidentally remove the references + // property from the root. We want to check the output is the same when + // called twice. + asserts.same( markdown.toHTML( tree ), output, "output is consistent" ); + } +} + +if (require.main === module) { + var asserts = require('test').asserts; + require('test').runner(tests); +} diff --git a/node_modules/markdown/test/regressions.t.js b/node_modules/markdown/test/regressions.t.js new file mode 100644 index 000000000..1602de511 --- /dev/null +++ b/node_modules/markdown/test/regressions.t.js @@ -0,0 +1,510 @@ +var Markdown = require('Markdown').Markdown, + mk_block = Markdown.mk_block; + +var tests = { + meta: function(fn) { + return function() { fn( new Markdown ) } + } +}; + +tests = { + test_split_block: tests.meta(function(md) { + asserts.same( + md.split_blocks( "# h1 #\n\npara1\npara1L2\n \n\n\n\npara2\n" ), + [mk_block( "# h1 #", "\n\n", 1 ), + mk_block( "para1\npara1L2", "\n \n\n\n\n", 3 ), + mk_block( "para2", "\n", 9 ) + ], + "split_block should record trailing newlines"); + + asserts.same( + md.split_blocks( "\n\n# heading #\n\npara\n" ), + [mk_block( "# heading #", "\n\n", 3 ), + mk_block( "para", "\n", 5 ) + ], + "split_block should ignore leading newlines"); + }), + + test_headers: tests.meta(function(md) { + var h1 = md.dialect.block.atxHeader( "# h1 #\n\n", [] ), + h2; + + asserts.same( + h1, + md.dialect.block.setextHeader( "h1\n===\n\n", [] ), + "Atx and Setext style H1s should produce the same output" ); + + asserts.same( + md.dialect.block.atxHeader("# h1\n\n"), + h1, + "Closing # optional on atxHeader"); + + asserts.same( + h2 = md.dialect.block.atxHeader( "## h2\n\n", [] ), + [["header", {level: 2}, "h2"]], + "Atx h2 has right level"); + + asserts.same( + h2, + md.dialect.block.setextHeader( "h2\n---\n\n", [] ), + "Atx and Setext style H2s should produce the same output" ); + + }), + + test_code: tests.meta(function(md) { + var code = md.dialect.block.code, + next = [ mk_block("next") ]; + + asserts.same( + code.call( md, mk_block(" foo\n bar"), next ), + [["code_block", "foo\nbar" ]], + "Code block correct"); + + asserts.same( + next, [mk_block("next")], + "next untouched when its not code"); + + next = []; + asserts.same( + code.call( md, mk_block(" foo\n bar"), next ), + [["code_block", "foo" ]], + "Code block correct for abutting para"); + + asserts.same( + next, [mk_block(" bar")], + "paragraph put back into next block"); + + asserts.same( + code.call( md, mk_block(" foo"), [mk_block(" bar"), ] ), + [["code_block", "foo\n\nbar" ]], + "adjacent code blocks "); + + asserts.same( + code.call( md, mk_block(" foo","\n \n \n"), [mk_block(" bar"), ] ), + [["code_block", "foo\n\n\nbar" ]], + "adjacent code blocks preserve correct number of empty lines"); + + }), + + test_bulletlist: tests.meta(function(md) { + var bl = function() { return md.dialect.block.lists.apply(md, arguments) }; + + asserts.same( + bl( mk_block("* foo\n* bar"), [] ), + [ [ "bulletlist", [ "listitem", "foo" ], [ "listitem", "bar" ] ] ], + "single line bullets"); + + asserts.same( + bl( mk_block("* [text](url)" ), [] ), + [ [ "bulletlist", [ "listitem", [ "link", { href: "url" }, "text" ] ] ] ], + "link in bullet"); + + asserts.same( + bl( mk_block("* foo\nbaz\n* bar\nbaz"), [] ), + [ [ "bulletlist", [ "listitem", "foo\nbaz" ], [ "listitem", "bar\nbaz" ] ] ], + "multiline lazy bullets"); + + asserts.same( + bl( mk_block("* foo\n baz\n* bar\n baz"), [] ), + [ [ "bulletlist", [ "listitem", "foo\nbaz" ], [ "listitem", "bar\nbaz" ] ] ], + "multiline tidy bullets"); + + asserts.same( + bl( mk_block("* foo\n baz"), [] ), + [ [ "bulletlist", [ "listitem", "foo\n baz" ] ] ], + "only trim 4 spaces from the start of the line"); + + /* Test wrong: should end up with 3 nested lists here + asserts.same( + bl( mk_block(" * one\n * two\n * three" ), [] ), + [ [ "bulletlist", [ "listitem", "one" ], [ "listitem", "two" ], [ "listitem", "three" ] ] ], + "bullets can be indented up to three spaces"); + */ + + asserts.same( + bl( mk_block(" * one"), [ mk_block(" two") ] ), + [ [ "bulletlist", [ "listitem", [ "para", "one" ], [ "para", "two" ] ] ] ], + "loose bullet lists can have multiple paragraphs"); + + /* Case: no space after bullet - not a list + | *↵ + |foo + */ + asserts.same( + bl( mk_block(" *\nfoo") ), + undefined, + "Space required after bullet to trigger list"); + + /* Case: note the space after the bullet + | *␣ + |foo + |bar + */ + asserts.same( + bl( mk_block(" * \nfoo\nbar"), [ ] ), + [ [ "bulletlist", [ "listitem", "foo\nbar" ] ] ], + "space+continuation lines"); + + + /* Case I: + | * foo + | * bar + | * baz + */ + asserts.same( + bl( mk_block(" * foo\n" + + " * bar\n" + + " * baz"), + [] ), + [ [ "bulletlist", + [ "listitem", + "foo", + [ "bulletlist", + [ "listitem", + "bar", + [ "bulletlist", + [ "listitem", "baz" ] + ] + ] + ] + ] + ] ], + "Interesting indented lists I"); + + /* Case II: + | * foo + | * bar + | * baz + */ + asserts.same( + bl( mk_block(" * foo\n * bar\n * baz"), [] ), + [ [ "bulletlist", + [ "listitem", + "foo", + [ "bulletlist", + [ "listitem", "bar" ] + ] + ], + [ "listitem", "baz" ] + ] ], + "Interesting indented lists II"); + + /* Case III: + | * foo + | * bar + |* baz + | * fnord + */ + asserts.same( + bl( mk_block(" * foo\n * bar\n* baz\n * fnord"), [] ), + [ [ "bulletlist", + [ "listitem", + "foo", + [ "bulletlist", + [ "listitem", "bar" ], + [ "listitem", "baz" ], + [ "listitem", "fnord" ] + ] + ] + ] ], + "Interesting indented lists III"); + + /* Case IV: + | * foo + | + | 1. bar + */ + asserts.same( + bl( mk_block(" * foo"), [ mk_block(" 1. bar\n") ] ), + [ [ "bulletlist", + ["listitem", ["para", "foo"] ], + ["listitem", ["para", "bar"] ] + ] ], + "Different lists at same indent IV"); + + /* Case V: + | * foo + | * bar + | * baz + */ + asserts.same( + bl( mk_block(" * foo\n * bar\n * baz"), [] ), + [ [ "bulletlist", + [ "listitem", + "foo", + [ "bulletlist", + ["listitem", "bar"], + ["listitem", "baz"], + ] + ] + ] ], + "Indenting Case V") + + /* Case VI: deep nesting + |* one + | * two + | * three + | * four + */ + asserts.same( + bl( mk_block("* one\n * two\n * three\n * four"), [] ), + [ [ "bulletlist", + [ "listitem", + "one", + [ "bulletlist", + [ "listitem", + "two", + [ "bulletlist", + [ "listitem", + "three", + [ "bulletlist", + [ "listitem", "four" ] + ] + ] + ] + ] + ] + ] + ] ], + "deep nested lists VI") + + /* Case VII: This one is just fruity! + | * foo + | * bar + | * baz + |* HATE + | * flibble + | * quxx + | * nest? + | * where + | * am + | * i? + */ + asserts.same( + bl( mk_block(" * foo\n" + + " * bar\n" + + " * baz\n" + + "* HATE\n" + + " * flibble\n" + + " * quxx\n" + + " * nest?\n" + + " * where\n" + + " * am\n" + + " * i?"), + [] ), + [ [ "bulletlist", + [ "listitem", + "foo", + [ "bulletlist", + ["listitem", "bar"], + ["listitem", "baz"], + ["listitem", "HATE"], + ["listitem", "flibble"] + ] + ], + [ "listitem", + "quxx", + [ "bulletlist", + [ "listitem", + "nest?", + [ "bulletlist", + ["listitem", "where"], + ["listitem", "am"], + ["listitem", "i?"] + ] + ] + ] + ] + ] ], + "Indenting Case VII"); + + /* Case VIII: Deep nesting + code block + | * one + | * two + | * three + | * four + | + | foo + */ + asserts.same( + bl( mk_block(" * one\n" + + " 1. two\n" + + " * three\n" + + " * four", + "\n\n"), + [ mk_block(" foo") ] ), + [ [ "bulletlist", + [ "listitem", + ["para", "one"], + [ "numberlist", + [ "listitem", + ["para", "two"], + [ "bulletlist", + [ "listitem", + [ "para", "three\n * four"], + ["code_block", "foo"] + ] + ] + ] + ] + ] + ] ], + "Case VIII: Deep nesting and code block"); + + }), + + test_horizRule: tests.meta(function(md) { + var hr = md.dialect.block.horizRule, + strs = ["---", "_ __", "** ** **", "--- "]; + strs.forEach( function(s) { + asserts.same( + hr.call( md, mk_block(s), [] ), + [ [ "hr" ] ], + "simple hr from " + uneval(s)); + }); + }), + + test_blockquote: tests.meta(function(md) { + var bq = md.dialect.block.blockquote; + asserts.same( + bq.call( md, mk_block("> foo\n> bar"), [] ), + [ ["blockquote", ["para", "foo\nbar"] ] ], + "simple blockquote"); + + // Note: this tests horizRule as well through block processing. + asserts.same( + bq.call( md, mk_block("> foo\n> bar\n>\n>- - - "), [] ), + [ ["blockquote", + ["para", "foo\nbar"], + ["hr"] + ] ], + "blockquote with interesting content"); + + }), + + test_referenceDefn: tests.meta(function(md) { + var rd = md.dialect.block.referenceDefn; + + [ '[id]: http://example.com/ "Optional Title Here"', + "[id]: http://example.com/ 'Optional Title Here'", + '[id]: http://example.com/ (Optional Title Here)' + ].forEach( function(s) { + md.tree = ["markdown"]; + + asserts.same(rd.call( md, mk_block(s) ), [], "ref processed"); + + asserts.same(md.tree[ 1 ].references, + { "id": { href: "http://example.com/", title: "Optional Title Here" } }, + "reference extracted"); + }); + + // Check a para abbuting a ref works right + md.tree = ["markdown"]; + var next = []; + asserts.same(rd.call( md, mk_block("[id]: example.com\npara"), next ), [], "ref processed"); + asserts.same(md.tree[ 1 ].references, { "id": { href: "example.com" } }, "reference extracted"); + asserts.same(next, [ mk_block("para") ], "paragraph put back into blocks"); + + }), + + test_inline_br: tests.meta(function(md) { + asserts.same( + md.processInline("foo \n\\[bar"), + [ "foo", ["linebreak"], "[bar" ], "linebreak+escape"); + }), + + test_inline_escape: tests.meta(function(md) { + asserts.same( md.processInline("\\bar"), [ "\\bar" ], "invalid escape" ); + asserts.same( md.processInline("\\*foo*"), [ "*foo*" ], "escaped em" ); + }), + + test_inline_code: tests.meta(function(md) { + asserts.same( md.processInline("`bar`"), [ ["inlinecode", "bar" ] ], "code I" ); + asserts.same( md.processInline("``b`ar``"), [ ["inlinecode", "b`ar" ] ], "code II" ); + asserts.same( md.processInline("```bar``` baz"), [ ["inlinecode", "bar" ], " baz" ], "code III" ); + }), + + test_inline_strong_em: tests.meta(function(md) { + // Yay for horrible edge cases >_< + asserts.same( md.processInline("foo *abc* bar"), [ "foo ", ["em", "abc" ], " bar" ], "strong/em I" ); + asserts.same( md.processInline("*abc `code`"), [ "*abc ", ["inlinecode", "code" ] ], "strong/em II" ); + asserts.same( md.processInline("*abc**def* after"), [ ["em", "abc**def" ], " after" ], "strong/em III" ); + asserts.same( md.processInline("*em **strong * wtf**"), [ ["em", "em **strong " ], " wtf**" ], "strong/em IV" ); + asserts.same( md.processInline("*foo _b*a*r baz"), [ [ "em", "foo _b" ], "a*r baz" ], "strong/em V" ); + }), + + test_inline_img: tests.meta(function(md) { + + asserts.same( md.processInline( "![alt] (url)" ), + [ [ "img", { href: "url", alt: "alt" } ] ], + "inline img I" ); + + asserts.same( md.processInline( "![alt](url 'title')" ), + [ [ "img", { href: "url", alt: "alt", title: "title" } ] ], + "inline img II" ); + + asserts.same( md.processInline( "![alt] (url 'tit'le') after')" ), + [ [ "img", { href: "url", alt: "alt", title: "tit'le" } ], " after')" ], + "inline img III" ); + + asserts.same( md.processInline( "![alt] (url \"title\")" ), + [ [ "img", { href: "url", alt: "alt", title: "title" } ] ], + "inline img IV" ); + + asserts.same( md.processInline( "![alt][id]" ), + [ [ "img_ref", { ref: "id", alt: "alt", text: "![alt][id]" } ] ], + "ref img I" ); + + asserts.same( md.processInline( "![alt] [id]" ), + [ [ "img_ref", { ref: "id", alt: "alt", text: "![alt] [id]" } ] ], + "ref img II" ); + }), + + test_inline_link: tests.meta(function(md) { + + asserts.same( md.processInline( "[text] (url)" ), + [ [ "link", { href: "url" }, "text" ] ], + "inline link I" ); + + asserts.same( md.processInline( "[text](url 'title')" ), + [ [ "link", { href: "url", title: "title" }, "text" ] ], + "inline link II" ); + + asserts.same( md.processInline( "[text](url 'tit'le') after')" ), + [ [ "link", { href: "url", title: "tit'le" }, "text" ], " after')" ], + "inline link III" ); + + asserts.same( md.processInline( "[text](url \"title\")" ), + [ [ "link", { href: "url", title: "title" }, "text" ] ], + "inline link IV" ); + + asserts.same( md.processInline( "[text][id]" ), + [ [ "link_ref", { ref: "id", original: "[text][id]" }, "text" ] ], + "ref link I" ); + + asserts.same( md.processInline( "[text] [id]" ), + [ [ "link_ref", { ref: "id", original: "[text] [id]" }, "text" ] ], + "ref link II" ); + }), + + test_inline_autolink: tests.meta(function(md) { + + asserts.same( md.processInline( "" ), + [ [ "link", { href: "http://foo.com" }, "http://foo.com" ] ], + "autolink I" ); + + asserts.same( md.processInline( "" ), + [ [ "link", { href: "mailto:foo@bar.com" }, "foo@bar.com" ] ], + "autolink II" ); + + asserts.same( md.processInline( "" ), + [ [ "link", { href: "mailto:foo@bar.com" }, "foo@bar.com" ] ], + "autolink III" ); + }), +} + + +if (require.main === module) { + var asserts = require('test').asserts; + require('test').runner(tests); +} diff --git a/node_modules/narcissus.js b/node_modules/narcissus.js new file mode 100644 index 000000000..ea9c48f0a --- /dev/null +++ b/node_modules/narcissus.js @@ -0,0 +1,31 @@ +/* + * Include the Mozilla Narcissus JavaScript parser. + */ + +(function(global) { + + if (typeof require !== 'undefined') { + if (typeof Narcissus === 'undefined') { + Narcissus = {}; + + require("narcissus/lib/jsdefs"); + + // workaround for rhino, which will throw an exception when trying + // to eval a const declaration + if (Narcissus.definitions.consts) try { + eval(Narcissus.definitions.consts); + } + catch (e) { + Narcissus.definitions.consts = Narcissus.definitions.consts.replace('const ', 'var '); + } + + //require("jsecma5"); + //require("jsmods.js"); + require("narcissus/lib/jslex"); + require("narcissus/lib/jsparse"); + } + + exports.Narcissus = Narcissus; + } + +})(global|this); \ No newline at end of file diff --git a/node_modules/narcissus/LICENSE b/node_modules/narcissus/LICENSE new file mode 100644 index 000000000..173bdc47a --- /dev/null +++ b/node_modules/narcissus/LICENSE @@ -0,0 +1,5 @@ +This software is available under your choice of the following licenses: + + * MPL 1.1 or later: http://www.mozilla.org/MPL/ + * GPL 2.0 or later: http://www.gnu.org/licenses/gpl.html + * LGPL 2.1 or later: http://www.gnu.org/licenses/lgpl.html diff --git a/node_modules/narcissus/README.md b/node_modules/narcissus/README.md new file mode 100644 index 000000000..02e7daa11 --- /dev/null +++ b/node_modules/narcissus/README.md @@ -0,0 +1,21 @@ +# Narcissus + +Narcissus is a JavaScript interpreter written in pure JavaScript (i.e., a [meta-circular evaluator](http://en.wikipedia.org/wiki/Meta-circular_evaluator)), using the [SpiderMonkey](http://www.mozilla.org/js/spidermonkey/) engine. + +Originally a proof-of-concept by [Brendan Eich](http://brendaneich.com/), Narcissus is being revived as a test-bed for rapidly prototyping new language features for the JavaScript language (as well as the ECMAScript standard). + +# Documentation + +Documentation can be found on the [Narcissus wiki](https://github.com/mozilla/narcissus/wiki). + +# Contributors + +* Tom Austin +* Brendan Eich +* Andreas Gal +* Shu-yu Guo +* Dave Herman +* Bruno Jouhier +* Gregor Richards +* Dimitris Vardoulakis +* Patrick Walton diff --git a/node_modules/narcissus/harmony-tests/README.txt b/node_modules/narcissus/harmony-tests/README.txt new file mode 100644 index 000000000..f353a9255 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/README.txt @@ -0,0 +1,17 @@ +This directory contains tests for experimental Harmony features. + +NOTE: Please don't fork this test suite without talking to me first! + +I purposefully created almost no test harness whatsoever -- just a stupid shell +script that uses directory structure to figure out expected results. This is +because: + +a) I don't want to write Yet Another Test Harness; and + +b) I'd like these tests to get eaten up by some other test suite eventually. + +So *please* talk to me first before forking; it's probably much better to +adapt these tests directly. + +Dave Herman +dherman@mozilla.com diff --git a/node_modules/narcissus/harmony-tests/fail-execute/eval-export.js b/node_modules/narcissus/harmony-tests/fail-execute/eval-export.js new file mode 100644 index 000000000..83f8c2490 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-execute/eval-export.js @@ -0,0 +1 @@ +eval("var x = 42; export x;"); diff --git a/node_modules/narcissus/harmony-tests/fail-execute/eval-resolve1.js b/node_modules/narcissus/harmony-tests/fail-execute/eval-resolve1.js new file mode 100644 index 000000000..0bdcc1a1d --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-execute/eval-resolve1.js @@ -0,0 +1 @@ +eval("xyzzx") diff --git a/node_modules/narcissus/harmony-tests/fail-execute/eval-resolve2.js b/node_modules/narcissus/harmony-tests/fail-execute/eval-resolve2.js new file mode 100644 index 000000000..d6474648c --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-execute/eval-resolve2.js @@ -0,0 +1 @@ +(function(x) { return eval("xyzzx") })("foo"); diff --git a/node_modules/narcissus/harmony-tests/fail-execute/module-uninit-read.js b/node_modules/narcissus/harmony-tests/fail-execute/module-uninit-read.js new file mode 100644 index 000000000..8cca9092d --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-execute/module-uninit-read.js @@ -0,0 +1,8 @@ +module A { + import B.foo; + var x = foo; +} + +module B { + export var foo = 12; +} diff --git a/node_modules/narcissus/harmony-tests/fail-resolve/export-cycle1.js b/node_modules/narcissus/harmony-tests/fail-resolve/export-cycle1.js new file mode 100644 index 000000000..b7d4f86d8 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-resolve/export-cycle1.js @@ -0,0 +1,3 @@ +module M { + export M.foo; +} diff --git a/node_modules/narcissus/harmony-tests/fail-resolve/export-cycle2.js b/node_modules/narcissus/harmony-tests/fail-resolve/export-cycle2.js new file mode 100644 index 000000000..7caf42bff --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-resolve/export-cycle2.js @@ -0,0 +1,7 @@ +module M { + export N.foo; +} + +module N { + export M.foo; +} diff --git a/node_modules/narcissus/harmony-tests/fail-resolve/export-cycle3.js b/node_modules/narcissus/harmony-tests/fail-resolve/export-cycle3.js new file mode 100644 index 000000000..b4b35cbc3 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-resolve/export-cycle3.js @@ -0,0 +1,7 @@ +module M { + export { foo: N.bar }; +} + +module N { + export { bar: M.foo }; +} diff --git a/node_modules/narcissus/harmony-tests/fail-resolve/export-cycle4.js b/node_modules/narcissus/harmony-tests/fail-resolve/export-cycle4.js new file mode 100644 index 000000000..db014b14d --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-resolve/export-cycle4.js @@ -0,0 +1,15 @@ +module M { + export { foo: N.bar }; +} + +module N { + export { bar: O.baz }; +} + +module O { + export { baz: P.buz }; +} + +module P { + export { buz: M.foo }; +} diff --git a/node_modules/narcissus/harmony-tests/fail-resolve/export-unbound-var.js b/node_modules/narcissus/harmony-tests/fail-resolve/export-unbound-var.js new file mode 100644 index 000000000..148ff7469 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-resolve/export-unbound-var.js @@ -0,0 +1 @@ +module M { export x } diff --git a/node_modules/narcissus/harmony-tests/fail-resolve/import-eval1.js b/node_modules/narcissus/harmony-tests/fail-resolve/import-eval1.js new file mode 100644 index 000000000..d8848d7b9 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-resolve/import-eval1.js @@ -0,0 +1,2 @@ +eval("module M { export var foo = 42 }"); +import M.foo; diff --git a/node_modules/narcissus/harmony-tests/fail-resolve/import-eval2.js b/node_modules/narcissus/harmony-tests/fail-resolve/import-eval2.js new file mode 100644 index 000000000..4c3a726de --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-resolve/import-eval2.js @@ -0,0 +1,2 @@ +eval("module M { export var foo = 42 }"); +var x = M.foo; diff --git a/node_modules/narcissus/harmony-tests/fail-resolve/module-rebind-assignment1.js b/node_modules/narcissus/harmony-tests/fail-resolve/module-rebind-assignment1.js new file mode 100644 index 000000000..7ee5e17b6 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-resolve/module-rebind-assignment1.js @@ -0,0 +1,5 @@ +module P { export module A { export var a = 12 } } + +module B = P.A + +B.a = 13; diff --git a/node_modules/narcissus/harmony-tests/fail-resolve/unbound-read.js b/node_modules/narcissus/harmony-tests/fail-resolve/unbound-read.js new file mode 100644 index 000000000..ebfbbb3a0 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-resolve/unbound-read.js @@ -0,0 +1 @@ +var foo = someUnboundVariable; diff --git a/node_modules/narcissus/harmony-tests/fail-resolve/unbound-write.js b/node_modules/narcissus/harmony-tests/fail-resolve/unbound-write.js new file mode 100644 index 000000000..8f9dd8fca --- /dev/null +++ b/node_modules/narcissus/harmony-tests/fail-resolve/unbound-write.js @@ -0,0 +1 @@ +someUnboundVariable = 12; diff --git a/node_modules/narcissus/harmony-tests/run.sh b/node_modules/narcissus/harmony-tests/run.sh new file mode 100755 index 000000000..ec27881dc --- /dev/null +++ b/node_modules/narcissus/harmony-tests/run.sh @@ -0,0 +1,88 @@ +#!/bin/sh + +HERE=`dirname $0` +ROOT=$HERE/.. + +cd $ROOT + +FAILURES= + +################################################################################ + +echo Running harmony-tests/succeed... + +SUCCEED_PASS=0 +SUCCEED_FAIL=0 + +for f in harmony-tests/succeed/*.js ; do + ./njs -H -f $f >/dev/null 2>&1 + if [ $? -eq 0 ]; then + SUCCEED_PASS=$(($SUCCEED_PASS + 1)) + else + SUCCEED_FAIL=$(($SUCCEED_FAIL + 1)) + FAILURES="$FAILURES $f" + fi +done + +echo "==> $SUCCEED_PASS passed, $SUCCEED_FAIL failed." + +################################################################################ + +echo +echo Running harmony-tests/fail-resolve... + +FAIL_RESOLVE_PASS=0 +FAIL_RESOLVE_FAIL=0 + +for f in harmony-tests/fail-resolve/*.js ; do + ./njs -H -E "Narcissus.resolver.resolve(Narcissus.parser.parse(snarf('$f')),Narcissus.interpreter.globalStaticEnv)" >/dev/null 2>&1 + if [ $? -eq 0 ]; then + FAIL_RESOLVE_FAIL=$((FAIL_RESOLVE_FAIL + 1)) + FAILURES="$FAILURES $f" + else + FAIL_RESOLVE_PASS=$((FAIL_RESOLVE_PASS + 1)) + fi +done + +echo "==> $FAIL_RESOLVE_PASS passed, $FAIL_RESOLVE_FAIL failed." + +################################################################################ + +echo +echo Running harmony-tests/fail-execute... + +FAIL_EXECUTE_PASS=0 +FAIL_EXECUTE_FAIL=0 + +for f in harmony-tests/fail-execute ; do + ./njs -H -f $f >/dev/null 2>&1 + if [ $? -eq 0 ]; then + FAIL_EXECUTE_FAIL=$(($FAIL_EXECUTE_FAIL + 1)) + FAILURES="$FAILURES $f" + else + FAIL_EXECUTE_PASS=$(($FAIL_EXECUTE_PASS + 1)) + fi +done + +echo "==> $FAIL_EXECUTE_PASS passed, $FAIL_EXECUTE_FAIL failed." + +################################################################################ + +echo +echo TOTAL: + +TOTAL_PASS=$(($SUCCEED_PASS + $FAIL_EXECUTE_PASS + $FAIL_RESOLVE_PASS)) +TOTAL_FAIL=$(($SUCCEED_FAIL + $FAIL_EXECUTE_FAIL + $FAIL_RESOLVE_FAIL)) + +echo "==> $TOTAL_PASS passed, $TOTAL_FAIL failed." + +if [ $TOTAL_FAIL -gt 0 ]; then + echo + echo Failures: + for f in $FAILURES ; do + echo " $f" + done + exit 1 +else + exit 0 +fi diff --git a/node_modules/narcissus/harmony-tests/succeed/eval-import1.js b/node_modules/narcissus/harmony-tests/succeed/eval-import1.js new file mode 100644 index 000000000..64f51a29c --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/eval-import1.js @@ -0,0 +1,5 @@ +module M { + export var foo = 42; +} + +assertEq(eval("import M.foo; foo"), 42); diff --git a/node_modules/narcissus/harmony-tests/succeed/eval-import2.js b/node_modules/narcissus/harmony-tests/succeed/eval-import2.js new file mode 100644 index 000000000..af6d8eebe --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/eval-import2.js @@ -0,0 +1,5 @@ +module M { + export var foo = "foo"; +} + +assertEq(eval("module M { export var bar = 'bar' } import M.bar; bar"), "bar"); diff --git a/node_modules/narcissus/harmony-tests/succeed/eval-module1.js b/node_modules/narcissus/harmony-tests/succeed/eval-module1.js new file mode 100644 index 000000000..ba97819ee --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/eval-module1.js @@ -0,0 +1,9 @@ +module M { + export var foo = "foo"; +} + +var foo = M.foo; +var bar = eval("module M { export var bar = 'bar'; } M.bar"); + +assertEq(foo, "foo"); +assertEq(bar, "bar"); diff --git a/node_modules/narcissus/harmony-tests/succeed/eval-module2.js b/node_modules/narcissus/harmony-tests/succeed/eval-module2.js new file mode 100644 index 000000000..be217222d --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/eval-module2.js @@ -0,0 +1,4 @@ +var M1 = eval("module M { } M"); +var M2 = eval("module M { } M"); + +assertEq(M1 === M2, false); diff --git a/node_modules/narcissus/harmony-tests/succeed/eval-resolve1.js b/node_modules/narcissus/harmony-tests/succeed/eval-resolve1.js new file mode 100644 index 000000000..461432047 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/eval-resolve1.js @@ -0,0 +1,5 @@ +var foo = 42; + +var myfoo = eval("foo"); + +assertEq(foo, myfoo); diff --git a/node_modules/narcissus/harmony-tests/succeed/eval-resolve2.js b/node_modules/narcissus/harmony-tests/succeed/eval-resolve2.js new file mode 100644 index 000000000..69a4023fd --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/eval-resolve2.js @@ -0,0 +1,3 @@ +var foo = (function(x) { return eval("x") })("foo"); + +assertEq(foo, "foo"); diff --git a/node_modules/narcissus/harmony-tests/succeed/export-bound-var.js b/node_modules/narcissus/harmony-tests/succeed/export-bound-var.js new file mode 100644 index 000000000..1fea449c6 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/export-bound-var.js @@ -0,0 +1,12 @@ +module M { + import N.x; + export x; +} + +module N { + var x = 42; + export x; +} + +assertEq(M.x, 42); +assertEq(N.x, 42); diff --git a/node_modules/narcissus/harmony-tests/succeed/export-var.js b/node_modules/narcissus/harmony-tests/succeed/export-var.js new file mode 100644 index 000000000..bf1a9eb1a --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/export-var.js @@ -0,0 +1,5 @@ +module M { + export var foo = 42; +} + +assertEq(M.foo, 42); diff --git a/node_modules/narcissus/harmony-tests/succeed/global-this.js b/node_modules/narcissus/harmony-tests/succeed/global-this.js new file mode 100644 index 000000000..4f9f9d33e --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/global-this.js @@ -0,0 +1,3 @@ +var global = this; + +assertEq("global" in global, true); diff --git a/node_modules/narcissus/harmony-tests/succeed/incomplete-module1.js b/node_modules/narcissus/harmony-tests/succeed/incomplete-module1.js new file mode 100644 index 000000000..dd3aceea9 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/incomplete-module1.js @@ -0,0 +1,8 @@ +var saved; + +module M { + saved = M; + export var foo = 42; +} + +assertEq("foo" in saved, true); diff --git a/node_modules/narcissus/harmony-tests/succeed/incomplete-module2.js b/node_modules/narcissus/harmony-tests/succeed/incomplete-module2.js new file mode 100644 index 000000000..dfa890bbc --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/incomplete-module2.js @@ -0,0 +1,9 @@ +var saved; + +module M { + export var foo = 42; + var tmp = M; + saved = tmp.foo; +} + +assertEq(saved, 42); diff --git a/node_modules/narcissus/harmony-tests/succeed/module-completion.js b/node_modules/narcissus/harmony-tests/succeed/module-completion.js new file mode 100644 index 000000000..edb66130d --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/module-completion.js @@ -0,0 +1 @@ +assertEq(eval("module M { export var foo = 42 }").foo, 42); diff --git a/node_modules/narcissus/harmony-tests/succeed/module-rebind1.js b/node_modules/narcissus/harmony-tests/succeed/module-rebind1.js new file mode 100644 index 000000000..8313b9783 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/module-rebind1.js @@ -0,0 +1,8 @@ +module P { + module A { export var a = 12 } + export A +} + +module B = P.A + +assertEq(B.a, 12); diff --git a/node_modules/narcissus/harmony-tests/succeed/module-rebind2.js b/node_modules/narcissus/harmony-tests/succeed/module-rebind2.js new file mode 100644 index 000000000..e96dbbd97 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/module-rebind2.js @@ -0,0 +1,10 @@ +module P { + module A { export var a = 12 } + export A +} + +module B = P.A, C = P.A, D = P.A; + +assertEq(B.a, 12); +assertEq(C.a, 12); +assertEq(D.a, 12); diff --git a/node_modules/narcissus/harmony-tests/succeed/module-rebind3.js b/node_modules/narcissus/harmony-tests/succeed/module-rebind3.js new file mode 100644 index 000000000..fec298fdb --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/module-rebind3.js @@ -0,0 +1,9 @@ +module M { + export var foo = 42; + export module N { + module M; + export var foo = M.foo + } +} + +assertEq(M.foo, M.N.foo); diff --git a/node_modules/narcissus/harmony-tests/succeed/module-this.js b/node_modules/narcissus/harmony-tests/succeed/module-this.js new file mode 100644 index 000000000..0e20dda1f --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/module-this.js @@ -0,0 +1,8 @@ +var saved; + +module M { + saved = this; + export var foo = 42; +} + +assertEq("foo" in saved, true); diff --git a/node_modules/narcissus/harmony-tests/succeed/re-export1.js b/node_modules/narcissus/harmony-tests/succeed/re-export1.js new file mode 100644 index 000000000..7886c7926 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/re-export1.js @@ -0,0 +1,18 @@ +module M { + export module N { + export var foo = 42; + export var bar = "hello world"; + } +} + +module Q { + export { + foo: M.N.bar, + bar: M.N.foo + } +} + +assertEq(Q.foo, "hello world"); +assertEq(Q.bar, 42); +assertEq(Q.foo, M.N.bar); +assertEq(Q.bar, M.N.foo); diff --git a/node_modules/narcissus/harmony-tests/succeed/re-export2.js b/node_modules/narcissus/harmony-tests/succeed/re-export2.js new file mode 100644 index 000000000..f115ac6ea --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/re-export2.js @@ -0,0 +1,19 @@ +module M { + export module N { + export var foo = 42; + export var bar = "hello world"; + } +} + +module Q { + module MN = M.N; + export { + foo: MN.bar, + bar: MN.foo + } +} + +assertEq(Q.foo, "hello world"); +assertEq(Q.bar, 42); +assertEq(Q.foo, M.N.bar); +assertEq(Q.bar, M.N.foo); diff --git a/node_modules/narcissus/harmony-tests/succeed/uninitialized-module1.js b/node_modules/narcissus/harmony-tests/succeed/uninitialized-module1.js new file mode 100644 index 000000000..4996d82bd --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/uninitialized-module1.js @@ -0,0 +1,7 @@ +var saved = M; + +module M { + export var foo = 42; +} + +assertEq(saved.foo, 42); diff --git a/node_modules/narcissus/harmony-tests/succeed/uninitialized-module2.js b/node_modules/narcissus/harmony-tests/succeed/uninitialized-module2.js new file mode 100644 index 000000000..047170593 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/uninitialized-module2.js @@ -0,0 +1,9 @@ +var saved = M.N; + +module M { + export module N { + export var foo = 42; + } +} + +assertEq(saved.foo, 42); diff --git a/node_modules/narcissus/harmony-tests/succeed/uninitialized-module3.js b/node_modules/narcissus/harmony-tests/succeed/uninitialized-module3.js new file mode 100644 index 000000000..e535558c9 --- /dev/null +++ b/node_modules/narcissus/harmony-tests/succeed/uninitialized-module3.js @@ -0,0 +1,14 @@ +var saved; + +module M { + module N { + saved = M.O.P; + } + export module O { + export module P { + export var foo = 42; + } + } +} + +assertEq(saved.foo, 42); diff --git a/node_modules/narcissus/jstests b/node_modules/narcissus/jstests new file mode 100755 index 000000000..c62465bf1 --- /dev/null +++ b/node_modules/narcissus/jstests @@ -0,0 +1,44 @@ +#!/bin/sh + +# Root of the narcissus tree +NJS_HOME=`dirname $0` +NJS_HOME=`(cd $NJS_HOME; pwd)` + +# Fake information for the test harness's |xulRuntime| configuration object. +XUL_INFO=none:none:true + +if [ $# -eq 1 -a "$1" = "-h" ]; then + echo "usage: jstests [-h | -a | ...]" 1>&2 + echo " -h display this usage information and quit" 1>&2 + echo " -a run all but the slowest tests (those in xfail/narcissus-slow.txt)" 1>&2 + echo " path to individual test (relative to test directory)" 1>&2 + echo "" 1>&2 + echo "With no arguments, jstests runs all tests except those listed in" 1>&2 + echo "xfail/narcissus-failures.txt, which includes all the tests listed in" 1>&2 + echo "xfail/narcissus-slow.txt." 1>&2 + echo "" 1>&2 + echo "The test directory is searched for either in NJS_TESTS or in" 1>&2 + echo "a tests/ subdirectory of the Narcissus home directory." + exit +elif [ $# -gt 0 -a "$1" = "-a" ]; then + shift + XFAIL=narcissus-slow.txt +else + XFAIL=narcissus-failures.txt +fi + +if [ ! -z $NJS_TESTS -a -d $NJS_TESTS ]; then + cd $NJS_TESTS +elif [ -d $NJS_HOME/tests ]; then + cd $NJS_HOME/tests +else + echo 'Expected a test directory in $NJS_TESTS or '"$NJS_HOME/tests." 1>&2 + echo "Run jstests -h for more information." 1>&2 + exit 1 +fi + +if [ $# -gt 0 ]; then + exec python jstests.py --xul-info=$XUL_INFO -s -o -d -j 4 $NJS_HOME/njs $* +else + exec python jstests.py --xul-info=$XUL_INFO -d -j 4 $NJS_HOME/njs -x $NJS_HOME/xfail/$XFAIL +fi diff --git a/node_modules/narcissus/lib.zip b/node_modules/narcissus/lib.zip new file mode 100644 index 0000000000000000000000000000000000000000..9602252e0f99c51cf0c7b2bb87a968e30dbe2177 GIT binary patch literal 52370 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

    ^U@S{*9b~I8 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 literal 0 HcmV?d00001 diff --git a/node_modules/narcissus/lib/decompiler.js b/node_modules/narcissus/lib/decompiler.js new file mode 100644 index 000000000..929464588 --- /dev/null +++ b/node_modules/narcissus/lib/decompiler.js @@ -0,0 +1,50 @@ +/* vim: set sw=4 ts=4 et tw=78: */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Narcissus JavaScript engine. + * + * The Initial Developer of the Original Code is + * Brendan Eich . + * Portions created by the Initial Developer are Copyright (C) 2004 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Tom Austin + * Brendan Eich + * Shu-Yu Guo + * Dave Herman + * Dimitris Vardoulakis + * Patrick Walton + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +require("./jsdefs"); +require("./jslex"); +require("./jsparse"); +require("./jsdecomp"); + +for (var exp in Narcissus.decompiler) + exports[exp] = Narcissus.decompiler[exp]; diff --git a/node_modules/narcissus/lib/definitions.js b/node_modules/narcissus/lib/definitions.js new file mode 100644 index 000000000..4412b4a17 --- /dev/null +++ b/node_modules/narcissus/lib/definitions.js @@ -0,0 +1,47 @@ +/* vim: set sw=4 ts=4 et tw=78: */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Narcissus JavaScript engine. + * + * The Initial Developer of the Original Code is + * Brendan Eich . + * Portions created by the Initial Developer are Copyright (C) 2004 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Tom Austin + * Brendan Eich + * Shu-Yu Guo + * Dave Herman + * Dimitris Vardoulakis + * Patrick Walton + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +require("./jsdefs"); + +for (var exp in Narcissus.definitions) + exports[exp] = Narcissus.definitions[exp]; diff --git a/node_modules/narcissus/lib/jsbrowser.js b/node_modules/narcissus/lib/jsbrowser.js new file mode 100644 index 000000000..eb03e05a8 --- /dev/null +++ b/node_modules/narcissus/lib/jsbrowser.js @@ -0,0 +1,65 @@ +/* -*- Mode: JS; tab-width: 4; indent-tabs-mode: nil; -*- + * vim: set sw=4 ts=8 et tw=78: +/* ***** BEGIN LICENSE BLOCK ***** + * + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Narcissus JavaScript engine. + * + * The Initial Developer of the Original Code is + * Brendan Eich . + * Portions created by the Initial Developer are Copyright (C) 2004 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/* + * Narcissus - JS implemented in JS. + * + * Browser-specific tweaks needed for Narcissus to execute properly + */ + +// Prevent setTimeout from breaking out to SpiderMonkey +Narcissus.interpreter.globalBase.setTimeout = function(code, delay) { + var timeoutCode = (typeof code === "string") ? + function() { Narcissus.interpreter.evaluate(code); } : + code; + return setTimeout(timeoutCode, delay); +}; + +// Prevent setInterval from breaking out to SpiderMonkey +Narcissus.interpreter.globalBase.setInterval = function(code, delay) { + var timeoutCode = (typeof code === "string") ? + function() { Narcissus.interpreter.evaluate(code); } : + code; + return setInterval(timeoutCode, delay); +}; + +// Hack to avoid problems with the Image constructor in Narcissus. +Narcissus.interpreter.globalBase.Image = function() {}; + + diff --git a/node_modules/narcissus/lib/jsdecomp.js b/node_modules/narcissus/lib/jsdecomp.js new file mode 100644 index 000000000..8e1780781 --- /dev/null +++ b/node_modules/narcissus/lib/jsdecomp.js @@ -0,0 +1,528 @@ +/* vim: set sw=4 ts=4 et tw=78: */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Narcissus JavaScript engine. + * + * The Initial Developer of the Original Code is + * Brendan Eich . + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Shu-Yu Guo + * Bruno Jouhier + * Gregor Richards + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/* + * Narcissus - JS implemented in JS. + * + * Decompiler and pretty-printer. + */ + +Narcissus.decompiler = (function() { + + const parser = Narcissus.parser; + const definitions = Narcissus.definitions; + const tokens = definitions.tokens; + + // Set constants in the local scope. + eval(definitions.consts); + + function indent(n, s) { + var ss = "", d = true; + + for (var i = 0, j = s.length; i < j; i++) { + if (d) + for (var k = 0; k < n; k++) + ss += " "; + ss += s[i]; + d = s[i] === '\n'; + } + + return ss; + } + + function isBlock(n) { + return n && (n.type === BLOCK); + } + + function isNonEmptyBlock(n) { + return isBlock(n) && n.children.length > 0; + } + + function nodeStr(n) { + return '"' + + n.value.replace(/\\/g, "\\\\") + .replace(/"/g, "\\\"") + .replace(/\n/g, "\\n") + .replace(/\r/g, "\\r") + + '"'; + } + + function pp(n, d, inLetHead) { + var topScript = false; + + if (!n) + return ""; + if (!(n instanceof Object)) + return n; + if (!d) { + topScript = true; + d = 1; + } + + var p = ""; + + if (n.parenthesized) + p += "("; + + switch (n.type) { + case FUNCTION: + case GETTER: + case SETTER: + if (n.type === FUNCTION) + p += "function"; + else if (n.type === GETTER) + p += "get"; + else + p += "set"; + + p += (n.name ? " " + n.name : "") + "("; + for (var i = 0, j = n.params.length; i < j; i++) + p += (i > 0 ? ", " : "") + pp(n.params[i], d); + p += ") " + pp(n.body, d); + break; + + case SCRIPT: + case BLOCK: + var nc = n.children; + if (topScript) { + // No indentation. + for (var i = 0, j = nc.length; i < j; i++) { + if (i > 0) + p += "\n"; + p += pp(nc[i], d); + var eoc = p[p.length - 1]; + if (eoc != ";") + p += ";"; + } + + break; + } + + p += "{"; + if (n.id !== undefined) + p += " /* " + n.id + " */"; + p += "\n"; + for (var i = 0, j = nc.length; i < j; i++) { + if (i > 0) + p += "\n"; + p += indent(4, pp(nc[i], d)); + var eoc = p[p.length - 1]; + if (eoc != ";") + p += ";"; + } + p += "\n}"; + break; + + case LET_BLOCK: + p += "let (" + pp(n.variables, d, true) + ") "; + if (n.expression) + p += pp(n.expression, d); + else + p += pp(n.block, d); + break; + + case IF: + p += "if (" + pp(n.condition, d) + ") "; + + var tp = n.thenPart, ep = n.elsePart; + var b = isBlock(tp) || isBlock(ep); + if (!b) + p += "{\n"; + p += (b ? pp(tp, d) : indent(4, pp(tp, d))) + "\n"; + + if (ep) { + if (!b) + p += "} else {\n"; + else + p += " else "; + + p += (b ? pp(ep, d) : indent(4, pp(ep, d))) + "\n"; + } + if (!b) + p += "}"; + break; + + case SWITCH: + p += "switch (" + pp(n.discriminant, d) + ") {\n"; + for (var i = 0, j = n.cases.length; i < j; i++) { + var ca = n.cases[i]; + if (ca.type === CASE) + p += " case " + pp(ca.caseLabel, d) + ":\n"; + else + p += " default:\n"; + ps = pp(ca.statements, d); + p += ps.slice(2, ps.length - 2) + "\n"; + } + p += "}"; + break; + + case FOR: + p += "for (" + pp(n.setup, d) + "; " + + pp(n.condition, d) + "; " + + pp(n.update, d) + ") "; + + var pb = pp(n.body, d); + if (!isBlock(n.body)) + p += "{\n" + indent(4, pb) + ";\n}"; + else if (n.body) + p += pb; + break; + + case WHILE: + p += "while (" + pp(n.condition, d) + ") "; + + var pb = pp(n.body, d); + if (!isBlock(n.body)) + p += "{\n" + indent(4, pb) + ";\n}"; + else + p += pb; + break; + + case FOR_IN: + var u = n.varDecl; + p += n.isEach ? "for each (" : "for ("; + p += (u ? pp(u, d) : pp(n.iterator, d)) + " in " + + pp(n.object, d) + ") "; + + var pb = pp(n.body, d); + if (!isBlock(n.body)) + p += "{\n" + indent(4, pb) + ";\n}"; + else if (n.body) + p += pb; + break; + + case DO: + p += "do " + pp(n.body, d); + p += " while (" + pp(n.condition, d) + ");"; + break; + + case BREAK: + p += "break" + (n.label ? " " + n.label : "") + ";"; + break; + + case CONTINUE: + p += "continue" + (n.label ? " " + n.label : "") + ";"; + break; + + case TRY: + p += "try "; + p += pp(n.tryBlock, d); + for (var i = 0, j = n.catchClauses.length; i < j; i++) { + var t = n.catchClauses[i]; + p += " catch (" + pp(t.varName, d) + + (t.guard ? " if " + pp(t.guard, d) : "") + + ") "; + p += pp(t.block, d); + } + if (n.finallyBlock) { + p += " finally "; + p += pp(n.finallyBlock, d); + } + break; + + case THROW: + p += "throw " + pp(n.exception, d); + break; + + case RETURN: + p += "return"; + if (n.value) + p += " " + pp(n.value, d); + break; + + case YIELD: + p += "yield"; + if (n.value.type) + p += " " + pp(n.value, d); + break; + + case GENERATOR: + p += pp(n.expression, d) + " " + pp(n.tail, d); + break; + + case WITH: + p += "with (" + pp(n.object, d) + ") "; + p += pp(n.body, d); + break; + + case LET: + case VAR: + case CONST: + var nc = n.children; + if (!inLetHead) { + p += tokens[n.type] + " "; + } + for (var i = 0, j = nc.length; i < j; i++) { + if (i > 0) + p += ", "; + var u = nc[i]; + p += pp(u.name, d); + if (u.initializer) + p += " = " + pp(u.initializer, d); + } + break; + + case DEBUGGER: + p += "debugger NYI\n"; + break; + + case SEMICOLON: + if (n.expression) { + p += pp(n.expression, d) + ";"; + } + break; + + case LABEL: + p += n.label + ":\n" + pp(n.statement, d); + break; + + case COMMA: + case LIST: + var nc = n.children; + for (var i = 0, j = nc.length; i < j; i++) { + if (i > 0) + p += ", "; + p += pp(nc[i], d); + } + break; + + case ASSIGN: + var nc = n.children; + var t = n.assignOp; + p += pp(nc[0], d) + " " + (t ? tokens[t] : "") + "=" + + " " + pp(nc[1], d); + break; + + case HOOK: + var nc = n.children; + p += "(" + pp(nc[0], d) + " ? " + + pp(nc[1], d) + " : " + + pp(nc[2], d); + p += ")"; + break; + + case OR: + case AND: + var nc = n.children; + p += "(" + pp(nc[0], d) + " " + tokens[n.type] + " " + + pp(nc[1], d); + p += ")"; + break; + + case BITWISE_OR: + case BITWISE_XOR: + case BITWISE_AND: + case EQ: + case NE: + case STRICT_EQ: + case STRICT_NE: + case LT: + case LE: + case GE: + case GT: + case IN: + case INSTANCEOF: + case LSH: + case RSH: + case URSH: + case PLUS: + case MINUS: + case MUL: + case DIV: + case MOD: + var nc = n.children; + p += "(" + pp(nc[0], d) + " " + tokens[n.type] + " " + + pp(nc[1], d) + ")"; + break; + + case DELETE: + case VOID: + case TYPEOF: + p += tokens[n.type] + " " + pp(n.children[0], d); + break; + + case NOT: + case BITWISE_NOT: + p += tokens[n.type] + pp(n.children[0], d); + break; + + case UNARY_PLUS: + p += "+" + pp(n.children[0], d); + break; + + case UNARY_MINUS: + p += "-" + pp(n.children[0], d); + break; + + case INCREMENT: + case DECREMENT: + if (n.postfix) { + p += pp(n.children[0], d) + tokens[n.type]; + } else { + p += tokens[n.type] + pp(n.children[0], d); + } + break; + + case DOT: + var nc = n.children; + p += pp(nc[0], d) + "." + pp(nc[1], d); + break; + + case INDEX: + var nc = n.children; + p += pp(nc[0], d) + "[" + pp(nc[1], d) + "]"; + break; + + case CALL: + var nc = n.children; + p += pp(nc[0], d) + "(" + pp(nc[1], d) + ")"; + break; + + case NEW: + case NEW_WITH_ARGS: + var nc = n.children; + p += "new " + pp(nc[0], d); + if (nc[1]) + p += "(" + pp(nc[1], d) + ")"; + break; + + case ARRAY_INIT: + p += "["; + var nc = n.children; + for (var i = 0, j = nc.length; i < j; i++) { + if(nc[i]) + p += pp(nc[i], d); + p += "," + } + p += "]"; + break; + + case ARRAY_COMP: + p += "[" + pp (n.expression, d) + " "; + p += pp(n.tail, d); + p += "]"; + break; + + case COMP_TAIL: + var nc = n.children; + for (var i = 0, j = nc.length; i < j; i++) { + if (i > 0) + p += " "; + p += pp(nc[i], d); + } + if (n.guard) + p += " if (" + pp(n.guard, d) + ")"; + break; + + case OBJECT_INIT: + var nc = n.children; + if (nc[0] && nc[0].type === PROPERTY_INIT) + p += "{\n"; + else + p += "{"; + for (var i = 0, j = nc.length; i < j; i++) { + if (i > 0) { + p += ",\n"; + } + + var t = nc[i]; + if (t.type === PROPERTY_INIT) { + var tc = t.children; + var l; + // see if the left needs to be a string + if (tc[0].value === "" || /[^A-Za-z0-9_$]/.test(tc[0].value)) { + l = nodeStr(tc[0]); + } else { + l = pp(tc[0], d); + } + p += indent(4, l) + ": " + + indent(4, pp(tc[1], d)).substring(4); + } else { + p += indent(4, pp(t, d)); + } + } + p += "\n}"; + break; + + case NULL: + p += "null"; + break; + + case THIS: + p += "this"; + break; + + case TRUE: + p += "true"; + break; + + case FALSE: + p += "false"; + break; + + case IDENTIFIER: + case NUMBER: + case REGEXP: + p += n.value; + break; + + case STRING: + p += nodeStr(n); + break; + + case GROUP: + p += "(" + pp(n.children[0], d) + ")"; + break; + + default: + throw "PANIC: unknown operation " + tokens[n.type] + " " + n.toSource(); + } + + if (n.parenthesized) + p += ")"; + + return p; + } + + return { + pp: pp + }; + +}()); diff --git a/node_modules/narcissus/lib/jsdefs.js b/node_modules/narcissus/lib/jsdefs.js new file mode 100644 index 000000000..bb1a81038 --- /dev/null +++ b/node_modules/narcissus/lib/jsdefs.js @@ -0,0 +1,675 @@ +/* vim: set sw=4 ts=4 et tw=78: */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Narcissus JavaScript engine. + * + * The Initial Developer of the Original Code is + * Brendan Eich . + * Portions created by the Initial Developer are Copyright (C) 2004 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Tom Austin + * Brendan Eich + * Shu-Yu Guo + * Dave Herman + * Dimitris Vardoulakis + * Patrick Walton + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/* + * Narcissus - JS implemented in JS. + * + * Well-known constants and lookup tables. Many consts are generated from the + * tokens table via eval to minimize redundancy, so consumers must be compiled + * separately to take advantage of the simple switch-case constant propagation + * done by SpiderMonkey. + */ + +(function() { + + var narcissus = { + options: { + version: 185, + }, + hostGlobal: this + }; + Narcissus = narcissus; +})(); + +Narcissus.definitions = (function() { + + var tokens = [ + // End of source. + "END", + + // Operators and punctuators. Some pair-wise order matters, e.g. (+, -) + // and (UNARY_PLUS, UNARY_MINUS). + "\n", ";", + ",", + "=", + "?", ":", "CONDITIONAL", + "||", + "&&", + "|", + "^", + "&", + "==", "!=", "===", "!==", + "<", "<=", ">=", ">", + "<<", ">>", ">>>", + "+", "-", + "*", "/", "%", + "!", "~", "UNARY_PLUS", "UNARY_MINUS", + "++", "--", + ".", + "[", "]", + "{", "}", + "(", ")", + + // Nonterminal tree node type codes. + "SCRIPT", "BLOCK", "LABEL", "FOR_IN", "CALL", "NEW_WITH_ARGS", "INDEX", + "ARRAY_INIT", "OBJECT_INIT", "PROPERTY_INIT", "GETTER", "SETTER", + "GROUP", "LIST", "LET_BLOCK", "ARRAY_COMP", "GENERATOR", "COMP_TAIL", + + // Terminals. + "IDENTIFIER", "NUMBER", "STRING", "REGEXP", + + // Keywords. + "break", + "case", "catch", "const", "continue", + "debugger", "default", "delete", "do", + "else", "export", + "false", "finally", "for", "function", + "if", "import", "in", "instanceof", + "let", "module", + "new", "null", + "return", + "switch", + "this", "throw", "true", "try", "typeof", + "var", "void", + "yield", + "while", "with", + ]; + + var statementStartTokens = [ + "break", + "const", "continue", + "debugger", "do", + "for", + "if", + "return", + "switch", + "throw", "try", + "var", + "yield", + "while", "with", + ]; + + // Whitespace characters (see ECMA-262 7.2) + var whitespaceChars = [ + // normal whitespace: + "\u0009", "\u000B", "\u000C", "\u0020", "\u00A0", "\uFEFF", + + // high-Unicode whitespace: + "\u1680", "\u180E", + "\u2000", "\u2001", "\u2002", "\u2003", "\u2004", "\u2005", "\u2006", + "\u2007", "\u2008", "\u2009", "\u200A", + "\u202F", "\u205F", "\u3000" + ]; + + var whitespace = {}; + for (var i = 0; i < whitespaceChars.length; i++) { + whitespace[whitespaceChars[i]] = true; + } + + // Operator and punctuator mapping from token to tree node type name. + // NB: because the lexer doesn't backtrack, all token prefixes must themselves + // be valid tokens (e.g. !== is acceptable because its prefixes are the valid + // tokens != and !). + var opTypeNames = { + '\n': "NEWLINE", + ';': "SEMICOLON", + ',': "COMMA", + '?': "HOOK", + ':': "COLON", + '||': "OR", + '&&': "AND", + '|': "BITWISE_OR", + '^': "BITWISE_XOR", + '&': "BITWISE_AND", + '===': "STRICT_EQ", + '==': "EQ", + '=': "ASSIGN", + '!==': "STRICT_NE", + '!=': "NE", + '<<': "LSH", + '<=': "LE", + '<': "LT", + '>>>': "URSH", + '>>': "RSH", + '>=': "GE", + '>': "GT", + '++': "INCREMENT", + '--': "DECREMENT", + '+': "PLUS", + '-': "MINUS", + '*': "MUL", + '/': "DIV", + '%': "MOD", + '!': "NOT", + '~': "BITWISE_NOT", + '.': "DOT", + '[': "LEFT_BRACKET", + ']': "RIGHT_BRACKET", + '{': "LEFT_CURLY", + '}': "RIGHT_CURLY", + '(': "LEFT_PAREN", + ')': "RIGHT_PAREN" + }; + + // Hash of keyword identifier to tokens index. NB: we must null __proto__ to + // avoid toString, etc. namespace pollution. + var keywords = {__proto__: null}; + + // Define const END, etc., based on the token names. Also map name to index. + var tokenIds = {}; + + // Building up a string to be eval'd in different contexts. + var consts = "const "; + for (var i = 0, j = tokens.length; i < j; i++) { + if (i > 0) + consts += ", "; + var t = tokens[i]; + var name; + if (/^[a-z]/.test(t)) { + name = t.toUpperCase(); + keywords[t] = i; + } else { + name = (/^\W/.test(t) ? opTypeNames[t] : t); + } + consts += name + " = " + i; + tokenIds[name] = i; + tokens[t] = i; + } + consts += ";"; + + var isStatementStartCode = {__proto__: null}; + for (i = 0, j = statementStartTokens.length; i < j; i++) + isStatementStartCode[keywords[statementStartTokens[i]]] = true; + + // Map assignment operators to their indexes in the tokens array. + var assignOps = ['|', '^', '&', '<<', '>>', '>>>', '+', '-', '*', '/', '%']; + + for (i = 0, j = assignOps.length; i < j; i++) { + t = assignOps[i]; + assignOps[t] = tokens[t]; + } + + function defineGetter(obj, prop, fn, dontDelete, dontEnum) { + Object.defineProperty(obj, prop, + { get: fn, configurable: !dontDelete, enumerable: !dontEnum }); + } + + function defineGetterSetter(obj, prop, getter, setter, dontDelete, dontEnum) { + Object.defineProperty(obj, prop, { + get: getter, + set: setter, + configurable: !dontDelete, + enumerable: !dontEnum + }); + } + + function defineMemoGetter(obj, prop, fn, dontDelete, dontEnum) { + Object.defineProperty(obj, prop, { + get: function() { + var val = fn(); + defineProperty(obj, prop, val, dontDelete, true, dontEnum); + return val; + }, + configurable: true, + enumerable: !dontEnum + }); + } + + function defineProperty(obj, prop, val, dontDelete, readOnly, dontEnum) { + Object.defineProperty(obj, prop, + { value: val, writable: !readOnly, configurable: !dontDelete, + enumerable: !dontEnum }); + } + + // Returns true if fn is a native function. (Note: SpiderMonkey specific.) + function isNativeCode(fn) { + // Relies on the toString method to identify native code. + return ((typeof fn) === "function") && fn.toString().match(/\[native code\]/); + } + + function getPropertyDescriptor(obj, name) { + while (obj) { + if (({}).hasOwnProperty.call(obj, name)) + return Object.getOwnPropertyDescriptor(obj, name); + obj = Object.getPrototypeOf(obj); + } + } + + function getPropertyNames(obj) { + var table = Object.create(null, {}); + while (obj) { + var names = Object.getOwnPropertyNames(obj); + for (var i = 0, n = names.length; i < n; i++) + table[names[i]] = true; + obj = Object.getPrototypeOf(obj); + } + return Object.keys(table); + } + + function getOwnProperties(obj) { + var map = {}; + for (var name in Object.getOwnPropertyNames(obj)) + map[name] = Object.getOwnPropertyDescriptor(obj, name); + return map; + } + + function blacklistHandler(target, blacklist) { + var mask = Object.create(null, {}); + var redirect = StringMap.create(blacklist).mapObject(function(name) { return mask; }); + return mixinHandler(redirect, target); + } + + function whitelistHandler(target, whitelist) { + var catchall = Object.create(null, {}); + var redirect = StringMap.create(whitelist).mapObject(function(name) { return target; }); + return mixinHandler(redirect, catchall); + } + + function mirrorHandler(target, writable) { + var handler = makePassthruHandler(target); + + var defineProperty = handler.defineProperty; + handler.defineProperty = function(name, desc) { + if (!desc.enumerable) + throw new Error("mirror property must be enumerable"); + if (!desc.configurable) + throw new Error("mirror property must be configurable"); + if (desc.writable !== writable) + throw new Error("mirror property must " + (writable ? "" : "not ") + "be writable"); + defineProperty(name, desc); + }; + + handler.fix = function() { }; + handler.getOwnPropertyDescriptor = handler.getPropertyDescriptor; + handler.getOwnPropertyNames = getPropertyNames.bind(handler, target); + handler.keys = handler.enumerate; + handler['delete'] = function() { return false; }; + handler.hasOwn = handler.has; + return handler; + } + + /* + * Mixin proxies break the single-inheritance model of prototypes, so + * the handler treats all properties as own-properties: + * + * X + * | + * +------------+------------+ + * | O | + * | | | + * | O O O | + * | | | | | + * | O O O O | + * | | | | | | + * | O O O O O | + * | | | | | | | + * +-(*)--(w)--(x)--(y)--(z)-+ + */ + + function mixinHandler(redirect, catchall) { + function targetFor(name) { + return hasOwn(redirect, name) ? redirect[name] : catchall; + } + + function getMuxPropertyDescriptor(name) { + var desc = getPropertyDescriptor(targetFor(name), name); + if (desc) + desc.configurable = true; + return desc; + } + + function getMuxPropertyNames() { + var names1 = Object.getOwnPropertyNames(redirect).filter(function(name) { + return name in redirect[name]; + }); + var names2 = getPropertyNames(catchall).filter(function(name) { + return !hasOwn(redirect, name); + }); + return names1.concat(names2); + } + + function enumerateMux() { + var result = Object.getOwnPropertyNames(redirect).filter(function(name) { + return name in redirect[name]; + }); + for (name in catchall) { + if (!hasOwn(redirect, name)) + result.push(name); + }; + return result; + } + + function hasMux(name) { + return name in targetFor(name); + } + + return { + getOwnPropertyDescriptor: getMuxPropertyDescriptor, + getPropertyDescriptor: getMuxPropertyDescriptor, + getOwnPropertyNames: getMuxPropertyNames, + defineProperty: function(name, desc) { + Object.defineProperty(targetFor(name), name, desc); + }, + "delete": function(name) { + var target = targetFor(name); + return delete target[name]; + }, + // FIXME: ha ha ha + fix: function() { }, + has: hasMux, + hasOwn: hasMux, + get: function(receiver, name) { + var target = targetFor(name); + return target[name]; + }, + set: function(receiver, name, val) { + var target = targetFor(name); + target[name] = val; + return true; + }, + enumerate: enumerateMux, + keys: enumerateMux + }; + } + + function makePassthruHandler(obj) { + // Handler copied from + // http://wiki.ecmascript.org/doku.php?id=harmony:proxies&s=proxy%20object#examplea_no-op_forwarding_proxy + return { + getOwnPropertyDescriptor: function(name) { + var desc = Object.getOwnPropertyDescriptor(obj, name); + + // a trapping proxy's properties must always be configurable + desc.configurable = true; + return desc; + }, + getPropertyDescriptor: function(name) { + var desc = getPropertyDescriptor(obj, name); + + // a trapping proxy's properties must always be configurable + desc.configurable = true; + return desc; + }, + getOwnPropertyNames: function() { + return Object.getOwnPropertyNames(obj); + }, + defineProperty: function(name, desc) { + Object.defineProperty(obj, name, desc); + }, + "delete": function(name) { return delete obj[name]; }, + fix: function() { + if (Object.isFrozen(obj)) { + return getOwnProperties(obj); + } + + // As long as obj is not frozen, the proxy won't allow itself to be fixed. + return undefined; // will cause a TypeError to be thrown + }, + + has: function(name) { return name in obj; }, + hasOwn: function(name) { return ({}).hasOwnProperty.call(obj, name); }, + get: function(receiver, name) { return obj[name]; }, + + // bad behavior when set fails in non-strict mode + set: function(receiver, name, val) { obj[name] = val; return true; }, + enumerate: function() { + var result = []; + for (name in obj) { result.push(name); }; + return result; + }, + keys: function() { return Object.keys(obj); } + }; + } + + // default function used when looking for a property in the global object + function noPropFound() { return undefined; } + + var hasOwnProperty = ({}).hasOwnProperty; + + function hasOwn(obj, name) { + return hasOwnProperty.call(obj, name); + } + + function StringMap(table, size) { + this.table = table || Object.create(null, {}); + this.size = size || 0; + } + + StringMap.create = function(table) { + var init = Object.create(null, {}); + var size = 0; + var names = Object.getOwnPropertyNames(table); + for (var i = 0, n = names.length; i < n; i++) { + var name = names[i]; + init[name] = table[name]; + size++; + } + return new StringMap(init, size); + }; + + StringMap.prototype = { + has: function(x) { return hasOwnProperty.call(this.table, x); }, + set: function(x, v) { + if (!hasOwnProperty.call(this.table, x)) + this.size++; + this.table[x] = v; + }, + get: function(x) { return this.table[x]; }, + getDef: function(x, thunk) { + if (!hasOwnProperty.call(this.table, x)) { + this.size++; + this.table[x] = thunk(); + } + return this.table[x]; + }, + forEach: function(f) { + var table = this.table; + for (var key in table) + f.call(this, key, table[key]); + }, + map: function(f) { + var table1 = this.table; + var table2 = Object.create(null, {}); + this.forEach(function(key, val) { + table2[key] = f.call(this, val, key); + }); + return new StringMap(table2, this.size); + }, + mapObject: function(f) { + var table1 = this.table; + var table2 = Object.create(null, {}); + this.forEach(function(key, val) { + table2[key] = f.call(this, val, key); + }); + return table2; + }, + toObject: function() { + return this.mapObject(function(val) { return val; }); + }, + choose: function() { + return Object.getOwnPropertyNames(this.table)[0]; + }, + remove: function(x) { + if (hasOwnProperty.call(this.table, x)) { + this.size--; + delete this.table[x]; + } + }, + copy: function() { + var table = Object.create(null, {}); + for (var key in this.table) + table[key] = this.table[key]; + return new StringMap(table, this.size); + }, + toString: function() { return "[object StringMap]" } + }; + + // an object-key table with poor asymptotics (replace with WeakMap when possible) + function ObjectMap(array) { + this.array = array || []; + } + + function searchMap(map, key, found, notFound) { + var a = map.array; + for (var i = 0, n = a.length; i < n; i++) { + var pair = a[i]; + if (pair.key === key) + return found(pair, i); + } + return notFound(); + } + + ObjectMap.prototype = { + has: function(x) { + return searchMap(this, x, function() { return true }, function() { return false }); + }, + set: function(x, v) { + var a = this.array; + searchMap(this, x, + function(pair) { pair.value = v }, + function() { a.push({ key: x, value: v }) }); + }, + get: function(x) { + return searchMap(this, x, + function(pair) { return pair.value }, + function() { return null }); + }, + getDef: function(x, thunk) { + var a = this.array; + return searchMap(this, x, + function(pair) { return pair.value }, + function() { + var v = thunk(); + a.push({ key: x, value: v }); + return v; + }); + }, + forEach: function(f) { + var a = this.array; + for (var i = 0, n = a.length; i < n; i++) { + var pair = a[i]; + f.call(this, pair.key, pair.value); + } + }, + choose: function() { + return this.array[0].key; + }, + get size() { + return this.array.length; + }, + remove: function(x) { + var a = this.array; + searchMap(this, x, + function(pair, i) { a.splice(i, 1) }, + function() { }); + }, + copy: function() { + return new ObjectMap(this.array.map(function(pair) { + return { key: pair.key, value: pair.value } + })); + }, + clear: function() { + this.array = []; + }, + toString: function() { return "[object ObjectMap]" } + }; + + // non-destructive stack + function Stack(elts) { + this.elts = elts || null; + } + + Stack.prototype = { + push: function(x) { + return new Stack({ top: x, rest: this.elts }); + }, + top: function() { + if (!this.elts) + throw new Error("empty stack"); + return this.elts.top; + }, + isEmpty: function() { + return this.top === null; + }, + find: function(test) { + for (var elts = this.elts; elts; elts = elts.rest) { + if (test(elts.top)) + return elts.top; + } + return null; + }, + has: function(x) { + return Boolean(this.find(function(elt) { return elt === x })); + }, + forEach: function(f) { + for (var elts = this.elts; elts; elts = elts.rest) { + f(elts.top); + } + } + }; + + return { + tokens: tokens, + whitespace: whitespace, + opTypeNames: opTypeNames, + keywords: keywords, + isStatementStartCode: isStatementStartCode, + tokenIds: tokenIds, + consts: consts, + assignOps: assignOps, + defineGetter: defineGetter, + defineGetterSetter: defineGetterSetter, + defineMemoGetter: defineMemoGetter, + defineProperty: defineProperty, + isNativeCode: isNativeCode, + mirrorHandler: mirrorHandler, + mixinHandler: mixinHandler, + whitelistHandler: whitelistHandler, + blacklistHandler: blacklistHandler, + makePassthruHandler: makePassthruHandler, + noPropFound: noPropFound, + StringMap: StringMap, + ObjectMap: ObjectMap, + Stack: Stack + }; +}()); diff --git a/node_modules/narcissus/lib/jsexec.js b/node_modules/narcissus/lib/jsexec.js new file mode 100644 index 000000000..ea1a7eb5a --- /dev/null +++ b/node_modules/narcissus/lib/jsexec.js @@ -0,0 +1,1484 @@ +/* -*- Mode: JS; tab-width: 4; indent-tabs-mode: nil; -*- + * vim: set sw=4 ts=4 et tw=78: +/* ***** BEGIN LICENSE BLOCK ***** + * + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Narcissus JavaScript engine. + * + * The Initial Developer of the Original Code is + * Brendan Eich . + * Portions created by the Initial Developer are Copyright (C) 2004 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Tom Austin + * Brendan Eich + * Shu-Yu Guo + * Dave Herman + * Dimitris Vardoulakis + * Patrick Walton + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/* + * Narcissus - JS implemented in JS. + * + * Execution of parse trees. + * + * Standard classes except for eval, Function, Array, and String are borrowed + * from the host JS environment. Function is metacircular. Array and String + * are reflected via wrapping the corresponding native constructor and adding + * an extra level of prototype-based delegation. + */ + +Narcissus.interpreter = (function() { + + var parser = Narcissus.parser; + var definitions = Narcissus.definitions; + var resolver = Narcissus.resolver; + var hostGlobal = Narcissus.hostGlobal; + + // Set constants in the local scope. + eval(definitions.consts); + + const StringMap = definitions.StringMap; + const ObjectMap = definitions.ObjectMap; + const StaticEnv = resolver.StaticEnv; + const Def = resolver.Def; + + const GLOBAL_CODE = 0, EVAL_CODE = 1, FUNCTION_CODE = 2, MODULE_CODE = 3; + + function ExecutionContext(type, version) { + this.type = type; + this.version = version; + // In Harmony, the global scope record is not exposed to the program. + if (type === GLOBAL_CODE && version === "harmony") { + this.scope = {object: globalScope, parent: null}; + this.thisObject = globalMirror; + } + } + + function isStackOverflow(e) { + var re = /InternalError: (script stack space quota is exhausted|too much recursion)/; + return re.test(e.toString()); + } + + // The underlying global object for narcissus. + var globalBase = { + // Value properties. + NaN: NaN, Infinity: Infinity, undefined: undefined, + + // Function properties. + eval: function eval(s) { + if (typeof s !== "string") + return s; + + var x = ExecutionContext.current; + var x2 = new ExecutionContext(EVAL_CODE, x.version); + x2.thisObject = x.thisObject; + x2.thisModule = x.thisModule; + x2.caller = x.caller; + x2.callee = x.callee; + x2.scope = x.version === "harmony" ? { object: new Object, parent: x.scope } : x.scope; + try { + var ast = parser.parse(s); + if (x.version === "harmony") { + resolver.resolve(ast, new StaticEnv(x.staticEnv)); + instantiateModules(ast, x2.scope); + } + x2.execute(ast); + return x2.result; + } catch (e if e instanceof SyntaxError || isStackOverflow(e)) { + /* + * If we get an internal error during parsing we need to reify + * the exception as a Narcissus THROW. + * + * See bug 152646. + */ + x.result = e; + throw THROW; + } + }, + + // Class constructors. Where ECMA-262 requires C.length === 1, we declare + // a dummy formal parameter. + Function: function Function(dummy) { + var p = "", b = "", n = arguments.length; + if (n) { + var m = n - 1; + if (m) { + p += arguments[0]; + for (var k = 1; k < m; k++) + p += "," + arguments[k]; + } + b += arguments[m]; + } + + // XXX We want to pass a good file and line to the tokenizer. + // Note the anonymous name to maintain parity with Spidermonkey. + var t = new parser.Tokenizer("anonymous(" + p + ") {" + b + "}"); + + // NB: Use the STATEMENT_FORM constant since we don't want to push this + // function onto the fake compilation context. + var f = parser.FunctionDefinition(t, null, false, parser.STATEMENT_FORM); + var s = {object: global, parent: null}; + return newFunction(f,{scope:s}); + }, + Array: function (dummy) { + // Array when called as a function acts as a constructor. + return Array.apply(this, arguments); + }, + String: function String(s) { + // Called as function or constructor: convert argument to string type. + s = arguments.length ? "" + s : ""; + if (this instanceof String) { + // Called as constructor: save the argument as the string value + // of this String object and return this object. + this.value = s; + return this; + } + return s; + }, + + // Don't want to proxy RegExp or some features won't work + RegExp: RegExp, + + // Extensions to ECMA. + load: function load(s) { + if (typeof s !== "string") + return s; + + evaluate(snarf(s), s, 1) + }, + version: function() { return ExecutionContext.current.version; }, + quit: function() { throw END; }, + assertEq: function() { + try { + return assertEq.apply(null, arguments); + } catch (e) { + ExecutionContext.current.result = e; + throw THROW; + } + } + }; + + function wrapNative(name, val) { + if (!definitions.isNativeCode(val)) + return val; + return Proxy.createFunction( + definitions.makePassthruHandler(val), + function() { return val.apply(hostGlobal, arguments); }, + function() { + var a = arguments; + switch (a.length) { + case 0: + return new val(); + case 1: + return new val(a[0]); + case 2: + return new val(a[0], a[1]); + case 3: + return new val(a[0], a[1], a[2]); + default: + var argStr = ""; + for (var i = 0; i < a.length; i++) + argStr += 'a[' + i + '],'; + return eval('new ' + name + '(' + argStr.slice(0,-1) + ');'); + } + }); + } + + var hostHandler = definitions.blacklistHandler(hostGlobal, { Narcissus: true }); + var hostHandlerGet = hostHandler.get; + hostHandler.get = function(receiver, name) { + return wrapNative(name, hostHandlerGet(receiver, name)); + }; + var hostProxy = Proxy.create(hostHandler); + + var globalStaticEnv; // global static scope + var moduleInstances = new ObjectMap(); // maps module instance objects -> module instances + var global = Object.create(hostProxy, {}); // exposed global object (legacy) + + // unexposed global scope record (Harmony) + var globalScope = Object.create(hostProxy, {}); + + // exposed global scope mirror (Harmony) + var globalMirror = Proxy.create(definitions.mirrorHandler(globalScope, true)); + + function resetEnvironment() { + ExecutionContext.current = new ExecutionContext(GLOBAL_CODE, Narcissus.options.version); + let names = Object.getOwnPropertyNames(global); + for (let i = 0, n = names.length; i < n; i++) { + delete global[names[i]]; + } + for (let key in globalScope) { + delete globalScope[key]; + } + moduleInstances.clear(); + globalStaticEnv = new StaticEnv(); + + let names = Object.getOwnPropertyNames(hostProxy); + for (let i = 0, n = names.length; i < n; i++) { + globalStaticEnv.bind(names[i], new Def()); + } + for (let key in globalBase) { + let val = globalBase[key]; + global[key] = val; + globalScope[key] = val; + // NB: this assumes globalBase never contains module or import bindings + globalStaticEnv.bind(key, new Def()); + } + } + resetEnvironment(); + + // Helper to avoid Object.prototype.hasOwnProperty polluting scope objects. + function hasDirectProperty(o, p) { + return Object.prototype.hasOwnProperty.call(o, p); + } + + // Reflect a host class into the target global environment by delegation. + function reflectClass(name, proto) { + var gctor = global[name]; + definitions.defineProperty(gctor, "prototype", proto, true, true, true); + definitions.defineProperty(proto, "constructor", gctor, false, false, true); + return proto; + } + + // Reflect Array -- note that all Array methods are generic. + reflectClass('Array', new Array); + + // Reflect String, overriding non-generic methods. + var gSp = reflectClass('String', new String); + gSp.toSource = function () { return this.value.toSource(); }; + gSp.toString = function () { return this.value; }; + gSp.valueOf = function () { return this.value; }; + global.String.fromCharCode = String.fromCharCode; + + ExecutionContext.current = null; + + ExecutionContext.prototype = { + caller: null, + callee: null, + scope: {object: global, parent: null}, + thisObject: global, + thisModule: null, + result: undefined, + target: null, + ecma3OnlyMode: false, + + // Execute a node in this execution context. + execute: function(n) { + var prev = ExecutionContext.current; + ExecutionContext.current = this; + try { + execute(n, this); + } catch (e if e === THROW) { + // Propagate the throw to the previous context if it exists. + if (prev) { + prev.result = this.result; + throw THROW; + } + // Otherwise reflect the throw into host JS. + throw this.result; + } finally { + ExecutionContext.current = prev; + } + } + }; + + function Reference(base, propertyName, node) { + this.base = base; + this.propertyName = propertyName; + this.node = node; + } + + Reference.prototype.toString = function () { return this.node.getSource(); } + + function getValue(v) { + if (v instanceof Reference) { + if (!v.base) { + throw new ReferenceError(v.propertyName + " is not defined", + v.node.filename, v.node.lineno); + } + return v.base[v.propertyName]; + } + return v; + } + + function putValue(v, w, vn) { + if (v instanceof Reference) + return (v.base || global)[v.propertyName] = w; + throw new ReferenceError("Invalid assignment left-hand side", + vn.filename, vn.lineno); + } + + function isPrimitive(v) { + var t = typeof v; + return (t === "object") ? v === null : t !== "function"; + } + + function isObject(v) { + var t = typeof v; + return (t === "object") ? v !== null : t === "function"; + } + + // If r instanceof Reference, v === getValue(r); else v === r. If passed, rn + // is the node whose execute result was r. + function toObject(v, r, rn) { + switch (typeof v) { + case "boolean": + return new global.Boolean(v); + case "number": + return new global.Number(v); + case "string": + return new global.String(v); + case "function": + return v; + case "object": + if (v !== null) + return v; + } + var message = r + " (type " + (typeof v) + ") has no properties"; + throw rn ? new TypeError(message, rn.filename, rn.lineno) + : new TypeError(message); + } + + // reifyModule :: (Module) -> module instance object + function reifyModule(mod) { + return mod.instance.proxy; + } + + function bindImports(impDecls, x) { + for (var i = 0; i < impDecls.length; i++) { + var list = impDecls[i].pathList; + for (var j = 0; j < list.length; j++) { + bindImport(list[j], x); + } + } + } + + function bindImport(decl, x) { + var t = x.scope.object; + var lhs = decl.children[0]; + var rhs = decl.children[1]; + var mod = lhs.denotedModule; + + function bind(importID, exportID) { + definitions.defineGetter(t, importID, function() { + var m = reifyModule(mod); + return m[exportID]; + }, true); + } + + if (rhs.type === IDENTIFIER) { + if (rhs.value === "*") { + mod.exports.forEach(function(exportID, exp) { + if (!mod.exportedModules.has(exportID)) + bind(exportID, exportID); + }); + } else { + bind(rhs.value, rhs.value); + } + return; + } + + for (var i = 0; i < rhs.children.length; i++) { + var pair = rhs.children[i]; + bind(pair.children[1].value, pair.children[0].value); + } + } + + function executeModule(n, x) { + var m = x.scope.object[n.name]; + var inst = moduleInstances.get(m); + var x2 = new ExecutionContext(MODULE_CODE, x.version); + x2.scope = inst.scope; + x2.thisObject = m; + x2.thisModule = m; + x2.execute(n.body); + return m; + } + + function execute(n, x) { + var a, c, f, i, j, r, s, t, u, v; + + switch (n.type) { + case MODULE: + if (n.body) + x.result = executeModule(n, x); + break; + + case IMPORT: + case EXPORT: + break; + + case FUNCTION: + if (n.functionForm !== parser.DECLARED_FORM) { + if (!n.name || n.functionForm === parser.STATEMENT_FORM) { + v = newFunction(n, x); + if (n.functionForm === parser.STATEMENT_FORM) + definitions.defineProperty(x.scope.object, n.name, v, true); + } else { + t = new Object; + x.scope = {object: t, parent: x.scope}; + try { + v = newFunction(n, x); + definitions.defineProperty(t, n.name, v, true, true); + } finally { + x.scope = x.scope.parent; + } + } + } + break; + + case SCRIPT: + t = x.scope.object; + n.modAssns.forEach(function(name, node) { + definitions.defineMemoGetter(t, name, function() { + return reifyModule(node.initializer.denotedModule); + }, true); + }); + bindImports(n.impDecls, x); + a = n.funDecls; + for (i = 0, j = a.length; i < j; i++) { + s = a[i].name; + f = newFunction(a[i], x); + // ECMA-262 says variable bindings created by `eval' are deleteable. + definitions.defineProperty(t, s, f, x.type !== EVAL_CODE); + } + a = n.varDecls; + var defineVar; + if (x.thisModule) { + defineVar = function(obj, prop) { + // start out as a getter/setter that throws on get + definitions.defineGetterSetter(obj, prop, function() { + throw new ReferenceError(prop + " is not initialized"); + }, function(val) { + // on first set, replace with ordinary property + definitions.defineProperty(obj, prop, val, false); + return val; + }, false); + }; + } else { + defineVar = function(obj, prop) { + // ECMA-262 says variable bindings created by `eval' are deleteable. + definitions.defineProperty(obj, prop, undefined, x.type !== EVAL_CODE, false); + }; + } + for (i = 0, j = a.length; i < j; i++) { + u = a[i]; + s = u.name; + if (u.readOnly && hasDirectProperty(t, s)) { + throw new TypeError("Redeclaration of const " + s, + u.filename, u.lineno); + } + if (u.readOnly || !hasDirectProperty(t, s)) { + // Does not correctly handle 'const x;' -- see bug 592335. + defineVar(t, s); + } + } + // FALL THROUGH + + case BLOCK: + c = n.children; + for (i = 0, j = c.length; i < j; i++) + execute(c[i], x); + break; + + case IMPORT: + case EXPORT: + break; + + case IF: + if (getValue(execute(n.condition, x))) + execute(n.thenPart, x); + else if (n.elsePart) + execute(n.elsePart, x); + break; + + case SWITCH: + s = getValue(execute(n.discriminant, x)); + a = n.cases; + var matchDefault = false; + switch_loop: + for (i = 0, j = a.length; ; i++) { + if (i === j) { + if (n.defaultIndex >= 0) { + i = n.defaultIndex - 1; // no case matched, do default + matchDefault = true; + continue; + } + break; // no default, exit switch_loop + } + t = a[i]; // next case (might be default!) + if (t.type === CASE) { + u = getValue(execute(t.caseLabel, x)); + } else { + if (!matchDefault) // not defaulting, skip for now + continue; + u = s; // force match to do default + } + if (u === s) { + for (;;) { // this loop exits switch_loop + if (t.statements.children.length) { + try { + execute(t.statements, x); + } catch (e if e === BREAK && x.target === n) { + break switch_loop; + } + } + if (++i === j) + break switch_loop; + t = a[i]; + } + // NOT REACHED + } + } + break; + + case FOR: + n.setup && getValue(execute(n.setup, x)); + // FALL THROUGH + case WHILE: + while (!n.condition || getValue(execute(n.condition, x))) { + try { + execute(n.body, x); + } catch (e if e === BREAK && x.target === n) { + break; + } catch (e if e === CONTINUE && x.target === n) { + // Must run the update expression. + } + n.update && getValue(execute(n.update, x)); + } + break; + + case FOR_IN: + u = n.varDecl; + if (u) + execute(u, x); + r = n.iterator; + s = execute(n.object, x); + v = getValue(s); + + // ECMA deviation to track extant browser JS implementation behavior. + t = ((v === null || v === undefined) && !x.ecma3OnlyMode) + ? v + : toObject(v, s, n.object); + a = []; + for (i in t) + a.push(i); + for (i = 0, j = a.length; i < j; i++) { + putValue(execute(r, x), a[i], r); + try { + execute(n.body, x); + } catch (e if e === BREAK && x.target === n) { + break; + } catch (e if e === CONTINUE && x.target === n) { + continue; + } + } + break; + + case DO: + do { + try { + execute(n.body, x); + } catch (e if e === BREAK && x.target === n) { + break; + } catch (e if e === CONTINUE && x.target === n) { + continue; + } + } while (getValue(execute(n.condition, x))); + break; + + case BREAK: + case CONTINUE: + x.target = n.target; + throw n.type; + + case TRY: + try { + execute(n.tryBlock, x); + } catch (e if e === THROW && (j = n.catchClauses.length)) { + e = x.result; + x.result = undefined; + for (i = 0; ; i++) { + if (i === j) { + x.result = e; + throw THROW; + } + t = n.catchClauses[i]; + x.scope = {object: {}, parent: x.scope}; + definitions.defineProperty(x.scope.object, t.varName, e, true); + try { + if (t.guard && !getValue(execute(t.guard, x))) + continue; + execute(t.block, x); + break; + } finally { + x.scope = x.scope.parent; + } + } + } finally { + if (n.finallyBlock) + execute(n.finallyBlock, x); + } + break; + + case THROW: + x.result = getValue(execute(n.exception, x)); + throw THROW; + + case RETURN: + // Check for returns with no return value + x.result = n.value ? getValue(execute(n.value, x)) : undefined; + throw RETURN; + + case WITH: + r = execute(n.object, x); + t = toObject(getValue(r), r, n.object); + x.scope = {object: t, parent: x.scope}; + try { + execute(n.body, x); + } finally { + x.scope = x.scope.parent; + } + break; + + case VAR: + case CONST: + c = n.children; + for (i = 0, j = c.length; i < j; i++) { + u = c[i].initializer; + if (!u) + continue; + t = c[i].name; + for (s = x.scope; s; s = s.parent) { + if (hasDirectProperty(s.object, t)) + break; + } + u = getValue(execute(u, x)); + if (n.type === CONST) + definitions.defineProperty(s.object, t, u, x.type !== EVAL_CODE, true); + else + s.object[t] = u; + } + break; + + case DEBUGGER: + throw "NYI: " + definitions.tokens[n.type]; + + case SEMICOLON: + if (n.expression) + x.result = getValue(execute(n.expression, x)); + break; + + case LABEL: + try { + execute(n.statement, x); + } catch (e if e === BREAK && x.target === n.target) { + } + break; + + case COMMA: + c = n.children; + for (i = 0, j = c.length; i < j; i++) + v = getValue(execute(c[i], x)); + break; + + case ASSIGN: + c = n.children; + r = execute(c[0], x); + t = n.assignOp; + if (t) + u = getValue(r); + v = getValue(execute(c[1], x)); + if (t) { + switch (t) { + case BITWISE_OR: v = u | v; break; + case BITWISE_XOR: v = u ^ v; break; + case BITWISE_AND: v = u & v; break; + case LSH: v = u << v; break; + case RSH: v = u >> v; break; + case URSH: v = u >>> v; break; + case PLUS: v = u + v; break; + case MINUS: v = u - v; break; + case MUL: v = u * v; break; + case DIV: v = u / v; break; + case MOD: v = u % v; break; + } + } + putValue(r, v, c[0]); + break; + + case HOOK: + c = n.children; + v = getValue(execute(c[0], x)) ? getValue(execute(c[1], x)) + : getValue(execute(c[2], x)); + break; + + case OR: + c = n.children; + v = getValue(execute(c[0], x)) || getValue(execute(c[1], x)); + break; + + case AND: + c = n.children; + v = getValue(execute(c[0], x)) && getValue(execute(c[1], x)); + break; + + case BITWISE_OR: + c = n.children; + v = getValue(execute(c[0], x)) | getValue(execute(c[1], x)); + break; + + case BITWISE_XOR: + c = n.children; + v = getValue(execute(c[0], x)) ^ getValue(execute(c[1], x)); + break; + + case BITWISE_AND: + c = n.children; + v = getValue(execute(c[0], x)) & getValue(execute(c[1], x)); + break; + + case EQ: + c = n.children; + v = getValue(execute(c[0], x)) == getValue(execute(c[1], x)); + break; + + case NE: + c = n.children; + v = getValue(execute(c[0], x)) != getValue(execute(c[1], x)); + break; + + case STRICT_EQ: + c = n.children; + v = getValue(execute(c[0], x)) === getValue(execute(c[1], x)); + break; + + case STRICT_NE: + c = n.children; + v = getValue(execute(c[0], x)) !== getValue(execute(c[1], x)); + break; + + case LT: + c = n.children; + v = getValue(execute(c[0], x)) < getValue(execute(c[1], x)); + break; + + case LE: + c = n.children; + v = getValue(execute(c[0], x)) <= getValue(execute(c[1], x)); + break; + + case GE: + c = n.children; + v = getValue(execute(c[0], x)) >= getValue(execute(c[1], x)); + break; + + case GT: + c = n.children; + v = getValue(execute(c[0], x)) > getValue(execute(c[1], x)); + break; + + case IN: + c = n.children; + v = getValue(execute(c[0], x)) in getValue(execute(c[1], x)); + break; + + case INSTANCEOF: + c = n.children; + t = getValue(execute(c[0], x)); + u = getValue(execute(c[1], x)); + if (isObject(u) && typeof u.__hasInstance__ === "function") + v = u.__hasInstance__(t); + else + v = t instanceof u; + break; + + case LSH: + c = n.children; + v = getValue(execute(c[0], x)) << getValue(execute(c[1], x)); + break; + + case RSH: + c = n.children; + v = getValue(execute(c[0], x)) >> getValue(execute(c[1], x)); + break; + + case URSH: + c = n.children; + v = getValue(execute(c[0], x)) >>> getValue(execute(c[1], x)); + break; + + case PLUS: + c = n.children; + v = getValue(execute(c[0], x)) + getValue(execute(c[1], x)); + break; + + case MINUS: + c = n.children; + v = getValue(execute(c[0], x)) - getValue(execute(c[1], x)); + break; + + case MUL: + c = n.children; + v = getValue(execute(c[0], x)) * getValue(execute(c[1], x)); + break; + + case DIV: + c = n.children; + v = getValue(execute(c[0], x)) / getValue(execute(c[1], x)); + break; + + case MOD: + c = n.children; + v = getValue(execute(c[0], x)) % getValue(execute(c[1], x)); + break; + + case DELETE: + t = execute(n.children[0], x); + v = !(t instanceof Reference) || delete t.base[t.propertyName]; + break; + + case VOID: + getValue(execute(n.children[0], x)); + break; + + case TYPEOF: + t = execute(n.children[0], x); + if (t instanceof Reference) + t = t.base ? t.base[t.propertyName] : undefined; + v = typeof t; + break; + + case NOT: + v = !getValue(execute(n.children[0], x)); + break; + + case BITWISE_NOT: + v = ~getValue(execute(n.children[0], x)); + break; + + case UNARY_PLUS: + v = +getValue(execute(n.children[0], x)); + break; + + case UNARY_MINUS: + v = -getValue(execute(n.children[0], x)); + break; + + case INCREMENT: + case DECREMENT: + t = execute(n.children[0], x); + u = Number(getValue(t)); + if (n.postfix) + v = u; + putValue(t, (n.type === INCREMENT) ? ++u : --u, n.children[0]); + if (!n.postfix) + v = u; + break; + + case DOT: + c = n.children; + r = execute(c[0], x); + t = getValue(r); + u = c[1].value; + v = new Reference(toObject(t, r, c[0]), u, n); + break; + + case INDEX: + c = n.children; + r = execute(c[0], x); + t = getValue(r); + u = getValue(execute(c[1], x)); + v = new Reference(toObject(t, r, c[0]), String(u), n); + break; + + case LIST: + // Curse ECMA for specifying that arguments is not an Array object! + v = {}; + c = n.children; + for (i = 0, j = c.length; i < j; i++) { + u = getValue(execute(c[i], x)); + definitions.defineProperty(v, i, u, false, false, true); + } + definitions.defineProperty(v, "length", i, false, false, true); + break; + + case CALL: + c = n.children; + r = execute(c[0], x); + a = execute(c[1], x); + f = getValue(r); + x.staticEnv = n.staticEnv; + if (isPrimitive(f) || typeof f.__call__ !== "function") { + throw new TypeError(r + " is not callable", c[0].filename, c[0].lineno); + } + t = (r instanceof Reference) ? r.base : null; + if (t instanceof Activation) + t = null; + v = f.__call__(t, a, x); + break; + + case NEW: + case NEW_WITH_ARGS: + c = n.children; + r = execute(c[0], x); + f = getValue(r); + if (n.type === NEW) { + a = {}; + definitions.defineProperty(a, "length", 0, false, false, true); + } else { + a = execute(c[1], x); + } + if (isPrimitive(f) || typeof f.__construct__ !== "function") { + throw new TypeError(r + " is not a constructor", c[0].filename, c[0].lineno); + } + v = f.__construct__(a, x); + break; + + case ARRAY_INIT: + v = []; + c = n.children; + for (i = 0, j = c.length; i < j; i++) { + if (c[i]) + v[i] = getValue(execute(c[i], x)); + } + v.length = j; + break; + + case OBJECT_INIT: + v = {}; + c = n.children; + for (i = 0, j = c.length; i < j; i++) { + t = c[i]; + if (t.type === PROPERTY_INIT) { + let c2 = t.children; + v[c2[0].value] = getValue(execute(c2[1], x)); + } else { + f = newFunction(t, x); + u = (t.type === GETTER) ? '__defineGetter__' + : '__defineSetter__'; + v[u](t.name, thunk(f, x)); + } + } + break; + + case NULL: + v = null; + break; + + case THIS: + v = x.thisObject; + break; + + case TRUE: + v = true; + break; + + case FALSE: + v = false; + break; + + case IDENTIFIER: + for (s = x.scope; s; s = s.parent) { + if (n.value in s.object) + break; + } + v = new Reference(s && s.object, n.value, n); + break; + + case NUMBER: + case STRING: + case REGEXP: + v = n.value; + break; + + case GROUP: + v = execute(n.children[0], x); + break; + + default: + throw "PANIC: unknown operation " + n.type + ": " + uneval(n); + } + + return v; + } + + function Activation(f, a) { + for (var i = 0, j = f.params.length; i < j; i++) + definitions.defineProperty(this, f.params[i], a[i], true); + definitions.defineProperty(this, "arguments", a, true); + } + + // Null Activation.prototype's proto slot so that Object.prototype.* does not + // pollute the scope of heavyweight functions. Also delete its 'constructor' + // property so that it doesn't pollute function scopes. + + Activation.prototype.__proto__ = null; + delete Activation.prototype.constructor; + + function FunctionObject(node, scope) { + this.node = node; + this.scope = scope; + definitions.defineProperty(this, "length", node.params.length, true, true, true); + var proto = {}; + definitions.defineProperty(this, "prototype", proto, true); + definitions.defineProperty(proto, "constructor", this, false, false, true); + } + + /* + * ModuleInstance :: (Module, scope) -> ModuleInstance + * + * Dynamic semantic representation of a module. + */ + function ModuleInstance(mod, scope) { + this.module = mod; + this.scope = scope; + } + + /* + * newModule :: (Module, scope) -> module instance object + * + * Instantiates a module node, producing a module instance object. + */ + function newModule(mod, scope) { + var exports = mod.exports; + + // the module instance + mod.instance = new ModuleInstance(mod, {object: new Object, parent: scope}); + + function keys() { + var result = []; + exports.forEach(function(name, exp) { + result.push(name); + }); + return result; + } + + function getExportDescriptor(name) { + if (exports.has(name)) { + var exp = exports.get(name); + var inst = exp.resolved.module.instance; + + return { + value: inst.scope.object[exp.resolved.internalID], + writable: false, + enumerable: true, + configurable: true + }; + } + + throw new ReferenceError("no such export: " + name); + } + + function getExportValue(receiver, name) { + return getExportDescriptor(name).value; + } + + function hasExport(name) { + return exports.has(name); + } + + function refuse() { } + + // the module instance proxy + var instObj = Proxy.create({ + getOwnPropertyDescriptor: getExportDescriptor, + getPropertyDescriptor: getExportDescriptor, + getOwnPropertyNames: keys, + defineProperty: refuse, + "delete": refuse, + fix: refuse, + has: hasExport, + hasOwn: hasExport, + get: getExportValue, + set: refuse, + enumerate: keys, + keys: keys + }); + + // associate the instance with the instance proxy + moduleInstances.set(instObj, mod.instance); + mod.instance.proxy = instObj; + + return instObj; + } + + function instantiateModules(n, scope) { + n.modDefns.forEach(function(name, defn) { + var m = defn.module; + var instObj = newModule(m, scope); + var inst = moduleInstances.get(instObj); + definitions.defineProperty(scope.object, name, instObj, true, true); + instantiateModules(m.node.body, inst.scope); + }); + } + + function getPropertyDescriptor(obj, name) { + while (obj) { + if (({}).hasOwnProperty.call(obj, name)) + return Object.getOwnPropertyDescriptor(obj, name); + obj = Object.getPrototypeOf(obj); + } + } + + function getOwnProperties(obj) { + var map = {}; + for (var name in Object.getOwnPropertyNames(obj)) + map[name] = Object.getOwnPropertyDescriptor(obj, name); + return map; + } + + // Returns a new function wrapped with a Proxy. + function newFunction(n, x) { + var fobj = new FunctionObject(n, x.scope); + var handler = definitions.makePassthruHandler(fobj); + var p = Proxy.createFunction(handler, + function() { return fobj.__call__(this, arguments, x); }, + function() { return fobj.__construct__(arguments, x); }); + return p; + } + + var FOp = FunctionObject.prototype = { + + // Internal methods. + __call__: function (t, a, x) { + var x2 = new ExecutionContext(FUNCTION_CODE, x.version); + x2.thisObject = t || global; + x2.thisModule = null; + x2.caller = x; + x2.callee = this; + definitions.defineProperty(a, "callee", this, false, false, true); + var f = this.node; + x2.scope = {object: new Activation(f, a), parent: this.scope}; + + try { + x2.execute(f.body); + } catch (e if e === RETURN) { + return x2.result; + } + return undefined; + }, + + __construct__: function (a, x) { + var o = new Object; + var p = this.prototype; + if (isObject(p)) + o.__proto__ = p; + // else o.__proto__ defaulted to Object.prototype + + var v = this.__call__(o, a, x); + if (isObject(v)) + return v; + return o; + }, + + __hasInstance__: function (v) { + if (isPrimitive(v)) + return false; + var p = this.prototype; + if (isPrimitive(p)) { + throw new TypeError("'prototype' property is not an object", + this.node.filename, this.node.lineno); + } + var o; + while ((o = v.__proto__)) { + if (o === p) + return true; + v = o; + } + return false; + }, + + // Standard methods. + toString: function () { + return this.node.getSource(); + }, + + apply: function (t, a) { + // Curse ECMA again! + if (typeof this.__call__ !== "function") { + throw new TypeError("Function.prototype.apply called on" + + " uncallable object"); + } + + if (t === undefined || t === null) + t = global; + else if (typeof t !== "object") + t = toObject(t, t); + + if (a === undefined || a === null) { + a = {}; + definitions.defineProperty(a, "length", 0, false, false, true); + } else if (a instanceof Array) { + var v = {}; + for (var i = 0, j = a.length; i < j; i++) + definitions.defineProperty(v, i, a[i], false, false, true); + definitions.defineProperty(v, "length", i, false, false, true); + a = v; + } else if (!(a instanceof Object)) { + // XXX check for a non-arguments object + throw new TypeError("Second argument to Function.prototype.apply" + + " must be an array or arguments object", + this.node.filename, this.node.lineno); + } + + return this.__call__(t, a, ExecutionContext.current); + }, + + call: function (t) { + // Curse ECMA a third time! + var a = Array.prototype.splice.call(arguments, 1); + return this.apply(t, a); + } + }; + + // Connect Function.prototype and Function.prototype.constructor in global. + reflectClass('Function', FOp); + + // Help native and host-scripted functions be like FunctionObjects. + var Fp = Function.prototype; + var REp = RegExp.prototype; + + if (!('__call__' in Fp)) { + definitions.defineProperty(Fp, "__call__", + function (t, a, x) { + // Curse ECMA yet again! + a = Array.prototype.splice.call(a, 0, a.length); + return this.apply(t, a); + }, true, true, true); + definitions.defineProperty(REp, "__call__", + function (t, a, x) { + a = Array.prototype.splice.call(a, 0, a.length); + return this.exec.apply(this, a); + }, true, true, true); + definitions.defineProperty(Fp, "__construct__", + function (a, x) { + a = Array.prototype.splice.call(a, 0, a.length); + switch (a.length) { + case 0: + return new this(); + case 1: + return new this(a[0]); + case 2: + return new this(a[0], a[1]); + case 3: + return new this(a[0], a[1], a[2]); + default: + var argStr = ""; + for (var i=0; i@"); + line = line.replace(/@(.*\/|\\)?([^\/\\]+:[0-9]+)/, " at $2"); + print(" in " + line); + } + } + } + + // A read-eval-print-loop that roughly tracks the behavior of the js shell. + function repl() { + + // Display a value similarly to the js shell. + function display(x) { + if (typeof x === "object") { + // At the js shell, objects with no |toSource| don't print. + if (x !== null && "toSource" in x) { + try { + print(x.toSource()); + } catch (e) { + } + } else { + print("null"); + } + } else if (typeof x === "string") { + print(uneval(x)); + } else if (typeof x !== "undefined") { + // Since x must be primitive, String can't throw. + print(String(x)); + } + } + + // String conversion that never throws. + function string(x) { + try { + return String(x); + } catch (e) { + return "unknown (can't convert to string)"; + } + } + + const BREAK_INTERACTION = {}; + + // isCommand :: (string) -> boolean + function isCommand(line) { + switch (line.trim()) { + case ".help": + print(".begin Begin multiline input mode."); + print(".break Sometimes you get stuck in a place you can't get out... This will get you out."); + print(".clear Break, and also clear the global environment."); + print(".end End multiline input mode."); + print(".exit Exit the prompt."); + print(".help Show repl options."); + return true; + + case ".clear": + resetEnvironment(); + // FALL THROUGH + + case ".break": + throw BREAK_INTERACTION; + + case ".exit": + throw END; + } + return false; + } + + var x = new ExecutionContext(GLOBAL_CODE, Narcissus.options.version); + + // Line number in/out parameter to parser.parseStdin. + var ln = {value: 0}; + + ExecutionContext.current = x; + for (;;) { + x.result = undefined; + putstr("njs> "); + var src = readline(); + + // If readline receives EOF it returns null. + if (src === null) { + print(""); + break; + } + ++ln.value; + + try { + var ast = parser.parseStdin(src, ln, "... ", isCommand); + if (x.version === "harmony") { + resolveGlobal(ast); + instantiateModules(ast, x.scope); + } + execute(ast, x); + display(x.result); + } catch (e if e === THROW) { + print("uncaught exception: " + string(x.result)); + } catch (e if e === END) { + break; + } catch (e if e === BREAK_INTERACTION) { + continue; + } catch (e if e instanceof SyntaxError) { + const PREFIX = (e.filename || "stdin") + ":" + e.lineNumber + ": "; + print(PREFIX + e.toString()); + print(PREFIX + e.source); + print(PREFIX + ".".repeat(e.cursor) + "^"); + } catch (e if e instanceof Error) { + print((e.filename || "stdin") + ":" + e.lineNumber + ": " + e.toString()); + if (e.stack) + printStackTrace(e.stack); + } catch (e) { + print("unexpected Narcissus exception (" + e + ")"); + throw e; + } + } + ExecutionContext.current = null; + } + + function test(thunk) { + try { + thunk(); + } catch (e) { + print(e.fileName + ":" + e.lineNumber + ": " + e.name + ": " + e.message); + printStackTrace(e.stack); + return false; + } + return true; + } + + return { + // resetEnvironment wipes any properties added externally to global, + // but properties added to globalBase will persist. + global: global, + globalBase: globalBase, + resetEnvironment: resetEnvironment, + evaluate: evaluate, + repl: repl, + test: test + }; + +}()); diff --git a/node_modules/narcissus/lib/jslex.js b/node_modules/narcissus/lib/jslex.js new file mode 100644 index 000000000..ae7235874 --- /dev/null +++ b/node_modules/narcissus/lib/jslex.js @@ -0,0 +1,508 @@ +/* vim: set sw=4 ts=4 et tw=78: */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Narcissus JavaScript engine. + * + * The Initial Developer of the Original Code is + * Brendan Eich . + * Portions created by the Initial Developer are Copyright (C) 2004 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Tom Austin + * Brendan Eich + * Shu-Yu Guo + * Dave Herman + * Dimitris Vardoulakis + * Patrick Walton + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/* + * Narcissus - JS implemented in JS. + * + * Lexical scanner. + */ + +Narcissus.lexer = (function() { + + var definitions = Narcissus.definitions; + + // Set constants in the local scope. + eval(definitions.consts); + + // Build up a trie of operator tokens. + var opTokens = {}; + for (var op in definitions.opTypeNames) { + if (op === '\n' || op === '.') + continue; + + var node = opTokens; + for (var i = 0; i < op.length; i++) { + var ch = op[i]; + if (!(ch in node)) + node[ch] = {}; + node = node[ch]; + node.op = op; + } + } + + /* + * Tokenizer :: (source, filename, line number) -> Tokenizer + */ + function Tokenizer(s, f, l) { + this.cursor = 0; + this.source = String(s); + this.tokens = []; + this.tokenIndex = 0; + this.lookahead = 0; + this.scanNewlines = false; + this.unexpectedEOF = false; + this.filename = f || ""; + this.lineno = l || 1; + this.jsdocs = []; + } + + Tokenizer.prototype = { + get done() { + // We need to set scanOperand to true here because the first thing + // might be a regexp. + return this.peek(true) === END; + }, + + get token() { + return this.tokens[this.tokenIndex]; + }, + + match: function (tt, scanOperand) { + return this.get(scanOperand) === tt || this.unget(); + }, + + mustMatch: function (tt) { + if (!this.match(tt)) { + throw this.newSyntaxError("Missing " + + definitions.tokens[tt].toLowerCase()); + } + return this.token; + }, + + peek: function (scanOperand) { + var tt, next; + if (this.lookahead) { + next = this.tokens[(this.tokenIndex + this.lookahead) & 3]; + tt = (this.scanNewlines && next.lineno !== this.lineno) + ? NEWLINE + : next.type; + } else { + tt = this.get(scanOperand); + this.unget(); + } + return tt; + }, + + peekOnSameLine: function (scanOperand) { + this.scanNewlines = true; + var tt = this.peek(scanOperand); + this.scanNewlines = false; + return tt; + }, + + // Eat comments and whitespace. + skip: function () { + var input = this.source, + jsdocComment = null; + for (;;) { + var ch = input[this.cursor++]; + var next = input[this.cursor]; + // handle \r, \r\n and (always preferable) \n + if (ch === '\r') { + // if the next character is \n, we don't care about this at all + if (next === '\n') continue; + + // otherwise, we want to consider this as a newline + ch = '\n'; + } + + if (ch === '\n' && !this.scanNewlines) { + this.lineno++; + } else if (ch === '/' && next === '*') { + this.cursor++; + if (input[this.cursor] === '*') { // like /** + this.cursor++; + jsdocComment = ''; + } + for (;;) { + ch = input[this.cursor++]; + if (ch === undefined) + throw this.newSyntaxError("Unterminated comment"); + + if (ch === '*') { + next = input[this.cursor]; + if (next === '/') { + if (jsdocComment) this.jsdocs.push(jsdocComment); + jsdocComment = null; + + this.cursor++; + if (typeof input[this.cursor+1] === 'undefined') { // eof + if (typeof this.onJsDoc === 'function') { + while(this.jsdocs.length) { + this.onJsDoc(this.jsdocs.shift()); + } + } + } + break; + } + } else if (ch === '\n') { + this.lineno++; + } + if (typeof jsdocComment === 'string') { jsdocComment += ch; } + } + } else if (ch === '/' && next === '/') { + this.cursor++; + for (;;) { + ch = input[this.cursor++]; + next = input[this.cursor]; + if (ch === undefined) + return; + + if (ch === '\r') { + // check for \r\n + if (next !== '\n') ch = '\n'; + } + + if (ch === '\n') { + if (this.scanNewlines) { + this.cursor--; + } else { + this.lineno++; + } + break; + } + } + } else if (!(ch in definitions.whitespace)) { + this.cursor--; + return; + } + } + }, + + // Lex the exponential part of a number, if present. Return true iff an + // exponential part was found. + lexExponent: function() { + var input = this.source; + var next = input[this.cursor]; + if (next === 'e' || next === 'E') { + this.cursor++; + ch = input[this.cursor++]; + if (ch === '+' || ch === '-') + ch = input[this.cursor++]; + + if (ch < '0' || ch > '9') + throw this.newSyntaxError("Missing exponent"); + + do { + ch = input[this.cursor++]; + } while (ch >= '0' && ch <= '9'); + this.cursor--; + + return true; + } + + return false; + }, + + lexZeroNumber: function (ch) { + var token = this.token, input = this.source; + token.type = NUMBER; + + ch = input[this.cursor++]; + if (ch === '.') { + do { + ch = input[this.cursor++]; + } while (ch >= '0' && ch <= '9'); + this.cursor--; + + this.lexExponent(); + token.value = parseFloat(token.start, this.cursor); + } else if (ch === 'x' || ch === 'X') { + do { + ch = input[this.cursor++]; + } while ((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'f') || + (ch >= 'A' && ch <= 'F')); + this.cursor--; + + token.value = parseInt(input.substring(token.start, this.cursor)); + } else if (ch >= '0' && ch <= '7') { + do { + ch = input[this.cursor++]; + } while (ch >= '0' && ch <= '7'); + this.cursor--; + + token.value = parseInt(input.substring(token.start, this.cursor)); + } else { + this.cursor--; + this.lexExponent(); // 0E1, &c. + token.value = 0; + } + }, + + lexNumber: function (ch) { + var token = this.token, input = this.source; + token.type = NUMBER; + + var floating = false; + do { + ch = input[this.cursor++]; + if (ch === '.' && !floating) { + floating = true; + ch = input[this.cursor++]; + } + } while (ch >= '0' && ch <= '9'); + + this.cursor--; + + var exponent = this.lexExponent(); + floating = floating || exponent; + + var str = input.substring(token.start, this.cursor); + token.value = floating ? parseFloat(str) : parseInt(str); + }, + + lexDot: function (ch) { + var token = this.token, input = this.source; + var next = input[this.cursor]; + if (next >= '0' && next <= '9') { + do { + ch = input[this.cursor++]; + } while (ch >= '0' && ch <= '9'); + this.cursor--; + + this.lexExponent(); + + token.type = NUMBER; + token.value = parseFloat(token.start, this.cursor); + } else { + token.type = DOT; + token.assignOp = null; + token.value = '.'; + } + }, + + lexString: function (ch) { + var token = this.token, input = this.source; + token.type = STRING; + + var hasEscapes = false; + var delim = ch; + while ((ch = input[this.cursor++]) !== delim) { + if (this.cursor == input.length) + throw this.newSyntaxError("Unterminated string literal"); + if (ch === '\\') { + hasEscapes = true; + if (++this.cursor == input.length) + throw this.newSyntaxError("Unterminated string literal"); + } + } + + token.value = hasEscapes + ? eval(input.substring(token.start, this.cursor)) + : input.substring(token.start + 1, this.cursor - 1); + }, + + lexRegExp: function (ch) { + var token = this.token, input = this.source; + token.type = REGEXP; + + do { + ch = input[this.cursor++]; + if (ch === '\\') { + this.cursor++; + } else if (ch === '[') { + do { + if (ch === undefined) + throw this.newSyntaxError("Unterminated character class"); + + if (ch === '\\') + this.cursor++; + + ch = input[this.cursor++]; + } while (ch !== ']'); + } else if (ch === undefined) { + throw this.newSyntaxError("Unterminated regex"); + } + } while (ch !== '/'); + + do { + ch = input[this.cursor++]; + } while (ch >= 'a' && ch <= 'z'); + + this.cursor--; + + token.value = eval(input.substring(token.start, this.cursor)); + }, + + lexOp: function (ch) { + var token = this.token, input = this.source; + + // A bit ugly, but it seems wasteful to write a trie lookup routine + // for only 3 characters... + var node = opTokens[ch]; + var next = input[this.cursor]; + if (next in node) { + node = node[next]; + this.cursor++; + next = input[this.cursor]; + if (next in node) { + node = node[next]; + this.cursor++; + next = input[this.cursor]; + } + } + + var op = node.op; + if (definitions.assignOps[op] && input[this.cursor] === '=') { + this.cursor++; + token.type = ASSIGN; + token.assignOp = definitions.tokenIds[definitions.opTypeNames[op]]; + op += '='; + } else { + token.type = definitions.tokenIds[definitions.opTypeNames[op]]; + token.assignOp = null; + } + + token.value = op; + }, + + // FIXME: Unicode escape sequences + // FIXME: Unicode identifiers + lexIdent: function (ch) { + var token = this.token, input = this.source; + + do { + ch = input[this.cursor++]; + } while ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || + (ch >= '0' && ch <= '9') || ch === '$' || ch === '_'); + + this.cursor--; // Put the non-word character back. + + var id = input.substring(token.start, this.cursor); + token.type = definitions.keywords[id] || IDENTIFIER; + token.value = id; + }, + + /* + * Tokenizer.get :: void -> token type + * + * Consume input *only* if there is no lookahead. + * Dispatch to the appropriate lexing function depending on the input. + */ + get: function (scanOperand) { + var token; + while (this.lookahead) { + --this.lookahead; + this.tokenIndex = (this.tokenIndex + 1) & 3; + token = this.tokens[this.tokenIndex]; + if (token.type !== NEWLINE || this.scanNewlines) + return token.type; + } + + this.skip(); + + this.tokenIndex = (this.tokenIndex + 1) & 3; + token = this.tokens[this.tokenIndex]; + if (!token) + this.tokens[this.tokenIndex] = token = {}; + if (this.jsdocs && this.jsdocs.length) { + while (this.jsdocs.length > 1) { // orphaned jsdocComments have no code token + if (typeof this.onJsDoc === 'function' && this.jsdocs.length) { + this.onJsDoc(this.jsdocs.shift()); + } + else { // discard? + this.jsdocs.shift(); + } + } + token.jsdoc = this.jsdocs.pop(); + } + + var input = this.source; + if (this.cursor >= input.length) + return token.type = END; + + token.start = this.cursor; + token.lineno = this.lineno; + + var ch = input[this.cursor++]; + if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || ch === '$' || ch === '_') { + this.lexIdent(ch); + } else if (scanOperand && ch === '/') { + this.lexRegExp(ch); + } else if (ch in opTokens) { + this.lexOp(ch); + } else if (ch === '.') { + this.lexDot(ch); + } else if (ch >= '1' && ch <= '9') { + this.lexNumber(ch); + } else if (ch === '0') { + this.lexZeroNumber(ch); + } else if (ch === '"' || ch === "'") { + this.lexString(ch); + } else if (this.scanNewlines && (ch === '\n' || ch === '\r')) { + // if this was a \r, look for \r\n + if (ch === '\r' && input[this.cursor] === '\n') this.cursor++; + token.type = NEWLINE; + token.value = '\n'; + this.lineno++; + } else { + throw this.newSyntaxError("Illegal token"); + } + + token.end = this.cursor; + return token.type; + }, + + /* + * Tokenizer.unget :: void -> undefined + * + * Match depends on unget returning undefined. + */ + unget: function () { + if (++this.lookahead === 4) throw "PANIC: too much lookahead!"; + this.tokenIndex = (this.tokenIndex - 1) & 3; + }, + + newSyntaxError: function (m) { + var e = new SyntaxError(m, this.filename, this.lineno); + e.source = this.source; + e.cursor = this.lookahead + ? this.tokens[(this.tokenIndex + this.lookahead) & 3].start + : this.cursor; + return e; + }, + }; + + return { Tokenizer: Tokenizer }; + +}()); diff --git a/node_modules/narcissus/lib/jsparse.js b/node_modules/narcissus/lib/jsparse.js new file mode 100644 index 000000000..5961b7200 --- /dev/null +++ b/node_modules/narcissus/lib/jsparse.js @@ -0,0 +1,1813 @@ +/* -*- Mode: JS; tab-width: 4; indent-tabs-mode: nil; -*- + * vim: set sw=4 ts=4 et tw=78: + * ***** BEGIN LICENSE BLOCK ***** + * + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Narcissus JavaScript engine. + * + * The Initial Developer of the Original Code is + * Brendan Eich . + * Portions created by the Initial Developer are Copyright (C) 2004 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Tom Austin + * Brendan Eich + * Shu-Yu Guo + * Dave Herman + * Dimitris Vardoulakis + * Patrick Walton + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/* + * Narcissus - JS implemented in JS. + * + * Parser. + */ + +Narcissus.parser = (function() { + + var lexer = Narcissus.lexer; + var definitions = Narcissus.definitions; + + const StringMap = definitions.StringMap; + const Stack = definitions.Stack; + + // Set constants in the local scope. + eval(definitions.consts); + + // Banned statement types by language version. + const blackLists = { 185: {}, harmony: {} }; + blackLists[185][IMPORT] = true; + blackLists[185][EXPORT] = true; + blackLists[185][MODULE] = true; + blackLists.harmony[WITH] = true; + + /* + * pushDestructuringVarDecls :: (node, hoisting node) -> void + * + * Recursively add all destructured declarations to varDecls. + */ + function pushDestructuringVarDecls(n, s) { + for (var i in n) { + var sub = n[i]; + if (sub.type === IDENTIFIER) { + s.varDecls.push(sub); + } else { + pushDestructuringVarDecls(sub, s); + } + } + } + + function StaticContext(parentScript, parentBlock, inModule, inFunction) { + this.parentScript = parentScript; + this.parentBlock = parentBlock || parentScript; + this.inModule = inModule || false; + this.inFunction = inFunction || false; + this.inForLoopInit = false; + this.topLevel = true; + this.allLabels = new Stack(); + this.currentLabels = new Stack(); + this.labeledTargets = new Stack(); + this.defaultLoopTarget = null; + this.defaultTarget = null; + this.blackList = blackLists[Narcissus.options.version]; + Narcissus.options.ecma3OnlyMode && (this.ecma3OnlyMode = true); + Narcissus.options.parenFreeMode && (this.parenFreeMode = true); + } + + StaticContext.prototype = { + ecma3OnlyMode: false, + parenFreeMode: false, + // non-destructive update via prototype extension + update: function(ext) { + var desc = {}; + for (var key in ext) { + desc[key] = { + value: ext[key], + writable: true, + enumerable: true, + configurable: true + } + } + return Object.create(this, desc); + }, + pushLabel: function(label) { + return this.update({ currentLabels: this.currentLabels.push(label), + allLabels: this.allLabels.push(label) }); + }, + pushTarget: function(target) { + var isDefaultLoopTarget = target.isLoop; + var isDefaultTarget = isDefaultLoopTarget || target.type === SWITCH; + + if (this.currentLabels.isEmpty()) { + if (isDefaultLoopTarget) this.update({ defaultLoopTarget: target }); + if (isDefaultTarget) this.update({ defaultTarget: target }); + return this; + } + + target.labels = new StringMap(); + this.currentLabels.forEach(function(label) { + target.labels.set(label, true); + }); + return this.update({ currentLabels: new Stack(), + labeledTargets: this.labeledTargets.push(target), + defaultLoopTarget: isDefaultLoopTarget + ? target + : this.defaultLoopTarget, + defaultTarget: isDefaultTarget + ? target + : this.defaultTarget }); + }, + nest: function() { + return this.topLevel ? this.update({ topLevel: false }) : this; + }, + allow: function(type) { + switch (type) { + case EXPORT: + if (!this.inModule || this.inFunction || !this.topLevel) + return false; + // FALL THROUGH + + case IMPORT: + return !this.inFunction && this.topLevel; + + case MODULE: + return !this.inFunction && this.topLevel; + + default: + return true; + } + } + }; + + /* + * Script :: (tokenizer, boolean, boolean) -> node + * + * Parses the toplevel and module/function bodies. + */ + function Script(t, inModule, inFunction) { + var n = new Node(t, scriptInit()); + Statements(t, new StaticContext(n, n, inModule, inFunction), n); + return n; + } + + // We extend Array slightly with a top-of-stack method. + definitions.defineProperty(Array.prototype, "top", + function() { + return this.length && this[this.length-1]; + }, false, false, true); + + /* + * Node :: (tokenizer, optional init object) -> node + */ + function Node(t, init) { + var token = t.token; + if (token) { + // If init.type exists it will override token.type. + this.type = token.type; + this.value = token.value; + this.lineno = token.lineno; + if (token.jsdoc) { + this.jsdoc = token.jsdoc; + delete token.jsdoc; + } + + // Start and end are file positions for error handling. + this.start = token.start; + this.end = token.end; + } else { + this.lineno = t.lineno; + } + + // Node uses a tokenizer for debugging (getSource, filename getter). + this.tokenizer = t; + this.children = []; + + for (var prop in init) + this[prop] = init[prop]; + } + + var Np = Node.prototype = {}; + Np.constructor = Node; + Np.toSource = Object.prototype.toSource; + + // Always use push to add operands to an expression, to update start and end. + Np.push = function (kid) { + // kid can be null e.g. [1, , 2]. + if (kid !== null) { + if (kid.start < this.start) + this.start = kid.start; + if (this.end < kid.end) + this.end = kid.end; + } + return this.children.push(kid); + } + + Node.indentLevel = 0; + + function tokenString(tt) { + var t = definitions.tokens[tt]; + return /^\W/.test(t) ? definitions.opTypeNames[t] : t.toUpperCase(); + } + + Np.toString = function () { + var a = []; + for (var i in this) { + if (this.hasOwnProperty(i) && i !== 'type' && i !== 'target') + a.push({id: i, value: this[i]}); + } + a.sort(function (a,b) { return (a.id < b.id) ? -1 : 1; }); + const INDENTATION = " "; + var n = ++Node.indentLevel; + var s = "{\n" + INDENTATION.repeat(n) + "type: " + tokenString(this.type); + for (i = 0; i < a.length; i++) + s += ",\n" + INDENTATION.repeat(n) + a[i].id + ": " + a[i].value; + n = --Node.indentLevel; + s += "\n" + INDENTATION.repeat(n) + "}"; + return s; + } + + Np.getSource = function () { + return this.tokenizer.source.slice(this.start, this.end); + }; + + /* + * Helper init objects for common nodes. + */ + + const LOOP_INIT = { isLoop: true }; + + function blockInit() { + return { type: BLOCK, varDecls: [] }; + } + + function scriptInit() { + return { type: SCRIPT, + funDecls: [], + varDecls: [], + modDefns: new StringMap(), + modAssns: new StringMap(), + modDecls: new StringMap(), + modLoads: new StringMap(), + impDecls: [], + expDecls: [], + exports: new StringMap(), + hasEmptyReturn: false, + hasReturnWithValue: false, + isGenerator: false }; + } + + definitions.defineGetter(Np, "filename", + function() { + return this.tokenizer.filename; + }); + + definitions.defineGetter(Np, "length", + function() { + throw new Error("Node.prototype.length is gone; " + + "use n.children.length instead"); + }); + + definitions.defineProperty(String.prototype, "repeat", + function(n) { + var s = "", t = this + s; + while (--n >= 0) + s += t; + return s; + }, false, false, true); + + function MaybeLeftParen(t, x) { + if (x.parenFreeMode) + return t.match(LEFT_PAREN) ? LEFT_PAREN : END; + return t.mustMatch(LEFT_PAREN).type; + } + + function MaybeRightParen(t, p) { + if (p === LEFT_PAREN) + t.mustMatch(RIGHT_PAREN); + } + + /* + * Statements :: (tokenizer, compiler context, node) -> void + * + * Parses a sequence of Statements. + */ + function Statements(t, x, n) { + try { + while (!t.done && t.peek(true) !== RIGHT_CURLY) + n.push(Statement(t, x)); + } catch (e) { + if (t.done) + t.unexpectedEOF = true; + throw e; + } + } + + function Block(t, x) { + t.mustMatch(LEFT_CURLY); + var n = new Node(t, blockInit()); + Statements(t, x.update({ parentBlock: n }).pushTarget(n), n); + t.mustMatch(RIGHT_CURLY); + return n; + } + + const DECLARED_FORM = 0, EXPRESSED_FORM = 1, STATEMENT_FORM = 2; + + /* + * Export :: (binding node, boolean) -> Export + * + * Static semantic representation of a module export. + */ + function Export(node, isDefinition) { + this.node = node; // the AST node declaring this individual export + this.isDefinition = isDefinition; // is the node an 'export'-annotated definition? + this.resolved = null; // resolved pointer to the target of this export + } + + /* + * registerExport :: (StringMap, EXPORT node) -> void + */ + function registerExport(exports, decl) { + function register(name, exp) { + if (exports.has(name)) + throw new SyntaxError("multiple exports of " + name); + exports.set(name, exp); + } + + switch (decl.type) { + case MODULE: + case FUNCTION: + register(decl.name, new Export(decl, true)); + break; + + case VAR: + for (var i = 0; i < decl.children.length; i++) + register(decl.children[i].name, new Export(decl.children[i], true)); + break; + + case LET: + case CONST: + throw new Error("NYI: " + definitions.tokens[decl.type]); + + case EXPORT: + for (var i = 0; i < decl.pathList.length; i++) { + var path = decl.pathList[i]; + switch (path.type) { + case OBJECT_INIT: + for (var j = 0; j < path.children.length; j++) { + // init :: IDENTIFIER | PROPERTY_INIT + var init = path.children[j]; + if (init.type === IDENTIFIER) + register(init.value, new Export(init, false)); + else + register(init.children[0].value, new Export(init.children[1], false)); + } + break; + + case DOT: + register(path.children[1].value, new Export(path, false)); + break; + + case IDENTIFIER: + register(path.value, new Export(path, false)); + break; + + default: + throw new Error("unexpected export path: " + definitions.tokens[path.type]); + } + } + break; + + default: + throw new Error("unexpected export decl: " + definitions.tokens[exp.type]); + } + } + + /* + * Module :: (node) -> Module + * + * Static semantic representation of a module. + */ + function Module(node) { + var exports = node.body.exports; + var modDefns = node.body.modDefns; + + var exportedModules = new StringMap(); + + exports.forEach(function(name, exp) { + var node = exp.node; + if (node.type === MODULE) { + exportedModules.set(name, node); + } else if (!exp.isDefinition && node.type === IDENTIFIER && modDefns.has(node.value)) { + var mod = modDefns.get(node.value); + exportedModules.set(name, mod); + } + }); + + this.node = node; + this.exports = exports; + this.exportedModules = exportedModules; + } + + /* + * Statement :: (tokenizer, compiler context) -> node + * + * Parses a Statement. + */ + function Statement(t, x) { + var i, label, n, n2, p, c, ss, tt = t.get(true), tt2, x2, x3; + + if (x.blackList[tt]) + throw t.newSyntaxError(definitions.tokens[tt] + " statements only allowed in Harmony"); + if (!x.allow(tt)) + throw t.newSyntaxError(definitions.tokens[tt] + " statement in illegal context"); + + // Cases for statements ending in a right curly return early, avoiding the + // common semicolon insertion magic after this switch. + switch (tt) { + case IMPORT: + n = new Node(t); + n.pathList = ImportPathList(t, x); + x.parentScript.impDecls.push(n); + break; + + case EXPORT: + switch (t.peek()) { + case MODULE: + case FUNCTION: + case LET: + case VAR: + case CONST: + n = Statement(t, x); + n.exported = true; + x.parentScript.expDecls.push(n); + registerExport(x.parentScript.exports, n); + return n; + + default: + n = new Node(t); + n.pathList = ExportPathList(t, x); + break; + } + x.parentScript.expDecls.push(n); + registerExport(x.parentScript.exports, n); + break; + + case MODULE: + n = new Node(t); + t.mustMatch(IDENTIFIER); + label = t.token.value; + + if (t.match(LEFT_CURLY)) { + n.name = label; + n.body = Script(t, true, false); + n.module = new Module(n); + t.mustMatch(RIGHT_CURLY); + x.parentScript.modDefns.set(n.name, n); + return n; + } + + t.unget(); + ModuleVariables(t, x, n); + return n; + + case FUNCTION: + // DECLARED_FORM extends funDecls of x, STATEMENT_FORM doesn't. + return FunctionDefinition(t, x, true, x.topLevel ? DECLARED_FORM : STATEMENT_FORM); + + case LEFT_CURLY: + n = new Node(t, blockInit()); + Statements(t, x.update({ parentBlock: n }).pushTarget(n).nest(), n); + t.mustMatch(RIGHT_CURLY); + return n; + + case IF: + n = new Node(t); + n.condition = HeadExpression(t, x); + x2 = x.pushTarget(n).nest(); + n.thenPart = Statement(t, x2); + n.elsePart = t.match(ELSE, true) ? Statement(t, x2) : null; + return n; + + case SWITCH: + // This allows CASEs after a DEFAULT, which is in the standard. + n = new Node(t, { cases: [], defaultIndex: -1 }); + n.discriminant = HeadExpression(t, x); + x2 = x.pushTarget(n).nest(); + t.mustMatch(LEFT_CURLY); + while ((tt = t.get()) !== RIGHT_CURLY) { + switch (tt) { + case DEFAULT: + if (n.defaultIndex >= 0) + throw t.newSyntaxError("More than one switch default"); + // FALL THROUGH + case CASE: + n2 = new Node(t); + if (tt === DEFAULT) + n.defaultIndex = n.cases.length; + else + n2.caseLabel = Expression(t, x2, COLON); + break; + + default: + throw t.newSyntaxError("Invalid switch case"); + } + t.mustMatch(COLON); + n2.statements = new Node(t, blockInit()); + while ((tt=t.peek(true)) !== CASE && tt !== DEFAULT && + tt !== RIGHT_CURLY) + n2.statements.push(Statement(t, x2)); + n.cases.push(n2); + } + return n; + + case FOR: + n = new Node(t, LOOP_INIT); + if (t.match(IDENTIFIER)) { + if (t.token.value === "each") + n.isEach = true; + else + t.unget(); + } + if (!x.parenFreeMode) + t.mustMatch(LEFT_PAREN); + x2 = x.pushTarget(n).nest(); + x3 = x.update({ inForLoopInit: true }); + n2 = null; + if ((tt = t.peek(true)) !== SEMICOLON) { + if (tt === VAR || tt === CONST) { + t.get(); + n2 = Variables(t, x3); + } else if (tt === LET) { + t.get(); + if (t.peek() === LEFT_PAREN) { + n2 = LetBlock(t, x3, false); + } else { + // Let in for head, we need to add an implicit block + // around the rest of the for. + x3.parentBlock = n; + n.varDecls = []; + n2 = Variables(t, x3); + } + } else { + n2 = Expression(t, x3); + } + } + if (n2 && t.match(IN)) { + n.type = FOR_IN; + n.object = Expression(t, x3); + if (n2.type === VAR || n2.type === LET) { + c = n2.children; + + // Destructuring turns one decl into multiples, so either + // there must be only one destructuring or only one + // decl. + if (c.length !== 1 && n2.destructurings.length !== 1) { + throw new SyntaxError("Invalid for..in left-hand side", + t.filename, n2.lineno); + } + if (n2.destructurings.length > 0) { + n.iterator = n2.destructurings[0]; + } else { + n.iterator = c[0]; + } + n.varDecl = n2; + } else { + if (n2.type === ARRAY_INIT || n2.type === OBJECT_INIT) { + n2.destructuredNames = checkDestructuring(t, x3, n2); + } + n.iterator = n2; + } + } else { + x3.inForLoopInit = false; + n.setup = n2; + t.mustMatch(SEMICOLON); + if (n.isEach) + throw t.newSyntaxError("Invalid for each..in loop"); + n.condition = (t.peek(true) === SEMICOLON) + ? null + : Expression(t, x3); + t.mustMatch(SEMICOLON); + tt2 = t.peek(true); + n.update = (x.parenFreeMode + ? tt2 === LEFT_CURLY || definitions.isStatementStartCode[tt2] + : tt2 === RIGHT_PAREN) + ? null + : Expression(t, x3); + } + if (!x.parenFreeMode) + t.mustMatch(RIGHT_PAREN); + n.body = Statement(t, x2); + return n; + + case WHILE: + n = new Node(t, { isLoop: true }); + n.condition = HeadExpression(t, x); + n.body = Statement(t, x.pushTarget(n).nest()); + return n; + + case DO: + n = new Node(t, { isLoop: true }); + n.body = Statement(t, x.pushTarget(n).nest()); + t.mustMatch(WHILE); + n.condition = HeadExpression(t, x); + if (!x.ecmaStrictMode) { + // + + + + +

    b ? 1 : 0; + }; + callback(null, _map(results.sort(fn), function (x) { + return x.value; + })); + } + }); + }; + + async.auto = function (tasks, callback) { + callback = callback || function () {}; + var keys = _keys(tasks); + if (!keys.length) { + return callback(null); + } + + var completed = []; + + var listeners = []; + var addListener = function (fn) { + listeners.unshift(fn); + }; + var removeListener = function (fn) { + for (var i = 0; i < listeners.length; i += 1) { + if (listeners[i] === fn) { + listeners.splice(i, 1); + return; + } + } + }; + var taskComplete = function () { + _forEach(listeners, function (fn) { + fn(); + }); + }; + + addListener(function () { + if (completed.length === keys.length) { + callback(null); + } + }); + + _forEach(keys, function (k) { + var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k]; + var taskCallback = function (err) { + if (err) { + callback(err); + // stop subsequent errors hitting callback multiple times + callback = function () {}; + } + else { + completed.push(k); + taskComplete(); + } + }; + var requires = task.slice(0, Math.abs(task.length - 1)) || []; + var ready = function () { + return _reduce(requires, function (a, x) { + return (a && _indexOf(completed, x) !== -1); + }, true); + }; + if (ready()) { + task[task.length - 1](taskCallback); + } + else { + var listener = function () { + if (ready()) { + removeListener(listener); + task[task.length - 1](taskCallback); + } + }; + addListener(listener); + } + }); + }; + + async.waterfall = function (tasks, callback) { + if (!tasks.length) { + return callback(); + } + callback = callback || function () {}; + var wrapIterator = function (iterator) { + return function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + var args = Array.prototype.slice.call(arguments, 1); + var next = iterator.next(); + if (next) { + args.push(wrapIterator(next)); + } + else { + args.push(callback); + } + async.nextTick(function () { + iterator.apply(null, args); + }); + } + }; + }; + wrapIterator(async.iterator(tasks))(); + }; + + async.parallel = function (tasks, callback) { + callback = callback || function () {}; + if (tasks.constructor === Array) { + async.map(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args || null); + }); + } + }, callback); + } + else { + var results = {}; + async.forEach(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.series = function (tasks, callback) { + callback = callback || function () {}; + if (tasks.constructor === Array) { + async.mapSeries(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args || null); + }); + } + }, callback); + } + else { + var results = {}; + async.forEachSeries(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.iterator = function (tasks) { + var makeCallback = function (index) { + var fn = function () { + if (tasks.length) { + tasks[index].apply(null, arguments); + } + return fn.next(); + }; + fn.next = function () { + return (index < tasks.length - 1) ? makeCallback(index + 1): null; + }; + return fn; + }; + return makeCallback(0); + }; + + async.apply = function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + return function () { + return fn.apply( + null, args.concat(Array.prototype.slice.call(arguments)) + ); + }; + }; + + var _concat = function (eachfn, arr, fn, callback) { + var r = []; + eachfn(arr, function (x, cb) { + fn(x, function (err, y) { + r = r.concat(y || []); + cb(err); + }); + }, function (err) { + callback(err, r); + }); + }; + async.concat = doParallel(_concat); + async.concatSeries = doSeries(_concat); + + async.whilst = function (test, iterator, callback) { + if (test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.whilst(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.until = function (test, iterator, callback) { + if (!test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.until(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.queue = function (worker, concurrency) { + var workers = 0; + var tasks = []; + var q = { + concurrency: concurrency, + push: function (data, callback) { + tasks.push({data: data, callback: callback}); + async.nextTick(q.process); + }, + process: function () { + if (workers < q.concurrency && tasks.length) { + var task = tasks.splice(0, 1)[0]; + workers += 1; + worker(task.data, function () { + workers -= 1; + if (task.callback) { + task.callback.apply(task, arguments); + } + q.process(); + }); + } + }, + length: function () { + return tasks.length; + } + }; + return q; + }; + + var _console_fn = function (name) { + return function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + fn.apply(null, args.concat([function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (typeof console !== 'undefined') { + if (err) { + if (console.error) { + console.error(err); + } + } + else if (console[name]) { + _forEach(args, function (x) { + console[name](x); + }); + } + } + }])); + }; + }; + async.log = _console_fn('log'); + async.dir = _console_fn('dir'); + /*async.info = _console_fn('info'); + async.warn = _console_fn('warn'); + async.error = _console_fn('error');*/ + + async.memoize = function (fn, hasher) { + var memo = {}; + hasher = hasher || function (x) { + return x; + }; + return function () { + var args = Array.prototype.slice.call(arguments); + var callback = args.pop(); + var key = hasher.apply(null, args); + if (key in memo) { + callback.apply(null, memo[key]); + } + else { + fn.apply(null, args.concat([function () { + memo[key] = arguments; + callback.apply(null, arguments); + }])); + } + }; + }; + +}()); diff --git a/node_modules/nodeunit/deps/ejs.js b/node_modules/nodeunit/deps/ejs.js new file mode 100644 index 000000000..f6abf29f6 --- /dev/null +++ b/node_modules/nodeunit/deps/ejs.js @@ -0,0 +1,125 @@ + +/*! + * EJS + * Copyright(c) 2010 TJ Holowaychuk + * MIT Licensed + */ + +/** + * Module dependencies. + */ + +var sys = require('sys'); + +/** + * Library version. + */ + +exports.version = '0.0.3'; + +/** + * Intermediate js cache. + * + * @type Object + */ + +var cache = {}; + +/** + * Clear intermediate js cache. + * + * @api public + */ + +exports.clearCache = function(){ + cache = {}; +}; + +/** + * Escape the given string of `html`. + * + * @param {String} html + * @return {String} + * @api private + */ + +function escape(html){ + return String(html) + .replace(/&(?!\w+;)/g, '&') + .replace(//g, '>') + .replace(/"/g, '"'); +} + +/** + * Parse the given `str` of ejs, returning the function body. + * + * @param {String} str + * @return {String} + * @api public + */ + +var parse = exports.parse = function(str){ + return 'var buf = [];\n' + + "with (locals) {\nbuf.push('" + + String(str) + .replace(/[\r\t]/g, " ") + .replace(/\n/g, "\\n") + .split("<%").join("\t") + .replace(/((^|%>)[^\t]*)'/g, "$1\r") + .replace(/\t=(.*?)%>/g, "', escape($1) ,'") + .replace(/\t-(.*?)%>/g, "', $1 ,'") + .split("\t").join("');") + .split("%>").join("buf.push('") + .split("\r").join("\\'") + + "');\n}\nreturn buf.join('');"; +}; + +/** + * Compile the given `str` of ejs into a `Function`. + * + * @param {String} str + * @param {Object} options + * @return {Function} + * @api public + */ + +var compile = exports.compile = function(str, options){ + if (options.debug) sys.puts(parse(str)); + return new Function('locals, escape', parse(str)); +}; + +/** + * Render the given `str` of ejs. + * + * Options: + * + * - `locals` Local variables object + * - `cache` Compiled functions are cached, requires `filename` + * - `filename` Used by `cache` to key caches + * - `context|scope` Function execution context + * - `debug` Output generated function body + * + * @param {String} str + * @param {Object} options + * @return {String} + * @api public + */ + +exports.render = function(str, options){ + var fn, + options = options || {}; + if (options.cache) { + if (options.filename) { + fn = cache[options.filename] = compile(str, options); + } else { + throw new Error('"cache" option requires "filename".'); + } + } else { + fn = compile(str, options); + } + return fn.call( + options.context || options.scope, + options.locals || {}, + escape); +}; \ No newline at end of file diff --git a/node_modules/nodeunit/deps/json2.js b/node_modules/nodeunit/deps/json2.js new file mode 100644 index 000000000..22b44d961 --- /dev/null +++ b/node_modules/nodeunit/deps/json2.js @@ -0,0 +1,483 @@ +/* + http://www.JSON.org/json2.js + 2010-11-17 + + Public Domain. + + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + + See http://www.JSON.org/js.html + + + This code should be minified before deployment. + See http://javascript.crockford.com/jsmin.html + + USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO + NOT CONTROL. + + + This file creates a global JSON object containing two methods: stringify + and parse. + + JSON.stringify(value, replacer, space) + value any JavaScript value, usually an object or array. + + replacer an optional parameter that determines how object + values are stringified for objects. It can be a + function or an array of strings. + + space an optional parameter that specifies the indentation + of nested structures. If it is omitted, the text will + be packed without extra whitespace. If it is a number, + it will specify the number of spaces to indent at each + level. If it is a string (such as '\t' or ' '), + it contains the characters used to indent at each level. + + This method produces a JSON text from a JavaScript value. + + When an object value is found, if the object contains a toJSON + method, its toJSON method will be called and the result will be + stringified. A toJSON method does not serialize: it returns the + value represented by the name/value pair that should be serialized, + or undefined if nothing should be serialized. The toJSON method + will be passed the key associated with the value, and this will be + bound to the value + + For example, this would serialize Dates as ISO strings. + + Date.prototype.toJSON = function (key) { + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + + You can provide an optional replacer method. It will be passed the + key and value of each member, with this bound to the containing + object. The value that is returned from your method will be + serialized. If your method returns undefined, then the member will + be excluded from the serialization. + + If the replacer parameter is an array of strings, then it will be + used to select the members to be serialized. It filters the results + such that only members with keys listed in the replacer array are + stringified. + + Values that do not have JSON representations, such as undefined or + functions, will not be serialized. Such values in objects will be + dropped; in arrays they will be replaced with null. You can use + a replacer function to replace those with JSON values. + JSON.stringify(undefined) returns undefined. + + The optional space parameter produces a stringification of the + value that is filled with line breaks and indentation to make it + easier to read. + + If the space parameter is a non-empty string, then that string will + be used for indentation. If the space parameter is a number, then + the indentation will be that many spaces. + + Example: + + text = JSON.stringify(['e', {pluribus: 'unum'}]); + // text is '["e",{"pluribus":"unum"}]' + + + text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); + // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' + + text = JSON.stringify([new Date()], function (key, value) { + return this[key] instanceof Date ? + 'Date(' + this[key] + ')' : value; + }); + // text is '["Date(---current time---)"]' + + + JSON.parse(text, reviver) + This method parses a JSON text to produce an object or array. + It can throw a SyntaxError exception. + + The optional reviver parameter is a function that can filter and + transform the results. It receives each of the keys and values, + and its return value is used instead of the original value. + If it returns what it received, then the structure is not modified. + If it returns undefined then the member is deleted. + + Example: + + // Parse the text. Values that look like ISO date strings will + // be converted to Date objects. + + myData = JSON.parse(text, function (key, value) { + var a; + if (typeof value === 'string') { + a = +/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); + if (a) { + return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], + +a[5], +a[6])); + } + } + return value; + }); + + myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { + var d; + if (typeof value === 'string' && + value.slice(0, 5) === 'Date(' && + value.slice(-1) === ')') { + d = new Date(value.slice(5, -1)); + if (d) { + return d; + } + } + return value; + }); + + + This is a reference implementation. You are free to copy, modify, or + redistribute. +*/ + +/*jslint evil: true, strict: false, regexp: false */ + +/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, + call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, + getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, + lastIndex, length, parse, prototype, push, replace, slice, stringify, + test, toJSON, toString, valueOf +*/ + + +// Create a JSON object only if one does not already exist. We create the +// methods in a closure to avoid creating global variables. + +if (!this.JSON) { + this.JSON = {}; +} + +(function () { + "use strict"; + + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + if (typeof Date.prototype.toJSON !== 'function') { + + Date.prototype.toJSON = function (key) { + + return isFinite(this.valueOf()) ? + this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z' : null; + }; + + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + + + function quote(string) { + +// If the string contains no control characters, no quote characters, and no +// backslash characters, then we can safely slap some quotes around it. +// Otherwise we must also replace the offending characters with safe escape +// sequences. + + escapable.lastIndex = 0; + return escapable.test(string) ? + '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : + '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : + '"' + string + '"'; + } + + + function str(key, holder) { + +// Produce a string from holder[key]. + + var i, // The loop counter. + k, // The member key. + v, // The member value. + length, + mind = gap, + partial, + value = holder[key]; + +// If the value has a toJSON method, call it to obtain a replacement value. + + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + +// If we were called with a replacer function, then call the replacer to +// obtain a replacement value. + + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + +// What happens next depends on the value's type. + + switch (typeof value) { + case 'string': + return quote(value); + + case 'number': + +// JSON numbers must be finite. Encode non-finite numbers as null. + + return isFinite(value) ? String(value) : 'null'; + + case 'boolean': + case 'null': + +// If the value is a boolean or null, convert it to a string. Note: +// typeof null does not produce 'null'. The case is included here in +// the remote chance that this gets fixed someday. + + return String(value); + +// If the type is 'object', we might be dealing with an object or an array or +// null. + + case 'object': + +// Due to a specification blunder in ECMAScript, typeof null is 'object', +// so watch out for that case. + + if (!value) { + return 'null'; + } + +// Make an array to hold the partial results of stringifying this object value. + + gap += indent; + partial = []; + +// Is the value an array? + + if (Object.prototype.toString.apply(value) === '[object Array]') { + +// The value is an array. Stringify every element. Use null as a placeholder +// for non-JSON values. + + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + +// Join all of the elements together, separated with commas, and wrap them in +// brackets. + + v = partial.length === 0 ? '[]' : + gap ? '[\n' + gap + + partial.join(',\n' + gap) + '\n' + + mind + ']' : + '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + +// If the replacer is an array, use it to select the members to be stringified. + + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + k = rep[i]; + if (typeof k === 'string') { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + +// Otherwise, iterate through all of the keys in the object. + + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + +// Join all of the member texts together, separated with commas, +// and wrap them in braces. + + v = partial.length === 0 ? '{}' : + gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + +// If the JSON object does not yet have a stringify method, give it one. + + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + +// The stringify method takes a value and an optional replacer, and an optional +// space parameter, and returns a JSON text. The replacer can be a function +// that can replace values, or an array of strings that will select the keys. +// A default replacer method can be provided. Use of the space parameter can +// produce text that is more easily readable. + + var i; + gap = ''; + indent = ''; + +// If the space parameter is a number, make an indent string containing that +// many spaces. + + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + +// If the space parameter is a string, it will be used as the indent string. + + } else if (typeof space === 'string') { + indent = space; + } + +// If there is a replacer, it must be a function or an array. +// Otherwise, throw an error. + + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + +// Make a fake root object containing our value under the key of ''. +// Return the result of stringifying the value. + + return str('', {'': value}); + }; + } + + +// If the JSON object does not yet have a parse method, give it one. + + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + +// The parse method takes a text and an optional reviver function, and returns +// a JavaScript value if the text is a valid JSON text. + + var j; + + function walk(holder, key) { + +// The walk method is used to recursively walk the resulting structure so +// that modifications can be made. + + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + + +// Parsing happens in four stages. In the first stage, we replace certain +// Unicode characters with escape sequences. JavaScript handles many characters +// incorrectly, either silently deleting them, or treating them as line endings. + + text = String(text); + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + +// In the second stage, we run the text against regular expressions that look +// for non-JSON patterns. We are especially concerned with '()' and 'new' +// because they can cause invocation, and '=' because it can cause mutation. +// But just to be safe, we want to reject all unexpected forms. + +// We split the second stage into 4 regexp operations in order to work around +// crippling inefficiencies in IE's and Safari's regexp engines. First we +// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we +// replace all simple value tokens with ']' characters. Third, we delete all +// open brackets that follow a colon or comma or that begin the text. Finally, +// we look to see that the remaining characters are only whitespace or ']' or +// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. + + if (/^[\],:{}\s]*$/ +.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') +.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') +.replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + +// In the third stage we use the eval function to compile the text into a +// JavaScript structure. The '{' operator is subject to a syntactic ambiguity +// in JavaScript: it can begin a block or an object literal. We wrap the text +// in parens to eliminate the ambiguity. + + j = eval('(' + text + ')'); + +// In the optional fourth stage, we recursively walk the new structure, passing +// each name/value pair to a reviver function for possible transformation. + + return typeof reviver === 'function' ? + walk({'': j}, '') : j; + } + +// If the text is not JSON parseable, then a SyntaxError is thrown. + + throw new SyntaxError('JSON.parse'); + }; + } +}()); diff --git a/node_modules/nodeunit/doc/nodeunit.md b/node_modules/nodeunit/doc/nodeunit.md new file mode 100644 index 000000000..efde75cde --- /dev/null +++ b/node_modules/nodeunit/doc/nodeunit.md @@ -0,0 +1,60 @@ +nodeunit(1) -- simple node.js unit testing tool +=============================================== + +## SYNOPSIS + + nodeunit [options] [ ...] + +## DESCRIPTION + +Nodeunit is a simple unit testing tool based on the node.js assert module. + +* Simple to use +* Just export the tests from a module +* Helps you avoid common pitfalls when testing asynchronous code +* Easy to add test cases with setUp and tearDown functions if you wish +* Allows the use of mocks and stubs + +## OPTIONS + + __--config FILE__: + Load config options from a JSON file, allows the customisation + of color schemes for the default test reporter etc. + See bin/nodeunit.json for current available options. + + __--reporter FILE__: + You can set the test reporter to a custom module or on of the modules + in nodeunit/lib/reporters, when omitted, the default test runner is used. + + __--list-reporters__: + List available build-in reporters. + + __-h__, __--help__: + Display the help and exit. + + __-v__, __--version__: + Output version information and exit. + + ____: + You can run nodeunit on specific files or on all *\*.js* files inside + a directory. + +## AUTHORS + +Written by Caolan McMahon and other nodeunit contributors. +Contributors list: . + +## REPORTING BUGS + +Report nodeunit bugs to . + +## COPYRIGHT + +Copyright © 2010 Caolan McMahon. +Nodeunit has been released under the MIT license: +. + +## SEE ALSO + +node(1) + diff --git a/node_modules/nodeunit/examples/browser/nodeunit.js b/node_modules/nodeunit/examples/browser/nodeunit.js new file mode 100644 index 000000000..8c12b0f88 --- /dev/null +++ b/node_modules/nodeunit/examples/browser/nodeunit.js @@ -0,0 +1,1757 @@ +/*! + * Nodeunit + * https://github.com/caolan/nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + * + * json2.js + * http://www.JSON.org/json2.js + * Public Domain. + * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + */ +nodeunit = (function(){ +/* + http://www.JSON.org/json2.js + 2010-11-17 + + Public Domain. + + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + + See http://www.JSON.org/js.html + + + This code should be minified before deployment. + See http://javascript.crockford.com/jsmin.html + + USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO + NOT CONTROL. + + + This file creates a global JSON object containing two methods: stringify + and parse. + + JSON.stringify(value, replacer, space) + value any JavaScript value, usually an object or array. + + replacer an optional parameter that determines how object + values are stringified for objects. It can be a + function or an array of strings. + + space an optional parameter that specifies the indentation + of nested structures. If it is omitted, the text will + be packed without extra whitespace. If it is a number, + it will specify the number of spaces to indent at each + level. If it is a string (such as '\t' or ' '), + it contains the characters used to indent at each level. + + This method produces a JSON text from a JavaScript value. + + When an object value is found, if the object contains a toJSON + method, its toJSON method will be called and the result will be + stringified. A toJSON method does not serialize: it returns the + value represented by the name/value pair that should be serialized, + or undefined if nothing should be serialized. The toJSON method + will be passed the key associated with the value, and this will be + bound to the value + + For example, this would serialize Dates as ISO strings. + + Date.prototype.toJSON = function (key) { + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + + You can provide an optional replacer method. It will be passed the + key and value of each member, with this bound to the containing + object. The value that is returned from your method will be + serialized. If your method returns undefined, then the member will + be excluded from the serialization. + + If the replacer parameter is an array of strings, then it will be + used to select the members to be serialized. It filters the results + such that only members with keys listed in the replacer array are + stringified. + + Values that do not have JSON representations, such as undefined or + functions, will not be serialized. Such values in objects will be + dropped; in arrays they will be replaced with null. You can use + a replacer function to replace those with JSON values. + JSON.stringify(undefined) returns undefined. + + The optional space parameter produces a stringification of the + value that is filled with line breaks and indentation to make it + easier to read. + + If the space parameter is a non-empty string, then that string will + be used for indentation. If the space parameter is a number, then + the indentation will be that many spaces. + + Example: + + text = JSON.stringify(['e', {pluribus: 'unum'}]); + // text is '["e",{"pluribus":"unum"}]' + + + text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); + // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' + + text = JSON.stringify([new Date()], function (key, value) { + return this[key] instanceof Date ? + 'Date(' + this[key] + ')' : value; + }); + // text is '["Date(---current time---)"]' + + + JSON.parse(text, reviver) + This method parses a JSON text to produce an object or array. + It can throw a SyntaxError exception. + + The optional reviver parameter is a function that can filter and + transform the results. It receives each of the keys and values, + and its return value is used instead of the original value. + If it returns what it received, then the structure is not modified. + If it returns undefined then the member is deleted. + + Example: + + // Parse the text. Values that look like ISO date strings will + // be converted to Date objects. + + myData = JSON.parse(text, function (key, value) { + var a; + if (typeof value === 'string') { + a = +/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); + if (a) { + return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], + +a[5], +a[6])); + } + } + return value; + }); + + myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { + var d; + if (typeof value === 'string' && + value.slice(0, 5) === 'Date(' && + value.slice(-1) === ')') { + d = new Date(value.slice(5, -1)); + if (d) { + return d; + } + } + return value; + }); + + + This is a reference implementation. You are free to copy, modify, or + redistribute. +*/ + +/*jslint evil: true, strict: false, regexp: false */ + +/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, + call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, + getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, + lastIndex, length, parse, prototype, push, replace, slice, stringify, + test, toJSON, toString, valueOf +*/ + + +// Create a JSON object only if one does not already exist. We create the +// methods in a closure to avoid creating global variables. + +if (!this.JSON) { + this.JSON = {}; +} + +(function () { + "use strict"; + + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + if (typeof Date.prototype.toJSON !== 'function') { + + Date.prototype.toJSON = function (key) { + + return isFinite(this.valueOf()) ? + this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z' : null; + }; + + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + + + function quote(string) { + +// If the string contains no control characters, no quote characters, and no +// backslash characters, then we can safely slap some quotes around it. +// Otherwise we must also replace the offending characters with safe escape +// sequences. + + escapable.lastIndex = 0; + return escapable.test(string) ? + '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : + '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : + '"' + string + '"'; + } + + + function str(key, holder) { + +// Produce a string from holder[key]. + + var i, // The loop counter. + k, // The member key. + v, // The member value. + length, + mind = gap, + partial, + value = holder[key]; + +// If the value has a toJSON method, call it to obtain a replacement value. + + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + +// If we were called with a replacer function, then call the replacer to +// obtain a replacement value. + + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + +// What happens next depends on the value's type. + + switch (typeof value) { + case 'string': + return quote(value); + + case 'number': + +// JSON numbers must be finite. Encode non-finite numbers as null. + + return isFinite(value) ? String(value) : 'null'; + + case 'boolean': + case 'null': + +// If the value is a boolean or null, convert it to a string. Note: +// typeof null does not produce 'null'. The case is included here in +// the remote chance that this gets fixed someday. + + return String(value); + +// If the type is 'object', we might be dealing with an object or an array or +// null. + + case 'object': + +// Due to a specification blunder in ECMAScript, typeof null is 'object', +// so watch out for that case. + + if (!value) { + return 'null'; + } + +// Make an array to hold the partial results of stringifying this object value. + + gap += indent; + partial = []; + +// Is the value an array? + + if (Object.prototype.toString.apply(value) === '[object Array]') { + +// The value is an array. Stringify every element. Use null as a placeholder +// for non-JSON values. + + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + +// Join all of the elements together, separated with commas, and wrap them in +// brackets. + + v = partial.length === 0 ? '[]' : + gap ? '[\n' + gap + + partial.join(',\n' + gap) + '\n' + + mind + ']' : + '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + +// If the replacer is an array, use it to select the members to be stringified. + + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + k = rep[i]; + if (typeof k === 'string') { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + +// Otherwise, iterate through all of the keys in the object. + + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + +// Join all of the member texts together, separated with commas, +// and wrap them in braces. + + v = partial.length === 0 ? '{}' : + gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + +// If the JSON object does not yet have a stringify method, give it one. + + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + +// The stringify method takes a value and an optional replacer, and an optional +// space parameter, and returns a JSON text. The replacer can be a function +// that can replace values, or an array of strings that will select the keys. +// A default replacer method can be provided. Use of the space parameter can +// produce text that is more easily readable. + + var i; + gap = ''; + indent = ''; + +// If the space parameter is a number, make an indent string containing that +// many spaces. + + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + +// If the space parameter is a string, it will be used as the indent string. + + } else if (typeof space === 'string') { + indent = space; + } + +// If there is a replacer, it must be a function or an array. +// Otherwise, throw an error. + + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + +// Make a fake root object containing our value under the key of ''. +// Return the result of stringifying the value. + + return str('', {'': value}); + }; + } + + +// If the JSON object does not yet have a parse method, give it one. + + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + +// The parse method takes a text and an optional reviver function, and returns +// a JavaScript value if the text is a valid JSON text. + + var j; + + function walk(holder, key) { + +// The walk method is used to recursively walk the resulting structure so +// that modifications can be made. + + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + + +// Parsing happens in four stages. In the first stage, we replace certain +// Unicode characters with escape sequences. JavaScript handles many characters +// incorrectly, either silently deleting them, or treating them as line endings. + + text = String(text); + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + +// In the second stage, we run the text against regular expressions that look +// for non-JSON patterns. We are especially concerned with '()' and 'new' +// because they can cause invocation, and '=' because it can cause mutation. +// But just to be safe, we want to reject all unexpected forms. + +// We split the second stage into 4 regexp operations in order to work around +// crippling inefficiencies in IE's and Safari's regexp engines. First we +// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we +// replace all simple value tokens with ']' characters. Third, we delete all +// open brackets that follow a colon or comma or that begin the text. Finally, +// we look to see that the remaining characters are only whitespace or ']' or +// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. + + if (/^[\],:{}\s]*$/ +.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') +.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') +.replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + +// In the third stage we use the eval function to compile the text into a +// JavaScript structure. The '{' operator is subject to a syntactic ambiguity +// in JavaScript: it can begin a block or an object literal. We wrap the text +// in parens to eliminate the ambiguity. + + j = eval('(' + text + ')'); + +// In the optional fourth stage, we recursively walk the new structure, passing +// each name/value pair to a reviver function for possible transformation. + + return typeof reviver === 'function' ? + walk({'': j}, '') : j; + } + +// If the text is not JSON parseable, then a SyntaxError is thrown. + + throw new SyntaxError('JSON.parse'); + }; + } +}()); +var assert = {}; +var types = {}; +var core = {}; +var nodeunit = {}; +var reporter = {}; +(function(){ + + var async = {}; + + // global on the server, window in the browser + var root = this; + var previous_async = root.async; + + if(typeof module !== 'undefined' && module.exports) module.exports = async; + else root.async = async; + + async.noConflict = function(){ + root.async = previous_async; + return async; + }; + + //// cross-browser compatiblity functions //// + + var _forEach = function(arr, iterator){ + if(arr.forEach) return arr.forEach(iterator); + for(var i=0; i b ? 1 : 0; + }), function(x){return x.value;})); + }) + }; + + async.auto = function(tasks, callback){ + callback = callback || function(){}; + var keys = _keys(tasks); + if(!keys.length) return callback(null); + + var completed = []; + + var listeners = []; + var addListener = function(fn){ + listeners.unshift(fn); + }; + var removeListener = function(fn){ + for(var i=0; i +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the 'Software'), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +var pSlice = Array.prototype.slice; + +// 1. The assert module provides functions that throw +// AssertionError's when particular conditions are not met. The +// assert module must conform to the following interface. + +var assert = exports; + +// 2. The AssertionError is defined in assert. +// new assert.AssertionError({message: message, actual: actual, expected: expected}) + +assert.AssertionError = function AssertionError (options) { + this.name = "AssertionError"; + this.message = options.message; + this.actual = options.actual; + this.expected = options.expected; + this.operator = options.operator; + var stackStartFunction = options.stackStartFunction || fail; + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, stackStartFunction); + } +}; +// code from util.inherits in node +assert.AssertionError.super_ = Error; + + +// EDITED FOR BROWSER COMPATIBILITY: replaced Object.create call +// TODO: test what effect this may have +var ctor = function () { this.constructor = assert.AssertionError; }; +ctor.prototype = Error.prototype; +assert.AssertionError.prototype = new ctor(); + + +assert.AssertionError.prototype.toString = function() { + if (this.message) { + return [this.name+":", this.message].join(' '); + } else { + return [ this.name+":" + , JSON.stringify(this.expected ) + , this.operator + , JSON.stringify(this.actual) + ].join(" "); + } +}; + +// assert.AssertionError instanceof Error + +assert.AssertionError.__proto__ = Error.prototype; + +// At present only the three keys mentioned above are used and +// understood by the spec. Implementations or sub modules can pass +// other keys to the AssertionError's constructor - they will be +// ignored. + +// 3. All of the following functions must throw an AssertionError +// when a corresponding condition is not met, with a message that +// may be undefined if not provided. All assertion methods provide +// both the actual and expected values to the assertion error for +// display purposes. + +function fail(actual, expected, message, operator, stackStartFunction) { + throw new assert.AssertionError({ + message: message, + actual: actual, + expected: expected, + operator: operator, + stackStartFunction: stackStartFunction + }); +} + +// EXTENSION! allows for well behaved errors defined elsewhere. +assert.fail = fail; + +// 4. Pure assertion tests whether a value is truthy, as determined +// by !!guard. +// assert.ok(guard, message_opt); +// This statement is equivalent to assert.equal(true, guard, +// message_opt);. To test strictly for the value true, use +// assert.strictEqual(true, guard, message_opt);. + +assert.ok = function ok(value, message) { + if (!!!value) fail(value, true, message, "==", assert.ok); +}; + +// 5. The equality assertion tests shallow, coercive equality with +// ==. +// assert.equal(actual, expected, message_opt); + +assert.equal = function equal(actual, expected, message) { + if (actual != expected) fail(actual, expected, message, "==", assert.equal); +}; + +// 6. The non-equality assertion tests for whether two objects are not equal +// with != assert.notEqual(actual, expected, message_opt); + +assert.notEqual = function notEqual(actual, expected, message) { + if (actual == expected) { + fail(actual, expected, message, "!=", assert.notEqual); + } +}; + +// 7. The equivalence assertion tests a deep equality relation. +// assert.deepEqual(actual, expected, message_opt); + +assert.deepEqual = function deepEqual(actual, expected, message) { + if (!_deepEqual(actual, expected)) { + fail(actual, expected, message, "deepEqual", assert.deepEqual); + } +}; + +function _deepEqual(actual, expected) { + // 7.1. All identical values are equivalent, as determined by ===. + if (actual === expected) { + return true; + + } else if (Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) { + if (actual.length != expected.length) return false; + + for (var i = 0; i < actual.length; i++) { + if (actual[i] !== expected[i]) return false; + } + + return true; + + // 7.2. If the expected value is a Date object, the actual value is + // equivalent if it is also a Date object that refers to the same time. + } else if (actual instanceof Date && expected instanceof Date) { + return actual.getTime() === expected.getTime(); + + // 7.3. Other pairs that do not both pass typeof value == "object", + // equivalence is determined by ==. + } else if (typeof actual != 'object' && typeof expected != 'object') { + return actual == expected; + + // 7.4. For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical "prototype" property. Note: this + // accounts for both named and indexed properties on Arrays. + } else { + return objEquiv(actual, expected); + } +} + +function isUndefinedOrNull (value) { + return value === null || value === undefined; +} + +function isArguments (object) { + return Object.prototype.toString.call(object) == '[object Arguments]'; +} + +function objEquiv (a, b) { + if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) + return false; + // an identical "prototype" property. + if (a.prototype !== b.prototype) return false; + //~~~I've managed to break Object.keys through screwy arguments passing. + // Converting to array solves the problem. + if (isArguments(a)) { + if (!isArguments(b)) { + return false; + } + a = pSlice.call(a); + b = pSlice.call(b); + return _deepEqual(a, b); + } + try{ + var ka = _keys(a), + kb = _keys(b), + key, i; + } catch (e) {//happens when one is a string literal and the other isn't + return false; + } + // having the same number of owned properties (keys incorporates hasOwnProperty) + if (ka.length != kb.length) + return false; + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) + return false; + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!_deepEqual(a[key], b[key] )) + return false; + } + return true; +} + +// 8. The non-equivalence assertion tests for any deep inequality. +// assert.notDeepEqual(actual, expected, message_opt); + +assert.notDeepEqual = function notDeepEqual(actual, expected, message) { + if (_deepEqual(actual, expected)) { + fail(actual, expected, message, "notDeepEqual", assert.notDeepEqual); + } +}; + +// 9. The strict equality assertion tests strict equality, as determined by ===. +// assert.strictEqual(actual, expected, message_opt); + +assert.strictEqual = function strictEqual(actual, expected, message) { + if (actual !== expected) { + fail(actual, expected, message, "===", assert.strictEqual); + } +}; + +// 10. The strict non-equality assertion tests for strict inequality, as determined by !==. +// assert.notStrictEqual(actual, expected, message_opt); + +assert.notStrictEqual = function notStrictEqual(actual, expected, message) { + if (actual === expected) { + fail(actual, expected, message, "!==", assert.notStrictEqual); + } +}; + +function _throws (shouldThrow, block, err, message) { + var exception = null, + threw = false, + typematters = true; + + message = message || ""; + + //handle optional arguments + if (arguments.length == 3) { + if (typeof(err) == "string") { + message = err; + typematters = false; + } + } else if (arguments.length == 2) { + typematters = false; + } + + try { + block(); + } catch (e) { + threw = true; + exception = e; + } + + if (shouldThrow && !threw) { + fail( "Missing expected exception" + + (err && err.name ? " ("+err.name+")." : '.') + + (message ? " " + message : "") + ); + } + if (!shouldThrow && threw && typematters && exception instanceof err) { + fail( "Got unwanted exception" + + (err && err.name ? " ("+err.name+")." : '.') + + (message ? " " + message : "") + ); + } + if ((shouldThrow && threw && typematters && !(exception instanceof err)) || + (!shouldThrow && threw)) { + throw exception; + } +}; + +// 11. Expected to throw an error: +// assert.throws(block, Error_opt, message_opt); + +assert.throws = function(block, /*optional*/error, /*optional*/message) { + _throws.apply(this, [true].concat(pSlice.call(arguments))); +}; + +// EXTENSION! This is annoying to write outside this module. +assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) { + _throws.apply(this, [false].concat(pSlice.call(arguments))); +}; + +assert.ifError = function (err) { if (err) {throw err;}}; +})(assert); +(function(exports){ +/*! + * Nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + * + * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS! + * Only code on that line will be removed, its mostly to avoid requiring code + * that is node specific + */ + +/** + * Module dependencies + */ + + + +/** + * Creates assertion objects representing the result of an assert call. + * Accepts an object or AssertionError as its argument. + * + * @param {object} obj + * @api public + */ + +exports.assertion = function (obj) { + return { + method: obj.method || '', + message: obj.message || (obj.error && obj.error.message) || '', + error: obj.error, + passed: function () { + return !this.error; + }, + failed: function () { + return Boolean(this.error); + } + }; +}; + +/** + * Creates an assertion list object representing a group of assertions. + * Accepts an array of assertion objects. + * + * @param {Array} arr + * @param {Number} duration + * @api public + */ + +exports.assertionList = function (arr, duration) { + var that = arr || []; + that.failures = function () { + var failures = 0; + for (var i=0; i'; +}; + + +/** + * Run all tests within each module, reporting the results + * + * @param {Array} files + * @api public + */ + +exports.run = function (modules, options) { + var start = new Date().getTime(); + exports.addStyles(); + + var html = ''; + nodeunit.runModules(modules, { + moduleStart: function (name) { + html += '

    ' + name + '

    '; + html += '
      '; + }, + testDone: function (name, assertions) { + if (!assertions.failures()) { + html += '
    1. ' + name + '
    2. '; + } + else { + html += '
    3. ' + name; + for (var i=0; i'; + } + html += '
      ';
      +                        html += a.error.stack || a.error;
      +                        html += '
      '; + } + }; + html += '
    4. '; + } + }, + moduleDone: function () { + html += '
    '; + }, + done: function (assertions) { + var end = new Date().getTime(); + var duration = end - start; + if (assertions.failures()) { + html += '

    FAILURES: ' + assertions.failures() + + '/' + assertions.length + ' assertions failed (' + + assertions.duration + 'ms)

    '; + } + else { + html += '

    OK: ' + assertions.length + + ' assertions (' + assertions.duration + 'ms)

    '; + } + document.body.innerHTML += html; + } + }); +}; +})(reporter); +nodeunit = core; +nodeunit.assert = assert; +nodeunit.reporter = reporter; +nodeunit.run = reporter.run; +return nodeunit; })(); diff --git a/node_modules/nodeunit/examples/browser/suite1.js b/node_modules/nodeunit/examples/browser/suite1.js new file mode 100644 index 000000000..0d5fc90ee --- /dev/null +++ b/node_modules/nodeunit/examples/browser/suite1.js @@ -0,0 +1,12 @@ +this.suite1 = { + 'test one': function (test) { + test.ok(true, 'everythings ok'); + setTimeout(function () { + test.done(); + }, 10); + }, + 'apples and oranges': function (test) { + test.equal('apples', 'oranges', 'comparing apples and oranges'); + test.done(); + } +}; diff --git a/node_modules/nodeunit/examples/browser/suite2.js b/node_modules/nodeunit/examples/browser/suite2.js new file mode 100644 index 000000000..c7288e8d8 --- /dev/null +++ b/node_modules/nodeunit/examples/browser/suite2.js @@ -0,0 +1,13 @@ +this.suite2 = { + 'another test': function (test) { + setTimeout(function () { + // lots of assertions + test.ok(true, 'everythings ok'); + test.ok(true, 'everythings ok'); + test.ok(true, 'everythings ok'); + test.ok(true, 'everythings ok'); + test.ok(true, 'everythings ok'); + test.done(); + }, 10); + } +}; diff --git a/node_modules/nodeunit/examples/browser/test.html b/node_modules/nodeunit/examples/browser/test.html new file mode 100644 index 000000000..e9f8180f8 --- /dev/null +++ b/node_modules/nodeunit/examples/browser/test.html @@ -0,0 +1,16 @@ + + + Example tests + + + + + + + + diff --git a/node_modules/nodeunit/img/example_fail.png b/node_modules/nodeunit/img/example_fail.png new file mode 100644 index 0000000000000000000000000000000000000000..78ff4258cd574420da27fcf38b4711d02db58a92 GIT binary patch literal 38642 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 literal 0 HcmV?d00001 diff --git a/node_modules/nodeunit/img/example_pass.png b/node_modules/nodeunit/img/example_pass.png new file mode 100644 index 0000000000000000000000000000000000000000..069d71698cd7cf33e3269ad0f17066774eb4bb7b GIT binary patch literal 14133 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 +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the 'Software'), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +var pSlice = Array.prototype.slice; + +// 1. The assert module provides functions that throw +// AssertionError's when particular conditions are not met. The +// assert module must conform to the following interface. + +var assert = exports; + +// 2. The AssertionError is defined in assert. +// new assert.AssertionError({message: message, actual: actual, expected: expected}) + +assert.AssertionError = function AssertionError (options) { + this.name = "AssertionError"; + this.message = options.message; + this.actual = options.actual; + this.expected = options.expected; + this.operator = options.operator; + var stackStartFunction = options.stackStartFunction || fail; + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, stackStartFunction); + } +}; +// code from util.inherits in node +assert.AssertionError.super_ = Error; + + +// EDITED FOR BROWSER COMPATIBILITY: replaced Object.create call +// TODO: test what effect this may have +var ctor = function () { this.constructor = assert.AssertionError; }; +ctor.prototype = Error.prototype; +assert.AssertionError.prototype = new ctor(); + + +assert.AssertionError.prototype.toString = function() { + if (this.message) { + return [this.name+":", this.message].join(' '); + } else { + return [ this.name+":" + , JSON.stringify(this.expected ) + , this.operator + , JSON.stringify(this.actual) + ].join(" "); + } +}; + +// assert.AssertionError instanceof Error + +assert.AssertionError.__proto__ = Error.prototype; + +// At present only the three keys mentioned above are used and +// understood by the spec. Implementations or sub modules can pass +// other keys to the AssertionError's constructor - they will be +// ignored. + +// 3. All of the following functions must throw an AssertionError +// when a corresponding condition is not met, with a message that +// may be undefined if not provided. All assertion methods provide +// both the actual and expected values to the assertion error for +// display purposes. + +function fail(actual, expected, message, operator, stackStartFunction) { + throw new assert.AssertionError({ + message: message, + actual: actual, + expected: expected, + operator: operator, + stackStartFunction: stackStartFunction + }); +} + +// EXTENSION! allows for well behaved errors defined elsewhere. +assert.fail = fail; + +// 4. Pure assertion tests whether a value is truthy, as determined +// by !!guard. +// assert.ok(guard, message_opt); +// This statement is equivalent to assert.equal(true, guard, +// message_opt);. To test strictly for the value true, use +// assert.strictEqual(true, guard, message_opt);. + +assert.ok = function ok(value, message) { + if (!!!value) fail(value, true, message, "==", assert.ok); +}; + +// 5. The equality assertion tests shallow, coercive equality with +// ==. +// assert.equal(actual, expected, message_opt); + +assert.equal = function equal(actual, expected, message) { + if (actual != expected) fail(actual, expected, message, "==", assert.equal); +}; + +// 6. The non-equality assertion tests for whether two objects are not equal +// with != assert.notEqual(actual, expected, message_opt); + +assert.notEqual = function notEqual(actual, expected, message) { + if (actual == expected) { + fail(actual, expected, message, "!=", assert.notEqual); + } +}; + +// 7. The equivalence assertion tests a deep equality relation. +// assert.deepEqual(actual, expected, message_opt); + +assert.deepEqual = function deepEqual(actual, expected, message) { + if (!_deepEqual(actual, expected)) { + fail(actual, expected, message, "deepEqual", assert.deepEqual); + } +}; + +function _deepEqual(actual, expected) { + // 7.1. All identical values are equivalent, as determined by ===. + if (actual === expected) { + return true; + // 7.2. If the expected value is a Date object, the actual value is + // equivalent if it is also a Date object that refers to the same time. + } else if (actual instanceof Date && expected instanceof Date) { + return actual.getTime() === expected.getTime(); + + // 7.3. Other pairs that do not both pass typeof value == "object", + // equivalence is determined by ==. + } else if (typeof actual != 'object' && typeof expected != 'object') { + return actual == expected; + + // 7.4. For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical "prototype" property. Note: this + // accounts for both named and indexed properties on Arrays. + } else { + return objEquiv(actual, expected); + } +} + +function isUndefinedOrNull (value) { + return value === null || value === undefined; +} + +function isArguments (object) { + return Object.prototype.toString.call(object) == '[object Arguments]'; +} + +function objEquiv (a, b) { + if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) + return false; + // an identical "prototype" property. + if (a.prototype !== b.prototype) return false; + //~~~I've managed to break Object.keys through screwy arguments passing. + // Converting to array solves the problem. + if (isArguments(a)) { + if (!isArguments(b)) { + return false; + } + a = pSlice.call(a); + b = pSlice.call(b); + return _deepEqual(a, b); + } + try{ + var ka = _keys(a), + kb = _keys(b), + key, i; + } catch (e) {//happens when one is a string literal and the other isn't + return false; + } + // having the same number of owned properties (keys incorporates hasOwnProperty) + if (ka.length != kb.length) + return false; + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) + return false; + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!_deepEqual(a[key], b[key] )) + return false; + } + return true; +} + +// 8. The non-equivalence assertion tests for any deep inequality. +// assert.notDeepEqual(actual, expected, message_opt); + +assert.notDeepEqual = function notDeepEqual(actual, expected, message) { + if (_deepEqual(actual, expected)) { + fail(actual, expected, message, "notDeepEqual", assert.notDeepEqual); + } +}; + +// 9. The strict equality assertion tests strict equality, as determined by ===. +// assert.strictEqual(actual, expected, message_opt); + +assert.strictEqual = function strictEqual(actual, expected, message) { + if (actual !== expected) { + fail(actual, expected, message, "===", assert.strictEqual); + } +}; + +// 10. The strict non-equality assertion tests for strict inequality, as determined by !==. +// assert.notStrictEqual(actual, expected, message_opt); + +assert.notStrictEqual = function notStrictEqual(actual, expected, message) { + if (actual === expected) { + fail(actual, expected, message, "!==", assert.notStrictEqual); + } +}; + +function _throws (shouldThrow, block, err, message) { + var exception = null, + threw = false, + typematters = true; + + message = message || ""; + + //handle optional arguments + if (arguments.length == 3) { + if (typeof(err) == "string") { + message = err; + typematters = false; + } + } else if (arguments.length == 2) { + typematters = false; + } + + try { + block(); + } catch (e) { + threw = true; + exception = e; + } + + if (shouldThrow && !threw) { + fail( "Missing expected exception" + + (err && err.name ? " ("+err.name+")." : '.') + + (message ? " " + message : "") + ); + } + if (!shouldThrow && threw && typematters && exception instanceof err) { + fail( "Got unwanted exception" + + (err && err.name ? " ("+err.name+")." : '.') + + (message ? " " + message : "") + ); + } + if ((shouldThrow && threw && typematters && !(exception instanceof err)) || + (!shouldThrow && threw)) { + throw exception; + } +}; + +// 11. Expected to throw an error: +// assert.throws(block, Error_opt, message_opt); + +assert['throws'] = function(block, /*optional*/error, /*optional*/message) { + _throws.apply(this, [true].concat(pSlice.call(arguments))); +}; + +// EXTENSION! This is annoying to write outside this module. +assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) { + _throws.apply(this, [false].concat(pSlice.call(arguments))); +}; + +assert.ifError = function (err) { if (err) {throw err;}}; diff --git a/node_modules/nodeunit/lib/core.js b/node_modules/nodeunit/lib/core.js new file mode 100644 index 000000000..981d7c63b --- /dev/null +++ b/node_modules/nodeunit/lib/core.js @@ -0,0 +1,236 @@ +/*! + * Nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + * + * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS! + * You can use @REMOVE_LINE_FOR_BROWSER to remove code from the browser build. + * Only code on that line will be removed, its mostly to avoid requiring code + * that is node specific + */ + +/** + * Module dependencies + */ + +var async = require('../deps/async'), //@REMOVE_LINE_FOR_BROWSER + types = require('./types'); //@REMOVE_LINE_FOR_BROWSER + + +/** + * Added for browser compatibility + */ + +var _keys = function(obj){ + if(Object.keys) return Object.keys(obj); + var keys = []; + for(var k in obj){ + if(obj.hasOwnProperty(k)) keys.push(k); + } + return keys; +}; + + +/** + * Runs a test function (fn) from a loaded module. After the test function + * calls test.done(), the callback is executed with an assertionList as its + * second argument. + * + * @param {String} name + * @param {Function} fn + * @param {Object} opt + * @param {Function} callback + * @api public + */ + +exports.runTest = function (name, fn, opt, callback) { + var options = types.options(opt); + + options.testStart(name); + var start = new Date().getTime(); + var test = types.test(name, start, options, callback); + + try { + fn(test); + } + catch (e) { + test.done(e); + } +}; + +/** + * Takes an object containing test functions or other test suites as properties + * and runs each in series. After all tests have completed, the callback is + * called with a list of all assertions as the second argument. + * + * If a name is passed to this function it is prepended to all test and suite + * names that run within it. + * + * @param {String} name + * @param {Object} suite + * @param {Object} opt + * @param {Function} callback + * @api public + */ + +exports.runSuite = function (name, suite, opt, callback) { + var keys = _keys(suite); + + async.concatSeries(keys, function (k, cb) { + var prop = suite[k], _name; + + _name = name ? [].concat(name, k) : [k]; + + _name.toString = function () { + // fallback for old one + return this.join(' - '); + }; + + if (typeof prop === 'function') { + exports.runTest(_name, suite[k], opt, cb); + } + else { + exports.runSuite(_name, suite[k], opt, cb); + } + }, callback); +}; + +/** + * Run each exported test function or test suite from a loaded module. + * + * @param {String} name + * @param {Object} mod + * @param {Object} opt + * @param {Function} callback + * @api public + */ + +exports.runModule = function (name, mod, opt, callback) { + var options = types.options(opt); + + options.moduleStart(name); + var start = new Date().getTime(); + + exports.runSuite(null, mod, opt, function (err, a_list) { + var end = new Date().getTime(); + var assertion_list = types.assertionList(a_list, end - start); + options.moduleDone(name, assertion_list); + callback(null, a_list); + }); +}; + +/** + * Treats an object literal as a list of modules keyed by name. Runs each + * module and finished with calling 'done'. You can think of this as a browser + * safe alternative to runFiles in the nodeunit module. + * + * @param {Object} modules + * @param {Object} opt + * @api public + */ + +// TODO: add proper unit tests for this function +exports.runModules = function (modules, opt) { + var all_assertions = []; + var options = types.options(opt); + var start = new Date().getTime(); + + async.concatSeries(_keys(modules), function (k, cb) { + exports.runModule(k, modules[k], options, cb); + }, + function (err, all_assertions) { + var end = new Date().getTime(); + options.done(types.assertionList(all_assertions, end - start)); + }); +}; + + +/** + * Wraps a test function with setUp and tearDown functions. + * Used by testCase. + * + * @param {Function} setUp + * @param {Function} tearDown + * @param {Function} fn + * @api private + */ + +var wrapTest = function (setUp, tearDown, fn) { + return function (test) { + var context = {}; + if (tearDown) { + var done = test.done; + test.done = function (err) { + try { + tearDown.call(context, function (err2) { + if (err && err2) { + test._assertion_list.push( + types.assertion({error: err}) + ); + return done(err2); + } + done(err || err2); + }); + } + catch (e) { + done(e); + } + }; + } + if (setUp) { + setUp.call(context, function (err) { + if (err) { + return test.done(err); + } + fn.call(context, test); + }); + } + else { + fn.call(context, test); + } + } +}; + + +/** + * Wraps a group of tests with setUp and tearDown functions. + * Used by testCase. + * + * @param {Function} setUp + * @param {Function} tearDown + * @param {Object} group + * @api private + */ + +var wrapGroup = function (setUp, tearDown, group) { + var tests = {}; + var keys = _keys(group); + for (var i=0; i(' + + '' + assertions.failures() + ', ' + + '' + assertions.passes() + ', ' + + assertions.length + + ')'; + test.className = assertions.failures() ? 'fail': 'pass'; + test.appendChild(strong); + + var aList = document.createElement('ol'); + aList.style.display = 'none'; + test.onclick = function () { + var d = aList.style.display; + aList.style.display = (d == 'none') ? 'block': 'none'; + }; + for (var i=0; i' + (a.error.stack || a.error) + '

    '; + li.className = 'fail'; + } + else { + li.innerHTML = a.message || a.method || 'no message'; + li.className = 'pass'; + } + aList.appendChild(li); + } + test.appendChild(aList); + tests.appendChild(test); + }, + done: function (assertions) { + var end = new Date().getTime(); + var duration = end - start; + + var failures = assertions.failures(); + banner.className = failures ? 'fail': 'pass'; + + result.innerHTML = 'Tests completed in ' + duration + + ' milliseconds.
    ' + + assertions.passes() + ' assertions of ' + + '' + assertions.length + ' passed, ' + + assertions.failures() + ' failed.'; + } + }); +}; diff --git a/node_modules/nodeunit/lib/reporters/default.js b/node_modules/nodeunit/lib/reporters/default.js new file mode 100644 index 000000000..683b66ded --- /dev/null +++ b/node_modules/nodeunit/lib/reporters/default.js @@ -0,0 +1,131 @@ +/*! + * Nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + */ + +/** + * Module dependencies + */ + +var nodeunit = require('../nodeunit'), + utils = require('../utils'), + fs = require('fs'), + sys = require('sys'), + track = require('../track'), + path = require('path'); + AssertionError = require('../assert').AssertionError; + +/** + * Reporter info string + */ + +exports.info = "Default tests reporter"; + + +/** + * Run all tests within each module, reporting the results to the command-line. + * + * @param {Array} files + * @api public + */ + +exports.run = function (files, options) { + + if (!options) { + // load default options + var content = fs.readFileSync( + __dirname + '/../../bin/nodeunit.json', 'utf8' + ); + options = JSON.parse(content); + } + + var error = function (str) { + return options.error_prefix + str + options.error_suffix; + }; + var ok = function (str) { + return options.ok_prefix + str + options.ok_suffix; + }; + var bold = function (str) { + return options.bold_prefix + str + options.bold_suffix; + }; + var assertion_message = function (str) { + return options.assertion_prefix + str + options.assertion_suffix; + }; + + var start = new Date().getTime(); + var paths = files.map(function (p) { + return path.join(process.cwd(), p); + }); + var tracker = track.createTracker(function (tracker) { + if (tracker.unfinished()) { + sys.puts(''); + sys.puts(error(bold( + 'FAILURES: Undone tests (or their setups/teardowns): ' + ))); + var names = tracker.names(); + for (var i = 0; i < names.length; i += 1) { + sys.puts('- ' + names[i]); + } + sys.puts(''); + sys.puts('To fix this, make sure all tests call test.done()'); + process.reallyExit(tracker.unfinished()); + } + }); + + nodeunit.runFiles(paths, { + moduleStart: function (name) { + sys.puts('\n' + bold(name)); + }, + testDone: function (name, assertions) { + tracker.remove(name); + + if (!assertions.failures()) { + sys.puts('✔ ' + name); + } + else { + sys.puts(error('✖ ' + name) + '\n'); + assertions.forEach(function (a) { + if (a.failed()) { + a = utils.betterErrors(a); + if (a.error instanceof AssertionError && a.message) { + sys.puts( + 'Assertion Message: ' + + assertion_message(a.message) + ); + } + sys.puts(a.error.stack + '\n'); + } + }); + } + }, + done: function (assertions) { + var end = new Date().getTime(); + var duration = end - start; + if (assertions.failures()) { + sys.puts( + '\n' + bold(error('FAILURES: ')) + assertions.failures() + + '/' + assertions.length + ' assertions failed (' + + assertions.duration + 'ms)' + ); + } + else { + sys.puts( + '\n' + bold(ok('OK: ')) + assertions.length + + ' assertions (' + assertions.duration + 'ms)' + ); + } + // alexgorbatchev 2010-11-10 :: should be able to flush stdout + // here, but doesn't seem to work, instead delay the exit to give + // enough to time flush. + // process.stdout.flush() + // process.stdout.end() + setTimeout(function () { + process.reallyExit(assertions.failures()); + }, 10); + }, + testStart: function(name) { + tracker.put(name); + } + }); +}; diff --git a/node_modules/nodeunit/lib/reporters/html.js b/node_modules/nodeunit/lib/reporters/html.js new file mode 100644 index 000000000..a693c2d17 --- /dev/null +++ b/node_modules/nodeunit/lib/reporters/html.js @@ -0,0 +1,112 @@ +/*! + * Nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + */ + +/** + * Module dependencies + */ + +var nodeunit = require('../nodeunit'), + utils = require('../utils'), + fs = require('fs'), + sys = require('sys'), + path = require('path'), + AssertionError = require('assert').AssertionError; + +/** + * Reporter info string + */ + +exports.info = "Report tests result as HTML"; + +/** + * Run all tests within each module, reporting the results to the command-line. + * + * @param {Array} files + * @api public + */ + +exports.run = function (files, options) { + + var start = new Date().getTime(); + var paths = files.map(function (p) { + return path.join(process.cwd(), p); + }); + + sys.puts(''); + sys.puts(''); + sys.puts(''); + sys.puts(''); + sys.puts(''); + sys.puts(''); + nodeunit.runFiles(paths, { + moduleStart: function (name) { + sys.puts('

    ' + name + '

    '); + sys.puts('
      '); + }, + testDone: function (name, assertions) { + if (!assertions.failures()) { + sys.puts('
    1. ' + name + '
    2. '); + } + else { + sys.puts('
    3. ' + name); + assertions.forEach(function (a) { + if (a.failed()) { + a = utils.betterErrors(a); + if (a.error instanceof AssertionError && a.message) { + sys.puts('
      ' + + 'Assertion Message: ' + a.message + + '
      '); + } + sys.puts('
      ');
      +                        sys.puts(a.error.stack);
      +                        sys.puts('
      '); + } + }); + sys.puts('
    4. '); + } + }, + moduleDone: function () { + sys.puts('
    '); + }, + done: function (assertions) { + var end = new Date().getTime(); + var duration = end - start; + if (assertions.failures()) { + sys.puts( + '

    FAILURES: ' + assertions.failures() + + '/' + assertions.length + ' assertions failed (' + + assertions.duration + 'ms)

    ' + ); + } + else { + sys.puts( + '

    OK: ' + assertions.length + + ' assertions (' + assertions.duration + 'ms)

    ' + ); + } + sys.puts(''); + // should be able to flush stdout here, but doesn't seem to work, + // instead delay the exit to give enough to time flush. + setTimeout(function () { + process.reallyExit(assertions.failures()); + }, 10); + } + }); + +}; diff --git a/node_modules/nodeunit/lib/reporters/index.js b/node_modules/nodeunit/lib/reporters/index.js new file mode 100644 index 000000000..bbaf800d0 --- /dev/null +++ b/node_modules/nodeunit/lib/reporters/index.js @@ -0,0 +1,9 @@ +module.exports = { + 'junit': require('./junit'), + 'default': require('./default'), + 'skip_passed': require('./skip_passed'), + 'minimal': require('./minimal'), + 'html': require('./html') + // browser test reporter is not listed because it cannot be used + // with the command line tool, only inside a browser. +}; diff --git a/node_modules/nodeunit/lib/reporters/junit.js b/node_modules/nodeunit/lib/reporters/junit.js new file mode 100644 index 000000000..7ff8a7d52 --- /dev/null +++ b/node_modules/nodeunit/lib/reporters/junit.js @@ -0,0 +1,186 @@ +/*! + * Nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + */ + +/** + * Module dependencies + */ + +var nodeunit = require('../nodeunit'), + utils = require('../utils'), + fs = require('fs'), + sys = require('sys'), + path = require('path'), + async = require('../../deps/async'), + AssertionError = require('assert').AssertionError, + child_process = require('child_process'), + ejs = require('../../deps/ejs'); + + +/** + * Reporter info string + */ + +exports.info = "jUnit XML test reports"; + + +/** + * Ensures a directory exists using mkdir -p. + * + * @param {String} path + * @param {Function} callback + * @api private + */ + +var ensureDir = function (path, callback) { + var mkdir = child_process.spawn('mkdir', ['-p', path]); + mkdir.on('error', function (err) { + callback(err); + callback = function(){}; + }); + mkdir.on('exit', function (code) { + if (code === 0) callback(); + else callback(new Error('mkdir exited with code: ' + code)); + }); +}; + + +/** + * Returns absolute version of a path. Relative paths are interpreted + * relative to process.cwd() or the cwd parameter. Paths that are already + * absolute are returned unaltered. + * + * @param {String} p + * @param {String} cwd + * @return {String} + * @api public + */ + +var abspath = function (p, /*optional*/cwd) { + if (p[0] === '/') return p; + cwd = cwd || process.cwd(); + return path.normalize(path.join(cwd, p)); +}; + + +/** + * Run all tests within each module, reporting the results to the command-line, + * then writes out junit-compatible xml documents. + * + * @param {Array} files + * @api public + */ + +exports.run = function (files, opts, callback) { + if (!opts.output) { + console.error( + 'Error: No output directory defined.\n' + + '\tEither add an "output" property to your nodeunit.json config ' + + 'file, or\n\tuse the --output command line option.' + ); + return; + } + opts.output = abspath(opts.output); + var error = function (str) { + return opts.error_prefix + str + opts.error_suffix; + }; + var ok = function (str) { + return opts.ok_prefix + str + opts.ok_suffix; + }; + var bold = function (str) { + return opts.bold_prefix + str + opts.bold_suffix; + }; + + var start = new Date().getTime(); + var paths = files.map(function (p) { + return path.join(process.cwd(), p); + }); + + var modules = {} + var curModule; + + nodeunit.runFiles(paths, { + moduleStart: function (name) { + curModule = { + errorCount: 0, + failureCount: 0, + tests: 0, + testcases: [], + name: name + }; + modules[name] = curModule; + }, + testDone: function (name, assertions) { + var testcase = {name: name}; + for (var i=0; i [ \.\.\.] +. +.fi +. +.SH "DESCRIPTION" +Nodeunit is a simple unit testing tool based on the node\.js assert module\. +. +.IP "\(bu" 4 +Simple to use +. +.IP "\(bu" 4 +Just export the tests from a module +. +.IP "\(bu" 4 +Helps you avoid common pitfalls when testing asynchronous code +. +.IP "\(bu" 4 +Easy to add test cases with setUp and tearDown functions if you wish +. +.IP "\(bu" 4 +Allows the use of mocks and stubs +. +.IP "" 0 +. +.SH "OPTIONS" + \fB\-\-config FILE\fR: +. +.br + Load config options from a JSON file, allows the customisation + of color schemes for the default test reporter etc\. + See bin/nodeunit\.json for current available options\. +. +.P + \fB\-\-reporter FILE\fR: +. +.br + You can set the test reporter to a custom module or on of the modules + in nodeunit/lib/reporters, when omitted, the default test runner is used\. +. +.P + \fB\-\-list\-reporters\fR: +. +.br + List available build\-in reporters\. +. +.P + \fB\-h\fR, \fB\-\-help\fR: +. +.br + Display the help and exit\. +. +.P + \fB\-v\fR, \fB\-\-version\fR: +. +.br + Output version information and exit\. +. +.P + \fB\fR: + You can run nodeunit on specific files or on all \fI*\.js\fR files inside +. +.br + a directory\. +. +.SH "AUTHORS" +Written by Caolan McMahon and other nodeunit contributors\. +. +.br +Contributors list: \fIhttp://github\.com/caolan/nodeunit/contributors\fR\|\. +. +.SH "REPORTING BUGS" +Report nodeunit bugs to \fIhttp://github\.com/caolan/nodeunit/issues\fR\|\. +. +.SH "COPYRIGHT" +Copyright © 2010 Caolan McMahon\. +. +.br +Nodeunit has been released under the MIT license: +. +.br +\fIhttp://github\.com/caolan/nodeunit/raw/master/LICENSE\fR\|\. +. +.SH "SEE ALSO" +node(1) diff --git a/node_modules/nodeunit/nodelint.cfg b/node_modules/nodeunit/nodelint.cfg new file mode 100644 index 000000000..457a967e0 --- /dev/null +++ b/node_modules/nodeunit/nodelint.cfg @@ -0,0 +1,4 @@ +var options = { + indent: 4, + onevar: false +}; diff --git a/node_modules/nodeunit/package.json b/node_modules/nodeunit/package.json new file mode 100644 index 000000000..da62137e1 --- /dev/null +++ b/node_modules/nodeunit/package.json @@ -0,0 +1,53 @@ +{ "name": "nodeunit" +, "description": "Easy unit testing for node.js and the browser." +, "maintainers": + [ { "name": "Caolan McMahon" + , "web": "https://github.com/caolan" + } + ] +, "contributors" : + [ { "name": "Alex Gorbatchev" + , "web": "https://github.com/alexgorbatchev" + } + , { "name": "Alex Wolfe" + , "web": "https://github.com/alexkwolfe" + } + , { "name": "Carl Fürstenberg" + , "web": "https://github.com/azatoth" + } + , { "name": "Gerad Suyderhoud" + , "web": "https://github.com/gerad" + } + , { "name": "Kadir Pekel" + , "web": "https://github.com/coffeemate" + } + , { "name": "Oleg Efimov" + , "web": "https://github.com/Sannis" + } + , { "name": "Orlando Vazquez" + , "web": "https://github.com/orlandov" + } + , { "name": "Ryan Dahl" + , "web": "https://github.com/ry" + } + , { "name": "Sam Stephenson" + , "web": "https://github.com/sstephenson" + } + , { "name": "Thomas Mayfield" + , "web": "https://github.com/thegreatape" + } + ] +, "version": "0.5.1" +, "repository" : + { "type" : "git" + , "url" : "http://github.com/caolan/nodeunit.git" + } +, "bugs" : { "web" : "http://github.com/caolan/nodeunit/issues" } +, "licenses" : + [ { "type" : "MIT" + , "url" : "http://github.com/caolan/nodeunit/raw/master/LICENSE" + } + ] +, "directories" : { "lib": "./lib", "doc" : "./doc", "man" : "./man1" } +, "bin" : { "nodeunit" : "./bin/nodeunit" } +} diff --git a/node_modules/nodeunit/share/junit.xml.ejs b/node_modules/nodeunit/share/junit.xml.ejs new file mode 100644 index 000000000..c1db5bbec --- /dev/null +++ b/node_modules/nodeunit/share/junit.xml.ejs @@ -0,0 +1,19 @@ + +<% for (var i=0; i < suites.length; i++) { %> + <% var suite=suites[i]; %> + + <% for (var j=0; j < suite.testcases.length; j++) { %> + <% var testcase=suites[i].testcases[j]; %> + + <% if (testcase.failure) { %> + + <% if (testcase.failure.backtrace) { %><%= testcase.failure.backtrace %><% } %> + + <% } %> + + <% } %> + +<% } %> diff --git a/node_modules/nodeunit/share/license.js b/node_modules/nodeunit/share/license.js new file mode 100644 index 000000000..f0f326f33 --- /dev/null +++ b/node_modules/nodeunit/share/license.js @@ -0,0 +1,11 @@ +/*! + * Nodeunit + * https://github.com/caolan/nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + * + * json2.js + * http://www.JSON.org/json2.js + * Public Domain. + * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + */ diff --git a/node_modules/nodeunit/share/nodeunit.css b/node_modules/nodeunit/share/nodeunit.css new file mode 100644 index 000000000..274434a4a --- /dev/null +++ b/node_modules/nodeunit/share/nodeunit.css @@ -0,0 +1,70 @@ +/*! + * Styles taken from qunit.css + */ + +h1#nodeunit-header, h1.nodeunit-header { + padding: 15px; + font-size: large; + background-color: #06b; + color: white; + font-family: 'trebuchet ms', verdana, arial; + margin: 0; +} + +h1#nodeunit-header a { + color: white; +} + +h2#nodeunit-banner { + height: 2em; + border-bottom: 1px solid white; + background-color: #eee; + margin: 0; + font-family: 'trebuchet ms', verdana, arial; +} +h2#nodeunit-banner.pass { + background-color: green; +} +h2#nodeunit-banner.fail { + background-color: red; +} + +h2#nodeunit-userAgent, h2.nodeunit-userAgent { + padding: 10px; + background-color: #eee; + color: black; + margin: 0; + font-size: small; + font-weight: normal; + font-family: 'trebuchet ms', verdana, arial; + font-size: 10pt; +} + +div#nodeunit-testrunner-toolbar { + background: #eee; + border-top: 1px solid black; + padding: 10px; + font-family: 'trebuchet ms', verdana, arial; + margin: 0; + font-size: 10pt; +} + +ol#nodeunit-tests { + font-family: 'trebuchet ms', verdana, arial; + font-size: 10pt; +} +ol#nodeunit-tests li strong { + cursor:pointer; +} +ol#nodeunit-tests .pass { + color: green; +} +ol#nodeunit-tests .fail { + color: red; +} + +p#nodeunit-testresult { + margin-left: 1em; + font-size: 10pt; + font-family: 'trebuchet ms', verdana, arial; +} diff --git a/node_modules/nodeunit/test/fixtures/coffee/mock_coffee_module.coffee b/node_modules/nodeunit/test/fixtures/coffee/mock_coffee_module.coffee new file mode 100644 index 000000000..a1c069b57 --- /dev/null +++ b/node_modules/nodeunit/test/fixtures/coffee/mock_coffee_module.coffee @@ -0,0 +1,4 @@ +j = 0 +j += i for i in [0..5] + +exports.name = "mock_coffee_#{j}" diff --git a/node_modules/nodeunit/test/fixtures/dir/mock_module3.js b/node_modules/nodeunit/test/fixtures/dir/mock_module3.js new file mode 100644 index 000000000..3021776c8 --- /dev/null +++ b/node_modules/nodeunit/test/fixtures/dir/mock_module3.js @@ -0,0 +1 @@ +exports.name = 'mock_module3'; diff --git a/node_modules/nodeunit/test/fixtures/dir/mock_module4.js b/node_modules/nodeunit/test/fixtures/dir/mock_module4.js new file mode 100644 index 000000000..876f9ca07 --- /dev/null +++ b/node_modules/nodeunit/test/fixtures/dir/mock_module4.js @@ -0,0 +1 @@ +exports.name = 'mock_module4'; diff --git a/node_modules/nodeunit/test/fixtures/mock_module1.js b/node_modules/nodeunit/test/fixtures/mock_module1.js new file mode 100644 index 000000000..4c093ad16 --- /dev/null +++ b/node_modules/nodeunit/test/fixtures/mock_module1.js @@ -0,0 +1 @@ +exports.name = 'mock_module1'; diff --git a/node_modules/nodeunit/test/fixtures/mock_module2.js b/node_modules/nodeunit/test/fixtures/mock_module2.js new file mode 100644 index 000000000..a63d01226 --- /dev/null +++ b/node_modules/nodeunit/test/fixtures/mock_module2.js @@ -0,0 +1 @@ +exports.name = 'mock_module2'; diff --git a/node_modules/nodeunit/test/fixtures/raw_jscode1.js b/node_modules/nodeunit/test/fixtures/raw_jscode1.js new file mode 100644 index 000000000..2ef711524 --- /dev/null +++ b/node_modules/nodeunit/test/fixtures/raw_jscode1.js @@ -0,0 +1,3 @@ +function hello_world(arg) { + return "_" + arg + "_"; +} diff --git a/node_modules/nodeunit/test/fixtures/raw_jscode2.js b/node_modules/nodeunit/test/fixtures/raw_jscode2.js new file mode 100644 index 000000000..55a764ef6 --- /dev/null +++ b/node_modules/nodeunit/test/fixtures/raw_jscode2.js @@ -0,0 +1,3 @@ +function get_a_variable() { + return typeof a_variable; +} diff --git a/node_modules/nodeunit/test/fixtures/raw_jscode3.js b/node_modules/nodeunit/test/fixtures/raw_jscode3.js new file mode 100644 index 000000000..1fd1e7889 --- /dev/null +++ b/node_modules/nodeunit/test/fixtures/raw_jscode3.js @@ -0,0 +1 @@ +var t=t?t+1:1; diff --git a/node_modules/nodeunit/test/test-base.js b/node_modules/nodeunit/test/test-base.js new file mode 100644 index 000000000..64b8c8bbd --- /dev/null +++ b/node_modules/nodeunit/test/test-base.js @@ -0,0 +1,219 @@ +/* + * This module is not a plain nodeunit test suite, but instead uses the + * assert module to ensure a basic level of functionality is present, + * allowing the rest of the tests to be written using nodeunit itself. + * + * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS! + * You can use @REMOVE_LINE_FOR_BROWSER to remove code from the browser build. + * Only code on that line will be removed, its mostly to avoid requiring code + * that is node specific + */ + +var assert = require('assert'), // @REMOVE_LINE_FOR_BROWSER + async = require('../deps/async'), // @REMOVE_LINE_FOR_BROWSER + nodeunit = require('../lib/nodeunit'); // @REMOVE_LINE_FOR_BROWSER + + +// NOT A TEST - util function to make testing faster. +// retries the assertion until it passes or the timeout is reached, +// at which point it throws the assertion error +var waitFor = function (fn, timeout, callback, start) { + start = start || new Date().getTime(); + callback = callback || function () {}; + try { + fn(); + callback(); + } + catch (e) { + if (e instanceof assert.AssertionError) { + var now = new Date().getTime(); + if (now - start >= timeout) { + throw e; + } + else { + async.nextTick(function () { + waitFor(fn, timeout, callback, start); + }); + } + } + else { + throw e; + } + } +}; + + +// TESTS: + +// Are exported tests actually run? - store completed tests in this variable +// for checking later +var tests_called = {}; + +// most basic test that should run, the tests_called object is tested +// at the end of this module to ensure the tests were actually run by nodeunit +exports.testCalled = function (test) { + tests_called.testCalled = true; + test.done(); +}; + +// generates test functions for nodeunit assertions +var makeTest = function (method, args_pass, args_fail) { + return function (test) { + var test1_called = false; + var test2_called = false; + + // test pass + nodeunit.runTest( + 'testname', + function (test) { + test[method].apply(test, args_pass); + test.done(); + }, + {testDone: function (name, assertions) { + assert.equal(assertions.length, 1); + assert.equal(assertions.failures(), 0); + }}, + function () { + test1_called = true; + } + ); + + // test failure + nodeunit.runTest( + 'testname', + function (test) { + test[method].apply(test, args_fail); + test.done(); + }, + {testDone: function (name, assertions) { + assert.equal(assertions.length, 1); + assert.equal(assertions.failures(), 1); + }}, + function () { + test2_called = true; + } + ); + + // ensure tests were run + waitFor(function () { + assert.ok(test1_called); + assert.ok(test2_called); + tests_called[method] = true; + }, 500, test.done); + }; +}; + +// ensure basic assertions are working: +exports.testOk = makeTest('ok', [true], [false]); +exports.testEquals = makeTest('equals', [1, 1], [1, 2]); +exports.testSame = makeTest('same', + [{test: 'test'}, {test: 'test'}], + [{test: 'test'}, {monkey: 'penguin'}] +); + +// from the assert module: +exports.testEqual = makeTest('equal', [1, 1], [1, 2]); +exports.testNotEqual = makeTest('notEqual', [1, 2], [1, 1]); +exports.testDeepEqual = makeTest('deepEqual', + [{one: 1}, {one: 1}], [{one: 1}, {two: 2}] +); +exports.testNotDeepEqual = makeTest('notDeepEqual', + [{one: 1}, {two: 2}], [{one: 1}, {one: 1}] +); +exports.testStrictEqual = makeTest('strictEqual', [1, 1], [1, true]); +exports.testNotStrictEqual = makeTest('notStrictEqual', [true, 1], [1, 1]); +exports.testThrows = makeTest('throws', + [function () { + throw new Error('test'); + }], + [function () { + return; + }] +); +exports.testDoesNotThrows = makeTest('doesNotThrow', + [function () { + return; + }], + [function () { + throw new Error('test'); + }] +); +exports.testIfError = makeTest('ifError', [false], [new Error('test')]); + + +exports.testExpect = function (test) { + var test1_called = false, + test2_called = false, + test3_called = false; + + // correct number of tests run + nodeunit.runTest( + 'testname', + function (test) { + test.expect(2); + test.ok(true); + test.ok(true); + test.done(); + }, + {testDone: function (name, assertions) { + test.equals(assertions.length, 2); + test.equals(assertions.failures(), 0); + }}, + function () { + test1_called = true; + } + ); + + // no tests run + nodeunit.runTest( + 'testname', + function (test) { + test.expect(2); + test.done(); + }, + {testDone: function (name, assertions) { + test.equals(assertions.length, 1); + test.equals(assertions.failures(), 1); + }}, + function () { + test2_called = true; + } + ); + + // incorrect number of tests run + nodeunit.runTest( + 'testname', + function (test) { + test.expect(2); + test.ok(true); + test.ok(true); + test.ok(true); + test.done(); + }, + {testDone: function (name, assertions) { + test.equals(assertions.length, 4); + test.equals(assertions.failures(), 1); + }}, + function () { + test3_called = true; + } + ); + + // ensure callbacks fired + waitFor(function () { + assert.ok(test1_called); + assert.ok(test2_called); + assert.ok(test3_called); + tests_called.expect = true; + }, 500, test.done); +}; + + +// tests are async, so wait for them to be called +waitFor(function () { + assert.ok(tests_called.testCalled); + assert.ok(tests_called.ok); + assert.ok(tests_called.equals); + assert.ok(tests_called.same); + assert.ok(tests_called.expect); +}, 10000); diff --git a/node_modules/nodeunit/test/test-failing-callbacks.js b/node_modules/nodeunit/test/test-failing-callbacks.js new file mode 100644 index 000000000..08f7eb585 --- /dev/null +++ b/node_modules/nodeunit/test/test-failing-callbacks.js @@ -0,0 +1,114 @@ +var nodeunit = require('../lib/nodeunit'); + + +exports.testFailingLog = function (test) { + test.expect(3); + + // this is meant to bubble to the top, and will be ignored for the purposes + // of testing: + var ignored_error = new Error('ignore this callback error'); + var err_handler = function (err) { + if (err && err.message !== ignored_error.message) { + throw err; + } + }; + process.addListener('uncaughtException', err_handler); + + // A failing callback should not affect the test outcome + var testfn = function (test) { + test.ok(true, 'test.ok'); + test.done(); + }; + nodeunit.runTest('testname', testfn, { + log: function (assertion) { + test.ok(true, 'log called'); + throw ignored_error; + }, + testDone: function (name, assertions) { + test.equals(assertions.failures(), 0, 'failures'); + test.equals(assertions.length, 1, 'total'); + process.removeListener('uncaughtException', err_handler); + } + }, test.done); +}; + +exports.testFailingTestDone = function (test) { + test.expect(2); + + var ignored_error = new Error('ignore this callback error'); + var err_handler = function (err) { + if (err && err.message !== ignored_error.message) { + throw err; + } + }; + process.addListener('uncaughtException', err_handler); + + // A failing callback should not affect the test outcome + var testfn = function (test) { + test.done(); + }; + nodeunit.runTest('testname', testfn, { + log: function (assertion) { + test.ok(false, 'log should not be called'); + }, + testDone: function (name, assertions) { + test.equals(assertions.failures(), 0, 'failures'); + test.equals(assertions.length, 0, 'total'); + process.nextTick(function () { + process.removeListener('uncaughtException', err_handler); + test.done(); + }); + throw ignored_error; + } + }, function () {}); +}; + +exports.testAssertionObj = function (test) { + test.expect(4); + var testfn = function (test) { + test.ok(true, 'ok true'); + test.done(); + }; + nodeunit.runTest('testname', testfn, { + log: function (assertion) { + test.ok(assertion.passed() === true, 'assertion.passed'); + test.ok(assertion.failed() === false, 'assertion.failed'); + }, + testDone: function (name, assertions) { + test.equals(assertions.failures(), 0, 'failures'); + test.equals(assertions.length, 1, 'total'); + } + }, test.done); +}; + +exports.testLogOptional = function (test) { + test.expect(2); + var testfn = function (test) { + test.ok(true, 'ok true'); + test.done(); + }; + nodeunit.runTest('testname', testfn, { + testDone: function (name, assertions) { + test.equals(assertions.failures(), 0, 'failures'); + test.equals(assertions.length, 1, 'total'); + } + }, test.done); +}; + +exports.testExpectWithFailure = function (test) { + test.expect(3); + var testfn = function (test) { + test.expect(1); + test.ok(false, 'test.ok'); + test.done(); + }; + nodeunit.runTest('testname', testfn, { + log: function (assertion) { + test.equals(assertion.method, 'ok', 'assertion.method'); + }, + testDone: function (name, assertions) { + test.equals(assertions.failures(), 1, 'failures'); + test.equals(assertions.length, 1, 'total'); + } + }, test.done); +}; diff --git a/node_modules/nodeunit/test/test-httputil.js b/node_modules/nodeunit/test/test-httputil.js new file mode 100644 index 000000000..e5ee25c64 --- /dev/null +++ b/node_modules/nodeunit/test/test-httputil.js @@ -0,0 +1,55 @@ +var nodeunit = require('../lib/nodeunit'); +var httputil = require('../lib/utils').httputil; + +exports.testHttpUtilBasics = function (test) { + + test.expect(6); + + httputil(function (req, resp) { + test.equal(req.method, 'PUT'); + test.equal(req.url, '/newpair'); + test.equal(req.headers.foo, 'bar'); + + resp.writeHead(500, {'content-type': 'text/plain'}); + resp.end('failed'); + }, function (server, client) { + client.fetch('PUT', '/newpair', {'foo': 'bar'}, function (resp) { + test.equal(resp.statusCode, 500); + test.equal(resp.headers['content-type'], 'text/plain'); + test.equal(resp.body, 'failed'); + + server.close(); + test.done(); + }); + }); +}; + +exports.testHttpUtilJsonHandling = function (test) { + + test.expect(9); + + httputil(function (req, resp) { + test.equal(req.method, 'GET'); + test.equal(req.url, '/'); + test.equal(req.headers.foo, 'bar'); + + var testdata = {foo1: 'bar', foo2: 'baz'}; + + resp.writeHead(200, {'content-type': 'application/json'}); + resp.end(JSON.stringify(testdata)); + + }, function (server, client) { + client.fetch('GET', '/', {'foo': 'bar'}, function (resp) { + test.equal(resp.statusCode, 200); + test.equal(resp.headers['content-type'], 'application/json'); + + test.ok(resp.bodyAsObject); + test.equal(typeof resp.bodyAsObject, 'object'); + test.equal(resp.bodyAsObject.foo1, 'bar'); + test.equal(resp.bodyAsObject.foo2, 'baz'); + + server.close(); + test.done(); + }); + }); +}; diff --git a/node_modules/nodeunit/test/test-runfiles.js b/node_modules/nodeunit/test/test-runfiles.js new file mode 100644 index 000000000..b9ef754f2 --- /dev/null +++ b/node_modules/nodeunit/test/test-runfiles.js @@ -0,0 +1,214 @@ +var assert = require('assert'), + sys = require('sys'), + fs = require('fs'), + path = require('path'), + nodeunit = require('../lib/nodeunit'); + + +var setup = function (fn) { + return function (test) { + process.chdir(__dirname); + require.paths.push(__dirname); + var env = { + mock_module1: require('./fixtures/mock_module1'), + mock_module2: require('./fixtures/mock_module2'), + mock_module3: require('./fixtures/dir/mock_module3'), + mock_module4: require('./fixtures/dir/mock_module4') + }; + fn.call(env, test); + }; +}; + + +exports.testRunFiles = setup(function (test) { + test.expect(24); + var runModule_copy = nodeunit.runModule; + + var runModule_calls = []; + var modules = []; + + var opts = { + moduleStart: function () { + return 'moduleStart'; + }, + testDone: function () { + return 'testDone'; + }, + testStart: function () { + return 'testStart'; + }, + log: function () { + return 'log'; + }, + done: function (assertions) { + test.equals(assertions.failures(), 0, 'failures'); + test.equals(assertions.length, 4, 'length'); + test.ok(typeof assertions.duration === "number"); + + var called_with = function (name) { + return runModule_calls.some(function (m) { + return m.name === name; + }); + }; + test.ok(called_with('mock_module1'), 'mock_module1 ran'); + test.ok(called_with('mock_module2'), 'mock_module2 ran'); + test.ok(called_with('mock_module3'), 'mock_module3 ran'); + test.ok(called_with('mock_module4'), 'mock_module4 ran'); + test.equals(runModule_calls.length, 4); + + nodeunit.runModule = runModule_copy; + test.done(); + } + }; + + nodeunit.runModule = function (name, mod, options, callback) { + test.equals(options.testDone, opts.testDone); + test.equals(options.testStart, opts.testStart); + test.equals(options.log, opts.log); + test.ok(typeof name === "string"); + runModule_calls.push(mod); + var m = [{failed: function () { + return false; + }}]; + modules.push(m); + callback(null, m); + }; + + nodeunit.runFiles( + ['fixtures/mock_module1.js', 'fixtures/mock_module2.js', 'fixtures/dir'], + opts + ); +}); + +exports.testRunFilesEmpty = function (test) { + test.expect(3); + nodeunit.runFiles([], { + moduleStart: function () { + test.ok(false, 'should not be called'); + }, + testDone: function () { + test.ok(false, 'should not be called'); + }, + testStart: function () { + test.ok(false, 'should not be called'); + }, + log: function () { + test.ok(false, 'should not be called'); + }, + done: function (assertions) { + test.equals(assertions.failures(), 0, 'failures'); + test.equals(assertions.length, 0, 'length'); + test.ok(typeof assertions.duration === "number"); + test.done(); + } + }); +}; + + +exports.testEmptyDir = function (test) { + var dir2 = __dirname + '/fixtures/dir2'; + + // git doesn't like empty directories, so we have to create one + path.exists(dir2, function (exists) { + if (!exists) { + fs.mkdirSync(dir2, 0777); + } + + // runFiles on empty directory: + nodeunit.runFiles([dir2], { + moduleStart: function () { + test.ok(false, 'should not be called'); + }, + testDone: function () { + test.ok(false, 'should not be called'); + }, + testStart: function () { + test.ok(false, 'should not be called'); + }, + log: function () { + test.ok(false, 'should not be called'); + }, + done: function (assertions) { + test.equals(assertions.failures(), 0, 'failures'); + test.equals(assertions.length, 0, 'length'); + test.ok(typeof assertions.duration === "number"); + test.done(); + } + }); + }); +}; + + +var CoffeeScript; +try { + CoffeeScript = require('coffee-script'); +} catch (e) { +} + +if (CoffeeScript) { + exports.testCoffeeScript = function (test) { + process.chdir(__dirname); + require.paths.push(__dirname); + var env = { + mock_coffee_module: require('./fixtures/coffee/mock_coffee_module') + }; + + test.expect(9); + var runModule_copy = nodeunit.runModule; + + var runModule_calls = []; + var modules = []; + + var opts = { + moduleStart: function () { + return 'moduleStart'; + }, + testDone: function () { + return 'testDone'; + }, + testStart: function () { + return 'testStart'; + }, + log: function () { + return 'log'; + }, + done: function (assertions) { + test.equals(assertions.failures(), 0, 'failures'); + test.equals(assertions.length, 1, 'length'); + test.ok(typeof assertions.duration === "number"); + + var called_with = function (name) { + return runModule_calls.some(function (m) { + return m.name === name; + }); + }; + test.ok( + called_with('mock_coffee_15'), + 'mock_coffee_module ran' + ); + test.equals(runModule_calls.length, 1); + + nodeunit.runModule = runModule_copy; + test.done(); + } + }; + + nodeunit.runModule = function (name, mod, options, callback) { + test.equals(options.testDone, opts.testDone); + test.equals(options.testStart, opts.testStart); + test.equals(options.log, opts.log); + test.ok(typeof name === "string"); + runModule_calls.push(mod); + var m = [{failed: function () { + return false; + }}]; + modules.push(m); + callback(null, m); + }; + + nodeunit.runFiles( + ['fixtures/coffee/mock_coffee_module.coffee'], + opts + ); + }; +} diff --git a/node_modules/nodeunit/test/test-runmodule.js b/node_modules/nodeunit/test/test-runmodule.js new file mode 100644 index 000000000..218e8dbec --- /dev/null +++ b/node_modules/nodeunit/test/test-runmodule.js @@ -0,0 +1,125 @@ +/* THIS FILE SHOULD BE BROWSER-COMPATIBLE JS! + * You can use @REMOVE_LINE_FOR_BROWSER to remove code from the browser build. + * Only code on that line will be removed, its mostly to avoid requiring code + * that is node specific + */ + +var nodeunit = require('../lib/nodeunit'); // @REMOVE_LINE_FOR_BROWSER + + +exports.testRunModule = function (test) { + test.expect(11); + var call_order = []; + var testmodule = { + test1: function (test) { + call_order.push('test1'); + test.ok(true, 'ok true'); + test.done(); + }, + test2: function (test) { + call_order.push('test2'); + test.ok(false, 'ok false'); + test.ok(false, 'ok false'); + test.done(); + }, + test3: function (test) { + call_order.push('test3'); + test.done(); + } + }; + nodeunit.runModule('testmodule', testmodule, { + log: function (assertion) { + call_order.push('log'); + }, + testStart: function (name) { + call_order.push('testStart'); + test.ok( + name.toString() === 'test1' || + name.toString() === 'test2' || + name.toString() === 'test3', + 'testStart called with test name ' + ); + }, + testDone: function (name, assertions) { + call_order.push('testDone'); + test.ok( + name.toString() === 'test1' || + name.toString() === 'test2' || + name.toString() === 'test3', + 'testDone called with test name' + ); + }, + moduleDone: function (name, assertions) { + call_order.push('moduleDone'); + test.equals(assertions.length, 3); + test.equals(assertions.failures(), 2); + test.equals(name, 'testmodule'); + test.ok(typeof assertions.duration === "number"); + test.same(call_order, [ + 'testStart', 'test1', 'log', 'testDone', + 'testStart', 'test2', 'log', 'log', 'testDone', + 'testStart', 'test3', 'testDone', + 'moduleDone' + ]); + } + }, test.done); +}; + +exports.testRunModuleEmpty = function (test) { + nodeunit.runModule('module with no exports', {}, { + log: function (assertion) { + test.ok(false, 'log should not be called'); + }, + testStart: function (name) { + test.ok(false, 'testStart should not be called'); + }, + testDone: function (name, assertions) { + test.ok(false, 'testDone should not be called'); + }, + moduleDone: function (name, assertions) { + test.equals(assertions.length, 0); + test.equals(assertions.failures(), 0); + test.equals(name, 'module with no exports'); + test.ok(typeof assertions.duration === "number"); + } + }, test.done); +}; + +exports.testNestedTests = function (test) { + var call_order = []; + var m = { + test1: function (test) { + test.done(); + }, + suite: { + t1: function (test) { + test.done(); + }, + t2: function (test) { + test.done(); + }, + another_suite: { + t3: function (test) { + test.done(); + } + } + } + }; + nodeunit.runModule('modulename', m, { + testStart: function (name) { + call_order.push(['testStart'].concat(name)); + }, + testDone: function (name, assertions) { + call_order.push(['testDone'].concat(name)); + } + }, function () { + test.same(call_order, [ + ['testStart', 'test1'], ['testDone', 'test1'], + ['testStart', 'suite', 't1'], ['testDone', 'suite', 't1'], + ['testStart', 'suite', 't2'], ['testDone', 'suite', 't2'], + ['testStart', 'suite', 'another_suite', 't3'], + ['testDone', 'suite', 'another_suite', 't3'] + ]); + test.done(); + }); +}; diff --git a/node_modules/nodeunit/test/test-runtest.js b/node_modules/nodeunit/test/test-runtest.js new file mode 100644 index 000000000..8fc3d5209 --- /dev/null +++ b/node_modules/nodeunit/test/test-runtest.js @@ -0,0 +1,46 @@ +/* THIS FILE SHOULD BE BROWSER-COMPATIBLE JS! + * You can use @REMOVE_LINE_FOR_BROWSER to remove code from the browser build. + * Only code on that line will be removed, its mostly to avoid requiring code + * that is node specific + */ + +var nodeunit = require('../lib/nodeunit'); // @REMOVE_LINE_FOR_BROWSER + + +exports.testArgs = function (test) { + test.ok(test.expect instanceof Function, 'test.expect'); + test.ok(test.done instanceof Function, 'test.done'); + test.ok(test.ok instanceof Function, 'test.ok'); + test.ok(test.same instanceof Function, 'test.same'); + test.ok(test.equals instanceof Function, 'test.equals'); + test.done(); +}; + +exports.testDoneCallback = function (test) { + test.expect(4); + nodeunit.runTest('testname', exports.testArgs, { + testDone: function (name, assertions) { + test.equals(assertions.failures(), 0, 'failures'); + test.equals(assertions.length, 5, 'length'); + test.ok(typeof assertions.duration === "number"); + test.equals(name, 'testname'); + } + }, test.done); +}; + +exports.testThrowError = function (test) { + test.expect(3); + var err = new Error('test'); + var testfn = function (test) { + throw err; + }; + nodeunit.runTest('testname', testfn, { + log: function (assertion) { + test.same(assertion.error, err, 'assertion.error'); + }, + testDone: function (name, assertions) { + test.equals(assertions.failures(), 1); + test.equals(assertions.length, 1); + } + }, test.done); +}; diff --git a/node_modules/nodeunit/test/test-sandbox.js b/node_modules/nodeunit/test/test-sandbox.js new file mode 100644 index 000000000..1b249d7af --- /dev/null +++ b/node_modules/nodeunit/test/test-sandbox.js @@ -0,0 +1,31 @@ +var nodeunit = require('../lib/nodeunit'); +var sandbox = require('../lib/utils').sandbox; +var testCase = nodeunit.testCase; + +exports.testSimpleSandbox = function (test) { + var raw_jscode1 = sandbox(__dirname + '/fixtures/raw_jscode1.js'); + test.equal(raw_jscode1.hello_world('foo'), '_foo_', 'evaluation ok'); + test.done(); +}; + +exports.testSandboxContext = function (test) { + var a_variable = 42; // should not be visible in the sandbox + var raw_jscode2 = sandbox(__dirname + '/fixtures/raw_jscode2.js'); + a_variable = 42; // again for the win + test.equal( + raw_jscode2.get_a_variable(), + 'undefined', + 'the variable should not be defined' + ); + test.done(); +}; + +exports.testSandboxMultiple = function (test) { + var raw_jscode3 = sandbox([ + __dirname + '/fixtures/raw_jscode3.js', + __dirname + '/fixtures/raw_jscode3.js', + __dirname + '/fixtures/raw_jscode3.js' + ]); + test.equal(raw_jscode3.t, 3, 'two files loaded'); + test.done(); +}; diff --git a/node_modules/nodeunit/test/test-testcase.js b/node_modules/nodeunit/test/test-testcase.js new file mode 100644 index 000000000..a3ea331bd --- /dev/null +++ b/node_modules/nodeunit/test/test-testcase.js @@ -0,0 +1,234 @@ +/* THIS FILE SHOULD BE BROWSER-COMPATIBLE JS! + * You can use @REMOVE_LINE_FOR_BROWSER to remove code from the browser build. + * Only code on that line will be removed, its mostly to avoid requiring code + * that is node specific + */ + +var nodeunit = require('../lib/nodeunit'); // @REMOVE_LINE_FOR_BROWSER +var testCase = nodeunit.testCase; + +exports.testTestCase = function (test) { + test.expect(7); + var call_order = []; + var s = testCase({ + setUp: function (callback) { + call_order.push('setUp'); + test.equals(this.one, undefined); + this.one = 1; + callback(); + }, + tearDown: function (callback) { + call_order.push('tearDown'); + test.ok(true, 'tearDown called'); + callback(); + }, + test1: function (t) { + call_order.push('test1'); + test.equals(this.one, 1); + this.one = 2; + t.done(); + }, + test2: function (t) { + call_order.push('test2'); + test.equals(this.one, 1); + t.done(); + } + }); + nodeunit.runSuite(null, s, {}, function () { + test.same(call_order, [ + 'setUp', 'test1', 'tearDown', + 'setUp', 'test2', 'tearDown' + ]); + test.done(); + }); +}; + +exports.tearDownAfterError = function (test) { + test.expect(1); + var s = testCase({ + tearDown: function (callback) { + test.ok(true, 'tearDown called'); + callback(); + }, + test: function (t) { + throw new Error('some error'); + } + }); + nodeunit.runSuite(null, s, {}, function () { + test.done(); + }); +}; + +exports.catchSetUpError = function (test) { + test.expect(2); + var test_error = new Error('test error'); + var s = testCase({ + setUp: function (callback) { + throw test_error; + }, + test: function (t) { + test.ok(false, 'test function should not be called'); + t.done(); + } + }); + nodeunit.runSuite(null, s, {}, function (err, assertions) { + test.equal(assertions.length, 1); + test.equal(assertions[0].error, test_error); + test.done(); + }); +}; + +exports.setUpErrorCallback = function (test) { + test.expect(2); + var test_error = new Error('test error'); + var s = testCase({ + setUp: function (callback) { + callback(test_error); + }, + test: function (t) { + test.ok(false, 'test function should not be called'); + t.done(); + } + }); + nodeunit.runSuite(null, s, {}, function (err, assertions) { + test.equal(assertions.length, 1); + test.equal(assertions[0].error, test_error); + test.done(); + }); +}; + +exports.catchTearDownError = function (test) { + test.expect(2); + var test_error = new Error('test error'); + var s = testCase({ + tearDown: function (callback) { + throw test_error; + }, + test: function (t) { + t.done(); + } + }); + nodeunit.runSuite(null, s, {}, function (err, assertions) { + test.equal(assertions.length, 1); + test.equal(assertions[0].error, test_error); + test.done(); + }); +}; + +exports.tearDownErrorCallback = function (test) { + test.expect(2); + var test_error = new Error('test error'); + var s = testCase({ + tearDown: function (callback) { + callback(test_error); + }, + test: function (t) { + t.done(); + } + }); + nodeunit.runSuite(null, s, {}, function (err, assertions) { + test.equal(assertions.length, 1); + test.equal(assertions[0].error, test_error); + test.done(); + }); +}; + +exports.testErrorAndtearDownError = function (test) { + test.expect(3); + var error1 = new Error('test error one'); + var error2 = new Error('test error two'); + var s = testCase({ + tearDown: function (callback) { + callback(error2); + }, + test: function (t) { + t.done(error1); + } + }); + nodeunit.runSuite(null, s, {}, function (err, assertions) { + test.equal(assertions.length, 2); + test.equal(assertions[0].error, error1); + test.equal(assertions[1].error, error2); + test.done(); + }); +}; + +exports.testCaseGroups = function (test) { + var call_order = []; + var s = testCase({ + setUp: function (callback) { + call_order.push('setUp'); + callback(); + }, + tearDown: function (callback) { + call_order.push('tearDown'); + callback(); + }, + test1: function (test) { + call_order.push('test1'); + test.done(); + }, + group1: { + test2: function (test) { + call_order.push('group1.test2'); + test.done(); + } + } + }); + nodeunit.runSuite(null, s, {}, function (err, assertions) { + test.same(call_order, [ + 'setUp', + 'test1', + 'tearDown', + 'setUp', + 'group1.test2', + 'tearDown' + ]); + test.done(); + }); +}; + +exports.nestedTestCases = function (test) { + var call_order = []; + var s = testCase({ + setUp: function (callback) { + call_order.push('setUp'); + callback(); + }, + tearDown: function (callback) { + call_order.push('tearDown'); + callback(); + }, + test1: function (test) { + call_order.push('test1'); + test.done(); + }, + group1: testCase({ + setUp: function (callback) { + call_order.push('group1.setUp'); + callback(); + }, + tearDown: function (callback) { + call_order.push('group1.tearDown'); + callback(); + }, + test2: function (test) { + call_order.push('group1.test2'); + test.done(); + } + }) + }); + nodeunit.runSuite(null, s, {}, function (err, assertions) { + test.same(call_order, [ + 'setUp', + 'test1', + 'tearDown', + 'setUp', + 'group1.setUp', + 'group1.test2', + 'group1.tearDown', + 'tearDown' + ]); + test.done(); + }); +}; diff --git a/node_modules/nodeunit/test/test.html b/node_modules/nodeunit/test/test.html new file mode 100644 index 000000000..31bda3053 --- /dev/null +++ b/node_modules/nodeunit/test/test.html @@ -0,0 +1,26 @@ + + + Nodeunit Test Suite + + + + + + + + + +

    Nodeunit Test Suite

    + + + diff --git a/node_modules/signals/.gitignore b/node_modules/signals/.gitignore new file mode 100644 index 000000000..c91a73ad2 --- /dev/null +++ b/node_modules/signals/.gitignore @@ -0,0 +1,8 @@ +.tmp* +.project +.settings/ + +.DS_Store? +ehthumbs.db +Icon? +Thumbs.db \ No newline at end of file diff --git a/node_modules/signals/.npmignore b/node_modules/signals/.npmignore new file mode 100644 index 000000000..826dec5d2 --- /dev/null +++ b/node_modules/signals/.npmignore @@ -0,0 +1,5 @@ +dev/ +dist/js-signals.amd.js +dist/js-signals.js +dist/js-signals.min.js +build.xml \ No newline at end of file diff --git a/node_modules/signals/CHANGELOG.markdown b/node_modules/signals/CHANGELOG.markdown new file mode 100644 index 000000000..e754bd4e2 --- /dev/null +++ b/node_modules/signals/CHANGELOG.markdown @@ -0,0 +1,184 @@ +# JS-Signals Changelog # + +## v0.6.1 (2011/05/03) ## + + - added NPM package.json and CommmonJS wrapper for NPM distribution. (thanks @tomyan) + + +## v0.6 (2011/04/09) ## + +### API changes ### + + - Added: + - `Signal.active` + - `SignalBinding.active` + + - Removed: + - `Signal.protytpe.enable()` + - `Signal.protytpe.disable()` + - `Signal.protytpe.isEnabled()` + - `SignalBinding.protytpe.enable()` + - `SignalBinding.protytpe.disable()` + - `SignalBinding.protytpe.isEnabled()` + +### Other ### + + - created AMD wrapped version. + - switched from "module pattern" to a closure with a global export. + + + +## v0.5.3 (2011/02/21) ## + +### API changes ### + + - added priority parameter to `add` and `addOnce`. + +### Other ### + + - improved code structure. + + + +## v0.5.2 (2011/02/18) ## + +### Other ### + + - changed to a module pattern. + - added YUI test coverage. + - improved build and src files structure. + - simplified `remove`, `removeAll`, `add`. + - improved error messages. + + + +## v0.5.1 (2011/01/30) ## + +### API changes ### + + - made `SignalBinding` constructor private. (issue #15) + - changed params order on `SignalBinding` constructor. + - removed `signals.isDef()`. (issue #14) + +### Other ### + + - added JSLint to the build process. (issue #12) + - validated source code using JSLint. (issue #13) + - improved docs. + + + +## v0.5 (2010/12/03) ## + +### API changes ### + + - Added: + - `SignalBinding.prototype.getListener()` (issue #3) + - `Signal.prototype.dispose()` (issue #6) + - `signals.VERSION` + - `signals.isDef()` + + - Removed: + - `SignalBinding.listener` (issue #3) + + - Renamed: + - `SignalBinding.listenerScope` -> `SignalBinding.context` (issue #4) + +### Fixes ### + + - Removed unnecessary function names (issue #5) + - Improved `remove()`, `removeAll()` to dispose binding (issue #10) + +### Test Changes ### + + - Added different HTML files to test dev/dist/min files. + - Updated test cases to match new API. + +### Other ### + + - Improved source code comments and documentation. + - Small refactoring for better organization and DRY. + - Added error messages for required params. + - Removed unnecessary info from `SignalBinding.toString()`. + + + +## v0.4 (2010/11/27) ## + +### API changes ### + + - Added: + - `SignalBinding.prototype.detach()` + - `SignalBinding.prototype.dispose()` + +### Test Changes ### + + - Added test cases for `detach` and `dispose`. + +### Other ### + + - Improved docs for a few methods. + - Added internal method `Signal.prototype._addBinding()`. + + + +## v0.3 (2010/11/27) ## + +### API changes ### + + - Renamed: + - `Signal.prototype.stopPropagation()` -> `Signal.prototype.halt()` + - `Signal.prototype.pause()` -> `Signal.prototype.disable()` + - `Signal.prototype.resume()` -> `Signal.prototype.enable()` + - `Signal.prototype.isPaused()` -> `Signal.prototype.isEnabled()` + - `SignalBinding.prototype.pause()` -> `SignalBinding.prototype.disable()` + - `SignalBinding.prototype.resume()` -> `SignalBinding.prototype.enable()` + - `SignalBinding.prototype.isPaused()` -> `SignalBinding.prototype.isEnabled()` + +### Fixes ### + + - Calling `halt()` before/after `dispatch()` doesn't affect listeners execution anymore, `halt()` only works during propagation. + +### Test Changes ### + + - updated API calls to reflect new method names. + - added tests that match `halt()` before/after `dispatch()`. + +### Other ### + +Added inline documentation to source code and included an HTML version of the documentation together with distribution files. + + + +## v0.2 (2010/11/26) ## + +### API changes ### + + - Added: + - `Signal.prototype.pause()` + - `Signal.prototype.resume()` + - `Signal.prototype.isPaused()` + - `Signal.prototype.stopPropagation()` + +### Fixes ### + + - `SignalBinding.prototype.isPaused()` + +### Test Changes ### + + - Increased test coverage a lot. + - Tests added: + - pause/resume (for individual bindings and signal) + - stopPropagation (using `return false` and `Signal.prototype.stopPropagation()`) + - `SignalBindings.prototype.isOnce()` + - if same listener added twice returns same binding + +### Other ### + +Small refactoring and code cleaning. + + + +## v0.1 (2010/11/26) ## + + - initial release, support of basic features. \ No newline at end of file diff --git a/node_modules/signals/README.markdown b/node_modules/signals/README.markdown new file mode 100644 index 000000000..6ab0d8399 --- /dev/null +++ b/node_modules/signals/README.markdown @@ -0,0 +1,64 @@ + +# JS-Signals # + +Custom event/messaging system for JavaScript inspired by [AS3-Signals](https://github.com/robertpenner/as3-signals). + +For a more in-depth introduction read the [JS-Signals Project Page](http://millermedeiros.github.com/js-signals/) and visit the links below. + + +## Links ## + + * [Project Page](http://millermedeiros.github.com/js-signals/) + * [Wiki](http://github.com/millermedeiros/js-signals/wiki/) + * [Documentation](http://millermedeiros.github.com/js-signals/docs) + * [Changelog](http://github.com/millermedeiros/js-signals/blob/master/CHANGELOG.markdown) + + +## License ## + + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + + +## Distribution Files ## + +Files inside `dist` folder. + + * docs/index.html : Documentation. + * js-signals.js : Uncompressed source code with comments. + * js-signals.amd.js : Uncompressed source code wrapped as an [asynchronous module](http://wiki.commonjs.org/wiki/Modules/AsynchronousDefinition) to be used together with [RequireJS](http://requirejs.org/). + * js-signals.cjs.js : Uncompressed source code wrapped as an [CommonJS module](http://wiki.commonjs.org/wiki/Modules/1.1) to be used on [nodejs](http://nodejs.org/) or any other environment that supports CommonJS modules. + * js-signals.min.js : Compressed code. + +You can install JS-Signals on Node.js using [NPM](http://npmjs.org/) + + npm install signals + + +## Repository Structure ## + +### Folder Structure ### + + dev -> development files + |- build -> files used on the build process + |- src -> source files + |- tests -> unit tests + dist -> distribution files + |- docs -> documentation + +### Branches ### + + master -> always contain code from the latest stable version + release-** -> code canditate for the next stable version (alpha/beta) + develop -> main development branch (nightly) + **other** -> features/hotfixes/experimental, probably non-stable code + + +## Building your own ## + +This project uses [Apache Ant](http://ant.apache.org/) for the build process. If for some reason you need to build a custom version of JS-Signals install Ant and run: + + ant build + +This will delete all JS files inside the `dist` folder, merge/update/compress source files, validate generated code using [JSLint](http://www.jslint.com/) and copy the output to the `dist` folder. + +**IMPORTANT:** `dist` folder always contain the latest version, regular users should **not** need to run build task. \ No newline at end of file diff --git a/node_modules/signals/dist/docs/files.html b/node_modules/signals/dist/docs/files.html new file mode 100644 index 000000000..94551df7d --- /dev/null +++ b/node_modules/signals/dist/docs/files.html @@ -0,0 +1,68 @@ + + + + + + JsDoc Reference - File Index + + + + + + + + + +
    + + +
    + + Documentation generated by JsDoc Toolkit 2.4.0 on Tue May 03 2011 01:07:20 GMT-0300 (BRT) + | template based on Steffen Siering jsdoc-simple. +
    + + diff --git a/node_modules/signals/dist/docs/index.html b/node_modules/signals/dist/docs/index.html new file mode 100644 index 000000000..21dedd857 --- /dev/null +++ b/node_modules/signals/dist/docs/index.html @@ -0,0 +1,92 @@ + + + + + + JsDoc Reference - Index + + + + + + + + +
    +
    + +
    + +

    Index

    + +

    Classes

    + + +
    + +
    +

    Class Index

    + + +
    + +
    + Built-In Namespace +
    +

    _global_

    + +
    + +
    + +
    + Namespace +
    +

    signals

    + Signals Namespace - Custom event/messaging system based on AS3 Signals +
    + +
    + +
    + Class +
    +

    signals.Signal

    + +
    + +
    + +
    + Class +
    +

    signals.SignalBinding

    + +
    + +
    + +
    +
    + + Documentation generated by JsDoc Toolkit 2.4.0 on Tue May 03 2011 01:07:20 GMT-0300 (BRT) + | template based on Steffen Siering jsdoc-simple. +
    + + diff --git a/node_modules/signals/dist/docs/static/default.css b/node_modules/signals/dist/docs/static/default.css new file mode 100644 index 000000000..0401aef2f --- /dev/null +++ b/node_modules/signals/dist/docs/static/default.css @@ -0,0 +1,248 @@ +/* + * based on urso jsdoc-simple template: http://github.com/urso/jsdoc-simple + * adapted by Miller Medeiros (http://millermedeiros.com/) + */ + +/* default.css */ +html{ + overflow-y:scroll; +} + +body +{ + font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif; + min-width: 1000px; + max-width: 1400px; + margin:0 auto; +} + +.header +{ + clear: both; + background-color: #ccc; +} + +a +{ + text-decoration: none; + color: #c00; + outline:none; +} + +a:active, a:focus, a:hover{ + color: #333; +} + +h1 +{ + font-size: 1.5em; + font-weight: bold; + padding: 0; + margin: 1em 0 0 .3em; +} + +hr +{ + border: none 0; + border-top: 1px solid #7F8FB1; + height: 1px; +} + +pre.code +{ + display: block; + padding: 8px; + border: 1px dashed #ccc; +} + +#header{ + /*height: 110px;*/ +} + +#index +{ + float: left; + width: 200px; + padding: 20px; +} + +#symbolList +{ + margin: 20px; + width: 200px; + float:right; +} + +#symbolList ul +{ + padding: 0; + margin: 0; + padding-left: 8px; + list-style: none; + font-size: 0.85em; +} + +#symbolList h3 +{ + margin-top:1.2em; + margin-bottom: 0.5em; +} + +#symbolList ul li +{ + padding: 0; + margin: 0; +} + +#content +{ + text-align: left; + padding:0 260px; + margin:0; +} + +.classList +{ + list-style-type: none; + padding: 0; + margin: 0 0 0 8px; + font-family: arial, sans-serif; + font-size: 1em; + overflow: auto; +} + +.classList li +{ + padding: 0; + margin: 0 0 8px 0; +} + +.summaryTable { width: 100%; } + +h1.classTitle +{ + font-size:1.7em; + line-height:1.3em; +} + +h2 { font-size: 1.1em; } +caption, div.sectionTitle +{ + background-color: #ddd; + color: #333; + font-size:1.3em; + text-align: left; + padding: 2px 6px 2px 6px; + margin-top: 1.5em; + border: 1px #ddd solid; +} + +div.sectionTitle { margin-bottom: 8px; } +.summaryTable thead { display: none; } + +.summaryTable td +{ + vertical-align: top; + padding: 4px; + border-bottom: 1px #7F8FB1 solid; + border-right: 1px #7F8FB1 solid; +} + +/*col#summaryAttributes {}*/ +.summaryTable td.attributes +{ + border-left: 1px #7F8FB1 solid; + width: 140px; + text-align: right; +} + +.fixedFont b +{ + color: #c00; +} + +td.attributes, .fixedFont +{ + line-height: 1.1em; + /* color: #002EBE; */ + font-family: "Courier New",Courier,monospace; + font-size: 1.3em; +} + +.modifiers { + float: right; + /* padding: 0 2em 0 2em; */ + padding: 0; + font-size: 0.85em; +} + +.member .description +{ + margin: 0.75em 0 0 0; + padding: 0 0.5em 0 0.5em; +} + +.summaryTable td.nameDescription +{ + text-align: left; + font-size: 1.1em; + line-height: 1.2em; +} + +.summaryTable td.nameDescription, .description +{ + line-height: 15px; + padding: 4px; + padding-left: 4px; +} + +.summaryTable { margin-bottom: 8px; } + +ul.inheritsList +{ + list-style: square; + margin-left: 20px; + padding-left: 0; +} + +.detailList { + margin-left: 20px; + line-height: 15px; +} +.detailList dt { margin-left: 20px; } + +.detailList .heading +{ + font-weight: bold; + padding-bottom: 6px; + margin-left: 0; +} + +.member +{ + border: 1px solid #ccc; + background: #f8f8ff; + margin: 1em 0 1em 0; + padding: 0.75em; +} + +.light, td.attributes, .light a:link, .light a:visited +{ + color: #777; + font-style: italic; +} + +code { + /*display: block; + margin: 1em;*/ + border: 1px solid #ccc; + padding: 2px 5px; + background: #f8f8ff; +} + +.fineprint +{ + text-align: right; + font-size: 10px; + padding:10px 0 20px; +} diff --git a/node_modules/signals/dist/docs/symbolindex.html b/node_modules/signals/dist/docs/symbolindex.html new file mode 100644 index 000000000..a76598b66 --- /dev/null +++ b/node_modules/signals/dist/docs/symbolindex.html @@ -0,0 +1,279 @@ + + + + + + JsDoc Reference - Index + + + + + + + + + + + + +
    +
    + +
    + +

    Index

    + +

    Classes

    + + +
    + +
    +

    Symbol Index

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    active + + signals.Signal#active + + signals.SignalBinding#active + +
    add + + signals.Signal#add + +
    addOnce + + signals.Signal#addOnce + +
    context + + signals.SignalBinding#context + +
    detach + + signals.SignalBinding#detach + +
    dispatch + + signals.Signal#dispatch + +
    dispose + + signals.Signal#dispose + + signals.SignalBinding#dispose + +
    execute + + signals.SignalBinding#execute + +
    getListener + + signals.SignalBinding#getListener + +
    getNumListeners + + signals.Signal#getNumListeners + +
    halt + + signals.Signal#halt + +
    isOnce + + signals.SignalBinding#isOnce + +
    remove + + signals.Signal#remove + +
    removeAll + + signals.Signal#removeAll + +
    Signal + + signals.Signal + +
    SignalBinding + + signals.SignalBinding + +
    signals + + signals + +
    toString + + signals.Signal#toString + + signals.SignalBinding#toString + +
    VERSION + + signals.VERSION + +
    +
    +
    +
    +
    + + Documentation generated by JsDoc Toolkit 2.4.0 on Tue May 03 2011 01:07:20 GMT-0300 (BRT) + | template based on Steffen Siering jsdoc-simple. +
    + + + diff --git a/node_modules/signals/dist/docs/symbols/_global_.html b/node_modules/signals/dist/docs/symbols/_global_.html new file mode 100644 index 000000000..120d62858 --- /dev/null +++ b/node_modules/signals/dist/docs/symbols/_global_.html @@ -0,0 +1,108 @@ + + + + + + + JsDoc Reference - _global_ + + + + + + + + + + + + + +
    +
    + +
    + +

    Index

    + +

    Classes

    + + +
    + +
    + + + + + + + + + + + + + + + + + + +
    + +
    + +

    + Built-In Namespace _global_ +

    + + +

    + + + + + + +

    + + + + + + + + + + + + +
    +
    + + + +
    + + Documentation generated by JsDoc Toolkit 2.4.0 on Tue May 03 2011 01:07:19 GMT-0300 (BRT) + | template based on Steffen Siering jsdoc-simple. +
    + + diff --git a/node_modules/signals/dist/docs/symbols/signals.Signal.html b/node_modules/signals/dist/docs/symbols/signals.Signal.html new file mode 100644 index 000000000..e15bee918 --- /dev/null +++ b/node_modules/signals/dist/docs/symbols/signals.Signal.html @@ -0,0 +1,594 @@ + + + + + + + JsDoc Reference - signals.Signal + + + + + + + + + + + + + +
    +
    + +
    + +

    Index

    + +

    Classes

    + + +
    + +
    + + +

    + Class +

    + + + + + + + +

    Fields

    + + + + + + + +

    Methods

    + + + + + + + + +
    + +
    + +

    + Class signals.Signal +

    + + +

    + + + + + + +
    Defined in: js-signals.js. + +

    + + + +
    +
    + Class Detail +
    + +
    + signals.Signal() +
    + +
    +

    Custom event broadcaster +
    - inspired by Robert Penner's AS3 Signals.

    +
    Author: Miller Medeiros. +
    + + + + + + + + + + + + +
    + + + + +
    +
    + Field Detail +
    + +
    + +
    +
    +
    + + {boolean} + active + +
    +
    +

    If Signal is active and should broadcast events.

    + +

    IMPORTANT: Setting this property during a dispatch will only affect the next dispatch, if you want to stop the propagation of a signal use `halt()` instead.

    + + +
    + + + + + + + +
    + +
    + + + + +
    +
    + Method Detail +
    + +
    + +
    +
    +
    + {SignalBinding} + add(listener, scope, priority) + +
    +
    +

    Add a listener to the signal.

    + + +
    + + + + +
    +
    Parameters:
    + +
    + {Function} listener + +
    +
    Signal handler function.
    + +
    + {Object} scope + Optional +
    +
    Context on which listener will be executed (object that should represent the `this` variable inside listener function).
    + +
    + {Number} priority + Optional +
    +
    The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
    + +
    + + + + + +
    +
    Returns:
    + +
    {SignalBinding} An Object representing the binding between the Signal and listener.
    + +
    + + + + +
    + +
    + +
    +
    +
    + {SignalBinding} + addOnce(listener, scope, priority) + +
    +
    +

    Add listener to the signal that should be removed after first execution (will be executed only once).

    + + +
    + + + + +
    +
    Parameters:
    + +
    + {Function} listener + +
    +
    Signal handler function.
    + +
    + {Object} scope + Optional +
    +
    Context on which listener will be executed (object that should represent the `this` variable inside listener function).
    + +
    + {Number} priority + Optional +
    +
    The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
    + +
    + + + + + +
    +
    Returns:
    + +
    {SignalBinding} An Object representing the binding between the Signal and listener.
    + +
    + + + + +
    + +
    + +
    +
    +
    + + dispatch(params) + +
    +
    +

    Dispatch/Broadcast Signal to all listeners added to the queue.

    + + +
    + + + + +
    +
    Parameters:
    + +
    + {...*} params + Optional +
    +
    Parameters that should be passed to each handler.
    + +
    + + + + + + + + +
    + +
    + +
    +
    +
    + + dispose() + +
    +
    +

    Remove all bindings from signal and destroy any reference to external objects (destroy Signal object).

    + +

    IMPORTANT: calling any method on the signal instance after calling dispose will throw errors.

    + + +
    + + + + + + + + + + + +
    + +
    + +
    +
    +
    + {number} + getNumListeners() + +
    +
    + + + +
    + + + + + + + + +
    +
    Returns:
    + +
    {number} Number of listeners attached to the Signal.
    + +
    + + + + +
    + +
    + +
    +
    +
    + + halt() + +
    +
    +

    Stop propagation of the event, blocking the dispatch to next listeners on the queue.

    + +

    IMPORTANT: should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.

    + + +
    + + + + + + + + + + +
    +
    See:
    + +
    signals.Signal.prototype.disable
    + +
    + + +
    + +
    + +
    +
    +
    + {Function} + remove(listener) + +
    +
    +

    Remove a single listener from the dispatch queue.

    + + +
    + + + + +
    +
    Parameters:
    + +
    + {Function} listener + +
    +
    Handler function that should be removed.
    + +
    + + + + + +
    +
    Returns:
    + +
    {Function} Listener handler function.
    + +
    + + + + +
    + +
    + +
    +
    +
    + + removeAll() + +
    +
    +

    Remove all listeners from the Signal.

    + + +
    + + + + + + + + + + + +
    + +
    + +
    +
    +
    + {string} + toString() + +
    +
    + + + +
    + + + + + + + + +
    +
    Returns:
    + +
    {string} String representation of the object.
    + +
    + + + + +
    + +
    + + + + +
    +
    + + + +
    + + Documentation generated by JsDoc Toolkit 2.4.0 on Tue May 03 2011 01:07:20 GMT-0300 (BRT) + | template based on Steffen Siering jsdoc-simple. +
    + + diff --git a/node_modules/signals/dist/docs/symbols/signals.SignalBinding.html b/node_modules/signals/dist/docs/symbols/signals.SignalBinding.html new file mode 100644 index 000000000..b578d9d68 --- /dev/null +++ b/node_modules/signals/dist/docs/symbols/signals.SignalBinding.html @@ -0,0 +1,500 @@ + + + + + + + JsDoc Reference - signals.SignalBinding + + + + + + + + + + + + + +
    +
    + +
    + +

    Index

    + +

    Classes

    + + +
    + +
    + + +

    + Class +

    + + + + + + + +

    Fields

    + + + + + + + +

    Methods

    + + + + + + + + +
    + +
    + +

    + Class signals.SignalBinding +

    + + +

    + + + + + + +
    Defined in: js-signals.js. + +

    + + + +
    +
    + Class Detail +
    + +
    + signals.SignalBinding(signal, listener, isOnce, listenerContext, priority) +
    + +
    +

    Object that represents a binding between a Signal and a listener function. +
    - This is an internal constructor and shouldn't be called by regular users. +
    - inspired by Joa Ebert AS3 SignalBinding and Robert Penner's Slot classes.

    +
    Author: Miller Medeiros. +
    + + + + + +
    +
    Parameters:
    + +
    + {signals.Signal} signal + +
    +
    Reference to Signal object that listener is currently bound to.
    + +
    + {Function} listener + +
    +
    Handler function bound to the signal.
    + +
    + {boolean} isOnce + +
    +
    If binding should be executed just once.
    + +
    + {Object} listenerContext + Optional +
    +
    Context on which listener will be executed (object that should represent the `this` variable inside listener function).
    + +
    + {Number} priority + Optional +
    +
    The priority level of the event listener. (default = 0).
    + +
    + + + + + + + + +
    + + + + +
    +
    + Field Detail +
    + +
    + +
    +
    +
    + + {boolean} + active + +
    +
    +

    If binding is active and should be executed.

    + + +
    + + + + + + + +
    + +
    + +
    +
    +
    + + {Object|undefined|null} + context + +
    +
    +

    Context on which listener will be executed (object that should represent the this variable inside listener function).

    + + +
    + + + + + + + +
    + +
    + + + + +
    +
    + Method Detail +
    + +
    + +
    +
    +
    + {Function} + detach() + +
    +
    +

    Detach binding from signal. +- alias to: mySignal.remove(myBinding.getListener());

    + + +
    + + + + + + + + +
    +
    Returns:
    + +
    {Function} Handler function bound to the signal.
    + +
    + + + + +
    + +
    + +
    +
    +
    + + dispose() + +
    +
    +

    Remove binding from signal and destroy any reference to external Objects (destroy SignalBinding object).

    + +

    IMPORTANT: calling methods on the binding instance after calling dispose will throw errors.

    + + +
    + + + + + + + + + + + +
    + +
    + +
    +
    +
    + {*} + execute(paramsArr) + +
    +
    +

    Call listener passing arbitrary parameters.

    + +

    If binding was added using `Signal.addOnce()` it will be automatically removed from signal dispatch queue, this method is used internally for the signal dispatch.

    + + +
    + + + + +
    +
    Parameters:
    + +
    + {Array} paramsArr + Optional +
    +
    Array of parameters that should be passed to the listener
    + +
    + + + + + +
    +
    Returns:
    + +
    {*} Value returned by the listener.
    + +
    + + + + +
    + +
    + +
    +
    +
    + {Function} + getListener() + +
    +
    + + + +
    + + + + + + + + +
    +
    Returns:
    + +
    {Function} Handler function bound to the signal.
    + +
    + + + + +
    + +
    + +
    +
    +
    + {boolean} + isOnce() + +
    +
    + + + +
    + + + + + + + + +
    +
    Returns:
    + +
    {boolean} If SignalBinding will only be executed once.
    + +
    + + + + +
    + +
    + +
    +
    +
    + {string} + toString() + +
    +
    + + + +
    + + + + + + + + +
    +
    Returns:
    + +
    {string} String representation of the object.
    + +
    + + + + +
    + +
    + + + + +
    +
    + + + +
    + + Documentation generated by JsDoc Toolkit 2.4.0 on Tue May 03 2011 01:07:20 GMT-0300 (BRT) + | template based on Steffen Siering jsdoc-simple. +
    + + diff --git a/node_modules/signals/dist/docs/symbols/signals.html b/node_modules/signals/dist/docs/symbols/signals.html new file mode 100644 index 000000000..263c648c2 --- /dev/null +++ b/node_modules/signals/dist/docs/symbols/signals.html @@ -0,0 +1,186 @@ + + + + + + + JsDoc Reference - signals + + + + + + + + + + + + + +
    +
    + +
    + +

    Index

    + +

    Classes

    + + +
    + +
    + + +

    + Namespace +

    + + + + + + + +

    Variables

    + + + + + + + + + + + + + +
    + +
    + +

    + Namespace signals +

    + + +

    + + + + Signals Namespace - Custom event/messaging system based on AS3 Signals + + +
    Defined in: js-signals.js. + +

    + + + +
    +
    + Namespace Detail +
    + +
    + signals +
    + +
    + + +
    + + + + + + + + + + + + +
    + + + + +
    +
    + Field Detail +
    + +
    + +
    +
    <static> +
    + + {String} + signals.VERSION + +
    +
    +

    Signals Version Number

    + + +
    + + + + + + + +
    + +
    + + + + + + + +
    +
    + + + +
    + + Documentation generated by JsDoc Toolkit 2.4.0 on Tue May 03 2011 01:07:19 GMT-0300 (BRT) + | template based on Steffen Siering jsdoc-simple. +
    + + diff --git a/node_modules/signals/dist/docs/symbols/src/_Users_millermedeiros_Projects__open_source_js-signals_dist_js-signals.js.html b/node_modules/signals/dist/docs/symbols/src/_Users_millermedeiros_Projects__open_source_js-signals_dist_js-signals.js.html new file mode 100644 index 000000000..f7c14d510 --- /dev/null +++ b/node_modules/signals/dist/docs/symbols/src/_Users_millermedeiros_Projects__open_source_js-signals_dist_js-signals.js.html @@ -0,0 +1,363 @@ +
      1 /*jslint onevar:true, undef:true, newcap:true, regexp:true, bitwise:true, maxerr:50, indent:4, white:false, nomen:false, plusplus:false */
    +  2 /*global window:false, global:false*/
    +  3 
    +  4 /*!!
    +  5  * JS Signals <http://millermedeiros.github.com/js-signals/>
    +  6  * Released under the MIT license <http://www.opensource.org/licenses/mit-license.php>
    +  7  * @author Miller Medeiros <http://millermedeiros.com/>
    +  8  * @version 0.6.1
    +  9  * @build 178 (05/03/2011 01:07 AM)
    + 10  */
    + 11 (function(global){
    + 12 	
    + 13 	/**
    + 14 	 * @namespace Signals Namespace - Custom event/messaging system based on AS3 Signals
    + 15 	 * @name signals
    + 16 	 */
    + 17 	var signals = /** @lends signals */{
    + 18 		/**
    + 19 		 * Signals Version Number
    + 20 		 * @type String
    + 21 		 * @const
    + 22 		 */
    + 23 		VERSION : '0.6.1'
    + 24 	};
    + 25 
    + 26 	// SignalBinding -------------------------------------------------
    + 27 	//================================================================
    + 28 	
    + 29 	/**
    + 30 	 * Object that represents a binding between a Signal and a listener function.
    + 31 	 * <br />- <strong>This is an internal constructor and shouldn't be called by regular users.</strong>
    + 32 	 * <br />- inspired by Joa Ebert AS3 SignalBinding and Robert Penner's Slot classes.
    + 33 	 * @author Miller Medeiros
    + 34 	 * @constructor
    + 35 	 * @internal
    + 36 	 * @name signals.SignalBinding
    + 37 	 * @param {signals.Signal} signal	Reference to Signal object that listener is currently bound to.
    + 38 	 * @param {Function} listener	Handler function bound to the signal.
    + 39 	 * @param {boolean} isOnce	If binding should be executed just once.
    + 40 	 * @param {Object} [listenerContext]	Context on which listener will be executed (object that should represent the `this` variable inside listener function).
    + 41 	 * @param {Number} [priority]	The priority level of the event listener. (default = 0).
    + 42 	 */
    + 43 	 function SignalBinding(signal, listener, isOnce, listenerContext, priority){
    + 44 		
    + 45 		/**
    + 46 		 * Handler function bound to the signal.
    + 47 		 * @type Function
    + 48 		 * @private
    + 49 		 */
    + 50 		this._listener = listener;
    + 51 		
    + 52 		/**
    + 53 		 * If binding should be executed just once.
    + 54 		 * @type boolean
    + 55 		 * @private
    + 56 		 */
    + 57 		this._isOnce = isOnce;
    + 58 		
    + 59 		/**
    + 60 		 * Context on which listener will be executed (object that should represent the `this` variable inside listener function).
    + 61 		 * @memberOf signals.SignalBinding.prototype
    + 62 		 * @name context
    + 63 		 * @type Object|undefined|null
    + 64 		 */
    + 65 		this.context = listenerContext;
    + 66 		
    + 67 		/**
    + 68 		 * Reference to Signal object that listener is currently bound to.
    + 69 		 * @type signals.Signal
    + 70 		 * @private
    + 71 		 */
    + 72 		this._signal = signal;
    + 73 		
    + 74 		/**
    + 75 		 * Listener priority
    + 76 		 * @type Number
    + 77 		 * @private
    + 78 		 */
    + 79 		this._priority = priority || 0;
    + 80 	}
    + 81 	
    + 82 	SignalBinding.prototype = /** @lends signals.SignalBinding.prototype */ {
    + 83 		
    + 84 		/**
    + 85 		 * If binding is active and should be executed.
    + 86 		 * @type boolean
    + 87 		 */
    + 88 		active : true,
    + 89 		
    + 90 		/**
    + 91 		 * Call listener passing arbitrary parameters.
    + 92 		 * <p>If binding was added using `Signal.addOnce()` it will be automatically removed from signal dispatch queue, this method is used internally for the signal dispatch.</p> 
    + 93 		 * @param {Array} [paramsArr]	Array of parameters that should be passed to the listener
    + 94 		 * @return {*} Value returned by the listener.
    + 95 		 */
    + 96 		execute : function(paramsArr){
    + 97 			var r;
    + 98 			if(this.active){
    + 99 				r = this._listener.apply(this.context, paramsArr);
    +100 				if(this._isOnce){
    +101 					this.detach();
    +102 				}
    +103 			}
    +104 			return r;
    +105 		},
    +106 		
    +107 		/**
    +108 		 * Detach binding from signal.
    +109 		 * - alias to: mySignal.remove(myBinding.getListener());
    +110 		 * @return {Function} Handler function bound to the signal.
    +111 		 */
    +112 		detach : function(){
    +113 			return this._signal.remove(this._listener);
    +114 		},
    +115 		
    +116 		/**
    +117 		 * @return {Function} Handler function bound to the signal.
    +118 		 */
    +119 		getListener : function(){
    +120 			return this._listener;
    +121 		},
    +122 		
    +123 		/**
    +124 		 * Remove binding from signal and destroy any reference to external Objects (destroy SignalBinding object).
    +125 		 * <p><strong>IMPORTANT:</strong> calling methods on the binding instance after calling dispose will throw errors.</p>
    +126 		 */
    +127 		dispose : function(){
    +128 			this.detach();
    +129 			this._destroy();
    +130 		},
    +131 		
    +132 		/**
    +133 		 * Delete all instance properties
    +134 		 * @private
    +135 		 */
    +136 		_destroy : function(){
    +137 			delete this._signal;
    +138 			delete this._isOnce;
    +139 			delete this._listener;
    +140 			delete this.context;
    +141 		},
    +142 		
    +143 		/**
    +144 		 * @return {boolean} If SignalBinding will only be executed once.
    +145 		 */
    +146 		isOnce : function(){
    +147 			return this._isOnce;
    +148 		},
    +149 		
    +150 		/**
    +151 		 * @return {string} String representation of the object.
    +152 		 */
    +153 		toString : function(){
    +154 			return '[SignalBinding isOnce: '+ this._isOnce +', active: '+ this.active +']';
    +155 		}
    +156 		
    +157 	};
    +158 
    +159 /*global signals:true, SignalBinding:true*/
    +160 	
    +161 	// Signal --------------------------------------------------------
    +162 	//================================================================
    +163 	
    +164 	/**
    +165 	 * Custom event broadcaster
    +166 	 * <br />- inspired by Robert Penner's AS3 Signals.
    +167 	 * @author Miller Medeiros
    +168 	 * @constructor
    +169 	 */
    +170 	signals.Signal = function(){
    +171 		/**
    +172 		 * @type Array.<SignalBinding>
    +173 		 * @private
    +174 		 */
    +175 		this._bindings = [];
    +176 	};
    +177 	
    +178 	signals.Signal.prototype = {
    +179 		
    +180 		/**
    +181 		 * @type boolean
    +182 		 * @private
    +183 		 */
    +184 		_shouldPropagate : true,
    +185 		
    +186 		/**
    +187 		 * If Signal is active and should broadcast events.
    +188 		 * <p><strong>IMPORTANT:</strong> Setting this property during a dispatch will only affect the next dispatch, if you want to stop the propagation of a signal use `halt()` instead.</p>
    +189 		 * @type boolean
    +190 		 */
    +191 		active : true,
    +192 		
    +193 		/**
    +194 		 * @param {Function} listener
    +195 		 * @param {boolean} isOnce
    +196 		 * @param {Object} [scope]
    +197 		 * @param {Number} [priority]
    +198 		 * @return {SignalBinding}
    +199 		 * @private
    +200 		 */
    +201 		_registerListener : function(listener, isOnce, scope, priority){
    +202 			
    +203 			if(typeof listener !== 'function'){
    +204 				throw new Error('listener is a required param of add() and addOnce() and should be a Function.');
    +205 			}
    +206 			
    +207 			var prevIndex = this._indexOfListener(listener),
    +208 				binding;
    +209 			
    +210 			if(prevIndex !== -1){ //avoid creating a new Binding for same listener if already added to list
    +211 				binding = this._bindings[prevIndex];
    +212 				if(binding.isOnce() !== isOnce){
    +213 					throw new Error('You cannot add'+ (isOnce? '' : 'Once') +'() then add'+ (!isOnce? '' : 'Once') +'() the same listener without removing the relationship first.');
    +214 				}
    +215 			} else {
    +216 				binding = new SignalBinding(this, listener, isOnce, scope, priority);
    +217 				this._addBinding(binding);
    +218 			}
    +219 			
    +220 			return binding;
    +221 		},
    +222 		
    +223 		/**
    +224 		 * @param {Function} binding
    +225 		 * @private
    +226 		 */
    +227 		_addBinding : function(binding){
    +228 			//simplified insertion sort
    +229 			var n = this._bindings.length;
    +230 			do { --n; } while (this._bindings[n] && binding._priority <= this._bindings[n]._priority);
    +231 			this._bindings.splice(n+1, 0, binding);
    +232 		},
    +233 		
    +234 		/**
    +235 		 * @param {Function} listener
    +236 		 * @return {number}
    +237 		 * @private
    +238 		 */
    +239 		_indexOfListener : function(listener){
    +240 			var n = this._bindings.length;
    +241 			while(n--){
    +242 				if(this._bindings[n]._listener === listener){
    +243 					return n;
    +244 				}
    +245 			}
    +246 			return -1;
    +247 		},
    +248 		
    +249 		/**
    +250 		 * Add a listener to the signal.
    +251 		 * @param {Function} listener	Signal handler function.
    +252 		 * @param {Object} [scope]	Context on which listener will be executed (object that should represent the `this` variable inside listener function).
    +253 		 * @param {Number} [priority]	The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
    +254 		 * @return {SignalBinding} An Object representing the binding between the Signal and listener.
    +255 		 */
    +256 		add : function(listener, scope, priority){
    +257 			return this._registerListener(listener, false, scope, priority);
    +258 		},
    +259 		
    +260 		/**
    +261 		 * Add listener to the signal that should be removed after first execution (will be executed only once).
    +262 		 * @param {Function} listener	Signal handler function.
    +263 		 * @param {Object} [scope]	Context on which listener will be executed (object that should represent the `this` variable inside listener function).
    +264 		 * @param {Number} [priority]	The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
    +265 		 * @return {SignalBinding} An Object representing the binding between the Signal and listener.
    +266 		 */
    +267 		addOnce : function(listener, scope, priority){
    +268 			return this._registerListener(listener, true, scope, priority);
    +269 		},
    +270 		
    +271 		/**
    +272 		 * Remove a single listener from the dispatch queue.
    +273 		 * @param {Function} listener	Handler function that should be removed.
    +274 		 * @return {Function} Listener handler function.
    +275 		 */
    +276 		remove : function(listener){
    +277 			if(typeof listener !== 'function'){
    +278 				throw new Error('listener is a required param of remove() and should be a Function.');
    +279 			}
    +280 			
    +281 			var i = this._indexOfListener(listener);
    +282 			if(i !== -1){
    +283 				this._bindings[i]._destroy(); //no reason to a SignalBinding exist if it isn't attached to a signal
    +284 				this._bindings.splice(i, 1);
    +285 			}
    +286 			return listener;
    +287 		},
    +288 		
    +289 		/**
    +290 		 * Remove all listeners from the Signal.
    +291 		 */
    +292 		removeAll : function(){
    +293 			var n = this._bindings.length;
    +294 			while(n--){
    +295 				this._bindings[n]._destroy();
    +296 			}
    +297 			this._bindings.length = 0;
    +298 		},
    +299 		
    +300 		/**
    +301 		 * @return {number} Number of listeners attached to the Signal.
    +302 		 */
    +303 		getNumListeners : function(){
    +304 			return this._bindings.length;
    +305 		},
    +306 		
    +307 		/**
    +308 		 * Stop propagation of the event, blocking the dispatch to next listeners on the queue.
    +309 		 * <p><strong>IMPORTANT:</strong> should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.</p>
    +310 		 * @see signals.Signal.prototype.disable 
    +311 		 */
    +312 		halt : function(){
    +313 			this._shouldPropagate = false;
    +314 		},
    +315 		
    +316 		/**
    +317 		 * Dispatch/Broadcast Signal to all listeners added to the queue. 
    +318 		 * @param {...*} [params]	Parameters that should be passed to each handler.
    +319 		 */
    +320 		dispatch : function(params){
    +321 			if(! this.active){
    +322 				return;
    +323 			}
    +324 			
    +325 			var paramsArr = Array.prototype.slice.call(arguments),
    +326 				bindings = this._bindings.slice(), //clone array in case add/remove items during dispatch
    +327 				n = this._bindings.length;
    +328 			
    +329 			this._shouldPropagate = true; //in case `halt` was called before dispatch or during the previous dispatch.
    +330 			
    +331 			//execute all callbacks until end of the list or until a callback returns `false` or stops propagation
    +332 			//reverse loop since listeners with higher priority will be added at the end of the list
    +333 			do { n--; } while (bindings[n] && this._shouldPropagate && bindings[n].execute(paramsArr) !== false);
    +334 		},
    +335 		
    +336 		/**
    +337 		 * Remove all bindings from signal and destroy any reference to external objects (destroy Signal object).
    +338 		 * <p><strong>IMPORTANT:</strong> calling any method on the signal instance after calling dispose will throw errors.</p>
    +339 		 */
    +340 		dispose : function(){
    +341 			this.removeAll();
    +342 			delete this._bindings;
    +343 		},
    +344 		
    +345 		/**
    +346 		 * @return {string} String representation of the object.
    +347 		 */
    +348 		toString : function(){
    +349 			return '[Signal active: '+ this.active +' numListeners: '+ this.getNumListeners() +']';
    +350 		}
    +351 		
    +352 	};
    +353 
    +354 	global.signals = signals;
    +355 	
    +356 }(window || global || this));
    \ No newline at end of file diff --git a/node_modules/signals/dist/js-signals.cjs.js b/node_modules/signals/dist/js-signals.cjs.js new file mode 100644 index 000000000..3f61d391f --- /dev/null +++ b/node_modules/signals/dist/js-signals.cjs.js @@ -0,0 +1,354 @@ +/*jslint onevar:true, undef:true, newcap:true, regexp:true, bitwise:true, maxerr:50, indent:4, white:false, nomen:false, plusplus:false */ +/*global module:false*/ + +/*!! + * JS Signals + * Released under the MIT license + * @author Miller Medeiros + * @version 0.6.1 + * @build 179 (05/03/2011 01:20 AM) + */ + + /** + * @namespace Signals Namespace - Custom event/messaging system based on AS3 Signals + * @name signals + */ + var signals = /** @lends signals */{ + /** + * Signals Version Number + * @type String + * @const + */ + VERSION : '0.6.1' + }; + + // SignalBinding ------------------------------------------------- + //================================================================ + + /** + * Object that represents a binding between a Signal and a listener function. + *
    - This is an internal constructor and shouldn't be called by regular users. + *
    - inspired by Joa Ebert AS3 SignalBinding and Robert Penner's Slot classes. + * @author Miller Medeiros + * @constructor + * @internal + * @name signals.SignalBinding + * @param {signals.Signal} signal Reference to Signal object that listener is currently bound to. + * @param {Function} listener Handler function bound to the signal. + * @param {boolean} isOnce If binding should be executed just once. + * @param {Object} [listenerContext] Context on which listener will be executed (object that should represent the `this` variable inside listener function). + * @param {Number} [priority] The priority level of the event listener. (default = 0). + */ + function SignalBinding(signal, listener, isOnce, listenerContext, priority){ + + /** + * Handler function bound to the signal. + * @type Function + * @private + */ + this._listener = listener; + + /** + * If binding should be executed just once. + * @type boolean + * @private + */ + this._isOnce = isOnce; + + /** + * Context on which listener will be executed (object that should represent the `this` variable inside listener function). + * @memberOf signals.SignalBinding.prototype + * @name context + * @type Object|undefined|null + */ + this.context = listenerContext; + + /** + * Reference to Signal object that listener is currently bound to. + * @type signals.Signal + * @private + */ + this._signal = signal; + + /** + * Listener priority + * @type Number + * @private + */ + this._priority = priority || 0; + } + + SignalBinding.prototype = /** @lends signals.SignalBinding.prototype */ { + + /** + * If binding is active and should be executed. + * @type boolean + */ + active : true, + + /** + * Call listener passing arbitrary parameters. + *

    If binding was added using `Signal.addOnce()` it will be automatically removed from signal dispatch queue, this method is used internally for the signal dispatch.

    + * @param {Array} [paramsArr] Array of parameters that should be passed to the listener + * @return {*} Value returned by the listener. + */ + execute : function(paramsArr){ + var r; + if(this.active){ + r = this._listener.apply(this.context, paramsArr); + if(this._isOnce){ + this.detach(); + } + } + return r; + }, + + /** + * Detach binding from signal. + * - alias to: mySignal.remove(myBinding.getListener()); + * @return {Function} Handler function bound to the signal. + */ + detach : function(){ + return this._signal.remove(this._listener); + }, + + /** + * @return {Function} Handler function bound to the signal. + */ + getListener : function(){ + return this._listener; + }, + + /** + * Remove binding from signal and destroy any reference to external Objects (destroy SignalBinding object). + *

    IMPORTANT: calling methods on the binding instance after calling dispose will throw errors.

    + */ + dispose : function(){ + this.detach(); + this._destroy(); + }, + + /** + * Delete all instance properties + * @private + */ + _destroy : function(){ + delete this._signal; + delete this._isOnce; + delete this._listener; + delete this.context; + }, + + /** + * @return {boolean} If SignalBinding will only be executed once. + */ + isOnce : function(){ + return this._isOnce; + }, + + /** + * @return {string} String representation of the object. + */ + toString : function(){ + return '[SignalBinding isOnce: '+ this._isOnce +', active: '+ this.active +']'; + } + + }; + +/*global signals:true, SignalBinding:true*/ + + // Signal -------------------------------------------------------- + //================================================================ + + /** + * Custom event broadcaster + *
    - inspired by Robert Penner's AS3 Signals. + * @author Miller Medeiros + * @constructor + */ + signals.Signal = function(){ + /** + * @type Array. + * @private + */ + this._bindings = []; + }; + + signals.Signal.prototype = { + + /** + * @type boolean + * @private + */ + _shouldPropagate : true, + + /** + * If Signal is active and should broadcast events. + *

    IMPORTANT: Setting this property during a dispatch will only affect the next dispatch, if you want to stop the propagation of a signal use `halt()` instead.

    + * @type boolean + */ + active : true, + + /** + * @param {Function} listener + * @param {boolean} isOnce + * @param {Object} [scope] + * @param {Number} [priority] + * @return {SignalBinding} + * @private + */ + _registerListener : function(listener, isOnce, scope, priority){ + + if(typeof listener !== 'function'){ + throw new Error('listener is a required param of add() and addOnce() and should be a Function.'); + } + + var prevIndex = this._indexOfListener(listener), + binding; + + if(prevIndex !== -1){ //avoid creating a new Binding for same listener if already added to list + binding = this._bindings[prevIndex]; + if(binding.isOnce() !== isOnce){ + throw new Error('You cannot add'+ (isOnce? '' : 'Once') +'() then add'+ (!isOnce? '' : 'Once') +'() the same listener without removing the relationship first.'); + } + } else { + binding = new SignalBinding(this, listener, isOnce, scope, priority); + this._addBinding(binding); + } + + return binding; + }, + + /** + * @param {Function} binding + * @private + */ + _addBinding : function(binding){ + //simplified insertion sort + var n = this._bindings.length; + do { --n; } while (this._bindings[n] && binding._priority <= this._bindings[n]._priority); + this._bindings.splice(n+1, 0, binding); + }, + + /** + * @param {Function} listener + * @return {number} + * @private + */ + _indexOfListener : function(listener){ + var n = this._bindings.length; + while(n--){ + if(this._bindings[n]._listener === listener){ + return n; + } + } + return -1; + }, + + /** + * Add a listener to the signal. + * @param {Function} listener Signal handler function. + * @param {Object} [scope] Context on which listener will be executed (object that should represent the `this` variable inside listener function). + * @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0) + * @return {SignalBinding} An Object representing the binding between the Signal and listener. + */ + add : function(listener, scope, priority){ + return this._registerListener(listener, false, scope, priority); + }, + + /** + * Add listener to the signal that should be removed after first execution (will be executed only once). + * @param {Function} listener Signal handler function. + * @param {Object} [scope] Context on which listener will be executed (object that should represent the `this` variable inside listener function). + * @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0) + * @return {SignalBinding} An Object representing the binding between the Signal and listener. + */ + addOnce : function(listener, scope, priority){ + return this._registerListener(listener, true, scope, priority); + }, + + /** + * Remove a single listener from the dispatch queue. + * @param {Function} listener Handler function that should be removed. + * @return {Function} Listener handler function. + */ + remove : function(listener){ + if(typeof listener !== 'function'){ + throw new Error('listener is a required param of remove() and should be a Function.'); + } + + var i = this._indexOfListener(listener); + if(i !== -1){ + this._bindings[i]._destroy(); //no reason to a SignalBinding exist if it isn't attached to a signal + this._bindings.splice(i, 1); + } + return listener; + }, + + /** + * Remove all listeners from the Signal. + */ + removeAll : function(){ + var n = this._bindings.length; + while(n--){ + this._bindings[n]._destroy(); + } + this._bindings.length = 0; + }, + + /** + * @return {number} Number of listeners attached to the Signal. + */ + getNumListeners : function(){ + return this._bindings.length; + }, + + /** + * Stop propagation of the event, blocking the dispatch to next listeners on the queue. + *

    IMPORTANT: should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.

    + * @see signals.Signal.prototype.disable + */ + halt : function(){ + this._shouldPropagate = false; + }, + + /** + * Dispatch/Broadcast Signal to all listeners added to the queue. + * @param {...*} [params] Parameters that should be passed to each handler. + */ + dispatch : function(params){ + if(! this.active){ + return; + } + + var paramsArr = Array.prototype.slice.call(arguments), + bindings = this._bindings.slice(), //clone array in case add/remove items during dispatch + n = this._bindings.length; + + this._shouldPropagate = true; //in case `halt` was called before dispatch or during the previous dispatch. + + //execute all callbacks until end of the list or until a callback returns `false` or stops propagation + //reverse loop since listeners with higher priority will be added at the end of the list + do { n--; } while (bindings[n] && this._shouldPropagate && bindings[n].execute(paramsArr) !== false); + }, + + /** + * Remove all bindings from signal and destroy any reference to external objects (destroy Signal object). + *

    IMPORTANT: calling any method on the signal instance after calling dispose will throw errors.

    + */ + dispose : function(){ + this.removeAll(); + delete this._bindings; + }, + + /** + * @return {string} String representation of the object. + */ + toString : function(){ + return '[Signal active: '+ this.active +' numListeners: '+ this.getNumListeners() +']'; + } + + }; + +module.exports = signals; + diff --git a/node_modules/signals/package.json b/node_modules/signals/package.json new file mode 100644 index 000000000..287fd47c1 --- /dev/null +++ b/node_modules/signals/package.json @@ -0,0 +1,25 @@ +{ + "name" : "signals", + "description" : "Custom Event/Messaging System", + "keywords" : ["js-signals", "signals", "pub/sub", "event", "publish", "subscribe", "observer"], + "homepage" : "http://millermedeiros.github.com/js-signals/", + "version" : "0.6.1", + "author" : "Miller Medeiros", + "repository" : { + "type" : "git", + "url" : "https://github.com/millermedeiros/js-signals.git" + }, + "main" : "dist/js-signals.cjs.js", + "bugs" : { + "web" : "https://github.com/millermedeiros/js-signals/issues" + }, + "directories" : { + "doc" : "./dist/docs" + }, + "licenses" : [ + { + "type" : "MIT", + "url" : "http://www.opensource.org/licenses/mit-license.php" + } + ] +} \ No newline at end of file diff --git a/node_modules/underscore.string/.gitignore b/node_modules/underscore.string/.gitignore new file mode 100644 index 000000000..496ee2ca6 --- /dev/null +++ b/node_modules/underscore.string/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/node_modules/underscore.string/.hgignore b/node_modules/underscore.string/.hgignore new file mode 100644 index 000000000..9b4e43b94 --- /dev/null +++ b/node_modules/underscore.string/.hgignore @@ -0,0 +1,5 @@ +glob:.git +glob:.project +glob:index.html +glob:*.swp +glob:.DS_Store \ No newline at end of file diff --git a/node_modules/underscore.string/README.markdown b/node_modules/underscore.string/README.markdown new file mode 100644 index 000000000..44fe372b1 --- /dev/null +++ b/node_modules/underscore.string/README.markdown @@ -0,0 +1,339 @@ +# Underscore.string # + +Idea: Esa-Matti Suuronen (esa-matti aet suuronen dot org) + +Authors: Esa-Matti Suuronen, Edward Tsech + +Javascript lacks complete string manipulation operations. +This an attempt to fill that cap. List of buildin methods can be found +for example from [Dive Into JavaScript][d]. + +[d]: http://www.diveintojavascript.com/core-javascript-reference/the-string-object + + +As name states this an extension for [Underscore.js][u], but it can be used +independently from **_s**-global variable. But with Underscore.js you can +use Object-Oriented style and chaining: + +[u]: http://documentcloud.github.com/underscore/ + + _(" epeli ").chain().trim().capitalize().value() + => "Epeli" + +## Node.js installation ## + +**npm package** + + npm install underscore.string + +**Standalone usage**: + + var _s = require('undescore.string'); + +**Integrate with Underscore.js**: + + var _ = require('underscore'); + _.mixin(require('underscore.string')); + +## String Functions ## + +**capitalize** _.capitalize(string) + +Converts first letter of the string to uppercase. + + _.capitalize("epeli") + => "Epeli" + +**chop** _.chop(string, step) + + _.chop('whitespace', 3) + => ['whi','tes','pac','e'] + +**clean** _.clean(str) + +Compress some whitespaces to one. + + _.clean(" foo bar ") + => 'foo bar' + +**chars** _.chars(str) + + _.chars('Hello') + => ['H','e','l','l','o'] + +**includes** _.includes(string, substring) + +Tests if string contains a substring. + + _.includes("foobar", "ob") + => true + +**count** _.count(string, substring) + + _('Hello world').count('l') + => 3 + +**escapeHTML** _.escapeHTML(string) + +Converts HTML special characters to their entity equivalents. + + _('
    Blah blah blah
    ').escapeHTML(); + => '<div>Blah blah blah</div>' + +**unescapeHTML** _.unescapeHTML(string) + +Converts entity characters to HTML equivalents. + + _('<div>Blah blah blah</div>').unescapeHTML(); + => '
    Blah blah blah
    ' + +**insert** _.insert(string, index, substing) + + _('Hello ').insert(6, 'world') + => 'Hello world' + +**join** _.join(separator, *strings) + +Joins strings together with given separator + + _.join(" ", "foo", "bar") + => "foo bar" + +**lines** _.lines(str) + + _.lines("Hello\nWorld") + => ["Hello", "World"] + +**reverse** + +This functions has been removed, because this function override underscore.js 'reverse'. +But now you can do that: + + _("foobar").chars().reverse().join('') + +**splice** _.splice(string, index, howmany, substring) + +Like a array splice. + + _('https://edtsech@bitbucket.org/edtsech/underscore.strings').splice(30, 7, 'epeli') + => 'https://edtsech@bitbucket.org/epeli/underscore.strings' + +**startsWith** _.startsWith(string, starts) + +This method checks whether string starts with starts. + + _("image.gif").startsWith("image") + => true + +**endsWith** _.endsWith(string, ends) + +This method checks whether string ends with ends. + + _("image.gif").endsWith("gif") + => true + +**succ** _.succ(str) + +Returns the successor to str. + + _('a').succ() + => 'b' + + _('A').succ() + => 'B' + +**supplant** + +Supplant function was removed, use Underscore.js [template function][p]. + +[p]: http://documentcloud.github.com/underscore/#template + +**strip** alias for *trim* + +**lstrip** alias for *ltrim* + +**rstrip** alias for *rtrim* + +**titleize** _.titleize(string) + + _('my name is epeli').titleize() + => 'My Name Is Epeli' + +**camelize** _.camelize(string) + +Converts underscored or dasherized string to a camelized one + + _('-moz-transform').camelize() + => 'MozTransform' + +**underscored** _.underscored(string) + +Converts a camelized or dasherized string into an underscored one + + _(MozTransform).underscored() + => 'moz_transform' + +**dasherize** _.dasherize(string) + +Converts a underscored or camelized string into an dasherized one + + _('MozTransform').dasherize() + => '-moz-transform' + +**trim** _.trim(string, [characters]) + +trims defined characters from begining and ending of the string. +Defaults to whitespace characters. + + _.trim(" foobar ") + => "foobar" + + _.trim("_-foobar-_", "_-") + => "foobar" + + +**ltrim** _.ltrim(string, [characters]) + +Left trim. Similar to trim, but only for left side. + + +**rtrim** _.rtrim(string, [characters]) + +Left trim. Similar to trim, but only for right side. + +**truncate** _.truncate(string, length, truncateString) + + _('Hello world').truncate(5) + => 'Hello...' + +**words** _.words(str, delimiter=" ") + +Split string by delimiter (String or RegExp), ' ' by default. + + _.words("I love you") + => ["I","love","you"] + + _.words("I_love_you", "_") + => ["I","love","you"] + + _.words("I-love-you", /-/) + => ["I","love","you"] + +**sprintf** _.sprintf(string format, *arguments) + +C like string formatting. +Credits goes to [Alexandru Marasteanu][o]. +For more detailed documentation, see the [original page][o]. + +[o]: http://www.diveintojavascript.com/projects/sprintf-for-javascript + + _.sprintf("%.1f", 1.17) + "1.2" + +**pad** _.pad(str, length, [padStr, type]) + +pads the `str` with characters until the total string length is equal to the passed `length` parameter. By default, pads on the **left** with the space char (`" "`). `padStr` is truncated to a single character if necessary. + + _.pad("1", 8) + -> " 1"; + + _.pad("1", 8, '0') + -> "00000001"; + + _.pad("1", 8, '0', 'right') + -> "10000000"; + + _.pad("1", 8, '0', 'both') + -> "00001000"; + + _.pad("1", 8, 'bleepblorp', 'both') + -> "bbbb1bbb"; + +**lpad** _.lpad(str, length, [padStr]) + +left-pad a string. Alias for `pad(str, length, padStr, 'left')` + + _.lpad("1", 8, '0') + -> "00000001"; + +**rpad** _.rpad(str, length, [padStr]) + +right-pad a string. Alias for `pad(str, length, padStr, 'right')` + + _.rpad("1", 8, '0') + -> "10000000"; + +**lrpad** _.lrpad(str, length, [padStr]) + +left/right-pad a string. Alias for `pad(str, length, padStr, 'both')` + + _.lrpad("1", 8, '0') + -> "00001000"; + +**center** alias for **lrpad** + +**ljust** alias for *lpad* + +**rjust** alias for *rpad* + +## Roadmap ## + +* Resolve problem with function names crossing between libraries (include, contains and etc). + +Any suggestions or bug reports are welcome. Just email me or more preferably open an issue. + +## Changelog ## + +### 1.1.4 ### + +* Added pad, lpad, rpad, lrpad methods and aliases center, ljust, rjust +* Integration with Underscore 1.1.6 + +### 1.1.3 ### + +* Added methods: underscored, camelize, dasherize +* Support newer version of npm + +### 1.1.2 ### + +* Created functions: lines, chars, words functions + +### 1.0.2 ### + +* Created integration test suite with underscore.js 1.1.4 (now it's absolutely compatible) +* Removed 'reverse' function, because this function override underscore.js 'reverse' + +## Contributors list ## + +* Esa-Matti Suuronen (), +* Edward Tsech , +* Sasha Koss (), +* Vladimir Dronnikov , +* Pete Kruckenberg (), +* Paul Chavard (), +* Ed Finkler () + +## Licence ## + +The MIT License + +Copyright (c) 2011 Eduard Tsech edtsech@gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/node_modules/underscore.string/Rakefile b/node_modules/underscore.string/Rakefile new file mode 100644 index 000000000..ae369a080 --- /dev/null +++ b/node_modules/underscore.string/Rakefile @@ -0,0 +1,8 @@ +require 'rubygems' +require 'closure-compiler' + +desc 'Use the Closure Compiler to compress Underscore.string' +task :build do + File.open('dist/underscore.string.min.js', 'w').write \ + Closure::Compiler.new.compile(File.open('lib/underscore.string.js', 'r')) +end diff --git a/node_modules/underscore.string/dist/underscore.string.min.js b/node_modules/underscore.string/dist/underscore.string.min.js new file mode 100644 index 000000000..307498bba --- /dev/null +++ b/node_modules/underscore.string/dist/underscore.string.min.js @@ -0,0 +1,9 @@ +(function(){function g(b,a){for(var c=[];a>0;c[--a]=b);return c.join("")}function f(b){if(b)return d.escapeRegExp(b);return"\\s"}var i=String.prototype.trim,d={isBlank:function(b){return!!b.match(/^\s*$/)},capitalize:function(b){return b.charAt(0).toUpperCase()+b.substring(1).toLowerCase()},chop:function(b,a){a=a||b.length;for(var c=[],d=0;d=0&&c++,e=e+(d>=0?d:0)+a.length;return c},chars:function(b){return b.split("")},escapeHTML:function(b){return String(b||"").replace(/&/g,"&").replace(//g,">")},unescapeHTML:function(b){return String(b||"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")},escapeRegExp:function(b){return String(b||"").replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},insert:function(b,a,c){b=b.split("");b.splice(a,0,c);return b.join("")},includes:function(b,a){return b.indexOf(a)!== +-1},join:function(b){b=String(b);for(var a="",c=1;c=a.length&&b.substring(0,a.length)===a},endsWith:function(b,a){return b.length>=a.length&&b.substring(b.length-a.length)===a},succ:function(b){var a=b.split("");a.splice(b.length-1,1,String.fromCharCode(b.charCodeAt(b.length- +1)+1));return a.join("")},titleize:function(b){b=b.split(" ");for(var a,c=0;c1&&(c=c[0]):c=" ";switch(d){case "right":e= +a-b.length;e=g(c,e);b+=e;break;case "both":e=a-b.length;e={left:g(c,Math.ceil(e/2)),right:g(c,Math.floor(e/2))};b=e.left+b+e.right;break;default:e=a-b.length,e=g(c,e),b=e+b}return b},lpad:function(b,a,c){return d.pad(b,a,c)},rpad:function(b,a,c){return d.pad(b,a,c,"right")},lrpad:function(b,a,c){return d.pad(b,a,c,"both")},sprintf:function(){for(var b=0,a,c=arguments[b++],d=[],e,h,f;c;){if(e=/^[^\x25]+/.exec(c))d.push(e[0]);else if(e=/^\x25{2}/.exec(c))d.push("%");else if(e=/^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(c)){if((a= +arguments[e[1]||b++])==null||a==void 0)throw"Too few arguments.";if(/[^s]/.test(e[7])&&typeof a!="number")throw"Expecting number but found "+typeof a;switch(e[7]){case "b":a=a.toString(2);break;case "c":a=String.fromCharCode(a);break;case "d":a=parseInt(a);break;case "e":a=e[6]?a.toExponential(e[6]):a.toExponential();break;case "f":a=e[6]?parseFloat(a).toFixed(e[6]):parseFloat(a);break;case "o":a=a.toString(8);break;case "s":a=(a=String(a))&&e[6]?a.substring(0,e[6]):a;break;case "u":a=Math.abs(a); +break;case "x":a=a.toString(16);break;case "X":a=a.toString(16).toUpperCase()}a=/[def]/.test(e[7])&&e[2]&&a>=0?"+"+a:a;h=e[3]?e[3]=="0"?"0":e[3].charAt(1):" ";f=e[5]-String(a).length-0;h=e[5]?g(h,f):"";d.push(""+(e[4]?a+h:h+a))}else throw"Huh ?!";c=c.substring(e[0].length)}return d.join("")}};d.strip=d.trim;d.lstrip=d.ltrim;d.rstrip=d.rtrim;d.center=d.lrpad;d.ljust=d.lpad;d.rjust=d.rpad;typeof window==="undefined"&&typeof module!=="undefined"?module.exports=d:typeof this._!=="undefined"?this._.mixin(d): +this._=d})(); diff --git a/node_modules/underscore.string/lib/underscore.string.js b/node_modules/underscore.string/lib/underscore.string.js new file mode 100644 index 000000000..d6722777a --- /dev/null +++ b/node_modules/underscore.string/lib/underscore.string.js @@ -0,0 +1,302 @@ +// Underscore.string +// (c) 2010 Esa-Matti Suuronen +// Underscore.strings is freely distributable under the terms of the MIT license. +// Documentation: https://github.com/edtsech/underscore.string +// Some code is borrowed from MooTools and Alexandru Marasteanu. + +// Version 1.1.4 + +(function(){ + // ------------------------- Baseline setup --------------------------------- + + // Establish the root object, "window" in the browser, or "global" on the server. + var root = this; + + var nativeTrim = String.prototype.trim; + + function str_repeat(i, m) { + for (var o = []; m > 0; o[--m] = i); + return o.join(''); + } + + function defaultToWhiteSpace(characters){ + if (characters) { + return _s.escapeRegExp(characters); + } + return '\\s'; + } + + var _s = { + + isBlank: function(str){ + return !!str.match(/^\s*$/); + }, + + capitalize : function(str) { + return str.charAt(0).toUpperCase() + str.substring(1).toLowerCase(); + }, + + chop: function(str, step){ + step = step || str.length; + var arr = []; + for (var i = 0; i < str.length;) { + arr.push(str.slice(i,i + step)); + i = i + step; + } + return arr; + }, + + clean: function(str){ + return _s.strip(str.replace(/\s+/g, ' ')); + }, + + count: function(str, substr){ + var count = 0, index; + for (var i=0; i < str.length;) { + index = str.indexOf(substr, i); + index >= 0 && count++; + i = i + (index >= 0 ? index : 0) + substr.length; + } + return count; + }, + + chars: function(str) { + return str.split(''); + }, + + escapeHTML: function(str) { + return String(str||'').replace(/&/g,'&').replace(//g,'>'); + }, + + unescapeHTML: function(str) { + return String(str||'').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'); + }, + + escapeRegExp: function(str){ + // From MooTools core 1.2.4 + return String(str||'').replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1'); + }, + + insert: function(str, i, substr){ + var arr = str.split(''); + arr.splice(i, 0, substr); + return arr.join(''); + }, + + includes: function(str, needle){ + return str.indexOf(needle) !== -1; + }, + + join: function(sep) { + // TODO: Could this be faster by converting + // arguments to Array and using array.join(sep)? + sep = String(sep); + var str = ""; + for (var i=1; i < arguments.length; i += 1) { + str += String(arguments[i]); + if ( i !== arguments.length-1 ) { + str += sep; + } + } + return str; + }, + + lines: function(str) { + return str.split("\n"); + }, + +// reverse: function(str){ +// return Array.prototype.reverse.apply(str.split('')).join(''); +// }, + + splice: function(str, i, howmany, substr){ + var arr = str.split(''); + arr.splice(i, howmany, substr); + return arr.join(''); + }, + + startsWith: function(str, starts){ + return str.length >= starts.length && str.substring(0, starts.length) === starts; + }, + + endsWith: function(str, ends){ + return str.length >= ends.length && str.substring(str.length - ends.length) === ends; + }, + + succ: function(str){ + var arr = str.split(''); + arr.splice(str.length-1, 1, String.fromCharCode(str.charCodeAt(str.length-1) + 1)); + return arr.join(''); + }, + + titleize: function(str){ + var arr = str.split(' '), + word; + for (var i=0; i < arr.length; i++) { + word = arr[i].split(''); + if(typeof word[0] !== 'undefined') word[0] = word[0].toUpperCase(); + i+1 === arr.length ? arr[i] = word.join('') : arr[i] = word.join('') + ' '; + } + return arr.join(''); + }, + + camelize: function(str){ + return _s.trim(str).replace(/(\-|_|\s)+(.)?/g, function(match, separator, chr) { + return chr ? chr.toUpperCase() : ''; + }); + }, + + underscored: function(str){ + return _s.trim(str).replace(/([a-z\d])([A-Z]+)/g, '$1_$2').replace(/\-|\s+/g, '_').toLowerCase(); + }, + + dasherize: function(str){ + return _s.trim(str).replace(/([a-z\d])([A-Z]+)/g, '$1-$2').replace(/^([A-Z]+)/, '-$1').replace(/\_|\s+/g, '-').toLowerCase(); + }, + + trim: function(str, characters){ + if (!characters && nativeTrim) { + return nativeTrim.call(str); + } + characters = defaultToWhiteSpace(characters); + return str.replace(new RegExp('\^[' + characters + ']+|[' + characters + ']+$', 'g'), ''); + }, + + ltrim: function(str, characters){ + characters = defaultToWhiteSpace(characters); + return str.replace(new RegExp('\^[' + characters + ']+', 'g'), ''); + }, + + rtrim: function(str, characters){ + characters = defaultToWhiteSpace(characters); + return str.replace(new RegExp('[' + characters + ']+$', 'g'), ''); + }, + + truncate: function(str, length, truncateStr){ + truncateStr = truncateStr || '...'; + return str.slice(0,length) + truncateStr; + }, + + words: function(str, delimiter) { + delimiter = delimiter || " "; + return str.split(delimiter); + }, + + + pad: function(str, length, padStr, type) { + + var padding = ''; + var padlen = 0; + + if (!padStr) { padStr = ' '; } + else if (padStr.length > 1) { padStr = padStr[0]; } + switch(type) { + case "right": + padlen = (length - str.length); + padding = str_repeat(padStr, padlen); + str = str+padding; + break; + case "both": + padlen = (length - str.length); + padding = { + 'left' : str_repeat(padStr, Math.ceil(padlen/2)), + 'right': str_repeat(padStr, Math.floor(padlen/2)) + }; + str = padding.left+str+padding.right; + break; + default: // "left" + padlen = (length - str.length); + padding = str_repeat(padStr, padlen);; + str = padding+str; + } + return str; + }, + + lpad: function(str, length, padStr) { + return _s.pad(str, length, padStr); + }, + + rpad: function(str, length, padStr) { + return _s.pad(str, length, padStr, 'right'); + }, + + lrpad: function(str, length, padStr) { + return _s.pad(str, length, padStr, 'both'); + }, + + + /** + * Credits for this function goes to + * http://www.diveintojavascript.com/projects/sprintf-for-javascript + * + * Copyright (c) Alexandru Marasteanu + * All rights reserved. + * */ + sprintf: function(){ + + var i = 0, a, f = arguments[i++], o = [], m, p, c, x, s = ''; + while (f) { + if (m = /^[^\x25]+/.exec(f)) { + o.push(m[0]); + } + else if (m = /^\x25{2}/.exec(f)) { + o.push('%'); + } + else if (m = /^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(f)) { + if (((a = arguments[m[1] || i++]) == null) || (a == undefined)) { + throw('Too few arguments.'); + } + if (/[^s]/.test(m[7]) && (typeof(a) != 'number')) { + throw('Expecting number but found ' + typeof(a)); + } + switch (m[7]) { + case 'b': a = a.toString(2); break; + case 'c': a = String.fromCharCode(a); break; + case 'd': a = parseInt(a); break; + case 'e': a = m[6] ? a.toExponential(m[6]) : a.toExponential(); break; + case 'f': a = m[6] ? parseFloat(a).toFixed(m[6]) : parseFloat(a); break; + case 'o': a = a.toString(8); break; + case 's': a = ((a = String(a)) && m[6] ? a.substring(0, m[6]) : a); break; + case 'u': a = Math.abs(a); break; + case 'x': a = a.toString(16); break; + case 'X': a = a.toString(16).toUpperCase(); break; + } + a = (/[def]/.test(m[7]) && m[2] && a >= 0 ? '+'+ a : a); + c = m[3] ? m[3] == '0' ? '0' : m[3].charAt(1) : ' '; + x = m[5] - String(a).length - s.length; + p = m[5] ? str_repeat(c, x) : ''; + o.push(s + (m[4] ? a + p : p + a)); + } + else { + throw('Huh ?!'); + } + f = f.substring(m[0].length); + } + return o.join(''); + } + } + + // Aliases + + _s.strip = _s.trim; + _s.lstrip = _s.ltrim; + _s.rstrip = _s.rtrim; + _s.center = _s.lrpad + _s.ljust = _s.lpad + _s.rjust = _s.rpad + + // CommonJS module is defined + if (typeof window === 'undefined' && typeof module !== 'undefined') { + // Export module + module.exports = _s; + + // Integrate with Underscore.js + } else if (typeof root._ !== 'undefined') { + root._.mixin(_s); + + // Or define it + } else { + root._ = _s; + } + +}()); diff --git a/node_modules/underscore.string/package.json b/node_modules/underscore.string/package.json new file mode 100644 index 000000000..67f429d66 --- /dev/null +++ b/node_modules/underscore.string/package.json @@ -0,0 +1,39 @@ +{ + "name": "underscore.string", + "version": "1.1.4", + "description": "String manipulation extensions for Underscore.js javascript library.", + "homepage": "https://github.com/edtsech/underscore.string", + "contributors": [ + "Esa-Matti Suuronen (http://esa-matti.suuronen.org/)", + "Edward Tsech ", + "Sasha Koss (http://koss.nocorp.me/)", + "Vladimir Dronnikov ", + "Pete Kruckenberg ()", + "Paul Chavard ()", + "Ed Finkler ()" + ], + "keywords": [ + "underscore", + "string" + ], + "main": "./lib/underscore.string", + "directories": { + "lib": "./lib" + }, + "engines": { + "node": "*" + }, + "dependencies": { + "underscore": "1.1.6" + }, + "repository": { + "type": "git", + "url": "https://github.com/edtsech/underscore.string.git" + }, + "bugs": { + "url": "https://github.com/edtsech/underscore.string/issues" + }, + "licenses" : [ + { "type" : "MIT" } + ] +} diff --git a/node_modules/underscore.string/test/speed.js b/node_modules/underscore.string/test/speed.js new file mode 100644 index 000000000..264984471 --- /dev/null +++ b/node_modules/underscore.string/test/speed.js @@ -0,0 +1,106 @@ +(function() { + + JSLitmus.test('trimNoNative', function() { + return _.trim(" foobar ", " "); + }); + + JSLitmus.test('trim', function() { + return _.trim(" foobar "); + }); + + JSLitmus.test('trim object-oriented', function() { + return _(" foobar ").trim(); + }); + + JSLitmus.test('trim jQuery', function() { + return jQuery.trim(" foobar "); + }); + + JSLitmus.test('ltrimp', function() { + return _.ltrim(" foobar ", " "); + }); + + JSLitmus.test('rtrimp', function() { + return _.rtrim(" foobar ", " "); + }); + + JSLitmus.test('startsWith', function() { + return _.startsWith("foobar", "foo"); + }); + + JSLitmus.test('endsWith', function() { + return _.endsWith("foobar", "xx"); + }); + + JSLitmus.test('chop', function(){ + return _('whitespace').chop(2); + }); + + JSLitmus.test('count', function(){ + return _('Hello worls').count('l'); + }); + + JSLitmus.test('insert', function() { + return _('Hello ').insert(6, 'world'); + }); + + JSLitmus.test('splice', function() { + return _('https://edtsech@bitbucket.org/edtsech/underscore.strings').splice(30, 7, 'epeli'); + }); + + JSLitmus.test('succ', function(){ + var let = 'a', alphabet = []; + + for (var i=0; i < 26; i++) { + alphabet.push(let); + let = _(let).succ(); + } + + return alphabet; + }); + + JSLitmus.test('titleize', function(){ + return _('the titleize string method').titleize() + }); + + JSLitmus.test('truncate', function(){ + return _('Hello world').truncate(5); + }); + + JSLitmus.test('isBlank', function(){ + return _('').isBlank(); + }); + + JSLitmus.test('escapeHTML', function(){ + _('
    Blah blah blah
    ').escapeHTML() + }); + + JSLitmus.test('unescapeHTML', function(){ + _('<div>Blah blah blah</div>').unescapeHTML() + }); + + JSLitmus.test('reverse', function(){ + _('Hello World').reverse(); + }); + + JSLitmus.test('pad default', function(){ + _('foo').pad(12); + }); + + JSLitmus.test('pad hash left', function(){ + _('foo').pad(12, '#'); + }); + + JSLitmus.test('pad hash right', function(){ + _('foo').pad(12, '#', 'right'); + }); + + JSLitmus.test('pad hash both', function(){ + _('foo').pad(12, '#', 'both'); + }); + + JSLitmus.test('pad hash both longPad', function(){ + _('foo').pad(12, 'f00f00f00', 'both'); + }); + +})(); diff --git a/node_modules/underscore.string/test/strings.js b/node_modules/underscore.string/test/strings.js new file mode 100644 index 000000000..b6c874dda --- /dev/null +++ b/node_modules/underscore.string/test/strings.js @@ -0,0 +1,236 @@ +$(document).ready(function() { + + module("String extensions"); + + test("Strings: basic", function() { + equals(_.trim(" epeli "), "epeli", "Basic"); + equals(_.strip(" epeli "), "epeli", "Aliases"); + equals(_(" epeli ").trim(), "epeli", "Object-Oriented style"); + equals(_(" epeli ").chain().trim().capitalize().value(), "Epeli", "Can chain"); + }); + + test("Strings: capitalize", function() { + equals(_("fabio").capitalize(), "Fabio", 'First letter is upper case'); + equals(_.capitalize("fabio"), "Fabio", 'First letter is upper case'); + }); + + test("Strings: join", function() { + equals(_.join("", "foo", "bar"), "foobar", 'basic join'); + equals(_.join("", 1, "foo", 2), "1foo2", 'join numbers and strings'); + equals(_.join(" ","foo", "bar"), "foo bar", 'join with spaces'); + equals(_.join("1", "2", "2"), "212", 'join number strings'); + equals(_.join(1, 2, 2), "212", 'join numbers'); + equals(_(" ").join("foo", "bar"), "foo bar", 'join object oriented'); + }); + +// test("Strings: reverse", function() { +// equals(_.reverse("foo"), "oof" ); +// equals(_.reverse("foobar"), "raboof" ); +// equals(_.reverse("foo bar"), "rab oof" ); +// equals(_.reverse("saippuakauppias"), "saippuakauppias" ); +// }); + + test("Strings: trim", function() { + equals(_(" foo").trim(), "foo"); + equals(_("foo ").trim(), "foo"); + equals(_(" foo ").trim(), "foo"); + equals(_(" foo ").trim(), "foo"); + equals(_(" foo ", " ").trim(), "foo", "Manually set whitespace"); + + equals(_("ffoo").trim("f"), "oo"); + equals(_("ooff").trim("f"), "oo"); + equals(_("ffooff").trim("f"), "oo"); + + + equals(_("_-foobar-_").trim("_-"), "foobar"); + + equals(_("http://foo/").trim("/"), "http://foo"); + equals(_("c:\\").trim('\\'), "c:"); + }); + + test("Strings: ltrim", function() { + equals(_(" foo").ltrim(), "foo"); + equals(_(" foo").ltrim(), "foo"); + equals(_("foo ").ltrim(), "foo "); + equals(_(" foo ").ltrim(), "foo "); + + + equals(_("ffoo").ltrim("f"), "oo"); + equals(_("ooff").ltrim("f"), "ooff"); + equals(_("ffooff").ltrim("f"), "ooff"); + + equals(_("_-foobar-_").ltrim("_-"), "foobar-_"); + }); + + test("Strings: rtrim", function() { + equals(_("http://foo/").rtrim("/"), "http://foo", 'clean trailing slash'); + equals(_(" foo").rtrim(), " foo"); + equals(_("foo ").rtrim(), "foo"); + equals(_("foo ").rtrim(), "foo"); + equals(_("foo bar ").rtrim(), "foo bar"); + equals(_(" foo ").rtrim(), " foo"); + + equals(_("ffoo").rtrim("f"), "ffoo"); + equals(_("ooff").rtrim("f"), "oo"); + equals(_("ffooff").rtrim("f"), "ffoo"); + + equals(_("_-foobar-_").rtrim("_-"), "_-foobar"); + }); + + test("Strings: clean", function() { + equals(_(" foo bar ").clean(), "foo bar"); + }); + + test("Strings: sprintf", function() { + // Should be very tested function already. Thanks to + // http://www.diveintojavascript.com/projects/sprintf-for-javascript + equals(_.sprintf("Hello %s", "me"), "Hello me", 'basic'); + equals(_("Hello %s").sprintf("me"), "Hello me", 'object'); + equals(_("hello %s").chain().sprintf("me").capitalize().value(), "Hello me", 'Chaining works'); + equals(_.sprintf("%.1f", 1.22222), "1.2", 'round'); + equals(_.sprintf("%.1f", 1.17), "1.2", 'round 2'); + }); + + test("Strings: startsWith", function() { + ok(_("foobar").startsWith("foo"), 'foobar starts with foo'); + ok(!_("oobar").startsWith("foo"), 'oobar does not start with foo'); + }); + + test("Strings: endsWith", function() { + ok(_("foobar").endsWith("bar"), 'foobar ends with bar'); + ok(_.endsWith("foobar", "bar"), 'foobar ends with bar'); + ok(_.endsWith("00018-0000062.Plone.sdh264.1a7264e6912a91aa4a81b64dc5517df7b8875994.mp4", "mp4"), 'endsWith .mp4'); + ok(!_("fooba").endsWith("bar"), 'fooba does not end with bar'); + }); + + test("Strings: includes", function() { + ok(_("foobar").includes("bar"), 'foobar includes bar'); + ok(!_("foobar").includes("buzz"), 'foobar does not includes buzz'); + }); + + test('String: chop', function(){ + ok(_('whitespace').chop(2).length === 5, "output ['wh','it','es','pa','ce']"); + ok(_('whitespace').chop(3).length === 4, "output ['whi','tes','pac','e']"); + ok(_('whitespace').chop()[0].length === 10, "output ['whitespace']"); + }); + + test('String: count', function(){ + equals(_('Hello world').count('l'), 3); + equals(_('Hello world').count('Hello'), 1); + equals(_('Hello world').count('foo'), 0); + }); + + test('String: insert', function(){ + equals(_('Hello ').insert(6, 'Jessy'), 'Hello Jessy'); + }); + + test('String: splice', function(){ + equals(_('https://edtsech@bitbucket.org/edtsech/underscore.strings').splice(30, 7, 'epeli'), + 'https://edtsech@bitbucket.org/epeli/underscore.strings'); + }); + + test('String: succ', function(){ + equals(_('a').succ(), 'b'); + equals(_('A').succ(), 'B'); + equals(_('+').succ(), ','); + }); + + test('String: titleize', function(){ + equals(_('the titleize string method').titleize(), 'The Titleize String Method'); + equals(_('the titleize string method').titleize(), 'The Titleize String Method'); + }); + + test('String: camelize', function(){ + equals(_('the_camelize_string_method').camelize(), 'theCamelizeStringMethod'); + equals(_('-the-camelize-string-method').camelize(), 'TheCamelizeStringMethod'); + equals(_('the camelize string method').camelize(), 'theCamelizeStringMethod'); + equals(_(' the camelize string method').camelize(), 'theCamelizeStringMethod'); + equals(_('the camelize string method').camelize(), 'theCamelizeStringMethod'); + }); + + test('String: underscored', function(){ + equals(_('the-underscored-string-method').underscored(), 'the_underscored_string_method'); + equals(_('theUnderscoredStringMethod').underscored(), 'the_underscored_string_method'); + equals(_('TheUnderscoredStringMethod').underscored(), 'the_underscored_string_method'); + equals(_(' the underscored string method').underscored(), 'the_underscored_string_method'); + }); + + test('String: dasherize', function(){ + equals(_('the_dasherize_string_method').dasherize(), 'the-dasherize-string-method'); + equals(_('TheDasherizeStringMethod').dasherize(), '-the-dasherize-string-method'); + equals(_('the dasherize string method').dasherize(), 'the-dasherize-string-method'); + equals(_('the dasherize string method ').dasherize(), 'the-dasherize-string-method'); + }); + + test('String: truncate', function(){ + equals(_('Hello world').truncate(6, 'read more'), 'Hello read more'); + equals(_('Hello world').truncate(5), 'Hello...'); + }); + + test('String: isBlank', function(){ + ok(_('').isBlank()); + ok(_(' ').isBlank()); + ok(_('\n').isBlank()); + ok(!_('a').isBlank()); + }); + + test('String: escapeHTML', function(){ + equals(_('
    Blah blah blah
    ').escapeHTML(), '<div>Blah blah blah</div>'); + equals(_(5).escapeHTML(), '5'); + equals(_(undefined).escapeHTML(), ''); + }); + + test('String: unescapeHTML', function(){ + equals(_('<div>Blah blah blah</div>').unescapeHTML(), '
    Blah blah blah
    '); + equals(_(5).unescapeHTML(), '5'); + equals(_(undefined).unescapeHTML(), ''); + }); + + test('String: words', function() { + equals(_("I love you!").words().length, 3); + equals(_("I_love_you!").words('_').length, 3); + equals(_("I-love-you!").words(/-/).length, 3); + }); + + test('String: chars', function() { + equals(_("Hello").chars().length, 5); + }); + + test('String: lines', function() { + equals(_("Hello\nWorld").lines().length, 2); + equals(_("Hello World").lines().length, 1); + }); + + test('String: pad', function() { + equals(_("1").pad(8), ' 1'); + equals(_("1").pad(8, '0'), '00000001'); + equals(_("1").pad(8, '0', 'left'), '00000001'); + equals(_("1").pad(8, '0', 'right'), '10000000'); + equals(_("1").pad(8, '0', 'both'), '00001000'); + equals(_("foo").pad(8, '0', 'both'), '000foo00'); + equals(_("foo").pad(7, '0', 'both'), '00foo00'); + equals(_("foo").pad(7, '!@$%dofjrofj', 'both'), '!!foo!!'); + }); + + test('String: lpad', function() { + equals(_("1").lpad(8), ' 1'); + equals(_("1").lpad(8, '0'), '00000001'); + equals(_("1").lpad(8, '0', 'left'), '00000001'); + }); + + test('String: rpad', function() { + equals(_("1").rpad(8), '1 '); + equals(_("1").rpad(8, '0'), '10000000'); + equals(_("foo").rpad(8, '0'), 'foo00000'); + equals(_("foo").rpad(7, '0'), 'foo0000'); + }); + + test('String: lrpad', function() { + equals(_("1").lrpad(8), ' 1 '); + equals(_("1").lrpad(8, '0'), '00001000'); + equals(_("foo").lrpad(8, '0'), '000foo00'); + equals(_("foo").lrpad(7, '0'), '00foo00'); + equals(_("foo").lrpad(7, '!@$%dofjrofj'), '!!foo!!'); + }); + +}); diff --git a/node_modules/underscore.string/test/test.html b/node_modules/underscore.string/test/test.html new file mode 100644 index 000000000..c928b4541 --- /dev/null +++ b/node_modules/underscore.string/test/test.html @@ -0,0 +1,31 @@ + + + + Underscore.strings Test Suite + + + + + + + + + + + +

    Underscore.string Test Suite

    +

    +

    +
      +
      +

      Underscore.string Speed Suite

      + +
      + + diff --git a/node_modules/underscore.string/test/test_underscore/arrays.js b/node_modules/underscore.string/test/test_underscore/arrays.js new file mode 100644 index 000000000..e031afe9b --- /dev/null +++ b/node_modules/underscore.string/test/test_underscore/arrays.js @@ -0,0 +1,124 @@ +$(document).ready(function() { + + module("Array-only functions (last, compact, uniq, and so on...)"); + + test("arrays: first", function() { + equals(_.first([1,2,3]), 1, 'can pull out the first element of an array'); + equals(_([1, 2, 3]).first(), 1, 'can perform OO-style "first()"'); + equals(_.first([1,2,3], 0).join(', '), "", 'can pass an index to first'); + equals(_.first([1,2,3], 2).join(', '), '1, 2', 'can pass an index to first'); + var result = (function(){ return _.first(arguments); })(4, 3, 2, 1); + equals(result, 4, 'works on an arguments object.'); + result = _.map([[1,2,3],[1,2,3]], _.first); + equals(result.join(','), '1,1', 'works well with _.map'); + }); + + test("arrays: rest", function() { + var numbers = [1, 2, 3, 4]; + equals(_.rest(numbers).join(", "), "2, 3, 4", 'working rest()'); + equals(_.rest(numbers, 0).join(", "), "1, 2, 3, 4", 'working rest(0)'); + equals(_.rest(numbers, 2).join(', '), '3, 4', 'rest can take an index'); + var result = (function(){ return _(arguments).tail(); })(1, 2, 3, 4); + equals(result.join(', '), '2, 3, 4', 'aliased as tail and works on arguments object'); + result = _.map([[1,2,3],[1,2,3]], _.rest); + equals(_.flatten(result).join(','), '2,3,2,3', 'works well with _.map'); + }); + + test("arrays: last", function() { + equals(_.last([1,2,3]), 3, 'can pull out the last element of an array'); + var result = (function(){ return _(arguments).last(); })(1, 2, 3, 4); + equals(result, 4, 'works on an arguments object'); + }); + + test("arrays: compact", function() { + equals(_.compact([0, 1, false, 2, false, 3]).length, 3, 'can trim out all falsy values'); + var result = (function(){ return _(arguments).compact().length; })(0, 1, false, 2, false, 3); + equals(result, 3, 'works on an arguments object'); + }); + + test("arrays: flatten", function() { + var list = [1, [2], [3, [[[4]]]]]; + equals(_.flatten(list).join(', '), '1, 2, 3, 4', 'can flatten nested arrays'); + var result = (function(){ return _.flatten(arguments); })(1, [2], [3, [[[4]]]]); + equals(result.join(', '), '1, 2, 3, 4', 'works on an arguments object'); + }); + + test("arrays: without", function() { + var list = [1, 2, 1, 0, 3, 1, 4]; + equals(_.without(list, 0, 1).join(', '), '2, 3, 4', 'can remove all instances of an object'); + var result = (function(){ return _.without(arguments, 0, 1); })(1, 2, 1, 0, 3, 1, 4); + equals(result.join(', '), '2, 3, 4', 'works on an arguments object'); + + var list = [{one : 1}, {two : 2}]; + ok(_.without(list, {one : 1}).length == 2, 'uses real object identity for comparisons.'); + ok(_.without(list, list[0]).length == 1, 'ditto.'); + }); + + test("arrays: uniq", function() { + var list = [1, 2, 1, 3, 1, 4]; + equals(_.uniq(list).join(', '), '1, 2, 3, 4', 'can find the unique values of an unsorted array'); + + var list = [1, 1, 1, 2, 2, 3]; + equals(_.uniq(list, true).join(', '), '1, 2, 3', 'can find the unique values of a sorted array faster'); + + var result = (function(){ return _.uniq(arguments); })(1, 2, 1, 3, 1, 4); + equals(result.join(', '), '1, 2, 3, 4', 'works on an arguments object'); + }); + + test("arrays: intersect", function() { + var stooges = ['moe', 'curly', 'larry'], leaders = ['moe', 'groucho']; + equals(_.intersect(stooges, leaders).join(''), 'moe', 'can take the set intersection of two arrays'); + equals(_(stooges).intersect(leaders).join(''), 'moe', 'can perform an OO-style intersection'); + var result = (function(){ return _.intersect(arguments, leaders); })('moe', 'curly', 'larry'); + equals(result.join(''), 'moe', 'works on an arguments object'); + }); + + test('arrays: zip', function() { + var names = ['moe', 'larry', 'curly'], ages = [30, 40, 50], leaders = [true]; + var stooges = _.zip(names, ages, leaders); + equals(String(stooges), 'moe,30,true,larry,40,,curly,50,', 'zipped together arrays of different lengths'); + }); + + test("arrays: indexOf", function() { + var numbers = [1, 2, 3]; + numbers.indexOf = null; + equals(_.indexOf(numbers, 2), 1, 'can compute indexOf, even without the native function'); + var result = (function(){ return _.indexOf(arguments, 2); })(1, 2, 3); + equals(result, 1, 'works on an arguments object'); + equals(_.indexOf(null, 2), -1, 'handles nulls properly'); + + var numbers = [10, 20, 30, 40, 50], num = 35; + var index = _.indexOf(numbers, num, true); + equals(index, -1, '35 is not in the list'); + + numbers = [10, 20, 30, 40, 50]; num = 40; + index = _.indexOf(numbers, num, true); + equals(index, 3, '40 is in the list'); + + numbers = [1, 40, 40, 40, 40, 40, 40, 40, 50, 60, 70]; num = 40; + index = _.indexOf(numbers, num, true); + equals(index, 1, '40 is in the list'); + }); + + test("arrays: lastIndexOf", function() { + var numbers = [1, 0, 1, 0, 0, 1, 0, 0, 0]; + numbers.lastIndexOf = null; + equals(_.lastIndexOf(numbers, 1), 5, 'can compute lastIndexOf, even without the native function'); + equals(_.lastIndexOf(numbers, 0), 8, 'lastIndexOf the other element'); + var result = (function(){ return _.lastIndexOf(arguments, 1); })(1, 0, 1, 0, 0, 1, 0, 0, 0); + equals(result, 5, 'works on an arguments object'); + equals(_.indexOf(null, 2), -1, 'handles nulls properly'); + }); + + test("arrays: range", function() { + equals(_.range(0).join(''), '', 'range with 0 as a first argument generates an empty array'); + equals(_.range(4).join(' '), '0 1 2 3', 'range with a single positive argument generates an array of elements 0,1,2,...,n-1'); + equals(_.range(5, 8).join(' '), '5 6 7', 'range with two arguments a & b, a<b generates an array of elements a,a+1,a+2,...,b-2,b-1'); + equals(_.range(8, 5).join(''), '', 'range with two arguments a & b, b<a generates an empty array'); + equals(_.range(3, 10, 3).join(' '), '3 6 9', 'range with three arguments a & b & c, c < b-a, a < b generates an array of elements a,a+c,a+2c,...,b - (multiplier of a) < c'); + equals(_.range(3, 10, 15).join(''), '3', 'range with three arguments a & b & c, c > b-a, a < b generates an array with a single element, equal to a'); + equals(_.range(12, 7, -2).join(' '), '12 10 8', 'range with three arguments a & b & c, a > b, c < 0 generates an array of elements a,a-c,a-2c and ends with the number not less than b'); + equals(_.range(0, -10, -1).join(' '), '0 -1 -2 -3 -4 -5 -6 -7 -8 -9', 'final example in the Python docs'); + }); + +}); diff --git a/node_modules/underscore.string/test/test_underscore/chaining.js b/node_modules/underscore.string/test/test_underscore/chaining.js new file mode 100644 index 000000000..e633ba5ad --- /dev/null +++ b/node_modules/underscore.string/test/test_underscore/chaining.js @@ -0,0 +1,47 @@ +$(document).ready(function() { + + module("Underscore chaining."); + + test("chaining: map/flatten/reduce", function() { + var lyrics = [ + "I'm a lumberjack and I'm okay", + "I sleep all night and I work all day", + "He's a lumberjack and he's okay", + "He sleeps all night and he works all day" + ]; + var counts = _(lyrics).chain() + .map(function(line) { return line.split(''); }) + .flatten() + .reduce(function(hash, l) { + hash[l] = hash[l] || 0; + hash[l]++; + return hash; + }, {}).value(); + ok(counts['a'] == 16 && counts['e'] == 10, 'counted all the letters in the song'); + }); + + test("chaining: select/reject/sortBy", function() { + var numbers = [1,2,3,4,5,6,7,8,9,10]; + numbers = _(numbers).chain().select(function(n) { + return n % 2 == 0; + }).reject(function(n) { + return n % 4 == 0; + }).sortBy(function(n) { + return -n; + }).value(); + equals(numbers.join(', '), "10, 6, 2", "filtered and reversed the numbers"); + }); + + test("chaining: reverse/concat/unshift/pop/map", function() { + var numbers = [1,2,3,4,5]; + numbers = _(numbers).chain() + .reverse() + .concat([5, 5, 5]) + .unshift(17) + .pop() + .map(function(n){ return n * 2; }) + .value(); + equals(numbers.join(', '), "34, 10, 8, 6, 4, 2, 10, 10", 'can chain together array functions.'); + }); + +}); diff --git a/node_modules/underscore.string/test/test_underscore/collections.js b/node_modules/underscore.string/test/test_underscore/collections.js new file mode 100644 index 000000000..ff365f8ea --- /dev/null +++ b/node_modules/underscore.string/test/test_underscore/collections.js @@ -0,0 +1,207 @@ +$(document).ready(function() { + + module("Collection functions (each, any, select, and so on...)"); + + test("collections: each", function() { + _.each([1, 2, 3], function(num, i) { + equals(num, i + 1, 'each iterators provide value and iteration count'); + }); + + var answers = []; + _.each([1, 2, 3], function(num){ answers.push(num * this.multiplier);}, {multiplier : 5}); + equals(answers.join(', '), '5, 10, 15', 'context object property accessed'); + + answers = []; + _.forEach([1, 2, 3], function(num){ answers.push(num); }); + equals(answers.join(', '), '1, 2, 3', 'aliased as "forEach"'); + + answers = []; + var obj = {one : 1, two : 2, three : 3}; + obj.constructor.prototype.four = 4; + _.each(obj, function(value, key){ answers.push(key); }); + equals(answers.join(", "), 'one, two, three', 'iterating over objects works, and ignores the object prototype.'); + delete obj.constructor.prototype.four; + + answer = null; + _.each([1, 2, 3], function(num, index, arr){ if (_.include(arr, num)) answer = true; }); + ok(answer, 'can reference the original collection from inside the iterator'); + + answers = []; + _.each({range : 1, speed : 2, length : 3}, function(v){ answers.push(v); }); + ok(answers.join(', '), '1, 2, 3', 'can iterate over objects with numeric length properties'); + + answers = 0; + _.each(null, function(){ ++answers; }); + equals(answers, 0, 'handles a null properly'); + }); + + test('collections: map', function() { + var doubled = _.map([1, 2, 3], function(num){ return num * 2; }); + equals(doubled.join(', '), '2, 4, 6', 'doubled numbers'); + + var tripled = _.map([1, 2, 3], function(num){ return num * this.multiplier; }, {multiplier : 3}); + equals(tripled.join(', '), '3, 6, 9', 'tripled numbers with context'); + + var doubled = _([1, 2, 3]).map(function(num){ return num * 2; }); + equals(doubled.join(', '), '2, 4, 6', 'OO-style doubled numbers'); + + var ids = _.map(document.body.childNodes, function(n){ return n.id; }); + ok(_.include(ids, 'qunit-header'), 'can use collection methods on NodeLists'); + + var ids = _.map(document.images, function(n){ return n.id; }); + ok(ids[0] == 'chart_image', 'can use collection methods on HTMLCollections'); + + var ifnull = _.map(null, function(){}); + ok(_.isArray(ifnull) && ifnull.length === 0, 'handles a null properly'); + }); + + test('collections: reduce', function() { + var sum = _.reduce([1, 2, 3], function(sum, num){ return sum + num; }, 0); + equals(sum, 6, 'can sum up an array'); + + var context = {multiplier : 3}; + sum = _.reduce([1, 2, 3], function(sum, num){ return sum + num * this.multiplier; }, 0, context); + equals(sum, 18, 'can reduce with a context object'); + + sum = _.inject([1, 2, 3], function(sum, num){ return sum + num; }, 0); + equals(sum, 6, 'aliased as "inject"'); + + sum = _([1, 2, 3]).reduce(function(sum, num){ return sum + num; }, 0); + equals(sum, 6, 'OO-style reduce'); + + var sum = _.reduce([1, 2, 3], function(sum, num){ return sum + num; }); + equals(sum, 6, 'default initial value'); + + var ifnull; + try { + _.reduce(null, function(){}); + } catch (ex) { + ifnull = ex; + } + ok(ifnull instanceof TypeError, 'handles a null (without inital value) properly'); + + ok(_.reduce(null, function(){}, 138) === 138, 'handles a null (with initial value) properly'); + }); + + test('collections: reduceRight', function() { + var list = _.reduceRight(["foo", "bar", "baz"], function(memo, str){ return memo + str; }, ''); + equals(list, 'bazbarfoo', 'can perform right folds'); + + var list = _.foldr(["foo", "bar", "baz"], function(memo, str){ return memo + str; }, ''); + equals(list, 'bazbarfoo', 'aliased as "foldr"'); + + var list = _.foldr(["foo", "bar", "baz"], function(memo, str){ return memo + str; }); + equals(list, 'bazbarfoo', 'default initial value'); + + var ifnull; + try { + _.reduceRight(null, function(){}); + } catch (ex) { + ifnull = ex; + } + ok(ifnull instanceof TypeError, 'handles a null (without inital value) properly'); + + ok(_.reduceRight(null, function(){}, 138) === 138, 'handles a null (with initial value) properly'); + }); + + test('collections: detect', function() { + var result = _.detect([1, 2, 3], function(num){ return num * 2 == 4; }); + equals(result, 2, 'found the first "2" and broke the loop'); + }); + + test('collections: select', function() { + var evens = _.select([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); + equals(evens.join(', '), '2, 4, 6', 'selected each even number'); + + evens = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); + equals(evens.join(', '), '2, 4, 6', 'aliased as "filter"'); + }); + + test('collections: reject', function() { + var odds = _.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); + equals(odds.join(', '), '1, 3, 5', 'rejected each even number'); + }); + + test('collections: all', function() { + ok(_.all([], _.identity), 'the empty set'); + ok(_.all([true, true, true], _.identity), 'all true values'); + ok(!_.all([true, false, true], _.identity), 'one false value'); + ok(_.all([0, 10, 28], function(num){ return num % 2 == 0; }), 'even numbers'); + ok(!_.all([0, 11, 28], function(num){ return num % 2 == 0; }), 'an odd number'); + ok(_.every([true, true, true], _.identity), 'aliased as "every"'); + }); + + test('collections: any', function() { + ok(!_.any([]), 'the empty set'); + ok(!_.any([false, false, false]), 'all false values'); + ok(_.any([false, false, true]), 'one true value'); + ok(!_.any([1, 11, 29], function(num){ return num % 2 == 0; }), 'all odd numbers'); + ok(_.any([1, 10, 29], function(num){ return num % 2 == 0; }), 'an even number'); + ok(_.some([false, false, true]), 'aliased as "some"'); + }); + + test('collections: include', function() { + ok(_.include([1,2,3], 2), 'two is in the array'); + ok(!_.include([1,3,9], 2), 'two is not in the array'); + ok(_.contains({moe:1, larry:3, curly:9}, 3) === true, '_.include on objects checks their values'); + ok(_([1,2,3]).include(2), 'OO-style include'); + }); + + test('collections: invoke', function() { + var list = [[5, 1, 7], [3, 2, 1]]; + var result = _.invoke(list, 'sort'); + equals(result[0].join(', '), '1, 5, 7', 'first array sorted'); + equals(result[1].join(', '), '1, 2, 3', 'second array sorted'); + }); + + test('collections: invoke w/ function reference', function() { + var list = [[5, 1, 7], [3, 2, 1]]; + var result = _.invoke(list, Array.prototype.sort); + equals(result[0].join(', '), '1, 5, 7', 'first array sorted'); + equals(result[1].join(', '), '1, 2, 3', 'second array sorted'); + }); + + test('collections: pluck', function() { + var people = [{name : 'moe', age : 30}, {name : 'curly', age : 50}]; + equals(_.pluck(people, 'name').join(', '), 'moe, curly', 'pulls names out of objects'); + }); + + test('collections: max', function() { + equals(3, _.max([1, 2, 3]), 'can perform a regular Math.max'); + + var neg = _.max([1, 2, 3], function(num){ return -num; }); + equals(neg, 1, 'can perform a computation-based max'); + }); + + test('collections: min', function() { + equals(1, _.min([1, 2, 3]), 'can perform a regular Math.min'); + + var neg = _.min([1, 2, 3], function(num){ return -num; }); + equals(neg, 3, 'can perform a computation-based min'); + }); + + test('collections: sortBy', function() { + var people = [{name : 'curly', age : 50}, {name : 'moe', age : 30}]; + people = _.sortBy(people, function(person){ return person.age; }); + equals(_.pluck(people, 'name').join(', '), 'moe, curly', 'stooges sorted by age'); + }); + + test('collections: sortedIndex', function() { + var numbers = [10, 20, 30, 40, 50], num = 35; + var index = _.sortedIndex(numbers, num); + equals(index, 3, '35 should be inserted at index 3'); + }); + + test('collections: toArray', function() { + ok(!_.isArray(arguments), 'arguments object is not an array'); + ok(_.isArray(_.toArray(arguments)), 'arguments object converted into array'); + + var numbers = _.toArray({one : 1, two : 2, three : 3}); + equals(numbers.join(', '), '1, 2, 3', 'object flattened into array'); + }); + + test('collections: size', function() { + equals(_.size({one : 1, two : 2, three : 3}), 3, 'can compute the size of an object'); + }); + +}); diff --git a/node_modules/underscore.string/test/test_underscore/functions.js b/node_modules/underscore.string/test/test_underscore/functions.js new file mode 100644 index 000000000..95267e73a --- /dev/null +++ b/node_modules/underscore.string/test/test_underscore/functions.js @@ -0,0 +1,154 @@ +$(document).ready(function() { + + module("Function functions (bind, bindAll, and so on...)"); + + test("functions: bind", function() { + var context = {name : 'moe'}; + var func = function(arg) { return "name: " + (this.name || arg); }; + var bound = _.bind(func, context); + equals(bound(), 'name: moe', 'can bind a function to a context'); + + bound = _(func).bind(context); + equals(bound(), 'name: moe', 'can do OO-style binding'); + + bound = _.bind(func, null, 'curly'); + equals(bound(), 'name: curly', 'can bind without specifying a context'); + + func = function(salutation, name) { return salutation + ': ' + name; }; + func = _.bind(func, this, 'hello'); + equals(func('moe'), 'hello: moe', 'the function was partially applied in advance'); + + var func = _.bind(func, this, 'curly'); + equals(func(), 'hello: curly', 'the function was completely applied in advance'); + + var func = function(salutation, firstname, lastname) { return salutation + ': ' + firstname + ' ' + lastname; }; + func = _.bind(func, this, 'hello', 'moe', 'curly'); + equals(func(), 'hello: moe curly', 'the function was partially applied in advance and can accept multiple arguments'); + + func = function(context, message) { equals(this, context, message); }; + _.bind(func, 0, 0, 'can bind a function to `0`')(); + _.bind(func, '', '', 'can bind a function to an empty string')(); + _.bind(func, false, false, 'can bind a function to `false`')(); + }); + + test("functions: bindAll", function() { + var curly = {name : 'curly'}, moe = { + name : 'moe', + getName : function() { return 'name: ' + this.name; }, + sayHi : function() { return 'hi: ' + this.name; } + }; + curly.getName = moe.getName; + _.bindAll(moe, 'getName', 'sayHi'); + curly.sayHi = moe.sayHi; + equals(curly.getName(), 'name: curly', 'unbound function is bound to current object'); + equals(curly.sayHi(), 'hi: moe', 'bound function is still bound to original object'); + + curly = {name : 'curly'}; + moe = { + name : 'moe', + getName : function() { return 'name: ' + this.name; }, + sayHi : function() { return 'hi: ' + this.name; } + }; + _.bindAll(moe); + curly.sayHi = moe.sayHi; + equals(curly.sayHi(), 'hi: moe', 'calling bindAll with no arguments binds all functions to the object'); + }); + + test("functions: memoize", function() { + var fib = function(n) { + return n < 2 ? n : fib(n - 1) + fib(n - 2); + }; + var fastFib = _.memoize(fib); + equals(fib(10), 55, 'a memoized version of fibonacci produces identical results'); + equals(fastFib(10), 55, 'a memoized version of fibonacci produces identical results'); + + var o = function(str) { + return str; + }; + var fastO = _.memoize(o); + equals(o('toString'), 'toString', 'checks hasOwnProperty'); + equals(fastO('toString'), 'toString', 'checks hasOwnProperty'); + }); + + asyncTest("functions: delay", 2, function() { + var delayed = false; + _.delay(function(){ delayed = true; }, 100); + _.delay(function(){ ok(!delayed, "didn't delay the function quite yet"); }, 50); + _.delay(function(){ ok(delayed, 'delayed the function'); start(); }, 150); + }); + + asyncTest("functions: defer", 1, function() { + var deferred = false; + _.defer(function(bool){ deferred = bool; }, true); + _.delay(function(){ ok(deferred, "deferred the function"); start(); }, 50); + }); + + asyncTest("functions: throttle", 1, function() { + var counter = 0; + var incr = function(){ counter++; }; + var throttledIncr = _.throttle(incr, 100); + throttledIncr(); throttledIncr(); throttledIncr(); + setTimeout(throttledIncr, 120); + setTimeout(throttledIncr, 140); + setTimeout(throttledIncr, 220); + setTimeout(throttledIncr, 240); + _.delay(function(){ ok(counter == 3, "incr was throttled"); start(); }, 400); + }); + + asyncTest("functions: debounce", 1, function() { + var counter = 0; + var incr = function(){ counter++; }; + var debouncedIncr = _.debounce(incr, 50); + debouncedIncr(); debouncedIncr(); debouncedIncr(); + setTimeout(debouncedIncr, 30); + setTimeout(debouncedIncr, 60); + setTimeout(debouncedIncr, 90); + setTimeout(debouncedIncr, 120); + setTimeout(debouncedIncr, 150); + _.delay(function(){ ok(counter == 1, "incr was debounced"); start(); }, 220); + }); + + test("functions: once", function() { + var num = 0; + var increment = _.once(function(){ num++; }); + increment(); + increment(); + equals(num, 1); + }); + + test("functions: wrap", function() { + var greet = function(name){ return "hi: " + name; }; + var backwards = _.wrap(greet, function(func, name){ return func(name) + ' ' + name.split('').reverse().join(''); }); + equals(backwards('moe'), 'hi: moe eom', 'wrapped the saluation function'); + + var inner = function(){ return "Hello "; }; + var obj = {name : "Moe"}; + obj.hi = _.wrap(inner, function(fn){ return fn() + this.name; }); + equals(obj.hi(), "Hello Moe"); + }); + + test("functions: compose", function() { + var greet = function(name){ return "hi: " + name; }; + var exclaim = function(sentence){ return sentence + '!'; }; + var composed = _.compose(exclaim, greet); + equals(composed('moe'), 'hi: moe!', 'can compose a function that takes another'); + + composed = _.compose(greet, exclaim); + equals(composed('moe'), 'hi: moe!', 'in this case, the functions are also commutative'); + }); + + test("functions: after", function() { + var testAfter = function(afterAmount, timesCalled) { + var afterCalled = 0; + var after = _.after(afterAmount, function() { + afterCalled++; + }); + while (timesCalled--) after(); + return afterCalled; + }; + + equals(testAfter(5, 5), 1, "after(N) should fire after being called N times"); + equals(testAfter(5, 4), 0, "after(N) should not fire unless called N times"); + }); + +}); diff --git a/node_modules/underscore.string/test/test_underscore/objects.js b/node_modules/underscore.string/test/test_underscore/objects.js new file mode 100644 index 000000000..93c441176 --- /dev/null +++ b/node_modules/underscore.string/test/test_underscore/objects.js @@ -0,0 +1,246 @@ +$(document).ready(function() { + + module("Object functions (values, extend, isEqual, and so on...)"); + + test("objects: keys", function() { + var exception = /object/; + equals(_.keys({one : 1, two : 2}).join(', '), 'one, two', 'can extract the keys from an object'); + // the test above is not safe because it relies on for-in enumeration order + var a = []; a[1] = 0; + equals(_.keys(a).join(', '), '1', 'is not fooled by sparse arrays; see issue #95'); + raises(function() { _.keys(null); }, exception, 'throws an error for `null` values'); + raises(function() { _.keys(void 0); }, exception, 'throws an error for `undefined` values'); + raises(function() { _.keys(1); }, exception, 'throws an error for number primitives'); + raises(function() { _.keys('a'); }, exception, 'throws an error for string primitives'); + raises(function() { _.keys(true); }, exception, 'throws an error for boolean primitives'); + }); + + test("objects: values", function() { + equals(_.values({one : 1, two : 2}).join(', '), '1, 2', 'can extract the values from an object'); + }); + + test("objects: functions", function() { + var obj = {a : 'dash', b : _.map, c : (/yo/), d : _.reduce}; + ok(_.isEqual(['b', 'd'], _.functions(obj)), 'can grab the function names of any passed-in object'); + }); + + test("objects: extend", function() { + var result; + equals(_.extend({}, {a:'b'}).a, 'b', 'can extend an object with the attributes of another'); + equals(_.extend({a:'x'}, {a:'b'}).a, 'b', 'properties in source override destination'); + equals(_.extend({x:'x'}, {a:'b'}).x, 'x', 'properties not in source dont get overriden'); + result = _.extend({x:'x'}, {a:'a'}, {b:'b'}); + ok(_.isEqual(result, {x:'x', a:'a', b:'b'}), 'can extend from multiple source objects'); + result = _.extend({x:'x'}, {a:'a', x:2}, {a:'b'}); + ok(_.isEqual(result, {x:2, a:'b'}), 'extending from multiple source objects last property trumps'); + result = _.extend({}, {a: void 0, b: null}); + equals(_.keys(result).join(''), 'b', 'extend does not copy undefined values'); + }); + + test("objects: defaults", function() { + var result; + var options = {zero: 0, one: 1, empty: "", nan: NaN, string: "string"}; + + _.defaults(options, {zero: 1, one: 10, twenty: 20}); + equals(options.zero, 0, 'value exists'); + equals(options.one, 1, 'value exists'); + equals(options.twenty, 20, 'default applied'); + + _.defaults(options, {empty: "full"}, {nan: "nan"}, {word: "word"}, {word: "dog"}); + equals(options.empty, "", 'value exists'); + ok(_.isNaN(options.nan), "NaN isn't overridden"); + equals(options.word, "word", 'new value is added, first one wins'); + }); + + test("objects: clone", function() { + var moe = {name : 'moe', lucky : [13, 27, 34]}; + var clone = _.clone(moe); + equals(clone.name, 'moe', 'the clone as the attributes of the original'); + + clone.name = 'curly'; + ok(clone.name == 'curly' && moe.name == 'moe', 'clones can change shallow attributes without affecting the original'); + + clone.lucky.push(101); + equals(_.last(moe.lucky), 101, 'changes to deep attributes are shared with the original'); + }); + + test("objects: isEqual", function() { + var moe = {name : 'moe', lucky : [13, 27, 34]}; + var clone = {name : 'moe', lucky : [13, 27, 34]}; + ok(moe != clone, 'basic equality between objects is false'); + ok(_.isEqual(moe, clone), 'deep equality is true'); + ok(_(moe).isEqual(clone), 'OO-style deep equality works'); + ok(!_.isEqual(5, NaN), '5 is not equal to NaN'); + ok(NaN != NaN, 'NaN is not equal to NaN (native equality)'); + ok(NaN !== NaN, 'NaN is not equal to NaN (native identity)'); + ok(!_.isEqual(NaN, NaN), 'NaN is not equal to NaN'); + ok(_.isEqual(new Date(100), new Date(100)), 'identical dates are equal'); + ok(_.isEqual((/hello/ig), (/hello/ig)), 'identical regexes are equal'); + ok(!_.isEqual(null, [1]), 'a falsy is never equal to a truthy'); + ok(!_.isEqual({x: 1, y: undefined}, {x: 1, z: 2}), 'objects with the same number of undefined keys are not equal'); + ok(!_.isEqual(_({x: 1, y: undefined}).chain(), _({x: 1, z: 2}).chain()), 'wrapped objects are not equal'); + equals(_({x: 1, y: 2}).chain().isEqual(_({x: 1, y: 2}).chain()).value(), true, 'wrapped objects are equal'); + }); + + test("objects: isEmpty", function() { + ok(!_([1]).isEmpty(), '[1] is not empty'); + ok(_.isEmpty([]), '[] is empty'); + ok(!_.isEmpty({one : 1}), '{one : 1} is not empty'); + ok(_.isEmpty({}), '{} is empty'); + ok(_.isEmpty(new RegExp('')), 'objects with prototype properties are empty'); + ok(_.isEmpty(null), 'null is empty'); + ok(_.isEmpty(), 'undefined is empty'); + ok(_.isEmpty(''), 'the empty string is empty'); + ok(!_.isEmpty('moe'), 'but other strings are not'); + + var obj = {one : 1}; + delete obj.one; + ok(_.isEmpty(obj), 'deleting all the keys from an object empties it'); + }); + + // Setup remote variables for iFrame tests. + var iframe = document.createElement('iframe'); + jQuery(iframe).appendTo(document.body); + var iDoc = iframe.contentDocument || iframe.contentWindow.document; + iDoc.write( + "" + ); + iDoc.close(); + + test("objects: isElement", function() { + ok(!_.isElement('div'), 'strings are not dom elements'); + ok(_.isElement($('html')[0]), 'the html tag is a DOM element'); + ok(_.isElement(iElement), 'even from another frame'); + }); + + test("objects: isArguments", function() { + var args = (function(){ return arguments; })(1, 2, 3); + ok(!_.isArguments('string'), 'a string is not an arguments object'); + ok(!_.isArguments(_.isArguments), 'a function is not an arguments object'); + ok(_.isArguments(args), 'but the arguments object is an arguments object'); + ok(!_.isArguments(_.toArray(args)), 'but not when it\'s converted into an array'); + ok(!_.isArguments([1,2,3]), 'and not vanilla arrays.'); + ok(_.isArguments(iArguments), 'even from another frame'); + }); + + test("objects: isArray", function() { + ok(!_.isArray(arguments), 'the arguments object is not an array'); + ok(_.isArray([1, 2, 3]), 'but arrays are'); + ok(_.isArray(iArray), 'even from another frame'); + }); + + test("objects: isString", function() { + ok(!_.isString(document.body), 'the document body is not a string'); + ok(_.isString([1, 2, 3].join(', ')), 'but strings are'); + ok(_.isString(iString), 'even from another frame'); + }); + + test("objects: isNumber", function() { + ok(!_.isNumber('string'), 'a string is not a number'); + ok(!_.isNumber(arguments), 'the arguments object is not a number'); + ok(!_.isNumber(undefined), 'undefined is not a number'); + ok(_.isNumber(3 * 4 - 7 / 10), 'but numbers are'); + ok(!_.isNumber(NaN), 'NaN is not a number'); + ok(_.isNumber(Infinity), 'Infinity is a number'); + ok(_.isNumber(iNumber), 'even from another frame'); + }); + + test("objects: isBoolean", function() { + ok(!_.isBoolean(2), 'a number is not a boolean'); + ok(!_.isBoolean("string"), 'a string is not a boolean'); + ok(!_.isBoolean("false"), 'the string "false" is not a boolean'); + ok(!_.isBoolean("true"), 'the string "true" is not a boolean'); + ok(!_.isBoolean(arguments), 'the arguments object is not a boolean'); + ok(!_.isBoolean(undefined), 'undefined is not a boolean'); + ok(!_.isBoolean(NaN), 'NaN is not a boolean'); + ok(!_.isBoolean(null), 'null is not a boolean'); + ok(_.isBoolean(true), 'but true is'); + ok(_.isBoolean(false), 'and so is false'); + ok(_.isBoolean(iBoolean), 'even from another frame'); + }); + + test("objects: isFunction", function() { + ok(!_.isFunction([1, 2, 3]), 'arrays are not functions'); + ok(!_.isFunction('moe'), 'strings are not functions'); + ok(_.isFunction(_.isFunction), 'but functions are'); + ok(_.isFunction(iFunction), 'even from another frame'); + }); + + test("objects: isDate", function() { + ok(!_.isDate(100), 'numbers are not dates'); + ok(!_.isDate({}), 'objects are not dates'); + ok(_.isDate(new Date()), 'but dates are'); + ok(_.isDate(iDate), 'even from another frame'); + }); + + test("objects: isRegExp", function() { + ok(!_.isRegExp(_.identity), 'functions are not RegExps'); + ok(_.isRegExp(/identity/), 'but RegExps are'); + ok(_.isRegExp(iRegExp), 'even from another frame'); + }); + + test("objects: isNaN", function() { + ok(!_.isNaN(undefined), 'undefined is not NaN'); + ok(!_.isNaN(null), 'null is not NaN'); + ok(!_.isNaN(0), '0 is not NaN'); + ok(_.isNaN(NaN), 'but NaN is'); + ok(_.isNaN(iNaN), 'even from another frame'); + }); + + test("objects: isNull", function() { + ok(!_.isNull(undefined), 'undefined is not null'); + ok(!_.isNull(NaN), 'NaN is not null'); + ok(_.isNull(null), 'but null is'); + ok(_.isNull(iNull), 'even from another frame'); + }); + + test("objects: isUndefined", function() { + ok(!_.isUndefined(1), 'numbers are defined'); + ok(!_.isUndefined(null), 'null is defined'); + ok(!_.isUndefined(false), 'false is defined'); + ok(!_.isUndefined(NaN), 'NaN is defined'); + ok(_.isUndefined(), 'nothing is undefined'); + ok(_.isUndefined(undefined), 'undefined is undefined'); + ok(_.isUndefined(iUndefined), 'even from another frame'); + }); + + if (window.ActiveXObject) { + test("objects: IE host objects", function() { + var xml = new ActiveXObject("Msxml2.DOMDocument.3.0"); + ok(!_.isNumber(xml)); + ok(!_.isBoolean(xml)); + ok(!_.isNaN(xml)); + ok(!_.isFunction(xml)); + ok(!_.isNull(xml)); + ok(!_.isUndefined(xml)); + }); + } + + test("objects: tap", function() { + var intercepted = null; + var interceptor = function(obj) { intercepted = obj; }; + var returned = _.tap(1, interceptor); + equals(intercepted, 1, "passes tapped object to interceptor"); + equals(returned, 1, "returns tapped object"); + + returned = _([1,2,3]).chain(). + map(function(n){ return n * 2; }). + max(). + tap(interceptor). + value(); + ok(returned == 6 && intercepted == 6, 'can use tapped objects in a chain'); + }); +}); diff --git a/node_modules/underscore.string/test/test_underscore/speed.js b/node_modules/underscore.string/test/test_underscore/speed.js new file mode 100644 index 000000000..86663a237 --- /dev/null +++ b/node_modules/underscore.string/test/test_underscore/speed.js @@ -0,0 +1,70 @@ +(function() { + + var numbers = []; + for (var i=0; i<1000; i++) numbers.push(i); + var objects = _.map(numbers, function(n){ return {num : n}; }); + var randomized = _.sortBy(numbers, function(){ return Math.random(); }); + + JSLitmus.test('_.each()', function() { + var timesTwo = []; + _.each(numbers, function(num){ timesTwo.push(num * 2); }); + return timesTwo; + }); + + JSLitmus.test('_(list).each()', function() { + var timesTwo = []; + _(numbers).each(function(num){ timesTwo.push(num * 2); }); + return timesTwo; + }); + + JSLitmus.test('jQuery.each()', function() { + var timesTwo = []; + jQuery.each(numbers, function(){ timesTwo.push(this * 2); }); + return timesTwo; + }); + + JSLitmus.test('_.map()', function() { + return _.map(objects, function(obj){ return obj.num; }); + }); + + JSLitmus.test('jQuery.map()', function() { + return jQuery.map(objects, function(obj){ return obj.num; }); + }); + + JSLitmus.test('_.pluck()', function() { + return _.pluck(objects, 'num'); + }); + + JSLitmus.test('_.uniq()', function() { + return _.uniq(randomized); + }); + + JSLitmus.test('_.uniq() (sorted)', function() { + return _.uniq(numbers, true); + }); + + JSLitmus.test('_.sortBy()', function() { + return _.sortBy(numbers, function(num){ return -num; }); + }); + + JSLitmus.test('_.isEqual()', function() { + return _.isEqual(numbers, randomized); + }); + + JSLitmus.test('_.keys()', function() { + return _.keys(objects); + }); + + JSLitmus.test('_.values()', function() { + return _.values(objects); + }); + + JSLitmus.test('_.intersect()', function() { + return _.intersect(numbers, randomized); + }); + + JSLitmus.test('_.range()', function() { + return _.range(1000); + }); + +})(); \ No newline at end of file diff --git a/node_modules/underscore.string/test/test_underscore/temp.js b/node_modules/underscore.string/test/test_underscore/temp.js new file mode 100644 index 000000000..68c39dc57 --- /dev/null +++ b/node_modules/underscore.string/test/test_underscore/temp.js @@ -0,0 +1,27 @@ +(function() { + + var func = function(){}; + var date = new Date(); + var str = "a string"; + var numbers = []; + for (var i=0; i<1000; i++) numbers.push(i); + var objects = _.map(numbers, function(n){ return {num : n}; }); + var randomized = _.sortBy(numbers, function(){ return Math.random(); }); + + JSLitmus.test('_.isNumber', function() { + return _.isNumber(1000) + }); + + JSLitmus.test('_.newIsNumber', function() { + return _.newIsNumber(1000) + }); + + JSLitmus.test('_.isNumber(NaN)', function() { + return _.isNumber(NaN) + }); + + JSLitmus.test('_.newIsNumber(NaN)', function() { + return _.newIsNumber(NaN) + }); + +})(); \ No newline at end of file diff --git a/node_modules/underscore.string/test/test_underscore/temp_tests.html b/node_modules/underscore.string/test/test_underscore/temp_tests.html new file mode 100644 index 000000000..bd34f9dd7 --- /dev/null +++ b/node_modules/underscore.string/test/test_underscore/temp_tests.html @@ -0,0 +1,19 @@ + + + + Underscore Temporary Tests + + + + + + + +

      Underscore Temporary Tests

      +

      + A page for temporary speed tests, used for developing faster implementations + of existing Underscore methods. +

      +
      + + diff --git a/node_modules/underscore.string/test/test_underscore/test.html b/node_modules/underscore.string/test/test_underscore/test.html new file mode 100644 index 000000000..65ba7c3a2 --- /dev/null +++ b/node_modules/underscore.string/test/test_underscore/test.html @@ -0,0 +1,42 @@ + + + + Underscore Test Suite + + + + + + + + + + + + + + + +

      Underscore Test Suite

      +

      +

      +
        +
        +

        Underscore Speed Suite

        +

        + A representative sample of the functions are benchmarked here, to provide + a sense of how fast they might run in different browsers. + Each iteration runs on an array of 1000 elements.

        + For example, the 'intersect' test measures the number of times you can + find the intersection of two thousand-element arrays in one second. +

        +
        + + + + + diff --git a/node_modules/underscore.string/test/test_underscore/utility.js b/node_modules/underscore.string/test/test_underscore/utility.js new file mode 100644 index 000000000..94252a654 --- /dev/null +++ b/node_modules/underscore.string/test/test_underscore/utility.js @@ -0,0 +1,127 @@ +$(document).ready(function() { + + module("Utility functions (uniqueId, template)"); + + test("utility: noConflict", function() { + var underscore = _.noConflict(); + ok(underscore.isUndefined(_), "The '_' variable has been returned to its previous state."); + var intersection = underscore.intersect([-1, 0, 1, 2], [1, 2, 3, 4]); + equals(intersection.join(', '), '1, 2', 'but the intersection function still works'); + window._ = underscore; + }); + + test("utility: identity", function() { + var moe = {name : 'moe'}; + equals(_.identity(moe), moe, 'moe is the same as his identity'); + }); + + test("utility: uniqueId", function() { + var ids = [], i = 0; + while(i++ < 100) ids.push(_.uniqueId()); + equals(_.uniq(ids).length, ids.length, 'can generate a globally-unique stream of ids'); + }); + + test("utility: times", function() { + var vals = []; + _.times(3, function (i) { vals.push(i); }); + ok(_.isEqual(vals, [0,1,2]), "is 0 indexed"); + // + vals = []; + _(3).times(function (i) { vals.push(i); }); + ok(_.isEqual(vals, [0,1,2]), "works as a wrapper"); + }); + + test("utility: mixin", function() { + _.mixin({ + myReverse: function(string) { + return string.split('').reverse().join(''); + } + }); + equals(_.myReverse('panacea'), 'aecanap', 'mixed in a function to _'); + equals(_('champ').myReverse(), 'pmahc', 'mixed in a function to the OOP wrapper'); + }); + + test("utility: template", function() { + var basicTemplate = _.template("<%= thing %> is gettin' on my noives!"); + var result = basicTemplate({thing : 'This'}); + equals(result, "This is gettin' on my noives!", 'can do basic attribute interpolation'); + + var backslashTemplate = _.template("<%= thing %> is \\ridanculous"); + equals(backslashTemplate({thing: 'This'}), "This is \\ridanculous"); + + var fancyTemplate = _.template("
          <% \ + for (key in people) { \ + %>
        • <%= people[key] %>
        • <% } %>
        "); + result = fancyTemplate({people : {moe : "Moe", larry : "Larry", curly : "Curly"}}); + equals(result, "
        • Moe
        • Larry
        • Curly
        ", 'can run arbitrary javascript in templates'); + + var namespaceCollisionTemplate = _.template("<%= pageCount %> <%= thumbnails[pageCount] %> <% _.each(thumbnails, function(p) { %>
        \">
        <% }); %>"); + result = namespaceCollisionTemplate({ + pageCount: 3, + thumbnails: { + 1: "p1-thumbnail.gif", + 2: "p2-thumbnail.gif", + 3: "p3-thumbnail.gif" + } + }); + equals(result, "3 p3-thumbnail.gif
        "); + + var noInterpolateTemplate = _.template("

        Just some text. Hey, I know this is silly but it aids consistency.

        "); + result = noInterpolateTemplate(); + equals(result, "

        Just some text. Hey, I know this is silly but it aids consistency.

        "); + + var quoteTemplate = _.template("It's its, not it's"); + equals(quoteTemplate({}), "It's its, not it's"); + + var quoteInStatementAndBody = _.template("<%\ + if(foo == 'bar'){ \ + %>Statement quotes and 'quotes'.<% } %>"); + equals(quoteInStatementAndBody({foo: "bar"}), "Statement quotes and 'quotes'."); + + var withNewlinesAndTabs = _.template('This\n\t\tis: <%= x %>.\n\tok.\nend.'); + equals(withNewlinesAndTabs({x: 'that'}), 'This\n\t\tis: that.\n\tok.\nend.'); + + if (!$.browser.msie) { + var fromHTML = _.template($('#template').html()); + equals(fromHTML({data : 12345}).replace(/\s/g, ''), '
      1. 24690
      2. '); + } + + _.templateSettings = { + evaluate : /\{\{([\s\S]+?)\}\}/g, + interpolate : /\{\{=([\s\S]+?)\}\}/g + }; + + var custom = _.template("
          {{ for (key in people) { }}
        • {{= people[key] }}
        • {{ } }}
        "); + result = custom({people : {moe : "Moe", larry : "Larry", curly : "Curly"}}); + equals(result, "
        • Moe
        • Larry
        • Curly
        ", 'can run arbitrary javascript in templates'); + + var customQuote = _.template("It's its, not it's"); + equals(customQuote({}), "It's its, not it's"); + + var quoteInStatementAndBody = _.template("{{ if(foo == 'bar'){ }}Statement quotes and 'quotes'.{{ } }}"); + equals(quoteInStatementAndBody({foo: "bar"}), "Statement quotes and 'quotes'."); + + _.templateSettings = { + evaluate : /<\?([\s\S]+?)\?>/g, + interpolate : /<\?=([\s\S]+?)\?>/g + }; + + var customWithSpecialChars = _.template("
        "); + result = customWithSpecialChars({people : {moe : "Moe", larry : "Larry", curly : "Curly"}}); + equals(result, "
        • Moe
        • Larry
        • Curly
        ", 'can run arbitrary javascript in templates'); + + var customWithSpecialCharsQuote = _.template("It's its, not it's"); + equals(customWithSpecialCharsQuote({}), "It's its, not it's"); + + var quoteInStatementAndBody = _.template("Statement quotes and 'quotes'."); + equals(quoteInStatementAndBody({foo: "bar"}), "Statement quotes and 'quotes'."); + + _.templateSettings = { + interpolate : /\{\{(.+?)\}\}/g + }; + + var mustache = _.template("Hello {{planet}}!"); + equals(mustache({planet : "World"}), "Hello World!", "can mimic mustache.js"); + }); + +}); diff --git a/node_modules/underscore.string/test/underscore.js b/node_modules/underscore.string/test/underscore.js new file mode 100644 index 000000000..eaba008c4 --- /dev/null +++ b/node_modules/underscore.string/test/underscore.js @@ -0,0 +1,807 @@ +// Underscore.js 1.1.6 +// (c) 2011 Jeremy Ashkenas, DocumentCloud Inc. +// Underscore is freely distributable under the MIT license. +// Portions of Underscore are inspired or borrowed from Prototype, +// Oliver Steele's Functional, and John Resig's Micro-Templating. +// For all details and documentation: +// http://documentcloud.github.com/underscore + +(function() { + + // Baseline setup + // -------------- + + // Establish the root object, `window` in the browser, or `global` on the server. + var root = this; + + // Save the previous value of the `_` variable. + var previousUnderscore = root._; + + // Establish the object that gets returned to break out of a loop iteration. + var breaker = {}; + + // Save bytes in the minified (but not gzipped) version: + var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; + + // Create quick reference variables for speed access to core prototypes. + var slice = ArrayProto.slice, + unshift = ArrayProto.unshift, + toString = ObjProto.toString, + hasOwnProperty = ObjProto.hasOwnProperty; + + // All **ECMAScript 5** native function implementations that we hope to use + // are declared here. + var + nativeForEach = ArrayProto.forEach, + nativeMap = ArrayProto.map, + nativeReduce = ArrayProto.reduce, + nativeReduceRight = ArrayProto.reduceRight, + nativeFilter = ArrayProto.filter, + nativeEvery = ArrayProto.every, + nativeSome = ArrayProto.some, + nativeIndexOf = ArrayProto.indexOf, + nativeLastIndexOf = ArrayProto.lastIndexOf, + nativeIsArray = Array.isArray, + nativeKeys = Object.keys, + nativeBind = FuncProto.bind; + + // Create a safe reference to the Underscore object for use below. + var _ = function(obj) { return new wrapper(obj); }; + + // Export the Underscore object for **CommonJS**, with backwards-compatibility + // for the old `require()` API. If we're not in CommonJS, add `_` to the + // global object. + if (typeof module !== 'undefined' && module.exports) { + module.exports = _; + _._ = _; + } else { + root._ = _; + } + + // Current version. + _.VERSION = '1.1.6'; + + // Collection Functions + // -------------------- + + // The cornerstone, an `each` implementation, aka `forEach`. + // Handles objects implementing `forEach`, arrays, and raw objects. + // Delegates to **ECMAScript 5**'s native `forEach` if available. + var each = _.each = _.forEach = function(obj, iterator, context) { + if (obj == null) return; + if (nativeForEach && obj.forEach === nativeForEach) { + obj.forEach(iterator, context); + } else if (_.isNumber(obj.length)) { + for (var i = 0, l = obj.length; i < l; i++) { + if (iterator.call(context, obj[i], i, obj) === breaker) return; + } + } else { + for (var key in obj) { + if (hasOwnProperty.call(obj, key)) { + if (iterator.call(context, obj[key], key, obj) === breaker) return; + } + } + } + }; + + // Return the results of applying the iterator to each element. + // Delegates to **ECMAScript 5**'s native `map` if available. + _.map = function(obj, iterator, context) { + var results = []; + if (obj == null) return results; + if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); + each(obj, function(value, index, list) { + results[results.length] = iterator.call(context, value, index, list); + }); + return results; + }; + + // **Reduce** builds up a single result from a list of values, aka `inject`, + // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available. + _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) { + var initial = memo !== void 0; + if (obj == null) obj = []; + if (nativeReduce && obj.reduce === nativeReduce) { + if (context) iterator = _.bind(iterator, context); + return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator); + } + each(obj, function(value, index, list) { + if (!initial && index === 0) { + memo = value; + initial = true; + } else { + memo = iterator.call(context, memo, value, index, list); + } + }); + if (!initial) throw new TypeError("Reduce of empty array with no initial value"); + return memo; + }; + + // The right-associative version of reduce, also known as `foldr`. + // Delegates to **ECMAScript 5**'s native `reduceRight` if available. + _.reduceRight = _.foldr = function(obj, iterator, memo, context) { + if (obj == null) obj = []; + if (nativeReduceRight && obj.reduceRight === nativeReduceRight) { + if (context) iterator = _.bind(iterator, context); + return memo !== void 0 ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator); + } + var reversed = (_.isArray(obj) ? obj.slice() : _.toArray(obj)).reverse(); + return _.reduce(reversed, iterator, memo, context); + }; + + // Return the first value which passes a truth test. Aliased as `detect`. + _.find = _.detect = function(obj, iterator, context) { + var result; + any(obj, function(value, index, list) { + if (iterator.call(context, value, index, list)) { + result = value; + return true; + } + }); + return result; + }; + + // Return all the elements that pass a truth test. + // Delegates to **ECMAScript 5**'s native `filter` if available. + // Aliased as `select`. + _.filter = _.select = function(obj, iterator, context) { + var results = []; + if (obj == null) return results; + if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context); + each(obj, function(value, index, list) { + if (iterator.call(context, value, index, list)) results[results.length] = value; + }); + return results; + }; + + // Return all the elements for which a truth test fails. + _.reject = function(obj, iterator, context) { + var results = []; + if (obj == null) return results; + each(obj, function(value, index, list) { + if (!iterator.call(context, value, index, list)) results[results.length] = value; + }); + return results; + }; + + // Determine whether all of the elements match a truth test. + // Delegates to **ECMAScript 5**'s native `every` if available. + // Aliased as `all`. + _.every = _.all = function(obj, iterator, context) { + var result = true; + if (obj == null) return result; + if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context); + each(obj, function(value, index, list) { + if (!(result = result && iterator.call(context, value, index, list))) return breaker; + }); + return result; + }; + + // Determine if at least one element in the object matches a truth test. + // Delegates to **ECMAScript 5**'s native `some` if available. + // Aliased as `any`. + var any = _.some = _.any = function(obj, iterator, context) { + iterator || (iterator = _.identity); + var result = false; + if (obj == null) return result; + if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context); + each(obj, function(value, index, list) { + if (result = iterator.call(context, value, index, list)) return breaker; + }); + return result; + }; + + // Determine if a given value is included in the array or object using `===`. + // Aliased as `contains`. + _.include = _.contains = function(obj, target) { + var found = false; + if (obj == null) return found; + if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1; + any(obj, function(value) { + if (found = value === target) return true; + }); + return found; + }; + + // Invoke a method (with arguments) on every item in a collection. + _.invoke = function(obj, method) { + var args = slice.call(arguments, 2); + return _.map(obj, function(value) { + return (method.call ? method || value : value[method]).apply(value, args); + }); + }; + + // Convenience version of a common use case of `map`: fetching a property. + _.pluck = function(obj, key) { + return _.map(obj, function(value){ return value[key]; }); + }; + + // Return the maximum element or (element-based computation). + _.max = function(obj, iterator, context) { + if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj); + var result = {computed : -Infinity}; + each(obj, function(value, index, list) { + var computed = iterator ? iterator.call(context, value, index, list) : value; + computed >= result.computed && (result = {value : value, computed : computed}); + }); + return result.value; + }; + + // Return the minimum element (or element-based computation). + _.min = function(obj, iterator, context) { + if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj); + var result = {computed : Infinity}; + each(obj, function(value, index, list) { + var computed = iterator ? iterator.call(context, value, index, list) : value; + computed < result.computed && (result = {value : value, computed : computed}); + }); + return result.value; + }; + + // Sort the object's values by a criterion produced by an iterator. + _.sortBy = function(obj, iterator, context) { + return _.pluck(_.map(obj, function(value, index, list) { + return { + value : value, + criteria : iterator.call(context, value, index, list) + }; + }).sort(function(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }), 'value'); + }; + + // Use a comparator function to figure out at what index an object should + // be inserted so as to maintain order. Uses binary search. + _.sortedIndex = function(array, obj, iterator) { + iterator || (iterator = _.identity); + var low = 0, high = array.length; + while (low < high) { + var mid = (low + high) >> 1; + iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid; + } + return low; + }; + + // Safely convert anything iterable into a real, live array. + _.toArray = function(iterable) { + if (!iterable) return []; + if (iterable.toArray) return iterable.toArray(); + if (_.isArray(iterable)) return iterable; + if (_.isArguments(iterable)) return slice.call(iterable); + return _.values(iterable); + }; + + // Return the number of elements in an object. + _.size = function(obj) { + return _.toArray(obj).length; + }; + + // Array Functions + // --------------- + + // Get the first element of an array. Passing **n** will return the first N + // values in the array. Aliased as `head`. The **guard** check allows it to work + // with `_.map`. + _.first = _.head = function(array, n, guard) { + return (n != null) && !guard ? slice.call(array, 0, n) : array[0]; + }; + + // Returns everything but the first entry of the array. Aliased as `tail`. + // Especially useful on the arguments object. Passing an **index** will return + // the rest of the values in the array from that index onward. The **guard** + // check allows it to work with `_.map`. + _.rest = _.tail = function(array, index, guard) { + return slice.call(array, (index == null) || guard ? 1 : index); + }; + + // Get the last element of an array. + _.last = function(array) { + return array[array.length - 1]; + }; + + // Trim out all falsy values from an array. + _.compact = function(array) { + return _.filter(array, function(value){ return !!value; }); + }; + + // Return a completely flattened version of an array. + _.flatten = function(array) { + return _.reduce(array, function(memo, value) { + if (_.isArray(value)) return memo.concat(_.flatten(value)); + memo[memo.length] = value; + return memo; + }, []); + }; + + // Return a version of the array that does not contain the specified value(s). + _.without = function(array) { + var values = slice.call(arguments, 1); + return _.filter(array, function(value){ return !_.include(values, value); }); + }; + + // Produce a duplicate-free version of the array. If the array has already + // been sorted, you have the option of using a faster algorithm. + // Aliased as `unique`. + _.uniq = _.unique = function(array, isSorted) { + return _.reduce(array, function(memo, el, i) { + if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) memo[memo.length] = el; + return memo; + }, []); + }; + + // Produce an array that contains every item shared between all the + // passed-in arrays. + _.intersect = function(array) { + var rest = slice.call(arguments, 1); + return _.filter(_.uniq(array), function(item) { + return _.every(rest, function(other) { + return _.indexOf(other, item) >= 0; + }); + }); + }; + + // Zip together multiple lists into a single array -- elements that share + // an index go together. + _.zip = function() { + var args = slice.call(arguments); + var length = _.max(_.pluck(args, 'length')); + var results = new Array(length); + for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i); + return results; + }; + + // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**), + // we need this function. Return the position of the first occurrence of an + // item in an array, or -1 if the item is not included in the array. + // Delegates to **ECMAScript 5**'s native `indexOf` if available. + // If the array is large and already in sort order, pass `true` + // for **isSorted** to use binary search. + _.indexOf = function(array, item, isSorted) { + if (array == null) return -1; + var i, l; + if (isSorted) { + i = _.sortedIndex(array, item); + return array[i] === item ? i : -1; + } + if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item); + for (i = 0, l = array.length; i < l; i++) if (array[i] === item) return i; + return -1; + }; + + + // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available. + _.lastIndexOf = function(array, item) { + if (array == null) return -1; + if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item); + var i = array.length; + while (i--) if (array[i] === item) return i; + return -1; + }; + + // Generate an integer Array containing an arithmetic progression. A port of + // the native Python `range()` function. See + // [the Python documentation](http://docs.python.org/library/functions.html#range). + _.range = function(start, stop, step) { + if (arguments.length <= 1) { + stop = start || 0; + start = 0; + } + step = arguments[2] || 1; + + var len = Math.max(Math.ceil((stop - start) / step), 0); + var idx = 0; + var range = new Array(len); + + while(idx < len) { + range[idx++] = start; + start += step; + } + + return range; + }; + + // Function (ahem) Functions + // ------------------ + + // Create a function bound to a given object (assigning `this`, and arguments, + // optionally). Binding with arguments is also known as `curry`. + // Delegates to **ECMAScript 5**'s native `Function.bind` if available. + // We check for `func.bind` first, to fail fast when `func` is undefined. + _.bind = function(func, obj) { + if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1)); + var args = slice.call(arguments, 2); + return function() { + return func.apply(obj, args.concat(slice.call(arguments))); + }; + }; + + // Bind all of an object's methods to that object. Useful for ensuring that + // all callbacks defined on an object belong to it. + _.bindAll = function(obj) { + var funcs = slice.call(arguments, 1); + if (funcs.length == 0) funcs = _.functions(obj); + each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); }); + return obj; + }; + + // Memoize an expensive function by storing its results. + _.memoize = function(func, hasher) { + var memo = {}; + hasher || (hasher = _.identity); + return function() { + var key = hasher.apply(this, arguments); + return hasOwnProperty.call(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments)); + }; + }; + + // Delays a function for the given number of milliseconds, and then calls + // it with the arguments supplied. + _.delay = function(func, wait) { + var args = slice.call(arguments, 2); + return setTimeout(function(){ return func.apply(func, args); }, wait); + }; + + // Defers a function, scheduling it to run after the current call stack has + // cleared. + _.defer = function(func) { + return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); + }; + + // Internal function used to implement `_.throttle` and `_.debounce`. + var limit = function(func, wait, debounce) { + var timeout; + return function() { + var context = this, args = arguments; + var throttler = function() { + timeout = null; + func.apply(context, args); + }; + if (debounce) clearTimeout(timeout); + if (debounce || !timeout) timeout = setTimeout(throttler, wait); + }; + }; + + // Returns a function, that, when invoked, will only be triggered at most once + // during a given window of time. + _.throttle = function(func, wait) { + return limit(func, wait, false); + }; + + // Returns a function, that, as long as it continues to be invoked, will not + // be triggered. The function will be called after it stops being called for + // N milliseconds. + _.debounce = function(func, wait) { + return limit(func, wait, true); + }; + + // Returns a function that will be executed at most one time, no matter how + // often you call it. Useful for lazy initialization. + _.once = function(func) { + var ran = false, memo; + return function() { + if (ran) return memo; + ran = true; + return memo = func.apply(this, arguments); + }; + }; + + // Returns the first function passed as an argument to the second, + // allowing you to adjust arguments, run code before and after, and + // conditionally execute the original function. + _.wrap = function(func, wrapper) { + return function() { + var args = [func].concat(slice.call(arguments)); + return wrapper.apply(this, args); + }; + }; + + // Returns a function that is the composition of a list of functions, each + // consuming the return value of the function that follows. + _.compose = function() { + var funcs = slice.call(arguments); + return function() { + var args = slice.call(arguments); + for (var i=funcs.length-1; i >= 0; i--) { + args = [funcs[i].apply(this, args)]; + } + return args[0]; + }; + }; + + // Returns a function that will only be executed after being called N times. + _.after = function(times, func) { + return function() { + if (--times < 1) { return func.apply(this, arguments); } + }; + }; + + + // Object Functions + // ---------------- + + // Retrieve the names of an object's properties. + // Delegates to **ECMAScript 5**'s native `Object.keys` + _.keys = nativeKeys || function(obj) { + if (obj !== Object(obj)) throw new TypeError('Invalid object'); + var keys = []; + for (var key in obj) if (hasOwnProperty.call(obj, key)) keys[keys.length] = key; + return keys; + }; + + // Retrieve the values of an object's properties. + _.values = function(obj) { + return _.map(obj, _.identity); + }; + + // Return a sorted list of the function names available on the object. + // Aliased as `methods` + _.functions = _.methods = function(obj) { + return _.filter(_.keys(obj), function(key){ return _.isFunction(obj[key]); }).sort(); + }; + + // Extend a given object with all the properties in passed-in object(s). + _.extend = function(obj) { + each(slice.call(arguments, 1), function(source) { + for (var prop in source) { + if (source[prop] !== void 0) obj[prop] = source[prop]; + } + }); + return obj; + }; + + // Fill in a given object with default properties. + _.defaults = function(obj) { + each(slice.call(arguments, 1), function(source) { + for (var prop in source) { + if (obj[prop] == null) obj[prop] = source[prop]; + } + }); + return obj; + }; + + // Create a (shallow-cloned) duplicate of an object. + _.clone = function(obj) { + return _.isArray(obj) ? obj.slice() : _.extend({}, obj); + }; + + // Invokes interceptor with the obj, and then returns obj. + // The primary purpose of this method is to "tap into" a method chain, in + // order to perform operations on intermediate results within the chain. + _.tap = function(obj, interceptor) { + interceptor(obj); + return obj; + }; + + // Perform a deep comparison to check if two objects are equal. + _.isEqual = function(a, b) { + // Check object identity. + if (a === b) return true; + // Different types? + var atype = typeof(a), btype = typeof(b); + if (atype != btype) return false; + // Basic equality test (watch out for coercions). + if (a == b) return true; + // One is falsy and the other truthy. + if ((!a && b) || (a && !b)) return false; + // Unwrap any wrapped objects. + if (a._chain) a = a._wrapped; + if (b._chain) b = b._wrapped; + // One of them implements an isEqual()? + if (a.isEqual) return a.isEqual(b); + // Check dates' integer values. + if (_.isDate(a) && _.isDate(b)) return a.getTime() === b.getTime(); + // Both are NaN? + if (_.isNaN(a) && _.isNaN(b)) return false; + // Compare regular expressions. + if (_.isRegExp(a) && _.isRegExp(b)) + return a.source === b.source && + a.global === b.global && + a.ignoreCase === b.ignoreCase && + a.multiline === b.multiline; + // If a is not an object by this point, we can't handle it. + if (atype !== 'object') return false; + // Check for different array lengths before comparing contents. + if (a.length && (a.length !== b.length)) return false; + // Nothing else worked, deep compare the contents. + var aKeys = _.keys(a), bKeys = _.keys(b); + // Different object sizes? + if (aKeys.length != bKeys.length) return false; + // Recursive comparison of contents. + for (var key in a) if (!(key in b) || !_.isEqual(a[key], b[key])) return false; + return true; + }; + + // Is a given array or object empty? + _.isEmpty = function(obj) { + if (_.isArray(obj) || _.isString(obj)) return obj.length === 0; + for (var key in obj) if (hasOwnProperty.call(obj, key)) return false; + return true; + }; + + // Is a given value a DOM element? + _.isElement = function(obj) { + return !!(obj && obj.nodeType == 1); + }; + + // Is a given value an array? + // Delegates to ECMA5's native Array.isArray + _.isArray = nativeIsArray || function(obj) { + return toString.call(obj) === '[object Array]'; + }; + + // Is a given variable an arguments object? + _.isArguments = function(obj) { + return !!(obj && hasOwnProperty.call(obj, 'callee')); + }; + + // Is a given value a function? + _.isFunction = function(obj) { + return !!(obj && obj.constructor && obj.call && obj.apply); + }; + + // Is a given value a string? + _.isString = function(obj) { + return !!(obj === '' || (obj && obj.charCodeAt && obj.substr)); + }; + + // Is a given value a number? + _.isNumber = function(obj) { + return !!(obj === 0 || (obj && obj.toExponential && obj.toFixed)); + }; + + // Is the given value `NaN`? `NaN` happens to be the only value in JavaScript + // that does not equal itself. + _.isNaN = function(obj) { + return obj !== obj; + }; + + // Is a given value a boolean? + _.isBoolean = function(obj) { + return obj === true || obj === false; + }; + + // Is a given value a date? + _.isDate = function(obj) { + return !!(obj && obj.getTimezoneOffset && obj.setUTCFullYear); + }; + + // Is the given value a regular expression? + _.isRegExp = function(obj) { + return !!(obj && obj.test && obj.exec && (obj.ignoreCase || obj.ignoreCase === false)); + }; + + // Is a given value equal to null? + _.isNull = function(obj) { + return obj === null; + }; + + // Is a given variable undefined? + _.isUndefined = function(obj) { + return obj === void 0; + }; + + // Utility Functions + // ----------------- + + // Run Underscore.js in *noConflict* mode, returning the `_` variable to its + // previous owner. Returns a reference to the Underscore object. + _.noConflict = function() { + root._ = previousUnderscore; + return this; + }; + + // Keep the identity function around for default iterators. + _.identity = function(value) { + return value; + }; + + // Run a function **n** times. + _.times = function (n, iterator, context) { + for (var i = 0; i < n; i++) iterator.call(context, i); + }; + + // Add your own custom functions to the Underscore object, ensuring that + // they're correctly added to the OOP wrapper as well. + _.mixin = function(obj) { + each(_.functions(obj), function(name){ + addToWrapper(name, _[name] = obj[name]); + }); + }; + + // Generate a unique integer id (unique within the entire client session). + // Useful for temporary DOM ids. + var idCounter = 0; + _.uniqueId = function(prefix) { + var id = idCounter++; + return prefix ? prefix + id : id; + }; + + // By default, Underscore uses ERB-style template delimiters, change the + // following template settings to use alternative delimiters. + _.templateSettings = { + evaluate : /<%([\s\S]+?)%>/g, + interpolate : /<%=([\s\S]+?)%>/g + }; + + // JavaScript micro-templating, similar to John Resig's implementation. + // Underscore templating handles arbitrary delimiters, preserves whitespace, + // and correctly escapes quotes within interpolated code. + _.template = function(str, data) { + var c = _.templateSettings; + var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' + + 'with(obj||{}){__p.push(\'' + + str.replace(/\\/g, '\\\\') + .replace(/'/g, "\\'") + .replace(c.interpolate, function(match, code) { + return "'," + code.replace(/\\'/g, "'") + ",'"; + }) + .replace(c.evaluate || null, function(match, code) { + return "');" + code.replace(/\\'/g, "'") + .replace(/[\r\n\t]/g, ' ') + "__p.push('"; + }) + .replace(/\r/g, '\\r') + .replace(/\n/g, '\\n') + .replace(/\t/g, '\\t') + + "');}return __p.join('');"; + var func = new Function('obj', tmpl); + return data ? func(data) : func; + }; + + // The OOP Wrapper + // --------------- + + // If Underscore is called as a function, it returns a wrapped object that + // can be used OO-style. This wrapper holds altered versions of all the + // underscore functions. Wrapped objects may be chained. + var wrapper = function(obj) { this._wrapped = obj; }; + + // Expose `wrapper.prototype` as `_.prototype` + _.prototype = wrapper.prototype; + + // Helper function to continue chaining intermediate results. + var result = function(obj, chain) { + return chain ? _(obj).chain() : obj; + }; + + // A method to easily add functions to the OOP wrapper. + var addToWrapper = function(name, func) { + wrapper.prototype[name] = function() { + var args = slice.call(arguments); + unshift.call(args, this._wrapped); + return result(func.apply(_, args), this._chain); + }; + }; + + // Add all of the Underscore functions to the wrapper object. + _.mixin(_); + + // Add all mutator Array functions to the wrapper. + each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { + var method = ArrayProto[name]; + wrapper.prototype[name] = function() { + method.apply(this._wrapped, arguments); + return result(this._wrapped, this._chain); + }; + }); + + // Add all accessor Array functions to the wrapper. + each(['concat', 'join', 'slice'], function(name) { + var method = ArrayProto[name]; + wrapper.prototype[name] = function() { + return result(method.apply(this._wrapped, arguments), this._chain); + }; + }); + + // Start chaining a wrapped Underscore object. + wrapper.prototype.chain = function() { + this._chain = true; + return this; + }; + + // Extracts the result from a wrapped and chained object. + wrapper.prototype.value = function() { + return this._wrapped; + }; + +})(); diff --git a/node_modules/underscore/.npmignore b/node_modules/underscore/.npmignore new file mode 100644 index 000000000..f5717584f --- /dev/null +++ b/node_modules/underscore/.npmignore @@ -0,0 +1,4 @@ +test/ +underscore-min.js +Rakefile +docs/ \ No newline at end of file diff --git a/node_modules/underscore/LICENSE b/node_modules/underscore/LICENSE new file mode 100644 index 000000000..58c73b9e9 --- /dev/null +++ b/node_modules/underscore/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2011 Jeremy Ashkenas, DocumentCloud + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/underscore/README b/node_modules/underscore/README new file mode 100644 index 000000000..408145aab --- /dev/null +++ b/node_modules/underscore/README @@ -0,0 +1,19 @@ + __ + /\ \ __ + __ __ ___ \_\ \ __ _ __ ____ ___ ___ _ __ __ /\_\ ____ +/\ \/\ \ /' _ `\ /'_ \ /'__`\/\ __\/ ,__\ / ___\ / __`\/\ __\/'__`\ \/\ \ /',__\ +\ \ \_\ \/\ \/\ \/\ \ \ \/\ __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\ __/ __ \ \ \/\__, `\ + \ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/ + \/___/ \/_/\/_/\/__,_ /\/____/ \/_/ \/___/ \/____/\/___/ \/_/ \/____/\/_//\ \_\ \/___/ + \ \____/ + \/___/ + +Underscore is a utility-belt library for JavaScript that provides +support for the usual functional suspects (each, map, reduce, filter...) +without extending any core JavaScript objects. + +For Docs, License, Tests, and pre-packed downloads, see: +http://documentcloud.github.com/underscore/ + +Many thanks to our contributors: +https://github.com/documentcloud/underscore/contributors diff --git a/node_modules/underscore/index.html b/node_modules/underscore/index.html new file mode 100644 index 000000000..04c878ad0 --- /dev/null +++ b/node_modules/underscore/index.html @@ -0,0 +1,1560 @@ + + + + + + Underscore.js + + + + +
        + +

        Underscore.js

        + +

        + Underscore is a + utility-belt library for JavaScript that provides a lot of the + functional programming support that you would expect in + Prototype.js + (or Ruby), + but without extending any of the built-in JavaScript objects. It's the + tie to go along with jQuery's tux. +

        + +

        + Underscore provides 60-odd functions that support both the usual + functional suspects: map, select, invoke — + as well as more specialized helpers: function binding, javascript + templating, deep equality testing, and so on. It delegates to built-in + functions, if present, so modern browsers will use the + native implementations of forEach, map, reduce, + filter, every, some and indexOf. +

        + +

        + A complete Test & Benchmark Suite + is included for your perusal. +

        + +

        + You may also read through the annotated source code. +

        + +

        + The project is + hosted on GitHub. + You can report bugs and discuss features on the + issues page, + on Freenode in the #documentcloud channel, + or send tweets to @documentcloud. +

        + +

        + Underscore is an open-source component of DocumentCloud. +

        + +

        Downloads (Right-click, and use "Save As")

        + + + + + + + + + + +
        Development Version (1.1.6)27kb, Uncompressed with Comments
        Production Version (1.1.6)3kb, Minified and Gzipped
        + +

        Table of Contents

        + + Object-Oriented and Functional Styles + +

        + Collections +
        + each, map, + reduce, reduceRight, + detect, select, + reject, all, + any, include, + invoke, pluck, + max, min, + sortBy, sortedIndex, + toArray, size +

        + +

        + Arrays +
        + first, rest, last, + compact, flatten, without, uniq, + intersect, zip, indexOf, + lastIndexOf, range +

        + +

        + Functions +
        + bind, bindAll, + memoize, delay, defer, + throttle, debounce, + once, after, wrap, compose +

        + +

        + Objects +
        + keys, values, + functions, extend, defaults, clone, tap, + isEqual, isEmpty, isElement, + isArray, isArguments, isFunction, isString, + isNumber, isBoolean, isDate, isRegExp + isNaN, isNull, + isUndefined + +

        + +

        + Utility +
        + noConflict, + identity, times, + mixin, uniqueId, + template +

        + +

        + Chaining +
        + chain, value +

        + +
        + +

        Object-Oriented and Functional Styles

        + +

        + You can use Underscore in either an object-oriented or a functional style, + depending on your preference. The following two lines of code are + identical ways to double a list of numbers. +

        + +
        +_.map([1, 2, 3], function(n){ return n * 2; });
        +_([1, 2, 3]).map(function(n){ return n * 2; });
        + +

        + Using the object-oriented style allows you to chain together methods. Calling + chain on a wrapped object will cause all future method calls to + return wrapped objects as well. When you've finished the computation, + use value to retrieve the final value. Here's an example of chaining + together a map/flatten/reduce, in order to get the word count of + every word in a song. +

        + +
        +var lyrics = [
        +  {line : 1, words : "I'm a lumberjack and I'm okay"},
        +  {line : 2, words : "I sleep all night and I work all day"},
        +  {line : 3, words : "He's a lumberjack and he's okay"},
        +  {line : 4, words : "He sleeps all night and he works all day"}
        +];
        +
        +_(lyrics).chain()
        +  .map(function(line) { return line.words.split(' '); })
        +  .flatten()
        +  .reduce(function(counts, word) {
        +    counts[word] = (counts[word] || 0) + 1;
        +    return counts;
        +}, {}).value();
        +
        +=> {lumberjack : 2, all : 4, night : 2 ... }
        + +

        + In addition, the + Array prototype's methods + are proxied through the chained Underscore object, so you can slip a + reverse or a push into your chain, and continue to + modify the array. +

        + +

        Collection Functions (Arrays or Objects)

        + +

        + each_.each(list, iterator, [context]) + Alias: forEach +
        + Iterates over a list of elements, yielding each in turn to an iterator + function. The iterator is bound to the context object, if one is + passed. Each invocation of iterator is called with three arguments: + (element, index, list). If list is a JavaScript object, iterator's + arguments will be (value, key, list). Delegates to the native + forEach function if it exists. +

        +
        +_.each([1, 2, 3], function(num){ alert(num); });
        +=> alerts each number in turn...
        +_.each({one : 1, two : 2, three : 3}, function(num, key){ alert(num); });
        +=> alerts each number in turn...
        + +

        + map_.map(list, iterator, [context]) +
        + Produces a new array of values by mapping each value in list + through a transformation function (iterator). If the native map method + exists, it will be used instead. If list is a JavaScript object, + iterator's arguments will be (value, key, list). +

        +
        +_.map([1, 2, 3], function(num){ return num * 3; });
        +=> [3, 6, 9]
        +_.map({one : 1, two : 2, three : 3}, function(num, key){ return num * 3; });
        +=> [3, 6, 9]
        + +

        + reduce_.reduce(list, iterator, memo, [context]) + Aliases: inject, foldl +
        + Also known as inject and foldl, reduce boils down a + list of values into a single value. Memo is the initial state + of the reduction, and each successive step of it should be returned by + iterator. +

        +
        +var sum = _.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0);
        +=> 6
        +
        + +

        + reduceRight_.reduceRight(list, iterator, memo, [context]) + Alias: foldr +
        + The right-associative version of reduce. Delegates to the + JavaScript 1.8 version of reduceRight, if it exists. Foldr + is not as useful in JavaScript as it would be in a language with lazy + evaluation. +

        +
        +var list = [[0, 1], [2, 3], [4, 5]];
        +var flat = _.reduceRight(list, function(a, b) { return a.concat(b); }, []);
        +=> [4, 5, 2, 3, 0, 1]
        +
        + +

        + detect_.detect(list, iterator, [context]) +
        + Looks through each value in the list, returning the first one that + passes a truth test (iterator). The function returns as + soon as it finds an acceptable element, and doesn't traverse the + entire list. +

        +
        +var even = _.detect([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
        +=> 2
        +
        + +

        + select_.select(list, iterator, [context]) + Alias: filter +
        + Looks through each value in the list, returning an array of all + the values that pass a truth test (iterator). Delegates to the + native filter method, if it exists. +

        +
        +var evens = _.select([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
        +=> [2, 4, 6]
        +
        + +

        + reject_.reject(list, iterator, [context]) +
        + Returns the values in list without the elements that the truth + test (iterator) passes. The opposite of select. +

        +
        +var odds = _.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
        +=> [1, 3, 5]
        +
        + +

        + all_.all(list, [iterator], [context]) + Alias: every +
        + Returns true if all of the values in the list pass the iterator + truth test. If an iterator is not provided, the truthy value of + the element will be used instead. Delegates to the native method every, if + present. +

        +
        +_.all([true, 1, null, 'yes']);
        +=> false
        +
        + +

        + any_.any(list, [iterator], [context]) + Alias: some +
        + Returns true if any of the values in the list pass the + iterator truth test. Short-circuits and stops traversing the list + if a true element is found. Delegates to the native method some, + if present. +

        +
        +_.any([null, 0, 'yes', false]);
        +=> true
        +
        + +

        + include_.include(list, value) + Alias: contains +
        + Returns true if the value is present in the list, using + === to test equality. Uses indexOf internally, if list + is an Array. +

        +
        +_.include([1, 2, 3], 3);
        +=> true
        +
        + +

        + invoke_.invoke(list, methodName, [*arguments]) +
        + Calls the method named by methodName on each value in the list. + Any extra arguments passed to invoke will be forwarded on to the + method invocation. +

        +
        +_.invoke([[5, 1, 7], [3, 2, 1]], 'sort');
        +=> [[1, 5, 7], [1, 2, 3]]
        +
        + +

        + pluck_.pluck(list, propertyName) +
        + An convenient version of what is perhaps the most common use-case for + map: extracting a list of property values. +

        +
        +var stooges = [{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}];
        +_.pluck(stooges, 'name');
        +=> ["moe", "larry", "curly"]
        +
        + +

        + max_.max(list, [iterator], [context]) +
        + Returns the maximum value in list. If iterator is passed, + it will be used on each value to generate the criterion by which the + value is ranked. +

        +
        +var stooges = [{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}];
        +_.max(stooges, function(stooge){ return stooge.age; });
        +=> {name : 'curly', age : 60};
        +
        + +

        + min_.min(list, [iterator], [context]) +
        + Returns the minimum value in list. If iterator is passed, + it will be used on each value to generate the criterion by which the + value is ranked. +

        +
        +var numbers = [10, 5, 100, 2, 1000];
        +_.min(numbers);
        +=> 2
        +
        + +

        + sortBy_.sortBy(list, iterator, [context]) +
        + Returns a sorted list, ranked by the results of running each + value through iterator. +

        +
        +_.sortBy([1, 2, 3, 4, 5, 6], function(num){ return Math.sin(num); });
        +=> [5, 4, 6, 3, 1, 2]
        +
        + +

        + sortedIndex_.sortedIndex(list, value, [iterator]) +
        + Uses a binary search to determine the index at which the value + should be inserted into the list in order to maintain the list's + sorted order. If an iterator is passed, it will be used to compute + the sort ranking of each value. +

        +
        +_.sortedIndex([10, 20, 30, 40, 50], 35);
        +=> 3
        +
        + +

        + toArray_.toArray(list) +
        + Converts the list (anything that can be iterated over), into a + real Array. Useful for transmuting the arguments object. +

        +
        +(function(){ return _.toArray(arguments).slice(0); })(1, 2, 3);
        +=> [1, 2, 3]
        +
        + +

        + size_.size(list) +
        + Return the number of values in the list. +

        +
        +_.size({one : 1, two : 2, three : 3});
        +=> 3
        +
        + +

        Array Functions

        + +

        + Note: All array functions will also work on the arguments object. +

        + +

        + first_.first(array, [n]) + Alias: head +
        + Returns the first element of an array. Passing n will + return the first n elements of the array. +

        +
        +_.first([5, 4, 3, 2, 1]);
        +=> 5
        +
        + +

        + rest_.rest(array, [index]) + Alias: tail +
        + Returns the rest of the elements in an array. Pass an index + to return the values of the array from that index onward. +

        +
        +_.rest([5, 4, 3, 2, 1]);
        +=> [4, 3, 2, 1]
        +
        + +

        + last_.last(array) +
        + Returns the last element of an array. +

        +
        +_.last([5, 4, 3, 2, 1]);
        +=> 1
        +
        + +

        + compact_.compact(array) +
        + Returns a copy of the array with all falsy values removed. + In JavaScript, false, null, 0, "", + undefined and NaN are all falsy. +

        +
        +_.compact([0, 1, false, 2, '', 3]);
        +=> [1, 2, 3]
        +
        + +

        + flatten_.flatten(array) +
        + Flattens a nested array (the nesting can be to any depth). +

        +
        +_.flatten([1, [2], [3, [[[4]]]]]);
        +=> [1, 2, 3, 4];
        +
        + +

        + without_.without(array, [*values]) +
        + Returns a copy of the array with all instances of the values + removed. === is used for the equality test. +

        +
        +_.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
        +=> [2, 3, 4]
        +
        + +

        + uniq_.uniq(array, [isSorted]) + Alias: unique +
        + Produces a duplicate-free version of the array, using === to test + object equality. If you know in advance that the array is sorted, + passing true for isSorted will run a much faster algorithm. +

        +
        +_.uniq([1, 2, 1, 3, 1, 4]);
        +=> [1, 2, 3, 4]
        +
        + +

        + intersect_.intersect(*arrays) +
        + Computes the list of values that are the intersection of all the arrays. + Each value in the result is present in each of the arrays. +

        +
        +_.intersect([1, 2, 3], [101, 2, 1, 10], [2, 1]);
        +=> [1, 2]
        +
        + +

        + zip_.zip(*arrays) +
        + Merges together the values of each of the arrays with the + values at the corresponding position. Useful when you have separate + data sources that are coordinated through matching array indexes. + If you're working with a matrix of nested arrays, zip.apply + can transpose the matrix in a similar fashion. +

        +
        +_.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]);
        +=> [["moe", 30, true], ["larry", 40, false], ["curly", 50, false]]
        +
        + +

        + indexOf_.indexOf(array, value, [isSorted]) +
        + Returns the index at which value can be found in the array, + or -1 if value is not present in the array. Uses the native + indexOf function unless it's missing. If you're working with a + large array, and you know that the array is already sorted, pass true + for isSorted to use a faster binary search. +

        +
        +_.indexOf([1, 2, 3], 2);
        +=> 1
        +
        + +

        + lastIndexOf_.lastIndexOf(array, value) +
        + Returns the index of the last occurrence of value in the array, + or -1 if value is not present. Uses the native lastIndexOf + function if possible. +

        +
        +_.lastIndexOf([1, 2, 3, 1, 2, 3], 2);
        +=> 4
        +
        + +

        + range_.range([start], stop, [step]) +
        + A function to create flexibly-numbered lists of integers, handy for + each and map loops. start, if omitted, defaults + to 0; step defaults to 1. Returns a list of integers + from start to stop, incremented (or decremented) by step, + exclusive. +

        +
        +_.range(10);
        +=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
        +_.range(1, 11);
        +=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        +_.range(0, 30, 5);
        +=> [0, 5, 10, 15, 20, 25]
        +_.range(0, -10, -1);
        +=> [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
        +_.range(0);
        +=> []
        +
        + +

        Function (uh, ahem) Functions

        + +

        + bind_.bind(function, object, [*arguments]) +
        + Bind a function to an object, meaning that whenever + the function is called, the value of this will be the object. + Optionally, bind arguments to the function to pre-fill them, + also known as currying. +

        +
        +var func = function(greeting){ return greeting + ': ' + this.name };
        +func = _.bind(func, {name : 'moe'}, 'hi');
        +func();
        +=> 'hi: moe'
        +
        + +

        + bindAll_.bindAll(object, [*methodNames]) +
        + Binds a number of methods on the object, specified by + methodNames, to be run in the context of that object whenever they + are invoked. Very handy for binding functions that are going to be used + as event handlers, which would otherwise be invoked with a fairly useless + this. If no methodNames are provided, all of the object's + function properties will be bound to it. +

        +
        +var buttonView = {
        +  label   : 'underscore',
        +  onClick : function(){ alert('clicked: ' + this.label); },
        +  onHover : function(){ console.log('hovering: ' + this.label); }
        +};
        +_.bindAll(buttonView);
        +jQuery('#underscore_button').bind('click', buttonView.onClick);
        +=> When the button is clicked, this.label will have the correct value...
        +
        + +

        + memoize_.memoize(function, [hashFunction]) +
        + Memoizes a given function by caching the computed result. Useful + for speeding up slow-running computations. If passed an optional + hashFunction, it will be used to compute the hash key for storing + the result, based on the arguments to the original function. The default + hashFunction just uses the first argument to the memoized function + as the key. +

        +
        +var fibonacci = function(n) {
        +  return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);
        +};
        +var fastFibonacci = _.memoize(fibonacci);
        +
        + +

        + delay_.delay(function, wait, [*arguments]) +
        + Much like setTimeout, invokes function after wait + milliseconds. If you pass the optional arguments, they will be + forwarded on to the function when it is invoked. +

        +
        +var log = _.bind(console.log, console);
        +_.delay(log, 1000, 'logged later');
        +=> 'logged later' // Appears after one second.
        +
        + +

        + defer_.defer(function) +
        + Defers invoking the function until the current call stack has cleared, + similar to using setTimeout with a delay of 0. Useful for performing + expensive computations or HTML rendering in chunks without blocking the UI thread + from updating. +

        +
        +_.defer(function(){ alert('deferred'); });
        +// Returns from the function before the alert runs.
        +
        + +

        + throttle_.throttle(function, wait) +
        + Returns a throttled version of the function, that, when invoked repeatedly, + will only actually call the wrapped function at most once per every wait + milliseconds. Useful for rate-limiting events that occur faster than you + can keep up with. +

        +
        +var throttled = _.throttle(updatePosition, 100);
        +$(window).scroll(throttled);
        +
        + +

        + debounce_.debounce(function, wait) +
        + Repeated calls to a debounced function will postpone it's execution + until after wait milliseconds have elapsed. Useful for implementing + behavior that should only happen after the input has stopped arriving. + For example: rendering a preview of a Markdown comment, recalculating a + layout after the window has stopped being resized... +

        +
        +var lazyLayout = _.debounce(calculateLayout, 300);
        +$(window).resize(lazyLayout);
        +
        + +

        + once_.once(function) +
        + Creates a version of the function that can only be called one time. + Repeated calls to the modified function will have no effect, returning + the value from the original call. Useful for initialization functions, + instead of having to set a boolean flag and then check it later. +

        +
        +var initialize = _.once(createApplication);
        +initialize();
        +initialize();
        +// Application is only created once.
        +
        + +

        + after_.after(count, function) +
        + Creates a version of the function that will only be run after first + being called count times. Useful for grouping asynchronous responses, + where you want to be sure that all the async calls have finished, before + proceeding. +

        +
        +var renderNotes = _.after(notes.length, render);
        +_.each(notes, function(note) {
        +  note.asyncSave({success: renderNotes}); 
        +});
        +// renderNotes is run once, after all notes have saved.
        +
        + +

        + wrap_.wrap(function, wrapper) +
        + Wraps the first function inside of the wrapper function, + passing it as the first argument. This allows the wrapper to + execute code before and after the function runs, adjust the arguments, + and execute it conditionally. +

        +
        +var hello = function(name) { return "hello: " + name; };
        +hello = _.wrap(hello, function(func) {
        +  return "before, " + func("moe") + ", after";
        +});
        +hello();
        +=> 'before, hello: moe, after'
        +
        + +

        + compose_.compose(*functions) +
        + Returns the composition of a list of functions, where each function + consumes the return value of the function that follows. In math terms, + composing the functions f(), g(), and h() produces + f(g(h())). +

        +
        +var greet    = function(name){ return "hi: " + name; };
        +var exclaim  = function(statement){ return statement + "!"; };
        +var welcome = _.compose(exclaim, greet);
        +welcome('moe');
        +=> 'hi: moe!'
        +
        + +

        Object Functions

        + +

        + keys_.keys(object) +
        + Retrieve all the names of the object's properties. +

        +
        +_.keys({one : 1, two : 2, three : 3});
        +=> ["one", "two", "three"]
        +
        + +

        + values_.values(object) +
        + Return all of the values of the object's properties. +

        +
        +_.values({one : 1, two : 2, three : 3});
        +=> [1, 2, 3]
        +
        + +

        + functions_.functions(object) + Alias: methods +
        + Returns a sorted list of the names of every method in an object — + that is to say, the name of every function property of the object. +

        +
        +_.functions(_);
        +=> ["all", "any", "bind", "bindAll", "clone", "compact", "compose" ...
        +
        + +

        + extend_.extend(destination, *sources) +
        + Copy all of the properties in the source objects over to the + destination object. It's in-order, to the last source will override + properties of the same name in previous arguments. +

        +
        +_.extend({name : 'moe'}, {age : 50});
        +=> {name : 'moe', age : 50}
        +
        + +

        + defaults_.defaults(object, *defaults) +
        + Fill in missing properties in object with default values from the + defaults objects. As soon as the property is filled, further defaults + will have no effect. +

        +
        +var iceCream = {flavor : "chocolate"};
        +_.defaults(iceCream, {flavor : "vanilla", sprinkles : "lots"});
        +=> {flavor : "chocolate", sprinkles : "lots"}
        +
        + +

        + clone_.clone(object) +
        + Create a shallow-copied clone of the object. Any nested objects + or arrays will be copied by reference, not duplicated. +

        +
        +_.clone({name : 'moe'});
        +=> {name : 'moe'};
        +
        + +

        + tap_.tap(object, interceptor) +
        + Invokes interceptor with the object, and then returns object. + The primary purpose of this method is to "tap into" a method chain, in order to perform operations on intermediate results within the chain. +

        +
        +_([1,2,3,200]).chain().
        +  select(function(num) { return num % 2 == 0; }).
        +  tap(console.log).
        +  map(function(num) { return num * num }).
        +  value();
        +=> [2, 200]
        +=> [4, 40000]
        +
        + +

        + isEqual_.isEqual(object, other) +
        + Performs an optimized deep comparison between the two objects, to determine + if they should be considered equal. +

        +
        +var moe   = {name : 'moe', luckyNumbers : [13, 27, 34]};
        +var clone = {name : 'moe', luckyNumbers : [13, 27, 34]};
        +moe == clone;
        +=> false
        +_.isEqual(moe, clone);
        +=> true
        +
        + +

        + isEmpty_.isEmpty(object) +
        + Returns true if object contains no values. +

        +
        +_.isEmpty([1, 2, 3]);
        +=> false
        +_.isEmpty({});
        +=> true
        +
        + +

        + isElement_.isElement(object) +
        + Returns true if object is a DOM element. +

        +
        +_.isElement(jQuery('body')[0]);
        +=> true
        +
        + +

        + isArray_.isArray(object) +
        + Returns true if object is an Array. +

        +
        +(function(){ return _.isArray(arguments); })();
        +=> false
        +_.isArray([1,2,3]);
        +=> true
        +
        + +

        + isArguments_.isArguments(object) +
        + Returns true if object is an Arguments object. +

        +
        +(function(){ return _.isArguments(arguments); })(1, 2, 3);
        +=> true
        +_.isArguments([1,2,3]);
        +=> false
        +
        + +

        + isFunction_.isFunction(object) +
        + Returns true if object is a Function. +

        +
        +_.isFunction(alert);
        +=> true
        +
        + +

        + isString_.isString(object) +
        + Returns true if object is a String. +

        +
        +_.isString("moe");
        +=> true
        +
        + +

        + isNumber_.isNumber(object) +
        + Returns true if object is a Number. +

        +
        +_.isNumber(8.4 * 5);
        +=> true
        +
        + +

        + isBoolean_.isBoolean(object) +
        + Returns true if object is either true or false. +

        +
        +_.isBoolean(null);
        +=> false
        +
        + +

        + isDate_.isDate(object) +
        + Returns true if object is a Date. +

        +
        +_.isDate(new Date());
        +=> true
        +
        + +

        + isRegExp_.isRegExp(object) +
        + Returns true if object is a RegExp. +

        +
        +_.isRegExp(/moe/);
        +=> true
        +
        + +

        + isNaN_.isNaN(object) +
        + Returns true if object is NaN.
        Note: this is not + the same as the native isNaN function, which will also return + true if the variable is undefined. +

        +
        +_.isNaN(NaN);
        +=> true
        +isNaN(undefined);
        +=> true
        +_.isNaN(undefined);
        +=> false
        +
        + +

        + isNull_.isNull(object) +
        + Returns true if the value of object is null. +

        +
        +_.isNull(null);
        +=> true
        +_.isNull(undefined);
        +=> false
        +
        + +

        + isUndefined_.isUndefined(variable) +
        + Returns true if variable is undefined. +

        +
        +_.isUndefined(window.missingVariable);
        +=> true
        +
        + +

        Utility Functions

        + +

        + noConflict_.noConflict() +
        + Give control of the "_" variable back to its previous owner. Returns + a reference to the Underscore object. +

        +
        +var underscore = _.noConflict();
        + +

        + identity_.identity(value) +
        + Returns the same value that is used as the argument. In math: + f(x) = x
        + This function looks useless, but is used throughout Underscore as + a default iterator. +

        +
        +var moe = {name : 'moe'};
        +moe === _.identity(moe);
        +=> true
        + +

        + times_.times(n, iterator) +
        + Invokes the given iterator function n times. +

        +
        +_(3).times(function(){ genie.grantWish(); });
        + +

        + mixin_.mixin(object) +
        + Allows you to extend Underscore with your own utility functions. Pass + a hash of {name: function} definitions to have your functions + added to the Underscore object, as well as the OOP wrapper. +

        +
        +_.mixin({
        +  capitalize : function(string) {
        +    return string.charAt(0).toUpperCase() + string.substring(1).toLowerCase();
        +  }
        +});
        +_("fabio").capitalize();
        +=> "Fabio"
        +
        + +

        + uniqueId_.uniqueId([prefix]) +
        + Generate a globally-unique id for client-side models or DOM elements + that need one. If prefix is passed, the id will be appended to it. +

        +
        +_.uniqueId('contact_');
        +=> 'contact_104'
        + +

        + template_.template(templateString, [context]) +
        + Compiles JavaScript templates into functions that can be evaluated + for rendering. Useful for rendering complicated bits of HTML from JSON + data sources. Template functions can both interpolate variables, using
        + <%= … %>, as well as execute arbitrary JavaScript code, with + <% … %>. When you evaluate a template function, pass in a + context object that has properties corresponding to the template's free + variables. If you're writing a one-off, you can pass the context + object as the second parameter to template in order to render + immediately instead of returning a template function. +

        +
        +var compiled = _.template("hello: <%= name %>");
        +compiled({name : 'moe'});
        +=> "hello: moe"
        +
        +var list = "<% _.each(people, function(name) { %> <li><%= name %></li> <% }); %>";
        +_.template(list, {people : ['moe', 'curly', 'larry']});
        +=> "<li>moe</li><li>curly</li><li>larry</li>"
        + +

        + You can also use print from within JavaScript code. This is + sometimes more convenient than using <%= ... %>. +

        + +
        +var compiled = _.template("<% print('Hello ' + epithet); %>");
        +compiled({epithet: "stooge"});
        +=> "Hello stooge."
        + +

        + If ERB-style delimiters aren't your cup of tea, you can change Underscore's + template settings to use different symbols to set off interpolated code. + Define an interpolate regex, and an (optional) evaluate regex + to match expressions that should be inserted and evaluated, respectively. + If no evaluate regex is provided, your templates will only be + capable of interpolating values. + For example, to perform + Mustache.js + style templating: +

        + +
        +_.templateSettings = {
        +  interpolate : /\{\{(.+?)\}\}/g
        +};
        +
        +var template = _.template("Hello {{ name }}!");
        +template({name : "Mustache"});
        +=> "Hello Mustache!"
        + +

        Chaining

        + +

        + chain_(obj).chain() +
        + Returns a wrapped object. Calling methods on this object will continue + to return wrapped objects until value is used. ( + A more realistic example.) +

        +
        +var stooges = [{name : 'curly', age : 25}, {name : 'moe', age : 21}, {name : 'larry', age : 23}];
        +var youngest = _(stooges).chain()
        +  .sortBy(function(stooge){ return stooge.age; })
        +  .map(function(stooge){ return stooge.name + ' is ' + stooge.age; })
        +  .first()
        +  .value();
        +=> "moe is 21"
        +
        + +

        + value_(obj).value() +
        + Extracts the value of a wrapped object. +

        +
        +_([1, 2, 3]).value();
        +=> [1, 2, 3]
        +
        + +

        Duck Typing

        + +

        + The isType (isArray, isFunction, isString ...) family of type-checking + functions use property detection to do their work, which, although + orders of magnitude faster than the alternative, isn't entirely safe when dealing + with objects that are used as hashes, where arbitrary strings are being + set for the keys. It's entirely possible for an object to masquerade as + another type, if you're setting properties with names like "concat" and + "charCodeAt". So be aware. +

        + + +

        Links & Suggested Reading

        + +

        + Underscore.lua, + a Lua port of the functions that are applicable in both languages. + Includes OOP-wrapping and chaining. + The source is + available on GitHub. +

        + +

        + Underscore.string, + an Underscore extension that adds functions for string-manipulation: + trim, startsWith, contains, capitalize, + reverse, sprintf, and more. +

        + +

        + Ruby's Enumerable module. +

        + +

        + Prototype.js, which provides + JavaScript with collection functions in the manner closest to Ruby's Enumerable. +

        + +

        + Oliver Steele's + Functional JavaScript, + which includes comprehensive higher-order function support as well as string lambdas. +

        + +

        + Python's itertools. +

        + +

        Change Log

        + +

        + 1.1.6April 18, 2011
        + Added _.after, which will return a function that only runs after + first being called a specified number of times. + _.invoke can now take a direct function reference. + _.every now requires an iterator function to be passed, which + mirrors the ECMA5 API. + _.extend no longer copies keys when the value is undefined. + _.bind now errors when trying to bind an undefined value. +

        + +

        + 1.1.5Mar 20, 2011
        + Added an _.defaults function, for use merging together JS objects + representing default options. + Added an _.once function, for manufacturing functions that should + only ever execute a single time. + _.bind now delegates to the native ECMAScript 5 version, + where available. + _.keys now throws an error when used on non-Object values, as in + ECMAScript 5. + Fixed a bug with _.keys when used over sparse arrays. +

        + +

        + 1.1.4Jan 9, 2011
        + Improved compliance with ES5's Array methods when passing null + as a value. _.wrap now correctly sets this for the + wrapped function. _.indexOf now takes an optional flag for + finding the insertion index in an array that is guaranteed to already + be sorted. Avoiding the use of .callee, to allow _.isArray + to work properly in ES5's strict mode. +

        + +

        + 1.1.3Dec 1, 2010
        + In CommonJS, Underscore may now be required with just:
        + var _ = require("underscore"). + Added _.throttle and _.debounce functions. + Removed _.breakLoop, in favor of an ECMA5-style un-break-able + each implementation — this removes the try/catch, and you'll now have + better stack traces for exceptions that are thrown within an Underscore iterator. + Improved the isType family of functions for better interoperability + with Internet Explorer host objects. + _.template now correctly escapes backslashes in templates. + Improved _.reduce compatibility with the ECMA5 version: + if you don't pass an initial value, the first item in the collection is used. + _.each no longer returns the iterated collection, for improved + consistency with ES5's forEach. +

        + +

        + 1.1.2
        + Fixed _.contains, which was mistakenly pointing at + _.intersect instead of _.include, like it should + have been. Added _.unique as an alias for _.uniq. +

        + +

        + 1.1.1
        + Improved the speed of _.template, and its handling of multiline + interpolations. Ryan Tenney contributed optimizations to many Underscore + functions. An annotated version of the source code is now available. +

        + +

        + 1.1.0
        + The method signature of _.reduce has been changed to match + the ECMAScript 5 signature, instead of the Ruby/Prototype.js version. + This is a backwards-incompatible change. _.template may now be + called with no arguments, and preserves whitespace. _.contains + is a new alias for _.include. +

        + +

        + 1.0.4
        + Andri Möll contributed the _.memoize + function, which can be used to speed up expensive repeated computations + by caching the results. +

        + +

        + 1.0.3
        + Patch that makes _.isEqual return false if any property + of the compared object has a NaN value. Technically the correct + thing to do, but of questionable semantics. Watch out for NaN comparisons. +

        + +

        + 1.0.2
        + Fixes _.isArguments in recent versions of Opera, which have + arguments objects as real Arrays. +

        + +

        + 1.0.1
        + Bugfix for _.isEqual, when comparing two objects with the same + number of undefined keys, but with different names. +

        + +

        + 1.0.0
        + Things have been stable for many months now, so Underscore is now + considered to be out of beta, at 1.0. Improvements since 0.6 + include _.isBoolean, and the ability to have _.extend + take multiple source objects. +

        + +

        + 0.6.0
        + Major release. Incorporates a number of + Mile Frawley's refactors for + safer duck-typing on collection functions, and cleaner internals. A new + _.mixin method that allows you to extend Underscore with utility + functions of your own. Added _.times, which works the same as in + Ruby or Prototype.js. Native support for ECMAScript 5's Array.isArray, + and Object.keys. +

        + +

        + 0.5.8
        + Fixed Underscore's collection functions to work on + NodeLists and + HTMLCollections + once more, thanks to + Justin Tulloss. +

        + +

        + 0.5.7
        + A safer implementation of _.isArguments, and a + faster _.isNumber,
        thanks to + Jed Schmidt. +

        + +

        + 0.5.6
        + Customizable delimiters for _.template, contributed by + Noah Sloan. +

        + +

        + 0.5.5
        + Fix for a bug in MobileSafari's OOP-wrapper, with the arguments object. +

        + +

        + 0.5.4
        + Fix for multiple single quotes within a template string for + _.template. See: + Rick Strahl's blog post. +

        + +

        + 0.5.2
        + New implementations of isArray, isDate, isFunction, + isNumber, isRegExp, and isString, thanks to + a suggestion from + Robert Kieffer. + Instead of doing Object#toString + comparisons, they now check for expected properties, which is less safe, + but more than an order of magnitude faster. Most other Underscore + functions saw minor speed improvements as a result. + Evgeniy Dolzhenko + contributed _.tap, + similar to Ruby 1.9's, + which is handy for injecting side effects (like logging) into chained calls. +

        + +

        + 0.5.1
        + Added an _.isArguments function. Lots of little safety checks + and optimizations contributed by + Noah Sloan and + Andri Möll. +

        + +

        + 0.5.0
        + [API Changes] _.bindAll now takes the context object as + its first parameter. If no method names are passed, all of the context + object's methods are bound to it, enabling chaining and easier binding. + _.functions now takes a single argument and returns the names + of its Function properties. Calling _.functions(_) will get you + the previous behavior. + Added _.isRegExp so that isEqual can now test for RegExp equality. + All of the "is" functions have been shrunk down into a single definition. + Karl Guertin contributed patches. +

        + +

        + 0.4.7
        + Added isDate, isNaN, and isNull, for completeness. + Optimizations for isEqual when checking equality between Arrays + or Dates. _.keys is now 25%–2X faster (depending on your + browser) which speeds up the functions that rely on it, such as _.each. +

        + +

        + 0.4.6
        + Added the range function, a port of the + Python + function of the same name, for generating flexibly-numbered lists + of integers. Original patch contributed by + Kirill Ishanov. +

        + +

        + 0.4.5
        + Added rest for Arrays and arguments objects, and aliased + first as head, and rest as tail, + thanks to Luke Sutton's patches. + Added tests ensuring that all Underscore Array functions also work on + arguments objects. +

        + +

        + 0.4.4
        + Added isString, and isNumber, for consistency. Fixed + _.isEqual(NaN, NaN) to return true (which is debatable). +

        + +

        + 0.4.3
        + Started using the native StopIteration object in browsers that support it. + Fixed Underscore setup for CommonJS environments. +

        + +

        + 0.4.2
        + Renamed the unwrapping function to value, for clarity. +

        + +

        + 0.4.1
        + Chained Underscore objects now support the Array prototype methods, so + that you can perform the full range of operations on a wrapped array + without having to break your chain. Added a breakLoop method + to break in the middle of any Underscore iteration. Added an + isEmpty function that works on arrays and objects. +

        + +

        + 0.4.0
        + All Underscore functions can now be called in an object-oriented style, + like so: _([1, 2, 3]).map(...);. Original patch provided by + Marc-André Cournoyer. + Wrapped objects can be chained through multiple + method invocations. A functions method + was added, providing a sorted list of all the functions in Underscore. +

        + +

        + 0.3.3
        + Added the JavaScript 1.8 function reduceRight. Aliased it + as foldr, and aliased reduce as foldl. +

        + +

        + 0.3.2
        + Now runs on stock Rhino + interpreters with: load("underscore.js"). + Added identity as a utility function. +

        + +

        + 0.3.1
        + All iterators are now passed in the original collection as their third + argument, the same as JavaScript 1.6's forEach. Iterating over + objects is now called with (value, key, collection), for details + see _.each. +

        + +

        + 0.3.0
        + Added Dmitry Baranovskiy's + comprehensive optimizations, merged in + Kris Kowal's patches to make Underscore + CommonJS and + Narwhal compliant. +

        + +

        + 0.2.0
        + Added compose and lastIndexOf, renamed inject to + reduce, added aliases for inject, filter, + every, some, and forEach. +

        + +

        + 0.1.1
        + Added noConflict, so that the "Underscore" object can be assigned to + other variables. +

        + +

        + 0.1.0
        + Initial release of Underscore.js. +

        + +

        + + A DocumentCloud Project + +

        + +
        + +
        + + + + + + diff --git a/node_modules/underscore/index.js b/node_modules/underscore/index.js new file mode 100644 index 000000000..2cf0ca5b0 --- /dev/null +++ b/node_modules/underscore/index.js @@ -0,0 +1 @@ +module.exports = require('./underscore'); diff --git a/node_modules/underscore/package.json b/node_modules/underscore/package.json new file mode 100644 index 000000000..86c918592 --- /dev/null +++ b/node_modules/underscore/package.json @@ -0,0 +1,12 @@ +{ + "name" : "underscore", + "description" : "JavaScript's functional programming helper library.", + "homepage" : "http://documentcloud.github.com/underscore/", + "keywords" : ["util", "functional", "server", "client", "browser"], + "author" : "Jeremy Ashkenas ", + "contributors" : [], + "dependencies" : [], + "repository" : {"type": "git", "url": "git://github.com/documentcloud/underscore.git"}, + "main" : "underscore.js", + "version" : "1.1.6" +} diff --git a/node_modules/underscore/underscore.js b/node_modules/underscore/underscore.js new file mode 100644 index 000000000..eaba008c4 --- /dev/null +++ b/node_modules/underscore/underscore.js @@ -0,0 +1,807 @@ +// Underscore.js 1.1.6 +// (c) 2011 Jeremy Ashkenas, DocumentCloud Inc. +// Underscore is freely distributable under the MIT license. +// Portions of Underscore are inspired or borrowed from Prototype, +// Oliver Steele's Functional, and John Resig's Micro-Templating. +// For all details and documentation: +// http://documentcloud.github.com/underscore + +(function() { + + // Baseline setup + // -------------- + + // Establish the root object, `window` in the browser, or `global` on the server. + var root = this; + + // Save the previous value of the `_` variable. + var previousUnderscore = root._; + + // Establish the object that gets returned to break out of a loop iteration. + var breaker = {}; + + // Save bytes in the minified (but not gzipped) version: + var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; + + // Create quick reference variables for speed access to core prototypes. + var slice = ArrayProto.slice, + unshift = ArrayProto.unshift, + toString = ObjProto.toString, + hasOwnProperty = ObjProto.hasOwnProperty; + + // All **ECMAScript 5** native function implementations that we hope to use + // are declared here. + var + nativeForEach = ArrayProto.forEach, + nativeMap = ArrayProto.map, + nativeReduce = ArrayProto.reduce, + nativeReduceRight = ArrayProto.reduceRight, + nativeFilter = ArrayProto.filter, + nativeEvery = ArrayProto.every, + nativeSome = ArrayProto.some, + nativeIndexOf = ArrayProto.indexOf, + nativeLastIndexOf = ArrayProto.lastIndexOf, + nativeIsArray = Array.isArray, + nativeKeys = Object.keys, + nativeBind = FuncProto.bind; + + // Create a safe reference to the Underscore object for use below. + var _ = function(obj) { return new wrapper(obj); }; + + // Export the Underscore object for **CommonJS**, with backwards-compatibility + // for the old `require()` API. If we're not in CommonJS, add `_` to the + // global object. + if (typeof module !== 'undefined' && module.exports) { + module.exports = _; + _._ = _; + } else { + root._ = _; + } + + // Current version. + _.VERSION = '1.1.6'; + + // Collection Functions + // -------------------- + + // The cornerstone, an `each` implementation, aka `forEach`. + // Handles objects implementing `forEach`, arrays, and raw objects. + // Delegates to **ECMAScript 5**'s native `forEach` if available. + var each = _.each = _.forEach = function(obj, iterator, context) { + if (obj == null) return; + if (nativeForEach && obj.forEach === nativeForEach) { + obj.forEach(iterator, context); + } else if (_.isNumber(obj.length)) { + for (var i = 0, l = obj.length; i < l; i++) { + if (iterator.call(context, obj[i], i, obj) === breaker) return; + } + } else { + for (var key in obj) { + if (hasOwnProperty.call(obj, key)) { + if (iterator.call(context, obj[key], key, obj) === breaker) return; + } + } + } + }; + + // Return the results of applying the iterator to each element. + // Delegates to **ECMAScript 5**'s native `map` if available. + _.map = function(obj, iterator, context) { + var results = []; + if (obj == null) return results; + if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); + each(obj, function(value, index, list) { + results[results.length] = iterator.call(context, value, index, list); + }); + return results; + }; + + // **Reduce** builds up a single result from a list of values, aka `inject`, + // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available. + _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) { + var initial = memo !== void 0; + if (obj == null) obj = []; + if (nativeReduce && obj.reduce === nativeReduce) { + if (context) iterator = _.bind(iterator, context); + return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator); + } + each(obj, function(value, index, list) { + if (!initial && index === 0) { + memo = value; + initial = true; + } else { + memo = iterator.call(context, memo, value, index, list); + } + }); + if (!initial) throw new TypeError("Reduce of empty array with no initial value"); + return memo; + }; + + // The right-associative version of reduce, also known as `foldr`. + // Delegates to **ECMAScript 5**'s native `reduceRight` if available. + _.reduceRight = _.foldr = function(obj, iterator, memo, context) { + if (obj == null) obj = []; + if (nativeReduceRight && obj.reduceRight === nativeReduceRight) { + if (context) iterator = _.bind(iterator, context); + return memo !== void 0 ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator); + } + var reversed = (_.isArray(obj) ? obj.slice() : _.toArray(obj)).reverse(); + return _.reduce(reversed, iterator, memo, context); + }; + + // Return the first value which passes a truth test. Aliased as `detect`. + _.find = _.detect = function(obj, iterator, context) { + var result; + any(obj, function(value, index, list) { + if (iterator.call(context, value, index, list)) { + result = value; + return true; + } + }); + return result; + }; + + // Return all the elements that pass a truth test. + // Delegates to **ECMAScript 5**'s native `filter` if available. + // Aliased as `select`. + _.filter = _.select = function(obj, iterator, context) { + var results = []; + if (obj == null) return results; + if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context); + each(obj, function(value, index, list) { + if (iterator.call(context, value, index, list)) results[results.length] = value; + }); + return results; + }; + + // Return all the elements for which a truth test fails. + _.reject = function(obj, iterator, context) { + var results = []; + if (obj == null) return results; + each(obj, function(value, index, list) { + if (!iterator.call(context, value, index, list)) results[results.length] = value; + }); + return results; + }; + + // Determine whether all of the elements match a truth test. + // Delegates to **ECMAScript 5**'s native `every` if available. + // Aliased as `all`. + _.every = _.all = function(obj, iterator, context) { + var result = true; + if (obj == null) return result; + if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context); + each(obj, function(value, index, list) { + if (!(result = result && iterator.call(context, value, index, list))) return breaker; + }); + return result; + }; + + // Determine if at least one element in the object matches a truth test. + // Delegates to **ECMAScript 5**'s native `some` if available. + // Aliased as `any`. + var any = _.some = _.any = function(obj, iterator, context) { + iterator || (iterator = _.identity); + var result = false; + if (obj == null) return result; + if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context); + each(obj, function(value, index, list) { + if (result = iterator.call(context, value, index, list)) return breaker; + }); + return result; + }; + + // Determine if a given value is included in the array or object using `===`. + // Aliased as `contains`. + _.include = _.contains = function(obj, target) { + var found = false; + if (obj == null) return found; + if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1; + any(obj, function(value) { + if (found = value === target) return true; + }); + return found; + }; + + // Invoke a method (with arguments) on every item in a collection. + _.invoke = function(obj, method) { + var args = slice.call(arguments, 2); + return _.map(obj, function(value) { + return (method.call ? method || value : value[method]).apply(value, args); + }); + }; + + // Convenience version of a common use case of `map`: fetching a property. + _.pluck = function(obj, key) { + return _.map(obj, function(value){ return value[key]; }); + }; + + // Return the maximum element or (element-based computation). + _.max = function(obj, iterator, context) { + if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj); + var result = {computed : -Infinity}; + each(obj, function(value, index, list) { + var computed = iterator ? iterator.call(context, value, index, list) : value; + computed >= result.computed && (result = {value : value, computed : computed}); + }); + return result.value; + }; + + // Return the minimum element (or element-based computation). + _.min = function(obj, iterator, context) { + if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj); + var result = {computed : Infinity}; + each(obj, function(value, index, list) { + var computed = iterator ? iterator.call(context, value, index, list) : value; + computed < result.computed && (result = {value : value, computed : computed}); + }); + return result.value; + }; + + // Sort the object's values by a criterion produced by an iterator. + _.sortBy = function(obj, iterator, context) { + return _.pluck(_.map(obj, function(value, index, list) { + return { + value : value, + criteria : iterator.call(context, value, index, list) + }; + }).sort(function(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }), 'value'); + }; + + // Use a comparator function to figure out at what index an object should + // be inserted so as to maintain order. Uses binary search. + _.sortedIndex = function(array, obj, iterator) { + iterator || (iterator = _.identity); + var low = 0, high = array.length; + while (low < high) { + var mid = (low + high) >> 1; + iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid; + } + return low; + }; + + // Safely convert anything iterable into a real, live array. + _.toArray = function(iterable) { + if (!iterable) return []; + if (iterable.toArray) return iterable.toArray(); + if (_.isArray(iterable)) return iterable; + if (_.isArguments(iterable)) return slice.call(iterable); + return _.values(iterable); + }; + + // Return the number of elements in an object. + _.size = function(obj) { + return _.toArray(obj).length; + }; + + // Array Functions + // --------------- + + // Get the first element of an array. Passing **n** will return the first N + // values in the array. Aliased as `head`. The **guard** check allows it to work + // with `_.map`. + _.first = _.head = function(array, n, guard) { + return (n != null) && !guard ? slice.call(array, 0, n) : array[0]; + }; + + // Returns everything but the first entry of the array. Aliased as `tail`. + // Especially useful on the arguments object. Passing an **index** will return + // the rest of the values in the array from that index onward. The **guard** + // check allows it to work with `_.map`. + _.rest = _.tail = function(array, index, guard) { + return slice.call(array, (index == null) || guard ? 1 : index); + }; + + // Get the last element of an array. + _.last = function(array) { + return array[array.length - 1]; + }; + + // Trim out all falsy values from an array. + _.compact = function(array) { + return _.filter(array, function(value){ return !!value; }); + }; + + // Return a completely flattened version of an array. + _.flatten = function(array) { + return _.reduce(array, function(memo, value) { + if (_.isArray(value)) return memo.concat(_.flatten(value)); + memo[memo.length] = value; + return memo; + }, []); + }; + + // Return a version of the array that does not contain the specified value(s). + _.without = function(array) { + var values = slice.call(arguments, 1); + return _.filter(array, function(value){ return !_.include(values, value); }); + }; + + // Produce a duplicate-free version of the array. If the array has already + // been sorted, you have the option of using a faster algorithm. + // Aliased as `unique`. + _.uniq = _.unique = function(array, isSorted) { + return _.reduce(array, function(memo, el, i) { + if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) memo[memo.length] = el; + return memo; + }, []); + }; + + // Produce an array that contains every item shared between all the + // passed-in arrays. + _.intersect = function(array) { + var rest = slice.call(arguments, 1); + return _.filter(_.uniq(array), function(item) { + return _.every(rest, function(other) { + return _.indexOf(other, item) >= 0; + }); + }); + }; + + // Zip together multiple lists into a single array -- elements that share + // an index go together. + _.zip = function() { + var args = slice.call(arguments); + var length = _.max(_.pluck(args, 'length')); + var results = new Array(length); + for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i); + return results; + }; + + // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**), + // we need this function. Return the position of the first occurrence of an + // item in an array, or -1 if the item is not included in the array. + // Delegates to **ECMAScript 5**'s native `indexOf` if available. + // If the array is large and already in sort order, pass `true` + // for **isSorted** to use binary search. + _.indexOf = function(array, item, isSorted) { + if (array == null) return -1; + var i, l; + if (isSorted) { + i = _.sortedIndex(array, item); + return array[i] === item ? i : -1; + } + if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item); + for (i = 0, l = array.length; i < l; i++) if (array[i] === item) return i; + return -1; + }; + + + // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available. + _.lastIndexOf = function(array, item) { + if (array == null) return -1; + if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item); + var i = array.length; + while (i--) if (array[i] === item) return i; + return -1; + }; + + // Generate an integer Array containing an arithmetic progression. A port of + // the native Python `range()` function. See + // [the Python documentation](http://docs.python.org/library/functions.html#range). + _.range = function(start, stop, step) { + if (arguments.length <= 1) { + stop = start || 0; + start = 0; + } + step = arguments[2] || 1; + + var len = Math.max(Math.ceil((stop - start) / step), 0); + var idx = 0; + var range = new Array(len); + + while(idx < len) { + range[idx++] = start; + start += step; + } + + return range; + }; + + // Function (ahem) Functions + // ------------------ + + // Create a function bound to a given object (assigning `this`, and arguments, + // optionally). Binding with arguments is also known as `curry`. + // Delegates to **ECMAScript 5**'s native `Function.bind` if available. + // We check for `func.bind` first, to fail fast when `func` is undefined. + _.bind = function(func, obj) { + if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1)); + var args = slice.call(arguments, 2); + return function() { + return func.apply(obj, args.concat(slice.call(arguments))); + }; + }; + + // Bind all of an object's methods to that object. Useful for ensuring that + // all callbacks defined on an object belong to it. + _.bindAll = function(obj) { + var funcs = slice.call(arguments, 1); + if (funcs.length == 0) funcs = _.functions(obj); + each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); }); + return obj; + }; + + // Memoize an expensive function by storing its results. + _.memoize = function(func, hasher) { + var memo = {}; + hasher || (hasher = _.identity); + return function() { + var key = hasher.apply(this, arguments); + return hasOwnProperty.call(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments)); + }; + }; + + // Delays a function for the given number of milliseconds, and then calls + // it with the arguments supplied. + _.delay = function(func, wait) { + var args = slice.call(arguments, 2); + return setTimeout(function(){ return func.apply(func, args); }, wait); + }; + + // Defers a function, scheduling it to run after the current call stack has + // cleared. + _.defer = function(func) { + return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); + }; + + // Internal function used to implement `_.throttle` and `_.debounce`. + var limit = function(func, wait, debounce) { + var timeout; + return function() { + var context = this, args = arguments; + var throttler = function() { + timeout = null; + func.apply(context, args); + }; + if (debounce) clearTimeout(timeout); + if (debounce || !timeout) timeout = setTimeout(throttler, wait); + }; + }; + + // Returns a function, that, when invoked, will only be triggered at most once + // during a given window of time. + _.throttle = function(func, wait) { + return limit(func, wait, false); + }; + + // Returns a function, that, as long as it continues to be invoked, will not + // be triggered. The function will be called after it stops being called for + // N milliseconds. + _.debounce = function(func, wait) { + return limit(func, wait, true); + }; + + // Returns a function that will be executed at most one time, no matter how + // often you call it. Useful for lazy initialization. + _.once = function(func) { + var ran = false, memo; + return function() { + if (ran) return memo; + ran = true; + return memo = func.apply(this, arguments); + }; + }; + + // Returns the first function passed as an argument to the second, + // allowing you to adjust arguments, run code before and after, and + // conditionally execute the original function. + _.wrap = function(func, wrapper) { + return function() { + var args = [func].concat(slice.call(arguments)); + return wrapper.apply(this, args); + }; + }; + + // Returns a function that is the composition of a list of functions, each + // consuming the return value of the function that follows. + _.compose = function() { + var funcs = slice.call(arguments); + return function() { + var args = slice.call(arguments); + for (var i=funcs.length-1; i >= 0; i--) { + args = [funcs[i].apply(this, args)]; + } + return args[0]; + }; + }; + + // Returns a function that will only be executed after being called N times. + _.after = function(times, func) { + return function() { + if (--times < 1) { return func.apply(this, arguments); } + }; + }; + + + // Object Functions + // ---------------- + + // Retrieve the names of an object's properties. + // Delegates to **ECMAScript 5**'s native `Object.keys` + _.keys = nativeKeys || function(obj) { + if (obj !== Object(obj)) throw new TypeError('Invalid object'); + var keys = []; + for (var key in obj) if (hasOwnProperty.call(obj, key)) keys[keys.length] = key; + return keys; + }; + + // Retrieve the values of an object's properties. + _.values = function(obj) { + return _.map(obj, _.identity); + }; + + // Return a sorted list of the function names available on the object. + // Aliased as `methods` + _.functions = _.methods = function(obj) { + return _.filter(_.keys(obj), function(key){ return _.isFunction(obj[key]); }).sort(); + }; + + // Extend a given object with all the properties in passed-in object(s). + _.extend = function(obj) { + each(slice.call(arguments, 1), function(source) { + for (var prop in source) { + if (source[prop] !== void 0) obj[prop] = source[prop]; + } + }); + return obj; + }; + + // Fill in a given object with default properties. + _.defaults = function(obj) { + each(slice.call(arguments, 1), function(source) { + for (var prop in source) { + if (obj[prop] == null) obj[prop] = source[prop]; + } + }); + return obj; + }; + + // Create a (shallow-cloned) duplicate of an object. + _.clone = function(obj) { + return _.isArray(obj) ? obj.slice() : _.extend({}, obj); + }; + + // Invokes interceptor with the obj, and then returns obj. + // The primary purpose of this method is to "tap into" a method chain, in + // order to perform operations on intermediate results within the chain. + _.tap = function(obj, interceptor) { + interceptor(obj); + return obj; + }; + + // Perform a deep comparison to check if two objects are equal. + _.isEqual = function(a, b) { + // Check object identity. + if (a === b) return true; + // Different types? + var atype = typeof(a), btype = typeof(b); + if (atype != btype) return false; + // Basic equality test (watch out for coercions). + if (a == b) return true; + // One is falsy and the other truthy. + if ((!a && b) || (a && !b)) return false; + // Unwrap any wrapped objects. + if (a._chain) a = a._wrapped; + if (b._chain) b = b._wrapped; + // One of them implements an isEqual()? + if (a.isEqual) return a.isEqual(b); + // Check dates' integer values. + if (_.isDate(a) && _.isDate(b)) return a.getTime() === b.getTime(); + // Both are NaN? + if (_.isNaN(a) && _.isNaN(b)) return false; + // Compare regular expressions. + if (_.isRegExp(a) && _.isRegExp(b)) + return a.source === b.source && + a.global === b.global && + a.ignoreCase === b.ignoreCase && + a.multiline === b.multiline; + // If a is not an object by this point, we can't handle it. + if (atype !== 'object') return false; + // Check for different array lengths before comparing contents. + if (a.length && (a.length !== b.length)) return false; + // Nothing else worked, deep compare the contents. + var aKeys = _.keys(a), bKeys = _.keys(b); + // Different object sizes? + if (aKeys.length != bKeys.length) return false; + // Recursive comparison of contents. + for (var key in a) if (!(key in b) || !_.isEqual(a[key], b[key])) return false; + return true; + }; + + // Is a given array or object empty? + _.isEmpty = function(obj) { + if (_.isArray(obj) || _.isString(obj)) return obj.length === 0; + for (var key in obj) if (hasOwnProperty.call(obj, key)) return false; + return true; + }; + + // Is a given value a DOM element? + _.isElement = function(obj) { + return !!(obj && obj.nodeType == 1); + }; + + // Is a given value an array? + // Delegates to ECMA5's native Array.isArray + _.isArray = nativeIsArray || function(obj) { + return toString.call(obj) === '[object Array]'; + }; + + // Is a given variable an arguments object? + _.isArguments = function(obj) { + return !!(obj && hasOwnProperty.call(obj, 'callee')); + }; + + // Is a given value a function? + _.isFunction = function(obj) { + return !!(obj && obj.constructor && obj.call && obj.apply); + }; + + // Is a given value a string? + _.isString = function(obj) { + return !!(obj === '' || (obj && obj.charCodeAt && obj.substr)); + }; + + // Is a given value a number? + _.isNumber = function(obj) { + return !!(obj === 0 || (obj && obj.toExponential && obj.toFixed)); + }; + + // Is the given value `NaN`? `NaN` happens to be the only value in JavaScript + // that does not equal itself. + _.isNaN = function(obj) { + return obj !== obj; + }; + + // Is a given value a boolean? + _.isBoolean = function(obj) { + return obj === true || obj === false; + }; + + // Is a given value a date? + _.isDate = function(obj) { + return !!(obj && obj.getTimezoneOffset && obj.setUTCFullYear); + }; + + // Is the given value a regular expression? + _.isRegExp = function(obj) { + return !!(obj && obj.test && obj.exec && (obj.ignoreCase || obj.ignoreCase === false)); + }; + + // Is a given value equal to null? + _.isNull = function(obj) { + return obj === null; + }; + + // Is a given variable undefined? + _.isUndefined = function(obj) { + return obj === void 0; + }; + + // Utility Functions + // ----------------- + + // Run Underscore.js in *noConflict* mode, returning the `_` variable to its + // previous owner. Returns a reference to the Underscore object. + _.noConflict = function() { + root._ = previousUnderscore; + return this; + }; + + // Keep the identity function around for default iterators. + _.identity = function(value) { + return value; + }; + + // Run a function **n** times. + _.times = function (n, iterator, context) { + for (var i = 0; i < n; i++) iterator.call(context, i); + }; + + // Add your own custom functions to the Underscore object, ensuring that + // they're correctly added to the OOP wrapper as well. + _.mixin = function(obj) { + each(_.functions(obj), function(name){ + addToWrapper(name, _[name] = obj[name]); + }); + }; + + // Generate a unique integer id (unique within the entire client session). + // Useful for temporary DOM ids. + var idCounter = 0; + _.uniqueId = function(prefix) { + var id = idCounter++; + return prefix ? prefix + id : id; + }; + + // By default, Underscore uses ERB-style template delimiters, change the + // following template settings to use alternative delimiters. + _.templateSettings = { + evaluate : /<%([\s\S]+?)%>/g, + interpolate : /<%=([\s\S]+?)%>/g + }; + + // JavaScript micro-templating, similar to John Resig's implementation. + // Underscore templating handles arbitrary delimiters, preserves whitespace, + // and correctly escapes quotes within interpolated code. + _.template = function(str, data) { + var c = _.templateSettings; + var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' + + 'with(obj||{}){__p.push(\'' + + str.replace(/\\/g, '\\\\') + .replace(/'/g, "\\'") + .replace(c.interpolate, function(match, code) { + return "'," + code.replace(/\\'/g, "'") + ",'"; + }) + .replace(c.evaluate || null, function(match, code) { + return "');" + code.replace(/\\'/g, "'") + .replace(/[\r\n\t]/g, ' ') + "__p.push('"; + }) + .replace(/\r/g, '\\r') + .replace(/\n/g, '\\n') + .replace(/\t/g, '\\t') + + "');}return __p.join('');"; + var func = new Function('obj', tmpl); + return data ? func(data) : func; + }; + + // The OOP Wrapper + // --------------- + + // If Underscore is called as a function, it returns a wrapped object that + // can be used OO-style. This wrapper holds altered versions of all the + // underscore functions. Wrapped objects may be chained. + var wrapper = function(obj) { this._wrapped = obj; }; + + // Expose `wrapper.prototype` as `_.prototype` + _.prototype = wrapper.prototype; + + // Helper function to continue chaining intermediate results. + var result = function(obj, chain) { + return chain ? _(obj).chain() : obj; + }; + + // A method to easily add functions to the OOP wrapper. + var addToWrapper = function(name, func) { + wrapper.prototype[name] = function() { + var args = slice.call(arguments); + unshift.call(args, this._wrapped); + return result(func.apply(_, args), this._chain); + }; + }; + + // Add all of the Underscore functions to the wrapper object. + _.mixin(_); + + // Add all mutator Array functions to the wrapper. + each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { + var method = ArrayProto[name]; + wrapper.prototype[name] = function() { + method.apply(this._wrapped, arguments); + return result(this._wrapped, this._chain); + }; + }); + + // Add all accessor Array functions to the wrapper. + each(['concat', 'join', 'slice'], function(name) { + var method = ArrayProto[name]; + wrapper.prototype[name] = function() { + return result(method.apply(this._wrapped, arguments), this._chain); + }; + }); + + // Start chaining a wrapped Underscore object. + wrapper.prototype.chain = function() { + this._chain = true; + return this; + }; + + // Extracts the result from a wrapped and chained object. + wrapper.prototype.value = function() { + return this._wrapped; + }; + +})(); diff --git a/package.json b/package.json new file mode 100644 index 000000000..73369ba07 --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name" : "jsdoc", + "description" : "Automated documentation generator for JavaScript", + "keywords" : ["jsdoc", "documentation"], + "homepage" : "http://micmath.github.com/jsdoc/", + "version" : "3.0.0a", + "author" : "Michael Mathews", + "repository" : { + "type" : "git", + "url" : "https://github.com/micmath/jsdoc.git" + }, + "maintainers" : [ + { + "name" : "Michael Mathews", + "email" : "micmath@gmail.com" + } + ], + "main" : "./jsdoc.js", + "bugs" : { + "web" : "https://github.com/micmath/jsdoc/issues" + }, + "directories" : { + "doc" : "./docs" + }, + "licenses" : [ + { + "type" : "MIT", + "url" : "http://www.opensource.org/licenses/mit-license.php" + } + ] +} \ No newline at end of file diff --git a/plugin/md.js b/plugin/md.js new file mode 100644 index 000000000..64f13f60b --- /dev/null +++ b/plugin/md.js @@ -0,0 +1,12 @@ +/** + @overview Converts the text of a doclet's description, from MarkDown to HTML. + */ + +var plugin = require('jsdoc/plugin'), + markdown = require('markdown/lib/markdown'); // TODO: allow rhino to use commonjs module id here + +plugin.manager.on('doclet', function(doclet) { + if (typeof doclet.description === 'string') { + doclet.description = markdown.toHTML(doclet.description); + } +}); \ No newline at end of file diff --git a/rhino_modules/fs/index.js b/rhino_modules/fs/index.js new file mode 100644 index 000000000..b01e60c29 --- /dev/null +++ b/rhino_modules/fs/index.js @@ -0,0 +1,67 @@ + +module.exports = { + readFileSync: function(filename, encoding, callback) { + if (typeof arguments[1] === 'function') { + encoding = null; + callback = arguments[1]; + } + + encoding = encoding || java.lang.System.getProperty('file.encoding'); + + try { + var content = new java.util.Scanner( + new java.io.File(filename), + encoding + ).useDelimiter("\\Z"); + + return String( content.next() ); + } + catch (e) { + throw('Cannot read module file '+filename); + } + + }, + readdirSync: function(path) { + var dir = new java.io.File(path); + if (!dir.directory) { return [String(dir)]; } + var files = dir.list(); + return files; + }, + + ls: function(dir, recurse, _allFiles, _path) { + var files, + file; + + if (typeof _path === 'undefined') { // initially + _allFiles = []; + _path = [dir]; + } + + if (_path.length === 0) { return _allFiles; } + if (typeof recurse === 'undefined') { recurse = 1; } + + files = this.readdirSync(dir); + + for (var f = 0, lenf = files.length; f < lenf; f++) { + file = String(files[f]); + + if (file.match(/^\.[^\.\/\\]/)) { continue; } // skip dot files + + if ((new java.io.File(_path.join('/') + '/' + file)).list()) { // it's a directory + _path.push(file); + + if (_path.length - 1 < recurse) { + exports.ls(_path.join('/'), recurse, _allFiles, _path); + } + _path.pop(); + } + else { // it's a file + _allFiles.push( + (_path.join('/') + '/' + file).replace(/[\/\\]+/g, '/') + ); + } + } + + return _allFiles; + } +}; \ No newline at end of file diff --git a/rhino_modules/path/index.js b/rhino_modules/path/index.js new file mode 100644 index 000000000..ebefaebf9 --- /dev/null +++ b/rhino_modules/path/index.js @@ -0,0 +1,9 @@ + +module.exports = { + 'basename' : function(path) { + var parts = path.split('/'); + parts.pop(); + path = parts.join('/'); + return path; + } +}; \ No newline at end of file diff --git a/rhino_modules/sys/index.js b/rhino_modules/sys/index.js new file mode 100644 index 000000000..f7d764640 --- /dev/null +++ b/rhino_modules/sys/index.js @@ -0,0 +1,6 @@ + +module.exports = { + 'puts' : function(str) { + print(String(str)); + } +}; \ No newline at end of file diff --git a/test-rhino.js b/test-rhino.js new file mode 100755 index 000000000..9c948f9f6 --- /dev/null +++ b/test-rhino.js @@ -0,0 +1,15 @@ +load('lib/rhino-shim.js'); +load('lib/nodeunit.js'); + +var fs = require('fs'), + testFiles = fs.ls('./test/'), + testFile; + +while ( testFile = testFiles.shift() ) { + var testName = testFile.replace(/\.js$/, ''); + var test = {}; + + test[testName] = require(testName); + + nodeunit.run(test); +} \ No newline at end of file diff --git a/test.js b/test.js new file mode 100644 index 000000000..df7a4ca76 --- /dev/null +++ b/test.js @@ -0,0 +1,8 @@ +#!/usr/bin/env node + +if (typeof load !== 'undefined') { + load('lib/rhino-shim.js'); +} + +var reporter = require('nodeunit').reporters['default']; +reporter.run(['./test']); \ No newline at end of file diff --git a/test/examples/only_comments.js b/test/examples/only_comments.js new file mode 100644 index 000000000..97b325ce6 --- /dev/null +++ b/test/examples/only_comments.js @@ -0,0 +1,2 @@ +/**@overview nothing but comments 1*/ +/**@overview nothing but comments 2*/ \ No newline at end of file diff --git a/test/jsdoc_parser.js b/test/jsdoc_parser.js new file mode 100644 index 000000000..416b1a30f --- /dev/null +++ b/test/jsdoc_parser.js @@ -0,0 +1,13 @@ +var parser = require('jsdoc/parser'); + +exports['The jsdoc parser should exist.'] = function(t) { + t.expect(1); + t.equal( typeof parser, 'object' ); + t.done(); +}; + +exports['The parser should have a parse function.'] = function(t) { + t.expect(1); + t.equal( typeof parser.parse, 'function' ); + t.done(); +}; diff --git a/test/jsdoc_parser_comments.js b/test/jsdoc_parser_comments.js new file mode 100644 index 000000000..7cd7f908f --- /dev/null +++ b/test/jsdoc_parser_comments.js @@ -0,0 +1,38 @@ +var parser = require('jsdoc/parser'); +var dumper = require('jsdoc/util/dumper'); + +exports['Parse a source containing only a jsdoc comment.'] = function(t) { + t.expect(1); + var docs = parser.parse('/**@doc*/'); + t.equal( docs.length, 1, 'should result in docs that contain the comment' ); + t.done(); +}; + +exports['Parse a source ending with a jsdoc comment.'] = function(t) { + t.expect(1); + var docs = parser.parse(';/**@doc*/'); + t.equal( docs.length, 1, 'should result in docs that contain the comment' ); + t.done(); +}; + +exports['Parse a source with a jsdoc comment preceding a jsdoc comment.'] = function(t) { + t.expect(1); + var docs = parser.parse('/**@doc1*/ /**@doc2*/ var x;'); + t.equal( docs.length, 2, 'should result in docs containing both the comments' ); + t.done(); +}; + +exports['Parse a source with only single line comments.'] = function(t) { + t.expect(1); + var docs = parser.parse('// foo'); + t.equal( docs.length, 0, 'should result in docs that are empty' ); + + t.done(); +}; + +exports['Parse a source with only single non-jsdoc multi-line comments.'] = function(t) { + t.expect(1); + var docs = parser.parse('/*foo*/'); + t.equal( docs.length, 0, 'should result in docs that are empty' ); + t.done(); +}; diff --git a/test/jsdoc_parser_function.js b/test/jsdoc_parser_function.js new file mode 100644 index 000000000..4d33c18b4 --- /dev/null +++ b/test/jsdoc_parser_function.js @@ -0,0 +1,29 @@ +var parser = require('jsdoc/parser'); + +exports['An undocumented named function.'] = function(t) { + t.expect(3); + var docs = parser.parse('function foo() {}'); + t.equal( docs.length, 1, 'should result in 1 doc' ); + t.equal( typeof docs[0].longname, 'string', 'should have a longname set' ); + t.equal( docs[0].longname, 'foo', 'should have a longname equal to the function name' ); + t.done(); +}; + +exports['A documented named function.'] = function(t) { + t.expect(4); + var docs = parser.parse('/**@desc a function*/ function foo() {}'); + t.equal( docs.length, 1, 'should result in 1 doc' ); + t.equal( docs[0].longname, 'foo', 'should have a longname equal to the function name' ); + t.equal( typeof docs[0].jsdoc, 'object', 'should have a jsdoc set' ); + t.equal( docs[0].jsdoc.src, '@desc a function', 'should have a jsdoc equal to the preceding doc comment' ); + t.done(); +}; + +exports['A nested documented named function.'] = function(t) { + t.expect(2); + var docs = parser.parse('function foo() { /**@desc a function*/ function bar() {} }'); + t.equal( docs.length, 2, 'should result in 2 docs' ); + t.equal( docs[1].longname, 'foo~bar', 'the inner function should have a longname equal to ~' ); + t.done(); +}; + diff --git a/test/narcissus.js b/test/narcissus.js new file mode 100644 index 000000000..aa062d9d6 --- /dev/null +++ b/test/narcissus.js @@ -0,0 +1,24 @@ +var narcissus = require('narcissus'); + +exports['Narcissus should exist.'] = function(t) { + t.expect(2); + t.equal( typeof narcissus, 'object' ); + t.equal( typeof narcissus.Narcissus, 'object' ); + t.done(); +}; + +exports['Narcissus parse should be a function.'] = function(t) { + t.expect(2); + t.equal( typeof narcissus.Narcissus.parser, 'object' ); + t.equal( typeof narcissus.Narcissus.parser.parse, 'function' ); + t.done(); +}; + +exports['Narcissus parse should generate an AST from source.'] = function(t) { + t.expect(1); + var src = 'var foo = 1;', + ast = narcissus.Narcissus.parser.parse(src, 'filename', 1); + + t.equal( typeof ast, 'object' ); + t.done(); +}; \ No newline at end of file From c089a4154ded5d1b8a8590b2556036f89c043028 Mon Sep 17 00:00:00 2001 From: Michael Mathews Date: Sat, 7 May 2011 15:22:41 +0100 Subject: [PATCH 04/14] Squashed 'lib/Rhino-Require/' changes from b34307a..edb191a edb191a Update readme. git-subtree-dir: lib/Rhino-Require git-subtree-split: edb191a96a6e608b9e777d46d2dc46cd65cd680e --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cd93e4d4c..3443e1533 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Rhino-Require This is require() for rhino. -A nodejs-compatible implementation of the commonjs require function, implemented -in code compatible with the Mozilla Rhino JavaScript engine. +A nodejs-like implementation of the commonjs `require` function, implemented +to be compatible with the Mozilla Rhino JavaScript engine. Written by Michael Mathews. Licensed as public domain. \ No newline at end of file From 47b513424c56fd059031c7222660627fa211aab7 Mon Sep 17 00:00:00 2001 From: Michael Mathews Date: Sat, 7 May 2011 15:26:22 +0100 Subject: [PATCH 05/14] Removed rhino-require file, now using subtree of Rhino-Require project instead. --- lib/rhino-require.js | 253 ------------------------------------------- 1 file changed, 253 deletions(-) delete mode 100644 lib/rhino-require.js diff --git a/lib/rhino-require.js b/lib/rhino-require.js deleted file mode 100644 index 2de9bbb71..000000000 --- a/lib/rhino-require.js +++ /dev/null @@ -1,253 +0,0 @@ -/* - Rhino-Require is Public Domain - - - The author or authors of this code dedicate any and all copyright interest - in this code to the public domain. We make this dedication for the benefit - of the public at large and to the detriment of our heirs and successors. We - intend this dedication to be an overt act of relinquishment in perpetuity of - all present and future rights to this code under copyright law. - */ - -(function() { - - var require = global.require = function(id) { /*debug*///console.log('require('+id+')'); - var moduleContent = '', - moduleUri; - - moduleUri = require.resolve(id); - moduleContent = ''; - - var file = new java.io.File(moduleUri); - try { - var scanner = new java.util.Scanner(file).useDelimiter("\\Z"); - moduleContent = String( scanner.next() ); - } - catch(e) { - throw 'Unable to read file at: '+moduleUri+', '+e; - } - - if (moduleContent) { - try { - var f = new Function('require', 'exports', 'module', moduleContent), - exports = require.cache[moduleUri] || {}, - module = { id: id, uri: moduleUri, exports: exports }; - - - require._root.unshift(moduleUri); - f.call({}, require, exports, module); - require._root.shift(); - } - catch(e) { - throw 'Unable to require source code from "' + moduleUri + '": ' + e.toSource(); - } - - exports = module.exports || exports; - require.cache[id] = exports; - } - else { - throw 'The requested module cannot be returned: no content for id: "' + id + '" in paths: ' + require.paths.join(', '); - } - - return exports; - } - require._root = ['']; - require.paths = []; - require.cache = {}; // cache module exports. Like: {id: exported} - - /** Given a module id, try to find the path to the associated module. - */ - require.resolve = function(id) { - // TODO: 1. load node core modules - - // 2. dot-relative module id, like './foo/bar' - var parts = id.match(/^(\.?\.\/|\/)(.+)$/), - isRelative = false, - isAbsolute = false, - basename = id; - - if (parts) { - isRelative = parts[1] === './' || parts[1] === '../'; - isAbsolute = parts[1] === '/'; - basename = parts[2]; - } - - if (typeof basename !== 'undefined') { - - if (isAbsolute) { - rootedId = id; - } - else { - var root = (isRelative? toDir(require._root[0] || '.') : '.'), - rootedId = (root + '/' + id).replace(/\/[^\/]+\/\.\.\//g, '/').replace(/\/\.\//g, '/'), - uri = ''; - } - - if ( uri = loadAsFile(rootedId) ) { } - else if ( uri = loadAsDir(rootedId) ) { } - else if ( uri = loadNodeModules(rootedId) ) { } - else if ( uri = nodeModulesPaths(rootedId, 'rhino_modules') ) { } - else if ( uri = nodeModulesPaths(rootedId, 'node_modules') ) { } - - if (uri !== '') return toAbsolute(uri); - - throw 'Require Error: Not found.'; - } - } - - /** Given a path, return the base directory of that path. - @example toDir('/foo/bar/somefile.js'); => '/foo/bar' - */ - function toDir(path) { - var file = new java.io.File(path); - - if (file.isDirectory()) { - return path; - } - - var parts = path.split(/[\\\/]/); - parts.pop(); - - return parts.join('/'); - } - - /** Returns true if the given path exists and is a file. - */ - function isFile(path) { - var file = new java.io.File(path); - - if (file.isFile()) { - return true; - } - - return false; - } - - /** Returns true if the given path exists and is a directory. - */ - function isDir(path) { - var file = new java.io.File(path); - - if (file.isDirectory()) { - return true; - } - - return false; - } - - /** Get the path of the current working directory - */ - function getCwd() { - return toDir( ''+new java.io.File('.').getAbsolutePath() ).replace(/\/\.$/, ''); - } - - function toAbsolute(relPath) { - absPath = ''+new java.io.File(relPath).getAbsolutePath(); - absPath = absPath.replace(/\/[^\/]+\/\.\.\//g, '/').replace(/\/\.\//g, '/'); - return absPath; - } - - /** Assume the id is a file, try to find it. - */ - function loadAsFile(id) { - if ( isFile(id) ) { return id; } - - if ( isFile(id+'.js') ) { return id+'.js'; } - - if ( isFile(id+'.node') ) { throw 'Require Error: .node files not supported'; } - } - - /** Assume the id is a directory, try to find a module file within it. - */ - function loadAsDir(id) { - if (!isDir(id)) { - return; - } - // look for the "main" property of the package.json file - if ( isFile(id+'/package.json') ) { - var packageJson = readFileSync(id+'/package.json', 'utf-8'); - eval( 'packageJson = '+ packageJson); - if (packageJson.hasOwnProperty('main')) { - var main = (id + '/' + packageJson.main).replace(/\/\.?\//g, '/'); - return require.resolve(main); - } - } - - if ( isFile(id+'/index.js') ) { - return id+'/index.js'; - } - } - - function loadNodeModules(id) { - var path, - uri; - for (var i = 0, len = require.paths.length; i < len; i++) { - path = require.paths[i]; - if (isDir(path)) { - path = (path + '/' + id).replace(/\/\.?\//g, '/'); - - uri = loadAsFile(path); - if (typeof uri !== 'undefined') { - return uri; - } - - uri = loadAsDir(path); - if (typeof uri !== 'undefined') { - return uri; - } - } - } - } - - function nodeModulesPaths(id, moduleFolder) { - var cwd = getCwd(), - dirs = cwd.split('/'), - dir, - path, - filename, - uri; - - while (dirs.length) { - dir = dirs.join('/'); - path = dir+'/'+moduleFolder; - - if ( isDir(path) ) { - filename = (path+'/'+id).replace(/\/\.?\//g, '/'); - - if ( uri = loadAsFile(filename) ) { - uri = uri.replace(cwd, '.'); - return uri; - } - - if ( uri = loadAsDir(filename) ) { - uri = uri.replace(cwd, '.'); - return uri; - } - } - - dirs.pop(); - } - } - - function readFileSync(filename, encoding, callback) { - if (typeof arguments[1] === 'function') { - encoding = null; - callback = arguments[1]; - } - - encoding = encoding || java.lang.System.getProperty('file.encoding'); - - try { - var content = new java.util.Scanner( - new java.io.File(filename), - encoding - ).useDelimiter("\\Z"); - - return String( content.next() ); - } - catch (e) { - return ''; - } - } - -})(); \ No newline at end of file From f57d4748266f590ce4e4fc1abaf24c1ec3d6cf4f Mon Sep 17 00:00:00 2001 From: Michael Mathews Date: Sat, 7 May 2011 22:23:53 +0100 Subject: [PATCH 06/14] Added ejs templates. --- jsdoc.js | 19 +++++++++++++++-- lib/Rhino-Require/README.md | 26 ++++++++++++++++++++--- node_modules/jsdoc/doclet.js | 23 +++++++++++++++++++- node_modules/jsdoc/parser.js | 10 ++++++--- test-rhino.js | 15 -------------- test.js | 8 ------- test/examples/only_comments.js | 2 -- test/jsdoc_parser.js | 13 ------------ test/jsdoc_parser_comments.js | 38 ---------------------------------- test/jsdoc_parser_function.js | 29 -------------------------- test/narcissus.js | 24 --------------------- 11 files changed, 69 insertions(+), 138 deletions(-) delete mode 100755 test-rhino.js delete mode 100644 test.js delete mode 100644 test/examples/only_comments.js delete mode 100644 test/jsdoc_parser.js delete mode 100644 test/jsdoc_parser_comments.js delete mode 100644 test/jsdoc_parser_function.js delete mode 100644 test/narcissus.js diff --git a/jsdoc.js b/jsdoc.js index 36d520dcc..2261bce9f 100644 --- a/jsdoc.js +++ b/jsdoc.js @@ -38,14 +38,29 @@ console.log('USAGE: node main.js yourfile.js'); process.exit(0); } + var srcFile = opts._[0]; var src = fs.readFileSync(srcFile, 'utf-8'); var parser = require('jsdoc/parser'); - var symbols = parser.parse(src); + var docs = parser.parse(src); + +// docs = _.map(docs, function(doc) { +// if (!doc.jsdoc) { doc.jsdoc = {}; } +// doc.jsdoc.longname = doc.longname; +// return doc.jsdoc; +// }); - console.log( dumper.dump(symbols) ); + if (opts.expel) { + console.log( dumper.dump(docs) ); + } + else { + var taffy = require('./templates/lib/taffy'); + var publisher = require('./templates/default'); + + console.log( publisher.publish( new taffy(docs) ) ); + } })(); \ No newline at end of file diff --git a/lib/Rhino-Require/README.md b/lib/Rhino-Require/README.md index 3443e1533..c1d6023ee 100644 --- a/lib/Rhino-Require/README.md +++ b/lib/Rhino-Require/README.md @@ -1,9 +1,29 @@ Rhino-Require ==== -This is require() for rhino. - A nodejs-like implementation of the commonjs `require` function, implemented to be compatible with the Mozilla Rhino JavaScript engine. -Written by Michael Mathews. Licensed as public domain. \ No newline at end of file +Usage +---- + +Assuming you have created a JavaScript commonjs module and saved it at +`./node_modules/twiddler/index.js` + + module.exports = { + twiddle: function(str) { + } + }; + +You can then load that module into your `./main.js` script using Rhino-Require. + + load('lib/rhino-require.js'); + + var twiddler = require('twiddler'); + twiddler.twiddle('foo'); + +License +---- + +Written by Michael Mathews. Licensed as public domain. + diff --git a/node_modules/jsdoc/doclet.js b/node_modules/jsdoc/doclet.js index 13a21fbb6..bf5e79704 100644 --- a/node_modules/jsdoc/doclet.js +++ b/node_modules/jsdoc/doclet.js @@ -3,6 +3,7 @@ exports.Doclet = Doclet; function Doclet(jsdoc, meta) { + if (jsdoc !== '') { this.tags = this.parseTags(jsdoc); } @@ -10,6 +11,14 @@ this.tags = []; } + if (!this.hasOwnProperty('kind') && meta && meta.hasOwnProperty('kind')) { + this.kind = meta.kind; + } + + if (!this.hasOwnProperty('longname') && meta && meta.hasOwnProperty('longname')) { + this.longname = meta.longname; + } + plugin.manager.run('doclet', [this]); } @@ -17,7 +26,7 @@ // tags have [title, type, pname, text] commentSrc = fixDescription( trim(commentSrc) ); - this.src = commentSrc; + this.jsdoc = commentSrc; var tags = splitTags(commentSrc), tag; @@ -79,6 +88,18 @@ if ( /\{(.+?)\}/.test(tag.text) ) { tag.text = trim(RegExp.$1); } + + doc.type = tag.text; + } + }; + + dict['name'] = { + has: ['value'], + title: 'name', + onTag: function(tag, doc) { + tag.text = trim(tag.text); + + doc.name = tag.text; } }; diff --git a/node_modules/jsdoc/parser.js b/node_modules/jsdoc/parser.js index b6dc00a1a..c62a4fd1f 100644 --- a/node_modules/jsdoc/parser.js +++ b/node_modules/jsdoc/parser.js @@ -41,7 +41,7 @@ var handle = { JSDOC: function(jsdoc) { //console.log( '>>> jsdoc "'+jsdoc+'"' ); - symbols.push({longname: null, jsdoc: new Doclet(jsdoc)}); + symbols.push( new Doclet(jsdoc, {longname: ''}) ); }, VAR: function(node) { var child = null, @@ -54,7 +54,11 @@ } var namePath = path.join('') + (path.length?'~':'') + child.name; - symbols.push({longname: namePath, jsdoc: defined(child.jsdoc)? new Doclet(child.jsdoc) : new Doclet('')}); + symbols.push( + defined(child.jsdoc)? + new Doclet(child.jsdoc, {longname: namePath, kind: 'var'}) + : new Doclet('', {longname: namePath, kind: 'var'}) + ); //console.log( '>>> variable '+namePath+(defined(child.jsdoc)? ' "'+child.jsdoc+'"' : '') ); var children = walkable(child); if (children) { walk(children); } @@ -64,7 +68,7 @@ var namePath = path.join('') + (path.length?'~':'') + node.name, jsdoc = defined(node.jsdoc)? node.jsdoc : ''; - symbols.push({longname: namePath, jsdoc: new Doclet(jsdoc)}); + symbols.push( new Doclet(jsdoc, {longname: namePath, kind: 'function'}) ); //console.log( '>>> function '+namePath+(defined(node.jsdoc)? ' "'+node.jsdoc+'"' : '') ); path.push((path.length?'~':'')+node.name); walk(node.body.children); diff --git a/test-rhino.js b/test-rhino.js deleted file mode 100755 index 9c948f9f6..000000000 --- a/test-rhino.js +++ /dev/null @@ -1,15 +0,0 @@ -load('lib/rhino-shim.js'); -load('lib/nodeunit.js'); - -var fs = require('fs'), - testFiles = fs.ls('./test/'), - testFile; - -while ( testFile = testFiles.shift() ) { - var testName = testFile.replace(/\.js$/, ''); - var test = {}; - - test[testName] = require(testName); - - nodeunit.run(test); -} \ No newline at end of file diff --git a/test.js b/test.js deleted file mode 100644 index df7a4ca76..000000000 --- a/test.js +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env node - -if (typeof load !== 'undefined') { - load('lib/rhino-shim.js'); -} - -var reporter = require('nodeunit').reporters['default']; -reporter.run(['./test']); \ No newline at end of file diff --git a/test/examples/only_comments.js b/test/examples/only_comments.js deleted file mode 100644 index 97b325ce6..000000000 --- a/test/examples/only_comments.js +++ /dev/null @@ -1,2 +0,0 @@ -/**@overview nothing but comments 1*/ -/**@overview nothing but comments 2*/ \ No newline at end of file diff --git a/test/jsdoc_parser.js b/test/jsdoc_parser.js deleted file mode 100644 index 416b1a30f..000000000 --- a/test/jsdoc_parser.js +++ /dev/null @@ -1,13 +0,0 @@ -var parser = require('jsdoc/parser'); - -exports['The jsdoc parser should exist.'] = function(t) { - t.expect(1); - t.equal( typeof parser, 'object' ); - t.done(); -}; - -exports['The parser should have a parse function.'] = function(t) { - t.expect(1); - t.equal( typeof parser.parse, 'function' ); - t.done(); -}; diff --git a/test/jsdoc_parser_comments.js b/test/jsdoc_parser_comments.js deleted file mode 100644 index 7cd7f908f..000000000 --- a/test/jsdoc_parser_comments.js +++ /dev/null @@ -1,38 +0,0 @@ -var parser = require('jsdoc/parser'); -var dumper = require('jsdoc/util/dumper'); - -exports['Parse a source containing only a jsdoc comment.'] = function(t) { - t.expect(1); - var docs = parser.parse('/**@doc*/'); - t.equal( docs.length, 1, 'should result in docs that contain the comment' ); - t.done(); -}; - -exports['Parse a source ending with a jsdoc comment.'] = function(t) { - t.expect(1); - var docs = parser.parse(';/**@doc*/'); - t.equal( docs.length, 1, 'should result in docs that contain the comment' ); - t.done(); -}; - -exports['Parse a source with a jsdoc comment preceding a jsdoc comment.'] = function(t) { - t.expect(1); - var docs = parser.parse('/**@doc1*/ /**@doc2*/ var x;'); - t.equal( docs.length, 2, 'should result in docs containing both the comments' ); - t.done(); -}; - -exports['Parse a source with only single line comments.'] = function(t) { - t.expect(1); - var docs = parser.parse('// foo'); - t.equal( docs.length, 0, 'should result in docs that are empty' ); - - t.done(); -}; - -exports['Parse a source with only single non-jsdoc multi-line comments.'] = function(t) { - t.expect(1); - var docs = parser.parse('/*foo*/'); - t.equal( docs.length, 0, 'should result in docs that are empty' ); - t.done(); -}; diff --git a/test/jsdoc_parser_function.js b/test/jsdoc_parser_function.js deleted file mode 100644 index 4d33c18b4..000000000 --- a/test/jsdoc_parser_function.js +++ /dev/null @@ -1,29 +0,0 @@ -var parser = require('jsdoc/parser'); - -exports['An undocumented named function.'] = function(t) { - t.expect(3); - var docs = parser.parse('function foo() {}'); - t.equal( docs.length, 1, 'should result in 1 doc' ); - t.equal( typeof docs[0].longname, 'string', 'should have a longname set' ); - t.equal( docs[0].longname, 'foo', 'should have a longname equal to the function name' ); - t.done(); -}; - -exports['A documented named function.'] = function(t) { - t.expect(4); - var docs = parser.parse('/**@desc a function*/ function foo() {}'); - t.equal( docs.length, 1, 'should result in 1 doc' ); - t.equal( docs[0].longname, 'foo', 'should have a longname equal to the function name' ); - t.equal( typeof docs[0].jsdoc, 'object', 'should have a jsdoc set' ); - t.equal( docs[0].jsdoc.src, '@desc a function', 'should have a jsdoc equal to the preceding doc comment' ); - t.done(); -}; - -exports['A nested documented named function.'] = function(t) { - t.expect(2); - var docs = parser.parse('function foo() { /**@desc a function*/ function bar() {} }'); - t.equal( docs.length, 2, 'should result in 2 docs' ); - t.equal( docs[1].longname, 'foo~bar', 'the inner function should have a longname equal to ~' ); - t.done(); -}; - diff --git a/test/narcissus.js b/test/narcissus.js deleted file mode 100644 index aa062d9d6..000000000 --- a/test/narcissus.js +++ /dev/null @@ -1,24 +0,0 @@ -var narcissus = require('narcissus'); - -exports['Narcissus should exist.'] = function(t) { - t.expect(2); - t.equal( typeof narcissus, 'object' ); - t.equal( typeof narcissus.Narcissus, 'object' ); - t.done(); -}; - -exports['Narcissus parse should be a function.'] = function(t) { - t.expect(2); - t.equal( typeof narcissus.Narcissus.parser, 'object' ); - t.equal( typeof narcissus.Narcissus.parser.parse, 'function' ); - t.done(); -}; - -exports['Narcissus parse should generate an AST from source.'] = function(t) { - t.expect(1); - var src = 'var foo = 1;', - ast = narcissus.Narcissus.parser.parse(src, 'filename', 1); - - t.equal( typeof ast, 'object' ); - t.done(); -}; \ No newline at end of file From 6ba7b8f5b08f42555153f599e7b24330f8360d35 Mon Sep 17 00:00:00 2001 From: Michael Mathews Date: Sat, 7 May 2011 22:26:23 +0100 Subject: [PATCH 07/14] Added ejs templates. --- node_modules/ejs/.gitignore | 3 + node_modules/ejs/.gitmodules | 3 + node_modules/ejs/History.md | 60 + node_modules/ejs/Makefile | 5 + node_modules/ejs/Readme.md | 137 ++ node_modules/ejs/benchmark.js | 14 + node_modules/ejs/examples/list.ejs | 7 + node_modules/ejs/examples/list.js | 16 + node_modules/ejs/index.js | 2 + node_modules/ejs/lib/ejs.js | 249 +++ node_modules/ejs/lib/filters.js | 198 +++ node_modules/ejs/lib/utils.js | 23 + node_modules/ejs/package.json | 8 + node_modules/ejs/support/expresso/.gitignore | 3 + node_modules/ejs/support/expresso/.gitmodules | 3 + node_modules/ejs/support/expresso/History.md | 87 + node_modules/ejs/support/expresso/Makefile | 50 + node_modules/ejs/support/expresso/Readme.md | 39 + .../ejs/support/expresso/bin/expresso | 775 +++++++++ .../ejs/support/expresso/docs/api.html | 989 ++++++++++++ .../ejs/support/expresso/docs/index.html | 380 +++++ .../ejs/support/expresso/docs/index.md | 292 ++++ .../support/expresso/docs/layout/foot.html | 3 + .../support/expresso/docs/layout/head.html | 47 + node_modules/ejs/support/expresso/lib/bar.js | 4 + node_modules/ejs/support/expresso/lib/foo.js | 16 + .../ejs/support/expresso/package.json | 9 + .../ejs/support/expresso/test/assert.test.js | 84 + .../ejs/support/expresso/test/async.test.js | 6 + .../ejs/support/expresso/test/bar.test.js | 12 + .../ejs/support/expresso/test/foo.test.js | 13 + .../ejs/support/expresso/test/http.test.js | 76 + node_modules/ejs/test/ejs.test.js | 245 +++ templates/default/index.js | 18 + templates/lib/taffy.js | 1427 +++++++++++++++++ test-rhino.js | 15 + test.js | 8 + test/examples/only_comments.js | 2 + test/jsdoc_parser.js | 13 + test/jsdoc_parser_comments.js | 38 + test/jsdoc_parser_function.js | 29 + test/narcissus.js | 24 + 42 files changed, 5432 insertions(+) create mode 100644 node_modules/ejs/.gitignore create mode 100644 node_modules/ejs/.gitmodules create mode 100644 node_modules/ejs/History.md create mode 100644 node_modules/ejs/Makefile create mode 100644 node_modules/ejs/Readme.md create mode 100644 node_modules/ejs/benchmark.js create mode 100644 node_modules/ejs/examples/list.ejs create mode 100644 node_modules/ejs/examples/list.js create mode 100644 node_modules/ejs/index.js create mode 100644 node_modules/ejs/lib/ejs.js create mode 100644 node_modules/ejs/lib/filters.js create mode 100644 node_modules/ejs/lib/utils.js create mode 100644 node_modules/ejs/package.json create mode 100644 node_modules/ejs/support/expresso/.gitignore create mode 100644 node_modules/ejs/support/expresso/.gitmodules create mode 100644 node_modules/ejs/support/expresso/History.md create mode 100644 node_modules/ejs/support/expresso/Makefile create mode 100644 node_modules/ejs/support/expresso/Readme.md create mode 100755 node_modules/ejs/support/expresso/bin/expresso create mode 100644 node_modules/ejs/support/expresso/docs/api.html create mode 100644 node_modules/ejs/support/expresso/docs/index.html create mode 100644 node_modules/ejs/support/expresso/docs/index.md create mode 100644 node_modules/ejs/support/expresso/docs/layout/foot.html create mode 100644 node_modules/ejs/support/expresso/docs/layout/head.html create mode 100644 node_modules/ejs/support/expresso/lib/bar.js create mode 100644 node_modules/ejs/support/expresso/lib/foo.js create mode 100644 node_modules/ejs/support/expresso/package.json create mode 100644 node_modules/ejs/support/expresso/test/assert.test.js create mode 100644 node_modules/ejs/support/expresso/test/async.test.js create mode 100644 node_modules/ejs/support/expresso/test/bar.test.js create mode 100644 node_modules/ejs/support/expresso/test/foo.test.js create mode 100644 node_modules/ejs/support/expresso/test/http.test.js create mode 100644 node_modules/ejs/test/ejs.test.js create mode 100644 templates/default/index.js create mode 100644 templates/lib/taffy.js create mode 100755 test-rhino.js create mode 100644 test.js create mode 100644 test/examples/only_comments.js create mode 100644 test/jsdoc_parser.js create mode 100644 test/jsdoc_parser_comments.js create mode 100644 test/jsdoc_parser_function.js create mode 100644 test/narcissus.js diff --git a/node_modules/ejs/.gitignore b/node_modules/ejs/.gitignore new file mode 100644 index 000000000..99a4d6ef0 --- /dev/null +++ b/node_modules/ejs/.gitignore @@ -0,0 +1,3 @@ +# ignore any vim files: +*.sw[a-z] +vim/.netrwhist diff --git a/node_modules/ejs/.gitmodules b/node_modules/ejs/.gitmodules new file mode 100644 index 000000000..51ea138cb --- /dev/null +++ b/node_modules/ejs/.gitmodules @@ -0,0 +1,3 @@ +[submodule "support/expresso"] + path = support/expresso + url = http://github.com/visionmedia/expresso.git diff --git a/node_modules/ejs/History.md b/node_modules/ejs/History.md new file mode 100644 index 000000000..46160582c --- /dev/null +++ b/node_modules/ejs/History.md @@ -0,0 +1,60 @@ + +0.4.1 / 2011-04-21 +================== + + * Fixed error context + +0.4.0 / 2011-04-21 +================== + + * Added; ported jade's error reporting to ejs. [slaskis] + +0.3.1 / 2011-02-23 +================== + + * Fixed optional `compile()` options + +0.3.0 / 2011-02-14 +================== + + * Added 'json' filter [Yuriy Bogdanov] + * Use exported version of parse function to allow monkey-patching [Anatoliy Chakkaev] + +0.2.1 / 2010-10-07 +================== + + * Added filter support + * Fixed _cache_ option. ~4x performance increase + +0.2.0 / 2010-08-05 +================== + + * Added support for global tag config + * Added custom tag support. Closes #5 + * Fixed whitespace bug. Closes #4 + +0.1.0 / 2010-08-04 +================== + + * Faster implementation [ashleydev] + +0.0.4 / 2010-08-02 +================== + + * Fixed single quotes for content outside of template tags. [aniero] + * Changed; `exports.compile()` now expects only "locals" + +0.0.3 / 2010-07-15 +================== + + * Fixed single quotes + +0.0.2 / 2010-07-09 +================== + + * Fixed newline preservation + +0.0.1 / 2010-07-09 +================== + + * Initial release diff --git a/node_modules/ejs/Makefile b/node_modules/ejs/Makefile new file mode 100644 index 000000000..f971a5931 --- /dev/null +++ b/node_modules/ejs/Makefile @@ -0,0 +1,5 @@ + +test: + @./support/expresso/bin/expresso -I lib test/*.test.js + +.PHONY: test \ No newline at end of file diff --git a/node_modules/ejs/Readme.md b/node_modules/ejs/Readme.md new file mode 100644 index 000000000..85409ab44 --- /dev/null +++ b/node_modules/ejs/Readme.md @@ -0,0 +1,137 @@ + +# EJS + +Embedded JavaScript templates. + +## Installation + + $ npm install ejs + +## Features + + * Complies with the [Express](http://expressjs.com) view system + * Static caching of intermediate JavaScript + * Unbuffered code for conditionals etc `<% code %>` + * Escapes html by default with `<%= code %>` + * Unescaped buffering with `<%- code %>` + * Supports tag customization + * Filter support for designer-friendly templates + +## Example + + <% if (user) { %> +

        <%= user.name %>

        + <% } %> + +## Usage + + ejs.compile(str, options); + // => Function + + ejs.render(str, options); + // => str + +## Options + + - `locals` Local variables object + - `cache` Compiled functions are cached, requires `filename` + - `filename` Used by `cache` to key caches + - `scope` Function execution context + - `debug` Output generated function body + - `open` Open tag, defaulting to "<%" + - `close` Closing tag, defaulting to "%>" + +## Custom Tags + +Custom tags can also be applied globally: + + var ejs = require('ejs'); + ejs.open = '{{'; + ejs.close = '}}'; + +Which would make the following a valid template: + +

        {{= title }}

        + +## Filters + +EJS conditionally supports the concept of "filters". A "filter chain" +is a designer friendly api for manipulating data, without writing JavaScript. + +Filters can be applied by supplying the _:_ modifier, so for example if we wish to take the array `[{ name: 'tj' }, { name: 'mape' }, { name: 'guillermo' }]` and output a list of names we can do this simply with filters: + +Template: + +

        <%=: users | map:'name' | join %>

        + +Output: + +

        Tj, Mape, Guillermo

        + +Render call: + + ejs.render(str, { + locals: { + users: [ + { name: 'tj' }, + { name: 'mape' }, + { name: 'guillermo' } + ] + } + }); + +Or perhaps capitalize the first user's name for display: + +

        <%=: users | first | capitalize %>

        + +## Filter List + +Currently these filters are available: + + - first + - last + - capitalize + - downcase + - upcase + - sort + - sort_by:'prop' + - size + - length + - plus:n + - minus:n + - times:n + - divided_by:n + - join:'val' + - truncate:n + - truncate_words:n + - replace:pattern,substitution + - prepend:val + - append:val + - map:'prop' + - reverse + - get:'prop' + +## License + +(The MIT License) + +Copyright (c) 2009-2010 TJ Holowaychuk <tj@vision-media.ca> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ejs/benchmark.js b/node_modules/ejs/benchmark.js new file mode 100644 index 000000000..7b267e160 --- /dev/null +++ b/node_modules/ejs/benchmark.js @@ -0,0 +1,14 @@ + + +var ejs = require('./lib/ejs'), + str = '<% if (foo) { %>

        <%= foo %>

        <% } %>', + times = 50000; + +console.log('rendering ' + times + ' times'); + +var start = new Date; +while (times--) { + ejs.render(str, { cache: true, filename: 'test', locals: { foo: 'bar' }}); +} + +console.log('took ' + (new Date - start) + 'ms'); \ No newline at end of file diff --git a/node_modules/ejs/examples/list.ejs b/node_modules/ejs/examples/list.ejs new file mode 100644 index 000000000..d571330ae --- /dev/null +++ b/node_modules/ejs/examples/list.ejs @@ -0,0 +1,7 @@ +<% if (names.length) { %> +
          + <% names.forEach(function(name){ %> +
        • <%= name %>
        • + <% }) %> +
        +<% } %> \ No newline at end of file diff --git a/node_modules/ejs/examples/list.js b/node_modules/ejs/examples/list.js new file mode 100644 index 000000000..9cd71683b --- /dev/null +++ b/node_modules/ejs/examples/list.js @@ -0,0 +1,16 @@ + +/** + * Module dependencies. + */ + +var ejs = require('../') + , fs = require('fs') + , str = fs.readFileSync(__dirname + '/list.ejs', 'utf8'); + +var ret = ejs.render(str, { + locals: { + names: ['foo', 'bar', 'baz'] + } +}); + +console.log(ret); \ No newline at end of file diff --git a/node_modules/ejs/index.js b/node_modules/ejs/index.js new file mode 100644 index 000000000..20bf71a3f --- /dev/null +++ b/node_modules/ejs/index.js @@ -0,0 +1,2 @@ + +module.exports = require('./lib/ejs'); \ No newline at end of file diff --git a/node_modules/ejs/lib/ejs.js b/node_modules/ejs/lib/ejs.js new file mode 100644 index 000000000..c03244ed2 --- /dev/null +++ b/node_modules/ejs/lib/ejs.js @@ -0,0 +1,249 @@ + +/*! + * EJS + * Copyright(c) 2010 TJ Holowaychuk + * MIT Licensed + */ + +/** + * Module dependencies. + */ + +var sys = require('sys') + , utils = require('./utils'); + +/** + * Library version. + */ + +exports.version = '0.4.1'; + +/** + * Filters. + * + * @type Object + */ + +var filters = exports.filters = require('./filters'); + +/** + * Intermediate js cache. + * + * @type Object + */ + +var cache = {}; + +/** + * Clear intermediate js cache. + * + * @api public + */ + +exports.clearCache = function(){ + cache = {}; +}; + +/** + * Translate filtered code into function calls. + * + * @param {String} js + * @return {String} + * @api private + */ + +function filtered(js) { + return js.substr(1).split('|').reduce(function(js, filter){ + var parts = filter.split(':') + , name = parts.shift() + , args = parts.shift() || ''; + if (args) args = ', ' + args; + return 'filters.' + name + '(' + js + args + ')'; + }); +}; + +/** + * Re-throw the given `err` in context to the + * `str` of ejs, `filename`, and `lineno`. + * + * @param {Error} err + * @param {String} str + * @param {String} filename + * @param {String} lineno + * @api private + */ + +function rethrow(err, str, filename, lineno){ + var lines = str.split('\n') + , start = Math.max(lineno - 3, 0) + , end = Math.min(lines.length, lineno + 3); + + // Error context + var context = lines.slice(start, end).map(function(line, i){ + var curr = i + start + 1; + return (curr == lineno ? ' >> ' : ' ') + + curr + + '| ' + + line; + }).join('\n'); + + // Alter exception message + err.path = filename; + err.message = (filename || 'ejs') + ':' + + lineno + '\n' + + context + '\n\n' + + err.message; + + throw err; +} + +/** + * Parse the given `str` of ejs, returning the function body. + * + * @param {String} str + * @return {String} + * @api public + */ + +var parse = exports.parse = function(str, options){ + var options = options || {} + , open = options.open || exports.open || '<%' + , close = options.close || exports.close || '%>'; + + var buf = [ + "var buf = [];" + , "\nwith (locals) {" + , "\n buf.push('" + ]; + + var lineno = 1; + + for (var i = 0, len = str.length; i < len; ++i) { + if (str.slice(i, open.length + i) == open) { + i += open.length + + var prefix, postfix, line = '__stack.lineno=' + lineno; + switch (str[i]) { + case '=': + prefix = "', escape((" + line + ', '; + postfix = ")), '"; + ++i; + break; + case '-': + prefix = "', (" + line + ', '; + postfix = "), '"; + ++i; + break; + default: + prefix = "');" + line + ';'; + postfix = "; buf.push('"; + } + + var start = i; + var end = str.indexOf(close, i); + var js = str.substring(i, end); + if (js[0] == ':') js = filtered(js); + buf.push(prefix, js, postfix); + i += end - start + close.length - 1; + + } else if (str[i] == "\\") { + buf.push("\\\\"); + } else if (str[i] == "'") { + buf.push("\\'"); + } else if (str[i] == "\r") { + buf.push(" "); + } else if (str[i] == "\n") { + buf.push("\\n"); + lineno++; + } else { + buf.push(str[i]); + } + } + + buf.push("');\n}\nreturn buf.join('');"); + return buf.join(''); +}; + +/** + * Compile the given `str` of ejs into a `Function`. + * + * @param {String} str + * @param {Object} options + * @return {Function} + * @api public + */ + +var compile = exports.compile = function(str, options){ + options = options || {}; + + var input = JSON.stringify(str) + , filename = options.filename + ? JSON.stringify(options.filename) + : 'undefined'; + + // Adds the fancy stack trace meta info + str = [ + 'var __stack = { lineno: 1, input: ' + input + ', filename: ' + filename + ' };', + rethrow.toString(), + 'try {', + exports.parse(str, options), + '} catch (err) {', + ' rethrow(err, __stack.input, __stack.filename, __stack.lineno);', + '}' + ].join("\n"); + + if (options.debug) sys.puts(str); + var fn = new Function('locals, filters, escape', str); + return function(locals){ + return fn.call(this, locals, filters, utils.escape); + } +}; + +/** + * Render the given `str` of ejs. + * + * Options: + * + * - `locals` Local variables object + * - `cache` Compiled functions are cached, requires `filename` + * - `filename` Used by `cache` to key caches + * - `scope` Function execution context + * - `debug` Output generated function body + * - `open` Open tag, defaulting to "<%" + * - `close` Closing tag, defaulting to "%>" + * + * @param {String} str + * @param {Object} options + * @return {String} + * @api public + */ + +exports.render = function(str, options){ + var fn + , options = options || {}; + if (options.cache) { + if (options.filename) { + fn = cache[options.filename] || (cache[options.filename] = compile(str, options)); + } else { + throw new Error('"cache" option requires "filename".'); + } + } else { + fn = compile(str, options); + } + return fn.call(options.scope, options.locals || {}); +}; + +/** + * Expose to require(). + */ + +if (require.extensions) { + require.extensions['.ejs'] = function(module, filename) { + source = require('fs').readFileSync(filename, 'utf-8'); + module._compile(compile(source, {}), filename); + }; +} else if (require.registerExtension) { + require.registerExtension('.ejs', function(src) { + return compile(src, {}); + }); +} diff --git a/node_modules/ejs/lib/filters.js b/node_modules/ejs/lib/filters.js new file mode 100644 index 000000000..d425c8d89 --- /dev/null +++ b/node_modules/ejs/lib/filters.js @@ -0,0 +1,198 @@ + +/*! + * EJS - Filters + * Copyright(c) 2010 TJ Holowaychuk + * MIT Licensed + */ + +/** + * First element of the target `obj`. + */ + +exports.first = function(obj) { + return obj[0]; +}; + +/** + * Last element of the target `obj`. + */ + +exports.last = function(obj) { + return obj[obj.length - 1]; +}; + +/** + * Capitalize the first letter of the target `str`. + */ + +exports.capitalize = function(str){ + str = String(str); + return str[0].toUpperCase() + str.substr(1, str.length); +}; + +/** + * Downcase the target `str`. + */ + +exports.downcase = function(str){ + return String(str).toLowerCase(); +}; + +/** + * Uppercase the target `str`. + */ + +exports.upcase = function(str){ + return String(str).toUpperCase(); +}; + +/** + * Sort the target `obj`. + */ + +exports.sort = function(obj){ + return Object.create(obj).sort(); +}; + +/** + * Sort the target `obj` by the given `prop` ascending. + */ + +exports.sort_by = function(obj, prop){ + return Object.create(obj).sort(function(a, b){ + a = a[prop], b = b[prop]; + if (a > b) return 1; + if (a < b) return -1; + return 0; + }); +}; + +/** + * Size or length of the target `obj`. + */ + +exports.size = exports.length = function(obj) { + return obj.length; +}; + +/** + * Add `a` and `b`. + */ + +exports.plus = function(a, b){ + return Number(a) + Number(b); +}; + +/** + * Subtract `b` from `a`. + */ + +exports.minus = function(a, b){ + return Number(a) - Number(b); +}; + +/** + * Multiply `a` by `b`. + */ + +exports.times = function(a, b){ + return Number(a) * Number(b); +}; + +/** + * Divide `a` by `b`. + */ + +exports.divided_by = function(a, b){ + return Number(a) / Number(b); +}; + +/** + * Join `obj` with the given `str`. + */ + +exports.join = function(obj, str){ + return obj.join(str || ', '); +}; + +/** + * Truncate `str` to `len`. + */ + +exports.truncate = function(str, len){ + str = String(str); + return str.substr(0, len); +}; + +/** + * Truncate `str` to `n` words. + */ + +exports.truncate_words = function(str, n){ + var str = String(str) + , words = str.split(/ +/); + return words.slice(0, n).join(' '); +}; + +/** + * Replace `pattern` with `substitution` in `str`. + */ + +exports.replace = function(str, pattern, substitution){ + return String(str).replace(pattern, substitution || ''); +}; + +/** + * Prepend `val` to `obj`. + */ + +exports.prepend = function(obj, val){ + return Array.isArray(obj) + ? [val].concat(obj) + : val + obj; +}; + +/** + * Append `val` to `obj`. + */ + +exports.append = function(obj, val){ + return Array.isArray(obj) + ? obj.concat(val) + : obj + val; +}; + +/** + * Map the given `prop`. + */ + +exports.map = function(arr, prop){ + return arr.map(function(obj){ + return obj[prop]; + }); +}; + +/** + * Reverse the given `obj`. + */ + +exports.reverse = function(obj){ + return Array.isArray(obj) + ? obj.reverse() + : String(obj).split('').reverse().join(''); +}; + +/** + * Get `prop` of the given `obj`. + */ + +exports.get = function(obj, prop){ + return obj[prop]; +}; + +/** + * Packs the given `obj` into json string + */ +exports.json = function(obj){ + return JSON.stringify(obj); +}; \ No newline at end of file diff --git a/node_modules/ejs/lib/utils.js b/node_modules/ejs/lib/utils.js new file mode 100644 index 000000000..8d569d6f2 --- /dev/null +++ b/node_modules/ejs/lib/utils.js @@ -0,0 +1,23 @@ + +/*! + * EJS + * Copyright(c) 2010 TJ Holowaychuk + * MIT Licensed + */ + +/** + * Escape the given string of `html`. + * + * @param {String} html + * @return {String} + * @api private + */ + +exports.escape = function(html){ + return String(html) + .replace(/&(?!\w+;)/g, '&') + .replace(//g, '>') + .replace(/"/g, '"'); +}; + \ No newline at end of file diff --git a/node_modules/ejs/package.json b/node_modules/ejs/package.json new file mode 100644 index 000000000..357e89ed6 --- /dev/null +++ b/node_modules/ejs/package.json @@ -0,0 +1,8 @@ +{ + "name": "ejs", + "description": "Embedded JavaScript templates", + "version": "0.4.1", + "author": "TJ Holowaychuk ", + "keywords": ["template", "engine", "ejs"], + "main": "./lib/ejs.js" +} \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/.gitignore b/node_modules/ejs/support/expresso/.gitignore new file mode 100644 index 000000000..432563ff5 --- /dev/null +++ b/node_modules/ejs/support/expresso/.gitignore @@ -0,0 +1,3 @@ +.DS_Store +lib-cov +*.seed \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/.gitmodules b/node_modules/ejs/support/expresso/.gitmodules new file mode 100644 index 000000000..191ddebd4 --- /dev/null +++ b/node_modules/ejs/support/expresso/.gitmodules @@ -0,0 +1,3 @@ +[submodule "deps/jscoverage"] + path = deps/jscoverage + url = git://github.com/visionmedia/node-jscoverage.git diff --git a/node_modules/ejs/support/expresso/History.md b/node_modules/ejs/support/expresso/History.md new file mode 100644 index 000000000..e3b014127 --- /dev/null +++ b/node_modules/ejs/support/expresso/History.md @@ -0,0 +1,87 @@ + +0.6.2 / 2010-08-03 +================== + + * Added `assert.type()` + * Renamed `assert.isNotUndefined()` to `assert.isDefined()` + * Fixed `assert.includes()` param ordering + +0.6.0 / 2010-07-31 +================== + + * Added _docs/api.html_ + * Added -w, --watch + * Added `Array` support to `assert.includes()` + * Added; outputting exceptions immediately. Closes #19 + * Fixed `assert.includes()` param ordering + * Fixed `assert.length()` param ordering + * Fixed jscoverage links + +0.5.0 / 2010-07-16 +================== + + * Added support for async exports + * Added timeout support to `assert.response()`. Closes #3 + * Added 4th arg callback support to `assert.response()` + * Added `assert.length()` + * Added `assert.match()` + * Added `assert.isUndefined()` + * Added `assert.isNull()` + * Added `assert.includes()` + * Added growlnotify support via -g, --growl + * Added -o, --only TESTS. Ex: --only "test foo()" --only "test foo(), test bar()" + * Removed profanity + +0.4.0 / 2010-07-09 +================== + + * Added reporting source coverage (respects --boring for color haters) + * Added callback to assert.response(). Closes #12 + * Fixed; putting exceptions to stderr. Closes #13 + +0.3.1 / 2010-06-28 +================== + + * Faster assert.response() + +0.3.0 / 2010-06-28 +================== + + * Added -p, --port NUM flags + * Added assert.response(). Closes #11 + +0.2.1 / 2010-06-25 +================== + + * Fixed issue with reporting object assertions + +0.2.0 / 2010-06-21 +================== + + * Added `make uninstall` + * Added better readdir() failure message + * Fixed `make install` for kiwi + +0.1.0 / 2010-06-15 +================== + + * Added better usage docs via --help + * Added better conditional color support + * Added pre exit assertion support + +0.0.3 / 2010-06-02 +================== + + * Added more room for filenames in test coverage + * Added boring output support via --boring (suppress colored output) + * Fixed async failure exit status + +0.0.2 / 2010-05-30 +================== + + * Fixed exit status for CI support + +0.0.1 / 2010-05-30 +================== + + * Initial release \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/Makefile b/node_modules/ejs/support/expresso/Makefile new file mode 100644 index 000000000..9348bbd30 --- /dev/null +++ b/node_modules/ejs/support/expresso/Makefile @@ -0,0 +1,50 @@ + +BIN = bin/expresso +PREFIX = /usr/local +JSCOV = deps/jscoverage/node-jscoverage +DOCS = docs/index.md +HTMLDOCS = $(DOCS:.md=.html) + +test: $(BIN) + @./$(BIN) -I lib --growl $(TEST_FLAGS) test/*.test.js + +test-cov: + @./$(BIN) -I lib --cov $(TEST_FLAGS) test/*.test.js + +install: install-jscov install-expresso + +uninstall: + rm -f $(PREFIX)/bin/expresso + rm -f $(PREFIX)/bin/node-jscoverage + +install-jscov: $(JSCOV) + install $(JSCOV) $(PREFIX)/bin + +install-expresso: + install $(BIN) $(PREFIX)/bin + +$(JSCOV): + cd deps/jscoverage && ./configure && make && mv jscoverage node-jscoverage + +clean: + @cd deps/jscoverage && git clean -fd + +docs: docs/api.html $(HTMLDOCS) + +%.html: %.md + @echo "... $< > $@" + @ronn -5 --pipe --fragment $< \ + | cat docs/layout/head.html - docs/layout/foot.html \ + > $@ + +docs/api.html: bin/expresso + dox \ + --title "Expresso" \ + --ribbon "http://github.com/visionmedia/expresso" \ + --desc "Insanely fast TDD framework for [node](http://nodejs.org) featuring code coverage reporting." \ + $< > $@ + +docclean: + rm -f docs/*.html + +.PHONY: test test-cov install uninstall install-expresso install-jscov clean docs docclean \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/Readme.md b/node_modules/ejs/support/expresso/Readme.md new file mode 100644 index 000000000..dcc1c85c7 --- /dev/null +++ b/node_modules/ejs/support/expresso/Readme.md @@ -0,0 +1,39 @@ + +# Expresso + + TDD framework for [nodejs](http://nodejs.org). + +## Features + + - light-weight + - intuitive async support + - intuitive test runner executable + - test coverage support and reporting + - uses the _assert_ module + - `assert.eql()` alias of `assert.deepEqual()` + - `assert.response()` http response utility + - `assert.includes()` + - `assert.type()` + - `assert.isNull()` + - `assert.isUndefined()` + - `assert.isNotNull()` + - `assert.isDefined()` + - `assert.match()` + - `assert.length()` + +## Installation + +To install both expresso _and_ node-jscoverage run: + + $ make install + +To install expresso alone (no build required) run: + + $ make install-expresso + +Install via npm: + + $ npm install expresso + + + diff --git a/node_modules/ejs/support/expresso/bin/expresso b/node_modules/ejs/support/expresso/bin/expresso new file mode 100755 index 000000000..96c7ff399 --- /dev/null +++ b/node_modules/ejs/support/expresso/bin/expresso @@ -0,0 +1,775 @@ +#!/usr/bin/env node + +/*! + * Expresso + * Copyright(c) TJ Holowaychuk + * (MIT Licensed) + */ + +/** + * Module dependencies. + */ + +var assert = require('assert'), + childProcess = require('child_process'), + http = require('http'), + path = require('path'), + sys = require('sys'), + cwd = process.cwd(), + fs = require('fs'), + defer; + +/** + * Expresso version. + */ + +var version = '0.6.1'; + +/** + * Failure count. + */ + +var failures = 0; + + +/** + * Number of tests executed. + */ + +var testcount = 0; + +/** + * Whitelist of tests to run. + */ + +var only = []; + +/** + * Boring output. + */ + +var boring = false; + +/** + * Growl notifications. + */ + +var growl = false; + +/** + * Server port. + */ + +var port = 5555; + +/** + * Watch mode. + */ + +var watch = false; + +/** + * Usage documentation. + */ + +var usage = '' + + '[bold]{Usage}: expresso [options] ' + + '\n' + + '\n[bold]{Options}:' + + '\n -w, --watch Watch for modifications and re-execute tests' + + '\n -g, --growl Enable growl notifications' + + '\n -c, --coverage Generate and report test coverage' + + '\n -r, --require PATH Require the given module path' + + '\n -o, --only TESTS Execute only the comma sperated TESTS (can be set several times)' + + '\n -I, --include PATH Unshift the given path to require.paths' + + '\n -p, --port NUM Port number for test servers, starts at 5555' + + '\n -b, --boring Suppress ansi-escape colors' + + '\n -v, --version Output version number' + + '\n -h, --help Display help information' + + '\n'; + +// Parse arguments + +var files = [], + args = process.argv.slice(2); + +while (args.length) { + var arg = args.shift(); + switch (arg) { + case '-h': + case '--help': + print(usage + '\n'); + process.exit(1); + break; + case '-v': + case '--version': + sys.puts(version); + process.exit(1); + break; + case '-i': + case '-I': + case '--include': + if (arg = args.shift()) { + require.paths.unshift(arg); + } else { + throw new Error('--include requires a path'); + } + break; + case '-o': + case '--only': + if (arg = args.shift()) { + only = only.concat(arg.split(/ *, */)); + } else { + throw new Error('--only requires comma-separated test names'); + } + break; + case '-p': + case '--port': + if (arg = args.shift()) { + port = parseInt(arg, 10); + } else { + throw new Error('--port requires a number'); + } + break; + case '-r': + case '--require': + if (arg = args.shift()) { + require(arg); + } else { + throw new Error('--require requires a path'); + } + break; + case '-c': + case '--cov': + case '--coverage': + defer = true; + childProcess.exec('rm -fr lib-cov && node-jscoverage lib lib-cov', function(err){ + if (err) throw err; + require.paths.unshift('lib-cov'); + run(files); + }) + break; + case '-b': + case '--boring': + boring = true; + break; + case '-w': + case '--watch': + watch = true; + break; + case '--g': + case '--growl': + growl = true; + break; + default: + if (/\.js$/.test(arg)) { + files.push(arg); + } + break; + } +} + +/** + * Colorized sys.error(). + * + * @param {String} str + */ + +function print(str){ + sys.error(colorize(str)); +} + +/** + * Colorize the given string using ansi-escape sequences. + * Disabled when --boring is set. + * + * @param {String} str + * @return {String} + */ + +function colorize(str){ + var colors = { bold: 1, red: 31, green: 32, yellow: 33 }; + return str.replace(/\[(\w+)\]\{([^]*?)\}/g, function(_, color, str){ + return boring + ? str + : '\x1B[' + colors[color] + 'm' + str + '\x1B[0m'; + }); +} + +// Alias deepEqual as eql for complex equality + +assert.eql = assert.deepEqual; + +/** + * Assert that `val` is null. + * + * @param {Mixed} val + * @param {String} msg + */ + +assert.isNull = function(val, msg) { + assert.strictEqual(null, val, msg); +}; + +/** + * Assert that `val` is not null. + * + * @param {Mixed} val + * @param {String} msg + */ + +assert.isNotNull = function(val, msg) { + assert.notStrictEqual(null, val, msg); +}; + +/** + * Assert that `val` is undefined. + * + * @param {Mixed} val + * @param {String} msg + */ + +assert.isUndefined = function(val, msg) { + assert.strictEqual(undefined, val, msg); +}; + +/** + * Assert that `val` is not undefined. + * + * @param {Mixed} val + * @param {String} msg + */ + +assert.isDefined = function(val, msg) { + assert.notStrictEqual(undefined, val, msg); +}; + +/** + * Assert that `obj` is `type`. + * + * @param {Mixed} obj + * @param {String} type + * @api public + */ + +assert.type = function(obj, type, msg){ + var real = typeof obj; + msg = msg || 'typeof ' + sys.inspect(obj) + ' is ' + real + ', expected ' + type; + assert.ok(type === real, msg); +}; + +/** + * Assert that `str` matches `regexp`. + * + * @param {String} str + * @param {RegExp} regexp + * @param {String} msg + */ + +assert.match = function(str, regexp, msg) { + msg = msg || sys.inspect(str) + ' does not match ' + sys.inspect(regexp); + assert.ok(regexp.test(str), msg); +}; + +/** + * Assert that `val` is within `obj`. + * + * Examples: + * + * assert.includes('foobar', 'bar'); + * assert.includes(['foo', 'bar'], 'foo'); + * + * @param {String|Array} obj + * @param {Mixed} val + * @param {String} msg + */ + +assert.includes = function(obj, val, msg) { + msg = msg || sys.inspect(obj) + ' does not include ' + sys.inspect(val); + assert.ok(obj.indexOf(val) >= 0, msg); +}; + +/** + * Assert length of `val` is `n`. + * + * @param {Mixed} val + * @param {Number} n + * @param {String} msg + */ + +assert.length = function(val, n, msg) { + msg = msg || sys.inspect(val) + ' has length of ' + val.length + ', expected ' + n; + assert.equal(n, val.length, msg); +}; + +/** + * Assert response from `server` with + * the given `req` object and `res` assertions object. + * + * @param {Server} server + * @param {Object} req + * @param {Object|Function} res + * @param {String} msg + */ + +assert.response = function(server, req, res, msg){ + // Callback as third or fourth arg + var callback = typeof res === 'function' + ? res + : typeof msg === 'function' + ? msg + : function(){}; + + // Default messate to test title + if (typeof msg === 'function') msg = null; + msg = msg || assert.testTitle; + msg += '. '; + + // Pending responses + server.__pending = server.__pending || 0; + server.__pending++; + + // Create client + if (!server.fd) { + server.listen(server.__port = port++); + server.client = http.createClient(server.__port); + } + + // Issue request + var timer, + client = server.client, + method = req.method || 'GET', + status = res.status || res.statusCode, + data = req.data || req.body, + timeout = req.timeout || 0; + + var request = client.request(method, req.url, req.headers); + + // Timeout + if (timeout) { + timer = setTimeout(function(){ + --server.__pending || server.close(); + delete req.timeout; + assert.fail(msg + 'Request timed out after ' + timeout + 'ms.'); + }, timeout); + } + + if (data) request.write(data); + request.addListener('response', function(response){ + response.body = ''; + response.setEncoding('utf8'); + response.addListener('data', function(chunk){ response.body += chunk; }); + response.addListener('end', function(){ + --server.__pending || server.close(); + if (timer) clearTimeout(timer); + + // Assert response body + if (res.body !== undefined) { + assert.equal( + response.body, + res.body, + msg + 'Invalid response body.\n' + + ' Expected: ' + sys.inspect(res.body) + '\n' + + ' Got: ' + sys.inspect(response.body) + ); + } + + // Assert response status + if (typeof status === 'number') { + assert.equal( + response.statusCode, + status, + msg + colorize('Invalid response status code.\n' + + ' Expected: [green]{' + status + '}\n' + + ' Got: [red]{' + response.statusCode + '}') + ); + } + + // Assert response headers + if (res.headers) { + var keys = Object.keys(res.headers); + for (var i = 0, len = keys.length; i < len; ++i) { + var name = keys[i], + actual = response.headers[name.toLowerCase()], + expected = res.headers[name]; + assert.equal( + actual, + expected, + msg + colorize('Invalid response header [bold]{' + name + '}.\n' + + ' Expected: [green]{' + expected + '}\n' + + ' Got: [red]{' + actual + '}') + ); + } + } + + // Callback + callback(response); + }); + }); + request.end(); +}; + +/** + * Pad the given string to the maximum width provided. + * + * @param {String} str + * @param {Number} width + * @return {String} + */ + +function lpad(str, width) { + str = String(str); + var n = width - str.length; + if (n < 1) return str; + while (n--) str = ' ' + str; + return str; +} + +/** + * Pad the given string to the maximum width provided. + * + * @param {String} str + * @param {Number} width + * @return {String} + */ + +function rpad(str, width) { + str = String(str); + var n = width - str.length; + if (n < 1) return str; + while (n--) str = str + ' '; + return str; +} + +/** + * Report test coverage. + * + * @param {Object} cov + */ + +function reportCoverage(cov) { + populateCoverage(cov); + // Stats + print('\n [bold]{Test Coverage}\n'); + var sep = ' +------------------------------------------+----------+------+------+--------+', + lastSep = ' +----------+------+------+--------+'; + sys.puts(sep); + sys.puts(' | filename | coverage | LOC | SLOC | missed |'); + sys.puts(sep); + for (var name in cov) { + var file = cov[name]; + if (Array.isArray(file)) { + sys.print(' | ' + rpad(name, 40)); + sys.print(' | ' + lpad(file.coverage.toFixed(2), 8)); + sys.print(' | ' + lpad(file.LOC, 4)); + sys.print(' | ' + lpad(file.SLOC, 4)); + sys.print(' | ' + lpad(file.totalMisses, 6)); + sys.print(' |\n'); + } + } + sys.puts(sep); + sys.print(' ' + rpad('', 40)); + sys.print(' | ' + lpad(cov.coverage.toFixed(2), 8)); + sys.print(' | ' + lpad(cov.LOC, 4)); + sys.print(' | ' + lpad(cov.SLOC, 4)); + sys.print(' | ' + lpad(cov.totalMisses, 6)); + sys.print(' |\n'); + sys.puts(lastSep); + // Source + for (var name in cov) { + if (name.match(/\.js$/)) { + var file = cov[name]; + print('\n [bold]{' + name + '}:'); + print(file.source); + sys.print('\n'); + } + } +} + +/** + * Populate code coverage data. + * + * @param {Object} cov + */ + +function populateCoverage(cov) { + cov.LOC = + cov.SLOC = + cov.totalFiles = + cov.totalHits = + cov.totalMisses = + cov.coverage = 0; + for (var name in cov) { + var file = cov[name]; + if (Array.isArray(file)) { + // Stats + ++cov.totalFiles; + cov.totalHits += file.totalHits = coverage(file, true); + cov.totalMisses += file.totalMisses = coverage(file, false); + file.totalLines = file.totalHits + file.totalMisses; + cov.SLOC += file.SLOC = file.totalLines; + cov.LOC += file.LOC = file.source.length; + file.coverage = (file.totalHits / file.totalLines) * 100; + // Source + var width = file.source.length.toString().length; + file.source = file.source.map(function(line, i){ + ++i; + var hits = file[i] === 0 ? 0 : (file[i] || ' '); + if (!boring) { + if (hits === 0) { + hits = '\x1b[31m' + hits + '\x1b[0m'; + line = '\x1b[41m' + line + '\x1b[0m'; + } else { + hits = '\x1b[32m' + hits + '\x1b[0m'; + } + } + return '\n ' + lpad(i, width) + ' | ' + hits + ' | ' + line; + }).join(''); + } + } + cov.coverage = (cov.totalHits / cov.SLOC) * 100; +} + +/** + * Total coverage for the given file data. + * + * @param {Array} data + * @return {Type} + */ + +function coverage(data, val) { + var n = 0; + for (var i = 0, len = data.length; i < len; ++i) { + if (data[i] !== undefined && data[i] == val) ++n; + } + return n; +} + +/** + * Run the given test `files`, or try _test/*_. + * + * @param {Array} files + */ + +function run(files) { + if (!files.length) { + try { + files = fs.readdirSync('test').map(function(file){ + return 'test/' + file; + }); + } catch (err) { + print('\n failed to load tests in [bold]{./test}\n'); + ++failures; + process.exit(1); + } + } + if (watch) watchFiles(files); + runFiles(files); +} + +/** + * Show the cursor when `show` is true, otherwise hide it. + * + * @param {Boolean} show + */ + +function cursor(show) { + if (show) { + sys.print('\x1b[?25h'); + } else { + sys.print('\x1b[?25l'); + } +} + +/** + * Run the given test `files`. + * + * @param {Array} files + */ + +function runFiles(files) { + files.forEach(runFile); +} + +/** + * Run tests for the given `file`. + * + * @param {String} file + */ + +function runFile(file) { + if (file.match(/\.js$/)) { + var title = path.basename(file), + file = path.join(cwd, file), + mod = require(file.replace(/\.js$/, '')); + (function check(){ + var len = Object.keys(mod).length; + if (len) { + runSuite(title, mod); + } else { + setTimeout(check, 20); + } + })(); + } +} + +/** + * Clear the module cache for the given `file`. + * + * @param {String} file + */ + +function clearCache(file) { + var keys = Object.keys(module.moduleCache); + for (var i = 0, len = keys.length; i < len; ++i) { + var key = keys[i]; + if (key.indexOf(file) === key.length - file.length) { + delete module.moduleCache[key]; + } + } +} + +/** + * Watch the given `files` for changes. + * + * @param {Array} files + */ + +function watchFiles(files) { + var p = 0, + c = ['▫ ', '▫▫ ', '▫▫▫ ', ' ▫▫▫', + ' ▫▫', ' ▫', ' ▫', ' ▫▫', + '▫▫▫ ', '▫▫ ', '▫ '], + l = c.length; + cursor(false); + setInterval(function(){ + sys.print(colorize(' [green]{' + c[p++ % l] + '} watching\r')); + }, 100); + files.forEach(function(file){ + fs.watchFile(file, { interval: 100 }, function(curr, prev){ + if (curr.mtime > prev.mtime) { + print(' [yellow]{◦} ' + file); + clearCache(file); + runFile(file); + } + }); + }); +} + +/** + * Report `err` for the given `test` and `suite`. + * + * @param {String} suite + * @param {String} test + * @param {Error} err + */ + +function error(suite, test, err) { + ++failures; + var name = err.name, + stack = err.stack.replace(err.name, ''), + label = test === 'uncaught' + ? test + : suite + ' ' + test; + print('\n [bold]{' + label + '}: [red]{' + name + '}' + stack + '\n'); + if (watch) notify(label + ' failed'); +} + +/** + * Run the given tests. + * + * @param {String} title + * @param {Object} tests + */ + +function runSuite(title, tests) { + var keys = only.length + ? only.slice(0) + : Object.keys(tests); + (function next(){ + if (keys.length) { + var key, + test = tests[key = keys.shift()]; + if (test) { + try { + ++testcount; + assert.testTitle = key; + test(assert, function(fn){ + process.addListener('beforeExit', function(){ + try { + fn(); + } catch (err) { + error(title, key, err); + } + }); + }); + } catch (err) { + error(title, key, err); + } + } + next(); + } + })(); +} + +/** + * Report exceptions. + */ + +function report() { + process.emit('beforeExit'); + if (failures) { + print('\n [bold]{Failures}: [red]{' + failures + '}\n\n'); + notify('Failures: ' + failures); + } else { + print('\n [green]{100%} ' + testcount + ' tests\n'); + notify('100% ok'); + } + if (typeof _$jscoverage === 'object') { + reportCoverage(_$jscoverage); + } +} + +/** + * Growl notify the given `msg`. + * + * @param {String} msg + */ + +function notify(msg) { + if (growl) { + childProcess.exec('growlnotify -name Expresso -m "' + msg + '"'); + } +} + +// Report uncaught exceptions + +process.addListener('uncaughtException', function(err){ + error('uncaught', 'uncaught', err); +}); + +// Show cursor + +['INT', 'TERM', 'QUIT'].forEach(function(sig){ + process.addListener('SIG' + sig, function(){ + cursor(true); + process.exit(1); + }); +}); + +// Report test coverage when available +// and emit "beforeExit" event to perform +// final assertions + +var orig = process.emit; +process.emit = function(event){ + if (event === 'exit') { + report(); + process.reallyExit(failures); + } + orig.apply(this, arguments); +}; + +// Run test files + +if (!defer) run(files); diff --git a/node_modules/ejs/support/expresso/docs/api.html b/node_modules/ejs/support/expresso/docs/api.html new file mode 100644 index 000000000..4496371fc --- /dev/null +++ b/node_modules/ejs/support/expresso/docs/api.html @@ -0,0 +1,989 @@ +Fork me on GitHub + + Expresso + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

        Expresso

        Insanely fast TDD framework for node featuring code coverage reporting.

        expresso

        bin/expresso
        +

        !/usr/bin/env node

        +
        +
        !
        + * Expresso
        + * Copyright(c) TJ Holowaychuk &lt;tj@vision-media.ca&gt;
        + * (MIT Licensed)
        + 
        +
        +

        Module dependencies. +

        +
        +
        var assert = require('assert'),
        +    childProcess = require('child_process'),
        +    http = require('http'),
        +    path = require('path'),
        +    sys = require('sys'),
        +    cwd = process.cwd(),
        +    fs = require('fs'),
        +    defer;
        +
        +

        Expresso version. +

        +
        +
        var version = '0.6.0';
        +
        +

        Failure count. +

        +
        +
        var failures = 0;
        +
        +

        Whitelist of tests to run. +

        +
        +
        var only = [];
        +
        +

        Boring output. +

        +
        +
        var boring = false;
        +
        +

        Growl notifications. +

        +
        +
        var growl = false;
        +
        +

        Server port. +

        +
        +
        var port = 5555;
        +
        +

        Watch mode. +

        +
        +
        var watch = false;
        +
        +

        Usage documentation. +

        +
        +
        var usage = ''
        +    + '[bold]{Usage}: expresso [options] <file ...>'
        +    + '\n'
        +    + '\n[bold]{Options}:'
        +    + '\n  -w, --watch          Watch for modifications and re-execute tests'
        +    + '\n  -g, --growl          Enable growl notifications'
        +    + '\n  -c, --coverage       Generate and report test coverage'
        +    + '\n  -r, --require PATH   Require the given module path'
        +    + '\n  -o, --only TESTS     Execute only the comma sperated TESTS (can be set several times)'
        +    + '\n  -I, --include PATH   Unshift the given path to require.paths'
        +    + '\n  -p, --port NUM       Port number for test servers, starts at 5555'
        +    + '\n  -b, --boring         Suppress ansi-escape colors'
        +    + '\n  -v, --version        Output version number'
        +    + '\n  -h, --help           Display help information'
        +    + '\n';
        +
        +// Parse arguments
        +
        +var files = [],
        +    args = process.argv.slice(2);
        +
        +while (args.length) {
        +    var arg = args.shift();
        +    switch (arg) {
        +        case '-h':
        +        case '--help':
        +            print(usage + '\n');
        +            process.exit(1);
        +            break;
        +        case '-v':
        +        case '--version':
        +            sys.puts(version);
        +            process.exit(1);
        +            break;
        +        case '-i':
        +        case '-I':
        +        case '--include':
        +            if (arg = args.shift()) {
        +                require.paths.unshift(arg);
        +            } else {
        +                throw new Error('--include requires a path');
        +            }
        +            break;
        +        case '-o':
        +        case '--only':
        +            if (arg = args.shift()) {
        +                only = only.concat(arg.split(/ *, */));
        +            } else {
        +                throw new Error('--only requires comma-separated test names');
        +            }
        +            break;
        +        case '-p':
        +        case '--port':
        +            if (arg = args.shift()) {
        +                port = parseInt(arg, 10);
        +            } else {
        +                throw new Error('--port requires a number');
        +            }
        +            break;
        +        case '-r':
        +        case '--require':
        +            if (arg = args.shift()) {
        +                require(arg);
        +            } else {
        +                throw new Error('--require requires a path');
        +            }
        +            break;
        +        case '-c':
        +        case '--cov':
        +        case '--coverage':
        +            defer = true;
        +            childProcess.exec('rm -fr lib-cov && node-jscoverage lib lib-cov', function(err){
        +                if (err) throw err;
        +                require.paths.unshift('lib-cov');
        +                run(files);
        +            })
        +            break;
        +        case '-b':
        +        case '--boring':
        +        	boring = true;
        +        	break;
        +        case '-w':
        +        case '--watch':
        +            watch = true;
        +            break;
        +        case '--g':
        +        case '--growl':
        +            growl = true;
        +            break;
        +        default:
        +            if (/\.js$/.test(arg)) {
        +                files.push(arg);
        +            }
        +            break;
        +    }
        +}
        +
        +

        Colorized sys.error().

        + +

        + +
        • param: String str

        +
        +
        function print(str){
        +    sys.error(colorize(str));
        +}
        +
        +

        Colorize the given string using ansi-escape sequences. +Disabled when --boring is set.

        + +

        + +
        • param: String str

        • return: String

        +
        +
        function colorize(str){
        +    var colors = { bold: 1, red: 31, green: 32, yellow: 33 };
        +    return str.replace(/\[(\w+)\]\{([^]*?)\}/g, function(_, color, str){
        +        return boring
        +            ? str
        +            : '\x1B[' + colors[color] + 'm' + str + '\x1B[0m';
        +    });
        +}
        +
        +// Alias deepEqual as eql for complex equality
        +
        +assert.eql = assert.deepEqual;
        +
        +

        Assert that val is null.

        + +

        + +
        • param: Mixed val

        • param: String msg

        +
        +
        assert.isNull = function(val, msg) {
        +    assert.strictEqual(null, val, msg);
        +};
        +
        +

        Assert that val is not null.

        + +

        + +
        • param: Mixed val

        • param: String msg

        +
        +
        assert.isNotNull = function(val, msg) {
        +    assert.notStrictEqual(null, val, msg);
        +};
        +
        +

        Assert that val is undefined.

        + +

        + +
        • param: Mixed val

        • param: String msg

        +
        +
        assert.isUndefined = function(val, msg) {
        +    assert.strictEqual(undefined, val, msg);
        +};
        +
        +

        Assert that val is not undefined.

        + +

        + +
        • param: Mixed val

        • param: String msg

        +
        +
        assert.isDefined = function(val, msg) {
        +    assert.notStrictEqual(undefined, val, msg);
        +};
        +
        +

        Assert that obj is type.

        + +

        + +
        • param: Mixed obj

        • param: String type

        • api: public

        +
        +
        assert.type = function(obj, type, msg){
        +    var real = typeof obj;
        +    msg = msg || 'typeof ' + sys.inspect(obj) + ' is ' + real + ', expected ' + type;
        +    assert.ok(type === real, msg);
        +};
        +
        +

        Assert that str matches regexp.

        + +

        + +
        • param: String str

        • param: RegExp regexp

        • param: String msg

        +
        +
        assert.match = function(str, regexp, msg) {
        +    msg = msg || sys.inspect(str) + ' does not match ' + sys.inspect(regexp);
        +    assert.ok(regexp.test(str), msg);
        +};
        +
        +

        Assert that val is within obj.

        + +

        Examples

        + +

        assert.includes('foobar', 'bar'); + assert.includes(['foo', 'bar'], 'foo');

        + +

        + +
        • param: String | Array obj

        • param: Mixed val

        • param: String msg

        +
        +
        assert.includes = function(obj, val, msg) {
        +    msg = msg || sys.inspect(obj) + ' does not include ' + sys.inspect(val);
        +    assert.ok(obj.indexOf(val) &gt;= 0, msg);
        +};
        +
        +

        Assert length of val is n.

        + +

        + +
        • param: Mixed val

        • param: Number n

        • param: String msg

        +
        +
        assert.length = function(val, n, msg) {
        +    msg = msg || sys.inspect(val) + ' has length of ' + val.length + ', expected ' + n;
        +    assert.equal(n, val.length, msg);
        +};
        +
        +

        Assert response from server with +the given req object and res assertions object.

        + +

        + +
        • param: Server server

        • param: Object req

        • param: Object | Function res

        • param: String msg

        +
        +
        assert.response = function(server, req, res, msg){
        +    // Callback as third or fourth arg
        +    var callback = typeof res === 'function'
        +        ? res
        +        : typeof msg === 'function'
        +            ? msg
        +            : function(){};
        +
        +    // Default messate to test title
        +    msg = msg || assert.testTitle;
        +    msg += '. ';
        +
        +    // Pending responses
        +    server.__pending = server.__pending || 0;
        +    server.__pending++;
        +
        +    // Create client
        +    if (!server.fd) {
        +        server.listen(server.__port = port++);
        +        server.client = http.createClient(server.__port);
        +    }
        +
        +    // Issue request
        +    var timer,
        +        client = server.client,
        +        method = req.method || 'GET',
        +        status = res.status || res.statusCode,
        +        data = req.data || req.body,
        +        timeout = req.timeout || 0;
        +
        +    var request = client.request(method, req.url, req.headers);
        +
        +    // Timeout
        +    if (timeout) {
        +        timer = setTimeout(function(){
        +            --server.__pending || server.close();
        +            delete req.timeout;
        +            assert.fail(msg + 'Request timed out after ' + timeout + 'ms.');
        +        }, timeout);
        +    }
        +
        +    if (data) request.write(data);
        +    request.addListener('response', function(response){
        +        response.body = '';
        +        response.setEncoding('utf8');
        +        response.addListener('data', function(chunk){ response.body += chunk; });
        +        response.addListener('end', function(){
        +            --server.__pending || server.close();
        +            if (timer) clearTimeout(timer);
        +
        +            // Assert response body
        +            if (res.body !== undefined) {
        +                assert.equal(
        +                    response.body,
        +                    res.body,
        +                    msg + 'Invalid response body.\n'
        +                        + '    Expected: ' + sys.inspect(res.body) + '\n'
        +                        + '    Got: ' + sys.inspect(response.body)
        +                );
        +            }
        +
        +            // Assert response status
        +            if (typeof status === 'number') {
        +                assert.equal(
        +                    response.statusCode,
        +                    status,
        +                    msg + colorize('Invalid response status code.\n'
        +                        + '    Expected: [green]{' + status + '}\n'
        +                        + '    Got: [red]{' + response.statusCode + '}')
        +                );
        +            }
        +
        +            // Assert response headers
        +            if (res.headers) {
        +                var keys = Object.keys(res.headers);
        +                for (var i = 0, len = keys.length; i &lt; len; ++i) {
        +                    var name = keys[i],
        +                        actual = response.headers[name.toLowerCase()],
        +                        expected = res.headers[name];
        +                    assert.equal(
        +                        actual,
        +                        expected,
        +                        msg + colorize('Invalid response header [bold]{' + name + '}.\n'
        +                            + '    Expected: [green]{' + expected + '}\n'
        +                            + '    Got: [red]{' + actual + '}')
        +                    );
        +                }
        +            }
        +
        +            // Callback
        +            callback(response);
        +        });
        +    });
        +    request.end();
        +};
        +
        +

        Pad the given string to the maximum width provided.

        + +

        + +
        • param: String str

        • param: Number width

        • return: String

        +
        +
        function lpad(str, width) {
        +    str = String(str);
        +    var n = width - str.length;
        +    if (n &lt; 1) return str;
        +    while (n--) str = ' ' + str;
        +    return str;
        +}
        +
        +

        Pad the given string to the maximum width provided.

        + +

        + +
        • param: String str

        • param: Number width

        • return: String

        +
        +
        function rpad(str, width) {
        +    str = String(str);
        +    var n = width - str.length;
        +    if (n &lt; 1) return str;
        +    while (n--) str = str + ' ';
        +    return str;
        +}
        +
        +

        Report test coverage.

        + +

        + +
        • param: Object cov

        +
        +
        function reportCoverage(cov) {
        +    populateCoverage(cov);
        +    // Stats
        +    print('\n   [bold]{Test Coverage}\n');
        +    var sep = '   +------------------------------------------+----------+------+------+--------+',
        +        lastSep = '                                              +----------+------+------+--------+';
        +    sys.puts(sep);
        +    sys.puts('   | filename                                 | coverage | LOC  | SLOC | missed |');
        +    sys.puts(sep);
        +    for (var name in cov) {
        +        var file = cov[name];
        +        if (Array.isArray(file)) {
        +            sys.print('   | ' + rpad(name, 40));
        +            sys.print(' | ' + lpad(file.coverage.toFixed(2), 8));
        +            sys.print(' | ' + lpad(file.LOC, 4));
        +            sys.print(' | ' + lpad(file.SLOC, 4));
        +            sys.print(' | ' + lpad(file.totalMisses, 6));
        +            sys.print(' |\n');
        +        }
        +    }
        +    sys.puts(sep);
        +    sys.print('     ' + rpad('', 40));
        +    sys.print(' | ' + lpad(cov.coverage.toFixed(2), 8));
        +    sys.print(' | ' + lpad(cov.LOC, 4));
        +    sys.print(' | ' + lpad(cov.SLOC, 4));
        +    sys.print(' | ' + lpad(cov.totalMisses, 6));
        +    sys.print(' |\n');
        +    sys.puts(lastSep);
        +    // Source
        +    for (var name in cov) {
        +        if (name.match(/\.js$/)) {
        +            var file = cov[name];
        +            print('\n   [bold]{' + name + '}:');
        +            print(file.source);
        +            sys.print('\n');
        +        }
        +    }
        +}
        +
        +

        Populate code coverage data.

        + +

        + +
        • param: Object cov

        +
        +
        function populateCoverage(cov) {
        +    cov.LOC = 
        +    cov.SLOC =
        +    cov.totalFiles =
        +    cov.totalHits =
        +    cov.totalMisses = 
        +    cov.coverage = 0;
        +    for (var name in cov) {
        +        var file = cov[name];
        +        if (Array.isArray(file)) {
        +            // Stats
        +            ++cov.totalFiles;
        +            cov.totalHits += file.totalHits = coverage(file, true);
        +            cov.totalMisses += file.totalMisses = coverage(file, false);
        +            file.totalLines = file.totalHits + file.totalMisses;
        +            cov.SLOC += file.SLOC = file.totalLines;
        +            cov.LOC += file.LOC = file.source.length;
        +            file.coverage = (file.totalHits / file.totalLines) * 100;
        +            // Source
        +            var width = file.source.length.toString().length;
        +            file.source = file.source.map(function(line, i){
        +                ++i;
        +                var hits = file[i] === 0 ? 0 : (file[i] || ' ');
        +                if (!boring) {
        +                    if (hits === 0) {
        +                        hits = '\x1b[31m' + hits + '\x1b[0m';
        +                        line = '\x1b[41m' + line + '\x1b[0m';
        +                    } else {
        +                        hits = '\x1b[32m' + hits + '\x1b[0m';
        +                    }
        +                }
        +                return '\n     ' + lpad(i, width) + ' | ' + hits + ' | ' + line;
        +            }).join('');
        +        }
        +    }
        +    cov.coverage = (cov.totalHits / cov.SLOC) * 100;
        +}
        +
        +

        Total coverage for the given file data.

        + +

        + +
        • param: Array data

        • return: Type

        +
        +
        function coverage(data, val) {
        +    var n = 0;
        +    for (var i = 0, len = data.length; i &lt; len; ++i) {
        +        if (data[i] !== undefined &amp;&amp; data[i] == val) ++n;
        +    }
        +    return n;  
        +}
        +
        +

        Run the given test files, or try test/*.

        + +

        + +
        • param: Array files

        +
        +
        function run(files) {
        +    if (!files.length) {
        +        try {
        +            files = fs.readdirSync('test').map(function(file){
        +                return 'test/' + file;
        +            });
        +        } catch (err) {
        +            print('\n  failed to load tests in [bold]{./test}\n');
        +            ++failures;
        +            process.exit(1);
        +        }
        +    }
        +    if (watch) watchFiles(files);
        +    runFiles(files);
        +}
        +
        +

        Show the cursor when show is true, otherwise hide it.

        + +

        + +
        • param: Boolean show

        +
        +
        function cursor(show) {
        +    if (show) {
        +        sys.print('\x1b[?25h');
        +    } else {
        +        sys.print('\x1b[?25l');
        +    }
        +}
        +
        +

        Run the given test files.

        + +

        + +
        • param: Array files

        +
        +
        function runFiles(files) {
        +    files.forEach(runFile);
        +}
        +
        +

        Run tests for the given file.

        + +

        + +
        • param: String file

        +
        +
        function runFile(file) {
        +    if (file.match(/\.js$/)) {
        +        var title = path.basename(file),
        +            file = path.join(cwd, file),
        +            mod = require(file.replace(/\.js$/, ''));
        +        (function check(){
        +           var len = Object.keys(mod).length;
        +           if (len) {
        +               runSuite(title, mod);
        +           } else {
        +               setTimeout(check, 20);
        +           }
        +        })();
        +    }
        +}
        +
        +

        Clear the module cache for the given file.

        + +

        + +
        • param: String file

        +
        +
        function clearCache(file) {
        +    var keys = Object.keys(module.moduleCache);
        +    for (var i = 0, len = keys.length; i &lt; len; ++i) {
        +        var key = keys[i];
        +        if (key.indexOf(file) === key.length - file.length) {
        +            delete module.moduleCache[key];
        +        }
        +    }
        +}
        +
        +

        Watch the given files for changes.

        + +

        + +
        • param: Array files

        +
        +
        function watchFiles(files) {
        +    var p = 0,
        +        c = ['▫   ', '▫▫  ', '▫▫▫ ', ' ▫▫▫',
        +             '  ▫▫', '   ▫', '   ▫', '  ▫▫',
        +             '▫▫▫ ', '▫▫  ', '▫   '],
        +        l = c.length;
        +    cursor(false);
        +    setInterval(function(){
        +        sys.print(colorize('  [green]{' + c[p++ % l] + '} watching\r'));
        +    }, 100);
        +    files.forEach(function(file){
        +        fs.watchFile(file, { interval: 100 }, function(curr, prev){
        +            if (curr.mtime &gt; prev.mtime) {
        +                print('  [yellow]{◦} ' + file);
        +                clearCache(file);
        +                runFile(file);
        +            }
        +        });
        +    });
        +}
        +
        +

        Report err for the given test and suite.

        + +

        + +
        • param: String suite

        • param: String test

        • param: Error err

        +
        +
        function error(suite, test, err) {
        +    ++failures;
        +    var name = err.name,
        +        stack = err.stack.replace(err.name, ''),
        +        label = test === 'uncaught'
        +            ? test
        +            : suite + ' ' + test;
        +    print('\n   [bold]{' + label + '}: [red]{' + name + '}' + stack + '\n');
        +    if (watch) notify(label + ' failed');
        +}
        +
        +

        Run the given tests.

        + +

        + +
        • param: String title

        • param: Object tests

        +
        +
        function runSuite(title, tests) {
        +    var keys = only.length
        +        ? only.slice(0)
        +        : Object.keys(tests);
        +    (function next(){
        +        if (keys.length) {
        +            var key,
        +                test = tests[key = keys.shift()];
        +            if (test) {
        +                try {
        +                    assert.testTitle = key;
        +                    test(assert, function(fn){
        +                        process.addListener('beforeExit', function(){
        +                            try {
        +                                fn();
        +                            } catch (err) {
        +                                error(title, key, err);
        +                            }
        +                        });
        +                    });
        +                } catch (err) {
        +                    error(title, key, err);
        +                }
        +            }
        +            next();
        +        }
        +    })();
        +}
        +
        +

        Report exceptions. +

        +
        +
        function report() {
        +    process.emit('beforeExit');
        +    if (failures) {
        +        print('\n   [bold]{Failures}: [red]{' + failures + '}\n\n');
        +        notify('Failures: ' + failures);
        +    } else {
        +    	print('\n   [green]{100%} ok\n');
        +    	notify('100% ok');
        +    }
        +    if (typeof _$jscoverage === 'object') {
        +        reportCoverage(_$jscoverage);
        +    }
        +}
        +
        +

        Growl notify the given msg.

        + +

        + +
        • param: String msg

        +
        +
        function notify(msg) {
        +    if (growl) {
        +        childProcess.exec('growlnotify -name Expresso -m "' + msg + '"');
        +    }
        +}
        +
        +// Report uncaught exceptions
        +
        +process.addListener('uncaughtException', function(err){
        +    error('uncaught', 'uncaught', err);
        +});
        +
        +// Show cursor
        +
        +['INT', 'TERM', 'QUIT'].forEach(function(sig){
        +    process.addListener('SIG' + sig, function(){
        +        cursor(true);
        +        process.exit(1);
        +    });
        +});
        +
        +// Report test coverage when available
        +// and emit "beforeExit" event to perform
        +// final assertions
        +
        +var orig = process.emit;
        +process.emit = function(event){
        +    if (event === 'exit') {
        +        report();
        +        process.reallyExit(failures);
        +    }
        +    orig.apply(this, arguments);
        +};
        +
        +// Run test files
        +
        +if (!defer) run(files);
        +
        +
        \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/docs/index.html b/node_modules/ejs/support/expresso/docs/index.html new file mode 100644 index 000000000..5ae18ab10 --- /dev/null +++ b/node_modules/ejs/support/expresso/docs/index.html @@ -0,0 +1,380 @@ + + + Expresso - TDD Framework For Node + + + + + Fork me on GitHub + + +
        +

        Expresso

        +
        +

        Expresso is a JavaScript TDD framework written for nodejs. Expresso is extremely fast, and is packed with features such as additional assertion methods, code coverage reporting, CI support, and more.

        + +

        Features

        + +
          +
        • light-weight
        • +
        • intuitive async support
        • +
        • intuitive test runner executable
        • +
        • test coverage support and reporting via node-jscoverage
        • +
        • uses and extends the core assert module
        • +
        • assert.eql() alias of assert.deepEqual()
        • +
        • assert.response() http response utility
        • +
        • assert.includes()
        • +
        • assert.isNull()
        • +
        • assert.isUndefined()
        • +
        • assert.isNotNull()
        • +
        • assert.isDefined()
        • +
        • assert.match()
        • +
        • assert.length()
        • +
        + + +

        Installation

        + +

        To install both expresso and node-jscoverage run +the command below, which will first compile node-jscoverage:

        + +
        $ make install
        +
        + +

        To install expresso alone without coverage reporting run:

        + +
        $ make install-expresso
        +
        + +

        Install via npm:

        + +
        $ npm install expresso
        +
        + +

        Examples

        + +

        Examples

        + +

        To define tests we simply export several functions:

        + +
        exports['test String#length'] = function(assert){
        +    assert.equal(6, 'foobar'.length);
        +};
        +
        + +

        Alternatively for large numbers of tests you may want to +export your own object containing the tests, however this +is essentially the as above:

        + +
        module.exports = {
        +    'test String#length': function(assert){
        +        assert.equal(6, 'foobar'.length);
        +    }
        +};
        +
        + +

        If you prefer not to use quoted keys:

        + +
        exports.testsStringLength = function(assert){
        +    assert.equal(6, 'foobar'.length);
        +};
        +
        + +

        The second argument passed to each callback is beforeExit, +which is typically used to assert that callbacks have been +invoked.

        + +
        exports.testAsync = function(assert, beforeExit){
        +    var n = 0;
        +    setTimeout(function(){
        +        ++n;
        +        assert.ok(true);
        +    }, 200);
        +    setTimeout(function(){
        +        ++n;
        +        assert.ok(true);
        +    }, 200);
        +    beforeExit(function(){
        +        assert.equal(2, n, 'Ensure both timeouts are called');
        +    });
        +};
        +
        + +

        Assert Utilities

        + +

        assert.isNull(val[, msg])

        + +

        Asserts that the given val is null.

        + +
        assert.isNull(null);
        +
        + +

        assert.isNotNull(val[, msg])

        + +

        Asserts that the given val is not null.

        + +
        assert.isNotNull(undefined);
        +assert.isNotNull(false);
        +
        + +

        assert.isUndefined(val[, msg])

        + +

        Asserts that the given val is undefined.

        + +
        assert.isUndefined(undefined);
        +
        + +

        assert.isDefined(val[, msg])

        + +

        Asserts that the given val is not undefined.

        + +
        assert.isDefined(null);
        +assert.isDefined(false);
        +
        + +

        assert.match(str, regexp[, msg])

        + +

        Asserts that the given str matches regexp.

        + +
        assert.match('foobar', /^foo(bar)?/);
        +assert.match('foo', /^foo(bar)?/);
        +
        + +

        assert.length(val, n[, msg])

        + +

        Assert that the given val has a length of n.

        + +
        assert.length([1,2,3], 3);
        +assert.length('foo', 3);
        +
        + +

        assert.type(obj, type[, msg])

        + +

        Assert that the given obj is typeof type.

        + +
        assert.type(3, 'number');
        +
        + +

        assert.eql(a, b[, msg])

        + +

        Assert that object b is equal to object a. This is an +alias for the core assert.deepEqual() method which does complex +comparisons, opposed to assert.equal() which uses ==.

        + +
        assert.eql('foo', 'foo');
        +assert.eql([1,2], [1,2]);
        +assert.eql({ foo: 'bar' }, { foo: 'bar' });
        +
        + +

        assert.includes(obj, val[, msg])

        + +

        Assert that obj is within val. This method supports Array_s +and Strings_s.

        + +
        assert.includes([1,2,3], 3);
        +assert.includes('foobar', 'foo');
        +assert.includes('foobar', 'bar');
        +
        + +

        assert.response(server, req, res|fn[, msg|fn])

        + +

        Performs assertions on the given server, which should not call +listen(), as this is handled internally by expresso and the server +is killed after all responses have completed. This method works with +any http.Server instance, so Connect and Express servers will work +as well.

        + +

        The req object may contain:

        + +
          +
        • url request url
        • +
        • timeout timeout in milliseconds
        • +
        • method HTTP method
        • +
        • data request body
        • +
        • headers headers object
        • +
        + + +

        The res object may be a callback function which +receives the response for assertions, or an object +which is then used to perform several assertions +on the response with the following properties:

        + +
          +
        • body assert response body
        • +
        • status assert response status code
        • +
        • header assert that all given headers match (unspecified are ignored)
        • +
        + + +

        When providing res you may then also pass a callback function +as the fourth argument for additional assertions.

        + +

        Below are some examples:

        + +
        assert.response(server, {
        +    url: '/', timeout: 500
        +}, {
        +    body: 'foobar'
        +});
        +
        +assert.response(server, {
        +    url: '/',
        +    method: 'GET'
        +},{
        +    body: '{"name":"tj"}',
        +    status: 200,
        +    headers: {
        +        'Content-Type': 'application/json; charset=utf8',
        +        'X-Foo': 'bar'
        +    }
        +});
        +
        +assert.response(server, {
        +    url: '/foo',
        +    method: 'POST',
        +    data: 'bar baz'
        +},{
        +    body: '/foo bar baz',
        +    status: 200
        +}, 'Test POST');
        +
        +assert.response(server, {
        +    url: '/foo',
        +    method: 'POST',
        +    data: 'bar baz'
        +},{
        +    body: '/foo bar baz',
        +    status: 200
        +}, function(res){
        +    // All done, do some more tests if needed
        +});
        +
        +assert.response(server, {
        +    url: '/'
        +}, function(res){
        +    assert.ok(res.body.indexOf('tj') >= 0, 'Test assert.response() callback');
        +});
        +
        + +

        expresso(1)

        + +

        To run a single test suite (file) run:

        + +
        $ expresso test/a.test.js
        +
        + +

        To run several suites we may simply append another:

        + +
        $ expresso test/a.test.js test/b.test.js
        +
        + +

        We can also pass a whitelist of tests to run within all suites:

        + +
        $ expresso --only "foo()" --only "bar()"
        +
        + +

        Or several with one call:

        + +
        $ expresso --only "foo(), bar()"
        +
        + +

        Globbing is of course possible as well:

        + +
        $ expresso test/*
        +
        + +

        When expresso is called without any files, test/* is the default, +so the following is equivalent to the command above:

        + +
        $ expresso
        +
        + +

        If you wish to unshift a path to require.paths before +running tests, you may use the -I or --include flag.

        + +
        $ expresso --include lib test/*
        +
        + +

        The previous example is typically what I would recommend, since expresso +supports test coverage via node-jscoverage (bundled with expresso), +so you will need to expose an instrumented version of you library.

        + +

        To instrument your library, simply run node-jscoverage, +passing the src and dest directories:

        + +
        $ node-jscoverage lib lib-cov
        +
        + +

        Now we can run our tests again, using the lib-cov directory that has been +instrumented with coverage statements:

        + +
        $ expresso -I lib-cov test/*
        +
        + +

        The output will look similar to below, depending on your test coverage of course :)

        + +

        node coverage

        + +

        To make this process easier expresso has the -c or --cov which essentially +does the same as the two commands above. The following two commands will +run the same tests, however one will auto-instrument, and unshift lib-cov, +and the other will run tests normally:

        + +
        $ expresso -I lib test/*
        +$ expresso -I lib --cov test/*
        +
        + +

        Currently coverage is bound to the lib directory, however in the +future --cov will most likely accept a path.

        + +

        Async Exports

        + +

        Sometimes it is useful to postpone running of tests until a callback or event has fired, currently the exports.foo = function(){}; syntax is supported for this:

        + +
        setTimeout(function(){
        +    exports['test async exports'] = function(assert){
        +        assert.ok('wahoo');
        +    };
        +}, 100);
        +
        + +
        +
        + + \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/docs/index.md b/node_modules/ejs/support/expresso/docs/index.md new file mode 100644 index 000000000..169b33565 --- /dev/null +++ b/node_modules/ejs/support/expresso/docs/index.md @@ -0,0 +1,292 @@ + +[Expresso](http://github.com/visionmedia/expresso) is a JavaScript [TDD](http://en.wikipedia.org/wiki/Test-driven_development) framework written for [nodejs](http://nodejs.org). Expresso is extremely fast, and is packed with features such as additional assertion methods, code coverage reporting, CI support, and more. + +## Features + + - light-weight + - intuitive async support + - intuitive test runner executable + - test coverage support and reporting via [node-jscoverage](http://github.com/visionmedia/node-jscoverage) + - uses and extends the core _assert_ module + - `assert.eql()` alias of `assert.deepEqual()` + - `assert.response()` http response utility + - `assert.includes()` + - `assert.isNull()` + - `assert.isUndefined()` + - `assert.isNotNull()` + - `assert.isDefined()` + - `assert.match()` + - `assert.length()` + +## Installation + +To install both expresso _and_ node-jscoverage run +the command below, which will first compile node-jscoverage: + + $ make install + +To install expresso alone without coverage reporting run: + + $ make install-expresso + +Install via npm: + + $ npm install expresso + +## Examples + +## Examples + +To define tests we simply export several functions: + + exports['test String#length'] = function(assert){ + assert.equal(6, 'foobar'.length); + }; + +Alternatively for large numbers of tests you may want to +export your own object containing the tests, however this +is essentially the as above: + + module.exports = { + 'test String#length': function(assert){ + assert.equal(6, 'foobar'.length); + } + }; + +If you prefer not to use quoted keys: + + exports.testsStringLength = function(assert){ + assert.equal(6, 'foobar'.length); + }; + +The second argument passed to each callback is _beforeExit_, +which is typically used to assert that callbacks have been +invoked. + + exports.testAsync = function(assert, beforeExit){ + var n = 0; + setTimeout(function(){ + ++n; + assert.ok(true); + }, 200); + setTimeout(function(){ + ++n; + assert.ok(true); + }, 200); + beforeExit(function(){ + assert.equal(2, n, 'Ensure both timeouts are called'); + }); + }; + +## Assert Utilities + +### assert.isNull(val[, msg]) + +Asserts that the given _val_ is _null_. + + assert.isNull(null); + +### assert.isNotNull(val[, msg]) + +Asserts that the given _val_ is not _null_. + + assert.isNotNull(undefined); + assert.isNotNull(false); + +### assert.isUndefined(val[, msg]) + +Asserts that the given _val_ is _undefined_. + + assert.isUndefined(undefined); + +### assert.isDefined(val[, msg]) + +Asserts that the given _val_ is not _undefined_. + + assert.isDefined(null); + assert.isDefined(false); + +### assert.match(str, regexp[, msg]) + +Asserts that the given _str_ matches _regexp_. + + assert.match('foobar', /^foo(bar)?/); + assert.match('foo', /^foo(bar)?/); + +### assert.length(val, n[, msg]) + +Assert that the given _val_ has a length of _n_. + + assert.length([1,2,3], 3); + assert.length('foo', 3); + +### assert.type(obj, type[, msg]) + +Assert that the given _obj_ is typeof _type_. + + assert.type(3, 'number'); + +### assert.eql(a, b[, msg]) + +Assert that object _b_ is equal to object _a_. This is an +alias for the core _assert.deepEqual()_ method which does complex +comparisons, opposed to _assert.equal()_ which uses _==_. + + assert.eql('foo', 'foo'); + assert.eql([1,2], [1,2]); + assert.eql({ foo: 'bar' }, { foo: 'bar' }); + +### assert.includes(obj, val[, msg]) + +Assert that _obj_ is within _val_. This method supports _Array_s +and _Strings_s. + + assert.includes([1,2,3], 3); + assert.includes('foobar', 'foo'); + assert.includes('foobar', 'bar'); + +### assert.response(server, req, res|fn[, msg|fn]) + +Performs assertions on the given _server_, which should _not_ call +listen(), as this is handled internally by expresso and the server +is killed after all responses have completed. This method works with +any _http.Server_ instance, so _Connect_ and _Express_ servers will work +as well. + +The _req_ object may contain: + + - _url_ request url + - _timeout_ timeout in milliseconds + - _method_ HTTP method + - _data_ request body + - _headers_ headers object + +The _res_ object may be a callback function which +receives the response for assertions, or an object +which is then used to perform several assertions +on the response with the following properties: + + - _body_ assert response body + - _status_ assert response status code + - _header_ assert that all given headers match (unspecified are ignored) + +When providing _res_ you may then also pass a callback function +as the fourth argument for additional assertions. + +Below are some examples: + + assert.response(server, { + url: '/', timeout: 500 + }, { + body: 'foobar' + }); + + assert.response(server, { + url: '/', + method: 'GET' + },{ + body: '{"name":"tj"}', + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf8', + 'X-Foo': 'bar' + } + }); + + assert.response(server, { + url: '/foo', + method: 'POST', + data: 'bar baz' + },{ + body: '/foo bar baz', + status: 200 + }, 'Test POST'); + + assert.response(server, { + url: '/foo', + method: 'POST', + data: 'bar baz' + },{ + body: '/foo bar baz', + status: 200 + }, function(res){ + // All done, do some more tests if needed + }); + + assert.response(server, { + url: '/' + }, function(res){ + assert.ok(res.body.indexOf('tj') >= 0, 'Test assert.response() callback'); + }); + + +## expresso(1) + +To run a single test suite (file) run: + + $ expresso test/a.test.js + +To run several suites we may simply append another: + + $ expresso test/a.test.js test/b.test.js + +We can also pass a whitelist of tests to run within all suites: + + $ expresso --only "foo()" --only "bar()" + +Or several with one call: + + $ expresso --only "foo(), bar()" + +Globbing is of course possible as well: + + $ expresso test/* + +When expresso is called without any files, _test/*_ is the default, +so the following is equivalent to the command above: + + $ expresso + +If you wish to unshift a path to `require.paths` before +running tests, you may use the `-I` or `--include` flag. + + $ expresso --include lib test/* + +The previous example is typically what I would recommend, since expresso +supports test coverage via [node-jscoverage](http://github.com/visionmedia/node-jscoverage) (bundled with expresso), +so you will need to expose an instrumented version of you library. + +To instrument your library, simply run [node-jscoverage](http://github.com/visionmedia/node-jscoverage), +passing the _src_ and _dest_ directories: + + $ node-jscoverage lib lib-cov + +Now we can run our tests again, using the _lib-cov_ directory that has been +instrumented with coverage statements: + + $ expresso -I lib-cov test/* + +The output will look similar to below, depending on your test coverage of course :) + +![node coverage](http://dl.dropbox.com/u/6396913/cov.png) + +To make this process easier expresso has the _-c_ or _--cov_ which essentially +does the same as the two commands above. The following two commands will +run the same tests, however one will auto-instrument, and unshift _lib-cov_, +and the other will run tests normally: + + $ expresso -I lib test/* + $ expresso -I lib --cov test/* + +Currently coverage is bound to the _lib_ directory, however in the +future `--cov` will most likely accept a path. + +## Async Exports + +Sometimes it is useful to postpone running of tests until a callback or event has fired, currently the _exports.foo = function(){};_ syntax is supported for this: + + setTimeout(function(){ + exports['test async exports'] = function(assert){ + assert.ok('wahoo'); + }; + }, 100); diff --git a/node_modules/ejs/support/expresso/docs/layout/foot.html b/node_modules/ejs/support/expresso/docs/layout/foot.html new file mode 100644 index 000000000..44d85e96e --- /dev/null +++ b/node_modules/ejs/support/expresso/docs/layout/foot.html @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/docs/layout/head.html b/node_modules/ejs/support/expresso/docs/layout/head.html new file mode 100644 index 000000000..b2d42c361 --- /dev/null +++ b/node_modules/ejs/support/expresso/docs/layout/head.html @@ -0,0 +1,47 @@ + + + Expresso - TDD Framework For Node + + + + + Fork me on GitHub + + +
        +

        Expresso

        diff --git a/node_modules/ejs/support/expresso/lib/bar.js b/node_modules/ejs/support/expresso/lib/bar.js new file mode 100644 index 000000000..e15aad41f --- /dev/null +++ b/node_modules/ejs/support/expresso/lib/bar.js @@ -0,0 +1,4 @@ + +exports.bar = function(msg){ + return msg || 'bar'; +}; \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/lib/foo.js b/node_modules/ejs/support/expresso/lib/foo.js new file mode 100644 index 000000000..15701a540 --- /dev/null +++ b/node_modules/ejs/support/expresso/lib/foo.js @@ -0,0 +1,16 @@ + +exports.foo = function(msg){ + if (msg) { + return msg; + } else { + return generateFoo(); + } +}; + +function generateFoo() { + return 'foo'; +} + +function Foo(msg){ + this.msg = msg || 'foo'; +} diff --git a/node_modules/ejs/support/expresso/package.json b/node_modules/ejs/support/expresso/package.json new file mode 100644 index 000000000..ef89b5efd --- /dev/null +++ b/node_modules/ejs/support/expresso/package.json @@ -0,0 +1,9 @@ +{ "name": "expresso", + "version": "0.6.1", + "description": "TDD framework, light-weight, fast, CI-friendly", + "author": "TJ Holowaychuk ", + "bin": { "expresso": "./bin/expresso" }, + "scripts": { + "install": "make install-jscov" + } +} \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/test/assert.test.js b/node_modules/ejs/support/expresso/test/assert.test.js new file mode 100644 index 000000000..6a5e7649a --- /dev/null +++ b/node_modules/ejs/support/expresso/test/assert.test.js @@ -0,0 +1,84 @@ +module.exports = { + 'assert.eql()': function(assert){ + assert.equal(assert.deepEqual, assert.eql); + }, + + 'assert.type()': function(assert){ + assert.type('foobar', 'string'); + assert.type(2, 'number'); + assert.throws(function(){ + assert.type([1,2,3], 'string'); + }); + }, + + 'assert.includes()': function(assert){ + assert.includes('some random string', 'dom'); + assert.throws(function(){ + assert.include('some random string', 'foobar'); + }); + + assert.includes(['foo', 'bar'], 'bar'); + assert.includes(['foo', 'bar'], 'foo'); + assert.includes([1,2,3], 3); + assert.includes([1,2,3], 2); + assert.includes([1,2,3], 1); + assert.throws(function(){ + assert.includes(['foo', 'bar'], 'baz'); + }); + + assert.throws(function(){ + assert.includes({ wrong: 'type' }, 'foo'); + }); + }, + + 'assert.isNull()': function(assert){ + assert.isNull(null); + assert.throws(function(){ + assert.isNull(undefined); + }); + assert.throws(function(){ + assert.isNull(false); + }); + }, + + 'assert.isUndefined()': function(assert){ + assert.isUndefined(undefined); + assert.throws(function(){ + assert.isUndefined(null); + }); + assert.throws(function(){ + assert.isUndefined(false); + }); + }, + + 'assert.isNotNull()': function(assert){ + assert.isNotNull(false); + assert.isNotNull(undefined); + assert.throws(function(){ + assert.isNotNull(null); + }); + }, + + 'assert.isDefined()': function(assert){ + assert.isDefined(false); + assert.isDefined(null); + assert.throws(function(){ + assert.isDefined(undefined); + }); + }, + + 'assert.match()': function(assert){ + assert.match('foobar', /foo(bar)?/); + assert.throws(function(){ + assert.match('something', /rawr/); + }); + }, + + 'assert.length()': function(assert){ + assert.length('test', 4); + assert.length([1,2,3,4], 4); + assert.throws(function(){ + assert.length([1,2,3], 4); + }); + } +}; \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/test/async.test.js b/node_modules/ejs/support/expresso/test/async.test.js new file mode 100644 index 000000000..0dc9016b7 --- /dev/null +++ b/node_modules/ejs/support/expresso/test/async.test.js @@ -0,0 +1,6 @@ + +setTimeout(function(){ + exports['test async exports'] = function(assert){ + assert.ok('wahoo'); + }; +}, 100); \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/test/bar.test.js b/node_modules/ejs/support/expresso/test/bar.test.js new file mode 100644 index 000000000..68e8d48b9 --- /dev/null +++ b/node_modules/ejs/support/expresso/test/bar.test.js @@ -0,0 +1,12 @@ + +/** + * Module dependencies. + */ + +var bar = require('bar'); + +module.exports = { + 'bar()': function(assert){ + assert.equal('bar', bar.bar()); + } +}; \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/test/foo.test.js b/node_modules/ejs/support/expresso/test/foo.test.js new file mode 100644 index 000000000..5d9d94eaf --- /dev/null +++ b/node_modules/ejs/support/expresso/test/foo.test.js @@ -0,0 +1,13 @@ + +/** + * Module dependencies. + */ + +var foo = require('foo'); + +module.exports = { + 'foo()': function(assert){ + assert.equal('foo', foo.foo()); + assert.equal('foo', foo.foo()); + } +}; \ No newline at end of file diff --git a/node_modules/ejs/support/expresso/test/http.test.js b/node_modules/ejs/support/expresso/test/http.test.js new file mode 100644 index 000000000..8eff2b7c8 --- /dev/null +++ b/node_modules/ejs/support/expresso/test/http.test.js @@ -0,0 +1,76 @@ + +/** + * Module dependencies. + */ + +var http = require('http'); + +var server = http.createServer(function(req, res){ + if (req.method === 'GET') { + if (req.url === '/delay') { + setTimeout(function(){ + res.writeHead(200, {}); + res.end('delayed'); + }, 200); + } else { + var body = JSON.stringify({ name: 'tj' }); + res.writeHead(200, { + 'Content-Type': 'application/json; charset=utf8', + 'Content-Length': body.length + }); + res.end(body); + } + } else { + var body = ''; + req.setEncoding('utf8'); + req.addListener('data', function(chunk){ body += chunk }); + req.addListener('end', function(){ + res.writeHead(200, {}); + res.end(req.url + ' ' + body); + }); + } +}); + +module.exports = { + 'test assert.response()': function(assert, beforeExit){ + var called = 0; + + assert.response(server, { + url: '/', + method: 'GET' + },{ + body: '{"name":"tj"}', + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf8' + } + }); + + assert.response(server, { + url: '/foo', + method: 'POST', + data: 'bar baz' + },{ + body: '/foo bar baz', + status: 200 + }, function(res){ + ++called; + assert.ok(res); + }); + + assert.response(server, { + url: '/foo' + }, function(res){ + ++called; + assert.ok(res.body.indexOf('tj') >= 0, 'Test assert.response() callback'); + }); + + assert.response(server, + { url: '/delay', timeout: 300 }, + { body: 'delayed' }); + + beforeExit(function(){ + assert.equal(2, called); + }); + } +}; \ No newline at end of file diff --git a/node_modules/ejs/test/ejs.test.js b/node_modules/ejs/test/ejs.test.js new file mode 100644 index 000000000..e1b5a0cb5 --- /dev/null +++ b/node_modules/ejs/test/ejs.test.js @@ -0,0 +1,245 @@ + +/** + * Module dependencies. + */ + +var ejs = require('ejs'); + +module.exports = { + 'test .version': function(assert){ + assert.ok(/^\d+\.\d+\.\d+$/.test(ejs.version), 'Test .version format'); + }, + + 'test html': function(assert){ + assert.equal('

        yay

        ', ejs.render('

        yay

        ')); + }, + + 'test buffered code': function(assert){ + var html = '

        tj

        ', + str = '

        <%= name %>

        ', + locals = { name: 'tj' }; + assert.equal(html, ejs.render(str, { locals: locals })); + }, + + 'test unbuffered code': function(assert){ + var html = '

        tj

        ', + str = '<% if (name) { %>

        <%= name %>

        <% } %>', + locals = { name: 'tj' }; + assert.equal(html, ejs.render(str, { locals: locals })); + }, + + 'test `scope` option': function(assert){ + var html = '

        tj

        ', + str = '

        <%= this %>

        '; + assert.equal(html, ejs.render(str, { scope: 'tj' })); + }, + + 'test escaping': function(assert){ + assert.equal('<script>', ejs.render('<%= "
      3. Ep18jb+U?i164zy4 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

        M9c- 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