{"_id":"catharsis","_rev":"3918906","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","dist-tags":{"latest":"0.11.0"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"time":{"modified":"2025-09-01T01:21:24.000Z","created":"2012-11-02T16:12:24.859Z","0.11.0":"2024-12-30T00:35:55.898Z","0.10.0":"2024-12-17T01:55:43.355Z","0.9.0":"2020-06-14T16:56:03.345Z","0.8.11":"2019-07-14T17:19:59.503Z","0.8.10":"2019-05-04T22:29:25.572Z","0.8.9":"2017-07-12T23:45:27.350Z","0.8.8":"2016-04-27T20:44:54.200Z","0.8.7":"2015-06-01T22:38:57.897Z","0.8.6":"2014-12-25T21:26:15.151Z","0.8.5":"2014-12-16T16:50:22.469Z","0.8.4":"2014-12-07T01:08:58.763Z","0.8.3":"2014-10-08T17:49:06.636Z","0.8.2":"2014-06-11T04:43:53.235Z","0.8.1":"2014-06-11T00:20:24.215Z","0.8.0":"2014-05-13T17:19:59.812Z","0.7.1":"2014-04-05T20:30:04.802Z","0.7.0":"2013-10-14T16:16:23.992Z","0.6.0":"2013-09-21T23:25:02.549Z","0.5.6":"2013-04-12T14:15:45.557Z","0.5.5":"2013-04-08T23:26:41.575Z","0.5.4":"2013-04-08T23:02:29.940Z","0.5.3":"2013-03-22T12:49:24.350Z","0.5.2":"2013-03-21T16:28:17.571Z","0.5.1":"2013-03-21T03:59:06.531Z","0.5.0":"2013-03-17T14:08:38.395Z","0.4.3":"2013-03-16T13:58:57.039Z","0.4.2":"2013-03-14T15:48:29.194Z","0.4.1":"2013-03-13T14:38:18.788Z","0.4.0":"2013-03-13T06:38:15.469Z","0.3.1":"2013-03-10T20:50:51.664Z","0.3.0":"2013-03-05T15:38:46.869Z","0.2.0":"2012-11-05T05:49:30.994Z","0.1.1":"2012-11-03T20:10:01.164Z","0.1.0":"2012-11-02T16:12:24.859Z"},"users":{"jjdanois":true},"author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/hegemonic/catharsis.git"},"versions":{"0.11.0":{"version":"0.11.0","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/hegemonic/catharsis.git"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"lodash":"^4.17.21"},"devDependencies":{"@jsdoc/eslint-config":"^2.0.1","@jsdoc/prettier-config":"^0.2.9","@jsdoc/test-matchers":"^0.2.6","ajv":"^8.17.1","eslint":"^9.17.0","execa":"^9.5.2","hereby":"^1.10.0","jasmine":"^5.5.0","jasmine-console-reporter":"^3.1.0","peggy":"^4.2.0","prettier":"^3.4.2"},"engines":{"node":">=10.0.0"},"scripts":{"build":"npx peggy ./lib/parser.pegjs","default":"npx hereby lint-and-test","format":"npx hereby format","lint":"npx hereby lint","test":"npx hereby test"},"license":"MIT","_id":"catharsis@0.11.0","gitHead":"01be1e06bef61cf49a190cc352b2929b1682bde6","homepage":"https://github.com/hegemonic/catharsis#readme","_nodeVersion":"18.20.4","_npmVersion":"10.7.0","dist":{"shasum":"2bd8b0f06083f6c1573627b73d11ab306b84382b","size":65220,"noattachment":false,"key":"/catharsis/-/catharsis-0.11.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.11.0.tgz"},"_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"directories":{},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/catharsis_0.11.0_1735518955718_0.7272828614149836"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-30T00:35:55.898Z","publish_time":1735518955898,"_source_registry_name":"default","_cnpm_publish_time":1735518955898},"0.10.0":{"version":"0.10.0","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/hegemonic/catharsis.git"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"lodash":"^4.17.21"},"devDependencies":{"@jsdoc/eslint-config":"^2.0.1","@jsdoc/prettier-config":"^0.2.9","@jsdoc/test-matchers":"^0.2.6","ajv":"^8.17.1","eslint":"^9.17.0","execa":"^9.5.2","hereby":"^1.10.0","jasmine":"^5.5.0","jasmine-console-reporter":"^3.1.0","peggy":"^4.2.0","prettier":"^3.4.2"},"engines":{"node":">=10.0.0"},"scripts":{"build":"npx peggy ./lib/parser.pegjs","default":"npx hereby lint-and-test","format":"npx hereby format","lint":"npx hereby lint","test":"npx hereby test"},"license":"MIT","_id":"catharsis@0.10.0","gitHead":"b59f6f00ea97e5b7a07b9064a608f66b7c03ec6e","homepage":"https://github.com/hegemonic/catharsis#readme","_nodeVersion":"18.20.4","_npmVersion":"10.7.0","dist":{"shasum":"739f1ade3a0b1d47e9d5b192e20593bcad55cc81","size":66193,"noattachment":false,"key":"/catharsis/-/catharsis-0.10.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.10.0.tgz"},"_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"directories":{},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/catharsis_0.10.0_1734400543130_0.34975632531890777"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-17T01:55:43.355Z","publish_time":1734400543355,"_source_registry_name":"default","_cnpm_publish_time":1734400543355},"0.9.0":{"version":"0.9.0","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/hegemonic/catharsis.git"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"lodash":"^4.17.15"},"devDependencies":{"ajv":"^6.12.2","mocha":"^8.0.1","pegjs":"^0.10.0","should":"^13.2.3","should-equal":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"prepare":"./node_modules/pegjs/bin/pegjs ./lib/parser.pegjs","test":"./node_modules/mocha/bin/mocha"},"license":"MIT","gitHead":"84b65effa9fa14b66c5e79a117c577527dc1e24a","homepage":"https://github.com/hegemonic/catharsis#readme","_id":"catharsis@0.9.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.5","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"dist":{"shasum":"40382a168be0e6da308c277d3a2b3eb40c7d2121","size":65671,"noattachment":false,"key":"/catharsis/-/catharsis-0.9.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.9.0.tgz"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/catharsis_0.9.0_1592153763214_0.6660932672422448"},"_hasShrinkwrap":false,"publish_time":1592153763345,"_cnpm_publish_time":1592153763345},"0.8.11":{"version":"0.8.11","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/hegemonic/catharsis.git"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"lodash":"^4.17.14"},"devDependencies":{"ajv":"^6.10.2","mocha":"^6.1.4","pegjs":"^0.10.0","should":"^13.2.3","should-equal":"^2.0.0"},"engines":{"node":">= 8"},"scripts":{"prepare":"./node_modules/pegjs/bin/pegjs ./lib/parser.pegjs","test":"./node_modules/mocha/bin/mocha"},"license":"MIT","gitHead":"36e25b2d739b72dc970a261aa08c68ac855c8ec6","homepage":"https://github.com/hegemonic/catharsis#readme","_id":"catharsis@0.8.11","_nodeVersion":"8.16.0","_npmVersion":"6.10.0","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"dist":{"shasum":"d0eb3d2b82b7da7a3ce2efb1a7b00becc6643468","size":65516,"noattachment":false,"key":"/catharsis/-/catharsis-0.8.11.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.8.11.tgz"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/catharsis_0.8.11_1563124799353_0.6529403733999377"},"_hasShrinkwrap":false,"publish_time":1563124799503,"_cnpm_publish_time":1563124799503},"0.8.10":{"version":"0.8.10","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/hegemonic/catharsis.git"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"lodash":"^4.17.11"},"devDependencies":{"ajv":"^6.10.0","mocha":"^6.1.4","pegjs":"^0.10.0","should":"^13.2.3","should-equal":"^2.0.0"},"engines":{"node":">= 8"},"scripts":{"prepare":"./node_modules/pegjs/bin/pegjs ./lib/parser.pegjs","test":"./node_modules/mocha/bin/mocha"},"license":"MIT","gitHead":"b4a29feee5bbeffa512eaf997f8e5480c0d2476f","homepage":"https://github.com/hegemonic/catharsis#readme","_id":"catharsis@0.8.10","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"dist":{"shasum":"364198c1fbf084ae17028ee33ec7db53ca942ee6","size":65758,"noattachment":false,"key":"/catharsis/-/catharsis-0.8.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.8.10.tgz"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/catharsis_0.8.10_1557008965311_0.24444817873443947"},"_hasShrinkwrap":false,"publish_time":1557008965572,"_cnpm_publish_time":1557008965572},"0.8.9":{"version":"0.8.9","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/hegemonic/catharsis.git"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"underscore-contrib":"~0.3.0"},"devDependencies":{"mocha":"~2.0.1","pegjs":"https://github.com/dmajda/pegjs/tarball/eaca5f0acf97b66ef141fed84aa95d4e72e33757","should":"~4.0.4","tv4":"https://github.com/geraintluff/tv4/tarball/eb7561072d44943306e5fd88b55b4a4c98cb6c75"},"engines":{"node":">= 0.10"},"scripts":{"prepublish":"./node_modules/pegjs/bin/pegjs ./lib/parser.pegjs","test":"mocha"},"license":"MIT","gitHead":"e318f14f6d9b615fb2b90e8fac681b12fd98b03e","homepage":"https://github.com/hegemonic/catharsis#readme","_id":"catharsis@0.8.9","_shasum":"98cc890ca652dd2ef0e70b37925310ff9e90fc8b","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.2","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"dist":{"shasum":"98cc890ca652dd2ef0e70b37925310ff9e90fc8b","size":66840,"noattachment":false,"key":"/catharsis/-/catharsis-0.8.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.8.9.tgz"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/catharsis-0.8.9.tgz_1499903127213_0.83025440457277"},"directories":{},"publish_time":1499903127350,"_cnpm_publish_time":1499903127350,"_hasShrinkwrap":false},"0.8.8":{"version":"0.8.8","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/hegemonic/catharsis.git"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"underscore-contrib":"~0.3.0"},"devDependencies":{"mocha":"~2.0.1","pegjs":"https://github.com/dmajda/pegjs/tarball/eaca5f0acf97b66ef141fed84aa95d4e72e33757","should":"~4.0.4","tv4":"https://github.com/geraintluff/tv4/tarball/eb7561072d44943306e5fd88b55b4a4c98cb6c75"},"engines":{"node":">= 0.10"},"scripts":{"prepublish":"./node_modules/pegjs/bin/pegjs ./lib/parser.pegjs","test":"mocha"},"license":"MIT","gitHead":"721af5309a5f6d96b9556efe6ded9dbb4cf920de","homepage":"https://github.com/hegemonic/catharsis#readme","_id":"catharsis@0.8.8","_shasum":"693479f43aac549d806bd73e924cd0d944951a06","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"dist":{"shasum":"693479f43aac549d806bd73e924cd0d944951a06","size":60713,"noattachment":false,"key":"/catharsis/-/catharsis-0.8.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.8.8.tgz"},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/catharsis-0.8.8.tgz_1461789891623_0.13337185187265277"},"directories":{},"publish_time":1461789894200,"_cnpm_publish_time":1461789894200,"_hasShrinkwrap":false},"0.8.7":{"version":"0.8.7","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/hegemonic/catharsis.git"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"underscore-contrib":"~0.3.0"},"devDependencies":{"mocha":"~2.0.1","pegjs":"https://github.com/dmajda/pegjs/tarball/eaca5f0acf97b66ef141fed84aa95d4e72e33757","should":"~4.0.4","tv4":"https://github.com/geraintluff/tv4/tarball/eb7561072d44943306e5fd88b55b4a4c98cb6c75"},"engines":{"node":">= 0.10"},"scripts":{"prepublish":"./node_modules/pegjs/bin/pegjs ./lib/parser.pegjs","test":"mocha"},"license":"MIT","gitHead":"8140a48acc53c0a0afbf859924204bc07b5db8cc","homepage":"https://github.com/hegemonic/catharsis#readme","_id":"catharsis@0.8.7","_shasum":"e8ab71b11eeff1e940429705d69dd322fd2ce640","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.12.4","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"dist":{"shasum":"e8ab71b11eeff1e940429705d69dd322fd2ce640","size":66699,"noattachment":false,"key":"/catharsis/-/catharsis-0.8.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.8.7.tgz"},"directories":{},"publish_time":1433198337897,"_cnpm_publish_time":1433198337897,"_hasShrinkwrap":false},"0.8.6":{"version":"0.8.6","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"underscore-contrib":"~0.3.0"},"devDependencies":{"mocha":"~2.0.1","pegjs":"https://github.com/dmajda/pegjs/tarball/76cc5d55b47ff3d5bbe1d435c6f843e2688cb729","should":"~4.0.4","tv4":"https://github.com/geraintluff/tv4/tarball/eb7561072d44943306e5fd88b55b4a4c98cb6c75"},"engines":{"node":">= 0.8"},"scripts":{"prepublish":"pegjs ./lib/parser.pegjs","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"gitHead":"44b6dc62df82a60ccd11eefe6b68cd9a6c8cbf4f","homepage":"https://github.com/hegemonic/catharsis","_id":"catharsis@0.8.6","_shasum":"5ca786ca4efe5ff4eb063c1db7ff84b7b309a55e","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"dist":{"shasum":"5ca786ca4efe5ff4eb063c1db7ff84b7b309a55e","size":64943,"noattachment":false,"key":"/catharsis/-/catharsis-0.8.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.8.6.tgz"},"directories":{},"publish_time":1419542775151,"_cnpm_publish_time":1419542775151,"_hasShrinkwrap":false},"0.8.5":{"version":"0.8.5","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"underscore-contrib":"~0.3.0"},"devDependencies":{"mocha":"~2.0.1","pegjs":"https://github.com/dmajda/pegjs/tarball/76cc5d55b47ff3d5bbe1d435c6f843e2688cb729","should":"~4.0.4","tv4":"https://github.com/geraintluff/tv4/tarball/eb7561072d44943306e5fd88b55b4a4c98cb6c75"},"engines":{"node":">= 0.8"},"scripts":{"prepublish":"pegjs ./lib/parser.pegjs","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"gitHead":"e56c974cf1e20dbba4e450d7cb52d648cd069828","homepage":"https://github.com/hegemonic/catharsis","_id":"catharsis@0.8.5","_shasum":"5025a6280f8bcc27e30e5d6fb19765c6f08dd0cd","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"dist":{"shasum":"5025a6280f8bcc27e30e5d6fb19765c6f08dd0cd","size":64918,"noattachment":false,"key":"/catharsis/-/catharsis-0.8.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.8.5.tgz"},"directories":{},"publish_time":1418748622469,"_cnpm_publish_time":1418748622469,"_hasShrinkwrap":false},"0.8.4":{"version":"0.8.4","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"underscore-contrib":"~0.3.0"},"devDependencies":{"mocha":"~1.21.3","pegjs":"https://github.com/dmajda/pegjs/tarball/76cc5d55b47ff3d5bbe1d435c6f843e2688cb729","should":"~4.0.4","tv4":"https://github.com/geraintluff/tv4/tarball/eb7561072d44943306e5fd88b55b4a4c98cb6c75"},"engines":{"node":">= 0.8"},"scripts":{"prepublish":"pegjs ./lib/parser.pegjs","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"gitHead":"c1e3fac1da90bfd3ca30be2338347ad12357cd7a","homepage":"https://github.com/hegemonic/catharsis","_id":"catharsis@0.8.4","_shasum":"b6b30238a0eda0e2d7e7ea1943e528c82c8ccd21","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"dist":{"shasum":"b6b30238a0eda0e2d7e7ea1943e528c82c8ccd21","size":64614,"noattachment":false,"key":"/catharsis/-/catharsis-0.8.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.8.4.tgz"},"directories":{},"publish_time":1417914538763,"_cnpm_publish_time":1417914538763,"_hasShrinkwrap":false},"0.8.3":{"version":"0.8.3","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"underscore-contrib":"~0.3.0"},"devDependencies":{"mocha":"~1.21.3","pegjs":"https://github.com/dmajda/pegjs/tarball/76cc5d55b47ff3d5bbe1d435c6f843e2688cb729","should":"~4.0.4","tv4":"https://github.com/geraintluff/tv4/tarball/eb7561072d44943306e5fd88b55b4a4c98cb6c75","uglify-js":"~2.4.15"},"engines":{"node":">= 0.8"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; ./node_modules/.bin/uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"gitHead":"8795105b00acf02d0af464ad3432f47b53744934","homepage":"https://github.com/hegemonic/catharsis","_id":"catharsis@0.8.3","_shasum":"573ad3d285dcfc373221712bd382edda61b3a5d5","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"dist":{"shasum":"573ad3d285dcfc373221712bd382edda61b3a5d5","size":60196,"noattachment":false,"key":"/catharsis/-/catharsis-0.8.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.8.3.tgz"},"directories":{},"publish_time":1412790546636,"_cnpm_publish_time":1412790546636,"_hasShrinkwrap":false},"0.8.2":{"version":"0.8.2","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"underscore-contrib":"~0.3.0"},"devDependencies":{"mocha":"~1.18.2","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"~3.3.1","uglify-js":"~2.4.13"},"engines":{"node":">= 0.8"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; ./node_modules/.bin/uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"gitHead":"7c1a64875003fb599dba8d0c37752ca8b382dd64","homepage":"https://github.com/hegemonic/catharsis","_id":"catharsis@0.8.2","_shasum":"8e85e06b564a659add861c8abf64bd91958f2160","_from":".","_npmVersion":"1.4.13","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"dist":{"shasum":"8e85e06b564a659add861c8abf64bd91958f2160","size":59487,"noattachment":false,"key":"/catharsis/-/catharsis-0.8.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.8.2.tgz"},"directories":{},"publish_time":1402461833235,"_cnpm_publish_time":1402461833235,"_hasShrinkwrap":false},"0.8.1":{"version":"0.8.1","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"underscore":"~1.6.0","underscore-contrib":"~0.2.2"},"devDependencies":{"mocha":"~1.18.2","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"~3.3.1","uglify-js":"~2.4.13"},"engines":{"node":">= 0.8"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; ./node_modules/.bin/uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"gitHead":"dac1aef8807811b7a4f94aa4e5ba765b1c201e20","homepage":"https://github.com/hegemonic/catharsis","_id":"catharsis@0.8.1","_shasum":"5494b855f9b2ce6455f386bb7b8b107797b268ee","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"dist":{"shasum":"5494b855f9b2ce6455f386bb7b8b107797b268ee","size":60624,"noattachment":false,"key":"/catharsis/-/catharsis-0.8.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.8.1.tgz"},"directories":{},"publish_time":1402446024215,"_cnpm_publish_time":1402446024215,"_hasShrinkwrap":false},"0.8.0":{"version":"0.8.0","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","dependencies":{"underscore":"~1.6.0","underscore-contrib":"~0.2.2"},"devDependencies":{"mocha":"~1.18.2","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"~3.3.1","uglify-js":"~2.4.13"},"engines":{"node":">= 0.8"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; ./node_modules/.bin/uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"homepage":"https://github.com/hegemonic/catharsis","_id":"catharsis@0.8.0","_shasum":"34301febc9b7676740d0db27786490bafacae3d7","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"dist":{"shasum":"34301febc9b7676740d0db27786490bafacae3d7","size":60495,"noattachment":false,"key":"/catharsis/-/catharsis-0.8.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.8.0.tgz"},"directories":{},"publish_time":1400001599812,"_hasShrinkwrap":false,"_cnpm_publish_time":1400001599812},"0.7.1":{"version":"0.7.1","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","devDependencies":{"mocha":"1.13.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.3.0","uglify-js":"2.4.0","underscore":"1.5.2"},"engines":{"node":">= 0.6"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; ./node_modules/.bin/uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"homepage":"https://github.com/hegemonic/catharsis","_id":"catharsis@0.7.1","dist":{"shasum":"34f84dcd2254962f1a8df3f8756c18c361429791","size":53443,"noattachment":false,"key":"/catharsis/-/catharsis-0.7.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.7.1.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1396729804802,"_cnpm_publish_time":1396729804802,"_hasShrinkwrap":false},"0.7.0":{"version":"0.7.0","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","devDependencies":{"mocha":"1.13.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.3.0","uglify-js":"2.4.0","underscore":"1.5.2"},"engines":{"node":">= 0.6"},"scripts":{"build":"./node_modules/.bin/pegjs ./lib/parser.pegjs","prepublish":"./node_modules/.bin/pegjs ./lib/parser.pegjs; ./node_modules/.bin/uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","homepage":"https://github.com/hegemonic/catharsis","_id":"catharsis@0.7.0","dist":{"shasum":"37b3854a9a79b71bd7750279913313b160978c6e","size":53430,"noattachment":false,"key":"/catharsis/-/catharsis-0.7.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.7.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1381767383992,"_cnpm_publish_time":1381767383992,"_hasShrinkwrap":false},"0.6.0":{"version":"0.6.0","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"main":"catharsis.js","devDependencies":{"mocha":"1.13.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.3.0","uglify-js":"2.4.0","underscore":"1.5.2"},"engines":{"node":">= 0.6"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"_id":"catharsis@0.6.0","dist":{"shasum":"a32ee7bdedb34e8c6891e918ec227250adfe1245","size":50159,"noattachment":false,"key":"/catharsis/-/catharsis-0.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.6.0.tgz"},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1379805902549,"_cnpm_publish_time":1379805902549,"_hasShrinkwrap":false},"0.5.6":{"version":"0.5.6","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","uglify-js":"2.2.5","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.5.6","dist":{"shasum":"210a0cfa23c5d09fa994d6fafe1a76383c170cbb","size":53069,"noattachment":false,"key":"/catharsis/-/catharsis-0.5.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.5.6.tgz"},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1365776145557,"_cnpm_publish_time":1365776145557,"_hasShrinkwrap":false},"0.5.5":{"version":"0.5.5","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","uglify-js":"2.2.5","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.5.5","dist":{"shasum":"8fd7bc60e44465e7d0ca57ff6f25c681824c28d0","size":52739,"noattachment":false,"key":"/catharsis/-/catharsis-0.5.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.5.5.tgz"},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1365463601575,"_cnpm_publish_time":1365463601575,"_hasShrinkwrap":false},"0.5.4":{"version":"0.5.4","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","uglify-js":"2.2.5","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.5.4","dist":{"shasum":"6f3e305fc7f58fe8311a66f9c7dfc9df72e11275","size":52689,"noattachment":false,"key":"/catharsis/-/catharsis-0.5.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.5.4.tgz"},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1365462149940,"_cnpm_publish_time":1365462149940,"_hasShrinkwrap":false},"0.5.3":{"version":"0.5.3","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","uglify-js":"2.2.5","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.5.3","dist":{"shasum":"22d58453039f93c69a1d8691000994f6610be1d7","size":81234,"noattachment":false,"key":"/catharsis/-/catharsis-0.5.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.5.3.tgz"},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1363956564350,"_cnpm_publish_time":1363956564350,"_hasShrinkwrap":false},"0.5.2":{"version":"0.5.2","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","uglify-js":"2.2.5","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.5.2","dist":{"shasum":"df3bffa6eebcbd225a9ece3188079084ed2f4b34","size":81150,"noattachment":false,"key":"/catharsis/-/catharsis-0.5.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.5.2.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1363883297571,"_cnpm_publish_time":1363883297571,"_hasShrinkwrap":false},"0.5.1":{"version":"0.5.1","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","uglify-js":"2.2.5","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.5.1","dist":{"shasum":"c27e6cc181445b24bc69495d44d4450e8ba9341b","size":80995,"noattachment":false,"key":"/catharsis/-/catharsis-0.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.5.1.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1363838346531,"_cnpm_publish_time":1363838346531,"_hasShrinkwrap":false},"0.5.0":{"version":"0.5.0","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler and JSDoc type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","uglify-js":"2.2.5","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"build":"pegjs ./lib/parser.pegjs","prepublish":"pegjs ./lib/parser.pegjs; uglifyjs ./lib/parser.js -o ./lib/parser.js","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.5.0","dist":{"shasum":"01cea3d4922dd8a5da66b9298c1478e614f36dd1","size":80845,"noattachment":false,"key":"/catharsis/-/catharsis-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.5.0.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1363529318395,"_cnpm_publish_time":1363529318395,"_hasShrinkwrap":false},"0.4.3":{"version":"0.4.3","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"prepublish":"pegjs ./lib/parser.pegjs","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.4.3","dist":{"shasum":"707d9450b1e173fa3c6b1247e22951452f2ba34c","size":84000,"noattachment":false,"key":"/catharsis/-/catharsis-0.4.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.4.3.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1363442337039,"_cnpm_publish_time":1363442337039,"_hasShrinkwrap":false},"0.4.2":{"version":"0.4.2","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"prepublish":"pegjs ./lib/parser.pegjs","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.4.2","dist":{"shasum":"70baca3b7720ef06e4d641cd0dd2d532fc8566f6","size":83741,"noattachment":false,"key":"/catharsis/-/catharsis-0.4.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.4.2.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1363276109194,"_cnpm_publish_time":1363276109194,"_hasShrinkwrap":false},"0.4.1":{"version":"0.4.1","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"prepublish":"pegjs ./lib/parser.pegjs","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.4.1","dist":{"shasum":"4a81ed80b72a9722cc7d54adf8d35e81ef7857b8","size":83253,"noattachment":false,"key":"/catharsis/-/catharsis-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.4.1.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1363185498788,"_cnpm_publish_time":1363185498788,"_hasShrinkwrap":false},"0.4.0":{"version":"0.4.0","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"prepublish":"pegjs ./lib/parser.pegjs","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.4.0","dist":{"shasum":"2c476cf5bfb8ee4546fb0b54ef72761d8237760a","size":83018,"noattachment":false,"key":"/catharsis/-/catharsis-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.4.0.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1363156695469,"_cnpm_publish_time":1363156695469,"_hasShrinkwrap":false},"0.3.1":{"version":"0.3.1","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"prepublish":"pegjs ./lib/parser.pegjs","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.3.1","dist":{"shasum":"8581be56f2f66743d3d2370fdc3fd84e974556ae","size":80709,"noattachment":false,"key":"/catharsis/-/catharsis-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.3.1.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1362948651664,"_cnpm_publish_time":1362948651664,"_hasShrinkwrap":false},"0.3.0":{"version":"0.3.0","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"git+ssh://git@github.com:dmajda/pegjs.git#76cc5d55","should":"1.2.2","underscore":"1.4.4"},"engines":{"node":">= 0.6"},"scripts":{"prepublish":"pegjs ./lib/parser.pegjs","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.3.0","dist":{"shasum":"e5f74d79acc58d2eb5a8e76f0a004351fdf0a8cb","size":80401,"noattachment":false,"key":"/catharsis/-/catharsis-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.3.0.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1362497926869,"_cnpm_publish_time":1362497926869,"_hasShrinkwrap":false},"0.2.0":{"version":"0.2.0","name":"catharsis","description":"A JavaScript parser for Google Closure Compiler type expressions.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"0.7.0","should":"1.2.0"},"engines":{"node":">= 0.6"},"scripts":{"prepublish":"pegjs ./lib/parser.pegjs","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.2.0","dist":{"shasum":"8db6c99049faf7c021ffcd9f0669ae7f12176c37","size":78291,"noattachment":false,"key":"/catharsis/-/catharsis-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.2.0.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1352094570994,"_cnpm_publish_time":1352094570994,"_hasShrinkwrap":false},"0.1.1":{"version":"0.1.1","name":"catharsis","description":"A parser for Google Closure Compiler type expressions, powered by PEG.js.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"0.7.0","should":"1.2.0"},"engines":{"node":">= 0.6"},"scripts":{"prepublish":"pegjs ./lib/parser.pegjs","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.1.1","dist":{"shasum":"ef8e915a1ad3aa0de3b28986dad70f9fc78c5ea8","size":75895,"noattachment":false,"key":"/catharsis/-/catharsis-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.1.1.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1351973401164,"_cnpm_publish_time":1351973401164,"_hasShrinkwrap":false},"0.1.0":{"version":"0.1.0","name":"catharsis","description":"A parser for Google Closure Compiler type expressions, powered by PEG.js.","author":{"name":"Jeff Williams","email":"jeffrey.l.williams@gmail.com"},"repository":{"type":"git","url":"https://github.com/hegemonic/catharsis"},"bugs":"https://github.com/hegemonic/catharsis/issues","main":"catharsis.js","devDependencies":{"mocha":"1.6.0","pegjs":"0.7.0","should":"1.2.0"},"engines":{"node":">= 0.6"},"scripts":{"prepublish":"pegjs ./lib/parser.pegjs","test":"mocha"},"licenses":[{"type":"MIT","url":"http://github.com/hegemonic/catharsis/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"catharsis@0.1.0","dist":{"shasum":"0cba111e5e9d4dc2c676abc6d984c3cddbd8e6f1","size":75464,"noattachment":false,"key":"/catharsis/-/catharsis-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/catharsis/download/catharsis-0.1.0.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"},"maintainers":[{"name":"hegemonic","email":"jeffrey.l.williams@gmail.com"}],"directories":{},"publish_time":1351872744859,"_cnpm_publish_time":1351872744859,"_hasShrinkwrap":false}},"readme":"# Catharsis\n\n![Build status](https://github.com/hegemonic/catharsis/workflows/build/badge.svg)\n\nA JavaScript parser for\n[Google Closure Compiler](https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler#type-expressions)\nand [JSDoc](https://github.com/jsdoc/jsdoc) type expressions.\n\nCatharsis is designed to be:\n\n+ **Accurate**. Catharsis is based on a [Peggy](https://peggyjs.org/) grammar\nthat's designed to handle any valid type expression. It uses a thorough test\nsuite to verify the parser's accuracy.\n+ **Flexible**. Catharsis can convert a parse result back into a type\nexpression, or into a description of the type expression. In addition, Catharsis\ncan parse [JSDoc](https://github.com/jsdoc/jsdoc)-style type expressions.\n\n\n## Example\n\n```js\nconst catharsis = require('catharsis');\n\n// Closure Compiler parsing\nconst type = '!Object';\nlet parsedType;\ntry {\n  parsedType = catharsis.parse(type); // {\"type\":\"NameExpression,\"name\":\"Object\",\"nullable\":false}\n} catch(e) {\n  console.error('unable to parse %s: %s', type, e);\n}\n\n// JSDoc-style type expressions enabled\nconst jsdocType = 'string[]';  // Closure Compiler expects Array<string>\nlet parsedJsdocType;\ntry {\n  parsedJsdocType = catharsis.parse(jsdocType, { jsdoc: true });\n} catch (e) {\n  console.error('unable to parse %s: %s', jsdocType, e);\n}\n\n// Converting parse results back to type expressions\ncatharsis.stringify(parsedType);            // !Object\ncatharsis.stringify(parsedJsdocType);       // Array<string>\n\n// Converting parse results to descriptions of the type expression\ncatharsis.describe(parsedType).simple;      // non-null Object\ncatharsis.describe(parsedJsdocType).simple; // Array of string\n```\n\nSee the\n[`test/specs` directory](https://github.com/hegemonic/catharsis/tree/main/test/specs)\nfor more examples of Catharsis' parse results.\n\n## Methods\n\n### `parse(typeExpression, options)`\n\nParse a type expression, and return the parse results. Throws an error if the\ntype expression cannot be parsed.\n\nWhen called without options, Catharsis attempts to parse type expressions in the\nsame way as Closure Compiler. When the `jsdoc` option is enabled, Catharsis can\nalso parse several kinds of type expressions that are permitted in\n[JSDoc](https://github.com/jsdoc/jsdoc):\n\n+ The string `function` is treated as a function type with no parameters.\n+ If you append `[]` to a name expression (for example, `string[]`), it is\ninterpreted as a type application with the expression `Array` (for example,\n`Array<string>`).\n+ Name expressions can contain the characters `#`, `~`, `:`, and `/`.\n+ Name expressions can contain a suffix that is similar to a function signature\n(for example, `MyClass(foo, bar)`).\n+ Name expressions can contain a reserved word.\n+ Record types can use types other than name expressions for keys.\n\n#### Parameters\n\n+ `type`: A string containing a Closure Compiler type expression.\n+ `options`: Options for parsing the type expression.\n    + `options.jsdoc`: Specifies whether to enable parsing of JSDoc-style type\n    expressions. Defaults to `false`.\n\n#### Returns\n\nAn object containing the parse results. See the\n[`test/specs` directory](https://github.com/hegemonic/catharsis/tree/main/test/specs)\nfor examples of the parse results for different type expressions.\n\n### `stringify(parsedType, options)`\n\nStringify `parsedType`, and return the type expression. If validation is\nenabled, throws an error if the stringified type expression cannot be parsed.\n\n#### Parameters ####\n\n+ `parsedType`: An object containing a parsed Closure Compiler type expression.\n+ `options`: Options for stringifying the parse results.\n    + `options.htmlSafe`: Specifies whether to return an HTML-safe string that\n    replaces angle brackets (`<` and `>`) with HTML entities. **Note**:\n    Characters in name expressions are not escaped.\n    + `options.linkClass`: A CSS class to add to HTML links. Used only if\n    `options.links` is provided. By default, no CSS class is added.\n    + `options.links`: An object or map whose keys are name expressions and\n    whose values are URIs. You can also provide a map-like object with a `get()`\n    method. If a name expression matches a key in `options.links`, the name\n    expression will be wrapped in an HTML `<a>` tag that links to the URI. If\n    you also specify `options.linkClass`, the `<a>` tag includes a `class`\n    attribute.\n    + `options.validate`: Specifies whether to validate the stringified parse\n    results by attempting to parse them as a type expression. If the stringified\n    results are not parsable with the default options, you must also provide the\n    appropriate options to pass to the `parse()` method. Defaults to `false`.\n\n#### Returns\n\nA string containing the type expression.\n\n### `describe(parsedType, options)`\n\nConvert a parsed type to a description of the type expression. This method is\nespecially useful if your users are not familiar with the syntax for type\nexpressions.\n\nThe `describe()` method returns the description in two formats:\n\n+ **Simple format**. A string that provides a complete description of the type\nexpression.\n+ **Extended format**. An object that separates out some of the details about\nthe outermost type expression, such as whether the type is optional, nullable,\nor repeatable.\n\nFor example, when you call `describe('?function(new:MyObject, string)=')`, the\nmethod returns the following data:\n\n```js\n{\n  simple: 'optional nullable function(constructs MyObject, string)',\n  extended: {\n    description: 'function(string)',\n    modifiers: {\n      functionNew: 'Returns MyObject when called with new.',\n      functionThis: '',\n      optional: 'Optional.',\n      nullable: 'May be null.',\n      repeatable: ''\n    },\n    returns: ''\n  }\n}\n```\n\n#### Parameters\n\n+ `parsedType`: An object containing a parsed Closure Compiler type expression.\n+ `options`: Options for creating the description.\n    + `options.codeClass`: A CSS class to add to the tag that is wrapped around\n    type names. Used only if you specify `options.codeTag`. By default, no CSS\n    class is added.\n    + `options.codeTag`: The name of an HTML tag (for example, `code`) to wrap\n    around type names. For example, if this option is set to `code`, the type\n    expression `Array<string>` would have the simple description\n    `<code>Array</code> of <code>string</code>`.\n    + `options.language`: A string identifying the language in which to generate\n    the description. The identifier should be an\n    [ISO 639-1 language code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)\n    (for example, `en`). It can optionally be followed by a hyphen and an\n    [ISO 3166-1 alpha-2 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n    (for example, `en-US`). If you use values other than `en`, you must provide\n    translation resources in `options.resources`. Defaults to `en`.\n    + `options.linkClass`: A CSS class to add to HTML links. Used only if\n    `options.links` is provided. By default, no CSS class is added.\n    + `options.links`: An object or map whose keys are name expressions and\n    whose values are URIs. You can also provide a map-like object with a `get()`\n    method. If a name expression matches a key in `options.links`, the name\n    expression will be wrapped in an HTML `<a>` tag that links to the URI. If\n    you also specify `options.linkClass`, the `<a>` tag includes a `class`\n    attribute.\n    + `options.resources`: An object that specifies how to describe type\n    expressions for a given language. The object's property names should use the\n    same format as `options.language`. Each property should contain an object in\n    the same format as the translation resources in\n    [`res/en.json`](https://github.com/hegemonic/catharsis/blob/main/res/en.json).\n    If you specify a value for `options.resources.en`, that value overrides the\n    defaults in `res/en.json`.\n\n### Returns\n\nAn object with the following properties:\n\n+ `simple`: A string that provides a complete description of the type\nexpression.\n+ `extended`: An object containing details about the outermost type expression.\n    + `extended.description`: A string that provides a basic description of the\n    type expression, excluding the information contained in other properties.\n    + `extended.modifiers`: Information about modifiers that apply to the type\n    expression.\n        + `extended.modifiers.functionNew`: A string that describes what a\n        function returns when called with `new`. Returned only for function\n        types.\n        + `extended.modifiers.functionThis`: A string that describes what the\n        keyword `this` refers to within a function. Returned only for function\n        types.\n        + `extended.modifiers.nullable`: A string that indicates whether the\n        type is nullable or non-nullable.\n        + `extended.modifiers.optional`: A string that indicates whether the\n        type is optional.\n        + `extended.modifiers.repeatable`: A string that indicates whether the\n        type can be repeated.\n    + `extended.returns`: A string that describes the function's return value.\n    Returned only for function types.\n\n## Changelog\n\n+ 0.11.0 (December 2024):\n    + The `stringify()` method now always restringifies the parsed type, rather\n    than returning the original type expression in some cases.\n    + The `stringify()` method no longer accepts an `options.cssClass` property.\n    This property was deprecated in version 0.8.0.\n    + Catharsis no longer caches return values. Callers can cache the return\n    values as needed.\n    + Catharsis's methods no longer return frozen objects. Callers can freeze\n    the objects as needed.\n+ 0.10.0 (December 2024):\n    + The `stringify()` method no longer includes a dot separator for type\n    applications. For example, an array of numbers is stringified as\n    `Array<number>` rather than `Array.<number>`.\n    + For the `stringify()` method, when `options.htmlSafe` is set to `true`,\n    the `<` and `>` characters in type applications are escaped. Previously,\n    only the `<` character was escaped.\n    + For the `describe()` and `stringify()` methods, the `options.links`\n    parameter now accepts a map-like object that has a `get()` method. The\n    `get()` method must accept a key and return a value.\n+ 0.9.0 (June 2020):\n    + For the `describe()` and `stringify()` methods, the `options.links`\n    parameter now accepts either a map or an object.\n    + Catharsis now requires Node.js 10 or later.\n+ 0.8.11 (July 2019): Updated dependencies.\n+ 0.8.10 (May 2019): Updated dependencies.\n+ 0.8.9 (July 2017): Type expressions that include an `@` sign (for example,\n`module:@prefix/mymodule~myCallback`) are now supported.\n+ 0.8.8 (April 2016): Corrected the description of type applications other than\narrays that contain a single type (for example, `Promise.<string>`).\n+ 0.8.7 (June 2015):\n    + Record types that use numeric literals as property names (for example,\n    `{0: string}`) are now parsed correctly.\n    + Record types with a property that contains a function, with no space after\n    the preceding colon (for example, `{foo:function()}`), are now parsed\n    correctly.\n    + Repeatable function parameters are no longer required to be enclosed in\n    brackets, regardless of whether JSDoc-style type expressions are enabled. In\n    addition, the brackets are omitted when stringifying a parsed type\n    expression.\n+ 0.8.6 (December 2014): Improved the description of the unknown type.\n+ 0.8.5 (December 2014): Added support for postfix nullable/non-nullable\noperators combined with the optional operator (for example, `foo?=`).\n+ 0.8.4 (December 2014): JSDoc-style nested arrays (for example, `number[][]`)\nare now parsed correctly when JSDoc-style type expressions are enabled.\n+ 0.8.3 (October 2014):\n    + Type applications are no longer required to include a period (`.`) as a\n    separator, regardless of whether JSDoc-style type expressions are enabled.\n    + Type unions that are not enclosed in parentheses can now include the\n    repeatable (`...`) modifier when JSDoc-style type expressions are enabled.\n    + Name expressions may now be enclosed in single or double quotation marks\n    when JSDoc-style type expressions are enabled.\n+ 0.8.2 (June 2014): Fixed a compatibility issue with the JSDoc fork of Mozilla\nRhino.\n+ 0.8.1 (June 2014): Added support for type unions that are not enclosed in\nparentheses, and that contain nullable or non-nullable modifiers (for example,\n`!string|!number`).\n+ 0.8.0 (May 2014):\n    + Added a `describe()` method, which converts a parsed type to a description\n    of the type.\n    + Added a `linkClass` option to the `stringify()` method, and deprecated the\n    existing `cssClass` option. The `cssClass` option will be removed in a\n    future release.\n    + Clarified and corrected several sections in the `README`.\n+ 0.7.1 (April 2014): In record types, property names that begin with a keyword\n(for example, `undefinedHTML`) are now parsed correctly when JSDoc-style type\nexpressions are enabled.\n+ 0.7.0 (October 2013):\n    + Repeatable type expressions other than name expressions (for example,\n    `...function()`) are now parsed and stringified correctly.\n    + Type expressions that are both repeatable and either nullable or\n    non-nullable (for example, `...!number`) are now parsed and stringified\n    correctly.\n    + Name expressions are now parsed correctly when they match a property name\n    in an object instance (for example, `constructor`).\n+ 0.6.0 (September 2013): Added support for the type expression `function[]`\nwhen JSDoc-style type expressions are enabled.\n+ 0.5.6 (April 2013):\n    + For consistency with Closure Compiler, parentheses are no longer required\n    around type unions, regardless of whether JSDoc-style type expressions are\n    enabled.\n    + For consistency with Closure Compiler, you can now use postfix notation\n    for the `?` (nullable) and `!` (non-nullable) modifiers. For example,\n    `?string` and `string?` are now treated as equivalent.\n    + String literals and numeric literals are now allowed as property names\n    within name expressions. For example, the name expression `Foo.\"bar\"` is now\n    parsed correctly.\n+ 0.5.5 (April 2013): Corrected a parsing issue with name expressions that end\nwith a value enclosed in parentheses.\n+ 0.5.4 (April 2013):\n    + Repeatable literals (for example, `...*`) are now parsed correctly.\n    + When JSDoc-style type expressions are enabled, a name expression can now\n    contain a value enclosed in parentheses at the end of the name expression\n    (for example, `MyClass(2)`).\n+ 0.5.3 (March 2013): The `parse()` method now correctly parses name expressions\nthat contain hyphens.\n+ 0.5.2 (March 2013): The `parse()` method now correctly parses function types\nwhen JSDoc-style type expressions are enabled.\n+ 0.5.1 (March 2013): Newlines and extra spaces are now removed from type\nexpressions before they are parsed.\n+ 0.5.0 (March 2013):\n    + The `parse()` method's `lenient` option has been renamed to `jsdoc`.\n    **Note**: This change is not backwards-compatible with previous versions.\n    + The `stringify()` method now accepts `cssClass` and `links` options, which\n    you can use to add HTML links to a type expression.\n+ 0.4.3 (March 2013):\n    + The `stringify()` method no longer caches HTML-safe type expressions as if\n    they were normal type expressions.\n    + The `stringify()` method's options parameter may now include an\n    `options.restringify` property, and the behavior of the `options.useCache`\n    property has changed.\n+ 0.4.2 (March 2013):\n    + When lenient parsing is enabled, name expressions can now contain the\n    characters `:` and `/`.\n    + When lenient parsing is enabled, a name expression followed by `[]` (for\n    example, `string[]`) will be interpreted as a type application with the\n    expression `Array` (for example, `Array.<string>`).\n+ 0.4.1 (March 2013):\n    + The `parse()` and `stringify()` methods now honor all of the specified\n    options.\n    + When lenient parsing is enabled, name expressions can now contain a\n    reserved word.\n+ 0.4.0 (March 2013):\n    + Catharsis now supports a lenient parsing option that can parse several\n    kinds of malformed type expressions. See the documentation for details.\n    + The objects containing parse results are now frozen.\n    + The objects containing parse results now have two non-enumerable\n    properties:\n        + `lenient`: A boolean indicating whether the type expression was parsed\n        in lenient mode.\n        + `typeExpression`: A string containing the original type expression.\n    + The `stringify()` method now honors the `useCache` option. If a parsed\n    type includes a `typeExpression` property, and `useCache` is not set to\n    `false`, the stringified type will be identical to the original type\n    expression.\n+ 0.3.1 (March 2013): Type expressions that begin with a reserved word, such as\n`integer`, are now parsed correctly.\n+ 0.3.0 (March 2013):\n    + The `parse()` and `stringify()` methods are now synchronous, and the\n    `parseSync()` and `stringifySync()` methods have been removed. **Note**:\n    This change is not backwards-compatible with previous versions.\n    + The parse results now use a significantly different format from previous\n    versions. The new format is more expressive and is similar, but not\n    identical, to the format used by the\n    [doctrine](https://github.com/eslint/doctrine) parser. **Note**: This change\n    is not backwards-compatible with previous versions.\n    + Name expressions that contain a reserved word now include a\n    `reservedWord: true` property.\n    + Union types that are optional or nullable, or that can be repeated, are\n    now parsed and stringified correctly.\n    + Optional function types and record types are now parsed and stringified\n    correctly.\n    + Function types now longer include `new` or `this` properties unless the\n    properties are defined in the type expression. In addition, the `new` and\n    `this` properties can now use any type expression.\n    + In record types, the key for a field type can now use any type expression.\n    + Standalone single-character literals, such as ALL (`*`), are now parsed\n    and stringified correctly.\n    + `null` and `undefined` literals with additional properties, such as\n    `repeatable`, are now stringified correctly.\n+ 0.2.0 (November 2012):\n    + Added `stringify()` and `stringifySync()` methods, which convert a parsed\n    type to a type expression.\n    + Simplified the parse results for function signatures. **Note**: This\n    change is not backwards-compatible with previous versions.\n    + Corrected minor errors in README.md.\n+ 0.1.1 (November 2012): Added `opts` argument to `parse()` and `parseSync()`\nmethods. **Note**: The change to `parse()` is not backwards-compatible with\nprevious versions.\n+ 0.1.0 (November 2012): Initial release.\n\n## License\n\n[MIT license](https://github.com/hegemonic/catharsis/blob/main/LICENSE).\n","_attachments":{},"homepage":"https://github.com/hegemonic/catharsis#readme","bugs":{"url":"https://github.com/hegemonic/catharsis/issues"},"license":"MIT"}