@antora/content-aggregator 3.2.0-alpha.3 → 3.2.0-alpha.4

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.
@@ -16,6 +16,7 @@ const GitCredentialManagerStore = require('./git-credential-manager-store')
16
16
  const git = require('./git')
17
17
  const { NotFoundError, ObjectTypeError, UnknownTransportError, UrlParseError } = git.Errors
18
18
  const globStream = require('glob-stream')
19
+ const { inspect } = require('util')
19
20
  const invariably = require('./invariably')
20
21
  const logger = require('./logger')
21
22
  const { makeMatcherRx, versionMatcherOpts: VERSION_MATCHER_OPTS } = require('./matcher')
@@ -118,11 +119,11 @@ async function collectFiles (sourcesByUrl, loadOpts, concurrency, fetchedUrls) {
118
119
  })
119
120
  return gracefulPromiseAllWithLimit(loadTasks, concurrency.fetch).then(([results, rejections]) => {
120
121
  if (rejections.length) {
121
- if (concurrency.fetch > 1 && rejections.every(({ recoverable }) => recoverable)) {
122
+ if (concurrency.fetch > 1 && results.length > 1 && rejections.every(({ recoverable }) => recoverable)) {
122
123
  if (loadOpts.progress) loadOpts.progress.terminate() // reset cursor position and allow it be reused
123
- const msg0 = 'An unexpected error occurred while concurrently fetching content sources.'
124
+ const msg0 = 'An unexpected error occurred while fetching content sources concurrently.'
124
125
  const msg1 = 'Retrying with git.fetch_concurrency value of 1.'
125
- logger.warn(msg0 + ' ' + msg1)
126
+ logger.warn(rejections[0], msg0 + ' ' + msg1)
126
127
  const fulfilledUrls = results.map((it) => it && it.repo.url && it.url).filter((it) => it)
127
128
  return collectFiles(sourcesByUrl, loadOpts, Object.assign(concurrency, { fetch: 1 }), fulfilledUrls)
128
129
  }
@@ -1011,15 +1012,14 @@ function transformGitCloneError (err, displayUrl, authRequested) {
1011
1012
  } else if (err.code === 'ENOTFOUND') {
1012
1013
  wrappedMsg = `Content repository host could not be resolved: ${err.hostname}`
1013
1014
  } else {
1014
- wrappedMsg = `${err.name}: ${err.message}`
1015
+ wrappedMsg = err.message || String(err)
1015
1016
  recoverable = trimMessage = true
1016
1017
  }
1017
- if (trimMessage) {
1018
- wrappedMsg = ~(wrappedMsg = wrappedMsg.trimEnd()).indexOf('. ') ? wrappedMsg : wrappedMsg.replace(/\.$/, '')
1019
- }
1018
+ if (trimMessage && !~(wrappedMsg = wrappedMsg.trimEnd()).indexOf('. ')) wrappedMsg = wrappedMsg.replace(/\.$/, '')
1020
1019
  const errWrapper = new Error(`${wrappedMsg} (url: ${displayUrl})`)
1021
- errWrapper.stack += `\nCaused by: ${err.stack || 'unknown'}`
1022
- return recoverable ? Object.assign(errWrapper, { recoverable }) : errWrapper
1020
+ errWrapper.stack += `\nCaused by: ${err.stack ? inspect(err).replace(/^Error \[(.+?)\](?=: )/, '$1') : err}`
1021
+ if (recoverable) Object.defineProperty(errWrapper, 'recoverable', { value: true })
1022
+ return errWrapper
1023
1023
  }
1024
1024
 
1025
1025
  function splitRefPatterns (str) {
@@ -49,11 +49,12 @@ module.exports = ({ headers: extraHeaders, httpProxy, httpsProxy, noProxy } = {}
49
49
  }
50
50
  return {
51
51
  async request ({ url, method, headers, body }) {
52
- headers = mergeHeaders(headers, extraHeaders)
52
+ headers = Object.assign(mergeHeaders(headers, extraHeaders), { connection: 'close' })
53
53
  body = await mergeBuffers(body)
54
- return new Promise((resolve, reject) =>
55
- get({ url, method, headers, body }, (err, res) => (err ? reject(err) : resolve(distillResponse(res))))
56
- )
54
+ return new Promise((resolve, reject) => {
55
+ const opts = { url, method, headers, body, timeout: 0, keepAlive: false }
56
+ return get(opts, (err, res) => (err ? reject(err) : resolve(distillResponse(res))))
57
+ })
57
58
  },
58
59
  }
59
60
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antora/content-aggregator",
3
- "version": "3.2.0-alpha.3",
3
+ "version": "3.2.0-alpha.4",
4
4
  "description": "Fetches and aggregates content from distributed sources for use in an Antora documentation pipeline.",
5
5
  "license": "MPL-2.0",
6
6
  "author": "OpenDevise Inc. (https://opendevise.com)",
@@ -29,13 +29,13 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@antora/expand-path-helper": "~2.0",
32
- "@antora/logger": "3.2.0-alpha.3",
32
+ "@antora/logger": "3.2.0-alpha.4",
33
33
  "@antora/user-require-helper": "~2.0",
34
34
  "braces": "~3.0",
35
35
  "cache-directory": "~2.0",
36
36
  "glob-stream": "~7.0",
37
37
  "hpagent": "~1.2",
38
- "isomorphic-git": "~1.21",
38
+ "isomorphic-git": "~1.25",
39
39
  "js-yaml": "~4.1",
40
40
  "multi-progress": "~4.0",
41
41
  "picomatch": "~2.3",