parse-server 5.0.0-alpha.11 → 5.0.0-alpha.15

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.
@@ -294,6 +294,7 @@ function getDatabaseAdapter(databaseURI, collectionPrefix, databaseOptions) {
294
294
 
295
295
  switch (protocol) {
296
296
  case 'postgres:':
297
+ case 'postgresql:':
297
298
  return new _PostgresStorageAdapter.default({
298
299
  uri: databaseURI,
299
300
  collectionPrefix,
@@ -308,4 +309,4 @@ function getDatabaseAdapter(databaseURI, collectionPrefix, databaseOptions) {
308
309
  });
309
310
  }
310
311
  }
311
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9pbmRleC5qcyJdLCJuYW1lcyI6WyJnZXRDb250cm9sbGVycyIsIm9wdGlvbnMiLCJsb2dnZXJDb250cm9sbGVyIiwiZ2V0TG9nZ2VyQ29udHJvbGxlciIsImZpbGVzQ29udHJvbGxlciIsImdldEZpbGVzQ29udHJvbGxlciIsInVzZXJDb250cm9sbGVyIiwiZ2V0VXNlckNvbnRyb2xsZXIiLCJwdXNoQ29udHJvbGxlciIsImhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0IiwiaGFzUHVzaFN1cHBvcnQiLCJwdXNoQ29udHJvbGxlclF1ZXVlIiwicHVzaFdvcmtlciIsImdldFB1c2hDb250cm9sbGVyIiwiY2FjaGVDb250cm9sbGVyIiwiZ2V0Q2FjaGVDb250cm9sbGVyIiwiYW5hbHl0aWNzQ29udHJvbGxlciIsImdldEFuYWx5dGljc0NvbnRyb2xsZXIiLCJsaXZlUXVlcnlDb250cm9sbGVyIiwiZ2V0TGl2ZVF1ZXJ5Q29udHJvbGxlciIsImRhdGFiYXNlQ29udHJvbGxlciIsImdldERhdGFiYXNlQ29udHJvbGxlciIsImhvb2tzQ29udHJvbGxlciIsImdldEhvb2tzQ29udHJvbGxlciIsImF1dGhEYXRhTWFuYWdlciIsImdldEF1dGhEYXRhTWFuYWdlciIsInBhcnNlR3JhcGhRTENvbnRyb2xsZXIiLCJnZXRQYXJzZUdyYXBoUUxDb250cm9sbGVyIiwic2NoZW1hQ2FjaGUiLCJTY2hlbWFDYWNoZSIsImFwcElkIiwianNvbkxvZ3MiLCJsb2dzRm9sZGVyIiwidmVyYm9zZSIsImxvZ0xldmVsIiwibWF4TG9nRmlsZXMiLCJzaWxlbnQiLCJsb2dnZXJBZGFwdGVyIiwibG9nZ2VyT3B0aW9ucyIsImxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyIiwiV2luc3RvbkxvZ2dlckFkYXB0ZXIiLCJMb2dnZXJDb250cm9sbGVyIiwiZGF0YWJhc2VVUkkiLCJmaWxlc0FkYXB0ZXIiLCJkYXRhYmFzZUFkYXB0ZXIiLCJwcmVzZXJ2ZUZpbGVOYW1lIiwiZmlsZUtleSIsImZpbGVzQ29udHJvbGxlckFkYXB0ZXIiLCJHcmlkRlNCdWNrZXRBZGFwdGVyIiwiRmlsZXNDb250cm9sbGVyIiwiZW1haWxBZGFwdGVyIiwidmVyaWZ5VXNlckVtYWlscyIsImVtYWlsQ29udHJvbGxlckFkYXB0ZXIiLCJVc2VyQ29udHJvbGxlciIsImNhY2hlQWRhcHRlciIsImNhY2hlVFRMIiwiY2FjaGVNYXhTaXplIiwiY2FjaGVDb250cm9sbGVyQWRhcHRlciIsIkluTWVtb3J5Q2FjaGVBZGFwdGVyIiwidHRsIiwibWF4U2l6ZSIsIkNhY2hlQ29udHJvbGxlciIsImNvbnRyb2xsZXJEZXBzIiwiUGFyc2VHcmFwaFFMQ29udHJvbGxlciIsIm1vdW50R3JhcGhRTCIsImFuYWx5dGljc0FkYXB0ZXIiLCJhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlciIsIkFuYWx5dGljc0FkYXB0ZXIiLCJBbmFseXRpY3NDb250cm9sbGVyIiwiTGl2ZVF1ZXJ5Q29udHJvbGxlciIsImxpdmVRdWVyeSIsImNvbGxlY3Rpb25QcmVmaXgiLCJkYXRhYmFzZU9wdGlvbnMiLCJkZWZhdWx0cyIsImdldERhdGFiYXNlQWRhcHRlciIsIkRhdGFiYXNlQ29udHJvbGxlciIsIndlYmhvb2tLZXkiLCJIb29rc0NvbnRyb2xsZXIiLCJzY2hlZHVsZWRQdXNoIiwicHVzaCIsInB1c2hPcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaFF1ZXVlT3B0aW9ucyIsInF1ZXVlT3B0aW9ucyIsInB1c2hBZGFwdGVyIiwiYWRhcHRlciIsIlBhcnNlUHVzaEFkYXB0ZXIiLCJQdXNoQ29udHJvbGxlciIsImRpc2FibGVQdXNoV29ya2VyIiwiUHVzaFF1ZXVlIiwiUHVzaFdvcmtlciIsImF1dGgiLCJlbmFibGVBbm9ueW1vdXNVc2VycyIsInByb3RvY29sIiwicGFyc2VkVVJJIiwidXJsIiwicGFyc2UiLCJ0b0xvd2VyQ2FzZSIsImUiLCJQb3N0Z3Jlc1N0b3JhZ2VBZGFwdGVyIiwidXJpIiwiTW9uZ29TdG9y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N0JELFFBQUFBLEdBQUcsRUFBRTNELFdBRHdCO0FBRTdCNkIsUUFBQUEsZ0JBRjZCO0FBRzdCZ0MsUUFBQUEsWUFBWSxFQUFFL0I7QUFIZSxPQUF4QixDQUFQO0FBUko7QUFjRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhdXRoRGF0YU1hbmFnZXIgZnJvbSAnLi4vQWRhcHRlcnMvQXV0aCc7XG5pbXBvcnQgeyBQYXJzZVNlcnZlck9wdGlvbnMgfSBmcm9tICcuLi9PcHRpb25zJztcbmltcG9ydCB7IGxvYWRBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQWRhcHRlckxvYWRlcic7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuLy8gQ29udHJvbGxlcnNcbmltcG9ydCB7IExvZ2dlckNvbnRyb2xsZXIgfSBmcm9tICcuL0xvZ2dlckNvbnRyb2xsZXInO1xuaW1wb3J0IHsgRmlsZXNDb250cm9sbGVyIH0gZnJvbSAnLi9GaWxlc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgSG9va3NDb250cm9sbGVyIH0gZnJvbSAnLi9Ib29rc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgVXNlckNvbnRyb2xsZXIgfSBmcm9tICcuL1VzZXJDb250cm9sbGVyJztcbmltcG9ydCB7IENhY2hlQ29udHJvbGxlciB9IGZyb20gJy4vQ2FjaGVDb250cm9sbGVyJztcbmltcG9ydCB7IExpdmVRdWVyeUNvbnRyb2xsZXIgfSBmcm9tICcuL0xpdmVRdWVyeUNvbnRyb2xsZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzQ29udHJvbGxlciB9IGZyb20gJy4vQW5hbHl0aWNzQ29udHJvbGxlcic7XG5pbXBvcnQgeyBQdXNoQ29udHJvbGxlciB9IGZyb20gJy4vUHVzaENvbnRyb2xsZXInO1xuaW1wb3J0IHsgUHVzaFF1ZXVlIH0gZnJvbSAnLi4vUHVzaC9QdXNoUXVldWUnO1xuaW1wb3J0IHsgUHVzaFdvcmtlciB9IGZyb20gJy4uL1B1c2gvUHVzaFdvcmtlcic7XG5pbXBvcnQgRGF0YWJhc2VDb250cm9sbGVyIGZyb20gJy4vRGF0YWJhc2VDb250cm9sbGVyJztcblxuLy8gQWRhcHRlcnNcbmltcG9ydCB7IEdyaWRGU0J1Y2tldEFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9GaWxlcy9HcmlkRlNCdWNrZXRBZGFwdGVyJztcbmltcG9ydCB7IFdpbnN0b25Mb2dnZXJBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvTG9nZ2VyL1dpbnN0b25Mb2dnZXJBZGFwdGVyJztcbmltcG9ydCB7IEluTWVtb3J5Q2FjaGVBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQ2FjaGUvSW5NZW1vcnlDYWNoZUFkYXB0ZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL0FuYWx5dGljcy9BbmFseXRpY3NBZGFwdGVyJztcbmltcG9ydCBNb25nb1N0b3JhZ2VBZGFwdGVyIGZyb20gJy4uL0FkYXB0ZXJzL1N0b3JhZ2UvTW9uZ28vTW9uZ29TdG9yYWdlQWRhcHRlcic7XG5pbXBvcnQgUG9zdGdyZXNTdG9yYWdlQWRhcHRlciBmcm9tICcuLi9BZGFwdGVycy9TdG9yYWdlL1Bvc3RncmVzL1Bvc3RncmVzU3RvcmFnZUFkYXB0ZXInO1xuaW1wb3J0IFBhcnNlUHVzaEFkYXB0ZXIgZnJvbSAnQHBhcnNlL3B1c2gtYWRhcHRlcic7XG5pbXBvcnQgUGFyc2VHcmFwaFFMQ29udHJvbGxlciBmcm9tICcuL1BhcnNlR3JhcGhRTENvbnRyb2xsZXInO1xuaW1wb3J0IFNjaGVtYUNhY2hlIGZyb20gJy4uL0FkYXB0ZXJzL0NhY2hlL1NjaGVtYUNhY2hlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRyb2xsZXJzKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucykge1xuICBjb25zdCBsb2dnZXJDb250cm9sbGVyID0gZ2V0TG9nZ2VyQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgZmlsZXNDb250cm9sbGVyID0gZ2V0RmlsZXNDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCB1c2VyQ29udHJvbGxlciA9IGdldFVzZXJDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCB7XG4gICAgcHVzaENvbnRyb2xsZXIsXG4gICAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQsXG4gICAgaGFzUHVzaFN1cHBvcnQsXG4gICAgcHVzaENvbnRyb2xsZXJRdWV1ZSxcbiAgICBwdXNoV29ya2VyLFxuICB9ID0gZ2V0UHVzaENvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlciA9IGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgYW5hbHl0aWNzQ29udHJvbGxlciA9IGdldEFuYWx5dGljc0NvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGxpdmVRdWVyeUNvbnRyb2xsZXIgPSBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCBkYXRhYmFzZUNvbnRyb2xsZXIgPSBnZXREYXRhYmFzZUNvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGhvb2tzQ29udHJvbGxlciA9IGdldEhvb2tzQ29udHJvbGxlcihvcHRpb25zLCBkYXRhYmFzZUNvbnRyb2xsZXIpO1xuICBjb25zdCBhdXRoRGF0YU1hbmFnZXIgPSBnZXRBdXRoRGF0YU1hbmFnZXIob3B0aW9ucyk7XG4gIGNvbnN0IHBhcnNlR3JhcGhRTENvbnRyb2xsZXIgPSBnZXRQYXJzZUdyYXBoUUxDb250cm9sbGVyKG9wdGlvbnMsIHtcbiAgICBkYXRhYmFzZUNvbnRyb2xsZXIsXG4gICAgY2FjaGVDb250cm9sbGVyLFxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBsb2dnZXJDb250cm9sbGVyLFxuICAgIGZpbGVzQ29udHJvbGxlcixcbiAgICB1c2VyQ29udHJvbGxlcixcbiAgICBwdXNoQ29udHJvbGxlcixcbiAgICBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCxcbiAgICBoYXNQdXNoU3VwcG9ydCxcbiAgICBwdXNoV29ya2VyLFxuICAgIHB1c2hDb250cm9sbGVyUXVldWUsXG4gICAgYW5hbHl0aWNzQ29udHJvbGxlcixcbiAgICBjYWNoZUNvbnRyb2xsZXIsXG4gICAgcGFyc2VHcmFwaFFMQ29udHJvbGxlcixcbiAgICBsaXZlUXVlcnlDb250cm9sbGVyLFxuICAgIGRhdGFiYXNlQ29udHJvbGxlcixcbiAgICBob29rc0NvbnRyb2xsZXIsXG4gICAgYXV0aERhdGFNYW5hZ2VyLFxuICAgIHNjaGVtYUNhY2hlOiBTY2hlbWFDYWNoZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2dlckNvbnRyb2xsZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKTogTG9nZ2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHtcbiAgICBhcHBJZCxcbiAgICBqc29uTG9ncyxcbiAgICBsb2dzRm9sZGVyLFxuICAgIHZlcmJvc2UsXG4gICAgbG9nTGV2ZWwsXG4gICAgbWF4TG9nRmlsZXMsXG4gICAgc2lsZW50LFxuICAgIGxvZ2dlckFkYXB0ZXIsXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBsb2dnZXJPcHRpb25zID0ge1xuICAgIGpzb25Mb2dzLFxuICAgIGxvZ3NGb2xkZXIsXG4gICAgdmVyYm9zZSxcbiAgICBsb2dMZXZlbCxcbiAgICBzaWxlbnQsXG4gICAgbWF4TG9nRmlsZXMsXG4gIH07XG4gIGNvbnN0IGxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIobG9nZ2VyQWRhcHRlciwgV2luc3RvbkxvZ2dlckFkYXB0ZXIsIGxvZ2dlck9wdGlvbnMpO1xuICByZXR1cm4gbmV3IExvZ2dlckNvbnRyb2xsZXIobG9nZ2VyQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCBsb2dnZXJPcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVzQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBGaWxlc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBkYXRhYmFzZVVSSSwgZmlsZXNBZGFwdGVyLCBkYXRhYmFzZUFkYXB0ZXIsIHByZXNlcnZlRmlsZU5hbWUsIGZpbGVLZXkgfSA9IG9wdGlvbnM7XG4gIGlmICghZmlsZXNBZGFwdGVyICYmIGRhdGFiYXNlQWRhcHRlcikge1xuICAgIHRocm93ICdXaGVuIHVzaW5nIGFuIGV4cGxpY2l0IGRhdGFiYXNlIGFkYXB0ZXIsIHlvdSBtdXN0IGFsc28gdXNlIGFuIGV4cGxpY2l0IGZpbGVzQWRhcHRlci4nO1xuICB9XG4gIGNvbnN0IGZpbGVzQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihmaWxlc0FkYXB0ZXIsICgpID0+IHtcbiAgICByZXR1cm4gbmV3IEdyaWRGU0J1Y2tldEFkYXB0ZXIoZGF0YWJhc2VVUkksIHt9LCBmaWxlS2V5KTtcbiAgfSk7XG4gIHJldHVybiBuZXcgRmlsZXNDb250cm9sbGVyKGZpbGVzQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCB7XG4gICAgcHJlc2VydmVGaWxlTmFtZSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VyQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBVc2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgYXBwSWQsIGVtYWlsQWRhcHRlciwgdmVyaWZ5VXNlckVtYWlscyB9ID0gb3B0aW9ucztcbiAgY29uc3QgZW1haWxDb250cm9sbGVyQWRhcHRlciA9IGxvYWRBZGFwdGVyKGVtYWlsQWRhcHRlcik7XG4gIHJldHVybiBuZXcgVXNlckNvbnRyb2xsZXIoZW1haWxDb250cm9sbGVyQWRhcHRlciwgYXBwSWQsIHtcbiAgICB2ZXJpZnlVc2VyRW1haWxzLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBDYWNoZUNvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBjYWNoZUFkYXB0ZXIsIGNhY2hlVFRMLCBjYWNoZU1heFNpemUgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihjYWNoZUFkYXB0ZXIsIEluTWVtb3J5Q2FjaGVBZGFwdGVyLCB7XG4gICAgYXBwSWQ6IGFwcElkLFxuICAgIHR0bDogY2FjaGVUVEwsXG4gICAgbWF4U2l6ZTogY2FjaGVNYXhTaXplLFxuICB9KTtcbiAgcmV0dXJuIG5ldyBDYWNoZUNvbnRyb2xsZXIoY2FjaGVDb250cm9sbGVyQWRhcHRlciwgYXBwSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyc2VHcmFwaFFMQ29udHJvbGxlcihcbiAgb3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zLFxuICBjb250cm9sbGVyRGVwc1xuKTogUGFyc2VHcmFwaFFMQ29udHJvbGxlciB7XG4gIHJldHVybiBuZXcgUGFyc2VHcmFwaFFMQ29udHJvbGxlcih7XG4gICAgbW91bnRHcmFwaFFMOiBvcHRpb25zLm1vdW50R3JhcGhRTCxcbiAgICAuLi5jb250cm9sbGVyRGVwcyxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmFseXRpY3NDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IEFuYWx5dGljc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFuYWx5dGljc0FkYXB0ZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGFuYWx5dGljc0NvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIoYW5hbHl0aWNzQWRhcHRlciwgQW5hbHl0aWNzQWRhcHRlcik7XG4gIHJldHVybiBuZXcgQW5hbHl0aWNzQ29udHJvbGxlcihhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IExpdmVRdWVyeUNvbnRyb2xsZXIge1xuICByZXR1cm4gbmV3IExpdmVRdWVyeUNvbnRyb2xsZXIob3B0aW9ucy5saXZlUXVlcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YWJhc2VDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IERhdGFiYXNlQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgZGF0YWJhc2VVUkksIGNvbGxlY3Rpb25QcmVmaXgsIGRhdGFiYXNlT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgbGV0IHsgZGF0YWJhc2VBZGFwdGVyIH0gPSBvcHRpb25zO1xuICBpZiAoXG4gICAgKGRhdGFiYXNlT3B0aW9ucyB8fFxuICAgICAgKGRhdGFiYXNlVVJJICYmIGRhdGFiYXNlVVJJICE9PSBkZWZhdWx0cy5kYXRhYmFzZVVSSSkgfHxcbiAgICAgIGNvbGxlY3Rpb25QcmVmaXggIT09IGRlZmF1bHRzLmNvbGxlY3Rpb25QcmVmaXgpICYmXG4gICAgZGF0YWJhc2VBZGFwdGVyXG4gICkge1xuICAgIHRocm93ICdZb3UgY2Fubm90IHNwZWNpZnkgYm90aCBhIGRhdGFiYXNlQWRhcHRlciBhbmQgYSBkYXRhYmFzZVVSSS9kYXRhYmFzZU9wdGlvbnMvY29sbGVjdGlvblByZWZpeC4nO1xuICB9IGVsc2UgaWYgKCFkYXRhYmFzZUFkYXB0ZXIpIHtcbiAgICBkYXRhYmFzZUFkYXB0ZXIgPSBnZXREYXRhYmFzZUFkYXB0ZXIoZGF0YWJhc2VVUkksIGNvbGxlY3Rpb25QcmVmaXgsIGRhdGFiYXNlT3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgZGF0YWJhc2VBZGFwdGVyID0gbG9hZEFkYXB0ZXIoZGF0YWJhc2VBZGFwdGVyKTtcbiAgfVxuICByZXR1cm4gbmV3IERhdGFiYXNlQ29udHJvbGxlcihkYXRhYmFzZUFkYXB0ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9va3NDb250cm9sbGVyKFxuICBvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMsXG4gIGRhdGFiYXNlQ29udHJvbGxlcjogRGF0YWJhc2VDb250cm9sbGVyXG4pOiBIb29rc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCB3ZWJob29rS2V5IH0gPSBvcHRpb25zO1xuICByZXR1cm4gbmV3IEhvb2tzQ29udHJvbGxlcihhcHBJZCwgZGF0YWJhc2VDb250cm9sbGVyLCB3ZWJob29rS2V5KTtcbn1cblxuaW50ZXJmYWNlIFB1c2hDb250cm9sbGluZyB7XG4gIHB1c2hDb250cm9sbGVyOiBQdXNoQ29udHJvbGxlcjtcbiAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQ6IGJvb2xlYW47XG4gIHB1c2hDb250cm9sbGVyUXVldWU6IFB1c2hRdWV1ZTtcbiAgcHVzaFdvcmtlcjogUHVzaFdvcmtlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFB1c2hDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IFB1c2hDb250cm9sbGluZyB7XG4gIGNvbnN0IHsgc2NoZWR1bGVkUHVzaCwgcHVzaCB9ID0gb3B0aW9ucztcblxuICBjb25zdCBwdXNoT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHB1c2gpO1xuICBjb25zdCBwdXNoUXVldWVPcHRpb25zID0gcHVzaE9wdGlvbnMucXVldWVPcHRpb25zIHx8IHt9O1xuICBpZiAocHVzaE9wdGlvbnMucXVldWVPcHRpb25zKSB7XG4gICAgZGVsZXRlIHB1c2hPcHRpb25zLnF1ZXVlT3B0aW9ucztcbiAgfVxuXG4gIC8vIFBhc3MgdGhlIHB1c2ggb3B0aW9ucyB0b28gYXMgaXQgd29ya3Mgd2l0aCB0aGUgZGVmYXVsdFxuICBjb25zdCBwdXNoQWRhcHRlciA9IGxvYWRBZGFwdGVyKFxuICAgIHB1c2hPcHRpb25zICYmIHB1c2hPcHRpb25zLmFkYXB0ZXIsXG4gICAgUGFyc2VQdXNoQWRhcHRlcixcbiAgICBwdXNoT3B0aW9uc1xuICApO1xuICAvLyBXZSBwYXNzIHRoZSBvcHRpb25zIGFuZCB0aGUgYmFzZSBjbGFzcyBmb3IgdGhlIGFkYXRwZXIsXG4gIC8vIE5vdGUgdGhhdCBwYXNzaW5nIGFuIGluc3RhbmNlIHdvdWxkIHdvcmsgdG9vXG4gIGNvbnN0IHB1c2hDb250cm9sbGVyID0gbmV3IFB1c2hDb250cm9sbGVyKCk7XG4gIGNvbnN0IGhhc1B1c2hTdXBwb3J0ID0gISEocHVzaEFkYXB0ZXIgJiYgcHVzaCk7XG4gIGNvbnN0IGhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0ID0gaGFzUHVzaFN1cHBvcnQgJiYgc2NoZWR1bGVkUHVzaCA9PT0gdHJ1ZTtcblxuICBjb25zdCB7IGRpc2FibGVQdXNoV29ya2VyIH0gPSBwdXNoUXVldWVPcHRpb25zO1xuXG4gIGNvbnN0IHB1c2hDb250cm9sbGVyUXVldWUgPSBuZXcgUHVzaFF1ZXVlKHB1c2hRdWV1ZU9wdGlvbnMpO1xuICBsZXQgcHVzaFdvcmtlcjtcbiAgaWYgKCFkaXNhYmxlUHVzaFdvcmtlcikge1xuICAgIHB1c2hXb3JrZXIgPSBuZXcgUHVzaFdvcmtlcihwdXNoQWRhcHRlciwgcHVzaFF1ZXVlT3B0aW9ucyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwdXNoQ29udHJvbGxlcixcbiAgICBoYXNQdXNoU3VwcG9ydCxcbiAgICBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCxcbiAgICBwdXNoQ29udHJvbGxlclF1ZXVlLFxuICAgIHB1c2hXb3JrZXIsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdXRoRGF0YU1hbmFnZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKSB7XG4gIGNvbnN0IHsgYXV0aCwgZW5hYmxlQW5vbnltb3VzVXNlcnMgfSA9IG9wdGlvbnM7XG4gIHJldHVybiBhdXRoRGF0YU1hbmFnZXIoYXV0aCwgZW5hYmxlQW5vbnltb3VzVXNlcnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YWJhc2VBZGFwdGVyKGRhdGFiYXNlVVJJLCBjb2xsZWN0aW9uUHJlZml4LCBkYXRhYmFzZU9wdGlvbnMpIHtcbiAgbGV0IHByb3RvY29sO1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZFVSSSA9IHVybC5wYXJzZShkYXRhYmFzZVVSSSk7XG4gICAgcHJvdG9jb2wgPSBwYXJzZWRVUkkucHJvdG9jb2wgPyBwYXJzZWRVUkkucHJvdG9jb2wudG9Mb3dlckNhc2UoKSA6IG51bGw7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvKiAqL1xuICB9XG4gIHN3aXRjaCAocHJvdG9jb2wpIHtcbiAgICBjYXNlICdwb3N0Z3JlczonOlxuICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc1N0b3JhZ2VBZGFwdGVyKHtcbiAgICAgICAgdXJpOiBkYXRhYmFzZVVSSSxcbiAgICAgICAgY29sbGVjdGlvblByZWZpeCxcbiAgICAgICAgZGF0YWJhc2VPcHRpb25zLFxuICAgICAgfSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBuZXcgTW9uZ29TdG9yYWdlQWRhcHRlcih7XG4gICAgICAgIHVyaTogZGF0YWJhc2VVUkksXG4gICAgICAgIGNvbGxlY3Rpb25QcmVmaXgsXG4gICAgICAgIG1vbmdvT3B0aW9uczogZGF0YWJhc2VPcHRpb25zLFxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
312
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9pbmRleC5qcyJdLCJuYW1lcyI6WyJnZXRDb250cm9sbGVycyIsIm9wdGlvbnMiLCJsb2dnZXJDb250cm9sbGVyIiwiZ2V0TG9nZ2VyQ29udHJvbGxlciIsImZpbGVzQ29udHJvbGxlciIsImdldEZpbGVzQ29udHJvbGxlciIsInVzZXJDb250cm9sbGVyIiwiZ2V0VXNlckNvbnRyb2xsZXIiLCJwdXNoQ29udHJvbGxlciIsImhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0IiwiaGFzUHVzaFN1cHBvcnQiLCJwdXNoQ29udHJvbGxlclF1ZXVlIiwicHVzaFdvcmtlciIsImdldFB1c2hDb250cm9sbGVyIiwiY2FjaGVDb250cm9sbGVyIiwiZ2V0Q2FjaGVDb250cm9sbGVyIiwiYW5hbHl0aWNzQ29udHJvbGxlciIsImdldEFuYWx5dGljc0NvbnRyb2xsZXIiLCJsaXZlUXVlcnlDb250cm9sbGVyIiwiZ2V0TGl2ZVF1ZXJ5Q29udHJvbGxlciIsImRhdGFiYXNlQ29udHJvbGxlciIsImdldERhdGFiYXNlQ29udHJvbGxlciIsImhvb2tzQ29udHJvbGxlciIsImdldEhvb2tzQ29udHJvbGxlciIsImF1dGhEYXRhTWFuYWdlciIsImdldEF1dGhEYXRhTWFuYWdlciIsInBhcnNlR3JhcGhRTENvbnRyb2xsZXIiLCJnZXRQYXJzZUdyYXBoUUxDb250cm9sbGVyIiwic2NoZW1hQ2FjaGUiLCJTY2hlbWFDYWNoZSIsImFwcElkIiwianNvbkxvZ3MiLCJsb2dzRm9sZGVyIiwidmVyYm9zZSIsImxvZ0xldmVsIiwibWF4TG9nRmlsZXMiLCJzaWxlbnQiLCJsb2dnZXJBZGFwdGVyIiwibG9nZ2VyT3B0aW9ucyIsImxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyIiwiV2luc3RvbkxvZ2dlckFkYXB0ZXIiLCJMb2dnZXJDb250cm9sbGVyIiwiZGF0YWJhc2VVUkkiLCJmaWxlc0FkYXB0ZXIiLCJkYXRhYmFzZUFkYXB0ZXIiLCJwcmVzZXJ2ZUZpbGVOYW1lIiwiZmlsZUtleSIsImZpbGVzQ29udHJvbGxlckFkYXB0ZXIiLCJHcmlkRlNCdWNrZXRBZGFwdGVyIiwiRmlsZXNDb250cm9sbGVyIiwiZW1haWxBZGFwdGVyIiwidmVyaWZ5VXNlckVtYWlscyIsImVtYWlsQ29udHJvbGxlckFkYXB0ZXIiLCJVc2VyQ29udHJvbGxlciIsImNhY2hlQWRhcHRlciIsImNhY2hlVFRMIiwiY2FjaGVNYXhTaXplIiwiY2FjaGVDb250cm9sbGVyQWRhcHRlciIsIkluTWVtb3J5Q2FjaGVBZGFwdGVyIiwidHRsIiwibWF4U2l6ZSIsIkNhY2hlQ29udHJvbGxlciIsImNvbnRyb2xsZXJEZXBzIiwiUGFyc2VHcmFwaFFMQ29udHJvbGxlciIsIm1vdW50R3JhcGhRTCIsImFuYWx5dGljc0FkYXB0ZXIiLCJhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlciIsIkFuYWx5dGljc0FkYXB0ZXIiLCJBbmFseXRpY3NDb250cm9sbGVyIiwiTGl2ZVF1ZXJ5Q29udHJvbGxlciIsImxpdmVRdWVyeSIsImNvbGxlY3Rpb25QcmVmaXgiLCJkYXRhYmFzZU9wdGlvbnMiLCJkZWZhdWx0cyIsImdldERhdGFiYXNlQWRhcHRlciIsIkRhdGFiYXNlQ29udHJvbGxlciIsIndlYmhvb2tLZXkiLCJIb29rc0NvbnRyb2xsZXIiLCJzY2hlZHVsZWRQdXNoIiwicHVzaCIsInB1c2hPcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaFF1ZXVlT3B0aW9ucyIsInF1ZXVlT3B0aW9ucyIsInB1c2hBZGFwdGVyIiwiYWRhcHRlciIsIlBhcnNlUHVzaEFkYXB0ZXIiLCJQdXNoQ29udHJvbGxlciIsImRpc2FibGVQdXNoV29ya2VyIiwiUHVzaFF1ZXVlIiwiUHVzaFdvcmtlciIsImF1dGgiLCJlbmFibGVBbm9ueW1vdXNVc2VycyIsInByb3RvY29sIiwicGFyc2VkVVJJIiwidXJsIiwicGFyc2UiLCJ0b0xvd2VyQ2FzZSIsImUiLCJQb3N0Z3Jlc1N0b3JhZ2VBZGFwdGVyIiwidXJpIiwiTW9uZ29TdG9y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NEJBQUosQ0FBd0I7QUFDN0JELFFBQUFBLEdBQUcsRUFBRTNELFdBRHdCO0FBRTdCNkIsUUFBQUEsZ0JBRjZCO0FBRzdCZ0MsUUFBQUEsWUFBWSxFQUFFL0I7QUFIZSxPQUF4QixDQUFQO0FBVEo7QUFlRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhdXRoRGF0YU1hbmFnZXIgZnJvbSAnLi4vQWRhcHRlcnMvQXV0aCc7XG5pbXBvcnQgeyBQYXJzZVNlcnZlck9wdGlvbnMgfSBmcm9tICcuLi9PcHRpb25zJztcbmltcG9ydCB7IGxvYWRBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQWRhcHRlckxvYWRlcic7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuLy8gQ29udHJvbGxlcnNcbmltcG9ydCB7IExvZ2dlckNvbnRyb2xsZXIgfSBmcm9tICcuL0xvZ2dlckNvbnRyb2xsZXInO1xuaW1wb3J0IHsgRmlsZXNDb250cm9sbGVyIH0gZnJvbSAnLi9GaWxlc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgSG9va3NDb250cm9sbGVyIH0gZnJvbSAnLi9Ib29rc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgVXNlckNvbnRyb2xsZXIgfSBmcm9tICcuL1VzZXJDb250cm9sbGVyJztcbmltcG9ydCB7IENhY2hlQ29udHJvbGxlciB9IGZyb20gJy4vQ2FjaGVDb250cm9sbGVyJztcbmltcG9ydCB7IExpdmVRdWVyeUNvbnRyb2xsZXIgfSBmcm9tICcuL0xpdmVRdWVyeUNvbnRyb2xsZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzQ29udHJvbGxlciB9IGZyb20gJy4vQW5hbHl0aWNzQ29udHJvbGxlcic7XG5pbXBvcnQgeyBQdXNoQ29udHJvbGxlciB9IGZyb20gJy4vUHVzaENvbnRyb2xsZXInO1xuaW1wb3J0IHsgUHVzaFF1ZXVlIH0gZnJvbSAnLi4vUHVzaC9QdXNoUXVldWUnO1xuaW1wb3J0IHsgUHVzaFdvcmtlciB9IGZyb20gJy4uL1B1c2gvUHVzaFdvcmtlcic7XG5pbXBvcnQgRGF0YWJhc2VDb250cm9sbGVyIGZyb20gJy4vRGF0YWJhc2VDb250cm9sbGVyJztcblxuLy8gQWRhcHRlcnNcbmltcG9ydCB7IEdyaWRGU0J1Y2tldEFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9GaWxlcy9HcmlkRlNCdWNrZXRBZGFwdGVyJztcbmltcG9ydCB7IFdpbnN0b25Mb2dnZXJBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvTG9nZ2VyL1dpbnN0b25Mb2dnZXJBZGFwdGVyJztcbmltcG9ydCB7IEluTWVtb3J5Q2FjaGVBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQ2FjaGUvSW5NZW1vcnlDYWNoZUFkYXB0ZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL0FuYWx5dGljcy9BbmFseXRpY3NBZGFwdGVyJztcbmltcG9ydCBNb25nb1N0b3JhZ2VBZGFwdGVyIGZyb20gJy4uL0FkYXB0ZXJzL1N0b3JhZ2UvTW9uZ28vTW9uZ29TdG9yYWdlQWRhcHRlcic7XG5pbXBvcnQgUG9zdGdyZXNTdG9yYWdlQWRhcHRlciBmcm9tICcuLi9BZGFwdGVycy9TdG9yYWdlL1Bvc3RncmVzL1Bvc3RncmVzU3RvcmFnZUFkYXB0ZXInO1xuaW1wb3J0IFBhcnNlUHVzaEFkYXB0ZXIgZnJvbSAnQHBhcnNlL3B1c2gtYWRhcHRlcic7XG5pbXBvcnQgUGFyc2VHcmFwaFFMQ29udHJvbGxlciBmcm9tICcuL1BhcnNlR3JhcGhRTENvbnRyb2xsZXInO1xuaW1wb3J0IFNjaGVtYUNhY2hlIGZyb20gJy4uL0FkYXB0ZXJzL0NhY2hlL1NjaGVtYUNhY2hlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRyb2xsZXJzKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucykge1xuICBjb25zdCBsb2dnZXJDb250cm9sbGVyID0gZ2V0TG9nZ2VyQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgZmlsZXNDb250cm9sbGVyID0gZ2V0RmlsZXNDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCB1c2VyQ29udHJvbGxlciA9IGdldFVzZXJDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCB7XG4gICAgcHVzaENvbnRyb2xsZXIsXG4gICAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQsXG4gICAgaGFzUHVzaFN1cHBvcnQsXG4gICAgcHVzaENvbnRyb2xsZXJRdWV1ZSxcbiAgICBwdXNoV29ya2VyLFxuICB9ID0gZ2V0UHVzaENvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlciA9IGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgYW5hbHl0aWNzQ29udHJvbGxlciA9IGdldEFuYWx5dGljc0NvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGxpdmVRdWVyeUNvbnRyb2xsZXIgPSBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCBkYXRhYmFzZUNvbnRyb2xsZXIgPSBnZXREYXRhYmFzZUNvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGhvb2tzQ29udHJvbGxlciA9IGdldEhvb2tzQ29udHJvbGxlcihvcHRpb25zLCBkYXRhYmFzZUNvbnRyb2xsZXIpO1xuICBjb25zdCBhdXRoRGF0YU1hbmFnZXIgPSBnZXRBdXRoRGF0YU1hbmFnZXIob3B0aW9ucyk7XG4gIGNvbnN0IHBhcnNlR3JhcGhRTENvbnRyb2xsZXIgPSBnZXRQYXJzZUdyYXBoUUxDb250cm9sbGVyKG9wdGlvbnMsIHtcbiAgICBkYXRhYmFzZUNvbnRyb2xsZXIsXG4gICAgY2FjaGVDb250cm9sbGVyLFxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBsb2dnZXJDb250cm9sbGVyLFxuICAgIGZpbGVzQ29udHJvbGxlcixcbiAgICB1c2VyQ29udHJvbGxlcixcbiAgICBwdXNoQ29udHJvbGxlcixcbiAgICBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCxcbiAgICBoYXNQdXNoU3VwcG9ydCxcbiAgICBwdXNoV29ya2VyLFxuICAgIHB1c2hDb250cm9sbGVyUXVldWUsXG4gICAgYW5hbHl0aWNzQ29udHJvbGxlcixcbiAgICBjYWNoZUNvbnRyb2xsZXIsXG4gICAgcGFyc2VHcmFwaFFMQ29udHJvbGxlcixcbiAgICBsaXZlUXVlcnlDb250cm9sbGVyLFxuICAgIGRhdGFiYXNlQ29udHJvbGxlcixcbiAgICBob29rc0NvbnRyb2xsZXIsXG4gICAgYXV0aERhdGFNYW5hZ2VyLFxuICAgIHNjaGVtYUNhY2hlOiBTY2hlbWFDYWNoZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2dlckNvbnRyb2xsZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKTogTG9nZ2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHtcbiAgICBhcHBJZCxcbiAgICBqc29uTG9ncyxcbiAgICBsb2dzRm9sZGVyLFxuICAgIHZlcmJvc2UsXG4gICAgbG9nTGV2ZWwsXG4gICAgbWF4TG9nRmlsZXMsXG4gICAgc2lsZW50LFxuICAgIGxvZ2dlckFkYXB0ZXIsXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBsb2dnZXJPcHRpb25zID0ge1xuICAgIGpzb25Mb2dzLFxuICAgIGxvZ3NGb2xkZXIsXG4gICAgdmVyYm9zZSxcbiAgICBsb2dMZXZlbCxcbiAgICBzaWxlbnQsXG4gICAgbWF4TG9nRmlsZXMsXG4gIH07XG4gIGNvbnN0IGxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIobG9nZ2VyQWRhcHRlciwgV2luc3RvbkxvZ2dlckFkYXB0ZXIsIGxvZ2dlck9wdGlvbnMpO1xuICByZXR1cm4gbmV3IExvZ2dlckNvbnRyb2xsZXIobG9nZ2VyQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCBsb2dnZXJPcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVzQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBGaWxlc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBkYXRhYmFzZVVSSSwgZmlsZXNBZGFwdGVyLCBkYXRhYmFzZUFkYXB0ZXIsIHByZXNlcnZlRmlsZU5hbWUsIGZpbGVLZXkgfSA9IG9wdGlvbnM7XG4gIGlmICghZmlsZXNBZGFwdGVyICYmIGRhdGFiYXNlQWRhcHRlcikge1xuICAgIHRocm93ICdXaGVuIHVzaW5nIGFuIGV4cGxpY2l0IGRhdGFiYXNlIGFkYXB0ZXIsIHlvdSBtdXN0IGFsc28gdXNlIGFuIGV4cGxpY2l0IGZpbGVzQWRhcHRlci4nO1xuICB9XG4gIGNvbnN0IGZpbGVzQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihmaWxlc0FkYXB0ZXIsICgpID0+IHtcbiAgICByZXR1cm4gbmV3IEdyaWRGU0J1Y2tldEFkYXB0ZXIoZGF0YWJhc2VVUkksIHt9LCBmaWxlS2V5KTtcbiAgfSk7XG4gIHJldHVybiBuZXcgRmlsZXNDb250cm9sbGVyKGZpbGVzQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCB7XG4gICAgcHJlc2VydmVGaWxlTmFtZSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VyQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBVc2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgYXBwSWQsIGVtYWlsQWRhcHRlciwgdmVyaWZ5VXNlckVtYWlscyB9ID0gb3B0aW9ucztcbiAgY29uc3QgZW1haWxDb250cm9sbGVyQWRhcHRlciA9IGxvYWRBZGFwdGVyKGVtYWlsQWRhcHRlcik7XG4gIHJldHVybiBuZXcgVXNlckNvbnRyb2xsZXIoZW1haWxDb250cm9sbGVyQWRhcHRlciwgYXBwSWQsIHtcbiAgICB2ZXJpZnlVc2VyRW1haWxzLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBDYWNoZUNvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBjYWNoZUFkYXB0ZXIsIGNhY2hlVFRMLCBjYWNoZU1heFNpemUgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihjYWNoZUFkYXB0ZXIsIEluTWVtb3J5Q2FjaGVBZGFwdGVyLCB7XG4gICAgYXBwSWQ6IGFwcElkLFxuICAgIHR0bDogY2FjaGVUVEwsXG4gICAgbWF4U2l6ZTogY2FjaGVNYXhTaXplLFxuICB9KTtcbiAgcmV0dXJuIG5ldyBDYWNoZUNvbnRyb2xsZXIoY2FjaGVDb250cm9sbGVyQWRhcHRlciwgYXBwSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyc2VHcmFwaFFMQ29udHJvbGxlcihcbiAgb3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zLFxuICBjb250cm9sbGVyRGVwc1xuKTogUGFyc2VHcmFwaFFMQ29udHJvbGxlciB7XG4gIHJldHVybiBuZXcgUGFyc2VHcmFwaFFMQ29udHJvbGxlcih7XG4gICAgbW91bnRHcmFwaFFMOiBvcHRpb25zLm1vdW50R3JhcGhRTCxcbiAgICAuLi5jb250cm9sbGVyRGVwcyxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmFseXRpY3NDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IEFuYWx5dGljc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFuYWx5dGljc0FkYXB0ZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGFuYWx5dGljc0NvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIoYW5hbHl0aWNzQWRhcHRlciwgQW5hbHl0aWNzQWRhcHRlcik7XG4gIHJldHVybiBuZXcgQW5hbHl0aWNzQ29udHJvbGxlcihhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IExpdmVRdWVyeUNvbnRyb2xsZXIge1xuICByZXR1cm4gbmV3IExpdmVRdWVyeUNvbnRyb2xsZXIob3B0aW9ucy5saXZlUXVlcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YWJhc2VDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IERhdGFiYXNlQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgZGF0YWJhc2VVUkksIGNvbGxlY3Rpb25QcmVmaXgsIGRhdGFiYXNlT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgbGV0IHsgZGF0YWJhc2VBZGFwdGVyIH0gPSBvcHRpb25zO1xuICBpZiAoXG4gICAgKGRhdGFiYXNlT3B0aW9ucyB8fFxuICAgICAgKGRhdGFiYXNlVVJJICYmIGRhdGFiYXNlVVJJICE9PSBkZWZhdWx0cy5kYXRhYmFzZVVSSSkgfHxcbiAgICAgIGNvbGxlY3Rpb25QcmVmaXggIT09IGRlZmF1bHRzLmNvbGxlY3Rpb25QcmVmaXgpICYmXG4gICAgZGF0YWJhc2VBZGFwdGVyXG4gICkge1xuICAgIHRocm93ICdZb3UgY2Fubm90IHNwZWNpZnkgYm90aCBhIGRhdGFiYXNlQWRhcHRlciBhbmQgYSBkYXRhYmFzZVVSSS9kYXRhYmFzZU9wdGlvbnMvY29sbGVjdGlvblByZWZpeC4nO1xuICB9IGVsc2UgaWYgKCFkYXRhYmFzZUFkYXB0ZXIpIHtcbiAgICBkYXRhYmFzZUFkYXB0ZXIgPSBnZXREYXRhYmFzZUFkYXB0ZXIoZGF0YWJhc2VVUkksIGNvbGxlY3Rpb25QcmVmaXgsIGRhdGFiYXNlT3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgZGF0YWJhc2VBZGFwdGVyID0gbG9hZEFkYXB0ZXIoZGF0YWJhc2VBZGFwdGVyKTtcbiAgfVxuICByZXR1cm4gbmV3IERhdGFiYXNlQ29udHJvbGxlcihkYXRhYmFzZUFkYXB0ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9va3NDb250cm9sbGVyKFxuICBvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMsXG4gIGRhdGFiYXNlQ29udHJvbGxlcjogRGF0YWJhc2VDb250cm9sbGVyXG4pOiBIb29rc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCB3ZWJob29rS2V5IH0gPSBvcHRpb25zO1xuICByZXR1cm4gbmV3IEhvb2tzQ29udHJvbGxlcihhcHBJZCwgZGF0YWJhc2VDb250cm9sbGVyLCB3ZWJob29rS2V5KTtcbn1cblxuaW50ZXJmYWNlIFB1c2hDb250cm9sbGluZyB7XG4gIHB1c2hDb250cm9sbGVyOiBQdXNoQ29udHJvbGxlcjtcbiAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQ6IGJvb2xlYW47XG4gIHB1c2hDb250cm9sbGVyUXVldWU6IFB1c2hRdWV1ZTtcbiAgcHVzaFdvcmtlcjogUHVzaFdvcmtlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFB1c2hDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IFB1c2hDb250cm9sbGluZyB7XG4gIGNvbnN0IHsgc2NoZWR1bGVkUHVzaCwgcHVzaCB9ID0gb3B0aW9ucztcblxuICBjb25zdCBwdXNoT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHB1c2gpO1xuICBjb25zdCBwdXNoUXVldWVPcHRpb25zID0gcHVzaE9wdGlvbnMucXVldWVPcHRpb25zIHx8IHt9O1xuICBpZiAocHVzaE9wdGlvbnMucXVldWVPcHRpb25zKSB7XG4gICAgZGVsZXRlIHB1c2hPcHRpb25zLnF1ZXVlT3B0aW9ucztcbiAgfVxuXG4gIC8vIFBhc3MgdGhlIHB1c2ggb3B0aW9ucyB0b28gYXMgaXQgd29ya3Mgd2l0aCB0aGUgZGVmYXVsdFxuICBjb25zdCBwdXNoQWRhcHRlciA9IGxvYWRBZGFwdGVyKFxuICAgIHB1c2hPcHRpb25zICYmIHB1c2hPcHRpb25zLmFkYXB0ZXIsXG4gICAgUGFyc2VQdXNoQWRhcHRlcixcbiAgICBwdXNoT3B0aW9uc1xuICApO1xuICAvLyBXZSBwYXNzIHRoZSBvcHRpb25zIGFuZCB0aGUgYmFzZSBjbGFzcyBmb3IgdGhlIGFkYXRwZXIsXG4gIC8vIE5vdGUgdGhhdCBwYXNzaW5nIGFuIGluc3RhbmNlIHdvdWxkIHdvcmsgdG9vXG4gIGNvbnN0IHB1c2hDb250cm9sbGVyID0gbmV3IFB1c2hDb250cm9sbGVyKCk7XG4gIGNvbnN0IGhhc1B1c2hTdXBwb3J0ID0gISEocHVzaEFkYXB0ZXIgJiYgcHVzaCk7XG4gIGNvbnN0IGhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0ID0gaGFzUHVzaFN1cHBvcnQgJiYgc2NoZWR1bGVkUHVzaCA9PT0gdHJ1ZTtcblxuICBjb25zdCB7IGRpc2FibGVQdXNoV29ya2VyIH0gPSBwdXNoUXVldWVPcHRpb25zO1xuXG4gIGNvbnN0IHB1c2hDb250cm9sbGVyUXVldWUgPSBuZXcgUHVzaFF1ZXVlKHB1c2hRdWV1ZU9wdGlvbnMpO1xuICBsZXQgcHVzaFdvcmtlcjtcbiAgaWYgKCFkaXNhYmxlUHVzaFdvcmtlcikge1xuICAgIHB1c2hXb3JrZXIgPSBuZXcgUHVzaFdvcmtlcihwdXNoQWRhcHRlciwgcHVzaFF1ZXVlT3B0aW9ucyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwdXNoQ29udHJvbGxlcixcbiAgICBoYXNQdXNoU3VwcG9ydCxcbiAgICBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCxcbiAgICBwdXNoQ29udHJvbGxlclF1ZXVlLFxuICAgIHB1c2hXb3JrZXIsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdXRoRGF0YU1hbmFnZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKSB7XG4gIGNvbnN0IHsgYXV0aCwgZW5hYmxlQW5vbnltb3VzVXNlcnMgfSA9IG9wdGlvbnM7XG4gIHJldHVybiBhdXRoRGF0YU1hbmFnZXIoYXV0aCwgZW5hYmxlQW5vbnltb3VzVXNlcnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YWJhc2VBZGFwdGVyKGRhdGFiYXNlVVJJLCBjb2xsZWN0aW9uUHJlZml4LCBkYXRhYmFzZU9wdGlvbnMpIHtcbiAgbGV0IHByb3RvY29sO1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZFVSSSA9IHVybC5wYXJzZShkYXRhYmFzZVVSSSk7XG4gICAgcHJvdG9jb2wgPSBwYXJzZWRVUkkucHJvdG9jb2wgPyBwYXJzZWRVUkkucHJvdG9jb2wudG9Mb3dlckNhc2UoKSA6IG51bGw7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvKiAqL1xuICB9XG4gIHN3aXRjaCAocHJvdG9jb2wpIHtcbiAgICBjYXNlICdwb3N0Z3JlczonOlxuICAgIGNhc2UgJ3Bvc3RncmVzcWw6JzpcbiAgICAgIHJldHVybiBuZXcgUG9zdGdyZXNTdG9yYWdlQWRhcHRlcih7XG4gICAgICAgIHVyaTogZGF0YWJhc2VVUkksXG4gICAgICAgIGNvbGxlY3Rpb25QcmVmaXgsXG4gICAgICAgIGRhdGFiYXNlT3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbmV3IE1vbmdvU3RvcmFnZUFkYXB0ZXIoe1xuICAgICAgICB1cmk6IGRhdGFiYXNlVVJJLFxuICAgICAgICBjb2xsZWN0aW9uUHJlZml4LFxuICAgICAgICBtb25nb09wdGlvbnM6IGRhdGFiYXNlT3B0aW9ucyxcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
package/lib/Utils.js CHANGED
@@ -219,8 +219,147 @@ class Utils {
219
219
  }
220
220
  }
