From a66f96e395197d4fa659841228c48d96f3d8c7b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 18:23:45 +0000 Subject: [PATCH 1/2] Bump jsdoc-to-markdown from 8.0.3 to 9.0.1 Bumps [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown) from 8.0.3 to 9.0.1. - [Release notes](https://github.com/jsdoc2md/jsdoc-to-markdown/releases) - [Commits](https://github.com/jsdoc2md/jsdoc-to-markdown/compare/v8.0.3...v9.0.1) --- updated-dependencies: - dependency-name: jsdoc-to-markdown dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 456 ++++++++++++++++----------------------------------- 2 files changed, 140 insertions(+), 318 deletions(-) diff --git a/package.json b/package.json index 6367aeeb..8a221c43 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "husky": "^9.0.11", "jest": "^27.0.1", "jsdoc-babel": "^0.5.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.0.1", "parcel": "^2.4.1", "parcel-transformer-hbs": "^1.0.4", "peggy": "^4.0.2", diff --git a/yarn.lock b/yarn.lock index 8ec0b721..66192e31 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4564,15 +4564,6 @@ __metadata: languageName: node linkType: hard -"ansi-escape-sequences@npm:^4.0.0": - version: 4.1.0 - resolution: "ansi-escape-sequences@npm:4.1.0" - dependencies: - array-back: "npm:^3.0.1" - checksum: 10c0/a13fa79ee8ff2c270a424dbb2d0055514404598f30b28d1acda3205b03d41928d0a0702e052012a2a1683b96a58db26a7d388f7ad728e229a6e9f31cecd5db12 - languageName: node - linkType: hard - "ansi-escapes@npm:^4.2.1": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -4661,45 +4652,6 @@ __metadata: languageName: node linkType: hard -"array-back@npm:^1.0.2, array-back@npm:^1.0.3": - version: 1.0.4 - resolution: "array-back@npm:1.0.4" - dependencies: - typical: "npm:^2.6.0" - checksum: 10c0/2151398fcc418e77bae3d936ab7c543fd313843df3ddafe5799c9d9d90ff7dd75a08b5ca540356054f32110d4bfd30e13cb4a516771eecb286fe3e60c3cc472a - languageName: node - linkType: hard - -"array-back@npm:^2.0.0": - version: 2.0.0 - resolution: "array-back@npm:2.0.0" - dependencies: - typical: "npm:^2.6.1" - checksum: 10c0/51b49a283235b2d98666a35b29563cf87ce1aa86b5426158da3f4919c3e566e1ecb1154f53804aa4bcc5d8759cab81815fe7acdf730e874ad1943d246a4663a5 - languageName: node - linkType: hard - -"array-back@npm:^3.0.1, array-back@npm:^3.1.0": - version: 3.1.0 - resolution: "array-back@npm:3.1.0" - checksum: 10c0/bb1fe86aa8b39c21e73c68c7abf8b05ed939b8951a3b17527217f6a2a84e00e4cfa4fdec823081689c5e216709bf1f214a4f5feeee6726eaff83897fa1a7b8ee - languageName: node - linkType: hard - -"array-back@npm:^4.0.1": - version: 4.0.2 - resolution: "array-back@npm:4.0.2" - checksum: 10c0/8beb5b4c9535eab2905d4ff7d16c4d90ee5ca080d2b26b1e637434c0fcfadb3585283524aada753bd5d06bb88a5dac9e175c3a236183741d3d795a69b6678c96 - languageName: node - linkType: hard - -"array-back@npm:^5.0.0": - version: 5.0.0 - resolution: "array-back@npm:5.0.0" - checksum: 10c0/54143902a1c9cd015455eda5bffb9f009cca1aedffb1e2002d5bb86d53ff9f4f25186d8a21577e8912b9654617366b982602f037fad054b5325809a7048881c6 - languageName: node - linkType: hard - "array-back@npm:^6.2.2": version: 6.2.2 resolution: "array-back@npm:6.2.2" @@ -5238,14 +5190,17 @@ __metadata: languageName: node linkType: hard -"cache-point@npm:^2.0.0": - version: 2.0.0 - resolution: "cache-point@npm:2.0.0" +"cache-point@npm:^3.0.0": + version: 3.0.0 + resolution: "cache-point@npm:3.0.0" dependencies: - array-back: "npm:^4.0.1" - fs-then-native: "npm:^2.0.0" - mkdirp2: "npm:^1.0.4" - checksum: 10c0/85b8d54b4bcef5d5ca78ecc7f014bf6b2c40d3a6740049097876bd2a149908aff8b706373a6e8c6dd6f40927132e6ce6ea2fa07821d7386064db0b8006a8acb3 + array-back: "npm:^6.2.2" + peerDependencies: + "@75lb/nature": ^0.1.1 + peerDependenciesMeta: + "@75lb/nature": + optional: true + checksum: 10c0/ebee8ea1192fca51d59d90e6fb9b83e728db8145aa0c9ab91acb783800539cfa3c2a0d7e6d5c49e1915d42f4181b460e07f211a3a9510af366dc915858507986 languageName: node linkType: hard @@ -5348,6 +5303,15 @@ __metadata: languageName: node linkType: hard +"chalk-template@npm:^0.4.0": + version: 0.4.0 + resolution: "chalk-template@npm:0.4.0" + dependencies: + chalk: "npm:^4.1.2" + checksum: 10c0/6a4cb4252966475f0bd3ee1cd8780146e1ba69f445e59c565cab891ac18708c8143515d23e2b0fb7e192574fb7608d429ea5b28f3b7b9507770ad6fccd3467e3 + languageName: node + linkType: hard + "chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -5359,7 +5323,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0": +"chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -5423,7 +5387,7 @@ __metadata: husky: "npm:^9.0.11" jest: "npm:^27.0.1" jsdoc-babel: "npm:^0.5.0" - jsdoc-to-markdown: "npm:^8.0.0" + jsdoc-to-markdown: "npm:^9.0.1" lodash.get: "npm:^4.4.2" parcel: "npm:^2.4.1" parcel-transformer-hbs: "npm:^1.0.4" @@ -5528,16 +5492,6 @@ __metadata: languageName: node linkType: hard -"collect-all@npm:^1.0.4": - version: 1.0.4 - resolution: "collect-all@npm:1.0.4" - dependencies: - stream-connect: "npm:^1.0.2" - stream-via: "npm:^1.0.4" - checksum: 10c0/7bd5d1721255353b2ea952138a6e2f8dfe77436efa6b19f23e75690f76f9c9e57b833eb5ad63579a6e9a0fcdd22f632f2f2646f1e8ee90762d484758e7e3c4f3 - languageName: node - linkType: hard - "collect-v8-coverage@npm:^1.0.0": version: 1.0.1 resolution: "collect-v8-coverage@npm:1.0.1" @@ -5586,40 +5540,27 @@ __metadata: languageName: node linkType: hard -"command-line-args@npm:^5.0.0": - version: 5.2.1 - resolution: "command-line-args@npm:5.2.1" +"command-line-args@npm:^6.0.0": + version: 6.0.0 + resolution: "command-line-args@npm:6.0.0" dependencies: - array-back: "npm:^3.1.0" - find-replace: "npm:^3.0.0" + array-back: "npm:^6.2.2" + find-replace: "npm:^5.0.1" lodash.camelcase: "npm:^4.3.0" - typical: "npm:^4.0.0" - checksum: 10c0/a4f6a23a1e420441bd1e44dee24efd12d2e49af7efe6e21eb32fca4e843ca3d5501ddebad86a4e9d99aa626dd6dcb64c04a43695388be54e3a803dbc326cc89f + typical: "npm:^7.1.1" + checksum: 10c0/096df1db4830f7cdfbc352531aa5dfe8ea85887fa3f9095d9d6aef16edc5b00f8539ad00ac3bc2df431a7610ae02f1a7530ea4b090372b0745971ad753c6953f languageName: node linkType: hard -"command-line-tool@npm:^0.8.0": - version: 0.8.0 - resolution: "command-line-tool@npm:0.8.0" - dependencies: - ansi-escape-sequences: "npm:^4.0.0" - array-back: "npm:^2.0.0" - command-line-args: "npm:^5.0.0" - command-line-usage: "npm:^4.1.0" - typical: "npm:^2.6.1" - checksum: 10c0/c06b51a52ac4b5ffef71b49eccf3f1b3ad467506c2194dd2da1e70609a11e1a349e734de4f83a05ae86545c3d5ce7deb16e0a801f082c9f80cd92862b3c6a3ec - languageName: node - linkType: hard - -"command-line-usage@npm:^4.1.0": - version: 4.1.0 - resolution: "command-line-usage@npm:4.1.0" +"command-line-usage@npm:^7.0.3": + version: 7.0.3 + resolution: "command-line-usage@npm:7.0.3" dependencies: - ansi-escape-sequences: "npm:^4.0.0" - array-back: "npm:^2.0.0" - table-layout: "npm:^0.4.2" - typical: "npm:^2.6.1" - checksum: 10c0/0d53d0b91347c26df618498641cf6fa0d9a74b6f95b03f98335b1a1c48239da41bff364e4751b016e079909dc0ae678890c6b7846c88cf6e3274c7dbf9f9aa3d + array-back: "npm:^6.2.2" + chalk-template: "npm:^0.4.0" + table-layout: "npm:^4.1.0" + typical: "npm:^7.1.1" + checksum: 10c0/444a3e3c6fcbdcb5802de0fd2864ea5aef83eeeb3a825fd24846b996503d4b4140e75aeb2939b3430a06407f3acc02b76b3e08dafb3a3092d22fdcced0ecb0b0 languageName: node linkType: hard @@ -5818,6 +5759,13 @@ __metadata: languageName: node linkType: hard +"current-module-paths@npm:^1.1.2": + version: 1.1.2 + resolution: "current-module-paths@npm:1.1.2" + checksum: 10c0/04915ee6d76639a89eb3eb73ff7f92ebdc3dc9fda878e545585c8448ea3bba386031cfbdc534258838493f597d22f11fabed90afb15e60e904d51fd7e4af2647 + languageName: node + linkType: hard + "data-uri-to-buffer@npm:^6.0.2": version: 6.0.2 resolution: "data-uri-to-buffer@npm:6.0.2" @@ -5928,13 +5876,6 @@ __metadata: languageName: node linkType: hard -"deep-extend@npm:~0.6.0": - version: 0.6.0 - resolution: "deep-extend@npm:0.6.0" - checksum: 10c0/1c6b0abcdb901e13a44c7d699116d3d4279fdb261983122a3783e7273844d5f2537dc2e1c454a23fcf645917f93fbf8d07101c1d03c015a87faa662755212566 - languageName: node - linkType: hard - "deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" @@ -6080,23 +6021,23 @@ __metadata: languageName: node linkType: hard -"dmd@npm:^6.2.3": - version: 6.2.3 - resolution: "dmd@npm:6.2.3" +"dmd@npm:^7.0.6": + version: 7.0.6 + resolution: "dmd@npm:7.0.6" dependencies: array-back: "npm:^6.2.2" - cache-point: "npm:^2.0.0" + cache-point: "npm:^3.0.0" common-sequence: "npm:^2.0.2" - file-set: "npm:^4.0.2" + file-set: "npm:^5.2.2" handlebars: "npm:^4.7.8" marked: "npm:^4.3.0" - object-get: "npm:^2.1.1" - reduce-flatten: "npm:^3.0.1" - reduce-unique: "npm:^2.0.1" - reduce-without: "npm:^1.0.1" - test-value: "npm:^3.0.0" - walk-back: "npm:^5.1.0" - checksum: 10c0/826d511063fb861f3c426fdb31a7d3ed6973d49cdf2ca696b2bff970322a6403fbb4ad2c99381b56997debac80ee33f7a2c244f0ffaa5079bd19334e2f7d5646 + walk-back: "npm:^5.1.1" + peerDependencies: + "@75lb/nature": "*" + peerDependenciesMeta: + "@75lb/nature": + optional: true + checksum: 10c0/ebaf790fcc3587824d290ba0ce2b035af2f60dc625265ea6fa937cddcba47ee6dd5cf565fe80edc663a35bc9333cefb05ebdadcd36e7a9b1215e1e529349350f languageName: node linkType: hard @@ -7022,13 +6963,18 @@ __metadata: languageName: node linkType: hard -"file-set@npm:^4.0.2": - version: 4.0.2 - resolution: "file-set@npm:4.0.2" +"file-set@npm:^5.2.0, file-set@npm:^5.2.2": + version: 5.2.2 + resolution: "file-set@npm:5.2.2" dependencies: - array-back: "npm:^5.0.0" - glob: "npm:^7.1.6" - checksum: 10c0/940bf0aa4fecdc3e8a2688fa15dd71181c13acfe8db0201052373e03d383cd82e296bf13a03cc20a33b177ba22152b37a3e73ef0e099466485296b0ea69022c9 + array-back: "npm:^6.2.2" + fast-glob: "npm:^3.3.2" + peerDependencies: + "@75lb/nature": "*" + peerDependenciesMeta: + "@75lb/nature": + optional: true + checksum: 10c0/e6cc401f3bfc17dfbad180c294197fc8d466718d01bc33cf972dba5e4cf636566a1abcd51dd88fd9a4cdf56000591c721908cf50401887aece16963d88e4754b languageName: node linkType: hard @@ -7050,12 +6996,15 @@ __metadata: languageName: node linkType: hard -"find-replace@npm:^3.0.0": - version: 3.0.0 - resolution: "find-replace@npm:3.0.0" - dependencies: - array-back: "npm:^3.0.1" - checksum: 10c0/fcd1bf7960388c8193c2861bcdc760c18ac14edb4bde062a961915d9a25727b2e8aabf0229e90cc09c753fd557e5a3e5ae61e49cadbe727be89a9e8e49ce7668 +"find-replace@npm:^5.0.1": + version: 5.0.2 + resolution: "find-replace@npm:5.0.2" + peerDependencies: + "@75lb/nature": "*" + peerDependenciesMeta: + "@75lb/nature": + optional: true + checksum: 10c0/25db7167e8767b0683251a985af82e29b0ac26003fe2cd6ddd86e4f2c83fc10d97a81c6f6686034d8c2b9ee88bc53547bf86cc103479a7323342da5ace9f6504 languageName: node linkType: hard @@ -7162,13 +7111,6 @@ __metadata: languageName: node linkType: hard -"fs-then-native@npm:^2.0.0": - version: 2.0.0 - resolution: "fs-then-native@npm:2.0.0" - checksum: 10c0/70eba6fb0eeafa8314c2f37adf34a837bcb69d3f5ce099f3fe714bd19b7cd0cc7b102a57825f36ce4e8729330269d6ad1078266850bf4881818f6fc8ed3feb5b - languageName: node - linkType: hard - "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" @@ -7425,7 +7367,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0": +"glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -8880,20 +8822,23 @@ __metadata: languageName: node linkType: hard -"jsdoc-api@npm:^8.1.1": - version: 8.1.1 - resolution: "jsdoc-api@npm:8.1.1" +"jsdoc-api@npm:^9.3.1": + version: 9.3.1 + resolution: "jsdoc-api@npm:9.3.1" dependencies: array-back: "npm:^6.2.2" - cache-point: "npm:^2.0.0" - collect-all: "npm:^1.0.4" - file-set: "npm:^4.0.2" - fs-then-native: "npm:^2.0.0" + cache-point: "npm:^3.0.0" + current-module-paths: "npm:^1.1.2" + file-set: "npm:^5.2.0" jsdoc: "npm:^4.0.3" object-to-spawn-args: "npm:^2.0.1" - temp-path: "npm:^1.0.0" - walk-back: "npm:^5.1.0" - checksum: 10c0/501dd94b62adccc2168195641123bd5c79d00359e0f38d37370485e36afc45bcfeba7eeaeb62d9450aa1a9a6df4dffa15ded55b3a77f351f2e4d09ab0225e108 + walk-back: "npm:^5.1.1" + peerDependencies: + "@75lb/nature": "*" + peerDependenciesMeta: + "@75lb/nature": + optional: true + checksum: 10c0/9353684f1ed74c60d10a752bda5269e71ba9c67ec12977f98aa34ef9de1b0b8330b1b6bdafed63d9842049e34b484f3edbcb477fbf2f91aa9b85ccc93a7c9aa0 languageName: node linkType: hard @@ -8909,16 +8854,15 @@ __metadata: languageName: node linkType: hard -"jsdoc-parse@npm:^6.2.1": - version: 6.2.1 - resolution: "jsdoc-parse@npm:6.2.1" +"jsdoc-parse@npm:^6.2.4": + version: 6.2.4 + resolution: "jsdoc-parse@npm:6.2.4" dependencies: array-back: "npm:^6.2.2" + find-replace: "npm:^5.0.1" lodash.omit: "npm:^4.5.0" - reduce-extract: "npm:^1.0.0" - sort-array: "npm:^4.1.5" - test-value: "npm:^3.0.0" - checksum: 10c0/4040817b6dbc32d42fe43a3dd8ffbef9edd95dc555b099bd62308bc7d3b6e154bcec22322c2e2872f28e99e93538b33e054258013075a41b8ba643a0289645d0 + sort-array: "npm:^5.0.0" + checksum: 10c0/cabfb58cb97616f77ac8b09d3cf6af0eba79b275c9471c85fe9a887d74c39129e36f0cd222aee51a78adcde29d265863e9ee98771959b6fa8dc23d716d851608 languageName: node linkType: hard @@ -8929,20 +8873,26 @@ __metadata: languageName: node linkType: hard -"jsdoc-to-markdown@npm:^8.0.0": - version: 8.0.3 - resolution: "jsdoc-to-markdown@npm:8.0.3" +"jsdoc-to-markdown@npm:^9.0.1": + version: 9.0.1 + resolution: "jsdoc-to-markdown@npm:9.0.1" dependencies: array-back: "npm:^6.2.2" - command-line-tool: "npm:^0.8.0" + command-line-args: "npm:^6.0.0" + command-line-usage: "npm:^7.0.3" config-master: "npm:^3.1.0" - dmd: "npm:^6.2.3" - jsdoc-api: "npm:^8.1.1" - jsdoc-parse: "npm:^6.2.1" - walk-back: "npm:^5.1.0" + dmd: "npm:^7.0.6" + jsdoc-api: "npm:^9.3.1" + jsdoc-parse: "npm:^6.2.4" + walk-back: "npm:^5.1.1" + peerDependencies: + "@75lb/nature": "*" + peerDependenciesMeta: + "@75lb/nature": + optional: true bin: jsdoc2md: bin/cli.js - checksum: 10c0/f47b1d0b019c09a4b0f02c07728ffc330bdf67af332b2d3439e0cad3f12fbd3ff56a117a6128a6107ecae84421f3a557eed8aaff8f6ccc6ba0211498c0423ad8 + checksum: 10c0/6011568f5ed323775b97b36fb2dd446aec4045ac222a3f7c8b3aa2955fa2494696d3a8945e2489e3b8da0a9bad91e3d880b45c7ff2ae38bf27e1ccf8c715be74 languageName: node linkType: hard @@ -9353,13 +9303,6 @@ __metadata: languageName: node linkType: hard -"lodash.padend@npm:^4.6.1": - version: 4.6.1 - resolution: "lodash.padend@npm:4.6.1" - checksum: 10c0/da10eae6e7862541e431d97e652ea66690307104676a30793398e2f66d0fd9a62b07f199451d2185560d9b4627dc6652d33dc7cceb7ab9d843f6e15addec56f5 - languageName: node - linkType: hard - "lodash@npm:^4.17.10, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.21, lodash@npm:^4.7.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" @@ -9691,13 +9634,6 @@ __metadata: languageName: node linkType: hard -"mkdirp2@npm:^1.0.4": - version: 1.0.5 - resolution: "mkdirp2@npm:1.0.5" - checksum: 10c0/f3ba1448153b8defcd66b72b51a5f9e115536186d973ea7788df602972f5e10ebbf1845da739df85a36df2efbebfca8a4d7b534d734b6b1cf97b873a30216d2a - languageName: node - linkType: hard - "mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" @@ -9943,13 +9879,6 @@ __metadata: languageName: node linkType: hard -"object-get@npm:^2.1.1": - version: 2.1.1 - resolution: "object-get@npm:2.1.1" - checksum: 10c0/ac57963c9bd4f7d9166d87e7dcdcd177ad56e73f2ecf38c82a7aad71f82e264a2111017ce113c2fd945f107c1063375ba3e2d4ad9398e0b8d3ce1aa4f19a6d3a - languageName: node - linkType: hard - "object-inspect@npm:^1.13.1": version: 1.13.1 resolution: "object-inspect@npm:1.13.1" @@ -10633,45 +10562,6 @@ __metadata: languageName: node linkType: hard -"reduce-extract@npm:^1.0.0": - version: 1.0.0 - resolution: "reduce-extract@npm:1.0.0" - dependencies: - test-value: "npm:^1.0.1" - checksum: 10c0/3d47529bc2ecd21db86d1388c5c45f778b1ae77e706cf432ea875cf03ce138198f7d41a4bc1cbdd5277ba07d5f8cc5fbca998bb551ccd493403d040e237f3f16 - languageName: node - linkType: hard - -"reduce-flatten@npm:^1.0.1": - version: 1.0.1 - resolution: "reduce-flatten@npm:1.0.1" - checksum: 10c0/a8180efcb284cc81cd64eba81c13c30564a9acafe0716198b8f3d893e8cd26db4862eee38496c9531bf7cd88dc4d3001240d3f3845c29b2d8a37199a646c2e40 - languageName: node - linkType: hard - -"reduce-flatten@npm:^3.0.1": - version: 3.0.1 - resolution: "reduce-flatten@npm:3.0.1" - checksum: 10c0/9b8019d7decca7320c728f542031e81d7d4c34b2d409bacaeee8b6fed641c91c9cbac8d8ef2d7f1e3ed408b6f8fd54fe42e86a8ec97cf0c3b3a4c0f229b79250 - languageName: node - linkType: hard - -"reduce-unique@npm:^2.0.1": - version: 2.0.1 - resolution: "reduce-unique@npm:2.0.1" - checksum: 10c0/fb001611a9025dacc8f94d8573a482fc3469e84622493e4b5379ce0f571aae1a8e06b66d9fdf9fd2bbee5aef56ecdae1d17dd23727657bc5d76523508b8dc2de - languageName: node - linkType: hard - -"reduce-without@npm:^1.0.1": - version: 1.0.1 - resolution: "reduce-without@npm:1.0.1" - dependencies: - test-value: "npm:^2.0.0" - checksum: 10c0/25832300e7ac3b44611d71b7ad3670c9a9454ace245773678099a7ee89e3d1f1549e049b3e63f097b0c68fa224af501b7a3964f057d362131277c23fcb743de9 - languageName: node - linkType: hard - "regenerate-unicode-properties@npm:^10.0.1": version: 10.0.1 resolution: "regenerate-unicode-properties@npm:10.0.1" @@ -11248,13 +11138,18 @@ __metadata: languageName: node linkType: hard -"sort-array@npm:^4.1.5": - version: 4.1.5 - resolution: "sort-array@npm:4.1.5" +"sort-array@npm:^5.0.0": + version: 5.0.0 + resolution: "sort-array@npm:5.0.0" dependencies: - array-back: "npm:^5.0.0" - typical: "npm:^6.0.1" - checksum: 10c0/261a15af4ed2f4aa6e0d466b18813137c3e00de45cf06c7d59536ad9b124d383771ec72ed7d8f5e5ede7c152dc1f09216f30e5f989bc02d2636c4162f46f6f4f + array-back: "npm:^6.2.2" + typical: "npm:^7.1.1" + peerDependencies: + "@75lb/nature": ^0.1.1 + peerDependenciesMeta: + "@75lb/nature": + optional: true + checksum: 10c0/b6d19c63b5f00f7637e0c991de7aa07bdf314348ce22ba760524d8bf309cab7c22950b2f6014e652f4fa6a04faef7e1288e0f1fca82252f5094c7b8ecfd904f8 languageName: node linkType: hard @@ -11335,22 +11230,6 @@ __metadata: languageName: node linkType: hard -"stream-connect@npm:^1.0.2": - version: 1.0.2 - resolution: "stream-connect@npm:1.0.2" - dependencies: - array-back: "npm:^1.0.2" - checksum: 10c0/a26678d7ef1ab3666c614c2a7879da84b11e9a07daafaf3a728e040bfe5f85880526c2c42f5b183a9e7a0f40ee044dce330843834d45571741aa7fa837e88ded - languageName: node - linkType: hard - -"stream-via@npm:^1.0.4": - version: 1.0.4 - resolution: "stream-via@npm:1.0.4" - checksum: 10c0/fde9a4873b5963bf99d55b66d57b57e1511753c38d7194c50c90db833e440e5f968871cdac35046ea5985580fa0de970fbcd53fe5fe86e8d57ae472d1cd41abd - languageName: node - linkType: hard - "streamx@npm:^2.15.0, streamx@npm:^2.18.0": version: 2.18.0 resolution: "streamx@npm:2.18.0" @@ -11579,16 +11458,13 @@ __metadata: languageName: node linkType: hard -"table-layout@npm:^0.4.2": - version: 0.4.5 - resolution: "table-layout@npm:0.4.5" +"table-layout@npm:^4.1.0": + version: 4.1.1 + resolution: "table-layout@npm:4.1.1" dependencies: - array-back: "npm:^2.0.0" - deep-extend: "npm:~0.6.0" - lodash.padend: "npm:^4.6.1" - typical: "npm:^2.6.1" - wordwrapjs: "npm:^3.0.0" - checksum: 10c0/0abe0256d6f588998f42e3ad9e54625d2c5a7ab60a21f600bd8d811af95d11a39a0c113fe74f6bbc0e8523d64251fb7ecb6aef73d1a04f90889b1d449592d55a + array-back: "npm:^6.2.2" + wordwrapjs: "npm:^5.1.0" + checksum: 10c0/26d8e54a55ddb4de447c8f02a8d7fcbb66a9580375e406a3bc7717ab223a413f6dfbded6710f288b3dfd277991813a0bd5a17419a0dc6db54d9a36d883d868dc languageName: node linkType: hard @@ -11634,13 +11510,6 @@ __metadata: languageName: node linkType: hard -"temp-path@npm:^1.0.0": - version: 1.0.0 - resolution: "temp-path@npm:1.0.0" - checksum: 10c0/8b0e4598e3560ff0e50af90c670da3b09f38bc0fd7468a18b0d34aa86ee342b227832e979c3aa5a183e8d057aa3fc1037ae626935a46165dc0977d10f2a8986c - languageName: node - linkType: hard - "term-size@npm:^2.2.1": version: 2.2.1 resolution: "term-size@npm:2.2.1" @@ -11669,36 +11538,6 @@ __metadata: languageName: node linkType: hard -"test-value@npm:^1.0.1": - version: 1.1.0 - resolution: "test-value@npm:1.1.0" - dependencies: - array-back: "npm:^1.0.2" - typical: "npm:^2.4.2" - checksum: 10c0/7da4d4088754480db72fae7a253a41738aced773c290f4807a518b39da138250e38b72c37965c0f73a04258b02f93f7dfbcb667b5e944219be878f4b8604af90 - languageName: node - linkType: hard - -"test-value@npm:^2.0.0": - version: 2.1.0 - resolution: "test-value@npm:2.1.0" - dependencies: - array-back: "npm:^1.0.3" - typical: "npm:^2.6.0" - checksum: 10c0/4f2830712641522408d790435e6527e277c54a76c9046db6616527045de4f1ac143e181e67fd3b0047e748cb477c48c59381a8f3a1b3599ccf13996aedf75688 - languageName: node - linkType: hard - -"test-value@npm:^3.0.0": - version: 3.0.0 - resolution: "test-value@npm:3.0.0" - dependencies: - array-back: "npm:^2.0.0" - typical: "npm:^2.6.1" - checksum: 10c0/4b6679dd1797fccddd996a4c2f6cbbed27b7c45a1085cb55a27f89cb67aa7981075b2dc1d6256685d08712ec9ceb9ba079879d109adb4a221de81c26f9025641 - languageName: node - linkType: hard - "text-decoder@npm:^1.1.0": version: 1.1.1 resolution: "text-decoder@npm:1.1.1" @@ -12121,24 +11960,10 @@ __metadata: languageName: node linkType: hard -"typical@npm:^2.4.2, typical@npm:^2.6.0, typical@npm:^2.6.1": - version: 2.6.1 - resolution: "typical@npm:2.6.1" - checksum: 10c0/b3dee3aa4e8bbc2821c95dc98cb4618cac47735a399b0b24594f541049593381c5e01ff1ce3a35c9ebb3166ebd3edc62a3f6e34a99ccd2bdf20f205597f0df99 - languageName: node - linkType: hard - -"typical@npm:^4.0.0": - version: 4.0.0 - resolution: "typical@npm:4.0.0" - checksum: 10c0/f300b198fb9fe743859b75ec761d53c382723dc178bbce4957d9cb754f2878a44ce17dc0b6a5156c52be1065449271f63754ba594dac225b80ce3aa39f9241ed - languageName: node - linkType: hard - -"typical@npm:^6.0.1": - version: 6.0.1 - resolution: "typical@npm:6.0.1" - checksum: 10c0/a04004a2153108703cae64e634bb2a868d3990451b98e330d67a0f039718d992d5921ff6ca2cd066a2f27e2fb964e361e90d4206fa76f667fc158b2158a3d5a5 +"typical@npm:^7.1.1": + version: 7.2.0 + resolution: "typical@npm:7.2.0" + checksum: 10c0/aa447e761808c9447c3abde370f2bdd2edd031ff68183aac49ac503905155e66a9f47e1462ac6fa411f76b22920c4d403f948f49d984ebf52d019fa590034963 languageName: node linkType: hard @@ -12368,10 +12193,10 @@ __metadata: languageName: node linkType: hard -"walk-back@npm:^5.1.0": - version: 5.1.0 - resolution: "walk-back@npm:5.1.0" - checksum: 10c0/5afaa0553203e7f157f47e3cfa84e4d029c5469a24a8931ae443178231cb6488a06385e922aab0b53f897c8de88542d98d504827b5a19c47dc6d745084c5ee5b +"walk-back@npm:^5.1.1": + version: 5.1.1 + resolution: "walk-back@npm:5.1.1" + checksum: 10c0/e2b7b2d146c8b0f144acb30d9908734bacda8f73feead40a30adb386fea3d26dd9cb78fdb137c5f66a4fce88ee62b3b62af48877cbeaeaefd8d9dbea350e4d68 languageName: node linkType: hard @@ -12507,13 +12332,10 @@ __metadata: languageName: node linkType: hard -"wordwrapjs@npm:^3.0.0": - version: 3.0.0 - resolution: "wordwrapjs@npm:3.0.0" - dependencies: - reduce-flatten: "npm:^1.0.1" - typical: "npm:^2.6.1" - checksum: 10c0/b4d1e06a04dee183f41e6f8b063b33b1e6f5f24ff00319d19dfc77fc99f117ab723687bd3266383e9a7b75b884cd21e242af50cbe7b2531c758a1bb2e015b28c +"wordwrapjs@npm:^5.1.0": + version: 5.1.0 + resolution: "wordwrapjs@npm:5.1.0" + checksum: 10c0/e147162f139eb8c05257729fde586f5422a2d242aa8f027b5fa5adead1b571b455d0690a15c73aeaa31c93ba96864caa06d84ebdb2c32a0890602ab86a7568d1 languageName: node linkType: hard From 3aa643e61c8ccbb60ebbd3a6587abc1de6e1eea1 Mon Sep 17 00:00:00 2001 From: Martijn Versluis Date: Wed, 18 Sep 2024 20:26:15 +0200 Subject: [PATCH 2/2] Add updated README --- README.md | 930 +++++++++++++++++++++++++++--------------------------- 1 file changed, 465 insertions(+), 465 deletions(-) diff --git a/README.md b/README.md index 4d0ad51c..cec8687e 100644 --- a/README.md +++ b/README.md @@ -364,6 +364,8 @@ subject to breaking changes between major versions. ## Classes
+
ChordSheetSerializer
+

Serializes a song into een plain object, and deserializes the serialized object back into a [Song](#Song)

ChordLyricsPair

Represents a chord with the corresponding (partial) lyrics

Comment
@@ -381,6 +383,8 @@ metadata.get('author') // => 'John'

Represents a song in a chord sheet. Currently a chord sheet can only have one song.

Tag

Represents a tag/directive. See https://www.chordpro.org/chordpro/chordpro-directives/

+
Chord
+

Represents a Chord, consisting of a root, suffix (quality) and bass

ChordProFormatter

Formats a song into a ChordPro chord sheet

ChordsOverWordsFormatter
@@ -396,6 +400,9 @@ metadata.get('author') // => 'John'

PDF conversion.

TextFormatter

Formats a song into a plain text chord sheet

+
Key
+

Represents a key, such as Eb (symbol), #3 (numeric) or VII (numeral).

+

The only function considered public API is Key.distance

ChordProParser

Parses a ChordPro chord sheet

ChordSheetParser
@@ -441,13 +448,6 @@ Whisper words of wisdom, let it be
UltimateGuitarParser

Parses an Ultimate Guitar chord sheet with metadata Inherits from [ChordSheetParser](#ChordSheetParser)

-
Chord
-

Represents a Chord, consisting of a root, suffix (quality) and bass

-
ChordSheetSerializer
-

Serializes a song into een plain object, and deserializes the serialized object back into a [Song](#Song)

-
Key
-

Represents a key, such as Eb (symbol), #3 (numeric) or VII (numeral).

-

The only function considered public API is Key.distance

## Constants @@ -577,6 +577,37 @@ Possible values are 'solfege', 'symbol', 'numeral' and 'number'

Returns applicable keys to transpose to from the provided key

+ + +## ChordSheetSerializer +

Serializes a song into een plain object, and deserializes the serialized object back into a [Song](#Song)

+ +**Kind**: global class + +* [ChordSheetSerializer](#ChordSheetSerializer) + * [.serialize()](#ChordSheetSerializer+serialize) ⇒ + * [.deserialize(serializedSong)](#ChordSheetSerializer+deserialize) ⇒ [Song](#Song) + + + +### chordSheetSerializer.serialize() ⇒ +

Serializes the chord sheet to a plain object, which can be converted to any format like JSON, XML etc +Can be deserialized using [deserialize](deserialize)

+ +**Kind**: instance method of [ChordSheetSerializer](#ChordSheetSerializer) +**Returns**:

object A plain JS object containing all chord sheet data

+ + +### chordSheetSerializer.deserialize(serializedSong) ⇒ [Song](#Song) +

Deserializes a song that has been serialized using [serialize](serialize)

+ +**Kind**: instance method of [ChordSheetSerializer](#ChordSheetSerializer) +**Returns**: [Song](#Song) -

The deserialized song

+ +| Param | Type | Description | +| --- | --- | --- | +| serializedSong | object |

The serialized song

| + ## ChordLyricsPair @@ -1142,637 +1173,606 @@ https://chordpro.org/chordpro/directives-env_bridge/, https://chordpro.org/chord **Kind**: instance method of [Tag](#Tag) **Returns**: [Tag](#Tag) -

The cloned tag

- + -## ChordProFormatter -

Formats a song into a ChordPro chord sheet

+## Chord +

Represents a Chord, consisting of a root, suffix (quality) and bass

**Kind**: global class - -### chordProFormatter.format(song) ⇒ string -

Formats a song into a ChordPro chord sheet.

+* [Chord](#Chord) + * _instance_ + * [.clone()](#Chord+clone) ⇒ [Chord](#Chord) + * [.toChordSymbol([referenceKey])](#Chord+toChordSymbol) ⇒ [Chord](#Chord) + * [.toChordSymbolString([referenceKey])](#Chord+toChordSymbolString) ⇒ string + * [.isChordSymbol()](#Chord+isChordSymbol) ⇒ boolean + * [.toChordSolfege([referenceKey])](#Chord+toChordSolfege) ⇒ [Chord](#Chord) + * [.toChordSolfegeString([referenceKey])](#Chord+toChordSolfegeString) ⇒ string + * [.isChordSolfege()](#Chord+isChordSolfege) ⇒ boolean + * [.toNumeric([referenceKey])](#Chord+toNumeric) ⇒ [Chord](#Chord) + * [.toNumeral([referenceKey])](#Chord+toNumeral) ⇒ [Chord](#Chord) + * [.toNumeralString([referenceKey])](#Chord+toNumeralString) ⇒ string + * [.isNumeric()](#Chord+isNumeric) ⇒ boolean + * [.toNumericString([referenceKey])](#Chord+toNumericString) ⇒ string + * [.isNumeral()](#Chord+isNumeral) ⇒ boolean + * [.toString([configuration])](#Chord+toString) ⇒ string + * [.normalize([key], [options])](#Chord+normalize) ⇒ [Chord](#Chord) + * [.useModifier(newModifier)](#Chord+useModifier) ⇒ [Chord](#Chord) + * [.transposeUp()](#Chord+transposeUp) ⇒ [Chord](#Chord) + * [.transposeDown()](#Chord+transposeDown) ⇒ [Chord](#Chord) + * [.transpose(delta)](#Chord+transpose) ⇒ [Chord](#Chord) + * _static_ + * [.parse(chordString)](#Chord.parse) ⇒ [Chord](#Chord) \| null -**Kind**: instance method of [ChordProFormatter](#ChordProFormatter) -**Returns**: string -

The ChordPro string

+ -| Param | Type | Description | -| --- | --- | --- | -| song | [Song](#Song) |

The song to be formatted

| +### chord.clone() ⇒ [Chord](#Chord) +

Returns a deep copy of the chord

- +**Kind**: instance method of [Chord](#Chord) + -## ChordsOverWordsFormatter -

Formats a song into a plain text chord sheet

+### chord.toChordSymbol([referenceKey]) ⇒ [Chord](#Chord) +

Converts the chord to a chord symbol, using the supplied key as a reference. +For example, a numeric chord #4 with reference key E will return the chord symbol A#. +When the chord is already a chord symbol, it will return a clone of the object.

-**Kind**: global class - +**Kind**: instance method of [Chord](#Chord) +**Returns**: [Chord](#Chord) -

the chord symbol

-### chordsOverWordsFormatter.format(song) ⇒ string -

Formats a song into a plain text chord sheet

+| Param | Type | Default | Description | +| --- | --- | --- | --- | +| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a numeric or numeral.

| -**Kind**: instance method of [ChordsOverWordsFormatter](#ChordsOverWordsFormatter) -**Returns**: string -

the chord sheet

+ -| Param | Type | Description | -| --- | --- | --- | -| song | [Song](#Song) |

The song to be formatted

| +### chord.toChordSymbolString([referenceKey]) ⇒ string +

Converts the chord to a chord symbol string, using the supplied key as a reference. +For example, a numeric chord #4 with reference key E will return the chord symbol A#. +When the chord is already a chord symbol, it will return a string version of the chord.

- +**Kind**: instance method of [Chord](#Chord) +**Returns**: string -

the chord symbol string

+**See**: {toChordSymbol} -## Formatter -

Base class for all formatters, taking care of receiving a configuration wrapping that inside a Configuration object

+| Param | Type | Default | Description | +| --- | --- | --- | --- | +| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a numeric or numeral.

| -**Kind**: global class - + -### new Formatter([configuration]) -

Instantiate

+### chord.isChordSymbol() ⇒ boolean +

Determines whether the chord is a chord symbol

+ +**Kind**: instance method of [Chord](#Chord) + + +### chord.toChordSolfege([referenceKey]) ⇒ [Chord](#Chord) +

Converts the chord to a chord solfege, using the supplied key as a reference. +For example, a numeric chord #4 with reference key Mi will return the chord symbol La#. +When the chord is already a chord solfege, it will return a clone of the object.

+**Kind**: instance method of [Chord](#Chord) +**Returns**: [Chord](#Chord) -

the chord solfege

| Param | Type | Default | Description | | --- | --- | --- | --- | -| [configuration] | Object | {} |

options

| -| [configuration.evaluate] | boolean | false |

Whether or not to evaluate meta expressions. For more info about meta expressions, see: https://bit.ly/2SC9c2u

| -| [configuration.metadata] | object | {} | | -| [configuration.metadata.separator] | string | "\", \"" |

The separator to be used when rendering a metadata value that has multiple values. See: https://bit.ly/2SC9c2u

| -| [configuration.key] | [Key](#Key) \| string | |

The key to use for rendering. The chord sheet will be transposed from the song's original key (as indicated by the {key} directive) to the specified key. Note that transposing will only work if the original song key is set.

| -| [configuration.expandChorusDirective] | boolean | false |

Whether or not to expand {chorus} directives by rendering the last defined chorus inline after the directive.

| -| [configuration.useUnicodeModifiers] | boolean | false |

Whether or not to use unicode flat and sharp symbols.

| -| [configuration.normalizeChords] | boolean | true |

Whether or not to automatically normalize chords

| +| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a numeric or numeral.

| - + -## HtmlDivFormatter -

Formats a song into HTML. It uses DIVs to align lyrics with chords, which makes it useful for responsive web pages.

+### chord.toChordSolfegeString([referenceKey]) ⇒ string +

Converts the chord to a chord solfege string, using the supplied key as a reference. +For example, a numeric chord #4 with reference key E will return the chord solfege A#. +When the chord is already a chord solfege, it will return a string version of the chord.

-**Kind**: global class - +**Kind**: instance method of [Chord](#Chord) +**Returns**: string -

the chord solfege string

+**See**: {toChordSolfege} -## HtmlFormatter -

Acts as a base class for HTML formatters

+| Param | Type | Default | Description | +| --- | --- | --- | --- | +| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a numeric or numeral.

| -**Kind**: global class + -* [HtmlFormatter](#HtmlFormatter) - * [.cssObject](#HtmlFormatter+cssObject) ⇒ Object.<string, Object.<string, string>> - * [.format(song)](#HtmlFormatter+format) ⇒ string - * [.cssString(scope)](#HtmlFormatter+cssString) ⇒ string +### chord.isChordSolfege() ⇒ boolean +

Determines whether the chord is a chord solfege

- +**Kind**: instance method of [Chord](#Chord) + -### htmlFormatter.cssObject ⇒ Object.<string, Object.<string, string>> -

Basic CSS, in object style à la useStyles, to use with the HTML output -For a CSS string see [cssString](cssString)

-

Example:

-
'.paragraph': {
-  marginBottom: '1em'
-}
-
+### chord.toNumeric([referenceKey]) ⇒ [Chord](#Chord) +

Converts the chord to a numeric chord, using the supplied key as a reference. +For example, a chord symbol A# with reference key E will return the numeric chord #4.

-**Kind**: instance property of [HtmlFormatter](#HtmlFormatter) -**Returns**: Object.<string, Object.<string, string>> -

the CSS object

- +**Kind**: instance method of [Chord](#Chord) +**Returns**: [Chord](#Chord) -

the numeric chord

-### htmlFormatter.format(song) ⇒ string -

Formats a song into HTML.

+| Param | Type | Default | Description | +| --- | --- | --- | --- | +| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a chord symbol

| -**Kind**: instance method of [HtmlFormatter](#HtmlFormatter) -**Returns**: string -

The HTML string

+ -| Param | Type | Description | -| --- | --- | --- | -| song | [Song](#Song) |

The song to be formatted

| +### chord.toNumeral([referenceKey]) ⇒ [Chord](#Chord) +

Converts the chord to a numeral chord, using the supplied key as a reference. +For example, a chord symbol A# with reference key E will return the numeral chord #IV.

- +**Kind**: instance method of [Chord](#Chord) +**Returns**: [Chord](#Chord) -

the numeral chord

-### htmlFormatter.cssString(scope) ⇒ string -

Generates basic CSS, optionally scoped within the provided selector, to use with the HTML output

-

For example, execute cssString('.chordSheetViewer') will result in CSS like:

-
.chordSheetViewer .paragraph {
-  margin-bottom: 1em;
-}
-
+| Param | Type | Default | Description | +| --- | --- | --- | --- | +| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a chord symbol

| -**Kind**: instance method of [HtmlFormatter](#HtmlFormatter) -**Returns**: string -

the CSS string

+ -| Param | Description | -| --- | --- | -| scope |

the CSS scope to use, for example .chordSheetViewer

| +### chord.toNumeralString([referenceKey]) ⇒ string +

Converts the chord to a numeral chord string, using the supplied kye as a reference. +For example, a chord symbol A# with reference key E will return the numeral chord #4.

- +**Kind**: instance method of [Chord](#Chord) +**Returns**: string -

the numeral chord string

+**See**: {toNumeral} -## HtmlTableFormatter -

Formats a song into HTML. It uses TABLEs to align lyrics with chords, which makes the HTML for things like -PDF conversion.

+| Param | Type | Default | Description | +| --- | --- | --- | --- | +| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a chord symbol

| -**Kind**: global class - + -## TextFormatter -

Formats a song into a plain text chord sheet

+### chord.isNumeric() ⇒ boolean +

Determines whether the chord is numeric

-**Kind**: global class - +**Kind**: instance method of [Chord](#Chord) + -### textFormatter.format(song) ⇒ string -

Formats a song into a plain text chord sheet

+### chord.toNumericString([referenceKey]) ⇒ string +

Converts the chord to a numeric chord string, using the supplied kye as a reference. +For example, a chord symbol A# with reference key E will return the numeric chord #4.

-**Kind**: instance method of [TextFormatter](#TextFormatter) -**Returns**: string -

the chord sheet

+**Kind**: instance method of [Chord](#Chord) +**Returns**: string -

the numeric chord string

+**See**: {toNumeric} -| Param | Type | Description | -| --- | --- | --- | -| song | [Song](#Song) |

The song to be formatted

| +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a chord symbol

| - + -## ChordProParser -

Parses a ChordPro chord sheet

+### chord.isNumeral() ⇒ boolean +

Determines whether the chord is a numeral

-**Kind**: global class +**Kind**: instance method of [Chord](#Chord) + -* [ChordProParser](#ChordProParser) - * [.warnings](#ChordProParser+warnings) : [Array.<ParserWarning>](#ParserWarning) - * [.parse(chordSheet, options)](#ChordProParser+parse) ⇒ [Song](#Song) +### chord.toString([configuration]) ⇒ string +

Converts the chord to a string, eg Esus4/G# or 1sus4/#3

- +**Kind**: instance method of [Chord](#Chord) +**Returns**: string -

the chord string

-### chordProParser.warnings : [Array.<ParserWarning>](#ParserWarning) -

All warnings raised during parsing the chord sheet

+| Param | Type | Default | Description | +| --- | --- | --- | --- | +| [configuration] | Object | {} |

options

| +| [configuration.useUnicodeModifier] | boolean | false |

Whether or not to use unicode modifiers. This will make # (sharp) look like and b (flat) look like

| -**Kind**: instance property of [ChordProParser](#ChordProParser) - + -### chordProParser.parse(chordSheet, options) ⇒ [Song](#Song) -

Parses a ChordPro chord sheet into a song

+### chord.normalize([key], [options]) ⇒ [Chord](#Chord) +

Normalizes the chord root and bass notes:

+ +

Besides that it normalizes the suffix if normalizeSuffix is true. +For example, sus2 becomes 2, sus4 becomes sus. +All suffix normalizations can be found in src/normalize_mappings/suffix-mapping.txt.

+

When the chord is minor, bass notes are normalized off of the relative major +of the root note. For example, Em/A# becomes Em/Bb.

-**Kind**: instance method of [ChordProParser](#ChordProParser) -**Returns**: [Song](#Song) -

The parsed song

-**See**: https://peggyjs.org/documentation.html#using-the-parser +**Kind**: instance method of [Chord](#Chord) +**Returns**: [Chord](#Chord) -

the normalized chord

| Param | Type | Default | Description | | --- | --- | --- | --- | -| chordSheet | string | |

the ChordPro chord sheet

| -| options | ChordProParserOptions | |

Parser options.

| -| options.softLineBreaks | ChordProParserOptions.softLineBreaks | false |

If true, a backslash followed by * a space is treated as a soft line break

| - - +| [key] | [Key](#Key) \| string | |

the key to normalize to

| +| [options] | Object | {} |

options

| +| [options.normalizeSuffix] | boolean | true |

whether to normalize the chord suffix after transposing

| -## ~~ChordSheetParser~~ -***Deprecated*** + -

Parses a normal chord sheet

-

ChordSheetParser is deprecated, please use ChordsOverWordsParser.

-

ChordsOverWordsParser aims to support any kind of chord, whereas ChordSheetParser lacks -support for many variations. Besides that, some chordpro feature have been ported back -to ChordsOverWordsParser, which adds some interesting functionality.

+### chord.useModifier(newModifier) ⇒ [Chord](#Chord) +

Switches to the specified modifier

-**Kind**: global class +**Kind**: instance method of [Chord](#Chord) +**Returns**: [Chord](#Chord) -

the new, changed chord

-* ~~[ChordSheetParser](#ChordSheetParser)~~ - * [new ChordSheetParser([options])](#new_ChordSheetParser_new) - * [.parse(chordSheet, [options])](#ChordSheetParser+parse) ⇒ [Song](#Song) +| Param | Description | +| --- | --- | +| newModifier |

the modifier to use: '#' or 'b'

| - + -### new ChordSheetParser([options]) -

Instantiate a chord sheet parser -ChordSheetParser is deprecated, please use ChordsOverWordsParser.

+### chord.transposeUp() ⇒ [Chord](#Chord) +

Transposes the chord up by 1 semitone. Eg. A becomes A#, Eb becomes E

+**Kind**: instance method of [Chord](#Chord) +**Returns**: [Chord](#Chord) -

the new, transposed chord

+ -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [options] | Object | {} |

options

| -| [options.preserveWhitespace] | boolean | true |

whether to preserve trailing whitespace for chords

| +### chord.transposeDown() ⇒ [Chord](#Chord) +

Transposes the chord down by 1 semitone. Eg. A# becomes A, E becomes Eb

- +**Kind**: instance method of [Chord](#Chord) +**Returns**: [Chord](#Chord) -

the new, transposed chord

+ -### chordSheetParser.parse(chordSheet, [options]) ⇒ [Song](#Song) -

Parses a chord sheet into a song

+### chord.transpose(delta) ⇒ [Chord](#Chord) +

Transposes the chord by the specified number of semitones

-**Kind**: instance method of [ChordSheetParser](#ChordSheetParser) -**Returns**: [Song](#Song) -

The parsed song

+**Kind**: instance method of [Chord](#Chord) +**Returns**: [Chord](#Chord) -

the new, transposed chord

-| Param | Type | Default | Description | -| --- | --- | --- | --- | -| chordSheet | string | |

The ChordPro chord sheet

| -| [options] | Object | {} |

Optional parser options

| -| [options.song] | [Song](#Song) | |

The [Song](#Song) to store the song data in

| +| Param | Description | +| --- | --- | +| delta |

de number of semitones

| - + -## ChordsOverWordsParser -

Parses a chords over words sheet into a song

-

It support "regular" chord sheets:

-
       Am         C/G        F          C
-Let it be, let it be, let it be, let it be
-C                G              F  C/E Dm C
-Whisper words of wisdom, let it be
-
-

Additionally, some chordpro features have been "ported back". For example, you can use chordpro directives:

-
{title: Let it be}
-{key: C}
-Chorus 1:
-       Am
-Let it be
-
-

For convenience, you can leave out the brackets:

-
title: Let it be
-Chorus 1:
-       Am
-Let it be
-
-

You can even use a markdown style frontmatter separator to separate the header from the song:

-
title: Let it be
-key: C
----
-Chorus 1:
-       Am         C/G        F          C
-Let it be, let it be, let it be, let it be
-C                G              F  C/E Dm C
-Whisper words of wisdom, let it be
-
-

ChordsOverWordsParser is the better version of ChordSheetParser, which is deprecated.

+### Chord.parse(chordString) ⇒ [Chord](#Chord) \| null +

Tries to parse a chord string into a chord +Any leading or trailing whitespace is removed first, so a chord like \n E/G# \r is valid.

-**Kind**: global class +**Kind**: static method of [Chord](#Chord) -* [ChordsOverWordsParser](#ChordsOverWordsParser) - * [.warnings](#ChordsOverWordsParser+warnings) : [Array.<ParserWarning>](#ParserWarning) - * [.parse(chordSheet, options)](#ChordsOverWordsParser+parse) ⇒ [Song](#Song) +| Param | Description | +| --- | --- | +| chordString |

the chord string, eg Esus4/G# or 1sus4/#3.

| - + -### chordsOverWordsParser.warnings : [Array.<ParserWarning>](#ParserWarning) -

All warnings raised during parsing the chord sheet

+## ChordProFormatter +

Formats a song into a ChordPro chord sheet

-**Kind**: instance property of [ChordsOverWordsParser](#ChordsOverWordsParser) - +**Kind**: global class + -### chordsOverWordsParser.parse(chordSheet, options) ⇒ [Song](#Song) -

Parses a chords over words sheet into a song

+### chordProFormatter.format(song) ⇒ string +

Formats a song into a ChordPro chord sheet.

-**Kind**: instance method of [ChordsOverWordsParser](#ChordsOverWordsParser) -**Returns**: [Song](#Song) -

The parsed song

-**See**: https://peggyjs.org/documentation.html#using-the-parser +**Kind**: instance method of [ChordProFormatter](#ChordProFormatter) +**Returns**: string -

The ChordPro string

-| Param | Type | Default | Description | -| --- | --- | --- | --- | -| chordSheet | string | |

the chords over words sheet

| -| options | ChordsOverWordsParserOptions | |

Parser options.

| -| options.softLineBreaks | ChordsOverWordsParserOptions.softLineBreaks | false |

If true, a backslash followed by a space is treated as a soft line break

| +| Param | Type | Description | +| --- | --- | --- | +| song | [Song](#Song) |

The song to be formatted

| - + -## ParserWarning -

Represents a parser warning, currently only used by ChordProParser.

+## ChordsOverWordsFormatter +

Formats a song into a plain text chord sheet

**Kind**: global class - + -### parserWarning.toString() ⇒ string -

Returns a stringified version of the warning

+### chordsOverWordsFormatter.format(song) ⇒ string +

Formats a song into a plain text chord sheet

-**Kind**: instance method of [ParserWarning](#ParserWarning) -**Returns**: string -

The string warning

- +**Kind**: instance method of [ChordsOverWordsFormatter](#ChordsOverWordsFormatter) +**Returns**: string -

the chord sheet

-## UltimateGuitarParser -

Parses an Ultimate Guitar chord sheet with metadata -Inherits from [ChordSheetParser](#ChordSheetParser)

+| Param | Type | Description | +| --- | --- | --- | +| song | [Song](#Song) |

The song to be formatted

| + + + +## Formatter +

Base class for all formatters, taking care of receiving a configuration wrapping that inside a Configuration object

**Kind**: global class - + -### new UltimateGuitarParser([options]) -

Instantiate a chord sheet parser

+### new Formatter([configuration]) +

Instantiate

| Param | Type | Default | Description | | --- | --- | --- | --- | -| [options] | Object | {} |

options

| -| [options.preserveWhitespace] | boolean | true |

whether to preserve trailing whitespace for chords

| +| [configuration] | Object | {} |

options

| +| [configuration.evaluate] | boolean | false |

Whether or not to evaluate meta expressions. For more info about meta expressions, see: https://bit.ly/2SC9c2u

| +| [configuration.metadata] | object | {} | | +| [configuration.metadata.separator] | string | "\", \"" |

The separator to be used when rendering a metadata value that has multiple values. See: https://bit.ly/2SC9c2u

| +| [configuration.key] | [Key](#Key) \| string | |

The key to use for rendering. The chord sheet will be transposed from the song's original key (as indicated by the {key} directive) to the specified key. Note that transposing will only work if the original song key is set.

| +| [configuration.expandChorusDirective] | boolean | false |

Whether or not to expand {chorus} directives by rendering the last defined chorus inline after the directive.

| +| [configuration.useUnicodeModifiers] | boolean | false |

Whether or not to use unicode flat and sharp symbols.

| +| [configuration.normalizeChords] | boolean | true |

Whether or not to automatically normalize chords

| - + -## Chord -

Represents a Chord, consisting of a root, suffix (quality) and bass

+## HtmlDivFormatter +

Formats a song into HTML. It uses DIVs to align lyrics with chords, which makes it useful for responsive web pages.

**Kind**: global class + -* [Chord](#Chord) - * _instance_ - * [.clone()](#Chord+clone) ⇒ [Chord](#Chord) - * [.toChordSymbol([referenceKey])](#Chord+toChordSymbol) ⇒ [Chord](#Chord) - * [.toChordSymbolString([referenceKey])](#Chord+toChordSymbolString) ⇒ string - * [.isChordSymbol()](#Chord+isChordSymbol) ⇒ boolean - * [.toChordSolfege([referenceKey])](#Chord+toChordSolfege) ⇒ [Chord](#Chord) - * [.toChordSolfegeString([referenceKey])](#Chord+toChordSolfegeString) ⇒ string - * [.isChordSolfege()](#Chord+isChordSolfege) ⇒ boolean - * [.toNumeric([referenceKey])](#Chord+toNumeric) ⇒ [Chord](#Chord) - * [.toNumeral([referenceKey])](#Chord+toNumeral) ⇒ [Chord](#Chord) - * [.toNumeralString([referenceKey])](#Chord+toNumeralString) ⇒ string - * [.isNumeric()](#Chord+isNumeric) ⇒ boolean - * [.toNumericString([referenceKey])](#Chord+toNumericString) ⇒ string - * [.isNumeral()](#Chord+isNumeral) ⇒ boolean - * [.toString([configuration])](#Chord+toString) ⇒ string - * [.normalize([key], [options])](#Chord+normalize) ⇒ [Chord](#Chord) - * [.useModifier(newModifier)](#Chord+useModifier) ⇒ [Chord](#Chord) - * [.transposeUp()](#Chord+transposeUp) ⇒ [Chord](#Chord) - * [.transposeDown()](#Chord+transposeDown) ⇒ [Chord](#Chord) - * [.transpose(delta)](#Chord+transpose) ⇒ [Chord](#Chord) - * _static_ - * [.parse(chordString)](#Chord.parse) ⇒ [Chord](#Chord) \| null - - - -### chord.clone() ⇒ [Chord](#Chord) -

Returns a deep copy of the chord

- -**Kind**: instance method of [Chord](#Chord) - - -### chord.toChordSymbol([referenceKey]) ⇒ [Chord](#Chord) -

Converts the chord to a chord symbol, using the supplied key as a reference. -For example, a numeric chord #4 with reference key E will return the chord symbol A#. -When the chord is already a chord symbol, it will return a clone of the object.

+## HtmlFormatter +

Acts as a base class for HTML formatters

-**Kind**: instance method of [Chord](#Chord) -**Returns**: [Chord](#Chord) -

the chord symbol

+**Kind**: global class -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a numeric or numeral.

| +* [HtmlFormatter](#HtmlFormatter) + * [.cssObject](#HtmlFormatter+cssObject) ⇒ Object.<string, Object.<string, string>> + * [.format(song)](#HtmlFormatter+format) ⇒ string + * [.cssString(scope)](#HtmlFormatter+cssString) ⇒ string - + -### chord.toChordSymbolString([referenceKey]) ⇒ string -

Converts the chord to a chord symbol string, using the supplied key as a reference. -For example, a numeric chord #4 with reference key E will return the chord symbol A#. -When the chord is already a chord symbol, it will return a string version of the chord.

+### htmlFormatter.cssObject ⇒ Object.<string, Object.<string, string>> +

Basic CSS, in object style à la useStyles, to use with the HTML output +For a CSS string see [cssString](cssString)

+

Example:

+
'.paragraph': {
+  marginBottom: '1em'
+}
+
-**Kind**: instance method of [Chord](#Chord) -**Returns**: string -

the chord symbol string

-**See**: {toChordSymbol} +**Kind**: instance property of [HtmlFormatter](#HtmlFormatter) +**Returns**: Object.<string, Object.<string, string>> -

the CSS object

+ -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a numeric or numeral.

| +### htmlFormatter.format(song) ⇒ string +

Formats a song into HTML.

- +**Kind**: instance method of [HtmlFormatter](#HtmlFormatter) +**Returns**: string -

The HTML string

-### chord.isChordSymbol() ⇒ boolean -

Determines whether the chord is a chord symbol

+| Param | Type | Description | +| --- | --- | --- | +| song | [Song](#Song) |

The song to be formatted

| -**Kind**: instance method of [Chord](#Chord) - + -### chord.toChordSolfege([referenceKey]) ⇒ [Chord](#Chord) -

Converts the chord to a chord solfege, using the supplied key as a reference. -For example, a numeric chord #4 with reference key Mi will return the chord symbol La#. -When the chord is already a chord solfege, it will return a clone of the object.

+### htmlFormatter.cssString(scope) ⇒ string +

Generates basic CSS, optionally scoped within the provided selector, to use with the HTML output

+

For example, execute cssString('.chordSheetViewer') will result in CSS like:

+
.chordSheetViewer .paragraph {
+  margin-bottom: 1em;
+}
+
-**Kind**: instance method of [Chord](#Chord) -**Returns**: [Chord](#Chord) -

the chord solfege

+**Kind**: instance method of [HtmlFormatter](#HtmlFormatter) +**Returns**: string -

the CSS string

-| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a numeric or numeral.

| +| Param | Description | +| --- | --- | +| scope |

the CSS scope to use, for example .chordSheetViewer

| - + -### chord.toChordSolfegeString([referenceKey]) ⇒ string -

Converts the chord to a chord solfege string, using the supplied key as a reference. -For example, a numeric chord #4 with reference key E will return the chord solfege A#. -When the chord is already a chord solfege, it will return a string version of the chord.

+## HtmlTableFormatter +

Formats a song into HTML. It uses TABLEs to align lyrics with chords, which makes the HTML for things like +PDF conversion.

-**Kind**: instance method of [Chord](#Chord) -**Returns**: string -

the chord solfege string

-**See**: {toChordSolfege} +**Kind**: global class + -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a numeric or numeral.

| +## TextFormatter +

Formats a song into a plain text chord sheet

- +**Kind**: global class + -### chord.isChordSolfege() ⇒ boolean -

Determines whether the chord is a chord solfege

+### textFormatter.format(song) ⇒ string +

Formats a song into a plain text chord sheet

-**Kind**: instance method of [Chord](#Chord) - +**Kind**: instance method of [TextFormatter](#TextFormatter) +**Returns**: string -

the chord sheet

-### chord.toNumeric([referenceKey]) ⇒ [Chord](#Chord) -

Converts the chord to a numeric chord, using the supplied key as a reference. -For example, a chord symbol A# with reference key E will return the numeric chord #4.

+| Param | Type | Description | +| --- | --- | --- | +| song | [Song](#Song) |

The song to be formatted

| -**Kind**: instance method of [Chord](#Chord) -**Returns**: [Chord](#Chord) -

the numeric chord

+ -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a chord symbol

| +## Key +

Represents a key, such as Eb (symbol), #3 (numeric) or VII (numeral).

+

The only function considered public API is Key.distance

- +**Kind**: global class + -### chord.toNumeral([referenceKey]) ⇒ [Chord](#Chord) -

Converts the chord to a numeral chord, using the supplied key as a reference. -For example, a chord symbol A# with reference key E will return the numeral chord #IV.

+### Key.distance(oneKey, otherKey) ⇒ number +

Calculates the distance in semitones between one key and another.

-**Kind**: instance method of [Chord](#Chord) -**Returns**: [Chord](#Chord) -

the numeral chord

+**Kind**: static method of [Key](#Key) +**Returns**: number -

the distance in semitones

-| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a chord symbol

| +| Param | Type | Description | +| --- | --- | --- | +| oneKey | [Key](#Key) \| string |

the key

| +| otherKey | [Key](#Key) \| string |

the other key

| - + -### chord.toNumeralString([referenceKey]) ⇒ string -

Converts the chord to a numeral chord string, using the supplied kye as a reference. -For example, a chord symbol A# with reference key E will return the numeral chord #4.

+## ChordProParser +

Parses a ChordPro chord sheet

-**Kind**: instance method of [Chord](#Chord) -**Returns**: string -

the numeral chord string

-**See**: {toNumeral} +**Kind**: global class -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a chord symbol

| +* [ChordProParser](#ChordProParser) + * [.warnings](#ChordProParser+warnings) : [Array.<ParserWarning>](#ParserWarning) + * [.parse(chordSheet, options)](#ChordProParser+parse) ⇒ [Song](#Song) - + -### chord.isNumeric() ⇒ boolean -

Determines whether the chord is numeric

+### chordProParser.warnings : [Array.<ParserWarning>](#ParserWarning) +

All warnings raised during parsing the chord sheet

-**Kind**: instance method of [Chord](#Chord) - +**Kind**: instance property of [ChordProParser](#ChordProParser) + -### chord.toNumericString([referenceKey]) ⇒ string -

Converts the chord to a numeric chord string, using the supplied kye as a reference. -For example, a chord symbol A# with reference key E will return the numeric chord #4.

+### chordProParser.parse(chordSheet, options) ⇒ [Song](#Song) +

Parses a ChordPro chord sheet into a song

-**Kind**: instance method of [Chord](#Chord) -**Returns**: string -

the numeric chord string

-**See**: {toNumeric} +**Kind**: instance method of [ChordProParser](#ChordProParser) +**Returns**: [Song](#Song) -

The parsed song

+**See**: https://peggyjs.org/documentation.html#using-the-parser | Param | Type | Default | Description | | --- | --- | --- | --- | -| [referenceKey] | [Key](#Key) \| string \| null | |

the reference key. The key is required when converting a chord symbol

| - - +| chordSheet | string | |

the ChordPro chord sheet

| +| options | ChordProParserOptions | |

Parser options.

| +| options.softLineBreaks | ChordProParserOptions.softLineBreaks | false |

If true, a backslash followed by * a space is treated as a soft line break

| -### chord.isNumeral() ⇒ boolean -

Determines whether the chord is a numeral

+ -**Kind**: instance method of [Chord](#Chord) - +## ~~ChordSheetParser~~ +***Deprecated*** -### chord.toString([configuration]) ⇒ string -

Converts the chord to a string, eg Esus4/G# or 1sus4/#3

+

Parses a normal chord sheet

+

ChordSheetParser is deprecated, please use ChordsOverWordsParser.

+

ChordsOverWordsParser aims to support any kind of chord, whereas ChordSheetParser lacks +support for many variations. Besides that, some chordpro feature have been ported back +to ChordsOverWordsParser, which adds some interesting functionality.

-**Kind**: instance method of [Chord](#Chord) -**Returns**: string -

the chord string

+**Kind**: global class -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [configuration] | Object | {} |

options

| -| [configuration.useUnicodeModifier] | boolean | false |

Whether or not to use unicode modifiers. This will make # (sharp) look like and b (flat) look like

| +* ~~[ChordSheetParser](#ChordSheetParser)~~ + * [new ChordSheetParser([options])](#new_ChordSheetParser_new) + * [.parse(chordSheet, [options])](#ChordSheetParser+parse) ⇒ [Song](#Song) - + -### chord.normalize([key], [options]) ⇒ [Chord](#Chord) -

Normalizes the chord root and bass notes:

- -

Besides that it normalizes the suffix if normalizeSuffix is true. -For example, sus2 becomes 2, sus4 becomes sus. -All suffix normalizations can be found in src/normalize_mappings/suffix-mapping.txt.

-

When the chord is minor, bass notes are normalized off of the relative major -of the root note. For example, Em/A# becomes Em/Bb.

+### new ChordSheetParser([options]) +

Instantiate a chord sheet parser +ChordSheetParser is deprecated, please use ChordsOverWordsParser.

-**Kind**: instance method of [Chord](#Chord) -**Returns**: [Chord](#Chord) -

the normalized chord

| Param | Type | Default | Description | | --- | --- | --- | --- | -| [key] | [Key](#Key) \| string | |

the key to normalize to

| | [options] | Object | {} |

options

| -| [options.normalizeSuffix] | boolean | true |

whether to normalize the chord suffix after transposing

| - - - -### chord.useModifier(newModifier) ⇒ [Chord](#Chord) -

Switches to the specified modifier

+| [options.preserveWhitespace] | boolean | true |

whether to preserve trailing whitespace for chords

| -**Kind**: instance method of [Chord](#Chord) -**Returns**: [Chord](#Chord) -

the new, changed chord

+ -| Param | Description | -| --- | --- | -| newModifier |

the modifier to use: '#' or 'b'

| +### chordSheetParser.parse(chordSheet, [options]) ⇒ [Song](#Song) +

Parses a chord sheet into a song

- +**Kind**: instance method of [ChordSheetParser](#ChordSheetParser) +**Returns**: [Song](#Song) -

The parsed song

-### chord.transposeUp() ⇒ [Chord](#Chord) -

Transposes the chord up by 1 semitone. Eg. A becomes A#, Eb becomes E

+| Param | Type | Default | Description | +| --- | --- | --- | --- | +| chordSheet | string | |

The ChordPro chord sheet

| +| [options] | Object | {} |

Optional parser options

| +| [options.song] | [Song](#Song) | |

The [Song](#Song) to store the song data in

| -**Kind**: instance method of [Chord](#Chord) -**Returns**: [Chord](#Chord) -

the new, transposed chord

- + -### chord.transposeDown() ⇒ [Chord](#Chord) -

Transposes the chord down by 1 semitone. Eg. A# becomes A, E becomes Eb

+## ChordsOverWordsParser +

Parses a chords over words sheet into a song

+

It support "regular" chord sheets:

+
       Am         C/G        F          C
+Let it be, let it be, let it be, let it be
+C                G              F  C/E Dm C
+Whisper words of wisdom, let it be
+
+

Additionally, some chordpro features have been "ported back". For example, you can use chordpro directives:

+
{title: Let it be}
+{key: C}
+Chorus 1:
+       Am
+Let it be
+
+

For convenience, you can leave out the brackets:

+
title: Let it be
+Chorus 1:
+       Am
+Let it be
+
+

You can even use a markdown style frontmatter separator to separate the header from the song:

+
title: Let it be
+key: C
+---
+Chorus 1:
+       Am         C/G        F          C
+Let it be, let it be, let it be, let it be
+C                G              F  C/E Dm C
+Whisper words of wisdom, let it be
+
+

ChordsOverWordsParser is the better version of ChordSheetParser, which is deprecated.

-**Kind**: instance method of [Chord](#Chord) -**Returns**: [Chord](#Chord) -

the new, transposed chord

- +**Kind**: global class -### chord.transpose(delta) ⇒ [Chord](#Chord) -

Transposes the chord by the specified number of semitones

+* [ChordsOverWordsParser](#ChordsOverWordsParser) + * [.warnings](#ChordsOverWordsParser+warnings) : [Array.<ParserWarning>](#ParserWarning) + * [.parse(chordSheet, options)](#ChordsOverWordsParser+parse) ⇒ [Song](#Song) -**Kind**: instance method of [Chord](#Chord) -**Returns**: [Chord](#Chord) -

the new, transposed chord

+ -| Param | Description | -| --- | --- | -| delta |

de number of semitones

| +### chordsOverWordsParser.warnings : [Array.<ParserWarning>](#ParserWarning) +

All warnings raised during parsing the chord sheet

- +**Kind**: instance property of [ChordsOverWordsParser](#ChordsOverWordsParser) + -### Chord.parse(chordString) ⇒ [Chord](#Chord) \| null -

Tries to parse a chord string into a chord -Any leading or trailing whitespace is removed first, so a chord like \n E/G# \r is valid.

+### chordsOverWordsParser.parse(chordSheet, options) ⇒ [Song](#Song) +

Parses a chords over words sheet into a song

-**Kind**: static method of [Chord](#Chord) +**Kind**: instance method of [ChordsOverWordsParser](#ChordsOverWordsParser) +**Returns**: [Song](#Song) -

The parsed song

+**See**: https://peggyjs.org/documentation.html#using-the-parser -| Param | Description | -| --- | --- | -| chordString |

the chord string, eg Esus4/G# or 1sus4/#3.

| +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| chordSheet | string | |

the chords over words sheet

| +| options | ChordsOverWordsParserOptions | |

Parser options.

| +| options.softLineBreaks | ChordsOverWordsParserOptions.softLineBreaks | false |

If true, a backslash followed by a space is treated as a soft line break

| - + -## ChordSheetSerializer -

Serializes a song into een plain object, and deserializes the serialized object back into a [Song](#Song)

+## ParserWarning +

Represents a parser warning, currently only used by ChordProParser.

**Kind**: global class + -* [ChordSheetSerializer](#ChordSheetSerializer) - * [.serialize()](#ChordSheetSerializer+serialize) ⇒ - * [.deserialize(serializedSong)](#ChordSheetSerializer+deserialize) ⇒ [Song](#Song) - - - -### chordSheetSerializer.serialize() ⇒ -

Serializes the chord sheet to a plain object, which can be converted to any format like JSON, XML etc -Can be deserialized using [deserialize](deserialize)

- -**Kind**: instance method of [ChordSheetSerializer](#ChordSheetSerializer) -**Returns**:

object A plain JS object containing all chord sheet data

- - -### chordSheetSerializer.deserialize(serializedSong) ⇒ [Song](#Song) -

Deserializes a song that has been serialized using [serialize](serialize)

- -**Kind**: instance method of [ChordSheetSerializer](#ChordSheetSerializer) -**Returns**: [Song](#Song) -

The deserialized song

- -| Param | Type | Description | -| --- | --- | --- | -| serializedSong | object |

The serialized song

| +### parserWarning.toString() ⇒ string +

Returns a stringified version of the warning

- +**Kind**: instance method of [ParserWarning](#ParserWarning) +**Returns**: string -

The string warning

+ -## Key -

Represents a key, such as Eb (symbol), #3 (numeric) or VII (numeral).

-

The only function considered public API is Key.distance

+## UltimateGuitarParser +

Parses an Ultimate Guitar chord sheet with metadata +Inherits from [ChordSheetParser](#ChordSheetParser)

**Kind**: global class - + -### Key.distance(oneKey, otherKey) ⇒ number -

Calculates the distance in semitones between one key and another.

+### new UltimateGuitarParser([options]) +

Instantiate a chord sheet parser

-**Kind**: static method of [Key](#Key) -**Returns**: number -

the distance in semitones

-| Param | Type | Description | -| --- | --- | --- | -| oneKey | [Key](#Key) \| string |

the key

| -| otherKey | [Key](#Key) \| string |

the other key

| +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| [options] | Object | {} |

options

| +| [options.preserveWhitespace] | boolean | true |

whether to preserve trailing whitespace for chords

|