Repository: FontoXML/fontoxpath
Pull request #463 (2022-01-31 09:30:01)

Bump lodash from 4.17.15 to 4.17.21 in /demo
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.21.
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/lodash/lodash/commit/f299b52f39486275a9e6483b60a410e06520c538"><code>f299b52</code></a> Bump to v4.17.21</li>
<li><a href="https://github.com/lodash/lodash/commit/c4847ebe7d14540bb28a8b932a9ce1b9ecbfee1a"><code>c4847eb</code></a> Improve performance of <code>toNumber</code>, <code>trim</code> and <code>trimEnd</code> on large input strings</li>
<li><a href="https://github.com/lodash/lodash/commit/3469357cff396a26c363f8c1b5a91dde28ba4b1c"><code>3469357</code></a> Prevent command injection through <code>_.template</code>'s <code>variable</code> option</li>
<li><a href="https://github.com/lodash/lodash/commit/ded9bc66583ed0b4e3b7dc906206d40757b4a90a"><code>ded9bc6</code></a> Bump to v4.17.20.</li>
<li><a href="https://github.com/lodash/lodash/commit/63150ef7645ac07961b63a86490f419f356429aa"><code>63150ef</code></a> Documentation fixes.</li>
<li><a href="https://github.com/lodash/lodash/commit/00f0f62a979d2f5fa0287c06eae70cf9a62d8794"><code>00f0f62</code></a> test.js: Remove trailing comma.</li>
<li><a href="https://github.com/lodash/lodash/commit/846e434c7a5b5692c55ebf5715ed677b70a32389"><code>846e434</code></a> Temporarily use a custom fork of <code>lodash-cli</code>.</li>
<li><a href="https://github.com/lodash/lodash/commit/5d046f39cbd27f573914768e3b36eeefcc4f1229"><code>5d046f3</code></a> Re-enable Travis tests on <code>4.17</code> branch.</li>
<li><a href="https://github.com/lodash/lodash/commit/aa816b36d402a1ad9385142ce7188f17dae514fd"><code>aa816b3</code></a> Remove <code>/npm-package</code>.</li>
<li><a href="https://github.com/lodash/lodash/commit/d7fbc52ee0466a6d248f047b5d5c3e6d1e099056"><code>d7fbc52</code></a> Bump to v4.17.19</li>
<li>Additional commits viewable in <a href="https://github.com/lodash/lodash/compare/4.17.15...4.17.21">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~bnjmnt4n">bnjmnt4n</a>, a new releaser for lodash since your current version.</p>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=lodash&package-manager=npm_and_yarn&previous-version=4.17.15&new-version=4.17.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/FontoXML/fontoxpath/network/alerts).

</details>

bundlemon[bot]: <!-- bundlemon -->
## BundleMon

  
  
  
  
  
  
  
<details>
<summary>Unchanged files (2)</summary>

Status | Path | Size | Limits
:------------: | ------------ | :------------: | :------------:
:white_check_mark: | fontoxpath.esm.js<br/> | 97.53KB | -
:white_check_mark: | fontoxpath.js<br/> | 97.4KB | -
</details>



No change in files bundle size

Final result: :white_check_mark:

[View report in BundleMon website ➡️](https://app.bundlemon.dev/projects/609024effb87a20009a6b096/reports/61f7b276d9fabbd1c8cf4bd8)

---
<p align="center"><a href="https://app.bundlemon.dev/projects/609024effb87a20009a6b096/reports?branch=dependabot%2Fnpm_and_yarn%2Fdemo%2Flodash-4.17.21&resolution=all" target="_blank" rel="noreferrer noopener">Current branch size history</a> | <a href="https://app.bundlemon.dev/projects/609024effb87a20009a6b096/reports?branch=master&resolution=days" target="_blank" rel="noreferrer noopener">Target branch size history</a></p>
coveralls: 
[![Coverage Status](https://coveralls.io/builds/46082323/badge)](https://coveralls.io/builds/46082323)

Coverage remained the same at 95.993% when pulling **360f156eabd1ddc51a8da0e846dc8d07a8302eb7 on dependabot/npm_and_yarn/demo/lodash-4.17.21** into **833d8326a6529d138ceb4bebc8b63fbb3b03b257 on master**.


Patch:
diff --git a/demo/package-lock.json b/demo/package-lock.json
index 6412e970..5f1aa0ff 100644
--- a/demo/package-lock.json
+++ b/demo/package-lock.json
@@ -2455,9 +2455,9 @@
 			}
 		},
 		"node_modules/lodash": {
-			"version": "4.17.15",
-			"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
-			"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+			"version": "4.17.21",
+			"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+			"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
 			"dev": true
 		},
 		"node_modules/log-symbols": {
@@ -5911,9 +5911,9 @@
 			}
 		},
 		"lodash": {
-			"version": "4.17.15",
-			"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
-			"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+			"version": "4.17.21",
+			"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+			"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
 			"dev": true
 		},
 		"log-symbols": {
diff --git a/package-lock.json b/package-lock.json
index 03e1cc6b..3889a599 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2542,9 +2542,9 @@
 			}
 		},
 		"node_modules/date-format": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz",
