ghost 4.48.4 → 4.48.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@ const config = require('../../../shared/config');
7
7
  const renderer = require('../../services/rendering');
8
8
 
9
9
  // @TODO: make this properly shared code
10
- const {prepareError, prepareStack} = require('@tryghost/mw-error-handler');
10
+ const {prepareError, prepareErrorCacheControl, prepareStack} = require('@tryghost/mw-error-handler');
11
11
 
12
12
  const messages = {
13
13
  oopsErrorTemplateHasError: 'Oops, seems there is an error in the error template.',
@@ -86,6 +86,8 @@ const themeErrorRenderer = (err, req, res, next) => {
86
86
  module.exports.handleThemeResponse = [
87
87
  // Make sure the error can be served
88
88
  prepareError,
89
+ // Add cache-control header
90
+ prepareErrorCacheControl(),
89
91
  // Handle the error in Sentry
90
92
  sentry.errorHandler,
91
93
  // Format the stack for the user
@@ -82,7 +82,7 @@ module.exports = function setupSiteApp(options = {}) {
82
82
  // /member/.well-known/* serves files (e.g. jwks.json) so it needs to be mounted before the prettyUrl mw to avoid trailing slashes
83
83
  siteApp.use(
84
84
  '/members/.well-known',
85
- shared.middleware.cacheControl('public', {maxAge: 60 * 60 * 24}),
85
+ shared.middleware.cacheControl('public', {maxAge: constants.ONE_DAY_S}),
86
86
  (req, res, next) => membersService.api.middleware.wellKnown(req, res, next)
87
87
  );
88
88
 
@@ -37,6 +37,8 @@ module.exports.contentVersion = (req, res, next) => {
37
37
  if (req.header('accept-version')) {
38
38
  res.header('Content-Version', `v${ghostVersion.safe}`);
39
39
  }
40
+
41
+ res.vary('Accept-Version');
40
42
  next();
41
43
  };
42
44
 
@@ -16,9 +16,15 @@ module.exports = function setupAdminApp() {
16
16
  // Admin assets
17
17
  // @TODO ensure this gets a local 404 error handler
18
18
  const configMaxAge = config.get('caching:admin:maxAge');
19
+ // @NOTE: when we start working on HTTP/3 optimizations the immutable headers
20
+ // produced below should be split into separate 'Cache-Control' entry.
21
+ // For reference see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching#validation_2
19
22
  adminApp.use('/assets', serveStatic(
20
- config.get('paths').clientAssets,
21
- {maxAge: (configMaxAge || configMaxAge === 0) ? configMaxAge : constants.ONE_YEAR_MS, fallthrough: false}
23
+ config.get('paths').clientAssets, {
24
+ maxAge: (configMaxAge || configMaxAge === 0) ? configMaxAge : constants.ONE_YEAR_MS,
25
+ immutable: true,
26
+ fallthrough: false
27
+ }
22
28
  ));
23
29
 
24
30
  // Ember CLI's live-reload script
@@ -21,8 +21,10 @@ module.exports = function setupApiApp() {
21
21
  // Query parsing
22
22
  apiApp.use(boolParser());
23
23
 
24
- // API shouldn't be cached
25
- apiApp.use(shared.middleware.cacheControl('private'));
24
+ // Content API should allow public caching
25
+ apiApp.use(shared.middleware.cacheControl('public', {
26
+ maxAge: 0
27
+ }));
26
28
 
27
29
  // Routing
28
30
  apiApp.use(routes());
@@ -21,8 +21,10 @@ module.exports = function setupApiApp() {
21
21
  // Query parsing
22
22
  apiApp.use(boolParser());
23
23
 
24
- // API shouldn't be cached
25
- apiApp.use(shared.middleware.cacheControl('private'));
24
+ // Content API should allow public caching
25
+ apiApp.use(shared.middleware.cacheControl('public', {
26
+ maxAge: 0
27
+ }));
26
28
 
27
29
  // Routing
28
30
  apiApp.use(routes());
@@ -21,8 +21,10 @@ module.exports = function setupApiApp() {
21
21
  // Query parsing
22
22
  apiApp.use(boolParser());
23
23
 
24
- // API shouldn't be cached
25
- apiApp.use(shared.middleware.cacheControl('private'));
24
+ // Content API should allow public caching
25
+ apiApp.use(shared.middleware.cacheControl('public', {
26
+ maxAge: 0
27
+ }));
26
28
 
27
29
  // Routing
28
30
  apiApp.use(routes());
@@ -44,7 +44,7 @@ module.exports = function setupMembersApp() {
44
44
  membersApp.get('/api/session', middleware.getIdentityToken);
45
45
  membersApp.get('/api/offers/:id', middleware.getOfferData);
46
46
  membersApp.delete('/api/session', middleware.deleteSession);
47
- membersApp.get('/api/site', middleware.getMemberSiteData);
47
+ membersApp.get('/api/site', shared.middleware.cacheControl('noCacheDynamic'), middleware.getMemberSiteData);
48
48
 
49
49
  // NOTE: this is wrapped in a function to ensure we always go via the getter
50
50
  membersApp.post('/api/send-magic-link', bodyParser.json(), shared.middleware.brute.membersAuth, (req, res, next) => membersService.api.middleware.sendMagicLink(req, res, next));
@@ -7,16 +7,18 @@
7
7
  // Allows each app to declare its own default caching rules
8
8
 
9
9
  const isString = require('lodash/isString');
10
+ const {cacheControlValues} = require('@tryghost/http-cache-utils');
10
11
 
11
12
  /**
12
- * @param {'public'|'private'} profile Use "private" if you do not want caching
13
+ * @param {'public'|'private'|'noCacheDynamic'} profile Use "private" if you do not want caching
13
14
  * @param {object} [options]
14
15
  * @param {number} [options.maxAge] The max-age in seconds to use when profile is "public"
15
16
  */
16
17
  const cacheControl = (profile, options = {maxAge: 0}) => {
17
18
  const profiles = {
18
19
  public: `public, max-age=${options.maxAge}`,
19
- private: 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0'
20
+ private: 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0',
21
+ noCacheDynamic: cacheControlValues.noCacheDynamic
20
22
  };
21
23
 
22
24
  let output;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghost",
3
- "version": "4.48.4",
3
+ "version": "4.48.6",
4
4
  "description": "The professional publishing platform",
5
5
  "author": "Ghost Foundation",
6
6
  "homepage": "https://ghost.org",
@@ -73,6 +73,7 @@
73
73
  "@tryghost/errors": "1.2.12",
74
74
  "@tryghost/express-dynamic-redirects": "0.2.11",
75
75
  "@tryghost/helpers": "1.1.64",
76
+ "@tryghost/http-cache-utils": "0.1.3",
76
77
  "@tryghost/image-transform": "1.0.30",
77
78
  "@tryghost/job-manager": "0.8.22",
78
79
  "@tryghost/kg-card-factory": "3.1.3",
@@ -82,7 +83,7 @@
82
83
  "@tryghost/kg-mobiledoc-html-renderer": "5.3.5",
83
84
  "@tryghost/limit-service": "1.1.2",
84
85
  "@tryghost/logging": "2.1.8",
85
- "@tryghost/magic-link": "1.0.24",
86
+ "@tryghost/magic-link": "1.0.27",
86
87
  "@tryghost/member-events": "0.4.4",
87
88
  "@tryghost/members-api": "6.3.1",
88
89
  "@tryghost/members-events-service": "0.4.1",
@@ -93,7 +94,7 @@
93
94
  "@tryghost/metrics": "1.0.11",
94
95
  "@tryghost/minifier": "0.1.13",
95
96
  "@tryghost/mw-api-version-mismatch": "0.1.1",
96
- "@tryghost/mw-error-handler": "0.2.2",
97
+ "@tryghost/mw-error-handler": "0.2.5",
97
98
  "@tryghost/mw-session-from-token": "0.1.30",
98
99
  "@tryghost/nodemailer": "0.3.22",
99
100
  "@tryghost/nql": "0.9.2",
package/yarn.lock CHANGED
@@ -1688,6 +1688,335 @@
1688
1688
  resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5"
1689
1689
  integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==
1690
1690
 
1691
+ "@stdlib/array@^0.0.x":
1692
+ version "0.0.12"
1693
+ resolved "https://registry.yarnpkg.com/@stdlib/array/-/array-0.0.12.tgz#12f40ab95bb36d424cdad991f29fc3cb491ee29e"
1694
+ integrity sha512-nDksiuvRC1dSTHrf5yOGQmlRwAzSKV8MdFQwFSvLbZGGhi5Y4hExqea5HloLgNVouVs8lnAFi2oubSM4Mc7YAg==
1695
+ dependencies:
1696
+ "@stdlib/assert" "^0.0.x"
1697
+ "@stdlib/blas" "^0.0.x"
1698
+ "@stdlib/complex" "^0.0.x"
1699
+ "@stdlib/constants" "^0.0.x"
1700
+ "@stdlib/math" "^0.0.x"
1701
+ "@stdlib/symbol" "^0.0.x"
1702
+ "@stdlib/types" "^0.0.x"
1703
+ "@stdlib/utils" "^0.0.x"
1704
+
1705
+ "@stdlib/assert@^0.0.x":
1706
+ version "0.0.12"
1707
+ resolved "https://registry.yarnpkg.com/@stdlib/assert/-/assert-0.0.12.tgz#1648c9016e5041291f55a6464abcc4069c5103ce"
1708
+ integrity sha512-38FxFf+ZoQZbdc+m09UsWtaCmzd/2e7im0JOaaFYE7icmRfm+4KiE9BRvBT4tIn7ioLB2f9PsBicKjIsf+tY1w==
1709
+ dependencies:
1710
+ "@stdlib/array" "^0.0.x"
1711
+ "@stdlib/cli" "^0.0.x"
1712
+ "@stdlib/complex" "^0.0.x"
1713
+ "@stdlib/constants" "^0.0.x"
1714
+ "@stdlib/fs" "^0.0.x"
1715
+ "@stdlib/math" "^0.0.x"
1716
+ "@stdlib/ndarray" "^0.0.x"
1717
+ "@stdlib/number" "^0.0.x"
1718
+ "@stdlib/os" "^0.0.x"
1719
+ "@stdlib/process" "^0.0.x"
1720
+ "@stdlib/regexp" "^0.0.x"
1721
+ "@stdlib/streams" "^0.0.x"
1722
+ "@stdlib/string" "^0.0.x"
1723
+ "@stdlib/symbol" "^0.0.x"
1724
+ "@stdlib/types" "^0.0.x"
1725
+ "@stdlib/utils" "^0.0.x"
1726
+
1727
+ "@stdlib/bigint@^0.0.x":
1728
+ version "0.0.11"
1729
+ resolved "https://registry.yarnpkg.com/@stdlib/bigint/-/bigint-0.0.11.tgz#c416a1d727001c55f4897e6424124199d638f2fd"
1730
+ integrity sha512-uz0aYDLABAYyqxaCSHYbUt0yPkXYUCR7TrVvHN+UUD3i8FZ02ZKcLO+faKisDyxKEoSFTNtn3Ro8Ir5ebOlVXQ==
1731
+ dependencies:
1732
+ "@stdlib/utils" "^0.0.x"
1733
+
1734
+ "@stdlib/blas@^0.0.x":
1735
+ version "0.0.12"
1736
+ resolved "https://registry.yarnpkg.com/@stdlib/blas/-/blas-0.0.12.tgz#7e93e42b4621fc6903bf63264f045047333536c2"
1737
+ integrity sha512-nWY749bWceuoWQ7gz977blCwR7lyQ/rsIXVO4b600h+NFpeA2i/ea7MYC680utIbeu2cnDWHdglBPoK535VAzA==
1738
+ dependencies:
1739
+ "@stdlib/array" "^0.0.x"
1740
+ "@stdlib/assert" "^0.0.x"
1741
+ "@stdlib/math" "^0.0.x"
1742
+ "@stdlib/number" "^0.0.x"
1743
+ "@stdlib/types" "^0.0.x"
1744
+ "@stdlib/utils" "^0.0.x"
1745
+
1746
+ "@stdlib/buffer@^0.0.x":
1747
+ version "0.0.11"
1748
+ resolved "https://registry.yarnpkg.com/@stdlib/buffer/-/buffer-0.0.11.tgz#6137b00845e6c905181cc7ebfae9f7e47c01b0ce"
1749
+ integrity sha512-Jeie5eDDa1tVuRcuU+cBXI/oOXSmMxUUccZpqXzgYe0IO8QSNtNxv9mUTzJk/m5wH+lmLoDvNxzPpOH9TODjJg==
1750
+ dependencies:
1751
+ "@stdlib/array" "^0.0.x"
1752
+ "@stdlib/assert" "^0.0.x"
1753
+ "@stdlib/process" "^0.0.x"
1754
+ "@stdlib/types" "^0.0.x"
1755
+ "@stdlib/utils" "^0.0.x"
1756
+
1757
+ "@stdlib/cli@^0.0.x":
1758
+ version "0.0.10"
1759
+ resolved "https://registry.yarnpkg.com/@stdlib/cli/-/cli-0.0.10.tgz#28e2fbe6865d7f5cd15b7dc5846c99bd3b91674f"
1760
+ integrity sha512-OITGaxG46kwK799+NuOd/+ccosJ9koVuQBC610DDJv0ZJf8mD7sbjGXrmue9C4EOh8MP7Vm/6HN14BojX8oTCg==
1761
+ dependencies:
1762
+ "@stdlib/utils" "^0.0.x"
1763
+ minimist "^1.2.0"
1764
+
1765
+ "@stdlib/complex@^0.0.x":
1766
+ version "0.0.12"
1767
+ resolved "https://registry.yarnpkg.com/@stdlib/complex/-/complex-0.0.12.tgz#3afbc190cd0a9b37fc7c6e508c3aa9fda9106944"
1768
+ integrity sha512-UbZBdaUxT2G+lsTIrVlRZwx2IRY6GXnVILggeejsIVxHSuK+oTyapfetcAv0FJFLP+Rrr+ZzrN4b9G3hBw6NHA==
1769
+ dependencies:
1770
+ "@stdlib/array" "^0.0.x"
1771
+ "@stdlib/assert" "^0.0.x"
1772
+ "@stdlib/types" "^0.0.x"
1773
+ "@stdlib/utils" "^0.0.x"
1774
+
1775
+ "@stdlib/constants@^0.0.x":
1776
+ version "0.0.11"
1777
+ resolved "https://registry.yarnpkg.com/@stdlib/constants/-/constants-0.0.11.tgz#78cd56d6c2982b30264843c3d75bde7125e90cd2"
1778
+ integrity sha512-cWKy0L9hXHUQTvFzdPkTvZnn/5Pjv7H4UwY0WC1rLt+A5CxFDJKjvnIi9ypSzJS3CAiGl1ZaHCdadoqXhNdkUg==
1779
+ dependencies:
1780
+ "@stdlib/array" "^0.0.x"
1781
+ "@stdlib/assert" "^0.0.x"
1782
+ "@stdlib/number" "^0.0.x"
1783
+ "@stdlib/utils" "^0.0.x"
1784
+
1785
+ "@stdlib/fs@^0.0.x":
1786
+ version "0.0.12"
1787
+ resolved "https://registry.yarnpkg.com/@stdlib/fs/-/fs-0.0.12.tgz#662365fd5846a51f075724b4f2888ae88441b70d"
1788
+ integrity sha512-zcDLbt39EEM3M3wJW6luChS53B8T+TMJkjs2526UpKJ71O0/0adR57cI7PfCpkMd33d05uM7GM+leEj4eks4Cw==
1789
+ dependencies:
1790
+ "@stdlib/array" "^0.0.x"
1791
+ "@stdlib/assert" "^0.0.x"
1792
+ "@stdlib/cli" "^0.0.x"
1793
+ "@stdlib/math" "^0.0.x"
1794
+ "@stdlib/process" "^0.0.x"
1795
+ "@stdlib/string" "^0.0.x"
1796
+ "@stdlib/utils" "^0.0.x"
1797
+ debug "^2.6.9"
1798
+
1799
+ "@stdlib/math@^0.0.x":
1800
+ version "0.0.11"
1801
+ resolved "https://registry.yarnpkg.com/@stdlib/math/-/math-0.0.11.tgz#eb6638bc03a20fbd6727dd5b977ee0170bda4649"
1802
+ integrity sha512-qI78sR1QqGjHj8k/aAqkZ51Su2fyBvaR/jMKQqcB/ML8bpYpf+QGlGvTty5Qdru/wpqds4kVFOVbWGcNFIV2+Q==
1803
+ dependencies:
1804
+ "@stdlib/assert" "^0.0.x"
1805
+ "@stdlib/constants" "^0.0.x"
1806
+ "@stdlib/ndarray" "^0.0.x"
1807
+ "@stdlib/number" "^0.0.x"
1808
+ "@stdlib/strided" "^0.0.x"
1809
+ "@stdlib/symbol" "^0.0.x"
1810
+ "@stdlib/types" "^0.0.x"
1811
+ "@stdlib/utils" "^0.0.x"
1812
+ debug "^2.6.9"
1813
+
1814
+ "@stdlib/ndarray@^0.0.x":
1815
+ version "0.0.13"
1816
+ resolved "https://registry.yarnpkg.com/@stdlib/ndarray/-/ndarray-0.0.13.tgz#2e8fc645e10f56a645a0ab81598808c0e8f43b82"
1817
+ integrity sha512-Z+U9KJP4U2HWrLtuAXSPvhNetAdqaNLMcliR6S/fz+VPlFDeymRK7omRFMgVQ+1zcAvIgKZGJxpLC3vjiPUYEw==
1818
+ dependencies:
1819
+ "@stdlib/array" "^0.0.x"
1820
+ "@stdlib/assert" "^0.0.x"
1821
+ "@stdlib/bigint" "^0.0.x"
1822
+ "@stdlib/buffer" "^0.0.x"
1823
+ "@stdlib/complex" "^0.0.x"
1824
+ "@stdlib/constants" "^0.0.x"
1825
+ "@stdlib/math" "^0.0.x"
1826
+ "@stdlib/number" "^0.0.x"
1827
+ "@stdlib/string" "^0.0.x"
1828
+ "@stdlib/types" "^0.0.x"
1829
+ "@stdlib/utils" "^0.0.x"
1830
+
1831
+ "@stdlib/nlp@^0.0.x":
1832
+ version "0.0.11"
1833
+ resolved "https://registry.yarnpkg.com/@stdlib/nlp/-/nlp-0.0.11.tgz#532ec0f7267b8d639e4c20c6de864e8de8a09054"
1834
+ integrity sha512-D9avYWANm0Db2W7RpzdSdi5GxRYALGAqUrNnRnnKIO6sMEfr/DvONoAbWruda4QyvSC+0MJNwcEn7+PHhRwYhw==
1835
+ dependencies:
1836
+ "@stdlib/array" "^0.0.x"
1837
+ "@stdlib/assert" "^0.0.x"
1838
+ "@stdlib/math" "^0.0.x"
1839
+ "@stdlib/random" "^0.0.x"
1840
+ "@stdlib/string" "^0.0.x"
1841
+ "@stdlib/utils" "^0.0.x"
1842
+
1843
+ "@stdlib/number@^0.0.x":
1844
+ version "0.0.10"
1845
+ resolved "https://registry.yarnpkg.com/@stdlib/number/-/number-0.0.10.tgz#4030ad8fc3fac19a9afb415c443cee6deea0e65c"
1846
+ integrity sha512-RyfoP9MlnX4kccvg8qv7vYQPbLdzfS1Mnp/prGOoWhvMG3pyBwFAan34kwFb5IS/zHC3W5EmrgXCV2QWyLg/Kg==
1847
+ dependencies:
1848
+ "@stdlib/array" "^0.0.x"
1849
+ "@stdlib/assert" "^0.0.x"
1850
+ "@stdlib/constants" "^0.0.x"
1851
+ "@stdlib/math" "^0.0.x"
1852
+ "@stdlib/os" "^0.0.x"
1853
+ "@stdlib/string" "^0.0.x"
1854
+ "@stdlib/types" "^0.0.x"
1855
+ "@stdlib/utils" "^0.0.x"
1856
+
1857
+ "@stdlib/os@^0.0.x":
1858
+ version "0.0.12"
1859
+ resolved "https://registry.yarnpkg.com/@stdlib/os/-/os-0.0.12.tgz#08bbf013c62a7153099fa9cbac086ca1349a4677"
1860
+ integrity sha512-O7lklZ/9XEzoCmYvzjPh7jrFWkbpOSHGI71ve3dkSvBy5tyiSL3TtivfKsIC+9ZxuEJZ3d3lIjc9e+yz4HVbqQ==
1861
+ dependencies:
1862
+ "@stdlib/assert" "^0.0.x"
1863
+ "@stdlib/cli" "^0.0.x"
1864
+ "@stdlib/fs" "^0.0.x"
1865
+ "@stdlib/process" "^0.0.x"
1866
+ "@stdlib/utils" "^0.0.x"
1867
+
1868
+ "@stdlib/process@^0.0.x":
1869
+ version "0.0.12"
1870
+ resolved "https://registry.yarnpkg.com/@stdlib/process/-/process-0.0.12.tgz#123325079d89a32f4212f72fb694f8fe3614cf18"
1871
+ integrity sha512-P0X0TMvkissBE1Wr877Avi2/AxmP7X5Toa6GatHbpJdDg6jQmN4SgPd+NZNp98YtZUyk478c8XSIzMr1krQ20g==
1872
+ dependencies:
1873
+ "@stdlib/assert" "^0.0.x"
1874
+ "@stdlib/buffer" "^0.0.x"
1875
+ "@stdlib/cli" "^0.0.x"
1876
+ "@stdlib/fs" "^0.0.x"
1877
+ "@stdlib/streams" "^0.0.x"
1878
+ "@stdlib/string" "^0.0.x"
1879
+ "@stdlib/utils" "^0.0.x"
1880
+
1881
+ "@stdlib/random@^0.0.x":
1882
+ version "0.0.12"
1883
+ resolved "https://registry.yarnpkg.com/@stdlib/random/-/random-0.0.12.tgz#e819c3abd602ed5559ba800dba751e49c633ff85"
1884
+ integrity sha512-c5yND4Ahnm9Jx0I+jsKhn4Yrz10D53ALSrIe3PG1qIz3kNFcIPnmvCuNGd+3V4ch4Mbrez55Y8z/ZC5RJh4vJQ==
1885
+ dependencies:
1886
+ "@stdlib/array" "^0.0.x"
1887
+ "@stdlib/assert" "^0.0.x"
1888
+ "@stdlib/blas" "^0.0.x"
1889
+ "@stdlib/buffer" "^0.0.x"
1890
+ "@stdlib/cli" "^0.0.x"
1891
+ "@stdlib/constants" "^0.0.x"
1892
+ "@stdlib/fs" "^0.0.x"
1893
+ "@stdlib/math" "^0.0.x"
1894
+ "@stdlib/process" "^0.0.x"
1895
+ "@stdlib/stats" "^0.0.x"
1896
+ "@stdlib/streams" "^0.0.x"
1897
+ "@stdlib/symbol" "^0.0.x"
1898
+ "@stdlib/types" "^0.0.x"
1899
+ "@stdlib/utils" "^0.0.x"
1900
+ debug "^2.6.9"
1901
+ readable-stream "^2.1.4"
1902
+
1903
+ "@stdlib/regexp@^0.0.x":
1904
+ version "0.0.13"
1905
+ resolved "https://registry.yarnpkg.com/@stdlib/regexp/-/regexp-0.0.13.tgz#80b98361dc7a441b47bc3fa964bb0c826759e971"
1906
+ integrity sha512-3JT5ZIoq/1nXY+dY+QtkU8/m7oWDeekyItEEXMx9c/AOf0ph8fmvTUGMDNfUq0RetcznFe3b66kFz6Zt4XHviA==
1907
+ dependencies:
1908
+ "@stdlib/assert" "^0.0.x"
1909
+ "@stdlib/utils" "^0.0.x"
1910
+
1911
+ "@stdlib/stats@^0.0.x":
1912
+ version "0.0.13"
1913
+ resolved "https://registry.yarnpkg.com/@stdlib/stats/-/stats-0.0.13.tgz#87c973f385379d794707c7b5196a173dba8b07e1"
1914
+ integrity sha512-hm+t32dKbx/L7+7WlQ1o4NDEzV0J4QSnwFBCsIMIAO8+VPxTZ4FxyNERl4oKlS3hZZe4AVKjoOVhBDtgEWrS4g==
1915
+ dependencies:
1916
+ "@stdlib/array" "^0.0.x"
1917
+ "@stdlib/assert" "^0.0.x"
1918
+ "@stdlib/blas" "^0.0.x"
1919
+ "@stdlib/constants" "^0.0.x"
1920
+ "@stdlib/math" "^0.0.x"
1921
+ "@stdlib/ndarray" "^0.0.x"
1922
+ "@stdlib/random" "^0.0.x"
1923
+ "@stdlib/string" "^0.0.x"
1924
+ "@stdlib/symbol" "^0.0.x"
1925
+ "@stdlib/types" "^0.0.x"
1926
+ "@stdlib/utils" "^0.0.x"
1927
+
1928
+ "@stdlib/streams@^0.0.x":
1929
+ version "0.0.12"
1930
+ resolved "https://registry.yarnpkg.com/@stdlib/streams/-/streams-0.0.12.tgz#07f5ceae5852590afad8e1cb7ce94174becc8739"
1931
+ integrity sha512-YLUlXwjJNknHp92IkJUdvn5jEQjDckpawKhDLLCoxyh3h5V+w/8+61SH7TMTfKx5lBxKJ8vvtchZh90mIJOAjQ==
1932
+ dependencies:
1933
+ "@stdlib/assert" "^0.0.x"
1934
+ "@stdlib/buffer" "^0.0.x"
1935
+ "@stdlib/cli" "^0.0.x"
1936
+ "@stdlib/fs" "^0.0.x"
1937
+ "@stdlib/types" "^0.0.x"
1938
+ "@stdlib/utils" "^0.0.x"
1939
+ debug "^2.6.9"
1940
+ readable-stream "^2.1.4"
1941
+
1942
+ "@stdlib/strided@^0.0.x":
1943
+ version "0.0.12"
1944
+ resolved "https://registry.yarnpkg.com/@stdlib/strided/-/strided-0.0.12.tgz#86ac48e660cb7f64a45cf07e80cbbfe58be21ae1"
1945
+ integrity sha512-1NINP+Y7IJht34iri/bYLY7TVxrip51f6Z3qWxGHUCH33kvk5H5QqV+RsmFEGbbyoGtdeHrT2O+xA+7R2e3SNg==
1946
+ dependencies:
1947
+ "@stdlib/assert" "^0.0.x"
1948
+ "@stdlib/math" "^0.0.x"
1949
+ "@stdlib/ndarray" "^0.0.x"
1950
+ "@stdlib/types" "^0.0.x"
1951
+ "@stdlib/utils" "^0.0.x"
1952
+
1953
+ "@stdlib/string@^0.0.x":
1954
+ version "0.0.14"
1955
+ resolved "https://registry.yarnpkg.com/@stdlib/string/-/string-0.0.14.tgz#4feea4f9089ab72428eebb65fe7b93d90a7f34f4"
1956
+ integrity sha512-1ClvUTPysens7GZz3WsrkFYIFs8qDmnXkyAd3zMvTXgRpy7hqrv6nNzLMQj8BHv5cBWaWPOXYd/cZ+JyMnZNQQ==
1957
+ dependencies:
1958
+ "@stdlib/assert" "^0.0.x"
1959
+ "@stdlib/cli" "^0.0.x"
1960
+ "@stdlib/constants" "^0.0.x"
1961
+ "@stdlib/fs" "^0.0.x"
1962
+ "@stdlib/math" "^0.0.x"
1963
+ "@stdlib/nlp" "^0.0.x"
1964
+ "@stdlib/process" "^0.0.x"
1965
+ "@stdlib/regexp" "^0.0.x"
1966
+ "@stdlib/streams" "^0.0.x"
1967
+ "@stdlib/types" "^0.0.x"
1968
+ "@stdlib/utils" "^0.0.x"
1969
+
1970
+ "@stdlib/symbol@^0.0.x":
1971
+ version "0.0.12"
1972
+ resolved "https://registry.yarnpkg.com/@stdlib/symbol/-/symbol-0.0.12.tgz#b9f396b0bf269c2985bb7fe99810a8e26d7288c3"
1973
+ integrity sha512-2IDhpzWVGeLHgsvIsX12RXvf78r7xBkc4QLoRUv3k7Cp61BisR1Ym1p0Tq9PbxT8fknlvLToh9n5RpmESi2d4w==
1974
+ dependencies:
1975
+ "@stdlib/assert" "^0.0.x"
1976
+ "@stdlib/utils" "^0.0.x"
1977
+
1978
+ "@stdlib/time@^0.0.x":
1979
+ version "0.0.14"
1980
+ resolved "https://registry.yarnpkg.com/@stdlib/time/-/time-0.0.14.tgz#ea6daa438b1d3b019b99f5091117ee4bcef55d60"
1981
+ integrity sha512-1gMFCQTabMVIgww+k4g8HHHIhyy1tIlvwT8mC0BHW7Q7TzDAgobwL0bvor+lwvCb5LlDAvNQEpaRgVT99QWGeQ==
1982
+ dependencies:
1983
+ "@stdlib/assert" "^0.0.x"
1984
+ "@stdlib/cli" "^0.0.x"
1985
+ "@stdlib/constants" "^0.0.x"
1986
+ "@stdlib/fs" "^0.0.x"
1987
+ "@stdlib/math" "^0.0.x"
1988
+ "@stdlib/string" "^0.0.x"
1989
+ "@stdlib/utils" "^0.0.x"
1990
+
1991
+ "@stdlib/types@^0.0.x":
1992
+ version "0.0.14"
1993
+ resolved "https://registry.yarnpkg.com/@stdlib/types/-/types-0.0.14.tgz#02d3aab7a9bfaeb86e34ab749772ea22f7b2f7e0"
1994
+ integrity sha512-AP3EI9/il/xkwUazcoY+SbjtxHRrheXgSbWZdEGD+rWpEgj6n2i63hp6hTOpAB5NipE0tJwinQlDGOuQ1lCaCw==
1995
+
1996
+ "@stdlib/utils@^0.0.12", "@stdlib/utils@^0.0.x":
1997
+ version "0.0.12"
1998
+ resolved "https://registry.yarnpkg.com/@stdlib/utils/-/utils-0.0.12.tgz#670de5a7b253f04f11a4cba38f790e82393bcb46"
1999
+ integrity sha512-+JhFpl6l7RSq/xGnbWRQ5dAL90h9ONj8MViqlb7teBZFtePZLMwoRA1wssypFcJ8SFMRWQn7lPmpYVUkGwRSOg==
2000
+ dependencies:
2001
+ "@stdlib/array" "^0.0.x"
2002
+ "@stdlib/assert" "^0.0.x"
2003
+ "@stdlib/blas" "^0.0.x"
2004
+ "@stdlib/buffer" "^0.0.x"
2005
+ "@stdlib/cli" "^0.0.x"
2006
+ "@stdlib/constants" "^0.0.x"
2007
+ "@stdlib/fs" "^0.0.x"
2008
+ "@stdlib/math" "^0.0.x"
2009
+ "@stdlib/os" "^0.0.x"
2010
+ "@stdlib/process" "^0.0.x"
2011
+ "@stdlib/random" "^0.0.x"
2012
+ "@stdlib/regexp" "^0.0.x"
2013
+ "@stdlib/streams" "^0.0.x"
2014
+ "@stdlib/string" "^0.0.x"
2015
+ "@stdlib/symbol" "^0.0.x"
2016
+ "@stdlib/time" "^0.0.x"
2017
+ "@stdlib/types" "^0.0.x"
2018
+ debug "^2.6.9"
2019
+
1691
2020
  "@szmarczak/http-timer@^1.1.2":
1692
2021
  version "1.1.2"
1693
2022
  resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
@@ -1953,6 +2282,15 @@
1953
2282
  utils-copy-error "^1.0.1"
1954
2283
  uuid "^8.3.2"
1955
2284
 
2285
+ "@tryghost/errors@^1.2.17":
2286
+ version "1.2.18"
2287
+ resolved "https://registry.yarnpkg.com/@tryghost/errors/-/errors-1.2.18.tgz#beb71d794a25af01f1a0c79b4a4afc903fa963a7"
2288
+ integrity sha512-4XKfiVQe6GgRCcCvLE6LmeMwWNQAowuNwV58rPI8rnFgsDp49gTsMqL/1HOqK/L2x2BIETbYt1kFHO5ai4qa0Q==
2289
+ dependencies:
2290
+ "@stdlib/utils" "^0.0.12"
2291
+ lodash "^4.17.21"
2292
+ uuid "^9.0.0"
2293
+
1956
2294
  "@tryghost/express-dynamic-redirects@0.2.11":
1957
2295
  version "0.2.11"
1958
2296
  resolved "https://registry.yarnpkg.com/@tryghost/express-dynamic-redirects/-/express-dynamic-redirects-0.2.11.tgz#7b2906c21d40923e0431d1ba98bb613a8f1caad3"
@@ -1983,6 +2321,11 @@
1983
2321
  "@tryghost/mobiledoc-kit" "^0.12.4-ghost.1"
1984
2322
  jsdom "^18.0.0"
1985
2323
 
2324
+ "@tryghost/http-cache-utils@0.1.3":
2325
+ version "0.1.3"
2326
+ resolved "https://registry.yarnpkg.com/@tryghost/http-cache-utils/-/http-cache-utils-0.1.3.tgz#a3a07e55dbe3a62b7d51e98f19c063d03a1ef804"
2327
+ integrity sha512-QganheP/zhcpFnDLPJYlQ4gBIhd+lAEMh8byx7ocCPM37nuEQ3zlmcM6KzDfUmKYwU+5oI/ya/0Wn0kmnyZ37A==
2328
+
1986
2329
  "@tryghost/http-stream@^0.1.8":
1987
2330
  version "0.1.8"
1988
2331
  resolved "https://registry.yarnpkg.com/@tryghost/http-stream/-/http-stream-0.1.8.tgz#a50bea2eff582c86aba08ecfa1c32b24902d8cfb"
@@ -2113,11 +2456,13 @@
2113
2456
  json-stringify-safe "^5.0.1"
2114
2457
  lodash "^4.17.21"
2115
2458
 
2116
- "@tryghost/magic-link@1.0.24", "@tryghost/magic-link@^1.0.24":
2117
- version "1.0.24"
2118
- resolved "https://registry.yarnpkg.com/@tryghost/magic-link/-/magic-link-1.0.24.tgz#6cbcb46640cd7d0b327e442d60837dbc5c4ddd80"
2119
- integrity sha512-BmN+jFgBgpawZs/sj95fW9skrDjGoOYB55xMrMwkAlPVZRXBIwceI2Lrecn5doQgi5eDzkgWqsBomuV9dP40Mw==
2459
+ "@tryghost/magic-link@1.0.27", "@tryghost/magic-link@^1.0.24":
2460
+ version "1.0.27"
2461
+ resolved "https://registry.yarnpkg.com/@tryghost/magic-link/-/magic-link-1.0.27.tgz#3c378536d3bc8cb9c9875f71500ba07fd21c20e0"
2462
+ integrity sha512-O8OuBFyWhNVe+zyKJ6g1wfSqB1tkwO0WSv4CpTHsGSbEQvNCfHaD+f2hbvADYbVgh7egw/oLBdbEIb19ASEpcA==
2120
2463
  dependencies:
2464
+ "@tryghost/tpl" "0.1.18"
2465
+ "@tryghost/validator" "0.1.29"
2121
2466
  bluebird "^3.5.5"
2122
2467
  jsonwebtoken "^8.5.1"
2123
2468
  lodash "^4.17.15"
@@ -2299,13 +2644,14 @@
2299
2644
  resolved "https://registry.yarnpkg.com/@tryghost/mw-api-version-mismatch/-/mw-api-version-mismatch-0.1.1.tgz#913c8941ebe274eac4c3ac872fbe6268534f0003"
2300
2645
  integrity sha512-N1H3P/ua7MCJTQrhFd6RjBFL95pjB+y3Ih1ZyKToBzicU3RShLUsgVlBC7YNaJVGFG/RYCImzlm09QCV8qwgpg==
2301
2646
 
2302
- "@tryghost/mw-error-handler@0.2.2":
2303
- version "0.2.2"
2304
- resolved "https://registry.yarnpkg.com/@tryghost/mw-error-handler/-/mw-error-handler-0.2.2.tgz#ab507e8b9079b6cbcbef2ac3fee4266342188165"
2305
- integrity sha512-9J6d1gce+PzdLkSGxap5oWjG3INb3J9QLoC4NHXOqIGZ+7GERlao3q6AFVBo5xUBoUzkd+Q7+3ZQfeLarNEwUA==
2647
+ "@tryghost/mw-error-handler@0.2.5":
2648
+ version "0.2.5"
2649
+ resolved "https://registry.yarnpkg.com/@tryghost/mw-error-handler/-/mw-error-handler-0.2.5.tgz#2a67fe0d8c5402e9261d270c47c76cfcdc71974d"
2650
+ integrity sha512-jl/CLpVFQygXGbjfuznQYe+VF6xT0YPixcT4LfFKN+H/Kpm+8/MIDLzfAAnxJDlIM4w5Ux1YQYAQMtsbU0rxqg==
2306
2651
  dependencies:
2307
2652
  "@tryghost/debug" "^0.1.9"
2308
2653
  "@tryghost/errors" "1.2.12"
2654
+ "@tryghost/http-cache-utils" "0.1.3"
2309
2655
  "@tryghost/tpl" "^0.1.8"
2310
2656
  lodash "^4.17.21"
2311
2657
  semver "^7.3.6"
@@ -2464,6 +2810,13 @@
2464
2810
  dependencies:
2465
2811
  lodash.template "^4.5.0"
2466
2812
 
2813
+ "@tryghost/tpl@0.1.18", "@tryghost/tpl@^0.1.18":
2814
+ version "0.1.18"
2815
+ resolved "https://registry.yarnpkg.com/@tryghost/tpl/-/tpl-0.1.18.tgz#a4c87e3a82cd75aba72b2325c91d87677cc615f2"
2816
+ integrity sha512-frhPu9ScllYof5Xrhn4FrOluBSOEQiAQP67EOiFV6XE8UKJtAYTB48Xf9XtAWm9IfznpOGuy/2w84nK1SN7lvg==
2817
+ dependencies:
2818
+ lodash.template "^4.5.0"
2819
+
2467
2820
  "@tryghost/update-check-service@0.3.2":
2468
2821
  version "0.3.2"
2469
2822
  resolved "https://registry.yarnpkg.com/@tryghost/update-check-service/-/update-check-service-0.3.2.tgz#748ce1a57aad8b1d2457ffe44098977cbd273203"
@@ -2500,6 +2853,17 @@
2500
2853
  moment-timezone "^0.5.23"
2501
2854
  validator "7.2.0"
2502
2855
 
2856
+ "@tryghost/validator@0.1.29":
2857
+ version "0.1.29"
2858
+ resolved "https://registry.yarnpkg.com/@tryghost/validator/-/validator-0.1.29.tgz#8015195d883dcb015e651b6c54f63955a96c84f7"
2859
+ integrity sha512-YGVMTjuZpFP7w2MSZjE/83XAmuSKNpC2eiXP+zagkmkxyjUFnmej/xKdcLSSHvNhSB6bq0Y9JMoI3bgT5RMPHA==
2860
+ dependencies:
2861
+ "@tryghost/errors" "^1.2.17"
2862
+ "@tryghost/tpl" "^0.1.18"
2863
+ lodash "^4.17.21"
2864
+ moment-timezone "^0.5.23"
2865
+ validator "7.2.0"
2866
+
2503
2867
  "@tryghost/verification-trigger@0.2.3":
2504
2868
  version "0.2.3"
2505
2869
  resolved "https://registry.yarnpkg.com/@tryghost/verification-trigger/-/verification-trigger-0.2.3.tgz#47c7be66f48c539ce5a2b6d5d6d95f0e74e46ea3"
@@ -4495,7 +4859,7 @@ dayjs@^1.10.0:
4495
4859
  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.0.tgz#009bf7ef2e2ea2d5db2e6583d2d39a4b5061e805"
4496
4860
  integrity sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==
4497
4861
 
4498
- debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
4862
+ debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
4499
4863
  version "2.6.9"
4500
4864
  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
4501
4865
  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@@ -10726,7 +11090,7 @@ readable-stream@1.1.x:
10726
11090
  isarray "0.0.1"
10727
11091
  string_decoder "~0.10.x"
10728
11092
 
10729
- readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.7:
11093
+ readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.3.7:
10730
11094
  version "2.3.7"
10731
11095
  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
10732
11096
  integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -12529,6 +12893,11 @@ uuid@^7.0.1:
12529
12893
  resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b"
12530
12894
  integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==
12531
12895
 
12896
+ uuid@^9.0.0:
12897
+ version "9.0.0"
12898
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5"
12899
+ integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==
12900
+
12532
12901
  v8-compile-cache@^2.0.3:
12533
12902
  version "2.3.0"
12534
12903
  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"