221
221
  }
222
+ /**
223
+ * Computes the relative date based on a string.
224
+ * @param {String} text The string to interpret the date from.
225
+ * @param {Date} now The date the string is comparing against.
226
+ * @returns {Object} The relative date object.
227
+ **/
228
+
229
+
230
+ static relativeTimeToDate(text, now = new Date()) {
231
+ text = text.toLowerCase();
232
+ let parts = text.split(' '); // Filter out whitespace
233
+
234
+ parts = parts.filter(part => part !== '');
235
+ const future = parts[0] === 'in';
236
+ const past = parts[parts.length - 1] === 'ago';
237
+
238
+ if (!future && !past && text !== 'now') {
239
+ return {
240
+ status: 'error',
241
+ info: "Time should either start with 'in' or end with 'ago'"
242
+ };
243
+ }
244
+
245
+ if (future && past) {
246
+ return {
247
+ status: 'error',
248
+ info: "Time cannot have both 'in' and 'ago'"
249
+ };
250
+ } // strip the 'ago' or 'in'
251
+
252
+
253
+ if (future) {
254
+ parts = parts.slice(1);
255
+ } else {
256
+ // past
257
+ parts = parts.slice(0, parts.length - 1);
258
+ }
259
+
260
+ if (parts.length % 2 !== 0 && text !== 'now') {
261
+ return {
262
+ status: 'error',
263
+ info: 'Invalid time string. Dangling unit or number.'
264
+ };
265
+ }
266
+
267
+ const pairs = [];
268
+
269
+ while (parts.length) {
270
+ pairs.push([parts.shift(), parts.shift()]);
271
+ }
272
+
273
+ let seconds = 0;
274
+
275
+ for (const [num, interval] of pairs) {
276
+ const val = Number(num);
277
+
278
+ if (!Number.isInteger(val)) {
279
+ return {
280
+ status: 'error',
281
+ info: `'${num}' is not an integer.`
282
+ };
283
+ }
284
+
285
+ switch (interval) {
286
+ case 'yr':
287
+ case 'yrs':
288
+ case 'year':
289
+ case 'years':
290
+ seconds += val * 31536000; // 365 * 24 * 60 * 60
291
+
292
+ break;
293
+
294
+ case 'wk':
295
+ case 'wks':
296
+ case 'week':
297
+ case 'weeks':
298
+ seconds += val * 604800; // 7 * 24 * 60 * 60
299
+
300
+ break;
301
+
302
+ case 'd':
303
+ case 'day':
304
+ case 'days':
305
+ seconds += val * 86400; // 24 * 60 * 60
306
+
307
+ break;
308
+
309
+ case 'hr':
310
+ case 'hrs':
311
+ case 'hour':
312
+ case 'hours':
313
+ seconds += val * 3600; // 60 * 60
314
+
315
+ break;
316
+
317
+ case 'min':
318
+ case 'mins':
319
+ case 'minute':
320
+ case 'minutes':
321
+ seconds += val * 60;
322
+ break;
323
+
324
+ case 'sec':
325
+ case 'secs':
326
+ case 'second':
327
+ case 'seconds':
328
+ seconds += val;
329
+ break;
330
+
331
+ default:
332
+ return {
333
+ status: 'error',
334
+ info: `Invalid interval: '${interval}'`
335
+ };
336
+ }
337
+ }
338
+
339
+ const milliseconds = seconds * 1000;
340
+
341
+ if (future) {
342
+ return {
343
+ status: 'success',
344
+ info: 'future',
345
+ result: new Date(now.valueOf() + milliseconds)
346
+ };
347
+ } else if (past) {
348
+ return {
349
+ status: 'success',
350
+ info: 'past',
351
+ result: new Date(now.valueOf() - milliseconds)
352
+ };
353
+ } else {
354
+ return {
355
+ status: 'success',
356
+ info: 'present',
357
+ result: new Date(now.valueOf())
358
+ };
359
+ }
360
+ }
222
361
 