-			"integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==",
+			"version": "4.0.3",
+			"resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz",
+			"integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==",
 			"dev": true,
 			"engines": {
 				"node": ">=4.0"
@@ -2822,9 +2822,9 @@
 			}
 		},
 		"node_modules/engine.io": {
-			"version": "6.1.0",
-			"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.0.tgz",
-			"integrity": "sha512-ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==",
+			"version": "6.1.2",
+			"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.2.tgz",
+			"integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==",
 			"dev": true,
 			"dependencies": {
 				"@types/cookie": "^0.4.1",
@@ -3166,9 +3166,9 @@
 			}
 		},
 		"node_modules/flatted": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
-			"integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+			"version": "3.2.5",
+			"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
+			"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
 			"dev": true
 		},
 		"node_modules/flush-write-stream": {
@@ -5008,25 +5008,25 @@
 			}
 		},
 		"node_modules/log4js": {
-			"version": "6.3.0",
-			"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz",
-			"integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==",
+			"version": "6.4.1",
+			"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz",
+			"integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==",
 			"dev": true,
 			"dependencies": {
-				"date-format": "^3.0.0",
-				"debug": "^4.1.1",
-				"flatted": "^2.0.1",
-				"rfdc": "^1.1.4",
-				"streamroller": "^2.2.4"
+				"date-format": "^4.0.3",
+				"debug": "^4.3.3",
+				"flatted": "^3.2.4",
+				"rfdc": "^1.3.0",
+				"streamroller": "^3.0.2"
 			},
 			"engines": {
 				"node": ">=8.0"
 			}
 		},
 		"node_modules/log4js/node_modules/debug": {
-			"version": "4.3.2",
-			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
-			"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+			"version": "4.3.3",
+			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+			"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
 			"dev": true,
 			"dependencies": {
 				"ms": "2.1.2"
@@ -7052,32 +7052,23 @@
 			"dev": true
 		},
 		"node_modules/streamroller": {
-			"version": "2.2.4",
-			"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz",
-			"integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==",
+			"version": "3.0.2",
+			"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz",
+			"integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==",
 			"dev": true,
 			"dependencies": {
-				"date-format": "^2.1.0",
+				"date-format": "^4.0.3",
 				"debug": "^4.1.1",
-				"fs-extra": "^8.1.0"
+				"fs-extra": "^10.0.0"
 			},
 			"engines": {
 				"node": ">=8.0"
 			}
 		},
-		"node_modules/streamroller/node_modules/date-format": {
-			"version": "2.1.0",
-			"resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz",
-			"integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==",
-			"dev": true,
-			"engines": {
-				"node": ">=4.0"
-			}
-		},
 		"node_modules/streamroller/node_modules/debug": {
-			"version": "4.3.2",
-			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
-			"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+			"version": "4.3.3",
+			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+			"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
 			"dev": true,
 			"dependencies": {
 				"ms": "2.1.2"
@@ -7091,44 +7082,12 @@
 				}
 			}
 		},
