verdaccio 6.5.2 → 6.6.2

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.
Files changed (63) hide show
  1. package/CHANGELOG.md +2722 -0
  2. package/build/api/index.js +1 -1
  3. package/build/api/web/api/user.js +1 -1
  4. package/build/lib/cli/cli.js +1 -1
  5. package/build/lib/cli/commands/init.js +10 -3
  6. package/build/lib/cli/commands/version.js +1 -1
  7. package/build/lib/storage.js +20 -13
  8. package/build/lib/utils.js +10 -1
  9. package/build/types/index.js +6 -0
  10. package/package.json +38 -36
  11. package/security.txt +0 -2
  12. package/build/api/debug/index.d.ts +0 -3
  13. package/build/api/endpoint/api/dist-tags.d.ts +0 -4
  14. package/build/api/endpoint/api/package.d.ts +0 -5
  15. package/build/api/endpoint/api/ping.d.ts +0 -2
  16. package/build/api/endpoint/api/publish.d.ts +0 -26
  17. package/build/api/endpoint/api/search.d.ts +0 -1
  18. package/build/api/endpoint/api/star.d.ts +0 -4
  19. package/build/api/endpoint/api/stars.d.ts +0 -3
  20. package/build/api/endpoint/api/user.d.ts +0 -4
  21. package/build/api/endpoint/api/v1/profile.d.ts +0 -14
  22. package/build/api/endpoint/api/v1/search.d.ts +0 -5
  23. package/build/api/endpoint/api/v1/token.d.ts +0 -8
  24. package/build/api/endpoint/api/whoami.d.ts +0 -2
  25. package/build/api/endpoint/index.d.ts +0 -4
  26. package/build/api/index.d.ts +0 -4
  27. package/build/api/middleware.d.ts +0 -3
  28. package/build/api/web/api/index.d.ts +0 -2
  29. package/build/api/web/api/package.d.ts +0 -12
  30. package/build/api/web/api/search.d.ts +0 -5
  31. package/build/api/web/api/user.d.ts +0 -5
  32. package/build/api/web/api/utils.d.ts +0 -2
  33. package/build/api/web/index.d.ts +0 -9
  34. package/build/index.d.ts +0 -4
  35. package/build/lib/auth-utils.d.ts +0 -2
  36. package/build/lib/bootstrap.d.ts +0 -22
  37. package/build/lib/cli/cli.d.ts +0 -1
  38. package/build/lib/cli/commands/info.d.ts +0 -5
  39. package/build/lib/cli/commands/init.d.ts +0 -9
  40. package/build/lib/cli/commands/version.d.ts +0 -5
  41. package/build/lib/cli/utils.d.ts +0 -2
  42. package/build/lib/cli.d.ts +0 -2
  43. package/build/lib/config.d.ts +0 -5
  44. package/build/lib/constants.d.ts +0 -25
  45. package/build/lib/experiments.d.ts +0 -1
  46. package/build/lib/local-storage.d.ts +0 -182
  47. package/build/lib/logger/index.d.ts +0 -6
  48. package/build/lib/metadata-utils.d.ts +0 -10
  49. package/build/lib/run-server.d.ts +0 -22
  50. package/build/lib/storage-utils.d.ts +0 -30
  51. package/build/lib/storage.d.ts +0 -135
  52. package/build/lib/up-storage.d.ts +0 -138
  53. package/build/lib/uplink-util.d.ts +0 -7
  54. package/build/lib/utils.d.ts +0 -63
  55. package/cypress/e2e/01-home.cy.ts +0 -11
  56. package/cypress/e2e/02-signin.cy.ts +0 -11
  57. package/cypress/e2e/03-layout.cy.ts +0 -11
  58. package/cypress/e2e/04-search.cy.ts +0 -11
  59. package/cypress/e2e/05-settings.cy.ts +0 -11
  60. package/cypress/e2e/06-publish.cy.ts +0 -11
  61. package/cypress/e2e/07-change-password.cy.ts +0 -32
  62. package/cypress/support/e2e.ts +0 -1
  63. package/cypress.config.ts +0 -21
@@ -16,6 +16,7 @@ exports.encodeScopedUri = encodeScopedUri;
16
16
  exports.getVersion = getVersion;
17
17
  exports.hasDiffOneKey = hasDiffOneKey;
18
18
  exports.hasLogin = hasLogin;
19
+ exports.hasTarball = hasTarball;
19
20
  exports.initLogger = initLogger;
20
21
  exports.isObject = void 0;
21
22
  exports.isObjectOrArray = isObjectOrArray;
