├── .eslintrc ├── .gitignore ├── .nvmrc ├── .travis.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── publish.js ├── scripts └── preversion ├── static ├── fonts │ ├── OpenSans-Bold-webfont.eot │ ├── OpenSans-Bold-webfont.svg │ ├── OpenSans-Bold-webfont.woff │ ├── OpenSans-BoldItalic-webfont.eot │ ├── OpenSans-BoldItalic-webfont.svg │ ├── OpenSans-BoldItalic-webfont.woff │ ├── OpenSans-Italic-webfont.eot │ ├── OpenSans-Italic-webfont.svg │ ├── OpenSans-Italic-webfont.woff │ ├── OpenSans-Light-webfont.eot │ ├── OpenSans-Light-webfont.svg │ ├── OpenSans-Light-webfont.woff │ ├── OpenSans-LightItalic-webfont.eot │ ├── OpenSans-LightItalic-webfont.svg │ ├── OpenSans-LightItalic-webfont.woff │ ├── OpenSans-Regular-webfont.eot │ ├── OpenSans-Regular-webfont.svg │ ├── OpenSans-Regular-webfont.woff │ ├── OpenSans-Semibold-webfont.eot │ ├── OpenSans-Semibold-webfont.svg │ ├── OpenSans-Semibold-webfont.ttf │ ├── OpenSans-Semibold-webfont.woff │ ├── OpenSans-SemiboldItalic-webfont.eot │ ├── OpenSans-SemiboldItalic-webfont.svg │ ├── OpenSans-SemiboldItalic-webfont.ttf │ └── OpenSans-SemiboldItalic-webfont.woff ├── icons │ ├── home.svg │ └── search.svg ├── scripts │ ├── linenumber.js │ └── pagelocation.js └── styles │ ├── collapse.css │ ├── jsdoc-default.css │ ├── prettify-jsdoc.css │ └── prettify-tomorrow.css └── tmpl ├── augments.tmpl ├── container.tmpl ├── details.tmpl ├── example.tmpl ├── examples.tmpl ├── exceptions.tmpl ├── layout.tmpl ├── mainpage.tmpl ├── members.tmpl ├── method.tmpl ├── params.tmpl ├── properties.tmpl ├── returns.tmpl ├── source.tmpl ├── tutorial.tmpl └── type.tmpl /.eslintrc: -------------------------------------------------------------------------------- 1 | --- 2 | extends: braintree/client 3 | env: 4 | jquery: true 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v12 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | notifications: 3 | email: false 4 | slack: 5 | on_success: change 6 | on_failure: always 7 | on_pull_requests: false 8 | rooms: 9 | - secure: TXqVhSz2ZDkwrjS2nP9Dc2mwWdlKxKT8kR9CjTezuiKI5O5d30H2VBiMvd1JkinIZedYZZKOqChE3jf3vTBEqAMkg8ndA4Mibytkw3v39xEsYWnOgvsSTMcNxdRlYmbMHnbyqv/afh07nmZRduckoyr1MvoI97DfaW++ip/O7t9jMVWW5Ot/BzJGHC5gnh+P54h9lMyrfOQDG2JzyzTY1r6nTb9KIPw4qA1kvsMmddGKBiughy5SKVjI0NXN65Lgu3Cwm03pwZ2wp7JdUPMeQzUdD4+Nn2H7xaOgM2Nr2tHzOggKcBE1MMZ2qaij0gKw1x29MFDf7yl9uFn9cIgDIud0NnIl2DQpKdQ0LTDrzE9JYsXHSVbLOndxO4fphGJp8yKyq4srskAKdvYAER6WIT83YDLqK7IkhIx2KvUx3qUMDq9rPu4c1xwXDx0w7xBwE9T6ngvWiW6mnV3PO2Z/VgQUotVvbRgjb8mGuyO+yuuOCHrH2gy1odTxxfdEVNYTkSMgopxFViX4Xd4Aq8wu81oJh6XtTTicBK/kq9lfUHHSOA8Hdp8CzWADtkruJp6m1EXl+aTF3eWYaDmyOct5KjDjcxW+L01YdbhPW1MxJu2glgUEiudeTOIAoH2UC5UMZ+zrxTvxxrWFJbBkiiSO4MWRy45WBqUIzyhR5YM1lfU= 10 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # CHANGELOG 2 | 3 | ## v3.4.0 (2020-10-15) 4 | 5 | * Added a postprocess function option to template config options 6 | 7 | ## 3.3.0 8 | 9 | * Added support for templates.collapse option. When set to true only the active component\'s members are expanded. 10 | * Added templates.resources option that takes an object where the keys are the labels and the values are links to external resources. 11 | * Minor css bugfixes 12 | 13 | ## 3.2.0 14 | 15 | * Fix issue where all elements would be hidden if no excludePattern is included ([#16] thanks [@mercmobily]) 16 | * Display bullet points in documentation ([#17]) thanks [@mercmobily]) 17 | * Allow `disableSort` to be included in template to prevent automatic sorting of classes and methods ([#15] thanks [@mercmobily]) 18 | 19 | ## 3.1.1 20 | 21 | * Hide hidden modules from members section 22 | 23 | ## 3.1.0 24 | 25 | * Add anchor tags to examples 26 | * Increase max-width of sections 27 | 28 | [@mercmobily]: /mercmobily/ 29 | [#15]: /braintree/jsdoc-template/pull/15 30 | [#16]: /braintree/jsdoc-template/pull/16 31 | [#17]: /braintree/jsdoc-template/pull/17 32 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | ## JSDoc 3 2 | 3 | JSDoc 3 is free software, licensed under the Apache License, Version 2.0 (the 4 | "License"). Commercial and non-commercial use are permitted in compliance with 5 | the License. 6 | 7 | Copyright (c) 2011-2015 Michael Mathews and the 8 | [contributors to JSDoc](https://github.com/jsdoc3/jsdoc/graphs/contributors). 9 | All rights reserved. 10 | 11 | You may obtain a copy of the License at: 12 | http://www.apache.org/licenses/LICENSE-2.0 13 | 14 | In addition, a copy of the License is included with this distribution. 15 | 16 | As stated in Section 7, "Disclaimer of Warranty," of the License: 17 | 18 | > Licensor provides the Work (and each Contributor provides its Contributions) 19 | > on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 20 | > express or implied, including, without limitation, any warranties or 21 | > conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 22 | > PARTICULAR PURPOSE. You are solely responsible for determining the 23 | > appropriateness of using or redistributing the Work and assume any risks 24 | > associated with Your exercise of permissions under this License. 25 | 26 | The source code for JSDoc 3 is available at: 27 | https://github.com/jsdoc3/jsdoc 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Braintree JSDoc Template 2 | 3 | A clean, responsive documentation template with search and navigation highlighting for JSDoc 3. Forked from [github.com/nijikokun/minami](https://github.com/nijikokun/minami). 4 | 5 | ![Braintree JS Doc Template Screenshot](https://puu.sh/rWvW0/2831fd69d6.png) 6 | 7 | ## Responsive 8 | 9 | ![Braintree JS Doc Template Screenshot](https://puu.sh/rWvZ6/aee92a4787.png) 10 | 11 | ## Uses 12 | 13 | - [the Taffy Database library](http://taffydb.com/) 14 | - [Underscore Template library](http://documentcloud.github.com/underscore/#template) 15 | - [Algolia DocSearch](https://community.algolia.com/docsearch/) 16 | 17 | ## Usage 18 | 19 | Clone repository to your designated `jsdoc` template directory, then: 20 | 21 | 22 | ### Node.js Dependency 23 | 24 | In your projects `package.json` file add a generate script: 25 | 26 | ```json 27 | "script": { 28 | "generate-docs": "node_modules/.bin/jsdoc --configure .jsdoc.json --verbose" 29 | } 30 | ``` 31 | 32 | In your `.jsdoc.json` file, add a template option. 33 | 34 | ```json 35 | "opts": { 36 | "template": "node_modules/jsdoc-template" 37 | } 38 | ``` 39 | 40 | ### Example JSDoc Config 41 | 42 | ```json 43 | { 44 | "tags": { 45 | "allowUnknownTags": true, 46 | "dictionaries": ["jsdoc"] 47 | }, 48 | "source": { 49 | "include": ["lib", "package.json", "README.md"], 50 | "includePattern": ".js$", 51 | "excludePattern": "(node_modules/|docs)" 52 | }, 53 | "plugins": [ 54 | "plugins/markdown" 55 | ], 56 | "templates": { 57 | "referenceTitle": "My SDK Name", 58 | "disableSort": false, 59 | "collapse": true, 60 | "resources": { 61 | "google": "https://www.google.com/" 62 | } 63 | }, 64 | "opts": { 65 | "destination": "./docs/", 66 | "encoding": "utf8", 67 | "private": true, 68 | "recurse": true, 69 | "template": "./node_modules/jsdoc-template" 70 | } 71 | } 72 | ``` 73 | 74 | Note: `referenceTitle` and `disableSort` will affect the output of this theme. 75 | 76 | If you would like to enable [Algolia DocSearch](https://community.algolia.com/docsearch/), you can pass a `search` object into the `templates` object. 77 | 78 | ```json 79 | "templates": { 80 | "search": { 81 | "apiKey": "your-api-key", 82 | "indexName": "Your index name. Defaults to braintree.", 83 | "hitsPerPage": "Number of Results to show. Defaults to 7.", 84 | } 85 | } 86 | ``` 87 | 88 | ## License 89 | 90 | Licensed under the Apache2 license. 91 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jsdoc-template", 3 | "version": "3.4.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@eslint/eslintrc": { 8 | "version": "1.2.1", 9 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", 10 | "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", 11 | "dev": true, 12 | "requires": { 13 | "ajv": "^6.12.4", 14 | "debug": "^4.3.2", 15 | "espree": "^9.3.1", 16 | "globals": "^13.9.0", 17 | "ignore": "^5.2.0", 18 | "import-fresh": "^3.2.1", 19 | "js-yaml": "^4.1.0", 20 | "minimatch": "^3.0.4", 21 | "strip-json-comments": "^3.1.1" 22 | } 23 | }, 24 | "@humanwhocodes/config-array": { 25 | "version": "0.9.5", 26 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", 27 | "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", 28 | "dev": true, 29 | "requires": { 30 | "@humanwhocodes/object-schema": "^1.2.1", 31 | "debug": "^4.1.1", 32 | "minimatch": "^3.0.4" 33 | } 34 | }, 35 | "@humanwhocodes/object-schema": { 36 | "version": "1.2.1", 37 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 38 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", 39 | "dev": true 40 | }, 41 | "acorn": { 42 | "version": "8.7.0", 43 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", 44 | "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", 45 | "dev": true 46 | }, 47 | "acorn-jsx": { 48 | "version": "5.3.2", 49 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 50 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 51 | "dev": true 52 | }, 53 | "ajv": { 54 | "version": "6.12.6", 55 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 56 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 57 | "dev": true, 58 | "requires": { 59 | "fast-deep-equal": "^3.1.1", 60 | "fast-json-stable-stringify": "^2.0.0", 61 | "json-schema-traverse": "^0.4.1", 62 | "uri-js": "^4.2.2" 63 | } 64 | }, 65 | "ansi-regex": { 66 | "version": "5.0.1", 67 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 68 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 69 | "dev": true 70 | }, 71 | "ansi-styles": { 72 | "version": "4.3.0", 73 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 74 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 75 | "dev": true, 76 | "requires": { 77 | "color-convert": "^2.0.1" 78 | } 79 | }, 80 | "argparse": { 81 | "version": "2.0.1", 82 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 83 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 84 | "dev": true 85 | }, 86 | "balanced-match": { 87 | "version": "1.0.2", 88 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 89 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 90 | "dev": true 91 | }, 92 | "brace-expansion": { 93 | "version": "1.1.11", 94 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 95 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 96 | "dev": true, 97 | "requires": { 98 | "balanced-match": "^1.0.0", 99 | "concat-map": "0.0.1" 100 | } 101 | }, 102 | "callsites": { 103 | "version": "3.1.0", 104 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 105 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 106 | "dev": true 107 | }, 108 | "chalk": { 109 | "version": "4.1.2", 110 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 111 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 112 | "dev": true, 113 | "requires": { 114 | "ansi-styles": "^4.1.0", 115 | "supports-color": "^7.1.0" 116 | } 117 | }, 118 | "color-convert": { 119 | "version": "2.0.1", 120 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 121 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 122 | "dev": true, 123 | "requires": { 124 | "color-name": "~1.1.4" 125 | } 126 | }, 127 | "color-name": { 128 | "version": "1.1.4", 129 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 130 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 131 | "dev": true 132 | }, 133 | "concat-map": { 134 | "version": "0.0.1", 135 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 136 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 137 | "dev": true 138 | }, 139 | "cross-spawn": { 140 | "version": "7.0.3", 141 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 142 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 143 | "dev": true, 144 | "requires": { 145 | "path-key": "^3.1.0", 146 | "shebang-command": "^2.0.0", 147 | "which": "^2.0.1" 148 | } 149 | }, 150 | "debug": { 151 | "version": "4.3.4", 152 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 153 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 154 | "dev": true, 155 | "requires": { 156 | "ms": "2.1.2" 157 | } 158 | }, 159 | "deep-is": { 160 | "version": "0.1.4", 161 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 162 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 163 | "dev": true 164 | }, 165 | "doctrine": { 166 | "version": "3.0.0", 167 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 168 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 169 | "dev": true, 170 | "requires": { 171 | "esutils": "^2.0.2" 172 | } 173 | }, 174 | "escape-string-regexp": { 175 | "version": "4.0.0", 176 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 177 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 178 | "dev": true 179 | }, 180 | "eslint": { 181 | "version": "8.13.0", 182 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", 183 | "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", 184 | "dev": true, 185 | "requires": { 186 | "@eslint/eslintrc": "^1.2.1", 187 | "@humanwhocodes/config-array": "^0.9.2", 188 | "ajv": "^6.10.0", 189 | "chalk": "^4.0.0", 190 | "cross-spawn": "^7.0.2", 191 | "debug": "^4.3.2", 192 | "doctrine": "^3.0.0", 193 | "escape-string-regexp": "^4.0.0", 194 | "eslint-scope": "^7.1.1", 195 | "eslint-utils": "^3.0.0", 196 | "eslint-visitor-keys": "^3.3.0", 197 | "espree": "^9.3.1", 198 | "esquery": "^1.4.0", 199 | "esutils": "^2.0.2", 200 | "fast-deep-equal": "^3.1.3", 201 | "file-entry-cache": "^6.0.1", 202 | "functional-red-black-tree": "^1.0.1", 203 | "glob-parent": "^6.0.1", 204 | "globals": "^13.6.0", 205 | "ignore": "^5.2.0", 206 | "import-fresh": "^3.0.0", 207 | "imurmurhash": "^0.1.4", 208 | "is-glob": "^4.0.0", 209 | "js-yaml": "^4.1.0", 210 | "json-stable-stringify-without-jsonify": "^1.0.1", 211 | "levn": "^0.4.1", 212 | "lodash.merge": "^4.6.2", 213 | "minimatch": "^3.0.4", 214 | "natural-compare": "^1.4.0", 215 | "optionator": "^0.9.1", 216 | "regexpp": "^3.2.0", 217 | "strip-ansi": "^6.0.1", 218 | "strip-json-comments": "^3.1.0", 219 | "text-table": "^0.2.0", 220 | "v8-compile-cache": "^2.0.3" 221 | } 222 | }, 223 | "eslint-config-braintree": { 224 | "version": "5.0.1", 225 | "resolved": "https://registry.npmjs.org/eslint-config-braintree/-/eslint-config-braintree-5.0.1.tgz", 226 | "integrity": "sha512-Ru0pJTZ5FmdqQ/Ne+NPGzLkP9cDrswh5TMbQk5evRJ8iqRKsX4cZT4DA9SQvoIXL0nCUPUchztJnTjG5TqP+Gg==", 227 | "dev": true 228 | }, 229 | "eslint-scope": { 230 | "version": "7.1.1", 231 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", 232 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", 233 | "dev": true, 234 | "requires": { 235 | "esrecurse": "^4.3.0", 236 | "estraverse": "^5.2.0" 237 | } 238 | }, 239 | "eslint-utils": { 240 | "version": "3.0.0", 241 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 242 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 243 | "dev": true, 244 | "requires": { 245 | "eslint-visitor-keys": "^2.0.0" 246 | }, 247 | "dependencies": { 248 | "eslint-visitor-keys": { 249 | "version": "2.1.0", 250 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 251 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 252 | "dev": true 253 | } 254 | } 255 | }, 256 | "eslint-visitor-keys": { 257 | "version": "3.3.0", 258 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 259 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", 260 | "dev": true 261 | }, 262 | "espree": { 263 | "version": "9.3.1", 264 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", 265 | "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", 266 | "dev": true, 267 | "requires": { 268 | "acorn": "^8.7.0", 269 | "acorn-jsx": "^5.3.1", 270 | "eslint-visitor-keys": "^3.3.0" 271 | } 272 | }, 273 | "esquery": { 274 | "version": "1.4.0", 275 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 276 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 277 | "dev": true, 278 | "requires": { 279 | "estraverse": "^5.1.0" 280 | } 281 | }, 282 | "esrecurse": { 283 | "version": "4.3.0", 284 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 285 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 286 | "dev": true, 287 | "requires": { 288 | "estraverse": "^5.2.0" 289 | } 290 | }, 291 | "estraverse": { 292 | "version": "5.3.0", 293 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 294 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 295 | "dev": true 296 | }, 297 | "esutils": { 298 | "version": "2.0.3", 299 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 300 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 301 | "dev": true 302 | }, 303 | "fast-deep-equal": { 304 | "version": "3.1.3", 305 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 306 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 307 | "dev": true 308 | }, 309 | "fast-json-stable-stringify": { 310 | "version": "2.1.0", 311 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 312 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 313 | "dev": true 314 | }, 315 | "fast-levenshtein": { 316 | "version": "2.0.6", 317 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 318 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 319 | "dev": true 320 | }, 321 | "file-entry-cache": { 322 | "version": "6.0.1", 323 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 324 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 325 | "dev": true, 326 | "requires": { 327 | "flat-cache": "^3.0.4" 328 | } 329 | }, 330 | "flat-cache": { 331 | "version": "3.0.4", 332 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 333 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 334 | "dev": true, 335 | "requires": { 336 | "flatted": "^3.1.0", 337 | "rimraf": "^3.0.2" 338 | } 339 | }, 340 | "flatted": { 341 | "version": "3.2.5", 342 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", 343 | "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", 344 | "dev": true 345 | }, 346 | "fs.realpath": { 347 | "version": "1.0.0", 348 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 349 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 350 | "dev": true 351 | }, 352 | "functional-red-black-tree": { 353 | "version": "1.0.1", 354 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 355 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 356 | "dev": true 357 | }, 358 | "glob": { 359 | "version": "7.2.0", 360 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", 361 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", 362 | "dev": true, 363 | "requires": { 364 | "fs.realpath": "^1.0.0", 365 | "inflight": "^1.0.4", 366 | "inherits": "2", 367 | "minimatch": "^3.0.4", 368 | "once": "^1.3.0", 369 | "path-is-absolute": "^1.0.0" 370 | } 371 | }, 372 | "glob-parent": { 373 | "version": "6.0.2", 374 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 375 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 376 | "dev": true, 377 | "requires": { 378 | "is-glob": "^4.0.3" 379 | } 380 | }, 381 | "globals": { 382 | "version": "13.13.0", 383 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", 384 | "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", 385 | "dev": true, 386 | "requires": { 387 | "type-fest": "^0.20.2" 388 | } 389 | }, 390 | "has-flag": { 391 | "version": "4.0.0", 392 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 393 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 394 | "dev": true 395 | }, 396 | "ignore": { 397 | "version": "5.2.0", 398 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", 399 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", 400 | "dev": true 401 | }, 402 | "import-fresh": { 403 | "version": "3.3.0", 404 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 405 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 406 | "dev": true, 407 | "requires": { 408 | "parent-module": "^1.0.0", 409 | "resolve-from": "^4.0.0" 410 | } 411 | }, 412 | "imurmurhash": { 413 | "version": "0.1.4", 414 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 415 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 416 | "dev": true 417 | }, 418 | "inflight": { 419 | "version": "1.0.6", 420 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 421 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 422 | "dev": true, 423 | "requires": { 424 | "once": "^1.3.0", 425 | "wrappy": "1" 426 | } 427 | }, 428 | "inherits": { 429 | "version": "2.0.4", 430 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 431 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 432 | "dev": true 433 | }, 434 | "is-extglob": { 435 | "version": "2.1.1", 436 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 437 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 438 | "dev": true 439 | }, 440 | "is-glob": { 441 | "version": "4.0.3", 442 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 443 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 444 | "dev": true, 445 | "requires": { 446 | "is-extglob": "^2.1.1" 447 | } 448 | }, 449 | "isexe": { 450 | "version": "2.0.0", 451 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 452 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 453 | "dev": true 454 | }, 455 | "js-yaml": { 456 | "version": "4.1.0", 457 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 458 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 459 | "dev": true, 460 | "requires": { 461 | "argparse": "^2.0.1" 462 | } 463 | }, 464 | "json-schema-traverse": { 465 | "version": "0.4.1", 466 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 467 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 468 | "dev": true 469 | }, 470 | "json-stable-stringify-without-jsonify": { 471 | "version": "1.0.1", 472 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 473 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 474 | "dev": true 475 | }, 476 | "levn": { 477 | "version": "0.4.1", 478 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 479 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 480 | "dev": true, 481 | "requires": { 482 | "prelude-ls": "^1.2.1", 483 | "type-check": "~0.4.0" 484 | } 485 | }, 486 | "lodash.merge": { 487 | "version": "4.6.2", 488 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 489 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 490 | "dev": true 491 | }, 492 | "minimatch": { 493 | "version": "3.1.2", 494 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 495 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 496 | "dev": true, 497 | "requires": { 498 | "brace-expansion": "^1.1.7" 499 | } 500 | }, 501 | "ms": { 502 | "version": "2.1.2", 503 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 504 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 505 | "dev": true 506 | }, 507 | "natural-compare": { 508 | "version": "1.4.0", 509 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 510 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 511 | "dev": true 512 | }, 513 | "once": { 514 | "version": "1.4.0", 515 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 516 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 517 | "dev": true, 518 | "requires": { 519 | "wrappy": "1" 520 | } 521 | }, 522 | "optionator": { 523 | "version": "0.9.1", 524 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 525 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 526 | "dev": true, 527 | "requires": { 528 | "deep-is": "^0.1.3", 529 | "fast-levenshtein": "^2.0.6", 530 | "levn": "^0.4.1", 531 | "prelude-ls": "^1.2.1", 532 | "type-check": "^0.4.0", 533 | "word-wrap": "^1.2.3" 534 | } 535 | }, 536 | "parent-module": { 537 | "version": "1.0.1", 538 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 539 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 540 | "dev": true, 541 | "requires": { 542 | "callsites": "^3.0.0" 543 | } 544 | }, 545 | "path-is-absolute": { 546 | "version": "1.0.1", 547 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 548 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 549 | "dev": true 550 | }, 551 | "path-key": { 552 | "version": "3.1.1", 553 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 554 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 555 | "dev": true 556 | }, 557 | "prelude-ls": { 558 | "version": "1.2.1", 559 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 560 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 561 | "dev": true 562 | }, 563 | "punycode": { 564 | "version": "2.1.1", 565 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 566 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 567 | "dev": true 568 | }, 569 | "regexpp": { 570 | "version": "3.2.0", 571 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 572 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 573 | "dev": true 574 | }, 575 | "resolve-from": { 576 | "version": "4.0.0", 577 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 578 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 579 | "dev": true 580 | }, 581 | "rimraf": { 582 | "version": "3.0.2", 583 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 584 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 585 | "dev": true, 586 | "requires": { 587 | "glob": "^7.1.3" 588 | } 589 | }, 590 | "shebang-command": { 591 | "version": "2.0.0", 592 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 593 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 594 | "dev": true, 595 | "requires": { 596 | "shebang-regex": "^3.0.0" 597 | } 598 | }, 599 | "shebang-regex": { 600 | "version": "3.0.0", 601 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 602 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 603 | "dev": true 604 | }, 605 | "strip-ansi": { 606 | "version": "6.0.1", 607 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 608 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 609 | "dev": true, 610 | "requires": { 611 | "ansi-regex": "^5.0.1" 612 | } 613 | }, 614 | "strip-json-comments": { 615 | "version": "3.1.1", 616 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 617 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 618 | "dev": true 619 | }, 620 | "supports-color": { 621 | "version": "7.2.0", 622 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 623 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 624 | "dev": true, 625 | "requires": { 626 | "has-flag": "^4.0.0" 627 | } 628 | }, 629 | "taffydb": { 630 | "version": "2.7.3", 631 | "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.7.3.tgz", 632 | "integrity": "sha1-KtNxaWKUmPylvIQkMJbTzeDsOjQ=", 633 | "dev": true 634 | }, 635 | "text-table": { 636 | "version": "0.2.0", 637 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 638 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 639 | "dev": true 640 | }, 641 | "type-check": { 642 | "version": "0.4.0", 643 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 644 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 645 | "dev": true, 646 | "requires": { 647 | "prelude-ls": "^1.2.1" 648 | } 649 | }, 650 | "type-fest": { 651 | "version": "0.20.2", 652 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 653 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 654 | "dev": true 655 | }, 656 | "uri-js": { 657 | "version": "4.4.1", 658 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 659 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 660 | "dev": true, 661 | "requires": { 662 | "punycode": "^2.1.0" 663 | } 664 | }, 665 | "v8-compile-cache": { 666 | "version": "2.3.0", 667 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", 668 | "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", 669 | "dev": true 670 | }, 671 | "which": { 672 | "version": "2.0.2", 673 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 674 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 675 | "dev": true, 676 | "requires": { 677 | "isexe": "^2.0.0" 678 | } 679 | }, 680 | "word-wrap": { 681 | "version": "1.2.4", 682 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", 683 | "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", 684 | "dev": true 685 | }, 686 | "wrappy": { 687 | "version": "1.0.2", 688 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 689 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 690 | "dev": true 691 | } 692 | } 693 | } 694 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jsdoc-template", 3 | "version": "3.4.0", 4 | "description": "Braintree JSDoc 3 Template", 5 | "main": "publish.js", 6 | "files": [ 7 | "static", 8 | "tmpl", 9 | "publish.js", 10 | "CHANGELOG.md", 11 | "LICENSE", 12 | "README.md" 13 | ], 14 | "scripts": { 15 | "lint": "eslint .", 16 | "test": "npm run lint", 17 | "preversion": "./scripts/preversion" 18 | }, 19 | "repository": { 20 | "type": "git", 21 | "url": "https://github.com/braintree/jsdoc-template" 22 | }, 23 | "author": "Braintreeps ", 24 | "licenses": [ 25 | { 26 | "type": "Apache-2.0", 27 | "url": "http://www.apache.org/licenses/LICENSE-2.0" 28 | } 29 | ], 30 | "bugs": { 31 | "url": "https://github.com/braintree/jsdoc-template" 32 | }, 33 | "homepage": "https://github.com/braintree/jsdoc-template", 34 | "devDependencies": { 35 | "eslint": "^8.13.0", 36 | "eslint-config-braintree": "^5.0.1", 37 | "taffydb": "^2.7.3" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /publish.js: -------------------------------------------------------------------------------- 1 | /* global env: true */ 2 | /* eslint-disable vars-on-top, valid-jsdoc */ 3 | 'use strict'; 4 | 5 | var doop = require('jsdoc/util/doop'); 6 | var fs = require('jsdoc/fs'); 7 | var helper = require('jsdoc/util/templateHelper'); 8 | var logger = require('jsdoc/util/logger'); 9 | var path = require('jsdoc/path'); 10 | var taffy = require('taffydb').taffy; 11 | var template = require('jsdoc/template'); 12 | var util = require('util'); 13 | 14 | var htmlsafe = helper.htmlsafe; 15 | var linkto = helper.linkto; 16 | var resolveAuthorLinks = helper.resolveAuthorLinks; 17 | var hasOwnProp = Object.prototype.hasOwnProperty; 18 | 19 | var data, view; 20 | 21 | var outdir = path.normalize(env.opts.destination); 22 | 23 | function find(spec) { 24 | return helper.find(data, spec); 25 | } 26 | 27 | function tutoriallink(tutorial) { 28 | return helper.toTutorial(tutorial, null, {tag: 'em', classname: 'disabled', prefix: 'Tutorial: '}); 29 | } 30 | 31 | function getAncestorLinks(doclet) { 32 | return helper.getAncestorLinks(data, doclet); 33 | } 34 | 35 | function hashToLink(doclet, hash) { 36 | if (!/^(#.+)/.test(hash)) { return hash; } 37 | 38 | var url = helper.createLink(doclet); 39 | 40 | url = url.replace(/(#.+|$)/, hash); 41 | 42 | return '' + hash + ''; 43 | } 44 | 45 | function needsSignature(doclet) { 46 | var i, l; 47 | var needsSig = false; 48 | 49 | // function and class definitions always get a signature 50 | if (doclet.kind === 'function' || doclet.kind === 'class') { 51 | needsSig = true; 52 | } else if (doclet.kind === 'typedef' && doclet.type && doclet.type.names && 53 | doclet.type.names.length) { // typedefs that contain functions get a signature, too 54 | for (i = 0, l = doclet.type.names.length; i < l; i++) { 55 | if (doclet.type.names[i].toLowerCase() === 'function') { 56 | needsSig = true; 57 | break; 58 | } 59 | } 60 | } 61 | 62 | return needsSig; 63 | } 64 | 65 | function getSignatureAttributes(item) { 66 | var attributes = []; 67 | 68 | if (item.optional) { 69 | attributes.push('opt'); 70 | } 71 | 72 | if (item.nullable === true) { 73 | attributes.push('nullable'); 74 | } else if (item.nullable === false) { 75 | attributes.push('non-null'); 76 | } 77 | 78 | return attributes; 79 | } 80 | 81 | function updateItemName(item) { 82 | var attributes = getSignatureAttributes(item); 83 | var itemName = item.name || ''; 84 | 85 | if (item.variable) { 86 | itemName = '…' + itemName; 87 | } 88 | 89 | if (attributes && attributes.length) { 90 | itemName = util.format('%s%s', itemName, 91 | attributes.join(', ')); 92 | } 93 | 94 | return itemName; 95 | } 96 | 97 | function addParamAttributes(params) { 98 | return params.filter(function (param) { 99 | return param.name && param.name.indexOf('.') === -1; 100 | }).map(updateItemName); 101 | } 102 | 103 | function buildItemTypeStrings(item) { 104 | var types = []; 105 | 106 | if (item && item.type && item.type.names) { 107 | item.type.names.forEach(function (name) { 108 | types.push(linkto(name, htmlsafe(name))); 109 | }); 110 | } 111 | 112 | return types; 113 | } 114 | 115 | function buildAttribsString(attribs) { 116 | var attribsString = ''; 117 | 118 | if (attribs && attribs.length) { 119 | attribsString = htmlsafe(util.format('(%s) ', attribs.join(', '))); 120 | } 121 | 122 | return attribsString; 123 | } 124 | 125 | function addNonParamAttributes(items) { 126 | var types = []; 127 | 128 | items.forEach(function (item) { 129 | types = types.concat(buildItemTypeStrings(item)); 130 | }); 131 | 132 | return types; 133 | } 134 | 135 | function addSignatureParams(f) { 136 | var params = f.params ? addParamAttributes(f.params) : []; 137 | 138 | f.signature = util.format('%s(%s)', f.signature || '', params.join(', ')); 139 | } 140 | 141 | function addSignatureReturns(f) { 142 | var attribs = []; 143 | var attribsString = ''; 144 | var returnTypes = []; 145 | var returnTypesString = ''; 146 | 147 | // jam all the return-type attributes into an array. this could create odd results (for example, 148 | // if there are both nullable and non-nullable return types), but let's assume that most people 149 | // who use multiple @return tags aren't using Closure Compiler type annotations, and vice-versa. 150 | if (f.returns) { 151 | f.returns.forEach(function (item) { 152 | helper.getAttribs(item).forEach(function (attrib) { 153 | if (attribs.indexOf(attrib) === -1) { 154 | attribs.push(attrib); 155 | } 156 | }); 157 | }); 158 | 159 | attribsString = buildAttribsString(attribs); 160 | } 161 | 162 | if (f.returns) { 163 | returnTypes = addNonParamAttributes(f.returns); 164 | } 165 | if (returnTypes.length) { 166 | returnTypesString = util.format(' → %s{%s}', attribsString, returnTypes.join('|')); 167 | } 168 | 169 | f.signature = '' + (f.signature || '') + '' + 170 | '' + returnTypesString + ''; 171 | } 172 | 173 | function addSignatureTypes(f) { 174 | var types = f.type ? buildItemTypeStrings(f) : []; 175 | 176 | f.signature = (f.signature || '') + '' + 177 | (types.length ? ' :' + types.join('|') : '') + ''; 178 | } 179 | 180 | function addAttribs(f) { 181 | var attribs = helper.getAttribs(f); 182 | var attribsString = buildAttribsString(attribs); 183 | 184 | f.attribs = util.format('%s', attribsString); 185 | } 186 | 187 | function shortenPaths(files, commonPrefix) { 188 | Object.keys(files).forEach(function (file) { 189 | files[file].shortened = files[file].resolved.replace(commonPrefix, '') 190 | // always use forward slashes 191 | .replace(/\\/g, '/'); 192 | }); 193 | 194 | return files; 195 | } 196 | 197 | function getPathFromDoclet(doclet) { 198 | if (!doclet.meta) { 199 | return null; 200 | } 201 | 202 | return doclet.meta.path && doclet.meta.path !== 'null' ? 203 | path.join(doclet.meta.path, doclet.meta.filename) : 204 | doclet.meta.filename; 205 | } 206 | 207 | function generate(type, title, docs, filename, resolveLinks) { 208 | resolveLinks = resolveLinks !== false; 209 | 210 | var docData = { 211 | type: type, 212 | title: title, 213 | docs: docs 214 | }; 215 | 216 | var outpath = path.join(outdir, filename); 217 | var html = view.render('container.tmpl', docData); 218 | 219 | if (resolveLinks) { 220 | html = helper.resolveLinks(html); // turn {@link foo} into foo 221 | } 222 | 223 | if (typeof env.conf.templates.postProcess === 'function') { 224 | html = env.conf.templates.postProcess(html); 225 | } 226 | 227 | fs.writeFileSync(outpath, html, 'utf8'); 228 | } 229 | 230 | function generateSourceFiles(sourceFiles, encoding) { 231 | encoding = encoding || 'utf8'; 232 | Object.keys(sourceFiles).forEach(function (file) { 233 | var source; 234 | // links are keyed to the shortened path in each doclet's `meta.shortpath` property 235 | var sourceOutfile = helper.getUniqueFilename(sourceFiles[file].shortened); 236 | 237 | helper.registerLink(sourceFiles[file].shortened, sourceOutfile); 238 | 239 | try { 240 | source = { 241 | kind: 'source', 242 | code: helper.htmlsafe(fs.readFileSync(sourceFiles[file].resolved, encoding)) 243 | }; 244 | } catch (e) { 245 | logger.error('Error while generating source file %s: %s', file, e.message); 246 | } 247 | 248 | generate('Source', sourceFiles[file].shortened, [source], sourceOutfile, false); 249 | }); 250 | } 251 | 252 | /** 253 | * Look for classes or functions with the same name as modules (which indicates that the module 254 | * exports only that class or function), then attach the classes or functions to the `module` 255 | * property of the appropriate module doclets. The name of each class or function is also updated 256 | * for display purposes. This function mutates the original arrays. 257 | * 258 | * @private 259 | * @param {Array.} doclets - The array of classes and functions to 260 | * check. 261 | * @param {Array.} modules - The array of module doclets to search. 262 | */ 263 | function attachModuleSymbols(doclets, modules) { 264 | var symbols = {}; 265 | 266 | // build a lookup table 267 | doclets.forEach(function (symbol) { 268 | symbols[symbol.longname] = symbols[symbol.longname] || []; 269 | symbols[symbol.longname].push(symbol); 270 | }); 271 | 272 | return modules.map(function (module) { 273 | if (symbols[module.longname]) { 274 | module.modules = symbols[module.longname] 275 | // Only show symbols that have a description. Make an exception for classes, because 276 | // we want to show the constructor-signature heading no matter what. 277 | .filter(function (symbol) { 278 | return symbol.description || symbol.kind === 'class'; 279 | }) 280 | .map(function (symbol) { 281 | symbol = doop(symbol); 282 | 283 | if (symbol.kind === 'class' || symbol.kind === 'function') { 284 | symbol.name = symbol.name.replace('module:', '(require("') + '"))'; 285 | } 286 | 287 | return symbol; 288 | }); 289 | } 290 | }); 291 | } 292 | 293 | function buildMemberNav(items, itemHeading, itemsSeen, linktoFn) { 294 | var nav = ''; 295 | var itemsNav = ''; 296 | 297 | if (items && items.length) { 298 | items.forEach(function (item) { 299 | var methods = find({kind: 'function', memberof: item.longname}); 300 | 301 | if (!hasOwnProp.call(item, 'longname')) { 302 | itemsNav += '
  • ' + linktoFn('', item.name); 303 | itemsNav += '
  • '; 304 | } else if (!hasOwnProp.call(itemsSeen, item.longname)) { 305 | // replace '/' in url to match ID in some section 306 | itemsNav += '
  • ' + linktoFn(item.longname, item.name.replace(/^module:/, '')); 307 | if (methods.length) { 308 | itemsNav += "
      "; 309 | 310 | methods.forEach(function (method) { 311 | itemsNav += '
    • '; 312 | itemsNav += linkto(method.longname, method.name); 313 | itemsNav += '
    • '; 314 | }); 315 | 316 | itemsNav += '
    '; 317 | } 318 | itemsNav += '
  • '; 319 | itemsSeen[item.longname] = true; 320 | } 321 | }); 322 | 323 | if (itemsNav !== '') { 324 | nav += '

    ' + itemHeading + '

      ' + itemsNav + '
    '; 325 | } 326 | } 327 | 328 | return nav; 329 | } 330 | 331 | // TODO: as needed, comment back in later 332 | // function linktoTutorial(longName, name) { 333 | // return tutoriallink(name); 334 | // } 335 | 336 | // function linktoExternal(longName, name) { 337 | // return linkto(longName, name.replace(/(^"|"$)/g, '')); 338 | // } 339 | 340 | /** 341 | * Create the navigation sidebar. 342 | * @param {object} members The members that will be used to create the sidebar. 343 | * @param {array} members.classes 344 | * @param {array} members.externals 345 | * @param {array} members.globals 346 | * @param {array} members.mixins 347 | * @param {array} members.modules 348 | * @param {array} members.namespaces 349 | * @param {array} members.tutorials 350 | * @param {array} members.events 351 | * @param {array} members.interfaces 352 | * @return {string} The HTML for the navigation sidebar. 353 | */ 354 | function buildNav(members) { 355 | var nav = ''; 356 | var globalNav = ''; 357 | var seen = {}; 358 | // var seenTutorials = {}; 359 | 360 | nav += buildMemberNav(members.classes, 'Classes', seen, linkto); 361 | nav += buildMemberNav(members.modules, 'Modules', {}, linkto); 362 | // TODO: as needed, comment back in later 363 | // nav += buildMemberNav(members.externals, 'Externals', seen, linktoExternal); 364 | // nav += buildMemberNav(members.events, 'Events', seen, linkto); 365 | // nav += buildMemberNav(members.namespaces, 'Namespaces', seen, linkto); 366 | // nav += buildMemberNav(members.mixins, 'Mixins', seen, linkto); 367 | // nav += buildMemberNav(members.tutorials, 'Tutorials', seenTutorials, linktoTutorial); 368 | // nav += buildMemberNav(members.interfaces, 'Interfaces', seen, linkto); 369 | 370 | if (members.globals.length) { 371 | members.globals.forEach(function (g) { 372 | if (g.kind !== 'typedef' && !hasOwnProp.call(seen, g.longname)) { 373 | globalNav += '
  • ' + linkto(g.longname, g.name) + '
  • '; 374 | } 375 | seen[g.longname] = true; 376 | }); 377 | 378 | if (!globalNav) { 379 | // turn the heading into a link so you can actually get to the global page 380 | nav += ''; 381 | } else { 382 | nav += '
      ' + globalNav + '
    '; 383 | } 384 | } 385 | 386 | return nav; 387 | } 388 | 389 | /** 390 | @param {TAFFY} taffyData See . 391 | @param {object} opts 392 | @param {Tutorial} tutorials 393 | */ 394 | exports.publish = function (taffyData, opts, tutorials) { 395 | var conf, templatePath, indexUrl, globalUrl, sourceFiles, sourceFilePaths, staticFilePaths, staticFileFilter, staticFileScanner; 396 | 397 | data = taffyData; 398 | 399 | conf = env.conf.templates || {}; 400 | conf.default = conf.default || {}; 401 | 402 | templatePath = path.normalize(opts.template); 403 | 404 | view = new template.Template(path.join(templatePath, 'tmpl')); 405 | 406 | // claim some special filenames in advance, so the All-Powerful Overseer of Filename Uniqueness 407 | // doesn't try to hand them out later 408 | indexUrl = helper.getUniqueFilename('index'); 409 | 410 | // don't call registerLink() on this one! 'index' is also a valid longname 411 | globalUrl = helper.getUniqueFilename('global'); 412 | 413 | helper.registerLink('global', globalUrl); 414 | 415 | // set up templating 416 | view.layout = conf.default.layoutFile ? 417 | path.getResourcePath(path.dirname(conf.default.layoutFile), 418 | path.basename(conf.default.layoutFile)) : 419 | 'layout.tmpl'; 420 | 421 | // set up tutorials for helper 422 | helper.setTutorials(tutorials); 423 | 424 | data = helper.prune(data); 425 | if (!conf.disableSort) { 426 | data.sort('longname, version, since'); 427 | } 428 | helper.addEventListeners(data); 429 | 430 | sourceFiles = {}; 431 | sourceFilePaths = []; 432 | 433 | data().each(function (doclet) { 434 | doclet.attribs = ''; 435 | 436 | if (doclet.examples) { 437 | doclet.examples = doclet.examples.map(function (example) { 438 | var caption, code; 439 | 440 | if (example.match(/^\s*([\s\S]+?)<\/caption>(\s*[\n\r])([\s\S]+)$/i)) { 441 | caption = RegExp.$1; 442 | code = RegExp.$3; 443 | } 444 | 445 | return { 446 | caption: caption || '', 447 | code: code || example 448 | }; 449 | }); 450 | } 451 | if (doclet.see) { 452 | doclet.see.forEach(function (seeItem, i) { 453 | doclet.see[i] = hashToLink(doclet, seeItem); 454 | }); 455 | } 456 | 457 | // build a list of source files 458 | var sourcePath; 459 | 460 | if (doclet.meta) { 461 | sourcePath = getPathFromDoclet(doclet); 462 | sourceFiles[sourcePath] = { 463 | resolved: sourcePath, 464 | shortened: null 465 | }; 466 | if (sourceFilePaths.indexOf(sourcePath) === -1) { 467 | sourceFilePaths.push(sourcePath); 468 | } 469 | } 470 | }); 471 | 472 | // update outdir if necessary, then create outdir 473 | var packageInfo = (find({kind: 'package'}) || [])[0]; 474 | 475 | if (packageInfo && packageInfo.name) { 476 | outdir = path.join(outdir, packageInfo.name, packageInfo.version || ''); 477 | } 478 | fs.mkPath(outdir); 479 | 480 | // copy the template's static files to outdir 481 | var fromDir = path.join(templatePath, 'static'); 482 | var staticFiles = fs.ls(fromDir, 3); 483 | 484 | staticFiles.forEach(function (fileName) { 485 | var toDir = fs.toDir(fileName.replace(fromDir, outdir)); 486 | 487 | fs.mkPath(toDir); 488 | fs.copyFileSync(fileName, toDir); 489 | }); 490 | 491 | // copy user-specified static files to outdir 492 | if (conf.default.staticFiles) { 493 | // The canonical property name is `include`. We accept `paths` for backwards compatibility 494 | // with a bug in JSDoc 3.2.x. 495 | staticFilePaths = conf.default.staticFiles.include || 496 | conf.default.staticFiles.paths || 497 | []; 498 | staticFileFilter = new (require('jsdoc/src/filter')).Filter(conf.default.staticFiles); 499 | staticFileScanner = new (require('jsdoc/src/scanner')).Scanner(); 500 | 501 | staticFilePaths.forEach(function (filePath) { 502 | var extraStaticFiles = staticFileScanner.scan([filePath], 10, staticFileFilter); 503 | 504 | extraStaticFiles.forEach(function (fileName) { 505 | var sourcePath = fs.toDir(filePath); 506 | var toDir = fs.toDir(fileName.replace(sourcePath, outdir)); 507 | 508 | fs.mkPath(toDir); 509 | fs.copyFileSync(fileName, toDir); 510 | }); 511 | }); 512 | } 513 | 514 | if (sourceFilePaths.length) { 515 | sourceFiles = shortenPaths(sourceFiles, path.commonPrefix(sourceFilePaths)); 516 | } 517 | data().each(function (doclet) { 518 | var docletPath; 519 | var url = helper.createLink(doclet); 520 | 521 | helper.registerLink(doclet.longname, url); 522 | 523 | // add a shortened version of the full path 524 | if (doclet.meta) { 525 | docletPath = getPathFromDoclet(doclet); 526 | docletPath = sourceFiles[docletPath].shortened; 527 | if (docletPath) { 528 | doclet.meta.shortpath = docletPath; 529 | } 530 | } 531 | }); 532 | 533 | data().each(function (doclet) { 534 | var url = helper.longnameToUrl[doclet.longname]; 535 | 536 | if (url.indexOf('#') > -1) { 537 | doclet.id = helper.longnameToUrl[doclet.longname].split(/#/).pop(); 538 | } else { 539 | doclet.id = doclet.name; 540 | } 541 | 542 | if (needsSignature(doclet)) { 543 | addSignatureParams(doclet); 544 | addSignatureReturns(doclet); 545 | addAttribs(doclet); 546 | } 547 | }); 548 | 549 | // do this after the urls have all been generated 550 | data().each(function (doclet) { 551 | doclet.ancestors = getAncestorLinks(doclet); 552 | 553 | if ((doclet.kind === 'member' || doclet.kind === 'event' || doclet.kind === 'typedef') && doclet.signature == null) { 554 | addSignatureTypes(doclet); 555 | addAttribs(doclet); 556 | } 557 | 558 | if (doclet.kind === 'constant') { 559 | addSignatureTypes(doclet); 560 | addAttribs(doclet); 561 | doclet.kind = 'member'; 562 | } 563 | }); 564 | 565 | var members = helper.getMembers(data); 566 | 567 | members.tutorials = tutorials.children; 568 | 569 | // output pretty-printed source files by default 570 | var outputSourceFiles = conf.default && conf.default.outputSourceFiles !== false; 571 | 572 | // add template helpers 573 | view.find = find; 574 | view.linkto = linkto; 575 | view.resolveAuthorLinks = resolveAuthorLinks; 576 | view.tutoriallink = tutoriallink; 577 | view.htmlsafe = htmlsafe; 578 | view.outputSourceFiles = outputSourceFiles; 579 | 580 | // once for all 581 | view.nav = buildNav(members); 582 | attachModuleSymbols(find({longname: {left: 'module:'}}), members.modules); 583 | 584 | // generate the pretty-printed source files first so other pages can link to them 585 | if (outputSourceFiles) { 586 | generateSourceFiles(sourceFiles, opts.encoding); 587 | } 588 | 589 | if (members.globals.length) { 590 | generate('', 'Global', [{kind: 'globalobj'}], globalUrl); 591 | } 592 | 593 | // index page displays information from package.json and lists files 594 | var files = find({kind: 'file'}); 595 | var packages = find({kind: 'package'}); 596 | 597 | generate('', 'Home', 598 | packages.concat( 599 | [{kind: 'mainpage', readme: opts.readme, longname: opts.mainpagetitle ? opts.mainpagetitle : 'Main Page'}] 600 | ).concat(files), 601 | indexUrl); 602 | 603 | // set up the lists that we'll use to generate pages 604 | var classes = taffy(members.classes); 605 | var modules = taffy(members.modules); 606 | var namespaces = taffy(members.namespaces); 607 | var mixins = taffy(members.mixins); 608 | var externals = taffy(members.externals); 609 | var interfaces = taffy(members.interfaces); 610 | 611 | Object.keys(helper.longnameToUrl).forEach(function (longname) { 612 | var myModules = helper.find(modules, {longname: longname}); 613 | 614 | if (myModules.length) { 615 | generate('Module', myModules[0].name, myModules, helper.longnameToUrl[longname]); 616 | } 617 | 618 | var myClasses = helper.find(classes, {longname: longname}); 619 | 620 | if (myClasses.length) { 621 | generate('Class', myClasses[0].name, myClasses, helper.longnameToUrl[longname]); 622 | } 623 | 624 | var myNamespaces = helper.find(namespaces, {longname: longname}); 625 | 626 | if (myNamespaces.length) { 627 | generate('Namespace', myNamespaces[0].name, myNamespaces, helper.longnameToUrl[longname]); 628 | } 629 | 630 | var myMixins = helper.find(mixins, {longname: longname}); 631 | 632 | if (myMixins.length) { 633 | generate('Mixin', myMixins[0].name, myMixins, helper.longnameToUrl[longname]); 634 | } 635 | 636 | var myExternals = helper.find(externals, {longname: longname}); 637 | 638 | if (myExternals.length) { 639 | generate('External', myExternals[0].name, myExternals, helper.longnameToUrl[longname]); 640 | } 641 | 642 | var myInterfaces = helper.find(interfaces, {longname: longname}); 643 | 644 | if (myInterfaces.length) { 645 | generate('Interface', myInterfaces[0].name, myInterfaces, helper.longnameToUrl[longname]); 646 | } 647 | }); 648 | 649 | // TODO: move the tutorial functions to templateHelper.js 650 | function generateTutorial(title, tutorial, filename) { 651 | var tutorialData = { 652 | title: title, 653 | header: tutorial.title, 654 | content: tutorial.parse(), 655 | children: tutorial.children 656 | }; 657 | 658 | var tutorialPath = path.join(outdir, filename); 659 | var html = view.render('tutorial.tmpl', tutorialData); 660 | 661 | // yes, you can use {@link} in tutorials too! 662 | html = helper.resolveLinks(html); // turn {@link foo} into foo 663 | fs.writeFileSync(tutorialPath, html, 'utf8'); 664 | } 665 | 666 | // tutorials can have only one parent so there is no risk for loops 667 | function saveChildren(node) { 668 | node.children.forEach(function (child) { 669 | generateTutorial('Tutorial: ' + child.title, child, helper.tutorialToUrl(child.name)); 670 | saveChildren(child); 671 | }); 672 | } 673 | 674 | saveChildren(tutorials); 675 | }; 676 | -------------------------------------------------------------------------------- /scripts/preversion: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "$(grep -ic "unreleased" CHANGELOG.md)" -eq "0" ]; then 4 | echo "(version) ERROR The changelog doesn't appear to include the string" 5 | echo "(version) ERROR \"Unreleased\". Make sure the changelog is updated and" 6 | echo "(version) ERROR Unreleased is spelled correctly, then try again." 7 | exit 1 8 | fi 9 | 10 | releaseVersion="v${npm_package_version} ($(date +%Y-%m-%d))" 11 | 12 | sed -i "" "s/[Uu]nreleased/$releaseVersion/" CHANGELOG.md 13 | 14 | git add CHANGELOG.md 15 | -------------------------------------------------------------------------------- /static/fonts/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /static/fonts/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /static/fonts/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /static/fonts/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /static/fonts/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /static/fonts/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /static/fonts/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /static/fonts/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /static/fonts/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /static/fonts/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /static/fonts/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /static/fonts/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /static/fonts/OpenSans-Semibold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-Semibold-webfont.eot -------------------------------------------------------------------------------- /static/fonts/OpenSans-Semibold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-Semibold-webfont.ttf -------------------------------------------------------------------------------- /static/fonts/OpenSans-Semibold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-Semibold-webfont.woff -------------------------------------------------------------------------------- /static/fonts/OpenSans-SemiboldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-SemiboldItalic-webfont.eot -------------------------------------------------------------------------------- /static/fonts/OpenSans-SemiboldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-SemiboldItalic-webfont.ttf -------------------------------------------------------------------------------- /static/fonts/OpenSans-SemiboldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/braintree/jsdoc-template/fa002591dffdfdd015dde27304b939e0a75df9ae/static/fonts/OpenSans-SemiboldItalic-webfont.woff -------------------------------------------------------------------------------- /static/icons/home.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /static/icons/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /static/scripts/linenumber.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | (function () { 4 | var lineId, lines, totalLines, anchorHash; 5 | var source = document.getElementsByClassName('prettyprint source linenums'); 6 | var i = 0; 7 | var lineNumber = 0; 8 | 9 | if (source && source[0]) { 10 | anchorHash = document.location.hash.substring(1); 11 | lines = source[0].getElementsByTagName('li'); 12 | totalLines = lines.length; 13 | 14 | for (; i < totalLines; i++) { 15 | lineNumber++; 16 | lineId = 'line' + lineNumber; 17 | lines[i].id = lineId; 18 | if (lineId === anchorHash) { 19 | lines[i].className += ' selected'; 20 | } 21 | } 22 | } 23 | })(); 24 | -------------------------------------------------------------------------------- /static/scripts/pagelocation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | $(document).ready(function () { 4 | var currentSectionNav, target; 5 | 6 | // If an anchor hash is in the URL highlight the menu item 7 | highlightActiveHash(); 8 | // If a specific page section is in the URL highlight the menu item 9 | highlightActiveSection(); 10 | 11 | // If a specific page section is in the URL scroll that section up to the top 12 | currentSectionNav = $('#' + getCurrentSectionName() + '-nav'); 13 | 14 | if (currentSectionNav.position()) { 15 | $('nav').scrollTop(currentSectionNav.position().top); 16 | } 17 | 18 | // function to scroll to anchor when clicking an anchor linl 19 | $('a[href*="#"]:not([href="#"])').click(function () { 20 | /* eslint-disable no-invalid-this */ 21 | if (location.pathname.replace(/^\//, '') === this.pathname.replace(/^\//, '') && location.hostname === this.hostname) { 22 | target = $(this.hash); 23 | target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); 24 | if (target.length) { 25 | $('html, body').animate({ 26 | scrollTop: target.offset().top 27 | }, 1000); 28 | } 29 | } 30 | /* eslint-enable no-invalid-this */ 31 | }); 32 | }); 33 | 34 | // If a new anchor section is selected, change the hightlighted menu item 35 | $(window).bind('hashchange', function (event) { 36 | highlightActiveHash(event); 37 | }); 38 | 39 | function highlightActiveHash(event) { 40 | var oldUrl, oldSubSectionElement; 41 | 42 | // check for and remove old hash active state 43 | if (event && event.originalEvent.oldURL) { 44 | oldUrl = event.originalEvent.oldURL; 45 | 46 | if (oldUrl.indexOf('#') > -1) { 47 | oldSubSectionElement = $('#' + getCurrentSectionName() + '-' + oldUrl.substring(oldUrl.indexOf('#') + 1) + '-nav'); 48 | 49 | if (oldSubSectionElement) { 50 | oldSubSectionElement.removeClass('active'); 51 | } 52 | } 53 | } 54 | 55 | if (getCurrentHashName()) { 56 | $('#' + getCurrentSectionName() + '-' + getCurrentHashName() + '-nav').addClass('active'); 57 | } 58 | } 59 | 60 | function highlightActiveSection() { 61 | var pageId = getCurrentSectionName(); 62 | 63 | $('#' + pageId + '-nav').addClass('active'); 64 | } 65 | 66 | function getCurrentSectionName() { 67 | var path = window.location.pathname; 68 | var pageUrl = path.split('/').pop(); 69 | 70 | var sectionName = pageUrl.substring(0, pageUrl.indexOf('.')); 71 | 72 | // remove the wodr module- if its in the url 73 | sectionName = sectionName.replace('module-', ''); 74 | 75 | return sectionName; 76 | } 77 | 78 | function getCurrentHashName() { 79 | var pageSubSectionId; 80 | var pageSubSectionHash = window.location.hash; 81 | 82 | if (pageSubSectionHash) { 83 | pageSubSectionId = pageSubSectionHash.substring(1).replace('.', ''); 84 | 85 | return pageSubSectionId; 86 | } 87 | 88 | return false; 89 | } 90 | -------------------------------------------------------------------------------- /static/styles/collapse.css: -------------------------------------------------------------------------------- 1 | @media only screen and (min-width: 681px) { 2 | nav > ul > li:hover .methods, 3 | .active .methods { 4 | display: block; 5 | } 6 | 7 | .methods { 8 | display: none; 9 | } 10 | 11 | nav > ul > li { 12 | padding: 20px 0; 13 | } 14 | 15 | nav > ul > li > a { 16 | padding: 0; 17 | } 18 | 19 | nav > ul > li.active a { 20 | margin-bottom: 10px; 21 | } 22 | 23 | nav > ul > li:hover > a, 24 | nav > ul > li.active > a { 25 | margin-bottom: 15px; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /static/styles/jsdoc-default.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Avenir Next W01"; 3 | font-style: normal; 4 | font-weight: 600; 5 | src: url("https://fast.fonts.net/dv2/14/14c73713-e4df-4dba-933b-057feeac8dd1.woff2?d44f19a684109620e484167ba790e8180fd9e29df91d80ce3d096f014db863074e1ea706cf5ed4e1c042492e76df291ce1d24ec684d3d9da9684f55406b9f22bce02f0f30f556681593dafea074d7bd44e28a680d083ccfd44ed4f8a3087a20c56147c11f917ed1dbd85c4a18cf38da25e6ac78f008f472262304d50e7e0cb7541ef1642c676db6e4bde4924846f5daf486fbde9335e98f6a20f6664bc4525253d1d4fca42cf1c490483c8daf0237f6a0fd292563417ad80ca3e69321417747bdc6f0969f34b2a0401b5e2b9a4dfd5b06d9710850900c66b34870aef&projectId=f750d5c7-baa2-4767-afd7-45484f47fe17") format('woff2'); 6 | } 7 | 8 | @font-face { 9 | font-family: "Avenir Next W01"; 10 | font-style: normal; 11 | font-weight: 500; 12 | src: url("https://fast.fonts.net/dv2/14/627fbb5a-3bae-4cd9-b617-2f923e29d55e.woff2?d44f19a684109620e484167ba790e8180fd9e29df91d80ce3d096f014db863074e1ea706cf5ed4e1c042492e76df291ce1d24ec684d3d9da9684f55406b9f22bce02f0f30f556681593dafea074d7bd44e28a680d083ccfd44ed4f8a3087a20c56147c11f917ed1dbd85c4a18cf38da25e6ac78f008f472262304d50e7e0cb7541ef1642c676db6e4bde4924846f5daf486fbde9335e98f6a20f6664bc4525253d1d4fca42cf1c490483c8daf0237f6a0fd292563417ad80ca3e69321417747bdc6f0969f34b2a0401b5e2b9a4dfd5b06d9710850900c66b34870aef&projectId=f750d5c7-baa2-4767-afd7-45484f47fe17") format('woff2'); 13 | } 14 | 15 | @font-face { 16 | font-family: "Avenir Next W01"; 17 | font-style: normal; 18 | font-weight: 400; 19 | src: url("https://fast.fonts.net/dv2/14/2cd55546-ec00-4af9-aeca-4a3cd186da53.woff2?d44f19a684109620e484167ba790e8180fd9e29df91d80ce3d096f014db863074e1ea706cf5ed4e1c042492e76df291ce1d24ec684d3d9da9684f55406b9f22bce02f0f30f556681593dafea074d7bd44e28a680d083ccfd44ed4f8a3087a20c56147c11f917ed1dbd85c4a18cf38da25e6ac78f008f472262304d50e7e0cb7541ef1642c676db6e4bde4924846f5daf486fbde9335e98f6a20f6664bc4525253d1d4fca42cf1c490483c8daf0237f6a0fd292563417ad80ca3e69321417747bdc6f0969f34b2a0401b5e2b9a4dfd5b06d9710850900c66b34870aef&projectId=f750d5c7-baa2-4767-afd7-45484f47fe17") format('woff2'); 20 | } 21 | 22 | @font-face { 23 | font-family: 'bt_mono'; 24 | font-style: normal; 25 | font-weight: 400; 26 | src: url('https://assets.braintreegateway.com/fonts/bt_mono_regular-webfont.eot'); 27 | src: url('https://assets.braintreegateway.com/fonts/bt_mono_regular-webfont.woff2') format('woff2'), url('https://assets.braintreegateway.com/fonts/bt_mono_regular-webfont.woff') format('woff'), url('https://assets.braintreegateway.com/fonts/bt_mono_regular-webfont.ttf') format('truetype'), url('https://assets.braintreegateway.com/fonts/bt_mono_regular-webfont.svg#bt_mono_reqular-webfont') format('svg'); 28 | } 29 | 30 | @font-face { 31 | font-family: 'bt_mono'; 32 | font-style: normal; 33 | font-weight: 500; 34 | src: url('https://assets.braintreegateway.com/fonts/bt_mono_medium-webfont.eot'); 35 | src: url('https://assets.braintreegateway.com/fonts/bt_mono_medium-webfont.woff2') format('woff2'), url('https://assets.braintreegateway.com/fonts/bt_mono_medium-webfont.woff') format('woff'), url('https://assets.braintreegateway.com/fonts/bt_mono_medium-webfont.ttf') format('truetype'), url('https://assets.braintreegateway.com/fonts/bt_mono_medium-webfont.svg#bt_mono_medium-webfont') format('svg'); 36 | } 37 | 38 | @font-face { 39 | font-family: 'bt_mono'; 40 | font-style: normal; 41 | font-weight: 600; 42 | src: url('https://assets.braintreegateway.com/fonts/bt_mono_bold-webfont.eot'); 43 | src: url('https://assets.braintreegateway.com/fonts/bt_mono_bold-webfont.woff2') format('woff2'), url('https://assets.braintreegateway.com/fonts/bt_mono_bold-webfont.woff') format('woff'), url('https://assets.braintreegateway.com/fonts/bt_mono_bold-webfont.ttf') format('truetype'), url('https://assets.braintreegateway.com/fonts/bt_mono_bold-webfont.svg#bt_mono_bold-webfont') format('svg'); 44 | } 45 | 46 | @font-face { 47 | font-family: 'bt_mono'; 48 | font-style: normal; 49 | font-weight: 900; 50 | src: url('https://assets.braintreegateway.com/fonts/bt_mono_heavy-webfont.eot'); 51 | src: url('https://assets.braintreegateway.com/fonts/bt_mono_heavy-webfont.woff2') format('woff2'), url('https://assets.braintreegateway.com/fonts/bt_mono_heavy-webfont.woff') format('woff'), url('https://assets.braintreegateway.com/fonts/bt_mono_heavy-webfont.ttf') format('truetype'), url('https://assets.braintreegateway.com/fonts/bt_mono_heavy-webfont.svg#bt_mono_heavy-webfont') format('svg'); 52 | } 53 | 54 | * { 55 | box-sizing: border-box 56 | } 57 | 58 | html, body { 59 | height: 100%; 60 | width: 100%; 61 | -webkit-font-smoothing: antialiased; 62 | -moz-osx-font-smoothing: grayscale; 63 | color: #3e3c42; 64 | text-rendering: optimizeLegibility; 65 | margin: 0; 66 | } 67 | 68 | body { 69 | color: #3e3c42; 70 | background-color: #f3f3f3; 71 | width: 100%; 72 | font: 16px/1.875 "Avenir Next W01", "Avenir Next", "Helvetica Neue", Helvetica, sans-serif; 73 | font-size: 16px; 74 | line-height: 160%; 75 | } 76 | 77 | a, a:active { 78 | color: #0095dd; 79 | text-decoration: none; 80 | } 81 | 82 | a:hover { 83 | text-decoration: underline 84 | } 85 | 86 | p, ul, ol, blockquote { 87 | margin-bottom: 1em; 88 | } 89 | 90 | p { 91 | max-width: 800px; 92 | } 93 | 94 | h1, h2, h3, h4, h5, h6 { 95 | color: #706d77; 96 | font-weight: 500; 97 | margin: 0; 98 | line-height: 1; 99 | } 100 | 101 | h1 { 102 | color: #4b484f; 103 | font-weight: 500; 104 | font-size: 40px; 105 | display: block; 106 | } 107 | 108 | h1 span { 109 | color: #999; 110 | font-size: 32px; 111 | display: block; 112 | line-height: 1.5; 113 | } 114 | 115 | h1.page-title { 116 | border-bottom: 1px dashed #ccc; 117 | margin-bottom: 20px; 118 | padding-bottom: 30px; 119 | } 120 | 121 | h2 { 122 | font-size: 30px; 123 | margin: 1.5em 0 0; 124 | } 125 | 126 | h3 { 127 | font-size: 20px; 128 | margin: 1.5em 0 0; 129 | text-transform: uppercase; 130 | } 131 | 132 | h3.reference-title { 133 | display: block; 134 | font-weight: 400; 135 | margin-top: 2em; 136 | max-width: 200px; 137 | } 138 | 139 | h3.reference-title small { 140 | display: inline-block; 141 | color: #0095dd; 142 | margin-left: 5px; 143 | font-weight: 500; 144 | } 145 | 146 | h3.subsection-title { 147 | border-bottom: 1px solid #ececec; 148 | padding-bottom: 20px; 149 | margin-top: 3em; 150 | margin-bottom: 1em; 151 | } 152 | 153 | h4 { 154 | font-size: 16px; 155 | margin: 1em 0 0; 156 | font-weight: bold; 157 | } 158 | 159 | h4.name { 160 | font-size: 20px; 161 | margin-top: 0; 162 | font-weight: 500; 163 | } 164 | 165 | h5 { 166 | margin: 2em 0 0.5em 0; 167 | font-size: 14px; 168 | font-weight: 500; 169 | text-transform: uppercase; 170 | } 171 | 172 | .container-overview .subsection-title { 173 | font-size: 14px; 174 | text-transform: uppercase; 175 | margin: 8px 0 15px 0; 176 | font-weight: bold; 177 | color: #4D4E53; 178 | padding-top: 10px; 179 | } 180 | 181 | h6 { 182 | font-size: 100%; 183 | letter-spacing: -0.01em; 184 | margin: 6px 0 3px 0; 185 | font-style: italic; 186 | text-transform: uppercase; 187 | font-weight: 500; 188 | } 189 | 190 | tt, code, kbd, samp { 191 | font-family: "Source Code Pro", monospace; 192 | background: #f4f4f4; 193 | padding: 1px 5px; 194 | border-radius: 5px; 195 | } 196 | 197 | .class-description { 198 | margin-bottom: 1em; 199 | margin-top: 1em; 200 | padding: 10px 20px; 201 | background-color: rgba(26, 159, 224, 0.1); 202 | } 203 | 204 | .class-description:empty { 205 | margin: 0 206 | } 207 | 208 | #main { 209 | background-color: white; 210 | float: right; 211 | min-width: 360px; 212 | width: calc(100% - 300px); 213 | padding: 30px; 214 | z-index: 100; 215 | } 216 | 217 | header { 218 | display: block; 219 | max-width: 1400px; 220 | } 221 | 222 | section { 223 | display: block; 224 | max-width: 1400px; 225 | background-color: #fff; 226 | } 227 | 228 | .variation { 229 | display: none 230 | } 231 | 232 | .signature-attributes { 233 | font-size: 60%; 234 | color: #aaa; 235 | font-style: italic; 236 | font-weight: lighter; 237 | } 238 | 239 | .rule { 240 | width: 100%; 241 | margin-top: 20px; 242 | display: block; 243 | border-top: 1px solid #ccc; 244 | } 245 | 246 | ul { 247 | list-style-type: none; 248 | padding-left: 0; 249 | } 250 | 251 | ul li a { 252 | font-weight: 500; 253 | } 254 | 255 | ul ul { 256 | padding-top: 5px; 257 | } 258 | 259 | ul li ul { 260 | padding-left: 20px; 261 | } 262 | 263 | ul li ul li a { 264 | font-weight: normal; 265 | } 266 | 267 | nav { 268 | float: left; 269 | display: block; 270 | width: 300px; 271 | background: #f7f7f7; 272 | overflow-x: visible; 273 | overflow-y: auto; 274 | height: 100%; 275 | padding: 0px 30px 100px 30px; 276 | height: 100%; 277 | position: fixed; 278 | transition: left 0.2s; 279 | z-index: 998; 280 | margin-top: 0px; 281 | top: 43px; 282 | } 283 | 284 | .navicon-button { 285 | display: inline-block; 286 | position: fixed; 287 | bottom: 1.5em; 288 | right: 1.5em; 289 | z-index: 2; 290 | } 291 | 292 | nav h3 { 293 | font-size: 13px; 294 | text-transform: uppercase; 295 | letter-spacing: 1px; 296 | font-weight: bold; 297 | line-height: 24px; 298 | margin: 40px 0 10px 0; 299 | padding: 0; 300 | } 301 | 302 | nav ul { 303 | font-size: 100%; 304 | line-height: 17px; 305 | padding: 0; 306 | margin: 0; 307 | list-style-type: none; 308 | border: none; 309 | padding-left: 0; 310 | } 311 | 312 | nav ul a { 313 | font-size: 16px; 314 | } 315 | 316 | nav ul a, nav ul a:active { 317 | display: block; 318 | } 319 | 320 | nav ul a:hover, nav ul a:active { 321 | color: hsl(200, 100%, 43%); 322 | text-decoration: none; 323 | } 324 | 325 | nav>ul { 326 | padding: 0 10px; 327 | } 328 | 329 | nav>ul li:first-child { 330 | padding-top: 0; 331 | } 332 | 333 | nav ul li ul { 334 | padding-left: 0; 335 | } 336 | 337 | nav>ul>li { 338 | border-bottom: 1px solid #e2e2e2; 339 | padding: 10px 0 20px 0; 340 | } 341 | 342 | nav>ul>li.active ul { 343 | border-left: 3px solid #0095dd; 344 | padding-left: 15px; 345 | } 346 | 347 | nav>ul>li.active ul li.active a { 348 | font-weight: bold; 349 | } 350 | 351 | nav>ul>li.active a { 352 | color: #0095dd; 353 | } 354 | 355 | nav>ul>li>a { 356 | color: #706d77; 357 | padding: 20px 0; 358 | font-size: 18px; 359 | } 360 | 361 | nav ul ul { 362 | margin-bottom: 10px; 363 | padding-left: 0; 364 | } 365 | 366 | nav ul ul a { 367 | color: #5f5c63; 368 | } 369 | 370 | nav ul ul a, nav ul ul a:active { 371 | font-family: 'bt_mono', monospace; 372 | font-size: 14px; 373 | padding-left: 20px; 374 | padding-top: 3px; 375 | padding-bottom: 9px; 376 | } 377 | 378 | nav h2 { 379 | font-size: 12px; 380 | margin: 0; 381 | padding: 0; 382 | } 383 | 384 | nav>h2>a { 385 | color: hsl(202, 71%, 50%); 386 | border-bottom: 1px solid hsl(202, 71%, 50%); 387 | padding-bottom: 5px; 388 | } 389 | 390 | nav>h2>a:hover { 391 | font-weight: 500; 392 | text-decoration: none; 393 | } 394 | 395 | footer { 396 | background-color: #fff; 397 | color: hsl(0, 0%, 28%); 398 | margin-left: 300px; 399 | display: block; 400 | font-style: italic; 401 | font-size: 12px; 402 | padding: 30px; 403 | text-align: center; 404 | } 405 | 406 | .ancestors { 407 | color: #999; 408 | } 409 | 410 | .ancestors a { 411 | color: #999 !important; 412 | text-decoration: none; 413 | } 414 | 415 | .clear { 416 | clear: both; 417 | } 418 | 419 | .important { 420 | font-weight: bold; 421 | color: #950B02; 422 | } 423 | 424 | .yes-def { 425 | text-indent: -1000px; 426 | } 427 | 428 | .type-signature { 429 | color: #aaa; 430 | } 431 | 432 | .name, .signature { 433 | font-family: 'bt_mono', monospace; 434 | word-wrap: break-word; 435 | } 436 | 437 | .details { 438 | margin-top: 14px; 439 | font-size: 13px; 440 | text-align: right; 441 | background: #ffffff; 442 | /* Old browsers */ 443 | background: -moz-linear-gradient(left, #ffffff 0%, #fafafa 100%); 444 | /* FF3.6-15 */ 445 | background: -webkit-linear-gradient(left, #ffffff 0%, #fafafa 100%); 446 | /* Chrome10-25,Safari5.1-6 */ 447 | background: linear-gradient(to right, #ffffff 0%, #fafafa 100%); 448 | /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ 449 | filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fafafa', GradientType=1); 450 | padding-right: 5px; 451 | } 452 | 453 | .details dt { 454 | display: inline-block; 455 | } 456 | 457 | .details dd { 458 | display: inline-block; 459 | margin: 0; 460 | } 461 | 462 | .details dd a { 463 | font-style: italic; 464 | font-weight: normal; 465 | line-height: 1; 466 | } 467 | 468 | .details ul { 469 | list-style-type: none; 470 | margin: 0; 471 | } 472 | 473 | .details pre.prettyprint { 474 | margin: 0 475 | } 476 | 477 | .details .object-value { 478 | padding-top: 0 479 | } 480 | 481 | .description { 482 | margin-bottom: 1em; 483 | margin-top: 1em; 484 | } 485 | 486 | .code-caption { 487 | font-style: italic; 488 | margin: 0; 489 | font-size: 16px; 490 | color: #545454; 491 | } 492 | 493 | .prettyprint { 494 | font-size: 13px; 495 | border: 1px solid #ddd; 496 | border-radius: 3px; 497 | overflow: auto; 498 | background-color: #fbfbfb; 499 | } 500 | 501 | .prettyprint.source { 502 | width: inherit; 503 | } 504 | 505 | .prettyprint code { 506 | font-size: 100%; 507 | line-height: 18px; 508 | display: block; 509 | margin: 0 30px; 510 | background-color: #fbfbfb; 511 | color: #4D4E53; 512 | } 513 | 514 | .prettyprint>code { 515 | padding: 30px 15px; 516 | } 517 | 518 | .prettyprint .linenums code { 519 | padding: 0 15px; 520 | } 521 | 522 | .prettyprint .linenums li:first-of-type code { 523 | padding-top: 15px; 524 | } 525 | 526 | .prettyprint code span.line { 527 | display: inline-block; 528 | } 529 | 530 | .prettyprint.linenums { 531 | -webkit-user-select: none; 532 | -moz-user-select: none; 533 | -ms-user-select: none; 534 | user-select: none; 535 | } 536 | 537 | .prettyprint.linenums ol { 538 | padding-left: 0 539 | } 540 | 541 | .prettyprint.linenums li { 542 | border-left: 3px #ddd solid 543 | } 544 | 545 | .prettyprint.linenums li.selected, .prettyprint.linenums li.selected * { 546 | background-color: lightyellow 547 | } 548 | 549 | .prettyprint.linenums li * { 550 | -webkit-user-select: text; 551 | -moz-user-select: text; 552 | -ms-user-select: text; 553 | user-select: text; 554 | } 555 | 556 | .readme .prettyprint { 557 | max-width: 800px; 558 | } 559 | 560 | .params, .props { 561 | border-spacing: 0; 562 | border: 1px solid #ddd; 563 | border-radius: 3px; 564 | width: 100%; 565 | font-size: 14px; 566 | } 567 | 568 | .params .name, .props .name, .name code { 569 | color: #4D4E53; 570 | font-family: 'bt_mono', monospace; 571 | font-size: 100%; 572 | } 573 | 574 | .params td, .params th, .props td, .props th { 575 | margin: 0px; 576 | text-align: left; 577 | vertical-align: top; 578 | padding: 10px; 579 | display: table-cell; 580 | } 581 | 582 | .params td { 583 | border-top: 1px solid #eee; 584 | } 585 | 586 | .params thead tr, .props thead tr { 587 | background-color: #fff; 588 | font-weight: bold; 589 | } 590 | 591 | .params .params thead tr, .props .props thead tr { 592 | background-color: #fff; 593 | font-weight: bold; 594 | } 595 | 596 | .params td.description>p:first-child, .props td.description>p:first-child { 597 | margin-top: 0; 598 | padding-top: 0; 599 | } 600 | 601 | .params td.description>p:last-child, .props td.description>p:last-child { 602 | margin-bottom: 0; 603 | padding-bottom: 0; 604 | } 605 | 606 | dl.param-type { 607 | margin-top: 5px; 608 | } 609 | 610 | .param-type dt, .param-type dd { 611 | display: inline-block 612 | } 613 | 614 | .param-type dd { 615 | font-family: Consolas, Monaco, 'Andale Mono', monospace 616 | } 617 | 618 | .disabled { 619 | color: #454545 620 | } 621 | 622 | 623 | /* tag source style */ 624 | 625 | .tag-deprecated { 626 | padding-right: 5px; 627 | } 628 | 629 | .tag-source { 630 | border-bottom: 1px solid rgba(28, 160, 224, 0.35); 631 | } 632 | 633 | .tag-source:first-child { 634 | border-bottom: 1px solid rgba(28, 160, 224, 1); 635 | } 636 | 637 | 638 | /* navicon button */ 639 | 640 | .navicon-button { 641 | position: relative; 642 | transition: 0.25s; 643 | cursor: pointer; 644 | user-select: none; 645 | opacity: .8; 646 | background-color: white; 647 | border-radius: 100%; 648 | width: 50px; 649 | height: 50px; 650 | -webkit-box-shadow: 0px 2px 9px 0px rgba(0, 0, 0, 0.31); 651 | -moz-box-shadow: 0px 2px 9px 0px rgba(0, 0, 0, 0.31); 652 | box-shadow: 0px 2px 9px 0px rgba(0, 0, 0, 0.31); 653 | } 654 | 655 | .navicon-button .navicon:before, .navicon-button .navicon:after { 656 | transition: 0.25s; 657 | } 658 | 659 | .navicon-button:hover { 660 | transition: 0.5s; 661 | opacity: 1; 662 | } 663 | 664 | .navicon-button:hover .navicon:before, .navicon-button:hover .navicon:after { 665 | transition: 0.25s; 666 | } 667 | 668 | .navicon-button:hover .navicon:before { 669 | top: .425rem; 670 | } 671 | 672 | .navicon-button:hover .navicon:after { 673 | top: -.425rem; 674 | } 675 | 676 | 677 | /* navicon */ 678 | 679 | .navicon { 680 | position: relative; 681 | width: 1.5em; 682 | height: .195rem; 683 | background: #000; 684 | top: calc(50% - .09rem); 685 | left: calc(50% - .75rem); 686 | transition: 0.3s; 687 | border-radius: 5px; 688 | } 689 | 690 | .navicon:before, .navicon:after { 691 | display: block; 692 | content: ""; 693 | height: .195rem; 694 | width: 1.5rem; 695 | background: #000; 696 | position: absolute; 697 | z-index: -1; 698 | transition: 0.3s 0.25s; 699 | } 700 | 701 | .navicon:before { 702 | top: 0.425rem; 703 | height: .195rem; 704 | border-radius: 5px; 705 | } 706 | 707 | .navicon:after { 708 | top: -0.425rem; 709 | border-radius: 5px; 710 | } 711 | 712 | 713 | /* open */ 714 | 715 | .nav-trigger:checked+label:not(.steps) .navicon:before, .nav-trigger:checked+label:not(.steps) .navicon:after { 716 | top: 0 !important; 717 | } 718 | 719 | .nav-trigger:checked+label .navicon:before, .nav-trigger:checked+label .navicon:after { 720 | transition: 0.5s; 721 | } 722 | 723 | 724 | /* Minus */ 725 | 726 | .nav-trigger:checked+label { 727 | transform: scale(0.75); 728 | } 729 | 730 | 731 | /* × and + */ 732 | 733 | .nav-trigger:checked+label.plus .navicon, .nav-trigger:checked+label.x .navicon { 734 | background: transparent; 735 | } 736 | 737 | .nav-trigger:checked+label.plus .navicon:before, .nav-trigger:checked+label.x .navicon:before { 738 | transform: rotate(-45deg); 739 | background: #000; 740 | } 741 | 742 | .nav-trigger:checked+label.plus .navicon:after, .nav-trigger:checked+label.x .navicon:after { 743 | transform: rotate(45deg); 744 | background: #000; 745 | } 746 | 747 | .nav-trigger:checked+label.plus { 748 | transform: scale(0.75) rotate(45deg); 749 | } 750 | 751 | .nav-trigger:checked~nav { 752 | left: 0 !important; 753 | } 754 | 755 | .nav-trigger:checked~.overlay { 756 | display: block; 757 | } 758 | 759 | .nav-trigger { 760 | position: fixed; 761 | top: 0; 762 | clip: rect(0, 0, 0, 0); 763 | } 764 | 765 | .overlay { 766 | display: none; 767 | position: fixed; 768 | top: 0; 769 | bottom: 0; 770 | left: 0; 771 | right: 0; 772 | width: 100%; 773 | height: 100%; 774 | background: hsla(0, 0%, 0%, 0.5); 775 | z-index: 1; 776 | } 777 | 778 | table { 779 | border-collapse: separate; 780 | ; 781 | display: block; 782 | overflow-x: auto; 783 | /*table-layout:fixed;*/ 784 | } 785 | 786 | table tbody td { 787 | border-top: 1px solid hsl(207, 10%, 86%); 788 | border-right: 1px solid #eee; 789 | padding: 5px; 790 | /*word-wrap: break-word;*/ 791 | } 792 | 793 | td table.params, td table.props { 794 | border: 0; 795 | } 796 | 797 | @media only screen and (min-width: 320px) and (max-width: 680px) { 798 | body { 799 | overflow-x: hidden; 800 | } 801 | #main { 802 | padding: 30px 30px; 803 | width: 100%; 804 | min-width: 360px; 805 | } 806 | nav { 807 | background: #FFF; 808 | width: 300px; 809 | height: 100%; 810 | position: fixed; 811 | top: 0; 812 | right: 0; 813 | bottom: 0; 814 | left: -300px; 815 | z-index: 3; 816 | padding: 0 10px; 817 | transition: left 0.2s; 818 | margin-top: 0; 819 | } 820 | .navicon-button { 821 | display: inline-block; 822 | position: fixed; 823 | bottom: 1.5em; 824 | right: 20px; 825 | z-index: 1000; 826 | } 827 | .top-nav-wrapper { 828 | display: none; 829 | } 830 | #main h1.page-title { 831 | margin: 0.5em 0; 832 | } 833 | footer { 834 | margin-left: 0; 835 | margin-bottom: 30px; 836 | } 837 | } 838 | 839 | .top-nav-wrapper { 840 | background-color: #ececec; 841 | position: fixed; 842 | top: 0px; 843 | left: 0px; 844 | padding: 10px 10px 0 10px; 845 | z-index: 999; 846 | width: 300px; 847 | } 848 | 849 | .top-nav-wrapper ul { 850 | margin: 0; 851 | } 852 | 853 | .top-nav-wrapper ul li { 854 | display: inline-block; 855 | padding: 0 10px; 856 | vertical-align: top; 857 | } 858 | 859 | .top-nav-wrapper ul li.active { 860 | border-bottom: 2px solid rgba(28, 160, 224, 1); 861 | } 862 | 863 | .search-wrapper { 864 | display: inline-block; 865 | position: relative; 866 | } 867 | 868 | .search-wrapper svg { 869 | position: absolute; 870 | left: 0px; 871 | } 872 | 873 | input.search-input { 874 | background: transparent; 875 | box-shadow: 0; 876 | border: 0; 877 | border-bottom: 1px solid #c7c7c7; 878 | padding: 7px 15px 12px 35px; 879 | margin: 0 auto; 880 | } 881 | 882 | 883 | /* Smooth outline with box-shadow: */ 884 | 885 | input.search-input:focus { 886 | border-bottom: 2px solid rgba(28, 160, 224, 1); 887 | outline: none; 888 | } 889 | 890 | 891 | /* Hightlight JS Paradiso Light Theme */ 892 | 893 | .hljs-comment, .hljs-quote { 894 | color: #776e71 895 | } 896 | 897 | .hljs-variable, .hljs-template-variable, .hljs-tag, .hljs-name, .hljs-selector-id, .hljs-selector-class, .hljs-regexp, .hljs-link, .hljs-meta { 898 | color: #ef6155 899 | } 900 | 901 | .hljs-number, .hljs-built_in, .hljs-builtin-name, .hljs-literal, .hljs-type, .hljs-params, .hljs-deletion { 902 | color: #f99b15 903 | } 904 | 905 | .hljs-title, .hljs-section, .hljs-attribute { 906 | color: #fec418 907 | } 908 | 909 | .hljs-string, .hljs-symbol, .hljs-bullet, .hljs-addition { 910 | color: #48b685 911 | } 912 | 913 | .hljs-keyword, .hljs-selector-tag { 914 | color: #815ba4 915 | } 916 | 917 | .hljs { 918 | display: block; 919 | overflow-x: auto; 920 | background: #e7e9db; 921 | color: #4f424c; 922 | padding: 0.5em 923 | } 924 | 925 | .hljs-emphasis { 926 | font-style: italic 927 | } 928 | 929 | .hljs-strong { 930 | font-weight: bold 931 | } 932 | 933 | .link-icon { 934 | opacity: 0; 935 | position: absolute; 936 | margin-left: -25px; 937 | padding-right: 5px; 938 | padding-top: 2px; 939 | } 940 | 941 | .example-container .link-icon { 942 | margin-top: -6px; 943 | } 944 | 945 | .example-container:hover .link-icon, 946 | .name-container:hover .link-icon { 947 | opacity: .5; 948 | } 949 | 950 | .name-container { 951 | display: flex; 952 | padding-top: 1em; 953 | } 954 | -------------------------------------------------------------------------------- /static/styles/prettify-jsdoc.css: -------------------------------------------------------------------------------- 1 | /* JSDoc prettify.js theme */ 2 | 3 | /* plain text */ 4 | .pln { 5 | color: #000000; 6 | font-weight: normal; 7 | font-style: normal; 8 | } 9 | 10 | /* string content */ 11 | .str { 12 | color: hsl(104, 100%, 24%); 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | 17 | /* a keyword */ 18 | .kwd { 19 | color: #000000; 20 | font-weight: bold; 21 | font-style: normal; 22 | } 23 | 24 | /* a comment */ 25 | .com { 26 | font-weight: normal; 27 | font-style: italic; 28 | } 29 | 30 | /* a type name */ 31 | .typ { 32 | color: #000000; 33 | font-weight: normal; 34 | font-style: normal; 35 | } 36 | 37 | /* a literal value */ 38 | .lit { 39 | color: #006400; 40 | font-weight: normal; 41 | font-style: normal; 42 | } 43 | 44 | /* punctuation */ 45 | .pun { 46 | color: #000000; 47 | font-weight: bold; 48 | font-style: normal; 49 | } 50 | 51 | /* lisp open bracket */ 52 | .opn { 53 | color: #000000; 54 | font-weight: bold; 55 | font-style: normal; 56 | } 57 | 58 | /* lisp close bracket */ 59 | .clo { 60 | color: #000000; 61 | font-weight: bold; 62 | font-style: normal; 63 | } 64 | 65 | /* a markup tag name */ 66 | .tag { 67 | color: #006400; 68 | font-weight: normal; 69 | font-style: normal; 70 | } 71 | 72 | /* a markup attribute name */ 73 | .atn { 74 | color: #006400; 75 | font-weight: normal; 76 | font-style: normal; 77 | } 78 | 79 | /* a markup attribute value */ 80 | .atv { 81 | color: #006400; 82 | font-weight: normal; 83 | font-style: normal; 84 | } 85 | 86 | /* a declaration */ 87 | .dec { 88 | color: #000000; 89 | font-weight: bold; 90 | font-style: normal; 91 | } 92 | 93 | /* a variable name */ 94 | .var { 95 | color: #000000; 96 | font-weight: normal; 97 | font-style: normal; 98 | } 99 | 100 | /* a function name */ 101 | .fun { 102 | color: #000000; 103 | font-weight: bold; 104 | font-style: normal; 105 | } 106 | 107 | /* Specify class=linenums on a pre to get line numbering */ 108 | ol.linenums { 109 | margin-top: 0; 110 | margin-bottom: 0; 111 | } 112 | -------------------------------------------------------------------------------- /static/styles/prettify-tomorrow.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* Pretty printing styles. Used with prettify.js. */ 4 | /* SPAN elements with the classes below are added by prettyprint. */ 5 | /* plain text */ 6 | .pln { 7 | color: #4d4d4c; } 8 | 9 | @media screen { 10 | /* string content */ 11 | .str { 12 | color: hsl(104, 100%, 24%); } 13 | 14 | /* a keyword */ 15 | .kwd { 16 | color: hsl(240, 100%, 50%); } 17 | 18 | /* a comment */ 19 | .com { 20 | color: hsl(0, 0%, 60%); } 21 | 22 | /* a type name */ 23 | .typ { 24 | color: hsl(240, 100%, 32%); } 25 | 26 | /* a literal value */ 27 | .lit { 28 | color: hsl(240, 100%, 40%); } 29 | 30 | /* punctuation */ 31 | .pun { 32 | color: #000000; } 33 | 34 | /* lisp open bracket */ 35 | .opn { 36 | color: #000000; } 37 | 38 | /* lisp close bracket */ 39 | .clo { 40 | color: #000000; } 41 | 42 | /* a markup tag name */ 43 | .tag { 44 | color: #c82829; } 45 | 46 | /* a markup attribute name */ 47 | .atn { 48 | color: #f5871f; } 49 | 50 | /* a markup attribute value */ 51 | .atv { 52 | color: #3e999f; } 53 | 54 | /* a declaration */ 55 | .dec { 56 | color: #f5871f; } 57 | 58 | /* a variable name */ 59 | .var { 60 | color: #c82829; } 61 | 62 | /* a function name */ 63 | .fun { 64 | color: #4271ae; } } 65 | /* Use higher contrast and text-weight for printable form. */ 66 | @media print, projection { 67 | .str { 68 | color: #060; } 69 | 70 | .kwd { 71 | color: #006; 72 | font-weight: bold; } 73 | 74 | .com { 75 | color: #600; 76 | font-style: italic; } 77 | 78 | .typ { 79 | color: #404; 80 | font-weight: bold; } 81 | 82 | .lit { 83 | color: #044; } 84 | 85 | .pun, .opn, .clo { 86 | color: #440; } 87 | 88 | .tag { 89 | color: #006; 90 | font-weight: bold; } 91 | 92 | .atn { 93 | color: #404; } 94 | 95 | .atv { 96 | color: #060; } } 97 | /* Style */ 98 | /* 99 | pre.prettyprint { 100 | background: white; 101 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 102 | font-size: 12px; 103 | line-height: 1.5; 104 | border: 1px solid #ccc; 105 | padding: 10px; } 106 | */ 107 | 108 | /* Get LI elements to show when they are in the main article */ 109 | article ul li { 110 | list-style-type: circle; 111 | margin-left: 25px; 112 | } 113 | 114 | /* Specify class=linenums on a pre to get line numbering */ 115 | ol.linenums { 116 | margin-top: 0; 117 | margin-bottom: 0; } 118 | 119 | /* IE indents via margin-left */ 120 | li.L0, 121 | li.L1, 122 | li.L2, 123 | li.L3, 124 | li.L4, 125 | li.L5, 126 | li.L6, 127 | li.L7, 128 | li.L8, 129 | li.L9 { 130 | /* */ } 131 | 132 | /* Alternate shading for lines */ 133 | li.L1, 134 | li.L3, 135 | li.L5, 136 | li.L7, 137 | li.L9 { 138 | /* */ } 139 | -------------------------------------------------------------------------------- /tmpl/augments.tmpl: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 |
      8 |
    • 9 |
    10 | 11 | -------------------------------------------------------------------------------- /tmpl/container.tmpl: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 |
    16 |
    17 | 18 |

    19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |

    27 | 28 | 29 |
    30 | 31 |
    32 | 33 | 34 | 35 | 36 |
    37 | 38 |
    39 | 42 |
    43 | 44 |
    45 |
    46 | 47 | 48 |
    49 | 50 |
    51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
    61 | 62 |
    63 | 64 | 65 | 66 | 67 | 68 |

    Example 1? 's':'' ?>

    69 | 70 | 71 | 72 |
    73 | 74 | 75 |

    Extends

    76 | 77 | 78 | 79 | 80 | 81 |

    Requires

    82 | 83 |
      84 | 85 |
    • 86 | 87 |
    • 88 | 89 |
    90 | 91 | 92 | 96 |

    Classes

    97 | 98 |
    99 | 100 |
    101 | 102 |
    103 |
    104 | 105 | 106 | 107 |
    108 | 109 |
    110 | 111 | 112 | 117 |

    Mixins

    118 | 119 |
    120 | 121 |
    122 | 123 |
    124 |
    125 | 126 |
    127 | 128 |
    129 | 130 | 131 | 135 |

    Namespaces

    136 | 137 |
    138 | 139 |
    140 | 141 |
    142 |
    143 | 144 |
    145 | 146 |
    147 | 148 | 149 | 162 |

    Members

    163 | 164 | 166 | 167 | 168 | 169 | 170 | 171 | 175 |

    Methods

    176 | 177 | 178 | 179 | 180 | 181 | 182 | 187 |

    Type Definitions

    188 | 189 | 192 | 193 | 194 | 195 | 198 | 199 | 203 |

    Events

    204 | 205 | 206 | 207 | 208 | 209 |
    210 |
    211 | 212 | 213 | 214 | -------------------------------------------------------------------------------- /tmpl/details.tmpl: -------------------------------------------------------------------------------- 1 | " + data.defaultvalue + ""; 9 | defaultObjectClass = ' class="object-value"'; 10 | } 11 | 12 | var properties = data.properties; 13 | 14 | if (properties && properties.length && properties.forEach) { 15 | ?> 16 | 17 |
    Properties:
    18 | 19 | 20 | 21 | 22 | 23 |
    24 | 25 | 26 |
    Version:
    27 |
    28 |
      29 |
    • 30 | 31 |
    • 32 |
    33 |
    34 | 35 | 36 | 37 |
    Since:
    38 |
    39 |
      40 |
    • 41 | 42 |
    • 43 |
    44 |
    45 | 46 | 47 | 48 |
    Inherited From:
    49 |
    50 |
      51 |
    • 52 | 53 |
    • 54 |
    55 |
    56 | 57 | 58 | 59 |
    Overrides:
    60 |
    61 |
      62 |
    • 63 | 64 |
    • 65 |
    66 |
    67 | 68 | 69 | 70 |
    Implementations:
    71 |
    72 |
      73 | 74 |
    • 75 | 76 |
    • 77 | 78 |
    79 |
    80 | 81 | 82 | 83 |
    Implements:
    84 |
    85 |
      86 | 87 |
    • 88 | 89 |
    90 |
    91 | 92 | 93 | 94 |
    Mixes In:
    95 | 96 |
    97 |
      98 | 99 |
    • 100 | 101 |
    • 102 | 103 |
    104 |
    105 | 106 | 107 | 108 |
    Deprecated:
    109 | 111 |
    112 |
      113 |
    • Yes
    • 114 |
    115 |
    116 | 117 |
    118 |
      119 |
    • 120 | 121 |
    • 122 |
    123 |
    124 | 125 |
    126 | 127 | 128 | 129 |
    Author:
    130 |
    131 |
      132 | 133 |
    • 134 | 135 |
    • 136 | 137 |
    138 |
    139 | 140 | 141 | 142 | 143 | 150 | 151 | 152 | 153 |
    License:
    154 |
    155 |
      156 |
    • 157 | 158 |
    • 159 |
    160 |
    161 | 162 | 163 | 164 |
    Default Value:
    165 |
    166 |
      167 | > 168 | 169 | 170 |
    171 |
    172 | 173 | 174 | 175 |
    Source:
    176 |
    177 |
      178 |
    • 179 | , 180 |
    • 181 |
    182 |
    183 | 184 | 185 | 186 |
    Tutorials:
    187 |
    188 |
      189 | 190 |
    • 191 | 192 |
    • 193 | 194 |
    195 |
    196 | 197 | 198 | 199 |
    See:
    200 |
    201 |
      202 | 203 |
    • 204 | 205 |
    • 206 | 207 |
    208 |
    209 | 210 | 211 | 212 |
    To Do:
    213 |
    214 |
      215 | 216 |
    • 217 | 218 |
    • 219 | 220 |
    221 |
    222 | 223 |
    224 | -------------------------------------------------------------------------------- /tmpl/example.tmpl: -------------------------------------------------------------------------------- 1 | 2 |
    3 | -------------------------------------------------------------------------------- /tmpl/examples.tmpl: -------------------------------------------------------------------------------- 1 | 8 |

    9 | 10 |

    11 | 12 | 13 |
    14 | 15 | -------------------------------------------------------------------------------- /tmpl/exceptions.tmpl: -------------------------------------------------------------------------------- 1 | 2 | 3 |
    4 |
    5 |
    6 | 7 |
    8 |
    9 |
    10 |
    11 |
    12 |
    Type
    13 |
    14 | 15 |
    16 |
    17 |
    18 |
    19 |
    20 | 21 |
    22 | 23 | 24 | 25 | 26 | 27 |
    28 | 29 | -------------------------------------------------------------------------------- /tmpl/layout.tmpl: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | <?js= title ?> - Documentation 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 59 | 60 | 61 | 62 |
    63 | 95 |
    96 | 97 | 113 | 114 |
    115 | 116 |

    117 | 118 |

    119 | 120 | 121 | 122 |
    123 | 124 |
    125 | 126 |
    127 | Documentation generated by JSDoc 128 |
    129 | 130 | 131 | 132 | 133 | 134 | 147 | 148 | 149 | 150 | 151 | -------------------------------------------------------------------------------- /tmpl/mainpage.tmpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
    5 |
    6 | 7 |
    8 |
    9 | 10 | -------------------------------------------------------------------------------- /tmpl/members.tmpl: -------------------------------------------------------------------------------- 1 | 5 | 6 |

    7 | 8 |

    9 | 10 | 11 |

    12 | 13 |

    14 | 15 | 16 | 17 |
    18 | 19 |
    20 | 21 | 22 | 23 | 24 | 25 |
    Fires:
    26 |
      27 | 28 |
    • 29 | 30 |
    • 31 | 32 |
    33 | 34 | 35 | 36 |
    Example 1? 's':'' ?>
    37 | 38 | 39 | -------------------------------------------------------------------------------- /tmpl/method.tmpl: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |

    Constructor

    9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

    18 | 19 |

    20 |
    21 | 22 | 23 |

    24 | 25 |

    26 | 27 | 28 | 29 | 30 |
    31 | 32 |
    33 | 34 | 35 | 36 |
    Extends:
    37 | 38 | 39 | 40 | 41 |
    This:
    42 |
      43 |
    • 44 | 45 |
    • 46 |
    47 | 48 | 49 | 50 |
    Parameters:
    51 | 52 | 53 | 54 | 55 | 56 | 57 |
    Requires:
    58 |
      59 | 60 |
    • 61 | 62 |
    • 63 | 64 |
    65 | 66 | 67 | 68 |
    Fires:
    69 |
      70 | 71 |
    • 72 | 73 |
    • 74 | 75 |
    76 | 77 | 78 | 79 |
    Listens to Events:
    80 |
      81 | 82 |
    • 83 | 84 |
    • 85 | 86 |
    87 | 88 | 89 | 90 |
    Listeners of This Event:
    91 |
      92 | 93 |
    • 94 | 95 |
    • 96 | 97 |
    98 | 99 | 100 | 101 |
    Throws:
    102 | 1) { ?> 103 |
      104 | 105 |
    • 106 | 107 |
    • 108 | 110 |
    111 | 113 | 114 | 117 | 118 | 119 |
    120 | 121 | 122 | 123 | 124 | 125 |
    Example 1? 's':'' ?>
    126 | 127 |
    128 | 129 | -------------------------------------------------------------------------------- /tmpl/params.tmpl: -------------------------------------------------------------------------------- 1 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 78 | 79 | 80 | 81 | 82 | 83 | 88 | 89 | 90 | 103 | 104 | 105 | 106 | 111 | 112 | 113 | 120 | 121 | 122 | 124 | 125 |
    NameTypeAttributesDefaultDescription
    84 | 85 | 86 | 87 | 91 | 92 | <optional>
    93 | 94 | 95 | 96 | <nullable>
    97 | 98 | 99 | 100 | <repeatable>
    101 | 102 |
    107 | 108 | 109 | 110 | 114 | 115 | 116 |
    Properties
    117 | 118 | 119 |
    126 | -------------------------------------------------------------------------------- /tmpl/properties.tmpl: -------------------------------------------------------------------------------- 1 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 80 | 81 | 82 | 91 | 92 | 93 | 94 | 99 | 100 | 101 | 107 | 108 | 109 | 110 | 111 |
    NameTypeAttributesDefaultDescription
    76 | 77 | 78 | 79 | 83 | 84 | <optional>
    85 | 86 | 87 | 88 | <nullable>
    89 | 90 |
    95 | 96 | 97 | 98 | 102 | 103 | 104 |
    Properties
    105 | 106 |
    112 | -------------------------------------------------------------------------------- /tmpl/returns.tmpl: -------------------------------------------------------------------------------- 1 | 5 |
    6 | 7 |
    8 | 9 | 10 | 11 |
    12 |
    Type
    13 |
    14 | 15 |
    16 |
    17 | 18 | -------------------------------------------------------------------------------- /tmpl/source.tmpl: -------------------------------------------------------------------------------- 1 | 4 | 5 |
    6 |
    7 |
    8 |
    9 |
    10 | -------------------------------------------------------------------------------- /tmpl/tutorial.tmpl: -------------------------------------------------------------------------------- 1 |
    2 |
    3 | 0) { ?> 4 |
      5 | 8 |
    • 9 | 10 |
    • 11 | 12 |
    13 | 14 | 15 |

    16 | 17 |

    18 |
    19 | 20 |
    21 | 22 |
    23 |
    24 | -------------------------------------------------------------------------------- /tmpl/type.tmpl: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | | 11 | 12 | --------------------------------------------------------------------------------