223
362
  }
224
363
 
225
364
  module.exports = Utils;
226
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9VdGlscy5qcyJdLCJuYW1lcyI6WyJwYXRoIiwicmVxdWlyZSIsImZzIiwicHJvbWlzZXMiLCJVdGlscyIsImdldExvY2FsaXplZFBhdGgiLCJkZWZhdWx0UGF0aCIsImxvY2FsZSIsImZpbGUiLCJiYXNlbmFtZSIsImJhc2VQYXRoIiwiZGlybmFtZSIsImxvY2FsZVBhdGgiLCJqb2luIiwibG9jYWxlRmlsZUV4aXN0cyIsImZpbGVFeGlzdHMiLCJzdWJkaXIiLCJsYW5ndWFnZSIsInNwbGl0IiwibGFuZ3VhZ2VQYXRoIiwibGFuZ3VhZ2VGaWxlRXhpc3RzIiwiYWNjZXNzIiwiZSIsImlzUGF0aCIsInMiLCJ0ZXN0IiwiZmxhdHRlbk9iamVjdCIsIm9iaiIsInBhcmVudEtleSIsImRlbGltaXRlciIsInJlc3VsdCIsImtleSIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIm5ld0tleSIsImlzUHJvbWlzZSIsIm9iamVjdCIsIlByb21pc2UiLCJnZXRPYmplY3RLZXlQZXJtdXRhdGlvbnMiLCJpbmRleCIsImN1cnJlbnQiLCJyZXN1bHRzIiwia2V5cyIsInZhbHVlcyIsInZhbHVlIiwibmV4dEluZGV4IiwibGVuZ3RoIiwiYXNzaWduIiwicHVzaCIsInZhbGlkYXRlUGFyYW1zIiwicGFyYW1zIiwidHlwZXMiLCJ0eXBlIiwiaXNPcHRpb25hbCIsIm8iLCJwYXJhbSIsInYiLCJ0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsTUFBTUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNQyxFQUFFLEdBQUdELE9BQU8sQ0FBQyxJQUFELENBQVAsQ0FBY0UsUUFBekI7QUFFQTtBQUNBO0FBQ0E7OztBQUNBLE1BQU1DLEtBQU4sQ0FBWTtBQUNWO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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Q0wsY0FBTWIsTUFBTSxHQUFHRSxNQUFNLENBQUNpQixNQUFQLENBQWMsRUFBZCxFQUFrQlAsT0FBbEIsQ0FBZjtBQUNBQyxRQUFBQSxPQUFPLENBQUNPLElBQVIsQ0FBYXBCLE1BQWI7QUFDRDtBQUNGOztBQUNELFdBQU9hLE9BQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDdUIsU0FBZFEsY0FBYyxDQUFDQyxNQUFELEVBQVNDLEtBQVQsRUFBZ0I7QUFDbkMsU0FBSyxNQUFNdEIsR0FBWCxJQUFrQkMsTUFBTSxDQUFDWSxJQUFQLENBQVlRLE1BQVosQ0FBbEIsRUFBdUM7QUFDckMsWUFBTUUsSUFBSSxHQUFHRCxLQUFLLENBQUN0QixHQUFELENBQWxCO0FBQ0EsWUFBTXdCLFVBQVUsR0FBRyxDQUFDLENBQUNELElBQUksQ0FBQ0UsQ0FBMUI7QUFDQSxZQUFNQyxLQUFLLEdBQUdMLE1BQU0sQ0FBQ3JCLEdBQUQsQ0FBcEI7O0FBQ0EsVUFBSSxFQUFFd0IsVUFBVSxJQUFJRSxLQUFLLElBQUksSUFBekIsS0FBa0MsQ0FBQ0gsSUFBSSxDQUFDSSxDQUFMLENBQU9ELEtBQVAsQ0FBdkMsRUFBc0Q7QUFDcEQsY0FBTyxxQkFBb0IxQixHQUFJLG9CQUFtQnVCLElBQUksQ0FBQ0ssQ0FBRSxXQUFVLE9BQU9GLEtBQU0sRUFBaEY7QUFDRDtBQUNGO0FBQ0Y7O0FBN0xTOztBQWdNWkcsTUFBTSxDQUFDQyxPQUFQLEdBQWlCekQsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHV0aWxzLmpzXG4gKiBAZmlsZSBHZW5lcmFsIHB1cnBvc2UgdXRpbGl0aWVzXG4gKiBAZGVzY3JpcHRpb24gR2VuZXJhbCBwdXJwb3NlIHV0aWxpdGllcy5cbiAqL1xuXG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuY29uc3QgZnMgPSByZXF1aXJlKCdmcycpLnByb21pc2VzO1xuXG4vKipcbiAqIFRoZSBnZW5lcmFsIHB1cnBvc2UgdXRpbGl0aWVzLlxuICovXG5jbGFzcyBVdGlscyB7XG4gIC8qKlxuICAgKiBAZnVuY3Rpb24gZ2V0TG9jYWxpemVkUGF0aFxuICAgKiBAZGVzY3JpcHRpb24gUmV0dXJucyBhIGxvY2FsaXplZCBmaWxlIHBhdGggYWNjb3JpbmcgdG8gdGhlIGxvY2FsZS5cbiAgICpcbiAgICogTG9jYWxpemVkIGZpbGVzIGFyZSBzZWFyY2hlZCBpbiBzdWJmb2xkZXJzIG9mIGEgZ2l2ZW4gcGF0aCwgZS5nLlxuICAgKlxuICAgKiByb290L1xuICAgKiDilJzilIDilIAgYmFzZS8gICAgICAgICAgICAgICAgICAgIC8vIGJhc2UgcGF0aCB0byBmaWxlc1xuICAgKiDilIIgICDilJzilIDilIAgZXhhbXBsZS5odG1sICAgICAgICAgLy8gZGVmYXVsdCBmaWxlXG4gICAqIOKUgiAgIOKUlOKUgOKUgCBkZS8gICAgICAgICAgICAgICAgICAvLyBkZSBsYW5ndWFnZSBmb2xkZXJcbiAgICog4pSCICAg4pSCICAg4pSU4pSA4pSAIGV4YW1wbGUuaHRtbCAgICAgLy8gZGUgbG9jYWxpemVkIGZpbGVcbiAgICog4pSCICAg4pSU4pSA4pSAIGRlLUFULyAgICAgICAgICAgICAgIC8vIGRlLUFUIGxvY2FsZSBmb2xkZXJcbiAgICog4pSCICAg4pSCICAg4pSU4pSA4pSAIGV4YW1wbGUuaHRtbCAgICAgLy8gZGUtQVQgbG9jYWxpemVkIGZpbGVcbiAgICpcbiAgICogRmlsZXMgYXJlIG1hdGNoZWQgd2l0aCB0aGUgbG9jYWxlIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6XG4gICAqIDEuIExvY2FsZSBtYXRjaCwgZS5nLiBsb2NhbGUgYGRlLUFUYCBtYXRjaGVzIGZpbGUgaW4gZm9sZGVyIGBkZS1BVGAuXG4gICAqIDIuIExhbmd1YWdlIG1hdGNoLCBlLmcuIGxvY2FsZSBgZGUtQVRgIG1hdGNoZXMgZmlsZSBpbiBmb2xkZXIgYGRlYC5cbiAgICogMy4gRGVmYXVsdDsgZmlsZSBpbiBiYXNlIGZvbGRlciBpcyByZXR1cm5lZC5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IGRlZmF1bHRQYXRoIFRoZSBhYnNvbHV0ZSBmaWxlIHBhdGgsIHdoaWNoIGlzIGFsc29cbiAgICogdGhlIGRlZmF1bHQgcGF0aCByZXR1cm5lZCBpZiBsb2NhbGl6YXRpb24gaXMgbm90IGF2YWlsYWJsZS5cbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZSBUaGUgbG9jYWxlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSBUaGUgb2JqZWN0IGNvbnRhaW5zOlxuICAgKiAtIGBwYXRoYDogVGhlIHBhdGggdG8gdGhlIGxvY2FsaXplZCBmaWxlLCBvciB0aGUgb3JpZ2luYWwgcGF0aCBpZlxuICAgKiAgIGxvY2FsaXphdGlvbiBpcyBub3QgYXZhaWxhYmxlLlxuICAgKiAtIGBzdWJkaXJgOiBUaGUgc3ViZGlyZWN0b3J5IG9mIHRoZSBsb2NhbGl6ZWQgZmlsZSwgb3IgdW5kZWZpbmVkIGlmXG4gICAqICAgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgbG9jYWxpemVkIGZpbGUuXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZ2V0TG9jYWxpemVkUGF0aChkZWZhdWx0UGF0aCwgbG9jYWxlKSB7XG4gICAgLy8gR2V0IGZpbGUgbmFtZSBhbmQgcGF0aHNcbiAgICBjb25zdCBmaWxlID0gcGF0aC5iYXNlbmFtZShkZWZhdWx0UGF0aCk7XG4gICAgY29uc3QgYmFzZVBhdGggPSBwYXRoLmRpcm5hbWUoZGVmYXVsdFBhdGgpO1xuXG4gICAgLy8gSWYgbG9jYWxlIGlzIG5vdCBzZXQgcmV0dXJuIGRlZmF1bHQgZmlsZVxuICAgIGlmICghbG9jYWxlKSB7XG4gICAgICByZXR1cm4geyBwYXRoOiBkZWZhdWx0UGF0aCB9O1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZpbGUgZm9yIGxvY2FsZSBleGlzdHNcbiAgICBjb25zdCBsb2NhbGVQYXRoID0gcGF0aC5qb2luKGJhc2VQYXRoLCBsb2NhbGUsIGZpbGUpO1xuICAgIGNvbnN0IGxvY2FsZUZpbGVFeGlzdHMgPSBhd2FpdCBVdGlscy5maWxlRXhpc3RzKGxvY2FsZVBhdGgpO1xuXG4gICAgLy8gSWYgZmlsZSBmb3IgbG9jYWxlIGV4aXN0cyByZXR1cm4gZmlsZVxuICAgIGlmIChsb2NhbGVGaWxlRXhpc3RzKSB7XG4gICAgICByZXR1cm4geyBwYXRoOiBsb2NhbGVQYXRoLCBzdWJkaXI6IGxvY2FsZSB9O1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZpbGUgZm9yIGxhbmd1YWdlIGV4aXN0c1xuICAgIGNvbnN0IGxhbmd1YWdlID0gbG9jYWxlLnNwbGl0KCctJylbMF07XG4gICAgY29uc3QgbGFuZ3VhZ2VQYXRoID0gcGF0aC5qb2luKGJhc2VQYXRoLCBsYW5ndWFnZSwgZmlsZSk7XG4gICAgY29uc3QgbGFuZ3VhZ2VGaWxlRXhpc3RzID0gYXdhaXQgVXRpbHMuZmlsZUV4aXN0cyhsYW5ndWFnZVBhdGgpO1xuXG4gICAgLy8gSWYgZmlsZSBmb3IgbGFuZ3VhZ2UgZXhpc3RzIHJldHVybiBmaWxlXG4gICAgaWYgKGxhbmd1YWdlRmlsZUV4aXN0cykge1xuICAgICAgcmV0dXJuIHsgcGF0aDogbGFuZ3VhZ2VQYXRoLCBzdWJkaXI6IGxhbmd1YWdlIH07XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIGRlZmF1bHQgZmlsZVxuICAgIHJldHVybiB7IHBhdGg6IGRlZmF1bHRQYXRoIH07XG4gIH1cblxuICAvKipcbiAgICogQGZ1bmN0aW9uIGZpbGVFeGlzdHNcbiAgICogQGRlc2NyaXB0aW9uIENoZWNrcyB3aGV0aGVyIGEgZmlsZSBleGlzdHMuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwYXRoIFRoZSBmaWxlIHBhdGguXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEJvb2xlYW4+fSBJcyB0cnVlIGlmIHRoZSBmaWxlIGNhbiBiZSBhY2Nlc3NlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGZpbGVFeGlzdHMocGF0aCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5hY2Nlc3MocGF0aCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBmdW5jdGlvbiBpc1BhdGhcbiAgICogQGRlc2NyaXB0aW9uIEV2YWx1YXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgZmlsZSBwYXRoIChhcyBvcHBvc2VkIHRvIGEgVVJMIGZvciBleGFtcGxlKS5cbiAgICogQHBhcmFtIHtTdHJpbmd9IHMgVGhlIHN0cmluZyB0byBldmFsdWF0ZS5cbiAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybnMgdHJ1ZSBpZiB0aGUgZXZhbHVhdGVkIHN0cmluZyBpcyBhIHBhdGguXG4gICAqL1xuICBzdGF0aWMgaXNQYXRoKHMpIHtcbiAgICByZXR1cm4gLyheXFwvKXwoXlxcLlxcLyl8KF5cXC5cXC5cXC8pLy50ZXN0KHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYXR0ZW5zIGFuIG9iamVjdCBhbmQgY3JhdGVzIG5ldyBrZXlzIHdpdGggY3VzdG9tIGRlbGltaXRlcnMuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvYmogVGhlIG9iamVjdCB0byBmbGF0dGVuLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gW2RlbGltaXRlcj0nLiddIFRoZSBkZWxpbWl0ZXIgb2YgdGhlIG5ld2x5IGdlbmVyYXRlZCBrZXlzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gcmVzdWx0XG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBmbGF0dGVuZWQgb2JqZWN0LlxuICAgKiovXG4gIHN0YXRpYyBmbGF0dGVuT2JqZWN0KG9iaiwgcGFyZW50S2V5LCBkZWxpbWl0ZXIgPSAnLicsIHJlc3VsdCA9IHt9KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICBjb25zdCBuZXdLZXkgPSBwYXJlbnRLZXkgPyBwYXJlbnRLZXkgKyBkZWxpbWl0ZXIgKyBrZXkgOiBrZXk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcgJiYgb2JqW2tleV0gIT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmZsYXR0ZW5PYmplY3Qob2JqW2tleV0sIG5ld0tleSwgZGVsaW1pdGVyLCByZXN1bHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdFtuZXdLZXldID0gb2JqW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW4gb2JqZWN0IGlzIGEgUHJvbWlzZS5cbiAgICogQHBhcmFtIHthbnl9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHZhbGlkYXRlLlxuICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gUmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBwcm9taXNlLlxuICAgKi9cbiAgc3RhdGljIGlzUHJvbWlzZShvYmplY3QpIHtcbiAgICByZXR1cm4gb2JqZWN0IGluc3RhbmNlb2YgUHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIG9iamVjdCB3aXRoIGFsbCBwZXJtdXRhdGlvbnMgb2YgdGhlIG9yaWdpbmFsIGtleXMuXG4gICAqIEZvciBleGFtcGxlLCB0aGlzIGRlZmluaXRpb246XG4gICAqIGBgYFxuICAgKiB7XG4gICAqICAgYTogW3RydWUsIGZhbHNlXSxcbiAgICogICBiOiBbMSwgMl0sXG4gICAqICAgYzogWyd4J11cbiAgICogfVxuICAgKiBgYGBcbiAgICogcGVybXV0YXRlcyB0bzpcbiAgICogYGBgXG4gICAqIFtcbiAgICogICB7IGE6IHRydWUsIGI6IDEsIGM6ICd4JyB9LFxuICAgKiAgIHsgYTogdHJ1ZSwgYjogMiwgYzogJ3gnIH0sXG4gICAqICAgeyBhOiBmYWxzZSwgYjogMSwgYzogJ3gnIH0sXG4gICAqICAgeyBhOiBmYWxzZSwgYjogMiwgYzogJ3gnIH1cbiAgICogXVxuICAgKiBgYGBcbiAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHBlcm11dGF0ZS5cbiAgICogQHBhcmFtIHtJbnRlZ2VyfSBbaW5kZXg9MF0gVGhlIGN1cnJlbnQga2V5IGluZGV4LlxuICAgKiBAcGFyYW0ge09iamVjdH0gW2N1cnJlbnQ9e31dIFRoZSBjdXJyZW50IHJlc3VsdCBlbnRyeSBiZWluZyBjb21wb3NlZC5cbiAgICogQHBhcmFtIHtBcnJheX0gW3Jlc3VsdHM9W11dIFRoZSByZXN1bHRpbmcgYXJyYXkgb2YgcGVybXV0YXRpb25zLlxuICAgKi9cbiAgc3RhdGljIGdldE9iamVjdEtleVBlcm11dGF0aW9ucyhvYmplY3QsIGluZGV4ID0gMCwgY3VycmVudCA9IHt9LCByZXN1bHRzID0gW10pIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgICBjb25zdCBrZXkgPSBrZXlzW2luZGV4XTtcbiAgICBjb25zdCB2YWx1ZXMgPSBvYmplY3Rba2V5XTtcblxuICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICBjdXJyZW50W2tleV0gPSB2YWx1ZTtcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4ICsgMTtcblxuICAgICAgaWYgKG5leHRJbmRleCA8IGtleXMubGVuZ3RoKSB7XG4gICAgICAgIFV0aWxzLmdldE9iamVjdEtleVBlcm11dGF0aW9ucyhvYmplY3QsIG5leHRJbmRleCwgY3VycmVudCwgcmVzdWx0cyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCBjdXJyZW50KTtcbiAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3VsdCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBwYXJhbWV0ZXJzIGFuZCB0aHJvd3MgaWYgYSBwYXJhbWV0ZXIgaXMgaW52YWxpZC5cbiAgICogRXhhbXBsZSBwYXJhbWV0ZXIgdHlwZXMgc3ludGF4OlxuICAgKiBgYGBcbiAgICoge1xuICAgKiAgIHBhcmFtZXRlck5hbWU6IHtcbiAgICogICAgICB0OiAnYm9vbGVhbicsXG4gICAqICAgICAgdjogaXNCb29sZWFuLFxuICAgKiAgICAgIG86IHRydWVcbiAgICogICB9LFxuICAgKiAgIC4uLlxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIFRoZSBwYXJhbWV0ZXJzIHRvIHZhbGlkYXRlLlxuICAgKiBAcGFyYW0ge0FycmF5PE9iamVjdD59IHR5cGVzIFRoZSBwYXJhbWV0ZXIgdHlwZXMgdXNlZCBmb3IgdmFsaWRhdGlvbi5cbiAgICogQHBhcmFtIHtPYmplY3R9IHR5cGVzLnQgVGhlIHBhcmFtZXRlciB0eXBlOyB1c2VkIGZvciBlcnJvciBtZXNzYWdlLCBub3QgZm9yIHZhbGlkYXRpb24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB0eXBlcy52IFRoZSBmdW5jdGlvbiB0byB2YWxpZGF0ZSB0aGUgcGFyYW1ldGVyIHZhbHVlLlxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IFt0eXBlcy5vPWZhbHNlXSBJcyB0cnVlIGlmIHRoZSBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuXG4gICAqL1xuICBzdGF0aWMgdmFsaWRhdGVQYXJhbXMocGFyYW1zLCB0eXBlcykge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHBhcmFtcykpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSB0eXBlc1trZXldO1xuICAgICAgY29uc3QgaXNPcHRpb25hbCA9ICEhdHlwZS5vO1xuICAgICAgY29uc3QgcGFyYW0gPSBwYXJhbXNba2V5XTtcbiAgICAgIGlmICghKGlzT3B0aW9uYWwgJiYgcGFyYW0gPT0gbnVsbCkgJiYgIXR5cGUudihwYXJhbSkpIHtcbiAgICAgICAgdGhyb3cgYEludmFsaWQgcGFyYW1ldGVyICR7a2V5fSBtdXN0IGJlIG9mIHR5cGUgJHt0eXBlLnR9IGJ1dCBpcyAke3R5cGVvZiBwYXJhbX1gO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFV0aWxzO1xuIl19
365
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9VdGlscy5qcyJdLCJuYW1lcyI6WyJwYXRoIiwicmVxdWlyZSIsImZzIiwicHJvbWlzZXMiLCJVdGlscyIsImdldExvY2FsaXplZFBhdGgiLCJkZWZhdWx0UGF0aCIsImxvY2FsZSIsImZpbGUiLCJiYXNlbmFtZSIsImJhc2VQYXRoIiwiZGlybmFtZSIsImxvY2FsZVBhdGgiLCJqb2luIiwibG9jYWxlRmlsZUV4aXN0cyIsImZpbGVFeGlzdHMiLCJzdWJkaXIiLCJsYW5ndWFnZSIsInNwbGl0IiwibGFuZ3VhZ2VQYXRoIiwibGFuZ3VhZ2VGaWxlRXhpc3RzIiwiYWNjZXNzIiwiZSIsImlzUGF0aCIsInMiLCJ0ZXN0IiwiZmxhdHRlbk9iamVjdCIsIm9iaiIsInBhcmVudEtleSIsImRlbGltaXRlciIsInJlc3VsdCIsImtleSIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIm5ld0tleSIsImlzUHJvbWlzZSIsIm9iamVjdCIsIlByb21pc2UiLCJnZXRPYmplY3RLZXlQZXJtdXRhdGlvbnMiLCJpbmRleCIsImN1cnJlbnQiLCJyZXN1bHRzIiwia2V5cyIsInZhbHVlcyIsInZhbHVlIiwibmV4dEluZGV4IiwibGVuZ3RoIiwiYXNzaWduIiwicHVzaCIsInZhbGlkYXRlUGFyYW1zIiwicGFyYW1zIiwidHlwZXMiLCJ0eXBlIiwiaXNPcHRpb25hbCIsIm8iLCJwYXJhbSIsInYiLCJ0IiwicmVsYXRpdmVUaW1lVG9EYXRlIiwidGV4dCIsIm5vdyIsIkRhdGUiLCJ0b0xvd2VyQ2FzZSIsInBhcnRzIiwiZmlsdGVyIiwicGFydCIsImZ1dHVyZSIsInBhc3QiLCJzdGF0dXMiLCJpbmZvIiwic2xpY2UiLCJwYWlycyIsInNoaWZ0Iiwic2Vjb25kcyIsIm51bSIsImludGVydmFsIiwidmFsIiwiTnVtYmVyIiwiaXNJbnRlZ2VyIiwibWlsbGlzZWNvbmRzIiwidmFsdWVPZiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGlu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ekMsUUFBQUEsTUFBTSxFQUFFLElBQUlpQyxJQUFKLENBQVNELEdBQUcsQ0FBQ29CLE9BQUosRUFBVDtBQUhILE9BQVA7QUFLRDtBQUNGOztBQWpVUzs7QUFvVVpDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmhGLEtBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB1dGlscy5qc1xuICogQGZpbGUgR2VuZXJhbCBwdXJwb3NlIHV0aWxpdGllc1xuICogQGRlc2NyaXB0aW9uIEdlbmVyYWwgcHVycG9zZSB1dGlsaXRpZXMuXG4gKi9cblxuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKS5wcm9taXNlcztcblxuLyoqXG4gKiBUaGUgZ2VuZXJhbCBwdXJwb3NlIHV0aWxpdGllcy5cbiAqL1xuY2xhc3MgVXRpbHMge1xuICAvKipcbiAgICogQGZ1bmN0aW9uIGdldExvY2FsaXplZFBhdGhcbiAgICogQGRlc2NyaXB0aW9uIFJldHVybnMgYSBsb2NhbGl6ZWQgZmlsZSBwYXRoIGFjY29yaW5nIHRvIHRoZSBsb2NhbGUuXG4gICAqXG4gICAqIExvY2FsaXplZCBmaWxlcyBhcmUgc2VhcmNoZWQgaW4gc3ViZm9sZGVycyBvZiBhIGdpdmVuIHBhdGgsIGUuZy5cbiAgICpcbiAgICogcm9vdC9cbiAgICog4pSc4pSA4pSAIGJhc2UvICAgICAgICAgICAgICAgICAgICAvLyBiYXNlIHBhdGggdG8gZmlsZXNcbiAgICog4pSCICAg4pSc4pSA4pSAIGV4YW1wbGUuaHRtbCAgICAgICAgIC8vIGRlZmF1bHQgZmlsZVxuICAgKiDilIIgICDilJTilIDilIAgZGUvICAgICAgICAgICAgICAgICAgLy8gZGUgbGFuZ3VhZ2UgZm9sZGVyXG4gICAqIOKUgiAgIOKUgiAgIOKUlOKUgOKUgCBleGFtcGxlLmh0bWwgICAgIC8vIGRlIGxvY2FsaXplZCBmaWxlXG4gICAqIOKUgiAgIOKUlOKUgOKUgCBkZS1BVC8gICAgICAgICAgICAgICAvLyBkZS1BVCBsb2NhbGUgZm9sZGVyXG4gICAqIOKUgiAgIOKUgiAgIOKUlOKUgOKUgCBleGFtcGxlLmh0bWwgICAgIC8vIGRlLUFUIGxvY2FsaXplZCBmaWxlXG4gICAqXG4gICAqIEZpbGVzIGFyZSBtYXRjaGVkIHdpdGggdGhlIGxvY2FsZSBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOlxuICAgKiAxLiBMb2NhbGUgbWF0Y2gsIGUuZy4gbG9jYWxlIGBkZS1BVGAgbWF0Y2hlcyBmaWxlIGluIGZvbGRlciBgZGUtQVRgLlxuICAgKiAyLiBMYW5ndWFnZSBtYXRjaCwgZS5nLiBsb2NhbGUgYGRlLUFUYCBtYXRjaGVzIGZpbGUgaW4gZm9sZGVyIGBkZWAuXG4gICAqIDMuIERlZmF1bHQ7IGZpbGUgaW4gYmFzZSBmb2xkZXIgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBkZWZhdWx0UGF0aCBUaGUgYWJzb2x1dGUgZmlsZSBwYXRoLCB3aGljaCBpcyBhbHNvXG4gICAqIHRoZSBkZWZhdWx0IHBhdGggcmV0dXJuZWQgaWYgbG9jYWxpemF0aW9uIGlzIG5vdCBhdmFpbGFibGUuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGUgVGhlIGxvY2FsZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gVGhlIG9iamVjdCBjb250YWluczpcbiAgICogLSBgcGF0aGA6IFRoZSBwYXRoIHRvIHRoZSBsb2NhbGl6ZWQgZmlsZSwgb3IgdGhlIG9yaWdpbmFsIHBhdGggaWZcbiAgICogICBsb2NhbGl6YXRpb24gaXMgbm90IGF2YWlsYWJsZS5cbiAgICogLSBgc3ViZGlyYDogVGhlIHN1YmRpcmVjdG9yeSBvZiB0aGUgbG9jYWxpemVkIGZpbGUsIG9yIHVuZGVmaW5lZCBpZlxuICAgKiAgIHRoZXJlIGlzIG5vIG1hdGNoaW5nIGxvY2FsaXplZCBmaWxlLlxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGdldExvY2FsaXplZFBhdGgoZGVmYXVsdFBhdGgsIGxvY2FsZSkge1xuICAgIC8vIEdldCBmaWxlIG5hbWUgYW5kIHBhdGhzXG4gICAgY29uc3QgZmlsZSA9IHBhdGguYmFzZW5hbWUoZGVmYXVsdFBhdGgpO1xuICAgIGNvbnN0IGJhc2VQYXRoID0gcGF0aC5kaXJuYW1lKGRlZmF1bHRQYXRoKTtcblxuICAgIC8vIElmIGxvY2FsZSBpcyBub3Qgc2V0IHJldHVybiBkZWZhdWx0IGZpbGVcbiAgICBpZiAoIWxvY2FsZSkge1xuICAgICAgcmV0dXJuIHsgcGF0aDogZGVmYXVsdFBhdGggfTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmaWxlIGZvciBsb2NhbGUgZXhpc3RzXG4gICAgY29uc3QgbG9jYWxlUGF0aCA9IHBhdGguam9pbihiYXNlUGF0aCwgbG9jYWxlLCBmaWxlKTtcbiAgICBjb25zdCBsb2NhbGVGaWxlRXhpc3RzID0gYXdhaXQgVXRpbHMuZmlsZUV4aXN0cyhsb2NhbGVQYXRoKTtcblxuICAgIC8vIElmIGZpbGUgZm9yIGxvY2FsZSBleGlzdHMgcmV0dXJuIGZpbGVcbiAgICBpZiAobG9jYWxlRmlsZUV4aXN0cykge1xuICAgICAgcmV0dXJuIHsgcGF0aDogbG9jYWxlUGF0aCwgc3ViZGlyOiBsb2NhbGUgfTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmaWxlIGZvciBsYW5ndWFnZSBleGlzdHNcbiAgICBjb25zdCBsYW5ndWFnZSA9IGxvY2FsZS5zcGxpdCgnLScpWzBdO1xuICAgIGNvbnN0IGxhbmd1YWdlUGF0aCA9IHBhdGguam9pbihiYXNlUGF0aCwgbGFuZ3VhZ2UsIGZpbGUpO1xuICAgIGNvbnN0IGxhbmd1YWdlRmlsZUV4aXN0cyA9IGF3YWl0IFV0aWxzLmZpbGVFeGlzdHMobGFuZ3VhZ2VQYXRoKTtcblxuICAgIC8vIElmIGZpbGUgZm9yIGxhbmd1YWdlIGV4aXN0cyByZXR1cm4gZmlsZVxuICAgIGlmIChsYW5ndWFnZUZpbGVFeGlzdHMpIHtcbiAgICAgIHJldHVybiB7IHBhdGg6IGxhbmd1YWdlUGF0aCwgc3ViZGlyOiBsYW5ndWFnZSB9O1xuICAgIH1cblxuICAgIC8vIFJldHVybiBkZWZhdWx0IGZpbGVcbiAgICByZXR1cm4geyBwYXRoOiBkZWZhdWx0UGF0aCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBmdW5jdGlvbiBmaWxlRXhpc3RzXG4gICAqIEBkZXNjcmlwdGlvbiBDaGVja3Mgd2hldGhlciBhIGZpbGUgZXhpc3RzLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gcGF0aCBUaGUgZmlsZSBwYXRoLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxCb29sZWFuPn0gSXMgdHJ1ZSBpZiB0aGUgZmlsZSBjYW4gYmUgYWNjZXNzZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIHN0YXRpYyBhc3luYyBmaWxlRXhpc3RzKHBhdGgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZnMuYWNjZXNzKHBhdGgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZnVuY3Rpb24gaXNQYXRoXG4gICAqIEBkZXNjcmlwdGlvbiBFdmFsdWF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIGZpbGUgcGF0aCAoYXMgb3Bwb3NlZCB0byBhIFVSTCBmb3IgZXhhbXBsZSkuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBzIFRoZSBzdHJpbmcgdG8gZXZhbHVhdGUuXG4gICAqIEByZXR1cm5zIHtCb29sZWFufSBSZXR1cm5zIHRydWUgaWYgdGhlIGV2YWx1YXRlZCBzdHJpbmcgaXMgYSBwYXRoLlxuICAgKi9cbiAgc3RhdGljIGlzUGF0aChzKSB7XG4gICAgcmV0dXJuIC8oXlxcLyl8KF5cXC5cXC8pfCheXFwuXFwuXFwvKS8udGVzdChzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGbGF0dGVucyBhbiBvYmplY3QgYW5kIGNyYXRlcyBuZXcga2V5cyB3aXRoIGN1c3RvbSBkZWxpbWl0ZXJzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqIFRoZSBvYmplY3QgdG8gZmxhdHRlbi5cbiAgICogQHBhcmFtIHtTdHJpbmd9IFtkZWxpbWl0ZXI9Jy4nXSBUaGUgZGVsaW1pdGVyIG9mIHRoZSBuZXdseSBnZW5lcmF0ZWQga2V5cy5cbiAgICogQHBhcmFtIHtPYmplY3R9IHJlc3VsdFxuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgZmxhdHRlbmVkIG9iamVjdC5cbiAgICoqL1xuICBzdGF0aWMgZmxhdHRlbk9iamVjdChvYmosIHBhcmVudEtleSwgZGVsaW1pdGVyID0gJy4nLCByZXN1bHQgPSB7fSkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgY29uc3QgbmV3S2V5ID0gcGFyZW50S2V5ID8gcGFyZW50S2V5ICsgZGVsaW1pdGVyICsga2V5IDoga2V5O1xuXG4gICAgICAgIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09ICdvYmplY3QnICYmIG9ialtrZXldICE9PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5mbGF0dGVuT2JqZWN0KG9ialtrZXldLCBuZXdLZXksIGRlbGltaXRlciwgcmVzdWx0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHRbbmV3S2V5XSA9IG9ialtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIG9iamVjdCBpcyBhIFByb21pc2UuXG4gICAqIEBwYXJhbSB7YW55fSBvYmplY3QgVGhlIG9iamVjdCB0byB2YWxpZGF0ZS5cbiAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybnMgdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgcHJvbWlzZS5cbiAgICovXG4gIHN0YXRpYyBpc1Byb21pc2Uob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdCBpbnN0YW5jZW9mIFByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBvYmplY3Qgd2l0aCBhbGwgcGVybXV0YXRpb25zIG9mIHRoZSBvcmlnaW5hbCBrZXlzLlxuICAgKiBGb3IgZXhhbXBsZSwgdGhpcyBkZWZpbml0aW9uOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiAgIGE6IFt0cnVlLCBmYWxzZV0sXG4gICAqICAgYjogWzEsIDJdLFxuICAgKiAgIGM6IFsneCddXG4gICAqIH1cbiAgICogYGBgXG4gICAqIHBlcm11dGF0ZXMgdG86XG4gICAqIGBgYFxuICAgKiBbXG4gICAqICAgeyBhOiB0cnVlLCBiOiAxLCBjOiAneCcgfSxcbiAgICogICB7IGE6IHRydWUsIGI6IDIsIGM6ICd4JyB9LFxuICAgKiAgIHsgYTogZmFsc2UsIGI6IDEsIGM6ICd4JyB9LFxuICAgKiAgIHsgYTogZmFsc2UsIGI6IDIsIGM6ICd4JyB9XG4gICAqIF1cbiAgICogYGBgXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBwZXJtdXRhdGUuXG4gICAqIEBwYXJhbSB7SW50ZWdlcn0gW2luZGV4PTBdIFRoZSBjdXJyZW50IGtleSBpbmRleC5cbiAgICogQHBhcmFtIHtPYmplY3R9IFtjdXJyZW50PXt9XSBUaGUgY3VycmVudCByZXN1bHQgZW50cnkgYmVpbmcgY29tcG9zZWQuXG4gICAqIEBwYXJhbSB7QXJyYXl9IFtyZXN1bHRzPVtdXSBUaGUgcmVzdWx0aW5nIGFycmF5IG9mIHBlcm11dGF0aW9ucy5cbiAgICovXG4gIHN0YXRpYyBnZXRPYmplY3RLZXlQZXJtdXRhdGlvbnMob2JqZWN0LCBpbmRleCA9IDAsIGN1cnJlbnQgPSB7fSwgcmVzdWx0cyA9IFtdKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gICAgY29uc3Qga2V5ID0ga2V5c1tpbmRleF07XG4gICAgY29uc3QgdmFsdWVzID0gb2JqZWN0W2tleV07XG5cbiAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgY3VycmVudFtrZXldID0gdmFsdWU7XG4gICAgICBjb25zdCBuZXh0SW5kZXggPSBpbmRleCArIDE7XG5cbiAgICAgIGlmIChuZXh0SW5kZXggPCBrZXlzLmxlbmd0aCkge1xuICAgICAgICBVdGlscy5nZXRPYmplY3RLZXlQZXJtdXRhdGlvbnMob2JqZWN0LCBuZXh0SW5kZXgsIGN1cnJlbnQsIHJlc3VsdHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbih7fSwgY3VycmVudCk7XG4gICAgICAgIHJlc3VsdHMucHVzaChyZXN1bHQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgcGFyYW1ldGVycyBhbmQgdGhyb3dzIGlmIGEgcGFyYW1ldGVyIGlzIGludmFsaWQuXG4gICAqIEV4YW1wbGUgcGFyYW1ldGVyIHR5cGVzIHN5bnRheDpcbiAgICogYGBgXG4gICAqIHtcbiAgICogICBwYXJhbWV0ZXJOYW1lOiB7XG4gICAqICAgICAgdDogJ2Jvb2xlYW4nLFxuICAgKiAgICAgIHY6IGlzQm9vbGVhbixcbiAgICogICAgICBvOiB0cnVlXG4gICAqICAgfSxcbiAgICogICAuLi5cbiAgICogfVxuICAgKiBgYGBcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyBUaGUgcGFyYW1ldGVycyB0byB2YWxpZGF0ZS5cbiAgICogQHBhcmFtIHtBcnJheTxPYmplY3Q+fSB0eXBlcyBUaGUgcGFyYW1ldGVyIHR5cGVzIHVzZWQgZm9yIHZhbGlkYXRpb24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB0eXBlcy50IFRoZSBwYXJhbWV0ZXIgdHlwZTsgdXNlZCBmb3IgZXJyb3IgbWVzc2FnZSwgbm90IGZvciB2YWxpZGF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gdHlwZXMudiBUaGUgZnVuY3Rpb24gdG8gdmFsaWRhdGUgdGhlIHBhcmFtZXRlciB2YWx1ZS5cbiAgICogQHBhcmFtIHtCb29sZWFufSBbdHlwZXMubz1mYWxzZV0gSXMgdHJ1ZSBpZiB0aGUgcGFyYW1ldGVyIGlzIG9wdGlvbmFsLlxuICAgKi9cbiAgc3RhdGljIHZhbGlkYXRlUGFyYW1zKHBhcmFtcywgdHlwZXMpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJhbXMpKSB7XG4gICAgICBjb25zdCB0eXBlID0gdHlwZXNba2V5XTtcbiAgICAgIGNvbnN0IGlzT3B0aW9uYWwgPSAhIXR5cGUubztcbiAgICAgIGNvbnN0IHBhcmFtID0gcGFyYW1zW2tleV07XG4gICAgICBpZiAoIShpc09wdGlvbmFsICYmIHBhcmFtID09IG51bGwpICYmICF0eXBlLnYocGFyYW0pKSB7XG4gICAgICAgIHRocm93IGBJbnZhbGlkIHBhcmFtZXRlciAke2tleX0gbXVzdCBiZSBvZiB0eXBlICR7dHlwZS50fSBidXQgaXMgJHt0eXBlb2YgcGFyYW19YDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZXMgdGhlIHJlbGF0aXZlIGRhdGUgYmFzZWQgb24gYSBzdHJpbmcuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0IFRoZSBzdHJpbmcgdG8gaW50ZXJwcmV0IHRoZSBkYXRlIGZyb20uXG4gICAqIEBwYXJhbSB7RGF0ZX0gbm93IFRoZSBkYXRlIHRoZSBzdHJpbmcgaXMgY29tcGFyaW5nIGFnYWluc3QuXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSByZWxhdGl2ZSBkYXRlIG9iamVjdC5cbiAgICoqL1xuICBzdGF0aWMgcmVsYXRpdmVUaW1lVG9EYXRlKHRleHQsIG5vdyA9IG5ldyBEYXRlKCkpIHtcbiAgICB0ZXh0ID0gdGV4dC50b0xvd2VyQ2FzZSgpO1xuICAgIGxldCBwYXJ0cyA9IHRleHQuc3BsaXQoJyAnKTtcblxuICAgIC8vIEZpbHRlciBvdXQgd2hpdGVzcGFjZVxuICAgIHBhcnRzID0gcGFydHMuZmlsdGVyKHBhcnQgPT4gcGFydCAhPT0gJycpO1xuXG4gICAgY29uc3QgZnV0dXJlID0gcGFydHNbMF0gPT09ICdpbic7XG4gICAgY29uc3QgcGFzdCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdID09PSAnYWdvJztcblxuICAgIGlmICghZnV0dXJlICYmICFwYXN0ICYmIHRleHQgIT09ICdub3cnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICAgIGluZm86IFwiVGltZSBzaG91bGQgZWl0aGVyIHN0YXJ0IHdpdGggJ2luJyBvciBlbmQgd2l0aCAnYWdvJ1wiLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoZnV0dXJlICYmIHBhc3QpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgaW5mbzogXCJUaW1lIGNhbm5vdCBoYXZlIGJvdGggJ2luJyBhbmQgJ2FnbydcIixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgdGhlICdhZ28nIG9yICdpbidcbiAgICBpZiAoZnV0dXJlKSB7XG4gICAgICBwYXJ0cyA9IHBhcnRzLnNsaWNlKDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBwYXN0XG4gICAgICBwYXJ0cyA9IHBhcnRzLnNsaWNlKDAsIHBhcnRzLmxlbmd0aCAtIDEpO1xuICAgIH1cblxuICAgIGlmIChwYXJ0cy5sZW5ndGggJSAyICE9PSAwICYmIHRleHQgIT09ICdub3cnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICAgIGluZm86ICdJbnZhbGlkIHRpbWUgc3RyaW5nLiBEYW5nbGluZyB1bml0IG9yIG51bWJlci4nLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBwYWlycyA9IFtdO1xuICAgIHdoaWxlIChwYXJ0cy5sZW5ndGgpIHtcbiAgICAgIHBhaXJzLnB1c2goW3BhcnRzLnNoaWZ0KCksIHBhcnRzLnNoaWZ0KCldKTtcbiAgICB9XG5cbiAgICBsZXQgc2Vjb25kcyA9IDA7XG4gICAgZm9yIChjb25zdCBbbnVtLCBpbnRlcnZhbF0gb2YgcGFpcnMpIHtcbiAgICAgIGNvbnN0IHZhbCA9IE51bWJlcihudW0pO1xuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHZhbCkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICAgICAgaW5mbzogYCcke251bX0nIGlzIG5vdCBhbiBpbnRlZ2VyLmAsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAoaW50ZXJ2YWwpIHtcbiAgICAgICAgY2FzZSAneXInOlxuICAgICAgICBjYXNlICd5cnMnOlxuICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgY2FzZSAneWVhcnMnOlxuICAgICAgICAgIHNlY29uZHMgKz0gdmFsICogMzE1MzYwMDA7IC8vIDM2NSAqIDI0ICogNjAgKiA2MFxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3drJzpcbiAgICAgICAgY2FzZSAnd2tzJzpcbiAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgIGNhc2UgJ3dlZWtzJzpcbiAgICAgICAgICBzZWNvbmRzICs9IHZhbCAqIDYwNDgwMDsgLy8gNyAqIDI0ICogNjAgKiA2MFxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICBjYXNlICdkYXlzJzpcbiAgICAgICAgICBzZWNvbmRzICs9IHZhbCAqIDg2NDAwOyAvLyAyNCAqIDYwICogNjBcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdocic6XG4gICAgICAgIGNhc2UgJ2hycyc6XG4gICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICBjYXNlICdob3Vycyc6XG4gICAgICAgICAgc2Vjb25kcyArPSB2YWwgKiAzNjAwOyAvLyA2MCAqIDYwXG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnbWluJzpcbiAgICAgICAgY2FzZSAnbWlucyc6XG4gICAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgIGNhc2UgJ21pbnV0ZXMnOlxuICAgICAgICAgIHNlY29uZHMgKz0gdmFsICogNjA7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnc2VjJzpcbiAgICAgICAgY2FzZSAnc2Vjcyc6XG4gICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgIGNhc2UgJ3NlY29uZHMnOlxuICAgICAgICAgIHNlY29uZHMgKz0gdmFsO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgICAgIGluZm86IGBJbnZhbGlkIGludGVydmFsOiAnJHtpbnRlcnZhbH0nYCxcbiAgICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG1pbGxpc2Vjb25kcyA9IHNlY29uZHMgKiAxMDAwO1xuICAgIGlmIChmdXR1cmUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxuICAgICAgICBpbmZvOiAnZnV0dXJlJyxcbiAgICAgICAgcmVzdWx0OiBuZXcgRGF0ZShub3cudmFsdWVPZigpICsgbWlsbGlzZWNvbmRzKSxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmIChwYXN0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgICAgaW5mbzogJ3Bhc3QnLFxuICAgICAgICByZXN1bHQ6IG5ldyBEYXRlKG5vdy52YWx1ZU9mKCkgLSBtaWxsaXNlY29uZHMpLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXG4gICAgICAgIGluZm86ICdwcmVzZW50JyxcbiAgICAgICAgcmVzdWx0OiBuZXcgRGF0ZShub3cudmFsdWVPZigpKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gVXRpbHM7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parse-server",
3
- "version": "5.0.0-alpha.11",
3
+ "version": "5.0.0-alpha.15",
4
4
  "description": "An express module providing a Parse-compatible API server",
5
5
  "main": "lib/index.js",
6
6
  "repository": {
@@ -27,12 +27,12 @@
27
27
  "@parse/push-adapter": "3.4.1",
28
28
  "apollo-server-express": "2.25.2",
29
29
  "bcryptjs": "2.4.3",
30
- "body-parser": "1.19.0",
30
+ "body-parser": "1.19.1",
31
31
  "commander": "5.1.0",
32
32
  "cors": "2.8.5",
33
33
  "deepcopy": "2.1.0",
34
34
  "express": "4.17.1",
35
- "follow-redirects": "1.14.5",
35
+ "follow-redirects": "1.14.6",
36
36
  "graphql": "15.7.0",
37
37
  "graphql-list-fields": "2.0.2",
38
38
  "graphql-relay": "0.7.0",
@@ -131,7 +131,7 @@
131
131
  "madge:circular": "node_modules/.bin/madge ./src --circular"
132
132
  },
133
133
  "engines": {
134
- "node": ">=12.20.0 <16"
134
+ "node": ">=12.20.0 <17"
135
135
  },
136
136
  "bin": {
137
137
  "parse-server": "bin/parse-server"