@@ -262,4 +263,12 @@ function logHTTPSWarning(storageLocation) {
262
263
  function hasLogin(config) {
263
264
  return _lodash.default.isNil(config?.web?.login) || config?.web?.login === true;
264
265
  }
265
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfbm9kZVBhdGgiLCJfc2VtdmVyIiwiX2NvbmZpZyIsIl9jb3JlIiwiX3V0aWxzIiwiX2NvbnN0YW50cyIsIl9sb2dnZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJkZWJ1ZyIsImNyZWF0ZURlYnVnIiwiZ2V0QmFkRGF0YSIsImdldEJhZFJlcXVlc3QiLCJnZXRDb2RlIiwiZ2V0Q29uZmxpY3QiLCJnZXRGb3JiaWRkZW4iLCJnZXRJbnRlcm5hbEVycm9yIiwiZ2V0Tm90Rm91bmQiLCJnZXRTZXJ2aWNlVW5hdmFpbGFibGUiLCJnZXRVbmF1dGhvcml6ZWQiLCJlcnJvclV0aWxzIiwiaW5pdExvZ2dlciIsImxvZ0NvbmZpZyIsImxvZ3MiLCJsb2ciLCJ3YXJuaW5nVXRpbHMiLCJlbWl0IiwiQ29kZXMiLCJWRVJXQVIwMDIiLCJzZXR1cCIsImFkZFNjb3BlIiwic2NvcGUiLCJwYWNrYWdlTmFtZSIsImlzT2JqZWN0IiwiZXhwb3J0cyIsInZhbGlkYXRpb25VdGlscyIsImlzT2JqZWN0T3JBcnJheSIsIm9iaiIsIl8iLCJpc051bGwiLCJ0YWdWZXJzaW9uIiwiZGF0YSIsInZlcnNpb24iLCJ0YWciLCJESVNUX1RBR1MiLCJzZW12ZXIiLCJwYXJzZSIsImdldFZlcnNpb24iLCJwa2ciLCJpc05pbCIsInZlcnNpb25zIiwidmVyc2lvbkl0ZW0iLCJjb21wYXJlIiwidW5kZWZpbmVkIiwibm9ybWFsaXplRGlzdFRhZ3MiLCJzb3J0ZWQiLCJsYXRlc3QiLCJwa2dVdGlscyIsInNlbXZlclNvcnQiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwicG9wIiwiaXNBcnJheSIsImlzU3RyaW5nIiwicGFyc2VJbnRlcnZhbFRhYmxlIiwibXMiLCJzIiwibSIsImgiLCJkIiwidyIsIk0iLCJ5IiwicGFyc2VJbnRlcnZhbCIsImludGVydmFsIiwicmVzdWx0IiwibGFzdF9zdWZmaXgiLCJJbmZpbml0eSIsInNwbGl0IiwiZm9yRWFjaCIsIngiLCJtYXRjaCIsIkVycm9yIiwiTnVtYmVyIiwiRXJyb3JDb2RlIiwic29ydEJ5TmFtZSIsInBhY2thZ2VzIiwib3JkZXJBc2NlbmRpbmciLCJzbGljZSIsInNvcnQiLCJhIiwiYiIsImNvbXBhcmF0b3JOYW1lcyIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImRlbGV0ZVByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzVG9EZWxldGUiLCJvYmplY3RJdGVtIiwicHJvcGVydHkiLCJwYXJzZVJlYWRtZSIsInJlYWRtZSIsImlzRW1wdHkiLCJsb2dnZXIiLCJpbmZvIiwiZW5jb2RlU2NvcGVkVXJpIiwicmVwbGFjZSIsImhhc0RpZmZPbmVLZXkiLCJpc1ZlcnNpb25WYWxpZCIsInBhY2thZ2VNZXRhIiwicGFja2FnZVZlcnNpb24iLCJoYXNWZXJzaW9uIiwiaGFzTWF0Y2hWZXJzaW9uIiwiaW5jbHVkZXMiLCJpc1JlbGF0ZWRUb0RlcHJlY2F0aW9uIiwicGtnSW5mbyIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInJlc29sdmVDb25maWdQYXRoIiwic3RvcmFnZUxvY2F0aW9uIiwiZmlsZSIsInBhdGgiLCJyZXNvbHZlIiwiZGlybmFtZSIsImxvZ0hUVFBTV2FybmluZyIsImZhdGFsIiwia2V5UGVtIiwiY3NyUGVtIiwiY2VydFBlbSIsImpvaW4iLCJwcm9jZXNzIiwiZXhpdCIsImhhc0xvZ2luIiwiY29uZmlnIiwid2ViIiwibG9naW4iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVEZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCBzZW12ZXIgZnJvbSAnc2VtdmVyJztcblxuaW1wb3J0IHsgcGFyc2VDb25maWdGaWxlIH0gZnJvbSAnQHZlcmRhY2Npby9jb25maWcnO1xuaW1wb3J0IHsgZXJyb3JVdGlscywgcGtnVXRpbHMsIHZhbGlkYXRpb25VdGlscywgd2FybmluZ1V0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IENvbmZpZ1lhbWwsIExvZ2dlckNvbmZpZ0l0ZW0sIFN0cmluZ1ZhbHVlIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgeyBDb25maWcsIE1hbmlmZXN0LCBWZXJzaW9uIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgeyBidWlsZFRva2VuIGFzIGJ1aWxkVG9rZW5VdGlsIH0gZnJvbSAnQHZlcmRhY2Npby91dGlscyc7XG5cbmltcG9ydCB7IERJU1RfVEFHUywgY2VydFBlbSwgY3NyUGVtLCBrZXlQZW0gfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIsIHNldHVwIH0gZnJvbSAnLi9sb2dnZXInO1xuXG5jb25zdCBkZWJ1ZyA9IGNyZWF0ZURlYnVnKCd2ZXJkYWNjaW86bGliOnV0aWxzJyk7XG5cbmNvbnN0IHtcbiAgZ2V0QmFkRGF0YSxcbiAgZ2V0QmFkUmVxdWVzdCxcbiAgZ2V0Q29kZSxcbiAgZ2V0Q29uZmxpY3QsXG4gIGdldEZvcmJpZGRlbixcbiAgZ2V0SW50ZXJuYWxFcnJvcixcbiAgZ2V0Tm90Rm91bmQsXG4gIGdldFNlcnZpY2VVbmF2YWlsYWJsZSxcbiAgZ2V0VW5hdXRob3JpemVkLFxufSA9IGVycm9yVXRpbHM7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0TG9nZ2VyKGxvZ0NvbmZpZzogQ29uZmlnWWFtbCkge1xuICBpZiAobG9nQ29uZmlnLmxvZ3MpIHtcbiAgICBsb2dDb25maWcubG9nID0gbG9nQ29uZmlnLmxvZ3M7XG4gICAgd2FybmluZ1V0aWxzLmVtaXQod2FybmluZ1V0aWxzLkNvZGVzLlZFUldBUjAwMik7XG4gIH1cbiAgZGVidWcoJ2luaXRpYWxpemluZyBsb2dnZXIgd2l0aCBjb25maWc6ICVvJywgbG9nQ29uZmlnLmxvZyk7XG4gIHNldHVwKGxvZ0NvbmZpZy5sb2cgYXMgTG9nZ2VyQ29uZmlnSXRlbSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRTY29wZShzY29wZTogc3RyaW5nLCBwYWNrYWdlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBAJHtzY29wZX0vJHtwYWNrYWdlTmFtZX1gO1xufVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBhbiBPYmplY3RcbiAqIEBwYXJhbSB7Kn0gb2JqIHRoZSBlbGVtZW50XG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICovXG5leHBvcnQgY29uc3QgaXNPYmplY3QgPSB2YWxpZGF0aW9uVXRpbHMuaXNPYmplY3Q7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgbm90IHVzZWQgdW4gdjZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0T3JBcnJheShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gXy5pc09iamVjdChvYmopICYmIF8uaXNOdWxsKG9iaikgPT09IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGFnVmVyc2lvbihkYXRhOiBNYW5pZmVzdCwgdmVyc2lvbjogc3RyaW5nLCB0YWc6IFN0cmluZ1ZhbHVlKTogYm9vbGVhbiB7XG4gIGlmICh0YWcgJiYgZGF0YVtESVNUX1RBR1NdW3RhZ10gIT09IHZlcnNpb24gJiYgc2VtdmVyLnBhcnNlKHZlcnNpb24sIHRydWUpKSB7XG4gICAgLy8gdmFsaWQgdmVyc2lvbiAtIHN0b3JlXG4gICAgZGF0YVtESVNUX1RBR1NdW3RhZ10gPSB2ZXJzaW9uO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBHZXRzIHZlcnNpb24gZnJvbSBhIHBhY2thZ2Ugb2JqZWN0IHRha2luZyBpbnRvIGFjY291bnQgc2VtdmVyIHdlaXJkbmVzcy5cbiAqIEByZXR1cm4ge1N0cmluZ30gcmV0dXJuIHRoZSBzZW1hbnRpYyB2ZXJzaW9uIG9mIGEgcGFja2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2lvbihwa2c6IE1hbmlmZXN0LCB2ZXJzaW9uOiBhbnkpOiBWZXJzaW9uIHwgdm9pZCB7XG4gIC8vIHRoaXMgY29uZGl0aW9uIG11c3QgYWxsb3cgY2FzdFxuICBpZiAoXy5pc05pbChwa2cudmVyc2lvbnNbdmVyc2lvbl0pID09PSBmYWxzZSkge1xuICAgIHJldHVybiBwa2cudmVyc2lvbnNbdmVyc2lvbl07XG4gIH1cblxuICB0cnkge1xuICAgIHZlcnNpb24gPSBzZW12ZXIucGFyc2UodmVyc2lvbiwgdHJ1ZSk7XG4gICAgZm9yIChjb25zdCB2ZXJzaW9uSXRlbSBpbiBwa2cudmVyc2lvbnMpIHtcbiAgICAgIGlmICh2ZXJzaW9uLmNvbXBhcmUoc2VtdmVyLnBhcnNlKHZlcnNpb25JdGVtLCB0cnVlKSkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHBrZy52ZXJzaW9uc1t2ZXJzaW9uSXRlbV07XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogRmxhdHRlbiBhcnJheXMgb2YgdGFncy5cbiAqIEBwYXJhbSB7Kn0gZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRGlzdFRhZ3MocGtnOiBNYW5pZmVzdCk6IHZvaWQge1xuICBsZXQgc29ydGVkO1xuICBpZiAoIXBrZ1tESVNUX1RBR1NdLmxhdGVzdCkge1xuICAgIC8vIG92ZXJ3cml0ZSBsYXRlc3Qgd2l0aCBoaWdoZXN0IGtub3duIHZlcnNpb24gYmFzZWQgb24gc2VtdmVyIHNvcnRcbiAgICBzb3J0ZWQgPSBwa2dVdGlscy5zZW12ZXJTb3J0KE9iamVjdC5rZXlzKHBrZy52ZXJzaW9ucykpO1xuICAgIGlmIChzb3J0ZWQgJiYgc29ydGVkLmxlbmd0aCkge1xuICAgICAgcGtnW0RJU1RfVEFHU10ubGF0ZXN0ID0gc29ydGVkLnBvcCgpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgdGFnIGluIHBrZ1tESVNUX1RBR1NdKSB7XG4gICAgaWYgKF8uaXNBcnJheShwa2dbRElTVF9UQUdTXVt0YWddKSkge1xuICAgICAgaWYgKHBrZ1tESVNUX1RBR1NdW3RhZ10ubGVuZ3RoKSB7XG4gICAgICAgIC8vIHNvcnQgYXJyYXlcbiAgICAgICAgLy8gRklYTUU6IHRoaXMgaXMgY2xlYXJseSB3cm9uZywgd2UgbmVlZCB0byByZXNlYXJjaCB3aHkgdGhpcyBpcyBsaWtlIHRoaXMuXG4gICAgICAgIHNvcnRlZCA9IHBrZ1V0aWxzLnNlbXZlclNvcnQocGtnW0RJU1RfVEFHU11bdGFnXSk7XG4gICAgICAgIGlmIChzb3J0ZWQubGVuZ3RoKSB7XG4gICAgICAgICAgLy8gdXNlIGhpZ2hlc3QgdmVyc2lvbiBiYXNlZCBvbiBzZW12ZXIgc29ydFxuICAgICAgICAgIHBrZ1tESVNUX1RBR1NdW3RhZ10gPSBzb3J0ZWQucG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZSBwa2dbRElTVF9UQUdTXVt0YWddO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXy5pc1N0cmluZyhwa2dbRElTVF9UQUdTXVt0YWddKSkge1xuICAgICAgaWYgKCFzZW12ZXIucGFyc2UocGtnW0RJU1RfVEFHU11bdGFnXSwgdHJ1ZSkpIHtcbiAgICAgICAgLy8gaWYgdGhlIHZlcnNpb24gaXMgaW52YWxpZCwgZGVsZXRlIHRoZSBkaXN0LXRhZyBlbnRyeVxuICAgICAgICBkZWxldGUgcGtnW0RJU1RfVEFHU11bdGFnXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuY29uc3QgcGFyc2VJbnRlcnZhbFRhYmxlID0ge1xuICAnJzogMTAwMCxcbiAgbXM6IDEsXG4gIHM6IDEwMDAsXG4gIG06IDYwICogMTAwMCxcbiAgaDogNjAgKiA2MCAqIDEwMDAsXG4gIGQ6IDg2NDAwMDAwLFxuICB3OiA3ICogODY0MDAwMDAsXG4gIE06IDMwICogODY0MDAwMDAsXG4gIHk6IDM2NSAqIDg2NDAwMDAwLFxufTtcblxuLyoqXG4gKiBQYXJzZSBhbiBpbnRlcm5hbCBzdHJpbmcgdG8gbnVtYmVyXG4gKiBAcGFyYW0geyp9IGludGVydmFsXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUludGVydmFsKGludGVydmFsOiBhbnkpOiBudW1iZXIge1xuICBpZiAodHlwZW9mIGludGVydmFsID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBpbnRlcnZhbCAqIDEwMDA7XG4gIH1cbiAgbGV0IHJlc3VsdCA9IDA7XG4gIGxldCBsYXN0X3N1ZmZpeCA9IEluZmluaXR5O1xuICBpbnRlcnZhbC5zcGxpdCgvXFxzKy8pLmZvckVhY2goZnVuY3Rpb24gKHgpOiB2b2lkIHtcbiAgICBpZiAoIXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbSA9IHgubWF0Y2goL14oKDB8WzEtOV1bMC05XSopKFxcLlswLTldKyk/KShtc3xzfG18aHxkfHd8TXx5fCkkLyk7XG4gICAgaWYgKFxuICAgICAgIW0gfHxcbiAgICAgIHBhcnNlSW50ZXJ2YWxUYWJsZVttWzRdXSA+PSBsYXN0X3N1ZmZpeCB8fFxuICAgICAgKG1bNF0gPT09ICcnICYmIGxhc3Rfc3VmZml4ICE9PSBJbmZpbml0eSlcbiAgICApIHtcbiAgICAgIHRocm93IEVycm9yKCdpbnZhbGlkIGludGVydmFsOiAnICsgaW50ZXJ2YWwpO1xuICAgIH1cbiAgICBsYXN0X3N1ZmZpeCA9IHBhcnNlSW50ZXJ2YWxUYWJsZVttWzRdXTtcbiAgICByZXN1bHQgKz0gTnVtYmVyKG1bMV0pICogcGFyc2VJbnRlcnZhbFRhYmxlW21bNF1dO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGNvbnN0IEVycm9yQ29kZSA9IHtcbiAgZ2V0Q29uZmxpY3QsXG4gIGdldEJhZERhdGEsXG4gIGdldEJhZFJlcXVlc3QsXG4gIGdldEludGVybmFsRXJyb3IsXG4gIGdldFVuYXV0aG9yaXplZCxcbiAgZ2V0Rm9yYmlkZGVuLFxuICBnZXRTZXJ2aWNlVW5hdmFpbGFibGUsXG4gIGdldE5vdEZvdW5kLFxuICBnZXRDb2RlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRCeU5hbWUocGFja2FnZXM6IGFueVtdLCBvcmRlckFzY2VuZGluZzogYm9vbGVhbiB8IHZvaWQgPSB0cnVlKTogc3RyaW5nW10ge1xuICByZXR1cm4gcGFja2FnZXMuc2xpY2UoKS5zb3J0KGZ1bmN0aW9uIChhLCBiKTogbnVtYmVyIHtcbiAgICBjb25zdCBjb21wYXJhdG9yTmFtZXMgPSBhLm5hbWUudG9Mb3dlckNhc2UoKSA8IGIubmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgcmV0dXJuIG9yZGVyQXNjZW5kaW5nID8gKGNvbXBhcmF0b3JOYW1lcyA/IC0xIDogMSkgOiBjb21wYXJhdG9yTmFtZXMgPyAxIDogLTE7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlUHJvcGVydGllcyhwcm9wZXJ0aWVzVG9EZWxldGU6IHN0cmluZ1tdLCBvYmplY3RJdGVtOiBhbnkpOiBhbnkge1xuICBfLmZvckVhY2gocHJvcGVydGllc1RvRGVsZXRlLCAocHJvcGVydHkpOiBhbnkgPT4ge1xuICAgIGRlbGV0ZSBvYmplY3RJdGVtW3Byb3BlcnR5XTtcbiAgfSk7XG5cbiAgcmV0dXJuIG9iamVjdEl0ZW07XG59XG5cbi8qKlxuICogcGFyc2UgcGFja2FnZSByZWFkbWUgLSBtYXJrZG93bi9hc2NpaVxuICogQHBhcmFtIHtTdHJpbmd9IHBhY2thZ2VOYW1lIG5hbWUgb2YgcGFja2FnZVxuICogQHBhcmFtIHtTdHJpbmd9IHJlYWRtZSBwYWNrYWdlIHJlYWRtZVxuXG4gKiBAcmV0dXJuIHtTdHJpbmd9IGNvbnZlcnRlZCBodG1sIHRlbXBsYXRlXG4gKi9cbi8vIFRPRE86IHJlbmFtZSwgZG9lcyBub3QgcGFyc2UgYW55bW9yZVxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVhZG1lKHBhY2thZ2VOYW1lOiBzdHJpbmcsIHJlYWRtZTogc3RyaW5nKTogc3RyaW5nIHwgdm9pZCB7XG4gIGlmIChfLmlzRW1wdHkocmVhZG1lKSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gcmVhZG1lO1xuICB9XG5cbiAgLy8gbG9ncyByZWFkbWUgbm90IGZvdW5kIGVycm9yXG4gIGxvZ2dlci5pbmZvKHsgcGFja2FnZU5hbWUgfSwgJ0B7cGFja2FnZU5hbWV9OiBObyByZWFkbWUgZm91bmQnKTtcblxuICByZXR1cm4gJ0VSUk9SOiBObyBSRUFETUUgZGF0YSBmb3VuZCEnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlU2NvcGVkVXJpKHBhY2thZ2VOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhY2thZ2VOYW1lLnJlcGxhY2UoL1xcLy9nLCAnJTJmJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNEaWZmT25lS2V5KHZlcnNpb25zKTogYm9vbGVhbiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyh2ZXJzaW9ucykubGVuZ3RoICE9PSAxO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWZXJzaW9uVmFsaWQocGFja2FnZU1ldGEsIHBhY2thZ2VWZXJzaW9uKTogYm9vbGVhbiB7XG4gIGNvbnN0IGhhc1ZlcnNpb24gPSB0eXBlb2YgcGFja2FnZVZlcnNpb24gIT09ICd1bmRlZmluZWQnO1xuICBpZiAoIWhhc1ZlcnNpb24pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBoYXNNYXRjaFZlcnNpb24gPSBPYmplY3Qua2V5cyhwYWNrYWdlTWV0YS52ZXJzaW9ucykuaW5jbHVkZXMocGFja2FnZVZlcnNpb24pO1xuICByZXR1cm4gaGFzTWF0Y2hWZXJzaW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWxhdGVkVG9EZXByZWNhdGlvbihwa2dJbmZvOiBNYW5pZmVzdCk6IGJvb2xlYW4ge1xuICBjb25zdCB7IHZlcnNpb25zIH0gPSBwa2dJbmZvO1xuICBmb3IgKGNvbnN0IHZlcnNpb24gaW4gdmVyc2lvbnMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZlcnNpb25zW3ZlcnNpb25dLCAnZGVwcmVjYXRlZCcpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUNvbmZpZ1BhdGggPSBmdW5jdGlvbiAoc3RvcmFnZUxvY2F0aW9uOiBzdHJpbmcsIGZpbGU6IHN0cmluZykge1xuICByZXR1cm4gcGF0aC5yZXNvbHZlKHBhdGguZGlybmFtZShzdG9yYWdlTG9jYXRpb24pLCBmaWxlKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dIVFRQU1dhcm5pbmcoc3RvcmFnZUxvY2F0aW9uKSB7XG4gIGxvZ2dlci5mYXRhbChcbiAgICBbXG4gICAgICAnWW91IGhhdmUgZW5hYmxlZCBIVFRQUyBhbmQgbmVlZCB0byBzcGVjaWZ5IGVpdGhlciAnLFxuICAgICAgJyAgICBcImh0dHBzLmtleVwiIGFuZCBcImh0dHBzLmNlcnRcIiBvciAnLFxuICAgICAgJyAgICBcImh0dHBzLnBmeFwiIGFuZCBvcHRpb25hbGx5IFwiaHR0cHMucGFzc3BocmFzZVwiICcsXG4gICAgICAndG8gcnVuIGh0dHBzIHNlcnZlcicsXG4gICAgICAnJyxcbiAgICAgIC8vIGNvbW1hbmRzIGFyZSBib3Jyb3dlZCBmcm9tIG5vZGUuanMgZG9jc1xuICAgICAgJ1RvIHF1aWNrbHkgY3JlYXRlIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlLCB1c2U6JyxcbiAgICAgICcgJCBvcGVuc3NsIGdlbnJzYSAtb3V0ICcgKyByZXNvbHZlQ29uZmlnUGF0aChzdG9yYWdlTG9jYXRpb24sIGtleVBlbSkgKyAnIDIwNDgnLFxuICAgICAgJyAkIG9wZW5zc2wgcmVxIC1uZXcgLXNoYTI1NiAta2V5ICcgK1xuICAgICAgICByZXNvbHZlQ29uZmlnUGF0aChzdG9yYWdlTG9jYXRpb24sIGtleVBlbSkgK1xuICAgICAgICAnIC1vdXQgJyArXG4gICAgICAgIHJlc29sdmVDb25maWdQYXRoKHN0b3JhZ2VMb2NhdGlvbiwgY3NyUGVtKSxcbiAgICAgICcgJCBvcGVuc3NsIHg1MDkgLXJlcSAtaW4gJyArXG4gICAgICAgIHJlc29sdmVDb25maWdQYXRoKHN0b3JhZ2VMb2NhdGlvbiwgY3NyUGVtKSArXG4gICAgICAgICcgLXNpZ25rZXkgJyArXG4gICAgICAgIHJlc29sdmVDb25maWdQYXRoKHN0b3JhZ2VMb2NhdGlvbiwga2V5UGVtKSArXG4gICAgICAgICcgLW91dCAnICtcbiAgICAgICAgcmVzb2x2ZUNvbmZpZ1BhdGgoc3RvcmFnZUxvY2F0aW9uLCBjZXJ0UGVtKSxcbiAgICAgICcnLFxuICAgICAgJ0FuZCB0aGVuIGFkZCB0byBjb25maWcgZmlsZSAoJyArIHN0b3JhZ2VMb2NhdGlvbiArICcpOicsXG4gICAgICAnICBodHRwczonLFxuICAgICAgYCAgICBrZXk6ICR7cmVzb2x2ZUNvbmZpZ1BhdGgoc3RvcmFnZUxvY2F0aW9uLCBrZXlQZW0pfWAsXG4gICAgICBgICAgIGNlcnQ6ICR7cmVzb2x2ZUNvbmZpZ1BhdGgoc3RvcmFnZUxvY2F0aW9uLCBjZXJ0UGVtKX1gLFxuICAgIF0uam9pbignXFxuJylcbiAgKTtcbiAgcHJvY2Vzcy5leGl0KDIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzTG9naW4oY29uZmlnOiBDb25maWcpIHtcbiAgcmV0dXJuIF8uaXNOaWwoY29uZmlnPy53ZWI/LmxvZ2luKSB8fCBjb25maWc/LndlYj8ubG9naW4gPT09IHRydWU7XG59XG5cbmV4cG9ydCB7IGJ1aWxkVG9rZW5VdGlsIGFzIGJ1aWxkVG9rZW4sIHBhcnNlQ29uZmlnRmlsZSB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7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
266
+
267
+ /**
268
+ * Check whether any version in a package manifest has a tarball URL
269
+ * that matches the given filename.
270
+ */
271
+ function hasTarball(pkg, filename) {
272
+ return Object.values(pkg.versions || {}).some(version => version.dist?.tarball?.endsWith('/' + filename));
273
+ }
274
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfbm9kZVBhdGgiLCJfc2VtdmVyIiwiX2NvbmZpZyIsIl9jb3JlIiwiX3V0aWxzIiwiX2NvbnN0YW50cyIsIl9sb2dnZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJkZWJ1ZyIsImNyZWF0ZURlYnVnIiwiZ2V0QmFkRGF0YSIsImdldEJhZFJlcXVlc3QiLCJnZXRDb2RlIiwiZ2V0Q29uZmxpY3QiLCJnZXRGb3JiaWRkZW4iLCJnZXRJbnRlcm5hbEVycm9yIiwiZ2V0Tm90Rm91bmQiLCJnZXRTZXJ2aWNlVW5hdmFpbGFibGUiLCJnZXRVbmF1dGhvcml6ZWQiLCJlcnJvclV0aWxzIiwiaW5pdExvZ2dlciIsImxvZ0NvbmZpZyIsImxvZ3MiLCJsb2ciLCJ3YXJuaW5nVXRpbHMiLCJlbWl0IiwiQ29kZXMiLCJWRVJXQVIwMDIiLCJzZXR1cCIsImFkZFNjb3BlIiwic2NvcGUiLCJwYWNrYWdlTmFtZSIsImlzT2JqZWN0IiwiZXhwb3J0cyIsInZhbGlkYXRpb25VdGlscyIsImlzT2JqZWN0T3JBcnJheSIsIm9iaiIsIl8iLCJpc051bGwiLCJ0YWdWZXJzaW9uIiwiZGF0YSIsInZlcnNpb24iLCJ0YWciLCJESVNUX1RBR1MiLCJzZW12ZXIiLCJwYXJzZSIsImdldFZlcnNpb24iLCJwa2ciLCJpc05pbCIsInZlcnNpb25zIiwidmVyc2lvbkl0ZW0iLCJjb21wYXJlIiwidW5kZWZpbmVkIiwibm9ybWFsaXplRGlzdFRhZ3MiLCJzb3J0ZWQiLCJsYXRlc3QiLCJwa2dVdGlscyIsInNlbXZlclNvcnQiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwicG9wIiwiaXNBcnJheSIsImlzU3RyaW5nIiwicGFyc2VJbnRlcnZhbFRhYmxlIiwibXMiLCJzIiwibSIsImgiLCJkIiwidyIsIk0iLCJ5IiwicGFyc2VJbnRlcnZhbCIsImludGVydmFsIiwicmVzdWx0IiwibGFzdF9zdWZmaXgiLCJJbmZpbml0eSIsInNwbGl0IiwiZm9yRWFjaCIsIngiLCJtYXRjaCIsIkVycm9yIiwiTnVtYmVyIiwiRXJyb3JDb2RlIiwic29ydEJ5TmFtZSIsInBhY2thZ2VzIiwib3JkZXJBc2NlbmRpbmciLCJzbGljZSIsInNvcnQiLCJhIiwiYiIsImNvbXBhcmF0b3JOYW1lcyIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImRlbGV0ZVByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzVG9EZWxldGUiLCJvYmplY3RJdGVtIiwicHJvcGVydHkiLCJwYXJzZVJlYWRtZSIsInJlYWRtZSIsImlzRW1wdHkiLCJsb2dnZXIiLCJpbmZvIiwiZW5jb2RlU2NvcGVkVXJpIiwicmVwbGFjZSIsImhhc0RpZmZPbmVLZXkiLCJpc1ZlcnNpb25WYWxpZCIsInBhY2thZ2VNZXRhIiwicGFja2FnZVZlcnNpb24iLCJoYXNWZXJzaW9uIiwiaGFzTWF0Y2hWZXJzaW9uIiwiaW5jbHVkZXMiLCJpc1JlbGF0ZWRUb0RlcHJlY2F0aW9uIiwicGtnSW5mbyIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInJlc29sdmVDb25maWdQYXRoIiwic3RvcmFnZUxvY2F0aW9uIiwiZmlsZSIsInBhdGgiLCJyZXNvbHZlIiwiZGlybmFtZSIsImxvZ0hUVFBTV2FybmluZyIsImZhdGFsIiwia2V5UGVtIiwiY3NyUGVtIiwiY2VydFBlbSIsImpvaW4iLCJwcm9jZXNzIiwiZXhpdCIsImhhc0xvZ2luIiwiY29uZmlnIiwid2ViIiwibG9naW4iLCJoYXNUYXJiYWxsIiwiZmlsZW5hbWUiLCJ2YWx1ZXMiLCJzb21lIiwiZGlzdCIsInRhcmJhbGwiLCJlbmRzV2l0aCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZURlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuXG5pbXBvcnQgeyBwYXJzZUNvbmZpZ0ZpbGUgfSBmcm9tICdAdmVyZGFjY2lvL2NvbmZpZyc7XG5pbXBvcnQgeyBlcnJvclV0aWxzLCBwa2dVdGlscywgdmFsaWRhdGlvblV0aWxzLCB3YXJuaW5nVXRpbHMgfSBmcm9tICdAdmVyZGFjY2lvL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlnWWFtbCwgTG9nZ2VyQ29uZmlnSXRlbSwgU3RyaW5nVmFsdWUgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IENvbmZpZywgTWFuaWZlc3QsIFZlcnNpb24gfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IGJ1aWxkVG9rZW4gYXMgYnVpbGRUb2tlblV0aWwgfSBmcm9tICdAdmVyZGFjY2lvL3V0aWxzJztcblxuaW1wb3J0IHsgRElTVF9UQUdTLCBjZXJ0UGVtLCBjc3JQZW0sIGtleVBlbSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGxvZ2dlciwgc2V0dXAgfSBmcm9tICcuL2xvZ2dlcic7XG5cbmNvbnN0IGRlYnVnID0gY3JlYXRlRGVidWcoJ3ZlcmRhY2NpbzpsaWI6dXRpbHMnKTtcblxuY29uc3Qge1xuICBnZXRCYWREYXRhLFxuICBnZXRCYWRSZXF1ZXN0LFxuICBnZXRDb2RlLFxuICBnZXRDb25mbGljdCxcbiAgZ2V0Rm9yYmlkZGVuLFxuICBnZXRJbnRlcm5hbEVycm9yLFxuICBnZXROb3RGb3VuZCxcbiAgZ2V0U2VydmljZVVuYXZhaWxhYmxlLFxuICBnZXRVbmF1dGhvcml6ZWQsXG59ID0gZXJyb3JVdGlscztcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRMb2dnZXIobG9nQ29uZmlnOiBDb25maWdZYW1sKSB7XG4gIGlmIChsb2dDb25maWcubG9ncykge1xuICAgIGxvZ0NvbmZpZy5sb2cgPSBsb2dDb25maWcubG9ncztcbiAgICB3YXJuaW5nVXRpbHMuZW1pdCh3YXJuaW5nVXRpbHMuQ29kZXMuVkVSV0FSMDAyKTtcbiAgfVxuICBkZWJ1ZygnaW5pdGlhbGl6aW5nIGxvZ2dlciB3aXRoIGNvbmZpZzogJW8nLCBsb2dDb25maWcubG9nKTtcbiAgc2V0dXAobG9nQ29uZmlnLmxvZyBhcyBMb2dnZXJDb25maWdJdGVtKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNjb3BlKHNjb3BlOiBzdHJpbmcsIHBhY2thZ2VOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYEAke3Njb3BlfS8ke3BhY2thZ2VOYW1lfWA7XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhbiBlbGVtZW50IGlzIGFuIE9iamVjdFxuICogQHBhcmFtIHsqfSBvYmogdGhlIGVsZW1lbnRcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKi9cbmV4cG9ydCBjb25zdCBpc09iamVjdCA9IHZhbGlkYXRpb25VdGlscy5pc09iamVjdDtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBub3QgdXNlZCB1biB2NlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3RPckFycmF5KG9iajogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBfLmlzT2JqZWN0KG9iaikgJiYgXy5pc051bGwob2JqKSA9PT0gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWdWZXJzaW9uKGRhdGE6IE1hbmlmZXN0LCB2ZXJzaW9uOiBzdHJpbmcsIHRhZzogU3RyaW5nVmFsdWUpOiBib29sZWFuIHtcbiAgaWYgKHRhZyAmJiBkYXRhW0RJU1RfVEFHU11bdGFnXSAhPT0gdmVyc2lvbiAmJiBzZW12ZXIucGFyc2UodmVyc2lvbiwgdHJ1ZSkpIHtcbiAgICAvLyB2YWxpZCB2ZXJzaW9uIC0gc3RvcmVcbiAgICBkYXRhW0RJU1RfVEFHU11bdGFnXSA9IHZlcnNpb247XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIEdldHMgdmVyc2lvbiBmcm9tIGEgcGFja2FnZSBvYmplY3QgdGFraW5nIGludG8gYWNjb3VudCBzZW12ZXIgd2VpcmRuZXNzLlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm4gdGhlIHNlbWFudGljIHZlcnNpb24gb2YgYSBwYWNrYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzaW9uKHBrZzogTWFuaWZlc3QsIHZlcnNpb246IGFueSk6IFZlcnNpb24gfCB2b2lkIHtcbiAgLy8gdGhpcyBjb25kaXRpb24gbXVzdCBhbGxvdyBjYXN0XG4gIGlmIChfLmlzTmlsKHBrZy52ZXJzaW9uc1t2ZXJzaW9uXSkgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIHBrZy52ZXJzaW9uc1t2ZXJzaW9uXTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdmVyc2lvbiA9IHNlbXZlci5wYXJzZSh2ZXJzaW9uLCB0cnVlKTtcbiAgICBmb3IgKGNvbnN0IHZlcnNpb25JdGVtIGluIHBrZy52ZXJzaW9ucykge1xuICAgICAgaWYgKHZlcnNpb24uY29tcGFyZShzZW12ZXIucGFyc2UodmVyc2lvbkl0ZW0sIHRydWUpKSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gcGtnLnZlcnNpb25zW3ZlcnNpb25JdGVtXTtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBGbGF0dGVuIGFycmF5cyBvZiB0YWdzLlxuICogQHBhcmFtIHsqfSBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVEaXN0VGFncyhwa2c6IE1hbmlmZXN0KTogdm9pZCB7XG4gIGxldCBzb3J0ZWQ7XG4gIGlmICghcGtnW0RJU1RfVEFHU10ubGF0ZXN0KSB7XG4gICAgLy8gb3ZlcndyaXRlIGxhdGVzdCB3aXRoIGhpZ2hlc3Qga25vd24gdmVyc2lvbiBiYXNlZCBvbiBzZW12ZXIgc29ydFxuICAgIHNvcnRlZCA9IHBrZ1V0aWxzLnNlbXZlclNvcnQoT2JqZWN0LmtleXMocGtnLnZlcnNpb25zKSk7XG4gICAgaWYgKHNvcnRlZCAmJiBzb3J0ZWQubGVuZ3RoKSB7XG4gICAgICBwa2dbRElTVF9UQUdTXS5sYXRlc3QgPSBzb3J0ZWQucG9wKCk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCB0YWcgaW4gcGtnW0RJU1RfVEFHU10pIHtcbiAgICBpZiAoXy5pc0FycmF5KHBrZ1tESVNUX1RBR1NdW3RhZ10pKSB7XG4gICAgICBpZiAocGtnW0RJU1RfVEFHU11bdGFnXS5sZW5ndGgpIHtcbiAgICAgICAgLy8gc29ydCBhcnJheVxuICAgICAgICAvLyBGSVhNRTogdGhpcyBpcyBjbGVhcmx5IHdyb25nLCB3ZSBuZWVkIHRvIHJlc2VhcmNoIHdoeSB0aGlzIGlzIGxpa2UgdGhpcy5cbiAgICAgICAgc29ydGVkID0gcGtnVXRpbHMuc2VtdmVyU29ydChwa2dbRElTVF9UQUdTXVt0YWddKTtcbiAgICAgICAgaWYgKHNvcnRlZC5sZW5ndGgpIHtcbiAgICAgICAgICAvLyB1c2UgaGlnaGVzdCB2ZXJzaW9uIGJhc2VkIG9uIHNlbXZlciBzb3J0XG4gICAgICAgICAgcGtnW0RJU1RfVEFHU11bdGFnXSA9IHNvcnRlZC5wb3AoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHBrZ1tESVNUX1RBR1NdW3RhZ107XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChfLmlzU3RyaW5nKHBrZ1tESVNUX1RBR1NdW3RhZ10pKSB7XG4gICAgICBpZiAoIXNlbXZlci5wYXJzZShwa2dbRElTVF9UQUdTXVt0YWddLCB0cnVlKSkge1xuICAgICAgICAvLyBpZiB0aGUgdmVyc2lvbiBpcyBpbnZhbGlkLCBkZWxldGUgdGhlIGRpc3QtdGFnIGVudHJ5XG4gICAgICAgIGRlbGV0ZSBwa2dbRElTVF9UQUdTXVt0YWddO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBwYXJzZUludGVydmFsVGFibGUgPSB7XG4gICcnOiAxMDAwLFxuICBtczogMSxcbiAgczogMTAwMCxcbiAgbTogNjAgKiAxMDAwLFxuICBoOiA2MCAqIDYwICogMTAwMCxcbiAgZDogODY0MDAwMDAsXG4gIHc6IDcgKiA4NjQwMDAwMCxcbiAgTTogMzAgKiA4NjQwMDAwMCxcbiAgeTogMzY1ICogODY0MDAwMDAsXG59O1xuXG4vKipcbiAqIFBhcnNlIGFuIGludGVybmFsIHN0cmluZyB0byBudW1iZXJcbiAqIEBwYXJhbSB7Kn0gaW50ZXJ2YWxcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW50ZXJ2YWwoaW50ZXJ2YWw6IGFueSk6IG51bWJlciB7XG4gIGlmICh0eXBlb2YgaW50ZXJ2YWwgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGludGVydmFsICogMTAwMDtcbiAgfVxuICBsZXQgcmVzdWx0ID0gMDtcbiAgbGV0IGxhc3Rfc3VmZml4ID0gSW5maW5pdHk7XG4gIGludGVydmFsLnNwbGl0KC9cXHMrLykuZm9yRWFjaChmdW5jdGlvbiAoeCk6IHZvaWQge1xuICAgIGlmICgheCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBtID0geC5tYXRjaCgvXigoMHxbMS05XVswLTldKikoXFwuWzAtOV0rKT8pKG1zfHN8bXxofGR8d3xNfHl8KSQvKTtcbiAgICBpZiAoXG4gICAgICAhbSB8fFxuICAgICAgcGFyc2VJbnRlcnZhbFRhYmxlW21bNF1dID49IGxhc3Rfc3VmZml4IHx8XG4gICAgICAobVs0XSA9PT0gJycgJiYgbGFzdF9zdWZmaXggIT09IEluZmluaXR5KVxuICAgICkge1xuICAgICAgdGhyb3cgRXJyb3IoJ2ludmFsaWQgaW50ZXJ2YWw6ICcgKyBpbnRlcnZhbCk7XG4gICAgfVxuICAgIGxhc3Rfc3VmZml4ID0gcGFyc2VJbnRlcnZhbFRhYmxlW21bNF1dO1xuICAgIHJlc3VsdCArPSBOdW1iZXIobVsxXSkgKiBwYXJzZUludGVydmFsVGFibGVbbVs0XV07XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgY29uc3QgRXJyb3JDb2RlID0ge1xuICBnZXRDb25mbGljdCxcbiAgZ2V0QmFkRGF0YSxcbiAgZ2V0QmFkUmVxdWVzdCxcbiAgZ2V0SW50ZXJuYWxFcnJvcixcbiAgZ2V0VW5hdXRob3JpemVkLFxuICBnZXRGb3JiaWRkZW4sXG4gIGdldFNlcnZpY2VVbmF2YWlsYWJsZSxcbiAgZ2V0Tm90Rm91bmQsXG4gIGdldENvZGUsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc29ydEJ5TmFtZShwYWNrYWdlczogYW55W10sIG9yZGVyQXNjZW5kaW5nOiBib29sZWFuIHwgdm9pZCA9IHRydWUpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBwYWNrYWdlcy5zbGljZSgpLnNvcnQoZnVuY3Rpb24gKGEsIGIpOiBudW1iZXIge1xuICAgIGNvbnN0IGNvbXBhcmF0b3JOYW1lcyA9IGEubmFtZS50b0xvd2VyQ2FzZSgpIDwgYi5uYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gb3JkZXJBc2NlbmRpbmcgPyAoY29tcGFyYXRvck5hbWVzID8gLTEgOiAxKSA6IGNvbXBhcmF0b3JOYW1lcyA/IDEgOiAtMTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWxldGVQcm9wZXJ0aWVzKHByb3BlcnRpZXNUb0RlbGV0ZTogc3RyaW5nW10sIG9iamVjdEl0ZW06IGFueSk6IGFueSB7XG4gIF8uZm9yRWFjaChwcm9wZXJ0aWVzVG9EZWxldGUsIChwcm9wZXJ0eSk6IGFueSA9PiB7XG4gICAgZGVsZXRlIG9iamVjdEl0ZW1bcHJvcGVydHldO1xuICB9KTtcblxuICByZXR1cm4gb2JqZWN0SXRlbTtcbn1cblxuLyoqXG4gKiBwYXJzZSBwYWNrYWdlIHJlYWRtZSAtIG1hcmtkb3duL2FzY2lpXG4gKiBAcGFyYW0ge1N0cmluZ30gcGFja2FnZU5hbWUgbmFtZSBvZiBwYWNrYWdlXG4gKiBAcGFyYW0ge1N0cmluZ30gcmVhZG1lIHBhY2thZ2UgcmVhZG1lXG5cbiAqIEByZXR1cm4ge1N0cmluZ30gY29udmVydGVkIGh0bWwgdGVtcGxhdGVcbiAqL1xuLy8gVE9ETzogcmVuYW1lLCBkb2VzIG5vdCBwYXJzZSBhbnltb3JlXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZWFkbWUocGFja2FnZU5hbWU6IHN0cmluZywgcmVhZG1lOiBzdHJpbmcpOiBzdHJpbmcgfCB2b2lkIHtcbiAgaWYgKF8uaXNFbXB0eShyZWFkbWUpID09PSBmYWxzZSkge1xuICAgIHJldHVybiByZWFkbWU7XG4gIH1cblxuICAvLyBsb2dzIHJlYWRtZSBub3QgZm91bmQgZXJyb3JcbiAgbG9nZ2VyLmluZm8oeyBwYWNrYWdlTmFtZSB9LCAnQHtwYWNrYWdlTmFtZX06IE5vIHJlYWRtZSBmb3VuZCcpO1xuXG4gIHJldHVybiAnRVJST1I6IE5vIFJFQURNRSBkYXRhIGZvdW5kISc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVTY29wZWRVcmkocGFja2FnZU5hbWUpOiBzdHJpbmcge1xuICByZXR1cm4gcGFja2FnZU5hbWUucmVwbGFjZSgvXFwvL2csICclMmYnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0RpZmZPbmVLZXkodmVyc2lvbnMpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHZlcnNpb25zKS5sZW5ndGggIT09IDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZlcnNpb25WYWxpZChwYWNrYWdlTWV0YSwgcGFja2FnZVZlcnNpb24pOiBib29sZWFuIHtcbiAgY29uc3QgaGFzVmVyc2lvbiA9IHR5cGVvZiBwYWNrYWdlVmVyc2lvbiAhPT0gJ3VuZGVmaW5lZCc7XG4gIGlmICghaGFzVmVyc2lvbikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGhhc01hdGNoVmVyc2lvbiA9IE9iamVjdC5rZXlzKHBhY2thZ2VNZXRhLnZlcnNpb25zKS5pbmNsdWRlcyhwYWNrYWdlVmVyc2lvbik7XG4gIHJldHVybiBoYXNNYXRjaFZlcnNpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlbGF0ZWRUb0RlcHJlY2F0aW9uKHBrZ0luZm86IE1hbmlmZXN0KTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgdmVyc2lvbnMgfSA9IHBrZ0luZm87XG4gIGZvciAoY29uc3QgdmVyc2lvbiBpbiB2ZXJzaW9ucykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmVyc2lvbnNbdmVyc2lvbl0sICdkZXByZWNhdGVkJykpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlQ29uZmlnUGF0aCA9IGZ1bmN0aW9uIChzdG9yYWdlTG9jYXRpb246IHN0cmluZywgZmlsZTogc3RyaW5nKSB7XG4gIHJldHVybiBwYXRoLnJlc29sdmUocGF0aC5kaXJuYW1lKHN0b3JhZ2VMb2NhdGlvbiksIGZpbGUpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ0hUVFBTV2FybmluZyhzdG9yYWdlTG9jYXRpb24pIHtcbiAgbG9nZ2VyLmZhdGFsKFxuICAgIFtcbiAgICAgICdZb3UgaGF2ZSBlbmFibGVkIEhUVFBTIGFuZCBuZWVkIHRvIHNwZWNpZnkgZWl0aGVyICcsXG4gICAgICAnICAgIFwiaHR0cHMua2V5XCIgYW5kIFwiaHR0cHMuY2VydFwiIG9yICcsXG4gICAgICAnICAgIFwiaHR0cHMucGZ4XCIgYW5kIG9wdGlvbmFsbHkgXCJodHRwcy5wYXNzcGhyYXNlXCIgJyxcbiAgICAgICd0byBydW4gaHR0cHMgc2VydmVyJyxcbiAgICAgICcnLFxuICAgICAgLy8gY29tbWFuZHMgYXJlIGJvcnJvd2VkIGZyb20gbm9kZS5qcyBkb2NzXG4gICAgICAnVG8gcXVpY2tseSBjcmVhdGUgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUsIHVzZTonLFxuICAgICAgJyAkIG9wZW5zc2wgZ2VucnNhIC1vdXQgJyArIHJlc29sdmVDb25maWdQYXRoKHN0b3JhZ2VMb2NhdGlvbiwga2V5UGVtKSArICcgMjA0OCcsXG4gICAgICAnICQgb3BlbnNzbCByZXEgLW5ldyAtc2hhMjU2IC1rZXkgJyArXG4gICAgICAgIHJlc29sdmVDb25maWdQYXRoKHN0b3JhZ2VMb2NhdGlvbiwga2V5UGVtKSArXG4gICAgICAgICcgLW91dCAnICtcbiAgICAgICAgcmVzb2x2ZUNvbmZpZ1BhdGgoc3RvcmFnZUxvY2F0aW9uLCBjc3JQZW0pLFxuICAgICAgJyAkIG9wZW5zc2wgeDUwOSAtcmVxIC1pbiAnICtcbiAgICAgICAgcmVzb2x2ZUNvbmZpZ1BhdGgoc3RvcmFnZUxvY2F0aW9uLCBjc3JQZW0pICtcbiAgICAgICAgJyAtc2lnbmtleSAnICtcbiAgICAgICAgcmVzb2x2ZUNvbmZpZ1BhdGgoc3RvcmFnZUxvY2F0aW9uLCBrZXlQZW0pICtcbiAgICAgICAgJyAtb3V0ICcgK1xuICAgICAgICByZXNvbHZlQ29uZmlnUGF0aChzdG9yYWdlTG9jYXRpb24sIGNlcnRQZW0pLFxuICAgICAgJycsXG4gICAgICAnQW5kIHRoZW4gYWRkIHRvIGNvbmZpZyBmaWxlICgnICsgc3RvcmFnZUxvY2F0aW9uICsgJyk6JyxcbiAgICAgICcgIGh0dHBzOicsXG4gICAgICBgICAgIGtleTogJHtyZXNvbHZlQ29uZmlnUGF0aChzdG9yYWdlTG9jYXRpb24sIGtleVBlbSl9YCxcbiAgICAgIGAgICAgY2VydDogJHtyZXNvbHZlQ29uZmlnUGF0aChzdG9yYWdlTG9jYXRpb24sIGNlcnRQZW0pfWAsXG4gICAgXS5qb2luKCdcXG4nKVxuICApO1xuICBwcm9jZXNzLmV4aXQoMik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNMb2dpbihjb25maWc6IENvbmZpZykge1xuICByZXR1cm4gXy5pc05pbChjb25maWc/LndlYj8ubG9naW4pIHx8IGNvbmZpZz8ud2ViPy5sb2dpbiA9PT0gdHJ1ZTtcbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIGFueSB2ZXJzaW9uIGluIGEgcGFja2FnZSBtYW5pZmVzdCBoYXMgYSB0YXJiYWxsIFVSTFxuICogdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiBmaWxlbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RhcmJhbGwocGtnOiBNYW5pZmVzdCwgZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhwa2cudmVyc2lvbnMgfHwge30pLnNvbWUoKHZlcnNpb24pID0+XG4gICAgKHZlcnNpb24gYXMgVmVyc2lvbikuZGlzdD8udGFyYmFsbD8uZW5kc1dpdGgoJy8nICsgZmlsZW5hbWUpXG4gICk7XG59XG5cbmV4cG9ydCB7IGJ1aWxkVG9rZW5VdGlsIGFzIGJ1aWxkVG9rZW4sIHBhcnNlQ29uZmlnRmlsZSB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsU0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUksT0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBR0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBRUEsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBQXlDLFNBQUFELHVCQUFBVSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXpDLE1BQU1HLEtBQUssR0FBRyxJQUFBQyxjQUFXLEVBQUMscUJBQXFCLENBQUM7QUFFaEQsTUFBTTtFQUNKQyxVQUFVO0VBQ1ZDLGFBQWE7RUFDYkMsT0FBTztFQUNQQyxXQUFXO0VBQ1hDLFlBQVk7RUFDWkMsZ0JBQWdCO0VBQ2hCQyxXQUFXO0VBQ1hDLHFCQUFxQjtFQUNyQkM7QUFDRixDQUFDLEdBQUdDLGdCQUFVO0FBRVAsU0FBU0MsVUFBVUEsQ0FBQ0MsU0FBcUIsRUFBRTtFQUNoRCxJQUFJQSxTQUFTLENBQUND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
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTmV4dEZ1bmN0aW9uLCBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuXG5pbXBvcnQgdHlwZSB7IHBsdWdpblV0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB0eXBlIHtcbiAgQ2FsbGJhY2ssXG4gIENvbmZpZyxcbiAgTG9nZ2VyLFxuICBNYW5pZmVzdCxcbiAgUGFja2FnZUFjY2VzcyxcbiAgUmVtb3RlVXNlcixcbiAgU3RyaW5nVmFsdWUgYXMgdmVyZGFjY2lvJFN0cmluZ1ZhbHVlLFxufSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgU3RyaW5nVmFsdWUgPSB2ZXJkYWNjaW8kU3RyaW5nVmFsdWU7XG5cbi8vIGxlZ2FjeSBzaG91bGQgYmUgcmVtb3ZlZCBpbiBsb25nIHRlcm1cblxuZXhwb3J0IGludGVyZmFjZSBMZWdhY3lQYWNrYWdlTGlzdCB7XG4gIFtrZXk6IHN0cmluZ106IExlZ2FjeVBhY2thZ2VBY2Nlc3M7XG59XG5cbmV4cG9ydCB0eXBlIExlZ2FjeVBhY2thZ2VBY2Nlc3MgPSBQYWNrYWdlQWNjZXNzICYge1xuICBhbGxvd19wdWJsaXNoPzogc3RyaW5nW107XG4gIGFsbG93X3Byb3h5Pzogc3RyaW5nW107XG4gIGFsbG93X2FjY2Vzcz86IHN0cmluZ1tdO1xuICBwcm94eV9hY2Nlc3M/OiBzdHJpbmdbXTtcbiAgLy8gRklYTUU6IHNob3VsZCBiZSBwdWJsaXNoZWQgb24gQHZlcmRhY2Npby90eXBlc1xuICB1bnB1Ymxpc2g/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIE1hdGNoZWRQYWNrYWdlID0gUGFja2FnZUFjY2VzcyB8IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIEpXVFBheWxvYWQgPSBSZW1vdGVVc2VyICYge1xuICBwYXNzd29yZD86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUVTUGF5bG9hZCB7XG4gIHVzZXI6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVdGlscyB7XG4gIEVycm9yQ29kZTogYW55O1xuICBnZXRMYXRlc3RWZXJzaW9uOiBDYWxsYmFjaztcbiAgaXNPYmplY3Q6ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xuICB2YWxpZGF0ZV9uYW1lOiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcbiAgdGFnX3ZlcnNpb246ICh2YWx1ZTogYW55LCB2ZXJzaW9uOiBzdHJpbmcsIHRhZzogc3RyaW5nKSA9PiB2b2lkO1xuICBub3JtYWxpemVEaXN0VGFnczogKHBrZzogTWFuaWZlc3QpID0+IHZvaWQ7XG4gIHNlbXZlclNvcnQ6IChrZXlzOiBzdHJpbmdbXSkgPT4gc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZSB7XG4gIHRmYTogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZDogc3RyaW5nO1xuICBjcmVhdGVkOiBzdHJpbmc7XG4gIHVwZGF0ZWQ6IHN0cmluZztcbiAgY2lkcl93aGl0ZWxpc3Q6IGFueTtcbiAgZnVsbG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgJFJlcXVlc3RFeHRlbmQgPSBSZXF1ZXN0ICYgeyByZW1vdGVfdXNlcj86IGFueTsgbG9nOiBMb2dnZXIgfTtcbmV4cG9ydCB0eXBlICRSZXNwb25zZUV4dGVuZCA9IFJlc3BvbnNlICYgeyBjb29raWVzPzogYW55IH07XG5leHBvcnQgdHlwZSAkTmV4dEZ1bmN0aW9uVmVyID0gTmV4dEZ1bmN0aW9uICYgYW55O1xuZXhwb3J0IHR5cGUgJFNpZGViYXJQYWNrYWdlID0gTWFuaWZlc3QgJiB7IGxhdGVzdDogYW55IH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN5bmNVcGxpbmtzIHtcbiAgdXBsaW5rc0xvb2s/OiBib29sZWFuO1xuICBldGFnPzogc3RyaW5nO1xuICByZXE/OiBSZXF1ZXN0O1xufVxuXG5leHBvcnQgdHlwZSBJUGx1Z2luRmlsdGVycyA9IHBsdWdpblV0aWxzLk1hbmlmZXN0RmlsdGVyPENvbmZpZz5bXTtcbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verdaccio",
3
- "version": "6.5.2",
3
+ "version": "6.6.2",
4
4
  "description": "A lightweight private npm proxy registry",
5
5
  "author": {
6
6
  "name": "Verdaccio Maintainers",
@@ -20,22 +20,22 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@cypress/request": "3.0.10",
23
- "@verdaccio/auth": "8.0.0-next-8.37",
24
- "@verdaccio/config": "8.0.0-next-8.37",
25
- "@verdaccio/core": "8.0.0-next-8.37",
26
- "@verdaccio/hooks": "8.0.0-next-8.37",
27
- "@verdaccio/loaders": "8.0.0-next-8.27",
28
- "@verdaccio/local-storage-legacy": "11.1.1",
29
- "@verdaccio/logger": "8.0.0-next-8.37",
30
- "@verdaccio/middleware": "8.0.0-next-8.37",
31
- "@verdaccio/package-filter": "13.0.0-next-8.5",
32
- "@verdaccio/search-indexer": "8.0.0-next-8.6",
33
- "@verdaccio/signature": "8.0.0-next-8.29",
34
- "@verdaccio/streams": "10.2.1",
35
- "@verdaccio/tarball": "13.0.0-next-8.37",
23
+ "@verdaccio/auth": "8.0.1",
24
+ "@verdaccio/config": "8.1.0",
25
+ "@verdaccio/core": "8.1.0",
26
+ "@verdaccio/hooks": "8.0.1",
27
+ "@verdaccio/loaders": "8.0.1",
28
+ "@verdaccio/local-storage-legacy": "11.3.1",
29
+ "@verdaccio/logger": "8.0.1",
30
+ "@verdaccio/middleware": "8.0.1",
31
+ "@verdaccio/package-filter": "13.0.1",
32
+ "@verdaccio/search-indexer": "8.0.0",
33
+ "@verdaccio/signature": "8.0.1",
34
+ "@verdaccio/streams": "10.2.3",
35
+ "@verdaccio/tarball": "13.0.1",
36
36
  "@verdaccio/ui-theme": "9.0.0-next-9.14",
37
- "@verdaccio/url": "13.0.0-next-8.37",
38
- "@verdaccio/utils": "8.1.0-next-8.37",
37
+ "@verdaccio/url": "13.0.1",
38
+ "@verdaccio/utils": "8.1.1",
39
39
  "JSONStream": "1.3.5",
40
40
  "async": "3.2.6",
41
41
  "clipanion": "4.0.0-rc.4",
@@ -47,9 +47,9 @@
47
47
  "lodash": "4.18.1",
48
48
  "lru-cache": "7.18.3",
49
49
  "mime": "3.0.0",
50
- "semver": "7.7.4",
51
- "verdaccio-audit": "13.0.0-next-8.37",
52
- "verdaccio-htpasswd": "13.0.0-next-8.37"
50
+ "semver": "7.8.0",
51
+ "verdaccio-audit": "13.0.1",
52
+ "verdaccio-htpasswd": "13.0.1"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@babel/cli": "7.28.6",
@@ -59,6 +59,9 @@
59
59
  "@babel/preset-typescript": "7.28.5",
60
60
  "@babel/register": "7.28.6",
61
61
  "@babel/runtime": "7.28.6",
62
+ "@changesets/changelog-github": "0.5.2",
63
+ "@changesets/cli": "2.27.12",
64
+ "@changesets/get-dependents-graph": "2.1.3",
62
65
  "@trivago/prettier-plugin-sort-imports": "5.2.2",
63
66
  "@types/async": "3.2.25",
64
67
  "@types/debug": "4.1.12",
@@ -76,20 +79,16 @@
76
79
  "@verdaccio-scope/verdaccio-auth-foo": "0.0.2",
77
80
  "@verdaccio/e2e-cli": "2.6.0",
78
81
  "@verdaccio/e2e-ui": "2.4.1",
79
- "@verdaccio/eslint-config": "13.0.0",
80
- "@verdaccio/test-helper": "4.0.0-next-8.21",
81
- "@verdaccio/types": "13.0.0-next-8.12",
82
- "@vitest/coverage-v8": "3.2.4",
83
- "@vitest/eslint-plugin": "1.6.9",
82
+ "@verdaccio/eslint-config": "13.1.0",
83
+ "@verdaccio/test-helper": "4.0.0",
84
+ "@verdaccio/types": "13.0.0",
85
+ "@vitest/coverage-v8": "4.1.5",
86
+ "@vitest/eslint-plugin": "1.6.17",
84
87
  "babel-plugin-transform-inline-environment-variables": "0.4.4",
85
88
  "cross-env": "10.1.0",
86
89
  "cypress": "15",
87
90
  "eslint": "10.0.3",
88
91
  "eslint-plugin-cypress": "6.1.0",
89
- "eslint-plugin-jest": "29.15.0",
90
- "eslint-plugin-react": "7.37.5",
91
- "eslint-plugin-react-hooks": "7.0.1",
92
- "eslint-plugin-verdaccio": "10.1.0",
93
92
  "fs-extra": "11.3.2",
94
93
  "get-port": "7.1.0",
95
94
  "kleur": "4.1.5",
@@ -97,13 +96,12 @@
97
96
  "node-mocks-http": "^1.17.2",
98
97
  "prettier": "3.6.2",
99
98
  "selfsigned": "5.5.0",
100
- "standard-version": "9.5.0",
101
99
  "supertest": "7.2.2",
102
100
  "ts-node": "10.9.2",
103
101
  "typescript": "5.9.3",
104
- "verdaccio-auth-memory": "10.3.1",
105
- "verdaccio-memory": "10.4.1",
106
- "vitest": "3.2.4"
102
+ "verdaccio-auth-memory": "13.0.1",
103
+ "verdaccio-memory": "10.4.3",
104
+ "vitest": "4.1.5"
107
105
  },
108
106
  "keywords": [
109
107
  "private",
@@ -117,7 +115,11 @@
117
115
  "verdaccio"
118
116
  ],
119
117
  "scripts": {
120
- "release": "standard-version -a -s",
118
+ "changeset": "changeset",
119
+ "changeset:check": "changeset status --since=origin/6.x",
120
+ "ci:version": "yarn ci:version:changeset && yarn install --no-immutable",
121
+ "ci:version:changeset": "changeset version",
122
+ "ci:publish": "yarn npm publish --access public --provenance",
121
123
  "type-check": "tsc --noEmit",
122
124
  "cache:clean": "yarn cache clean --mirror && yarn cache clean --all",
123
125
  "type-check:watch": "yarn run type-check -- --watch",
@@ -144,7 +146,7 @@
144
146
  "e2e:ui:local:open": "./scripts/e2e-ui-local.sh --open"
145
147
  },
146
148
  "engines": {
147
- "node": ">=18"
149
+ "node": ">=20"
148
150
  },
149
151
  "preferGlobal": true,
150
152
  "license": "MIT",
@@ -157,5 +159,5 @@
157
159
  "url": "https://opencollective.com/verdaccio",
158
160
  "logo": "https://opencollective.com/verdaccio/logo.txt"
159
161
  },