-		"node_modules/streamroller/node_modules/fs-extra": {
-			"version": "8.1.0",
-			"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
-			"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
-			"dev": true,
-			"dependencies": {
-				"graceful-fs": "^4.2.0",
-				"jsonfile": "^4.0.0",
-				"universalify": "^0.1.0"
-			},
-			"engines": {
-				"node": ">=6 <7 || >=8"
-			}
-		},
-		"node_modules/streamroller/node_modules/jsonfile": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
-			"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
-			"dev": true,
-			"optionalDependencies": {
-				"graceful-fs": "^4.1.6"
-			}
-		},
 		"node_modules/streamroller/node_modules/ms": {
 			"version": "2.1.2",
 			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
 			"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
 			"dev": true
 		},
-		"node_modules/streamroller/node_modules/universalify": {
-			"version": "0.1.2",
-			"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
-			"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
-			"dev": true,
-			"engines": {
-				"node": ">= 4.0.0"
-			}
-		},
 		"node_modules/string_decoder": {
 			"version": "1.3.0",
 			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -10466,9 +10425,9 @@
 			"dev": true
 		},
 		"date-format": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz",
-			"integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==",
+			"version": "4.0.3",
+			"resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz",
+			"integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==",
 			"dev": true
 		},
 		"debug": {
@@ -10718,9 +10677,9 @@
 			}
 		},
 		"engine.io": {
-			"version": "6.1.0",
-			"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.0.tgz",
-			"integrity": "sha512-ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==",
+			"version": "6.1.2",
+			"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.2.tgz",
+			"integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==",
 			"dev": true,
 			"requires": {
 				"@types/cookie": "^0.4.1",
@@ -10991,9 +10950,9 @@
 			"dev": true
 		},
 		"flatted": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
-			"integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+			"version": "3.2.5",
+			"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
+			"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
 			"dev": true
 		},
 		"flush-write-stream": {
@@ -12384,22 +12343,22 @@
 			}
 		},
 		"log4js": {
-			"version": "6.3.0",
-			"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz",
-			"integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==",
+			"version": "6.4.1",
+			"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz",
+			"integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==",
 			"dev": true,
 			"requires": {
-				"date-format": "^3.0.0",
-				"debug": "^4.1.1",
-				"flatted": "^2.0.1",
-				"rfdc": "^1.1.4",
-				"streamroller": "^2.2.4"
+				"date-format": "^4.0.3",
+				"debug": "^4.3.3",
+				"flatted": "^3.2.4",
+				"rfdc": "^1.3.0",
+				"streamroller": "^3.0.2"
 			},
 			"dependencies": {
 				"debug": {
-					"version": "4.3.2",
-					"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
-					"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+					"version": "4.3.3",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+					"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
 					"dev": true,
 					"requires": {
 						"ms": "2.1.2"
@@ -14006,62 +13965,30 @@
 			"dev": true
 		},
 		"streamroller": {
-			"version": "2.2.4",
-			"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz",
-			"integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==",
+			"version": "3.0.2",
+			"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz",
+			"integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==",
 			"dev": true,
 			"requires": {
-				"date-format": "^2.1.0",
+				"date-format": "^4.0.3",
 				"debug": "^4.1.1",
-				"fs-extra": "^8.1.0"
+				"fs-extra": "^10.0.0"
 			},
 			"dependencies": {
-				"date-format": {
-					"version": "2.1.0",
-					"resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz",
-					"integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==",
-					"dev": true
-				},
 				"debug": {
-					"version": "4.3.2",
-					"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
-					"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+					"version": "4.3.3",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+					"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
 					"dev": true,
 					"requires": {
 						"ms": "2.1.2"
 					}
 				},
-				"fs-extra": {
-					"version": "8.1.0",
-					"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
-					"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
-					"dev": true,
-					"requires": {
-						"graceful-fs": "^4.2.0",
-						"jsonfile": "^4.0.0",
-						"universalify": "^0.1.0"
-					}
-				},
-				"jsonfile": {
-					"version": "4.0.0",
-					"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
-					"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
-					"dev": true,
-					"requires": {
-						"graceful-fs": "^4.1.6"
-					}
-				},
 				"ms": {
 					"version": "2.1.2",
 					"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
 					"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
 					"dev": true
-				},
-				"universalify": {
-					"version": "0.1.2",
-					"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
-					"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
-					"dev": true
 				}
 			}
 		},
diff --git a/package.json b/package.json
index 827e9327..ad313972 100644
--- a/package.json
+++ b/package.json
@@ -9,29 +9,29 @@
 	},
 	"typings": "dist/fontoxpath.d.ts",
 	"scripts": {
-		"alltests": "ts-mocha --paths -p test/tsconfig.json \"test/specs/**/*.ts\" test/qt3tests.ts test/qt3testsXQueryX.ts test/xqutsTests.ts test/xqutsTestsXQueryX.ts",
+		"alltests": "ts-mocha --paths --project test/tsconfig.json \"test/specs/**/*.ts\" test/qt3tests.ts test/qt3testsXQueryX.ts test/xqutsTests.ts test/xqutsTestsXQueryX.ts",
 		"build": "node ./build.js",
-		"ci-qt3tests": "cross-env TS_NODE_PROJECT=test/tsconfig.json nyc --no-clean --require ts-node/register --require tsconfig-paths/register mocha --paths -p test/tsconfig.json test/qt3tests.ts",
-		"ci-qt3testsxqueryx": "cross-env TS_NODE_PROJECT=test/tsconfig.json nyc --no-clean --require ts-node/register --require tsconfig-paths/register mocha --paths -p test/tsconfig.json test/qt3testsXQueryX.ts",
-		"ci-test": "cross-env TS_NODE_PROJECT=test/tsconfig.json nyc --no-clean --require ts-node/register --require tsconfig-paths/register mocha \"test/specs/**/*.ts\" -p test/tsconfig.json",
-		"ci-test-jscodegen": "cross-env TS_NODE_PROJECT=test/tsconfig.json nyc --no-clean --require ts-node/register --require tsconfig-paths/register mocha \"test/specs/**/*.ts\" -p test/tsconfig.json -- --jscodegen",
-		"ci-xqutstests": "cross-env TS_NODE_PROJECT=test/tsconfig.json nyc --no-clean --require ts-node/register --require tsconfig-paths/register mocha --paths -p test/tsconfig.json test/xqutsTests.ts",
-		"ci-xqutstestsxqueryx": "cross-env TS_NODE_PROJECT=test/tsconfig.json nyc --no-clean --require ts-node/register --require tsconfig-paths/register mocha --paths -p test/tsconfig.json test/xqutsTestsXQueryX.ts",
+		"ci-qt3tests": "cross-env TS_NODE_PROJECT=test/tsconfig.json nyc --no-clean --require ts-node/register --require tsconfig-paths/register mocha --paths --project test/qt3tests.ts",
+		"ci-qt3testsxqueryx": "cross-env TS_NODE_PROJECT=test/tsconfig.json nyc --no-clean --require ts-node/register --require tsconfig-paths/register mocha --paths --project test/qt3testsXQueryX.ts",
+		"ci-test": "cross-env TS_NODE_PROJECT=test/tsconfig.json nyc --no-clean --require ts-node/register --require tsconfig-paths/register mocha \"test/specs/**/*.ts\" --parallel",
+		"ci-test-jscodegen": "cross-env TS_NODE_PROJECT=test/tsconfig.json nyc --no-clean --require ts-node/register --require tsconfig-paths/register mocha \"test/specs/**/*.ts\" --parallel  -- --jscodegen",
+		"ci-xqutstests": "cross-env TS_NODE_PROJECT=test/tsconfig.json nyc --no-clean --require ts-node/register --require tsconfig-paths/register mocha --paths --parallel test/xqutsTests.ts",
+		"ci-xqutstestsxqueryx": "cross-env TS_NODE_PROJECT=test/tsconfig.json nyc --no-clean --require ts-node/register --require tsconfig-paths/register mocha --paths --parallel test/xqutsTestsXQueryX.ts",
 		"coverage": "nyc report --reporter=text-lcov",
-		"integrationtests": "ts-mocha --require test/testhook.js \"test/specs/parsing/**/*.ts\" -p test/tsconfig.json",
+		"integrationtests": "ts-mocha --require test/testhook.js \"test/specs/parsing/**/*.ts\" --parallel",
 		"prepare": "npm run build",
-		"qt3performance": "ts-node -P test/tsconfig.json -r tsconfig-paths/register test/qt3testsBenchmark.ts",
-		"qt3tests": "ts-mocha --paths -p test/tsconfig.json test/qt3tests.ts",
-		"qt3testsxqueryx": "ts-mocha --paths -p test/tsconfig.json test/qt3testsXQueryX.ts",
+		"qt3performance": "ts-node --project test/tsconfig.json -r tsconfig-paths/register test/qt3testsBenchmark.ts",
+		"qt3tests": "ts-mocha --paths --project test/tsconfig.json test/qt3tests.ts",
+		"qt3testsxqueryx": "ts-mocha --paths --project test/tsconfig.json test/qt3testsXQueryX.ts",
 		"test": "ts-mocha --require test/testhook.js \"test/specs/**/*.ts\" --project test/tsconfig.json",
 		"test-jscodegen": "ts-mocha --require test/testhook.js \"test/specs/**/*.ts\" --project test/tsconfig.json -- --jscodegen",
-		"xqutstests": "ts-mocha --paths -p test/tsconfig.json test/xqutsTests.ts",
-		"xqutstestsxqueryx": "ts-mocha --paths -p test/tsconfig.json test/xqutsTestsXQueryX.ts",
+		"xqutstests": "ts-mocha --paths --project test/tsconfig.json test/xqutsTests.ts",
+		"xqutstestsxqueryx": "ts-mocha --paths --project test/tsconfig.json test/xqutsTestsXQueryX.ts",
 		"browsertests": "karma start",
 		"lint": "tslint \"./src/**/*.ts\" --project . && prettier \"./src/**/*.ts\" --list-different",
 		"lint-fix": "tslint \"./(src|test)/**/*.ts\" --project . --fix && prettier \"./(src|test)/**/*.ts\" --write",
 		"fuzzer": "ts-node -P fuzzers/tsconfig.json -r tsconfig-paths/register fuzzers/index.ts",
-		"fuzzertest": "ts-mocha --paths -p test/tsconfig.json test/corpusfuzzertests.ts"
+		"fuzzertest": "ts-mocha --paths --project test/tsconfig.json test/corpusfuzzertests.ts"
 	},
 	"repository": {
 		"type": "git",
diff --git a/src/parseScript.ts b/src/parseScript.ts
index 5e334161..ae026e9d 100644
--- a/src/parseScript.ts
+++ b/src/parseScript.ts
@@ -229,7 +229,17 @@ export default function parseScript<TElement extends Element>(
 		options['functionNameResolver'] || (() => null)
 	);
 	const rootStaticContext = new StaticContext(executionSpecificStaticContext);
-	const prolog = astHelper.followPath(ast, ['mainModule', 'prolog']);
+	const anyModuleDecl = astHelper.getFirstChild(ast, ['mainModule', 'libraryModule']);
+	// Spike the static context if we are actually a library module
+	const moduleDecl = astHelper.getFirstChild(anyModuleDecl, 'moduleDecl');
+	if (moduleDecl) {
+		const prefix = astHelper.getTextContent(astHelper.getFirstChild(moduleDecl, 'prefix'));
+		const uri = astHelper.getTextContent(astHelper.getFirstChild(moduleDecl, 'uri'));
+
+		rootStaticContext.registerNamespace(prefix, uri);
+	}
+
+	const prolog = astHelper.getFirstChild(anyModuleDecl, 'prolog');
 
 	if (prolog) {
 		processProlog(prolog, rootStaticContext, false);


Test patch:
diff --git a/test/specs/parsing/parseScript.tests.ts b/test/specs/parsing/parseScript.tests.ts
index 5b77a862..8e612ae6 100644
--- a/test/specs/parsing/parseScript.tests.ts
+++ b/test/specs/parsing/parseScript.tests.ts
@@ -244,6 +244,22 @@ some-function#0()
 		chai.assert.equal(document.documentElement.outerHTML, '<baz><foo>bar</foo></baz>');
 	});
 
+	it('can parse an XQuery module', () => {
+		const document = new Document();
+		const ast = parseScript(
+			`module namespace prefix = "http://www.example.com/";
+
+declare %public function prefix:ok() as xs:string {
+	"ok"
+};
+`,
+			{},
+			document
+		);
+
+		chai.assert.isOk(ast);
+	});
+
 	it('can execute a map function within an AST', () => {
 		const ast = parseScript('map:put($week, "1", "Monday")', {}, new Document());
 		const result = evaluateXPathToMap(ast, null, null, {