160
- "packageManager": "yarn@4.9.2"
161
- }
162
+ "packageManager": "yarn@4.14.1"
163
+ }
package/security.txt CHANGED
@@ -1,5 +1,3 @@
1
1
  Contact: verdaccio@pm.me
2
- Encryption: https://verdaccio.nyc3.digitaloceanspaces.com/gpg/publickey.verdaccio@pm.me.asc
3
- Acknowledgments: https://verdaccio.org/thanks.html
4
2
  Preferred-Languages: en
5
3
  Policy: https://github.com/verdaccio/verdaccio/security/policy
@@ -1,3 +0,0 @@
1
- import { Application } from 'express';
2
- declare const _default: (app: Application, selfPath: string) => void;
3
- export default _default;
@@ -1,4 +0,0 @@
1
- import type { Router } from 'express';
2
- import type { Auth } from '@verdaccio/auth';
3
- import type Storage from '../../../lib/storage';
4
- export default function (route: Router, auth: Auth, storage: Storage): void;
@@ -1,5 +0,0 @@
1
- import type { Router } from 'express';
2
- import type { Auth } from '@verdaccio/auth';
3
- import type { Config } from '@verdaccio/types';
4
- import type Storage from '../../../lib/storage';
5
- export default function (route: Router, auth: Auth, storage: Storage, config: Config): void;
@@ -1,2 +0,0 @@
1
- import type { Router } from 'express';
2
- export default function (route: Router): void;
@@ -1,26 +0,0 @@
1
- import type { Router } from 'express';
2
- import type { Auth } from '@verdaccio/auth';
3
- import type { Config } from '@verdaccio/types';
4
- import type Storage from '../../../lib/storage';
5
- import type { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../../../types';
6
- export default function publish(router: Router, auth: Auth, storage: Storage, config: Config): void;
7
- /**
8
- * Publish a package
9
- */
10
- export declare function publishPackage(storage: Storage, config: Config, auth: Auth): any;
11
- /**
12
- * un-publish a package
13
- */
14
- export declare function unPublishPackage(storage: Storage): (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => void;
15
- /**
16
- * Delete tarball
17
- */
18
- export declare function removeTarball(storage: Storage): (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => void;
19
- /**
20
- * Adds a new version
21
- */
22
- export declare function addVersion(storage: Storage): (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => void;
23
- /**
24
- * uploadPackageTarball
25
- */
26
- export declare function uploadPackageTarball(storage: Storage): (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => void;
@@ -1 +0,0 @@
1
- export default function (route: any, auth: any, storage: any): void;
@@ -1,4 +0,0 @@
1
- import type { Response } from 'express';
2
- import type Storage from '../../../lib/storage';
3
- import type { $NextFunctionVer, $RequestExtend } from '../../../types';
4
- export default function (storage: Storage): (req: $RequestExtend, res: Response, next: $NextFunctionVer) => void;
@@ -1,3 +0,0 @@
1
- import type { Router } from 'express';
2
- import type Storage from '../../../lib/storage';
3
- export default function (route: Router, storage: Storage): void;
@@ -1,4 +0,0 @@
1
- import type { Router } from 'express';
2
- import type { Auth } from '@verdaccio/auth';
3
- import type { Config } from '@verdaccio/types';
4
- export default function (route: Router, auth: Auth, config: Config): void;
@@ -1,14 +0,0 @@
1
- import type { Router } from 'express';
2
- import type { Auth } from '@verdaccio/auth';
3
- import type { ConfigYaml } from '@verdaccio/types';
4
- export interface Profile {
5
- tfa: boolean;
6
- name: string;
7
- email: string;
8
- email_verified: boolean;
9
- created: string;
10
- updated: string;
11
- cidr_whitelist: string[] | null;
12
- fullname: string;
13
- }
14
- export default function (router: Router, auth: Auth, config: ConfigYaml): void;
@@ -1,5 +0,0 @@
1
- /**
2
- * Endpoint for npm search v1
3
- * req: 'GET /-/v1/search?text=react&size=20&from=0&quality=0.65&popularity=0.98&maintenance=0.5'
4
- */
5
- export default function (route: any, auth: any, storage: any): void;
@@ -1,8 +0,0 @@
1
- import type { Router } from 'express';
2
- import type { Auth } from '@verdaccio/auth';
3
- import type { Config, Token } from '@verdaccio/types';
4
- import type Storage from '../../../../lib/storage';
5
- export type NormalizeToken = Token & {
6
- created: string;
7
- };
8
- export default function (router: Router, auth: Auth, storage: Storage, config: Config): void;
@@ -1,2 +0,0 @@
1
- import type { Router } from 'express';
2
- export default function (route: Router): void;
@@ -1,4 +0,0 @@
1
- import type { Auth } from '@verdaccio/auth';
2
- import type { Config } from '@verdaccio/types';
3
- import type Storage from '../../lib/storage';
4
- export default function (config: Config, auth: Auth, storage: Storage): import("express-serve-static-core").Router;
@@ -1,4 +0,0 @@
1
- import express from 'express';
2
- import type { ConfigYaml } from '@verdaccio/types';
3
- declare const _default: (configHash: ConfigYaml) => Promise<express.Application>;
4
- export default _default;
@@ -1,3 +0,0 @@
1
- import type { Config } from '@verdaccio/types';
2
- import type { $RequestExtend, $ResponseExtend } from '../types';
3
- export declare function serveFavicon(config: Config): (_req: $RequestExtend, res: $ResponseExtend) => void;
@@ -1,2 +0,0 @@
1
- declare const _default: (auth: any, storage: any, config: any) => import("express-serve-static-core").Router;
2
- export default _default;
@@ -1,12 +0,0 @@
1
- import { Router } from 'express';
2
- import type { Auth } from '@verdaccio/auth';
3
- import type { Config, Manifest } from '@verdaccio/types';
4
- import type Storage from '../../../lib/storage';
5
- export type PackcageExt = Manifest & {
6
- author: any;
7
- dist?: {
8
- tarball: string;
9
- };
10
- };
11
- declare function addPackageWebApi(storage: Storage, auth: Auth, config: Config): Router;
12
- export default addPackageWebApi;
@@ -1,5 +0,0 @@
1
- import { Router } from 'express';
2
- import type { Auth } from '@verdaccio/auth';
3
- import type Storage from '../../../lib/storage';
4
- declare function addSearchWebApi(storage: Storage, auth: Auth): Router;
5
- export default addSearchWebApi;
@@ -1,5 +0,0 @@
1
- import { Router } from 'express';
2
- import type { Auth } from '@verdaccio/auth';
3
- import type { Config } from '@verdaccio/types';
4
- declare function addUserAuthApi(auth: Auth, config: Config): Router;
5
- export default addUserAuthApi;
@@ -1,2 +0,0 @@
1
- export declare function wrapPath(urlPath: string): string;
2
- export declare function wrapSecPath(urlPath: string): string;
@@ -1,9 +0,0 @@
1
- import type { RequestHandler } from 'express';
2
- import { Router } from 'express';
3
- export declare const PLUGIN_UI_PREFIX = "verdaccio-theme";
4
- export declare const DEFAULT_PLUGIN_UI_THEME = "@verdaccio/ui-theme";
5
- export declare function loadTheme(config: any): Promise<any>;
6
- export declare function webAPIMiddleware(tokenMiddleware: RequestHandler, webEndpointsApi: RequestHandler): Router;
7
- export declare function webMiddleware(config: any, middlewares: any, pluginOptions: any): any;
8
- declare const _default: (config: any, auth: any, storage: any, logger: any) => Promise<import("express-serve-static-core").Router>;
9
- export default _default;
package/build/index.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export { startVerdaccio as default, startVerdaccio } from './lib/bootstrap';
2
- export { runServer } from './lib/run-server';
3
- export { ConfigBuilder, parseConfigFile, getDefaultConfig, Config } from '@verdaccio/config';
4
- export { fileUtils, errorUtils, cryptoUtils, pkgUtils } from '@verdaccio/core';
@@ -1,2 +0,0 @@
1
- import { Config, Security } from '@verdaccio/types';
2
- export declare function getSecurity(config: Config): Security;
@@ -1,22 +0,0 @@
1
- import { Application } from 'express';
2
- import { Callback, ConfigYaml } from '@verdaccio/types';
3
- /**
4
- * Trigger the server after configuration has been loaded.
5
- * @param {Object} config
6
- * @param {Object} cliArguments
7
- * @param {String} configPath
8
- * @param {String} pkgVersion
9
- * @param {String} pkgName
10
- * @deprecated use runServer instead
11
- */
12
- declare function startVerdaccio(config: ConfigYaml, cliListen: string, configPath: string, pkgVersion: string, pkgName: string, callback: Callback): void;
13
- /**
14
- *
15
- * @param webServer
16
- * @param addr
17
- * @param pkgName
18
- * @param pkgVersion
19
- * @deprecated use initServer instead
20
- */
21
- declare function listenDefaultCallback(webServer: Application, addr: any, pkgName: string, pkgVersion: string): void;
22
- export { startVerdaccio, listenDefaultCallback };
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- import { Command } from 'clipanion';
2
- export declare class InfoCommand extends Command {
3
- static paths: string[][];
4
- execute(): Promise<void>;
5
- }
@@ -1,9 +0,0 @@
1
- import { Command } from 'clipanion';
2
- export declare const DEFAULT_PROCESS_NAME: string;
3
- export declare class InitCommand extends Command {
4
- static paths: never[][];
5
- listen: string | undefined;
6
- static usage: import("clipanion").Usage;
7
- config: string | undefined;
8
- execute(): Promise<void>;
9
- }
@@ -1,5 +0,0 @@
1
- import { Command } from 'clipanion';
2
- export declare class VersionCommand extends Command {
3
- static paths: string[][];
4
- execute(): Promise<void>;
5
- }
@@ -1,2 +0,0 @@
1
- export declare const MIN_NODE_VERSION = "18";
2
- export declare function isVersionValid(version: any): boolean;
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import './cli/cli';
@@ -1,5 +0,0 @@
1
- import { Config as ConfigCore } from '@verdaccio/config';
2
- declare class Config extends ConfigCore {
3
- constructor(config: any);
4
- }
5
- export default Config;
@@ -1,25 +0,0 @@
1
- export { API_ERROR, API_MESSAGE, HTTP_STATUS, HEADERS, HEADER_TYPE, CHARACTER_ENCODING, TOKEN_BASIC, TOKEN_BEARER, SUPPORT_ERRORS, APP_ERROR, DEFAULT_PROTOCOL, DEFAULT_DOMAIN, } from '@verdaccio/core';
2
- export { ROLES, PACKAGE_ACCESS } from '@verdaccio/utils';
3
- export declare const TIME_EXPIRATION_24H = "24h";
4
- export declare const TIME_EXPIRATION_1H = "1h";
5
- export declare const DIST_TAGS = "dist-tags";
6
- export declare const LATEST = "latest";
7
- export declare const USERS = "users";
8
- export declare const DEFAULT_MIN_LIMIT_PASSWORD = 3;
9
- export declare const keyPem = "verdaccio-key.pem";
10
- export declare const certPem = "verdaccio-cert.pem";
11
- export declare const csrPem = "verdaccio-csr.pem";
12
- export declare const ERROR_CODE: {
13
- token_required: string;
14
- };
15
- export declare const DEFAULT_REGISTRY = "https://registry.npmjs.org";
16
- export declare const DEFAULT_UPLINK = "npmjs";
17
- export declare const DEFAULT_NO_README = "ERROR: No README data found!";
18
- export declare const MODULE_NOT_FOUND = "MODULE_NOT_FOUND";
19
- export declare const WEB_TITLE = "Verdaccio";
20
- export declare const STORAGE: {
21
- PACKAGE_FILE_NAME: string;
22
- FILE_EXIST_ERROR: string;
23
- NO_SUCH_FILE_ERROR: string;
24
- DEFAULT_REVISION: string;
25
- };
@@ -1 +0,0 @@
1
- export declare function displayExperimentsInfoBox(flags: any): any;