parse-server 7.0.0-alpha.8 → 7.0.0-beta.1

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 (121) hide show
  1. package/README.md +8 -11
  2. package/lib/AccountLockout.js +2 -3
  3. package/lib/Adapters/AdapterLoader.js +2 -3
  4. package/lib/Adapters/Analytics/AnalyticsAdapter.js +2 -3
  5. package/lib/Adapters/Auth/AuthAdapter.js +2 -3
  6. package/lib/Adapters/Auth/janraincapture.js +1 -2
  7. package/lib/Adapters/Auth/ldap.js +2 -2
  8. package/lib/Adapters/Auth/mfa.js +2 -3
  9. package/lib/Adapters/Cache/InMemoryCache.js +2 -3
  10. package/lib/Adapters/Cache/InMemoryCacheAdapter.js +2 -3
  11. package/lib/Adapters/Cache/LRUCache.js +2 -3
  12. package/lib/Adapters/Cache/NullCacheAdapter.js +2 -3
  13. package/lib/Adapters/Cache/RedisCacheAdapter.js +2 -3
  14. package/lib/Adapters/Cache/SchemaCache.js +2 -3
  15. package/lib/Adapters/Email/MailAdapter.js +2 -3
  16. package/lib/Adapters/Files/FilesAdapter.js +2 -3
  17. package/lib/Adapters/Files/GridFSBucketAdapter.js +2 -3
  18. package/lib/Adapters/Logger/LoggerAdapter.js +2 -3
  19. package/lib/Adapters/Logger/WinstonLogger.js +5 -7
  20. package/lib/Adapters/Logger/WinstonLoggerAdapter.js +2 -3
  21. package/lib/Adapters/MessageQueue/EventEmitterMQ.js +2 -3
  22. package/lib/Adapters/PubSub/EventEmitterPubSub.js +2 -3
  23. package/lib/Adapters/PubSub/PubSubAdapter.js +2 -3
  24. package/lib/Adapters/PubSub/RedisPubSub.js +6 -7
  25. package/lib/Adapters/Push/PushAdapter.js +2 -3
  26. package/lib/Adapters/Storage/Mongo/MongoCollection.js +19 -10
  27. package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +6 -7
  28. package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +16 -13
  29. package/lib/Adapters/Storage/Mongo/MongoTransform.js +5 -5
  30. package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +7 -12
  31. package/lib/Adapters/Storage/StorageAdapter.js +1 -1
  32. package/lib/Adapters/WebSocketServer/WSAdapter.js +2 -3
  33. package/lib/Adapters/WebSocketServer/WSSAdapter.js +2 -3
  34. package/lib/Auth.js +5 -12
  35. package/lib/Config.js +10 -4
  36. package/lib/Controllers/AdaptableController.js +2 -3
  37. package/lib/Controllers/AnalyticsController.js +2 -3
  38. package/lib/Controllers/CacheController.js +2 -3
  39. package/lib/Controllers/DatabaseController.js +15 -13
  40. package/lib/Controllers/FilesController.js +2 -3
  41. package/lib/Controllers/HooksController.js +4 -5
  42. package/lib/Controllers/LiveQueryController.js +2 -3
  43. package/lib/Controllers/LoggerController.js +5 -9
  44. package/lib/Controllers/ParseGraphQLController.js +9 -13
  45. package/lib/Controllers/PushController.js +2 -3
  46. package/lib/Controllers/SchemaController.js +9 -14
  47. package/lib/Controllers/UserController.js +6 -8
  48. package/lib/Controllers/index.js +5 -5
  49. package/lib/Deprecator/Deprecations.js +1 -7
  50. package/lib/GraphQL/ParseGraphQLSchema.js +3 -3
  51. package/lib/GraphQL/ParseGraphQLServer.js +61 -30
  52. package/lib/GraphQL/loaders/defaultGraphQLMutations.js +3 -3
  53. package/lib/GraphQL/loaders/defaultGraphQLQueries.js +3 -3
  54. package/lib/GraphQL/loaders/defaultGraphQLTypes.js +87 -153
  55. package/lib/GraphQL/loaders/defaultRelaySchema.js +8 -9
  56. package/lib/GraphQL/loaders/filesMutations.js +55 -17
  57. package/lib/GraphQL/loaders/functionsMutations.js +7 -7
  58. package/lib/GraphQL/loaders/parseClassMutations.js +9 -7
  59. package/lib/GraphQL/loaders/parseClassQueries.js +3 -3
  60. package/lib/GraphQL/loaders/parseClassTypes.js +7 -7
  61. package/lib/GraphQL/loaders/schemaDirectives.js +2 -3
  62. package/lib/GraphQL/loaders/schemaMutations.js +3 -3
  63. package/lib/GraphQL/loaders/schemaQueries.js +3 -3
  64. package/lib/GraphQL/loaders/schemaTypes.js +32 -63
  65. package/lib/GraphQL/loaders/usersMutations.js +9 -7
  66. package/lib/GraphQL/parseGraphQLUtils.js +6 -4
  67. package/lib/GraphQL/transformers/constraintType.js +3 -3
  68. package/lib/GraphQL/transformers/inputType.js +3 -3
  69. package/lib/GraphQL/transformers/mutation.js +19 -14
  70. package/lib/GraphQL/transformers/outputType.js +3 -3
  71. package/lib/GraphQL/transformers/query.js +5 -5
  72. package/lib/GraphQL/transformers/schemaFields.js +5 -5
  73. package/lib/LiveQuery/ParseLiveQueryServer.js +3 -12
  74. package/lib/LiveQuery/ParsePubSub.js +2 -3
  75. package/lib/LiveQuery/RequestSchema.js +2 -19
  76. package/lib/Options/Definitions.js +11 -11
  77. package/lib/Options/docs.js +7 -7
  78. package/lib/Options/index.js +1 -1
  79. package/lib/Page.js +2 -3
  80. package/lib/ParseMessageQueue.js +2 -3
  81. package/lib/ParseServer.js +23 -16
  82. package/lib/ParseServerRESTController.js +6 -7
  83. package/lib/Push/PushWorker.js +4 -5
  84. package/lib/RestQuery.js +2 -3
  85. package/lib/RestWrite.js +7 -8
  86. package/lib/Routers/AggregateRouter.js +8 -5
  87. package/lib/Routers/AudiencesRouter.js +4 -5
  88. package/lib/Routers/ClassesRouter.js +6 -4
  89. package/lib/Routers/FeaturesRouter.js +3 -3
  90. package/lib/Routers/FilesRouter.js +5 -5
  91. package/lib/Routers/FunctionsRouter.js +2 -2
  92. package/lib/Routers/GlobalConfigRouter.js +4 -5
  93. package/lib/Routers/GraphQLRouter.js +4 -5
  94. package/lib/Routers/HooksRouter.js +4 -5
  95. package/lib/Routers/InstallationsRouter.js +2 -3
  96. package/lib/Routers/LogsRouter.js +4 -5
  97. package/lib/Routers/PagesRouter.js +2 -3
  98. package/lib/Routers/PublicAPIRouter.js +2 -3
  99. package/lib/Routers/PurgeRouter.js +4 -5
  100. package/lib/Routers/PushRouter.js +4 -5
  101. package/lib/Routers/RolesRouter.js +2 -3
  102. package/lib/Routers/SchemasRouter.js +5 -5
  103. package/lib/Routers/SecurityRouter.js +4 -5
  104. package/lib/Routers/SessionsRouter.js +2 -3
  105. package/lib/Routers/UsersRouter.js +22 -15
  106. package/lib/SchemaMigrations/DefinedSchemas.js +7 -7
  107. package/lib/Security/Check.js +2 -3
  108. package/lib/Security/CheckRunner.js +3 -3
  109. package/lib/StatusHandler.js +5 -5
  110. package/lib/TestUtils.js +2 -2
  111. package/lib/cache.js +3 -5
  112. package/lib/cli/definitions/parse-live-query-server.js +2 -3
  113. package/lib/cli/definitions/parse-server.js +2 -3
  114. package/lib/cli/utils/commander.js +2 -3
  115. package/lib/cli/utils/runner.js +1 -2
  116. package/lib/cloud-code/Parse.Cloud.js +9 -135
  117. package/lib/defaults.js +3 -5
  118. package/lib/index.js +6 -9
  119. package/lib/middlewares.js +8 -5
  120. package/lib/triggers.js +16 -8
  121. package/package.json +32 -32
@@ -13,14 +13,14 @@ var _defaultGraphQLTypes = require("./defaultGraphQLTypes");
13
13
  var _usersQueries = require("./usersQueries");
14
14
  var _mutation = require("../transformers/mutation");
15
15
  var _node = _interopRequireDefault(require("parse/node"));
16
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21
21
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
22
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
23
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
22
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
23
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
24
24
  const usersRouter = new _UsersRouter.default();
25
25
  const load = parseGraphQLSchema => {
26
26
  if (parseGraphQLSchema.isUsersClassDisabled) {
@@ -54,6 +54,7 @@ const load = parseGraphQLSchema => {
54
54
  const parseFields = await (0, _mutation.transformTypes)('create', fields, {
55
55
  className: '_User',
56
56
  parseGraphQLSchema,
57
+ originalFields: args.fields,
57
58
  req: {
58
59
  config,
59
60
  auth,
@@ -123,6 +124,7 @@ const load = parseGraphQLSchema => {
123
124
  const parseFields = await (0, _mutation.transformTypes)('create', fields, {
124
125
  className: '_User',
125
126
  parseGraphQLSchema,
127
+ originalFields: args.fields,
126
128
  req: {
127
129
  config,
128
130
  auth,
@@ -431,4 +433,4 @@ const load = parseGraphQLSchema => {
431
433
  parseGraphQLSchema.addGraphQLMutation('challenge', challengeMutation, true, true);
432
434
  };
433
435
  exports.load = load;
434
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ3JhcGhxbCIsInJlcXVpcmUiLCJfZ3JhcGhxbFJlbGF5IiwiX2RlZXBjb3B5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9Vc2Vyc1JvdXRlciIsIm9iamVjdHNNdXRhdGlvbnMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9kZWZhdWx0R3JhcGhRTFR5cGVzIiwiX3VzZXJzUXVlcmllcyIsIl9tdXRhdGlvbiIsIl9ub2RlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm93bktleXMiLCJvYmplY3QiLCJlbnVtZXJhYmxlT25seSIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzeW1ib2xzIiwiZmlsdGVyIiwic3ltIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwidmFsdWUiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiYXJnIiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwidW5kZWZpbmVkIiwicmVzIiwiVHlwZUVycm9yIiwiTnVtYmVyIiwidXNlcnNSb3V0ZXIiLCJVc2Vyc1JvdXRlciIsImxvYWQiLCJwYXJzZUdyYXBoUUxTY2hlbWEiLCJpc1VzZXJzQ2xhc3NEaXNhYmxlZCIsInNpZ25VcE11dGF0aW9uIiwibXV0YXRpb25XaXRoQ2xpZW50TXV0YXRpb25JZCIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsImlucHV0RmllbGRzIiwiZmllbGRzIiwiZGVzY3JpcHRpb25zIiwidHlwZSIsInBhcnNlQ2xhc3NUeXBlcyIsImNsYXNzR3JhcGhRTENyZWF0ZVR5cGUiLCJvdXRwdXRGaWVsZHMiLCJ2aWV3ZXIiLCJHcmFwaFFMTm9uTnVsbCIsInZpZXdlclR5cGUiLCJtdXRhdGVBbmRHZXRQYXlsb2FkIiwiYXJncyIsImNvbnRleHQiLCJtdXRhdGlvbkluZm8iLCJkZWVwY29weSIsImNvbmZpZyIsImF1dGgiLCJpbmZvIiwicGFyc2VGaWVsZHMiLCJ0cmFuc2Zvcm1UeXBlcyIsImNsYXNzTmFtZSIsInJlcSIsInNlc3Npb25Ub2tlbiIsIm9iamVjdElkIiwiYXV0aERhdGFSZXNwb25zZSIsImNyZWF0ZU9iamVjdCIsImdldFVzZXJGcm9tU2Vzc2lvblRva2VuIiwidXNlciIsImUiLCJoYW5kbGVFcnJvciIsImFkZEdyYXBoUUxUeXBlIiwib2ZUeXBlIiwiYWRkR3JhcGhRTE11dGF0aW9uIiwibG9nSW5XaXRoTXV0YXRpb24iLCJhdXRoRGF0YSIsIk9CSkVDVCIsIkdyYXBoUUxJbnB1dE9iamVjdFR5cGUiLCJjbGFzc0dyYXBoUUxDcmVhdGVGaWVsZHMiLCJnZXRGaWVsZHMiLCJyZWR1Y2UiLCJmaWVsZE5hbWUiLCJsb2dJbk11dGF0aW9uIiwidXNlcm5hbWUiLCJHcmFwaFFMU3RyaW5nIiwicGFzc3dvcmQiLCJoYW5kbGVMb2dJbiIsImJvZHkiLCJxdWVyeSIsInJlc3BvbnNlIiwibG9nT3V0TXV0YXRpb24iLCJvayIsIkdyYXBoUUxCb29sZWFuIiwiX2FyZ3MiLCJoYW5kbGVMb2dPdXQiLCJyZXNldFBhc3N3b3JkTXV0YXRpb24iLCJlbWFpbCIsImhhbmRsZVJlc2V0UmVxdWVzdCIsImNvbmZpcm1SZXNldFBhc3N3b3JkTXV0YXRpb24iLCJ0b2tlbiIsIlBhcnNlIiwiRXJyb3IiLCJVU0VSTkFNRV9NSVNTSU5HIiwiUEFTU1dPUkRfTUlTU0lORyIsIk9USEVSX0NBVVNFIiwidXNlckNvbnRyb2xsZXIiLCJ1cGRhdGVQYXNzd29yZCIsInNlbmRWZXJpZmljYXRpb25FbWFpbE11dGF0aW9uIiwiaGFuZGxlVmVyaWZpY2F0aW9uRW1haWxSZXF1ZXN0IiwiY2hhbGxlbmdlTXV0YXRpb24iLCJjaGFsbGVuZ2VEYXRhIiwiaGFuZGxlQ2hhbGxlbmdlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9HcmFwaFFML2xvYWRlcnMvdXNlcnNNdXRhdGlvbnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JhcGhRTE5vbk51bGwsIEdyYXBoUUxTdHJpbmcsIEdyYXBoUUxCb29sZWFuLCBHcmFwaFFMSW5wdXRPYmplY3RUeXBlIH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgeyBtdXRhdGlvbldpdGhDbGllbnRNdXRhdGlvbklkIH0gZnJvbSAnZ3JhcGhxbC1yZWxheSc7XG5pbXBvcnQgZGVlcGNvcHkgZnJvbSAnZGVlcGNvcHknO1xuaW1wb3J0IFVzZXJzUm91dGVyIGZyb20gJy4uLy4uL1JvdXRlcnMvVXNlcnNSb3V0ZXInO1xuaW1wb3J0ICogYXMgb2JqZWN0c011dGF0aW9ucyBmcm9tICcuLi9oZWxwZXJzL29iamVjdHNNdXRhdGlvbnMnO1xuaW1wb3J0IHsgT0JKRUNUIH0gZnJvbSAnLi9kZWZhdWx0R3JhcGhRTFR5cGVzJztcbmltcG9ydCB7IGdldFVzZXJGcm9tU2Vzc2lvblRva2VuIH0gZnJvbSAnLi91c2Vyc1F1ZXJpZXMnO1xuaW1wb3J0IHsgdHJhbnNmb3JtVHlwZXMgfSBmcm9tICcuLi90cmFuc2Zvcm1lcnMvbXV0YXRpb24nO1xuaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuXG5jb25zdCB1c2Vyc1JvdXRlciA9IG5ldyBVc2Vyc1JvdXRlcigpO1xuXG5jb25zdCBsb2FkID0gcGFyc2VHcmFwaFFMU2NoZW1hID0+IHtcbiAgaWYgKHBhcnNlR3JhcGhRTFNjaGVtYS5pc1VzZXJzQ2xhc3NEaXNhYmxlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHNpZ25VcE11dGF0aW9uID0gbXV0YXRpb25XaXRoQ2xpZW50TXV0YXRpb25JZCh7XG4gICAgbmFtZTogJ1NpZ25VcCcsXG4gICAgZGVzY3JpcHRpb246ICdUaGUgc2lnblVwIG11dGF0aW9uIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhbmQgc2lnbiB1cCBhIG5ldyB1c2VyLicsXG4gICAgaW5wdXRGaWVsZHM6IHtcbiAgICAgIGZpZWxkczoge1xuICAgICAgICBkZXNjcmlwdGlvbnM6ICdUaGVzZSBhcmUgdGhlIGZpZWxkcyBvZiB0aGUgbmV3IHVzZXIgdG8gYmUgY3JlYXRlZCBhbmQgc2lnbmVkIHVwLicsXG4gICAgICAgIHR5cGU6IHBhcnNlR3JhcGhRTFNjaGVtYS5wYXJzZUNsYXNzVHlwZXNbJ19Vc2VyJ10uY2xhc3NHcmFwaFFMQ3JlYXRlVHlwZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvdXRwdXRGaWVsZHM6IHtcbiAgICAgIHZpZXdlcjoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgaXMgdGhlIG5ldyB1c2VyIHRoYXQgd2FzIGNyZWF0ZWQsIHNpZ25lZCB1cCBhbmQgcmV0dXJuZWQgYXMgYSB2aWV3ZXIuJyxcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKHBhcnNlR3JhcGhRTFNjaGVtYS52aWV3ZXJUeXBlKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBtdXRhdGVBbmRHZXRQYXlsb2FkOiBhc3luYyAoYXJncywgY29udGV4dCwgbXV0YXRpb25JbmZvKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGZpZWxkcyB9ID0gZGVlcGNvcHkoYXJncyk7XG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBhdXRoLCBpbmZvIH0gPSBjb250ZXh0O1xuXG4gICAgICAgIGNvbnN0IHBhcnNlRmllbGRzID0gYXdhaXQgdHJhbnNmb3JtVHlwZXMoJ2NyZWF0ZScsIGZpZWxkcywge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ19Vc2VyJyxcbiAgICAgICAgICBwYXJzZUdyYXBoUUxTY2hlbWEsXG4gICAgICAgICAgcmVxOiB7IGNvbmZpZywgYXV0aCwgaW5mbyB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB7IHNlc3Npb25Ub2tlbiwgb2JqZWN0SWQsIGF1dGhEYXRhUmVzcG9uc2UgfSA9IGF3YWl0IG9iamVjdHNNdXRhdGlvbnMuY3JlYXRlT2JqZWN0KFxuICAgICAgICAgICdfVXNlcicsXG4gICAgICAgICAgcGFyc2VGaWVsZHMsXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGF1dGgsXG4gICAgICAgICAgaW5mb1xuICAgICAgICApO1xuXG4gICAgICAgIGNvbnRleHQuaW5mby5zZXNzaW9uVG9rZW4gPSBzZXNzaW9uVG9rZW47XG4gICAgICAgIGNvbnN0IHZpZXdlciA9IGF3YWl0IGdldFVzZXJGcm9tU2Vzc2lvblRva2VuKFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgbXV0YXRpb25JbmZvLFxuICAgICAgICAgICd2aWV3ZXIudXNlci4nLFxuICAgICAgICAgIG9iamVjdElkXG4gICAgICAgICk7XG4gICAgICAgIGlmIChhdXRoRGF0YVJlc3BvbnNlICYmIHZpZXdlci51c2VyKSB2aWV3ZXIudXNlci5hdXRoRGF0YVJlc3BvbnNlID0gYXV0aERhdGFSZXNwb25zZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2aWV3ZXIsXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHBhcnNlR3JhcGhRTFNjaGVtYS5oYW5kbGVFcnJvcihlKTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTFR5cGUoc2lnblVwTXV0YXRpb24uYXJncy5pbnB1dC50eXBlLm9mVHlwZSwgdHJ1ZSwgdHJ1ZSk7XG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMVHlwZShzaWduVXBNdXRhdGlvbi50eXBlLCB0cnVlLCB0cnVlKTtcbiAgcGFyc2VHcmFwaFFMU2NoZW1hLmFkZEdyYXBoUUxNdXRhdGlvbignc2lnblVwJywgc2lnblVwTXV0YXRpb24sIHRydWUsIHRydWUpO1xuICBjb25zdCBsb2dJbldpdGhNdXRhdGlvbiA9IG11dGF0aW9uV2l0aENsaWVudE11dGF0aW9uSWQoe1xuICAgIG5hbWU6ICdMb2dJbldpdGgnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBsb2dJbldpdGggbXV0YXRpb24gY2FuIGJlIHVzZWQgdG8gc2lnbnVwLCBsb2dpbiB1c2VyIHdpdGggM3JkIHBhcnR5IGF1dGhlbnRpY2F0aW9uIHN5c3RlbS4gVGhpcyBtdXRhdGlvbiBjcmVhdGUgYSB1c2VyIGlmIHRoZSBhdXRoRGF0YSBkbyBub3QgY29ycmVzcG9uZCB0byBhbiBleGlzdGluZyBvbmUuJyxcbiAgICBpbnB1dEZpZWxkczoge1xuICAgICAgYXV0aERhdGE6IHtcbiAgICAgICAgZGVzY3JpcHRpb25zOiAnVGhpcyBpcyB0aGUgYXV0aCBkYXRhIG9mIHlvdXIgY3VzdG9tIGF1dGggcHJvdmlkZXInLFxuICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoT0JKRUNUKSxcbiAgICAgIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgZGVzY3JpcHRpb25zOiAnVGhlc2UgYXJlIHRoZSBmaWVsZHMgb2YgdGhlIHVzZXIgdG8gYmUgY3JlYXRlZC91cGRhdGVkIGFuZCBsb2dnZWQgaW4uJyxcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxJbnB1dE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6ICdVc2VyTG9naW5XaXRoSW5wdXQnLFxuICAgICAgICAgIGZpZWxkczogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2xhc3NHcmFwaFFMQ3JlYXRlRmllbGRzID0gcGFyc2VHcmFwaFFMU2NoZW1hLnBhcnNlQ2xhc3NUeXBlc1tcbiAgICAgICAgICAgICAgJ19Vc2VyJ1xuICAgICAgICAgICAgXS5jbGFzc0dyYXBoUUxDcmVhdGVUeXBlLmdldEZpZWxkcygpO1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGNsYXNzR3JhcGhRTENyZWF0ZUZpZWxkcykucmVkdWNlKChmaWVsZHMsIGZpZWxkTmFtZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZmllbGROYW1lICE9PSAncGFzc3dvcmQnICYmXG4gICAgICAgICAgICAgICAgZmllbGROYW1lICE9PSAndXNlcm5hbWUnICYmXG4gICAgICAgICAgICAgICAgZmllbGROYW1lICE9PSAnYXV0aERhdGEnXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGZpZWxkc1tmaWVsZE5hbWVdID0gY2xhc3NHcmFwaFFMQ3JlYXRlRmllbGRzW2ZpZWxkTmFtZV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkcztcbiAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvdXRwdXRGaWVsZHM6IHtcbiAgICAgIHZpZXdlcjoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgaXMgdGhlIG5ldyB1c2VyIHRoYXQgd2FzIGNyZWF0ZWQsIHNpZ25lZCB1cCBhbmQgcmV0dXJuZWQgYXMgYSB2aWV3ZXIuJyxcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKHBhcnNlR3JhcGhRTFNjaGVtYS52aWV3ZXJUeXBlKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBtdXRhdGVBbmRHZXRQYXlsb2FkOiBhc3luYyAoYXJncywgY29udGV4dCwgbXV0YXRpb25JbmZvKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGZpZWxkcywgYXV0aERhdGEgfSA9IGRlZXBjb3B5KGFyZ3MpO1xuICAgICAgICBjb25zdCB7IGNvbmZpZywgYXV0aCwgaW5mbyB9ID0gY29udGV4dDtcblxuICAgICAgICBjb25zdCBwYXJzZUZpZWxkcyA9IGF3YWl0IHRyYW5zZm9ybVR5cGVzKCdjcmVhdGUnLCBmaWVsZHMsIHtcbiAgICAgICAgICBjbGFzc05hbWU6ICdfVXNlcicsXG4gICAgICAgICAgcGFyc2VHcmFwaFFMU2NoZW1hLFxuICAgICAgICAgIHJlcTogeyBjb25maWcsIGF1dGgsIGluZm8gfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgeyBzZXNzaW9uVG9rZW4sIG9iamVjdElkLCBhdXRoRGF0YVJlc3BvbnNlIH0gPSBhd2FpdCBvYmplY3RzTXV0YXRpb25zLmNyZWF0ZU9iamVjdChcbiAgICAgICAgICAnX1VzZXInLFxuICAgICAgICAgIHsgLi4ucGFyc2VGaWVsZHMsIGF1dGhEYXRhIH0sXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGF1dGgsXG4gICAgICAgICAgaW5mb1xuICAgICAgICApO1xuXG4gICAgICAgIGNvbnRleHQuaW5mby5zZXNzaW9uVG9rZW4gPSBzZXNzaW9uVG9rZW47XG4gICAgICAgIGNvbnN0IHZpZXdlciA9IGF3YWl0IGdldFVzZXJGcm9tU2Vzc2lvblRva2VuKFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgbXV0YXRpb25JbmZvLFxuICAgICAgICAgICd2aWV3ZXIudXNlci4nLFxuICAgICAgICAgIG9iamVjdElkXG4gICAgICAgICk7XG4gICAgICAgIGlmIChhdXRoRGF0YVJlc3BvbnNlICYmIHZpZXdlci51c2VyKSB2aWV3ZXIudXNlci5hdXRoRGF0YVJlc3BvbnNlID0gYXV0aERhdGFSZXNwb25zZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2aWV3ZXIsXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHBhcnNlR3JhcGhRTFNjaGVtYS5oYW5kbGVFcnJvcihlKTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTFR5cGUobG9nSW5XaXRoTXV0YXRpb24uYXJncy5pbnB1dC50eXBlLm9mVHlwZSwgdHJ1ZSwgdHJ1ZSk7XG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMVHlwZShsb2dJbldpdGhNdXRhdGlvbi50eXBlLCB0cnVlLCB0cnVlKTtcbiAgcGFyc2VHcmFwaFFMU2NoZW1hLmFkZEdyYXBoUUxNdXRhdGlvbignbG9nSW5XaXRoJywgbG9nSW5XaXRoTXV0YXRpb24sIHRydWUsIHRydWUpO1xuXG4gIGNvbnN0IGxvZ0luTXV0YXRpb24gPSBtdXRhdGlvbldpdGhDbGllbnRNdXRhdGlvbklkKHtcbiAgICBuYW1lOiAnTG9nSW4nLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlIGxvZ0luIG11dGF0aW9uIGNhbiBiZSB1c2VkIHRvIGxvZyBpbiBhbiBleGlzdGluZyB1c2VyLicsXG4gICAgaW5wdXRGaWVsZHM6IHtcbiAgICAgIHVzZXJuYW1lOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgdXNlcm5hbWUgdXNlZCB0byBsb2cgaW4gdGhlIHVzZXIuJyxcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxTdHJpbmcpLFxuICAgICAgfSxcbiAgICAgIHBhc3N3b3JkOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgcGFzc3dvcmQgdXNlZCB0byBsb2cgaW4gdGhlIHVzZXIuJyxcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxTdHJpbmcpLFxuICAgICAgfSxcbiAgICAgIGF1dGhEYXRhOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQXV0aCBkYXRhIHBheWxvYWQsIG5lZWRlZCBpZiBzb21lIHJlcXVpcmVkIGF1dGggYWRhcHRlcnMgYXJlIGNvbmZpZ3VyZWQuJyxcbiAgICAgICAgdHlwZTogT0JKRUNULFxuICAgICAgfSxcbiAgICB9LFxuICAgIG91dHB1dEZpZWxkczoge1xuICAgICAgdmlld2VyOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgZXhpc3RpbmcgdXNlciB0aGF0IHdhcyBsb2dnZWQgaW4gYW5kIHJldHVybmVkIGFzIGEgdmlld2VyLicsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChwYXJzZUdyYXBoUUxTY2hlbWEudmlld2VyVHlwZSksXG4gICAgICB9LFxuICAgIH0sXG4gICAgbXV0YXRlQW5kR2V0UGF5bG9hZDogYXN5bmMgKGFyZ3MsIGNvbnRleHQsIG11dGF0aW9uSW5mbykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyB1c2VybmFtZSwgcGFzc3dvcmQsIGF1dGhEYXRhIH0gPSBkZWVwY29weShhcmdzKTtcbiAgICAgICAgY29uc3QgeyBjb25maWcsIGF1dGgsIGluZm8gfSA9IGNvbnRleHQ7XG5cbiAgICAgICAgY29uc3QgeyBzZXNzaW9uVG9rZW4sIG9iamVjdElkLCBhdXRoRGF0YVJlc3BvbnNlIH0gPSAoXG4gICAgICAgICAgYXdhaXQgdXNlcnNSb3V0ZXIuaGFuZGxlTG9nSW4oe1xuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICB1c2VybmFtZSxcbiAgICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICAgIGF1dGhEYXRhLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHF1ZXJ5OiB7fSxcbiAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgIGF1dGgsXG4gICAgICAgICAgICBpbmZvLFxuICAgICAgICAgIH0pXG4gICAgICAgICkucmVzcG9uc2U7XG5cbiAgICAgICAgY29udGV4dC5pbmZvLnNlc3Npb25Ub2tlbiA9IHNlc3Npb25Ub2tlbjtcblxuICAgICAgICBjb25zdCB2aWV3ZXIgPSBhd2FpdCBnZXRVc2VyRnJvbVNlc3Npb25Ub2tlbihcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIG11dGF0aW9uSW5mbyxcbiAgICAgICAgICAndmlld2VyLnVzZXIuJyxcbiAgICAgICAgICBvYmplY3RJZFxuICAgICAgICApO1xuICAgICAgICBpZiAoYXV0aERhdGFSZXNwb25zZSAmJiB2aWV3ZXIudXNlcikgdmlld2VyLnVzZXIuYXV0aERhdGFSZXNwb25zZSA9IGF1dGhEYXRhUmVzcG9uc2U7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmlld2VyLFxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBwYXJzZUdyYXBoUUxTY2hlbWEuaGFuZGxlRXJyb3IoZSk7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG5cbiAgcGFyc2VHcmFwaFFMU2NoZW1hLmFkZEdyYXBoUUxUeXBlKGxvZ0luTXV0YXRpb24uYXJncy5pbnB1dC50eXBlLm9mVHlwZSwgdHJ1ZSwgdHJ1ZSk7XG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMVHlwZShsb2dJbk11dGF0aW9uLnR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTE11dGF0aW9uKCdsb2dJbicsIGxvZ0luTXV0YXRpb24sIHRydWUsIHRydWUpO1xuXG4gIGNvbnN0IGxvZ091dE11dGF0aW9uID0gbXV0YXRpb25XaXRoQ2xpZW50TXV0YXRpb25JZCh7XG4gICAgbmFtZTogJ0xvZ091dCcsXG4gICAgZGVzY3JpcHRpb246ICdUaGUgbG9nT3V0IG11dGF0aW9uIGNhbiBiZSB1c2VkIHRvIGxvZyBvdXQgYW4gZXhpc3RpbmcgdXNlci4nLFxuICAgIG91dHB1dEZpZWxkczoge1xuICAgICAgb2s6IHtcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSXQncyBhbHdheXMgdHJ1ZS5cIixcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxCb29sZWFuKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBtdXRhdGVBbmRHZXRQYXlsb2FkOiBhc3luYyAoX2FyZ3MsIGNvbnRleHQpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBhdXRoLCBpbmZvIH0gPSBjb250ZXh0O1xuXG4gICAgICAgIGF3YWl0IHVzZXJzUm91dGVyLmhhbmRsZUxvZ091dCh7XG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGF1dGgsXG4gICAgICAgICAgaW5mbyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHsgb2s6IHRydWUgfTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcGFyc2VHcmFwaFFMU2NoZW1hLmhhbmRsZUVycm9yKGUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMVHlwZShsb2dPdXRNdXRhdGlvbi5hcmdzLmlucHV0LnR5cGUub2ZUeXBlLCB0cnVlLCB0cnVlKTtcbiAgcGFyc2VHcmFwaFFMU2NoZW1hLmFkZEdyYXBoUUxUeXBlKGxvZ091dE11dGF0aW9uLnR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTE11dGF0aW9uKCdsb2dPdXQnLCBsb2dPdXRNdXRhdGlvbiwgdHJ1ZSwgdHJ1ZSk7XG5cbiAgY29uc3QgcmVzZXRQYXNzd29yZE11dGF0aW9uID0gbXV0YXRpb25XaXRoQ2xpZW50TXV0YXRpb25JZCh7XG4gICAgbmFtZTogJ1Jlc2V0UGFzc3dvcmQnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSByZXNldFBhc3N3b3JkIG11dGF0aW9uIGNhbiBiZSB1c2VkIHRvIHJlc2V0IHRoZSBwYXNzd29yZCBvZiBhbiBleGlzdGluZyB1c2VyLicsXG4gICAgaW5wdXRGaWVsZHM6IHtcbiAgICAgIGVtYWlsOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uczogJ0VtYWlsIG9mIHRoZSB1c2VyIHRoYXQgc2hvdWxkIHJlY2VpdmUgdGhlIHJlc2V0IGVtYWlsJyxcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxTdHJpbmcpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG91dHB1dEZpZWxkczoge1xuICAgICAgb2s6IHtcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSXQncyBhbHdheXMgdHJ1ZS5cIixcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxCb29sZWFuKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBtdXRhdGVBbmRHZXRQYXlsb2FkOiBhc3luYyAoeyBlbWFpbCB9LCBjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IGNvbmZpZywgYXV0aCwgaW5mbyB9ID0gY29udGV4dDtcblxuICAgICAgYXdhaXQgdXNlcnNSb3V0ZXIuaGFuZGxlUmVzZXRSZXF1ZXN0KHtcbiAgICAgICAgYm9keToge1xuICAgICAgICAgIGVtYWlsLFxuICAgICAgICB9LFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGF1dGgsXG4gICAgICAgIGluZm8sXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHsgb2s6IHRydWUgfTtcbiAgICB9LFxuICB9KTtcblxuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTFR5cGUocmVzZXRQYXNzd29yZE11dGF0aW9uLmFyZ3MuaW5wdXQudHlwZS5vZlR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTFR5cGUocmVzZXRQYXNzd29yZE11dGF0aW9uLnR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTE11dGF0aW9uKCdyZXNldFBhc3N3b3JkJywgcmVzZXRQYXNzd29yZE11dGF0aW9uLCB0cnVlLCB0cnVlKTtcblxuICBjb25zdCBjb25maXJtUmVzZXRQYXNzd29yZE11dGF0aW9uID0gbXV0YXRpb25XaXRoQ2xpZW50TXV0YXRpb25JZCh7XG4gICAgbmFtZTogJ0NvbmZpcm1SZXNldFBhc3N3b3JkJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgY29uZmlybVJlc2V0UGFzc3dvcmQgbXV0YXRpb24gY2FuIGJlIHVzZWQgdG8gcmVzZXQgdGhlIHBhc3N3b3JkIG9mIGFuIGV4aXN0aW5nIHVzZXIuJyxcbiAgICBpbnB1dEZpZWxkczoge1xuICAgICAgdXNlcm5hbWU6IHtcbiAgICAgICAgZGVzY3JpcHRpb25zOiAnVXNlcm5hbWUgb2YgdGhlIHVzZXIgdGhhdCBoYXZlIHJlY2VpdmVkIHRoZSByZXNldCBlbWFpbCcsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChHcmFwaFFMU3RyaW5nKSxcbiAgICAgIH0sXG4gICAgICBwYXNzd29yZDoge1xuICAgICAgICBkZXNjcmlwdGlvbnM6ICdOZXcgcGFzc3dvcmQgb2YgdGhlIHVzZXInLFxuICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoR3JhcGhRTFN0cmluZyksXG4gICAgICB9LFxuICAgICAgdG9rZW46IHtcbiAgICAgICAgZGVzY3JpcHRpb25zOiAnUmVzZXQgdG9rZW4gdGhhdCB3YXMgZW1haWxlZCB0byB0aGUgdXNlcicsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChHcmFwaFFMU3RyaW5nKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvdXRwdXRGaWVsZHM6IHtcbiAgICAgIG9rOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkl0J3MgYWx3YXlzIHRydWUuXCIsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChHcmFwaFFMQm9vbGVhbiksXG4gICAgICB9LFxuICAgIH0sXG4gICAgbXV0YXRlQW5kR2V0UGF5bG9hZDogYXN5bmMgKHsgdXNlcm5hbWUsIHBhc3N3b3JkLCB0b2tlbiB9LCBjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IGNvbmZpZyB9ID0gY29udGV4dDtcbiAgICAgIGlmICghdXNlcm5hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLlVTRVJOQU1FX01JU1NJTkcsICd5b3UgbXVzdCBwcm92aWRlIGEgdXNlcm5hbWUnKTtcbiAgICAgIH1cbiAgICAgIGlmICghcGFzc3dvcmQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLlBBU1NXT1JEX01JU1NJTkcsICd5b3UgbXVzdCBwcm92aWRlIGEgcGFzc3dvcmQnKTtcbiAgICAgIH1cbiAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9USEVSX0NBVVNFLCAneW91IG11c3QgcHJvdmlkZSBhIHRva2VuJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVzZXJDb250cm9sbGVyID0gY29uZmlnLnVzZXJDb250cm9sbGVyO1xuICAgICAgYXdhaXQgdXNlckNvbnRyb2xsZXIudXBkYXRlUGFzc3dvcmQodXNlcm5hbWUsIHRva2VuLCBwYXNzd29yZCk7XG4gICAgICByZXR1cm4geyBvazogdHJ1ZSB9O1xuICAgIH0sXG4gIH0pO1xuXG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMVHlwZShcbiAgICBjb25maXJtUmVzZXRQYXNzd29yZE11dGF0aW9uLmFyZ3MuaW5wdXQudHlwZS5vZlR5cGUsXG4gICAgdHJ1ZSxcbiAgICB0cnVlXG4gICk7XG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMVHlwZShjb25maXJtUmVzZXRQYXNzd29yZE11dGF0aW9uLnR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTE11dGF0aW9uKFxuICAgICdjb25maXJtUmVzZXRQYXNzd29yZCcsXG4gICAgY29uZmlybVJlc2V0UGFzc3dvcmRNdXRhdGlvbixcbiAgICB0cnVlLFxuICAgIHRydWVcbiAgKTtcblxuICBjb25zdCBzZW5kVmVyaWZpY2F0aW9uRW1haWxNdXRhdGlvbiA9IG11dGF0aW9uV2l0aENsaWVudE11dGF0aW9uSWQoe1xuICAgIG5hbWU6ICdTZW5kVmVyaWZpY2F0aW9uRW1haWwnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBzZW5kVmVyaWZpY2F0aW9uRW1haWwgbXV0YXRpb24gY2FuIGJlIHVzZWQgdG8gc2VuZCB0aGUgdmVyaWZpY2F0aW9uIGVtYWlsIGFnYWluLicsXG4gICAgaW5wdXRGaWVsZHM6IHtcbiAgICAgIGVtYWlsOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uczogJ0VtYWlsIG9mIHRoZSB1c2VyIHRoYXQgc2hvdWxkIHJlY2VpdmUgdGhlIHZlcmlmaWNhdGlvbiBlbWFpbCcsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChHcmFwaFFMU3RyaW5nKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvdXRwdXRGaWVsZHM6IHtcbiAgICAgIG9rOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkl0J3MgYWx3YXlzIHRydWUuXCIsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChHcmFwaFFMQm9vbGVhbiksXG4gICAgICB9LFxuICAgIH0sXG4gICAgbXV0YXRlQW5kR2V0UGF5bG9hZDogYXN5bmMgKHsgZW1haWwgfSwgY29udGV4dCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBjb25maWcsIGF1dGgsIGluZm8gfSA9IGNvbnRleHQ7XG5cbiAgICAgICAgYXdhaXQgdXNlcnNSb3V0ZXIuaGFuZGxlVmVyaWZpY2F0aW9uRW1haWxSZXF1ZXN0KHtcbiAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICBlbWFpbCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBhdXRoLFxuICAgICAgICAgIGluZm8sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7IG9rOiB0cnVlIH07XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHBhcnNlR3JhcGhRTFNjaGVtYS5oYW5kbGVFcnJvcihlKTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTFR5cGUoXG4gICAgc2VuZFZlcmlmaWNhdGlvbkVtYWlsTXV0YXRpb24uYXJncy5pbnB1dC50eXBlLm9mVHlwZSxcbiAgICB0cnVlLFxuICAgIHRydWVcbiAgKTtcbiAgcGFyc2VHcmFwaFFMU2NoZW1hLmFkZEdyYXBoUUxUeXBlKHNlbmRWZXJpZmljYXRpb25FbWFpbE11dGF0aW9uLnR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTE11dGF0aW9uKFxuICAgICdzZW5kVmVyaWZpY2F0aW9uRW1haWwnLFxuICAgIHNlbmRWZXJpZmljYXRpb25FbWFpbE11dGF0aW9uLFxuICAgIHRydWUsXG4gICAgdHJ1ZVxuICApO1xuXG4gIGNvbnN0IGNoYWxsZW5nZU11dGF0aW9uID0gbXV0YXRpb25XaXRoQ2xpZW50TXV0YXRpb25JZCh7XG4gICAgbmFtZTogJ0NoYWxsZW5nZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhlIGNoYWxsZW5nZSBtdXRhdGlvbiBjYW4gYmUgdXNlZCB0byBpbml0aWF0ZSBhbiBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2Ugd2hlbiBhbiBhdXRoIGFkYXB0ZXIgbmVlZHMgaXQuJyxcbiAgICBpbnB1dEZpZWxkczoge1xuICAgICAgdXNlcm5hbWU6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIGlzIHRoZSB1c2VybmFtZSB1c2VkIHRvIGxvZyBpbiB0aGUgdXNlci4nLFxuICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgfSxcbiAgICAgIHBhc3N3b3JkOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgcGFzc3dvcmQgdXNlZCB0byBsb2cgaW4gdGhlIHVzZXIuJyxcbiAgICAgICAgdHlwZTogR3JhcGhRTFN0cmluZyxcbiAgICAgIH0sXG4gICAgICBhdXRoRGF0YToge1xuICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAnQXV0aCBkYXRhIGFsbG93IHRvIHByZWlkZW50aWZ5IHRoZSB1c2VyIGlmIHRoZSBhdXRoIGFkYXB0ZXIgbmVlZHMgcHJlaWRlbnRpZmljYXRpb24uJyxcbiAgICAgICAgdHlwZTogT0JKRUNULFxuICAgICAgfSxcbiAgICAgIGNoYWxsZW5nZURhdGE6IHtcbiAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgJ0NoYWxsZW5nZSBkYXRhIHBheWxvYWQsIGNhbiBiZSB1c2VkIHRvIHBvc3QgZGF0YSB0byBhdXRoIHByb3ZpZGVycyB0byBhdXRoIHByb3ZpZGVycyBpZiB0aGV5IG5lZWQgZGF0YSBmb3IgdGhlIHJlc3BvbnNlLicsXG4gICAgICAgIHR5cGU6IE9CSkVDVCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvdXRwdXRGaWVsZHM6IHtcbiAgICAgIGNoYWxsZW5nZURhdGE6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdDaGFsbGVuZ2UgcmVzcG9uc2UgZnJvbSBjb25maWd1cmVkIGF1dGggYWRhcHRlcnMuJyxcbiAgICAgICAgdHlwZTogT0JKRUNULFxuICAgICAgfSxcbiAgICB9LFxuICAgIG11dGF0ZUFuZEdldFBheWxvYWQ6IGFzeW5jIChpbnB1dCwgY29udGV4dCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBjb25maWcsIGF1dGgsIGluZm8gfSA9IGNvbnRleHQ7XG5cbiAgICAgICAgY29uc3QgeyByZXNwb25zZSB9ID0gYXdhaXQgdXNlcnNSb3V0ZXIuaGFuZGxlQ2hhbGxlbmdlKHtcbiAgICAgICAgICBib2R5OiBpbnB1dCxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgYXV0aCxcbiAgICAgICAgICBpbmZvLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBwYXJzZUdyYXBoUUxTY2hlbWEuaGFuZGxlRXJyb3IoZSk7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG5cbiAgcGFyc2VHcmFwaFFMU2NoZW1hLmFkZEdyYXBoUUxUeXBlKGNoYWxsZW5nZU11dGF0aW9uLmFyZ3MuaW5wdXQudHlwZS5vZlR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTFR5cGUoY2hhbGxlbmdlTXV0YXRpb24udHlwZSwgdHJ1ZSwgdHJ1ZSk7XG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMTXV0YXRpb24oJ2NoYWxsZW5nZScsIGNoYWxsZW5nZU11dGF0aW9uLCB0cnVlLCB0cnVlKTtcbn07XG5cbmV4cG9ydCB7IGxvYWQgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsYUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsU0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksWUFBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssZ0JBQUEsR0FBQUMsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFPLG9CQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxTQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxLQUFBLEdBQUFQLHNCQUFBLENBQUFILE9BQUE7QUFBK0IsU0FBQVcseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQU4sd0JBQUFVLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFB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
436
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ3JhcGhxbCIsInJlcXVpcmUiLCJfZ3JhcGhxbFJlbGF5IiwiX2RlZXBjb3B5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9Vc2Vyc1JvdXRlciIsIm9iamVjdHNNdXRhdGlvbnMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9kZWZhdWx0R3JhcGhRTFR5cGVzIiwiX3VzZXJzUXVlcmllcyIsIl9tdXRhdGlvbiIsIl9ub2RlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib2JqIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJrZXkiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIk51bWJlciIsInVzZXJzUm91dGVyIiwiVXNlcnNSb3V0ZXIiLCJsb2FkIiwicGFyc2VHcmFwaFFMU2NoZW1hIiwiaXNVc2Vyc0NsYXNzRGlzYWJsZWQiLCJzaWduVXBNdXRhdGlvbiIsIm11dGF0aW9uV2l0aENsaWVudE11dGF0aW9uSWQiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJpbnB1dEZpZWxkcyIsImZpZWxkcyIsImRlc2NyaXB0aW9ucyIsInR5cGUiLCJwYXJzZUNsYXNzVHlwZXMiLCJjbGFzc0dyYXBoUUxDcmVhdGVUeXBlIiwib3V0cHV0RmllbGRzIiwidmlld2VyIiwiR3JhcGhRTE5vbk51bGwiLCJ2aWV3ZXJUeXBlIiwibXV0YXRlQW5kR2V0UGF5bG9hZCIsImFyZ3MiLCJjb250ZXh0IiwibXV0YXRpb25JbmZvIiwiZGVlcGNvcHkiLCJjb25maWciLCJhdXRoIiwiaW5mbyIsInBhcnNlRmllbGRzIiwidHJhbnNmb3JtVHlwZXMiLCJjbGFzc05hbWUiLCJvcmlnaW5hbEZpZWxkcyIsInJlcSIsInNlc3Npb25Ub2tlbiIsIm9iamVjdElkIiwiYXV0aERhdGFSZXNwb25zZSIsImNyZWF0ZU9iamVjdCIsImdldFVzZXJGcm9tU2Vzc2lvblRva2VuIiwidXNlciIsImhhbmRsZUVycm9yIiwiYWRkR3JhcGhRTFR5cGUiLCJpbnB1dCIsIm9mVHlwZSIsImFkZEdyYXBoUUxNdXRhdGlvbiIsImxvZ0luV2l0aE11dGF0aW9uIiwiYXV0aERhdGEiLCJPQkpFQ1QiLCJHcmFwaFFMSW5wdXRPYmplY3RUeXBlIiwiY2xhc3NHcmFwaFFMQ3JlYXRlRmllbGRzIiwiZ2V0RmllbGRzIiwicmVkdWNlIiwiZmllbGROYW1lIiwibG9nSW5NdXRhdGlvbiIsInVzZXJuYW1lIiwiR3JhcGhRTFN0cmluZyIsInBhc3N3b3JkIiwiaGFuZGxlTG9nSW4iLCJib2R5IiwicXVlcnkiLCJyZXNwb25zZSIsImxvZ091dE11dGF0aW9uIiwib2siLCJHcmFwaFFMQm9vbGVhbiIsIl9hcmdzIiwiaGFuZGxlTG9nT3V0IiwicmVzZXRQYXNzd29yZE11dGF0aW9uIiwiZW1haWwiLCJoYW5kbGVSZXNldFJlcXVlc3QiLCJjb25maXJtUmVzZXRQYXNzd29yZE11dGF0aW9uIiwidG9rZW4iLCJQYXJzZSIsIkVycm9yIiwiVVNFUk5BTUVfTUlTU0lORyIsIlBBU1NXT1JEX01JU1NJTkciLCJPVEhFUl9DQVVTRSIsInVzZXJDb250cm9sbGVyIiwidXBkYXRlUGFzc3dvcmQiLCJzZW5kVmVyaWZpY2F0aW9uRW1haWxNdXRhdGlvbiIsImhhbmRsZVZlcmlmaWNhdGlvbkVtYWlsUmVxdWVzdCIsImNoYWxsZW5nZU11dGF0aW9uIiwiY2hhbGxlbmdlRGF0YSIsImhhbmRsZUNoYWxsZW5nZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvR3JhcGhRTC9sb2FkZXJzL3VzZXJzTXV0YXRpb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyYXBoUUxOb25OdWxsLCBHcmFwaFFMU3RyaW5nLCBHcmFwaFFMQm9vbGVhbiwgR3JhcGhRTElucHV0T2JqZWN0VHlwZSB9IGZyb20gJ2dyYXBocWwnO1xuaW1wb3J0IHsgbXV0YXRpb25XaXRoQ2xpZW50TXV0YXRpb25JZCB9IGZyb20gJ2dyYXBocWwtcmVsYXknO1xuaW1wb3J0IGRlZXBjb3B5IGZyb20gJ2RlZXBjb3B5JztcbmltcG9ydCBVc2Vyc1JvdXRlciBmcm9tICcuLi8uLi9Sb3V0ZXJzL1VzZXJzUm91dGVyJztcbmltcG9ydCAqIGFzIG9iamVjdHNNdXRhdGlvbnMgZnJvbSAnLi4vaGVscGVycy9vYmplY3RzTXV0YXRpb25zJztcbmltcG9ydCB7IE9CSkVDVCB9IGZyb20gJy4vZGVmYXVsdEdyYXBoUUxUeXBlcyc7XG5pbXBvcnQgeyBnZXRVc2VyRnJvbVNlc3Npb25Ub2tlbiB9IGZyb20gJy4vdXNlcnNRdWVyaWVzJztcbmltcG9ydCB7IHRyYW5zZm9ybVR5cGVzIH0gZnJvbSAnLi4vdHJhbnNmb3JtZXJzL211dGF0aW9uJztcbmltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcblxuY29uc3QgdXNlcnNSb3V0ZXIgPSBuZXcgVXNlcnNSb3V0ZXIoKTtcblxuY29uc3QgbG9hZCA9IHBhcnNlR3JhcGhRTFNjaGVtYSA9PiB7XG4gIGlmIChwYXJzZUdyYXBoUUxTY2hlbWEuaXNVc2Vyc0NsYXNzRGlzYWJsZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzaWduVXBNdXRhdGlvbiA9IG11dGF0aW9uV2l0aENsaWVudE11dGF0aW9uSWQoe1xuICAgIG5hbWU6ICdTaWduVXAnLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlIHNpZ25VcCBtdXRhdGlvbiBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYW5kIHNpZ24gdXAgYSBuZXcgdXNlci4nLFxuICAgIGlucHV0RmllbGRzOiB7XG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgZGVzY3JpcHRpb25zOiAnVGhlc2UgYXJlIHRoZSBmaWVsZHMgb2YgdGhlIG5ldyB1c2VyIHRvIGJlIGNyZWF0ZWQgYW5kIHNpZ25lZCB1cC4nLFxuICAgICAgICB0eXBlOiBwYXJzZUdyYXBoUUxTY2hlbWEucGFyc2VDbGFzc1R5cGVzWydfVXNlciddLmNsYXNzR3JhcGhRTENyZWF0ZVR5cGUsXG4gICAgICB9LFxuICAgIH0sXG4gICAgb3V0cHV0RmllbGRzOiB7XG4gICAgICB2aWV3ZXI6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIGlzIHRoZSBuZXcgdXNlciB0aGF0IHdhcyBjcmVhdGVkLCBzaWduZWQgdXAgYW5kIHJldHVybmVkIGFzIGEgdmlld2VyLicsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChwYXJzZUdyYXBoUUxTY2hlbWEudmlld2VyVHlwZSksXG4gICAgICB9LFxuICAgIH0sXG4gICAgbXV0YXRlQW5kR2V0UGF5bG9hZDogYXN5bmMgKGFyZ3MsIGNvbnRleHQsIG11dGF0aW9uSW5mbykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBmaWVsZHMgfSA9IGRlZXBjb3B5KGFyZ3MpO1xuICAgICAgICBjb25zdCB7IGNvbmZpZywgYXV0aCwgaW5mbyB9ID0gY29udGV4dDtcblxuICAgICAgICBjb25zdCBwYXJzZUZpZWxkcyA9IGF3YWl0IHRyYW5zZm9ybVR5cGVzKCdjcmVhdGUnLCBmaWVsZHMsIHtcbiAgICAgICAgICBjbGFzc05hbWU6ICdfVXNlcicsXG4gICAgICAgICAgcGFyc2VHcmFwaFFMU2NoZW1hLFxuICAgICAgICAgIG9yaWdpbmFsRmllbGRzOiBhcmdzLmZpZWxkcyxcbiAgICAgICAgICByZXE6IHsgY29uZmlnLCBhdXRoLCBpbmZvIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHsgc2Vzc2lvblRva2VuLCBvYmplY3RJZCwgYXV0aERhdGFSZXNwb25zZSB9ID0gYXdhaXQgb2JqZWN0c011dGF0aW9ucy5jcmVhdGVPYmplY3QoXG4gICAgICAgICAgJ19Vc2VyJyxcbiAgICAgICAgICBwYXJzZUZpZWxkcyxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgYXV0aCxcbiAgICAgICAgICBpbmZvXG4gICAgICAgICk7XG5cbiAgICAgICAgY29udGV4dC5pbmZvLnNlc3Npb25Ub2tlbiA9IHNlc3Npb25Ub2tlbjtcbiAgICAgICAgY29uc3Qgdmlld2VyID0gYXdhaXQgZ2V0VXNlckZyb21TZXNzaW9uVG9rZW4oXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBtdXRhdGlvbkluZm8sXG4gICAgICAgICAgJ3ZpZXdlci51c2VyLicsXG4gICAgICAgICAgb2JqZWN0SWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGF1dGhEYXRhUmVzcG9uc2UgJiYgdmlld2VyLnVzZXIpIHZpZXdlci51c2VyLmF1dGhEYXRhUmVzcG9uc2UgPSBhdXRoRGF0YVJlc3BvbnNlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZpZXdlcixcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcGFyc2VHcmFwaFFMU2NoZW1hLmhhbmRsZUVycm9yKGUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMVHlwZShzaWduVXBNdXRhdGlvbi5hcmdzLmlucHV0LnR5cGUub2ZUeXBlLCB0cnVlLCB0cnVlKTtcbiAgcGFyc2VHcmFwaFFMU2NoZW1hLmFkZEdyYXBoUUxUeXBlKHNpZ25VcE11dGF0aW9uLnR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTE11dGF0aW9uKCdzaWduVXAnLCBzaWduVXBNdXRhdGlvbiwgdHJ1ZSwgdHJ1ZSk7XG4gIGNvbnN0IGxvZ0luV2l0aE11dGF0aW9uID0gbXV0YXRpb25XaXRoQ2xpZW50TXV0YXRpb25JZCh7XG4gICAgbmFtZTogJ0xvZ0luV2l0aCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhlIGxvZ0luV2l0aCBtdXRhdGlvbiBjYW4gYmUgdXNlZCB0byBzaWdudXAsIGxvZ2luIHVzZXIgd2l0aCAzcmQgcGFydHkgYXV0aGVudGljYXRpb24gc3lzdGVtLiBUaGlzIG11dGF0aW9uIGNyZWF0ZSBhIHVzZXIgaWYgdGhlIGF1dGhEYXRhIGRvIG5vdCBjb3JyZXNwb25kIHRvIGFuIGV4aXN0aW5nIG9uZS4nLFxuICAgIGlucHV0RmllbGRzOiB7XG4gICAgICBhdXRoRGF0YToge1xuICAgICAgICBkZXNjcmlwdGlvbnM6ICdUaGlzIGlzIHRoZSBhdXRoIGRhdGEgb2YgeW91ciBjdXN0b20gYXV0aCBwcm92aWRlcicsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChPQkpFQ1QpLFxuICAgICAgfSxcbiAgICAgIGZpZWxkczoge1xuICAgICAgICBkZXNjcmlwdGlvbnM6ICdUaGVzZSBhcmUgdGhlIGZpZWxkcyBvZiB0aGUgdXNlciB0byBiZSBjcmVhdGVkL3VwZGF0ZWQgYW5kIGxvZ2dlZCBpbi4nLFxuICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTElucHV0T2JqZWN0VHlwZSh7XG4gICAgICAgICAgbmFtZTogJ1VzZXJMb2dpbldpdGhJbnB1dCcsXG4gICAgICAgICAgZmllbGRzOiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjbGFzc0dyYXBoUUxDcmVhdGVGaWVsZHMgPSBwYXJzZUdyYXBoUUxTY2hlbWEucGFyc2VDbGFzc1R5cGVzW1xuICAgICAgICAgICAgICAnX1VzZXInXG4gICAgICAgICAgICBdLmNsYXNzR3JhcGhRTENyZWF0ZVR5cGUuZ2V0RmllbGRzKCk7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoY2xhc3NHcmFwaFFMQ3JlYXRlRmllbGRzKS5yZWR1Y2UoKGZpZWxkcywgZmllbGROYW1lKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBmaWVsZE5hbWUgIT09ICdwYXNzd29yZCcgJiZcbiAgICAgICAgICAgICAgICBmaWVsZE5hbWUgIT09ICd1c2VybmFtZScgJiZcbiAgICAgICAgICAgICAgICBmaWVsZE5hbWUgIT09ICdhdXRoRGF0YSdcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZmllbGRzW2ZpZWxkTmFtZV0gPSBjbGFzc0dyYXBoUUxDcmVhdGVGaWVsZHNbZmllbGROYW1lXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZmllbGRzO1xuICAgICAgICAgICAgfSwge30pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG91dHB1dEZpZWxkczoge1xuICAgICAgdmlld2VyOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgbmV3IHVzZXIgdGhhdCB3YXMgY3JlYXRlZCwgc2lnbmVkIHVwIGFuZCByZXR1cm5lZCBhcyBhIHZpZXdlci4nLFxuICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwocGFyc2VHcmFwaFFMU2NoZW1hLnZpZXdlclR5cGUpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG11dGF0ZUFuZEdldFBheWxvYWQ6IGFzeW5jIChhcmdzLCBjb250ZXh0LCBtdXRhdGlvbkluZm8pID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgZmllbGRzLCBhdXRoRGF0YSB9ID0gZGVlcGNvcHkoYXJncyk7XG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBhdXRoLCBpbmZvIH0gPSBjb250ZXh0O1xuXG4gICAgICAgIGNvbnN0IHBhcnNlRmllbGRzID0gYXdhaXQgdHJhbnNmb3JtVHlwZXMoJ2NyZWF0ZScsIGZpZWxkcywge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ19Vc2VyJyxcbiAgICAgICAgICBwYXJzZUdyYXBoUUxTY2hlbWEsXG4gICAgICAgICAgb3JpZ2luYWxGaWVsZHM6IGFyZ3MuZmllbGRzLFxuICAgICAgICAgIHJlcTogeyBjb25maWcsIGF1dGgsIGluZm8gfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgeyBzZXNzaW9uVG9rZW4sIG9iamVjdElkLCBhdXRoRGF0YVJlc3BvbnNlIH0gPSBhd2FpdCBvYmplY3RzTXV0YXRpb25zLmNyZWF0ZU9iamVjdChcbiAgICAgICAgICAnX1VzZXInLFxuICAgICAgICAgIHsgLi4ucGFyc2VGaWVsZHMsIGF1dGhEYXRhIH0sXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGF1dGgsXG4gICAgICAgICAgaW5mb1xuICAgICAgICApO1xuXG4gICAgICAgIGNvbnRleHQuaW5mby5zZXNzaW9uVG9rZW4gPSBzZXNzaW9uVG9rZW47XG4gICAgICAgIGNvbnN0IHZpZXdlciA9IGF3YWl0IGdldFVzZXJGcm9tU2Vzc2lvblRva2VuKFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgbXV0YXRpb25JbmZvLFxuICAgICAgICAgICd2aWV3ZXIudXNlci4nLFxuICAgICAgICAgIG9iamVjdElkXG4gICAgICAgICk7XG4gICAgICAgIGlmIChhdXRoRGF0YVJlc3BvbnNlICYmIHZpZXdlci51c2VyKSB2aWV3ZXIudXNlci5hdXRoRGF0YVJlc3BvbnNlID0gYXV0aERhdGFSZXNwb25zZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2aWV3ZXIsXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHBhcnNlR3JhcGhRTFNjaGVtYS5oYW5kbGVFcnJvcihlKTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTFR5cGUobG9nSW5XaXRoTXV0YXRpb24uYXJncy5pbnB1dC50eXBlLm9mVHlwZSwgdHJ1ZSwgdHJ1ZSk7XG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMVHlwZShsb2dJbldpdGhNdXRhdGlvbi50eXBlLCB0cnVlLCB0cnVlKTtcbiAgcGFyc2VHcmFwaFFMU2NoZW1hLmFkZEdyYXBoUUxNdXRhdGlvbignbG9nSW5XaXRoJywgbG9nSW5XaXRoTXV0YXRpb24sIHRydWUsIHRydWUpO1xuXG4gIGNvbnN0IGxvZ0luTXV0YXRpb24gPSBtdXRhdGlvbldpdGhDbGllbnRNdXRhdGlvbklkKHtcbiAgICBuYW1lOiAnTG9nSW4nLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlIGxvZ0luIG11dGF0aW9uIGNhbiBiZSB1c2VkIHRvIGxvZyBpbiBhbiBleGlzdGluZyB1c2VyLicsXG4gICAgaW5wdXRGaWVsZHM6IHtcbiAgICAgIHVzZXJuYW1lOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgdXNlcm5hbWUgdXNlZCB0byBsb2cgaW4gdGhlIHVzZXIuJyxcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxTdHJpbmcpLFxuICAgICAgfSxcbiAgICAgIHBhc3N3b3JkOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgcGFzc3dvcmQgdXNlZCB0byBsb2cgaW4gdGhlIHVzZXIuJyxcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxTdHJpbmcpLFxuICAgICAgfSxcbiAgICAgIGF1dGhEYXRhOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQXV0aCBkYXRhIHBheWxvYWQsIG5lZWRlZCBpZiBzb21lIHJlcXVpcmVkIGF1dGggYWRhcHRlcnMgYXJlIGNvbmZpZ3VyZWQuJyxcbiAgICAgICAgdHlwZTogT0JKRUNULFxuICAgICAgfSxcbiAgICB9LFxuICAgIG91dHB1dEZpZWxkczoge1xuICAgICAgdmlld2VyOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgZXhpc3RpbmcgdXNlciB0aGF0IHdhcyBsb2dnZWQgaW4gYW5kIHJldHVybmVkIGFzIGEgdmlld2VyLicsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChwYXJzZUdyYXBoUUxTY2hlbWEudmlld2VyVHlwZSksXG4gICAgICB9LFxuICAgIH0sXG4gICAgbXV0YXRlQW5kR2V0UGF5bG9hZDogYXN5bmMgKGFyZ3MsIGNvbnRleHQsIG11dGF0aW9uSW5mbykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyB1c2VybmFtZSwgcGFzc3dvcmQsIGF1dGhEYXRhIH0gPSBkZWVwY29weShhcmdzKTtcbiAgICAgICAgY29uc3QgeyBjb25maWcsIGF1dGgsIGluZm8gfSA9IGNvbnRleHQ7XG5cbiAgICAgICAgY29uc3QgeyBzZXNzaW9uVG9rZW4sIG9iamVjdElkLCBhdXRoRGF0YVJlc3BvbnNlIH0gPSAoXG4gICAgICAgICAgYXdhaXQgdXNlcnNSb3V0ZXIuaGFuZGxlTG9nSW4oe1xuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICB1c2VybmFtZSxcbiAgICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICAgIGF1dGhEYXRhLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHF1ZXJ5OiB7fSxcbiAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgIGF1dGgsXG4gICAgICAgICAgICBpbmZvLFxuICAgICAgICAgIH0pXG4gICAgICAgICkucmVzcG9uc2U7XG5cbiAgICAgICAgY29udGV4dC5pbmZvLnNlc3Npb25Ub2tlbiA9IHNlc3Npb25Ub2tlbjtcblxuICAgICAgICBjb25zdCB2aWV3ZXIgPSBhd2FpdCBnZXRVc2VyRnJvbVNlc3Npb25Ub2tlbihcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIG11dGF0aW9uSW5mbyxcbiAgICAgICAgICAndmlld2VyLnVzZXIuJyxcbiAgICAgICAgICBvYmplY3RJZFxuICAgICAgICApO1xuICAgICAgICBpZiAoYXV0aERhdGFSZXNwb25zZSAmJiB2aWV3ZXIudXNlcikgdmlld2VyLnVzZXIuYXV0aERhdGFSZXNwb25zZSA9IGF1dGhEYXRhUmVzcG9uc2U7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmlld2VyLFxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBwYXJzZUdyYXBoUUxTY2hlbWEuaGFuZGxlRXJyb3IoZSk7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG5cbiAgcGFyc2VHcmFwaFFMU2NoZW1hLmFkZEdyYXBoUUxUeXBlKGxvZ0luTXV0YXRpb24uYXJncy5pbnB1dC50eXBlLm9mVHlwZSwgdHJ1ZSwgdHJ1ZSk7XG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMVHlwZShsb2dJbk11dGF0aW9uLnR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTE11dGF0aW9uKCdsb2dJbicsIGxvZ0luTXV0YXRpb24sIHRydWUsIHRydWUpO1xuXG4gIGNvbnN0IGxvZ091dE11dGF0aW9uID0gbXV0YXRpb25XaXRoQ2xpZW50TXV0YXRpb25JZCh7XG4gICAgbmFtZTogJ0xvZ091dCcsXG4gICAgZGVzY3JpcHRpb246ICdUaGUgbG9nT3V0IG11dGF0aW9uIGNhbiBiZSB1c2VkIHRvIGxvZyBvdXQgYW4gZXhpc3RpbmcgdXNlci4nLFxuICAgIG91dHB1dEZpZWxkczoge1xuICAgICAgb2s6IHtcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSXQncyBhbHdheXMgdHJ1ZS5cIixcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxCb29sZWFuKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBtdXRhdGVBbmRHZXRQYXlsb2FkOiBhc3luYyAoX2FyZ3MsIGNvbnRleHQpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBhdXRoLCBpbmZvIH0gPSBjb250ZXh0O1xuXG4gICAgICAgIGF3YWl0IHVzZXJzUm91dGVyLmhhbmRsZUxvZ091dCh7XG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGF1dGgsXG4gICAgICAgICAgaW5mbyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHsgb2s6IHRydWUgfTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcGFyc2VHcmFwaFFMU2NoZW1hLmhhbmRsZUVycm9yKGUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMVHlwZShsb2dPdXRNdXRhdGlvbi5hcmdzLmlucHV0LnR5cGUub2ZUeXBlLCB0cnVlLCB0cnVlKTtcbiAgcGFyc2VHcmFwaFFMU2NoZW1hLmFkZEdyYXBoUUxUeXBlKGxvZ091dE11dGF0aW9uLnR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTE11dGF0aW9uKCdsb2dPdXQnLCBsb2dPdXRNdXRhdGlvbiwgdHJ1ZSwgdHJ1ZSk7XG5cbiAgY29uc3QgcmVzZXRQYXNzd29yZE11dGF0aW9uID0gbXV0YXRpb25XaXRoQ2xpZW50TXV0YXRpb25JZCh7XG4gICAgbmFtZTogJ1Jlc2V0UGFzc3dvcmQnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSByZXNldFBhc3N3b3JkIG11dGF0aW9uIGNhbiBiZSB1c2VkIHRvIHJlc2V0IHRoZSBwYXNzd29yZCBvZiBhbiBleGlzdGluZyB1c2VyLicsXG4gICAgaW5wdXRGaWVsZHM6IHtcbiAgICAgIGVtYWlsOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uczogJ0VtYWlsIG9mIHRoZSB1c2VyIHRoYXQgc2hvdWxkIHJlY2VpdmUgdGhlIHJlc2V0IGVtYWlsJyxcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxTdHJpbmcpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG91dHB1dEZpZWxkczoge1xuICAgICAgb2s6IHtcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSXQncyBhbHdheXMgdHJ1ZS5cIixcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxCb29sZWFuKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBtdXRhdGVBbmRHZXRQYXlsb2FkOiBhc3luYyAoeyBlbWFpbCB9LCBjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IGNvbmZpZywgYXV0aCwgaW5mbyB9ID0gY29udGV4dDtcblxuICAgICAgYXdhaXQgdXNlcnNSb3V0ZXIuaGFuZGxlUmVzZXRSZXF1ZXN0KHtcbiAgICAgICAgYm9keToge1xuICAgICAgICAgIGVtYWlsLFxuICAgICAgICB9LFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGF1dGgsXG4gICAgICAgIGluZm8sXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHsgb2s6IHRydWUgfTtcbiAgICB9LFxuICB9KTtcblxuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTFR5cGUocmVzZXRQYXNzd29yZE11dGF0aW9uLmFyZ3MuaW5wdXQudHlwZS5vZlR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTFR5cGUocmVzZXRQYXNzd29yZE11dGF0aW9uLnR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTE11dGF0aW9uKCdyZXNldFBhc3N3b3JkJywgcmVzZXRQYXNzd29yZE11dGF0aW9uLCB0cnVlLCB0cnVlKTtcblxuICBjb25zdCBjb25maXJtUmVzZXRQYXNzd29yZE11dGF0aW9uID0gbXV0YXRpb25XaXRoQ2xpZW50TXV0YXRpb25JZCh7XG4gICAgbmFtZTogJ0NvbmZpcm1SZXNldFBhc3N3b3JkJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgY29uZmlybVJlc2V0UGFzc3dvcmQgbXV0YXRpb24gY2FuIGJlIHVzZWQgdG8gcmVzZXQgdGhlIHBhc3N3b3JkIG9mIGFuIGV4aXN0aW5nIHVzZXIuJyxcbiAgICBpbnB1dEZpZWxkczoge1xuICAgICAgdXNlcm5hbWU6IHtcbiAgICAgICAgZGVzY3JpcHRpb25zOiAnVXNlcm5hbWUgb2YgdGhlIHVzZXIgdGhhdCBoYXZlIHJlY2VpdmVkIHRoZSByZXNldCBlbWFpbCcsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChHcmFwaFFMU3RyaW5nKSxcbiAgICAgIH0sXG4gICAgICBwYXNzd29yZDoge1xuICAgICAgICBkZXNjcmlwdGlvbnM6ICdOZXcgcGFzc3dvcmQgb2YgdGhlIHVzZXInLFxuICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoR3JhcGhRTFN0cmluZyksXG4gICAgICB9LFxuICAgICAgdG9rZW46IHtcbiAgICAgICAgZGVzY3JpcHRpb25zOiAnUmVzZXQgdG9rZW4gdGhhdCB3YXMgZW1haWxlZCB0byB0aGUgdXNlcicsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChHcmFwaFFMU3RyaW5nKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvdXRwdXRGaWVsZHM6IHtcbiAgICAgIG9rOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkl0J3MgYWx3YXlzIHRydWUuXCIsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChHcmFwaFFMQm9vbGVhbiksXG4gICAgICB9LFxuICAgIH0sXG4gICAgbXV0YXRlQW5kR2V0UGF5bG9hZDogYXN5bmMgKHsgdXNlcm5hbWUsIHBhc3N3b3JkLCB0b2tlbiB9LCBjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IGNvbmZpZyB9ID0gY29udGV4dDtcbiAgICAgIGlmICghdXNlcm5hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLlVTRVJOQU1FX01JU1NJTkcsICd5b3UgbXVzdCBwcm92aWRlIGEgdXNlcm5hbWUnKTtcbiAgICAgIH1cbiAgICAgIGlmICghcGFzc3dvcmQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLlBBU1NXT1JEX01JU1NJTkcsICd5b3UgbXVzdCBwcm92aWRlIGEgcGFzc3dvcmQnKTtcbiAgICAgIH1cbiAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9USEVSX0NBVVNFLCAneW91IG11c3QgcHJvdmlkZSBhIHRva2VuJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVzZXJDb250cm9sbGVyID0gY29uZmlnLnVzZXJDb250cm9sbGVyO1xuICAgICAgYXdhaXQgdXNlckNvbnRyb2xsZXIudXBkYXRlUGFzc3dvcmQodXNlcm5hbWUsIHRva2VuLCBwYXNzd29yZCk7XG4gICAgICByZXR1cm4geyBvazogdHJ1ZSB9O1xuICAgIH0sXG4gIH0pO1xuXG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMVHlwZShcbiAgICBjb25maXJtUmVzZXRQYXNzd29yZE11dGF0aW9uLmFyZ3MuaW5wdXQudHlwZS5vZlR5cGUsXG4gICAgdHJ1ZSxcbiAgICB0cnVlXG4gICk7XG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMVHlwZShjb25maXJtUmVzZXRQYXNzd29yZE11dGF0aW9uLnR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTE11dGF0aW9uKFxuICAgICdjb25maXJtUmVzZXRQYXNzd29yZCcsXG4gICAgY29uZmlybVJlc2V0UGFzc3dvcmRNdXRhdGlvbixcbiAgICB0cnVlLFxuICAgIHRydWVcbiAgKTtcblxuICBjb25zdCBzZW5kVmVyaWZpY2F0aW9uRW1haWxNdXRhdGlvbiA9IG11dGF0aW9uV2l0aENsaWVudE11dGF0aW9uSWQoe1xuICAgIG5hbWU6ICdTZW5kVmVyaWZpY2F0aW9uRW1haWwnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBzZW5kVmVyaWZpY2F0aW9uRW1haWwgbXV0YXRpb24gY2FuIGJlIHVzZWQgdG8gc2VuZCB0aGUgdmVyaWZpY2F0aW9uIGVtYWlsIGFnYWluLicsXG4gICAgaW5wdXRGaWVsZHM6IHtcbiAgICAgIGVtYWlsOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uczogJ0VtYWlsIG9mIHRoZSB1c2VyIHRoYXQgc2hvdWxkIHJlY2VpdmUgdGhlIHZlcmlmaWNhdGlvbiBlbWFpbCcsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChHcmFwaFFMU3RyaW5nKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvdXRwdXRGaWVsZHM6IHtcbiAgICAgIG9rOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkl0J3MgYWx3YXlzIHRydWUuXCIsXG4gICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChHcmFwaFFMQm9vbGVhbiksXG4gICAgICB9LFxuICAgIH0sXG4gICAgbXV0YXRlQW5kR2V0UGF5bG9hZDogYXN5bmMgKHsgZW1haWwgfSwgY29udGV4dCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBjb25maWcsIGF1dGgsIGluZm8gfSA9IGNvbnRleHQ7XG5cbiAgICAgICAgYXdhaXQgdXNlcnNSb3V0ZXIuaGFuZGxlVmVyaWZpY2F0aW9uRW1haWxSZXF1ZXN0KHtcbiAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICBlbWFpbCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBhdXRoLFxuICAgICAgICAgIGluZm8sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7IG9rOiB0cnVlIH07XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHBhcnNlR3JhcGhRTFNjaGVtYS5oYW5kbGVFcnJvcihlKTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTFR5cGUoXG4gICAgc2VuZFZlcmlmaWNhdGlvbkVtYWlsTXV0YXRpb24uYXJncy5pbnB1dC50eXBlLm9mVHlwZSxcbiAgICB0cnVlLFxuICAgIHRydWVcbiAgKTtcbiAgcGFyc2VHcmFwaFFMU2NoZW1hLmFkZEdyYXBoUUxUeXBlKHNlbmRWZXJpZmljYXRpb25FbWFpbE11dGF0aW9uLnR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTE11dGF0aW9uKFxuICAgICdzZW5kVmVyaWZpY2F0aW9uRW1haWwnLFxuICAgIHNlbmRWZXJpZmljYXRpb25FbWFpbE11dGF0aW9uLFxuICAgIHRydWUsXG4gICAgdHJ1ZVxuICApO1xuXG4gIGNvbnN0IGNoYWxsZW5nZU11dGF0aW9uID0gbXV0YXRpb25XaXRoQ2xpZW50TXV0YXRpb25JZCh7XG4gICAgbmFtZTogJ0NoYWxsZW5nZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhlIGNoYWxsZW5nZSBtdXRhdGlvbiBjYW4gYmUgdXNlZCB0byBpbml0aWF0ZSBhbiBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2Ugd2hlbiBhbiBhdXRoIGFkYXB0ZXIgbmVlZHMgaXQuJyxcbiAgICBpbnB1dEZpZWxkczoge1xuICAgICAgdXNlcm5hbWU6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIGlzIHRoZSB1c2VybmFtZSB1c2VkIHRvIGxvZyBpbiB0aGUgdXNlci4nLFxuICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgfSxcbiAgICAgIHBhc3N3b3JkOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgcGFzc3dvcmQgdXNlZCB0byBsb2cgaW4gdGhlIHVzZXIuJyxcbiAgICAgICAgdHlwZTogR3JhcGhRTFN0cmluZyxcbiAgICAgIH0sXG4gICAgICBhdXRoRGF0YToge1xuICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAnQXV0aCBkYXRhIGFsbG93IHRvIHByZWlkZW50aWZ5IHRoZSB1c2VyIGlmIHRoZSBhdXRoIGFkYXB0ZXIgbmVlZHMgcHJlaWRlbnRpZmljYXRpb24uJyxcbiAgICAgICAgdHlwZTogT0JKRUNULFxuICAgICAgfSxcbiAgICAgIGNoYWxsZW5nZURhdGE6IHtcbiAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgJ0NoYWxsZW5nZSBkYXRhIHBheWxvYWQsIGNhbiBiZSB1c2VkIHRvIHBvc3QgZGF0YSB0byBhdXRoIHByb3ZpZGVycyB0byBhdXRoIHByb3ZpZGVycyBpZiB0aGV5IG5lZWQgZGF0YSBmb3IgdGhlIHJlc3BvbnNlLicsXG4gICAgICAgIHR5cGU6IE9CSkVDVCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvdXRwdXRGaWVsZHM6IHtcbiAgICAgIGNoYWxsZW5nZURhdGE6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdDaGFsbGVuZ2UgcmVzcG9uc2UgZnJvbSBjb25maWd1cmVkIGF1dGggYWRhcHRlcnMuJyxcbiAgICAgICAgdHlwZTogT0JKRUNULFxuICAgICAgfSxcbiAgICB9LFxuICAgIG11dGF0ZUFuZEdldFBheWxvYWQ6IGFzeW5jIChpbnB1dCwgY29udGV4dCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBjb25maWcsIGF1dGgsIGluZm8gfSA9IGNvbnRleHQ7XG5cbiAgICAgICAgY29uc3QgeyByZXNwb25zZSB9ID0gYXdhaXQgdXNlcnNSb3V0ZXIuaGFuZGxlQ2hhbGxlbmdlKHtcbiAgICAgICAgICBib2R5OiBpbnB1dCxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgYXV0aCxcbiAgICAgICAgICBpbmZvLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBwYXJzZUdyYXBoUUxTY2hlbWEuaGFuZGxlRXJyb3IoZSk7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG5cbiAgcGFyc2VHcmFwaFFMU2NoZW1hLmFkZEdyYXBoUUxUeXBlKGNoYWxsZW5nZU11dGF0aW9uLmFyZ3MuaW5wdXQudHlwZS5vZlR5cGUsIHRydWUsIHRydWUpO1xuICBwYXJzZUdyYXBoUUxTY2hlbWEuYWRkR3JhcGhRTFR5cGUoY2hhbGxlbmdlTXV0YXRpb24udHlwZSwgdHJ1ZSwgdHJ1ZSk7XG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5hZGRHcmFwaFFMTXV0YXRpb24oJ2NoYWxsZW5nZScsIGNoYWxsZW5nZU11dGF0aW9uLCB0cnVlLCB0cnVlKTtcbn07XG5cbmV4cG9ydCB7IGxvYWQgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsYUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsU0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksWUFBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssZ0JBQUEsR0FBQUMsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFPLG9CQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxTQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxLQUFBLEdBQUFQLHNCQUFBLENBQUFILE9BQUE7QUFBK0IsU0FBQVcseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQU4sd0JBQUFNLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxXQUFBSyxPQUFBLEVBQUFMLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxH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
@@ -7,7 +7,7 @@ exports.enforceMasterKeyAccess = enforceMasterKeyAccess;
7
7
  exports.getParseClassMutationConfig = exports.extractKeysAndInclude = void 0;
8
8
  exports.toGraphQLError = toGraphQLError;
9
9
  var _node = _interopRequireDefault(require("parse/node"));
10
- var _node2 = require("@graphql-yoga/node");
10
+ var _graphql = require("graphql");
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
12
  function enforceMasterKeyAccess(auth) {
13
13
  if (!auth.isMaster) {
@@ -23,8 +23,10 @@ function toGraphQLError(error) {
23
23
  code = _node.default.Error.INTERNAL_SERVER_ERROR;
24
24
  message = 'Internal server error';
25
25
  }
26
- return new _node2.GraphQLYogaError(message, {
27
- code
26
+ return new _graphql.GraphQLError(message, {
27
+ extensions: {
28
+ code
29
+ }
28
30
  });
29
31
  }
30
32
  const extractKeysAndInclude = selectedFields => {
@@ -55,4 +57,4 @@ const getParseClassMutationConfig = function (parseClassConfig) {
55
57
  return parseClassConfig && parseClassConfig.mutation || {};
56
58
  };
57
59
  exports.getParseClassMutationConfig = getParseClassMutationConfig;
58
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX25vZGUyIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJlbmZvcmNlTWFzdGVyS2V5QWNjZXNzIiwiYXV0aCIsImlzTWFzdGVyIiwiUGFyc2UiLCJFcnJvciIsIk9QRVJBVElPTl9GT1JCSURERU4iLCJ0b0dyYXBoUUxFcnJvciIsImVycm9yIiwiY29kZSIsIm1lc3NhZ2UiLCJJTlRFUk5BTF9TRVJWRVJfRVJST1IiLCJHcmFwaFFMWW9nYUVycm9yIiwiZXh0cmFjdEtleXNBbmRJbmNsdWRlIiwic2VsZWN0ZWRGaWVsZHMiLCJmaWx0ZXIiLCJmaWVsZCIsImluY2x1ZGVzIiwibWFwIiwiZW5kc1dpdGgiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsImtleXMiLCJ1bmRlZmluZWQiLCJpbmNsdWRlIiwibGVuZ3RoIiwiU2V0Iiwiam9pbiIsImluZGV4T2YiLCJleHBvcnRzIiwiZ2V0UGFyc2VDbGFzc011dGF0aW9uQ29uZmlnIiwicGFyc2VDbGFzc0NvbmZpZyIsIm11dGF0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL0dyYXBoUUwvcGFyc2VHcmFwaFFMVXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IHsgR3JhcGhRTFlvZ2FFcnJvciB9IGZyb20gJ0BncmFwaHFsLXlvZ2Evbm9kZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmZvcmNlTWFzdGVyS2V5QWNjZXNzKGF1dGgpIHtcbiAgaWYgKCFhdXRoLmlzTWFzdGVyKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sICd1bmF1dGhvcml6ZWQ6IG1hc3RlciBrZXkgaXMgcmVxdWlyZWQnKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9HcmFwaFFMRXJyb3IoZXJyb3IpIHtcbiAgbGV0IGNvZGUsIG1lc3NhZ2U7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIFBhcnNlLkVycm9yKSB7XG4gICAgY29kZSA9IGVycm9yLmNvZGU7XG4gICAgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XG4gIH0gZWxzZSB7XG4gICAgY29kZSA9IFBhcnNlLkVycm9yLklOVEVSTkFMX1NFUlZFUl9FUlJPUjtcbiAgICBtZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gIH1cbiAgcmV0dXJuIG5ldyBHcmFwaFFMWW9nYUVycm9yKG1lc3NhZ2UsIHsgY29kZSB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RLZXlzQW5kSW5jbHVkZSA9IHNlbGVjdGVkRmllbGRzID0+IHtcbiAgc2VsZWN0ZWRGaWVsZHMgPSBzZWxlY3RlZEZpZWxkcy5maWx0ZXIoZmllbGQgPT4gIWZpZWxkLmluY2x1ZGVzKCdfX3R5cGVuYW1lJykpO1xuICAvLyBIYW5kbGVzIFwiaWRcIiBmaWVsZCBmb3IgYm90aCBjdXJyZW50IGFuZCBpbmNsdWRlZCBvYmplY3RzXG4gIHNlbGVjdGVkRmllbGRzID0gc2VsZWN0ZWRGaWVsZHMubWFwKGZpZWxkID0+IHtcbiAgICBpZiAoZmllbGQgPT09ICdpZCcpIHJldHVybiAnb2JqZWN0SWQnO1xuICAgIHJldHVybiBmaWVsZC5lbmRzV2l0aCgnLmlkJylcbiAgICAgID8gYCR7ZmllbGQuc3Vic3RyaW5nKDAsIGZpZWxkLmxhc3RJbmRleE9mKCcuaWQnKSl9Lm9iamVjdElkYFxuICAgICAgOiBmaWVsZDtcbiAgfSk7XG4gIGxldCBrZXlzID0gdW5kZWZpbmVkO1xuICBsZXQgaW5jbHVkZSA9IHVuZGVmaW5lZDtcblxuICBpZiAoc2VsZWN0ZWRGaWVsZHMubGVuZ3RoID4gMCkge1xuICAgIGtleXMgPSBbLi4ubmV3IFNldChzZWxlY3RlZEZpZWxkcyldLmpvaW4oJywnKTtcbiAgICAvLyBXZSBjYW4gdXNlIHRoaXMgc2hvcnRjdXQgc2luY2Ugb3B0aW1pemF0aW9uIGlzIGhhbmRsZWRcbiAgICAvLyBsYXRlciBvbiBSZXN0UXVlcnksIGF2b2lkIG92ZXJoZWFkIGhlcmUuXG4gICAgaW5jbHVkZSA9IGtleXM7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIElmIGF1dGhEYXRhIGlzIGRldGVjdGVkIGtleXMgd2lsbCBub3Qgd29yayBwcm9wZXJseVxuICAgIC8vIHNpbmNlIGF1dGhEYXRhIGhhcyBhIHNwZWNpYWwgc3RvcmFnZSBiZWhhdmlvclxuICAgIC8vIHNvIHdlIG5lZWQgdG8gc2tpcCBrZXlzIGN1cnJlbnRseVxuICAgIGtleXM6IGtleXMgJiYga2V5cy5pbmRleE9mKCdhdXRoRGF0YScpID09PSAtMSA/IGtleXMgOiB1bmRlZmluZWQsXG4gICAgaW5jbHVkZSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRQYXJzZUNsYXNzTXV0YXRpb25Db25maWcgPSBmdW5jdGlvbiAocGFyc2VDbGFzc0NvbmZpZykge1xuICByZXR1cm4gKHBhcnNlQ2xhc3NDb25maWcgJiYgcGFyc2VDbGFzc0NvbmZpZy5tdXRhdGlvbikgfHwge307XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUFzRCxTQUFBRCx1QkFBQUcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUUvQyxTQUFTRyxzQkFBc0JBLENBQUNDLElBQUksRUFBRTtFQUMzQyxJQUFJLENBQUNBLElBQUksQ0FBQ0MsUUFBUSxFQUFFO0lBQ2xCLE1BQU0sSUFBSUMsYUFBSyxDQUFDQyxLQUFLLENBQUNELGFBQUssQ0FBQ0MsS0FBSyxDQUFDQyxtQkFBbUIsRUFBRSxzQ0FBc0MsQ0FBQztFQUNoRztBQUNGO0FBRU8sU0FBU0MsY0FBY0EsQ0FBQ0MsS0FBSyxFQUFFO0VBQ3BDLElBQUlDLElBQUksRUFBRUMsT0FBTztFQUNqQixJQUFJRixLQUFLLFlBQVlKLGFBQUssQ0FBQ0MsS0FBSyxFQUFFO0lBQ2hDSSxJQUFJLEdBQUdELEtBQUssQ0FBQ0MsSUFBSTtJQUNqQkMsT0FBTyxHQUFHRixLQUFLLENBQUNFLE9BQU87RUFDekIsQ0FBQyxNQUFNO0lBQ0xELElBQUksR0FBR0wsYUFBSyxDQUFDQyxLQUFLLENBQUNNLHFCQUFxQjtJQUN4Q0QsT0FBTyxHQUFHLHVCQUF1QjtFQUNuQztFQUNBLE9BQU8sSUFBSUUsdUJBQWdCLENBQUNGLE9BQU8sRUFBRTtJQUFFRDtFQUFLLENBQUMsQ0FBQztBQUNoRDtBQUVPLE1BQU1JLHFCQUFxQixHQUFHQyxjQUFjLElBQUk7RUFDckRBLGNBQWMsR0FBR0EsY0FBYyxDQUFDQyxNQUFNLENBQUNDLEtBQUssSUFBSSxDQUFDQSxLQUFLLENBQUNDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztFQUM5RTtFQUNBSCxjQUFjLEdBQUdBLGNBQWMsQ0FBQ0ksR0FBRyxDQUFDRixLQUFLLElBQUk7SUFDM0MsSUFBSUEsS0FBSyxLQUFLLElBQUksRUFBRSxPQUFPLFVBQVU7SUFDckMsT0FBT0EsS0FBSyxDQUFDRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQ3ZCLEdBQUVILEtBQUssQ0FBQ0ksU0FBUyxDQUFDLENBQUMsRUFBRUosS0FBSyxDQUFDSyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUUsV0FBVSxHQUMxREwsS0FBSztFQUNYLENBQUMsQ0FBQztFQUNGLElBQUlNLElBQUksR0FBR0MsU0FBUztFQUNwQixJQUFJQyxPQUFPLEdBQUdELFNBQVM7RUFFdkIsSUFBSVQsY0FBYyxDQUFDVyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0lBQzdCSCxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUlJLEdBQUcsQ0FBQ1osY0FBYyxDQUFDLENBQUMsQ0FBQ2EsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUM3QztJQUNBO0lBQ0FILE9BQU8sR0FBR0YsSUFBSTtFQUNoQjtFQUVBLE9BQU87SUFDTDtJQUNBO0lBQ0E7SUFDQUEsSUFBSSxFQUFFQSxJQUFJLElBQUlBLElBQUksQ0FBQ00sT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHTixJQUFJLEdBQUdDLFNBQVM7SUFDaEVDO0VBQ0YsQ0FBQztBQUNILENBQUM7QUFBQ0ssT0FBQSxDQUFBaEIscUJBQUEsR0FBQUEscUJBQUE7QUFFSyxNQUFNaUIsMkJBQTJCLEdBQUcsU0FBQUEsQ0FBVUMsZ0JBQWdCLEVBQUU7RUFDckUsT0FBUUEsZ0JBQWdCLElBQUlBLGdCQUFnQixDQUFDQyxRQUFRLElBQUssQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFBQ0gsT0FBQSxDQUFBQywyQkFBQSxHQUFBQSwyQkFBQSJ9
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2dyYXBocWwiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MiLCJhdXRoIiwiaXNNYXN0ZXIiLCJQYXJzZSIsIkVycm9yIiwiT1BFUkFUSU9OX0ZPUkJJRERFTiIsInRvR3JhcGhRTEVycm9yIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsIkdyYXBoUUxFcnJvciIsImV4dGVuc2lvbnMiLCJleHRyYWN0S2V5c0FuZEluY2x1ZGUiLCJzZWxlY3RlZEZpZWxkcyIsImZpbHRlciIsImZpZWxkIiwiaW5jbHVkZXMiLCJtYXAiLCJlbmRzV2l0aCIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwia2V5cyIsInVuZGVmaW5lZCIsImluY2x1ZGUiLCJsZW5ndGgiLCJTZXQiLCJqb2luIiwiaW5kZXhPZiIsImV4cG9ydHMiLCJnZXRQYXJzZUNsYXNzTXV0YXRpb25Db25maWciLCJwYXJzZUNsYXNzQ29uZmlnIiwibXV0YXRpb24iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvR3JhcGhRTC9wYXJzZUdyYXBoUUxVdGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5pbXBvcnQgeyBHcmFwaFFMRXJyb3IgfSBmcm9tICdncmFwaHFsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MoYXV0aCkge1xuICBpZiAoIWF1dGguaXNNYXN0ZXIpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT1BFUkFUSU9OX0ZPUkJJRERFTiwgJ3VuYXV0aG9yaXplZDogbWFzdGVyIGtleSBpcyByZXF1aXJlZCcpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0dyYXBoUUxFcnJvcihlcnJvcikge1xuICBsZXQgY29kZSwgbWVzc2FnZTtcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgUGFyc2UuRXJyb3IpIHtcbiAgICBjb2RlID0gZXJyb3IuY29kZTtcbiAgICBtZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgfSBlbHNlIHtcbiAgICBjb2RlID0gUGFyc2UuRXJyb3IuSU5URVJOQUxfU0VSVkVSX0VSUk9SO1xuICAgIG1lc3NhZ2UgPSAnSW50ZXJuYWwgc2VydmVyIGVycm9yJztcbiAgfVxuICByZXR1cm4gbmV3IEdyYXBoUUxFcnJvcihtZXNzYWdlLCB7IGV4dGVuc2lvbnM6IHsgY29kZSB9IH0pO1xufVxuXG5leHBvcnQgY29uc3QgZXh0cmFjdEtleXNBbmRJbmNsdWRlID0gc2VsZWN0ZWRGaWVsZHMgPT4ge1xuICBzZWxlY3RlZEZpZWxkcyA9IHNlbGVjdGVkRmllbGRzLmZpbHRlcihmaWVsZCA9PiAhZmllbGQuaW5jbHVkZXMoJ19fdHlwZW5hbWUnKSk7XG4gIC8vIEhhbmRsZXMgXCJpZFwiIGZpZWxkIGZvciBib3RoIGN1cnJlbnQgYW5kIGluY2x1ZGVkIG9iamVjdHNcbiAgc2VsZWN0ZWRGaWVsZHMgPSBzZWxlY3RlZEZpZWxkcy5tYXAoZmllbGQgPT4ge1xuICAgIGlmIChmaWVsZCA9PT0gJ2lkJykgcmV0dXJuICdvYmplY3RJZCc7XG4gICAgcmV0dXJuIGZpZWxkLmVuZHNXaXRoKCcuaWQnKVxuICAgICAgPyBgJHtmaWVsZC5zdWJzdHJpbmcoMCwgZmllbGQubGFzdEluZGV4T2YoJy5pZCcpKX0ub2JqZWN0SWRgXG4gICAgICA6IGZpZWxkO1xuICB9KTtcbiAgbGV0IGtleXMgPSB1bmRlZmluZWQ7XG4gIGxldCBpbmNsdWRlID0gdW5kZWZpbmVkO1xuXG4gIGlmIChzZWxlY3RlZEZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAga2V5cyA9IFsuLi5uZXcgU2V0KHNlbGVjdGVkRmllbGRzKV0uam9pbignLCcpO1xuICAgIC8vIFdlIGNhbiB1c2UgdGhpcyBzaG9ydGN1dCBzaW5jZSBvcHRpbWl6YXRpb24gaXMgaGFuZGxlZFxuICAgIC8vIGxhdGVyIG9uIFJlc3RRdWVyeSwgYXZvaWQgb3ZlcmhlYWQgaGVyZS5cbiAgICBpbmNsdWRlID0ga2V5cztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLy8gSWYgYXV0aERhdGEgaXMgZGV0ZWN0ZWQga2V5cyB3aWxsIG5vdCB3b3JrIHByb3Blcmx5XG4gICAgLy8gc2luY2UgYXV0aERhdGEgaGFzIGEgc3BlY2lhbCBzdG9yYWdlIGJlaGF2aW9yXG4gICAgLy8gc28gd2UgbmVlZCB0byBza2lwIGtleXMgY3VycmVudGx5XG4gICAga2V5czoga2V5cyAmJiBrZXlzLmluZGV4T2YoJ2F1dGhEYXRhJykgPT09IC0xID8ga2V5cyA6IHVuZGVmaW5lZCxcbiAgICBpbmNsdWRlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFBhcnNlQ2xhc3NNdXRhdGlvbkNvbmZpZyA9IGZ1bmN0aW9uIChwYXJzZUNsYXNzQ29uZmlnKSB7XG4gIHJldHVybiAocGFyc2VDbGFzc0NvbmZpZyAmJiBwYXJzZUNsYXNzQ29uZmlnLm11dGF0aW9uKSB8fCB7fTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQXVDLFNBQUFELHVCQUFBRyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBRWhDLFNBQVNHLHNCQUFzQkEsQ0FBQ0MsSUFBSSxFQUFFO0VBQzNDLElBQUksQ0FBQ0EsSUFBSSxDQUFDQyxRQUFRLEVBQUU7SUFDbEIsTUFBTSxJQUFJQyxhQUFLLENBQUNDLEtBQUssQ0FBQ0QsYUFBSyxDQUFDQyxLQUFLLENBQUNDLG1CQUFtQixFQUFFLHNDQUFzQyxDQUFDO0VBQ2hHO0FBQ0Y7QUFFTyxTQUFTQyxjQUFjQSxDQUFDQyxLQUFLLEVBQUU7RUFDcEMsSUFBSUMsSUFBSSxFQUFFQyxPQUFPO0VBQ2pCLElBQUlGLEtBQUssWUFBWUosYUFBSyxDQUFDQyxLQUFLLEVBQUU7SUFDaENJLElBQUksR0FBR0QsS0FBSyxDQUFDQyxJQUFJO0lBQ2pCQyxPQUFPLEdBQUdGLEtBQUssQ0FBQ0UsT0FBTztFQUN6QixDQUFDLE1BQU07SUFDTEQsSUFBSSxHQUFHTCxhQUFLLENBQUNDLEtBQUssQ0FBQ00scUJBQXFCO0lBQ3hDRCxPQUFPLEdBQUcsdUJBQXVCO0VBQ25DO0VBQ0EsT0FBTyxJQUFJRSxxQkFBWSxDQUFDRixPQUFPLEVBQUU7SUFBRUcsVUFBVSxFQUFFO01BQUVKO0lBQUs7RUFBRSxDQUFDLENBQUM7QUFDNUQ7QUFFTyxNQUFNSyxxQkFBcUIsR0FBR0MsY0FBYyxJQUFJO0VBQ3JEQSxjQUFjLEdBQUdBLGNBQWMsQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLLElBQUksQ0FBQ0EsS0FBSyxDQUFDQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7RUFDOUU7RUFDQUgsY0FBYyxHQUFHQSxjQUFjLENBQUNJLEdBQUcsQ0FBQ0YsS0FBSyxJQUFJO0lBQzNDLElBQUlBLEtBQUssS0FBSyxJQUFJLEVBQUUsT0FBTyxVQUFVO0lBQ3JDLE9BQU9BLEtBQUssQ0FBQ0csUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUN2QixHQUFFSCxLQUFLLENBQUNJLFNBQVMsQ0FBQyxDQUFDLEVBQUVKLEtBQUssQ0FBQ0ssV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFFLFdBQVUsR0FDMURMLEtBQUs7RUFDWCxDQUFDLENBQUM7RUFDRixJQUFJTSxJQUFJLEdBQUdDLFNBQVM7RUFDcEIsSUFBSUMsT0FBTyxHQUFHRCxTQUFTO0VBRXZCLElBQUlULGNBQWMsQ0FBQ1csTUFBTSxHQUFHLENBQUMsRUFBRTtJQUM3QkgsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJSSxHQUFHLENBQUNaLGNBQWMsQ0FBQyxDQUFDLENBQUNhLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDN0M7SUFDQTtJQUNBSCxPQUFPLEdBQUdGLElBQUk7RUFDaEI7RUFFQSxPQUFPO0lBQ0w7SUFDQTtJQUNBO0lBQ0FBLElBQUksRUFBRUEsSUFBSSxJQUFJQSxJQUFJLENBQUNNLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBR04sSUFBSSxHQUFHQyxTQUFTO0lBQ2hFQztFQUNGLENBQUM7QUFDSCxDQUFDO0FBQUNLLE9BQUEsQ0FBQWhCLHFCQUFBLEdBQUFBLHFCQUFBO0FBRUssTUFBTWlCLDJCQUEyQixHQUFHLFNBQUFBLENBQVVDLGdCQUFnQixFQUFFO0VBQ3JFLE9BQVFBLGdCQUFnQixJQUFJQSxnQkFBZ0IsQ0FBQ0MsUUFBUSxJQUFLLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBQUNILE9BQUEsQ0FBQUMsMkJBQUEsR0FBQUEsMkJBQUEifQ==
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.transformConstraintTypeToGraphQL = void 0;
7
7
  var defaultGraphQLTypes = _interopRequireWildcard(require("../loaders/defaultGraphQLTypes"));
8
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
8
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
10
  const transformConstraintTypeToGraphQL = (parseType, targetClass, parseClassTypes, fieldName) => {
11
11
  if (fieldName === 'id' || fieldName === 'objectId') {
12
12
  return defaultGraphQLTypes.ID_WHERE_INPUT;
@@ -51,4 +51,4 @@ const transformConstraintTypeToGraphQL = (parseType, targetClass, parseClassType
51
51
  }
52
52
  };
53
53
  exports.transformConstraintTypeToGraphQL = transformConstraintTypeToGraphQL;
54
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWZhdWx0R3JhcGhRTFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsInRyYW5zZm9ybUNvbnN0cmFpbnRUeXBlVG9HcmFwaFFMIiwicGFyc2VUeXBlIiwidGFyZ2V0Q2xhc3MiLCJwYXJzZUNsYXNzVHlwZXMiLCJmaWVsZE5hbWUiLCJJRF9XSEVSRV9JTlBVVCIsIlNUUklOR19XSEVSRV9JTlBVVCIsIk5VTUJFUl9XSEVSRV9JTlBVVCIsIkJPT0xFQU5fV0hFUkVfSU5QVVQiLCJBUlJBWV9XSEVSRV9JTlBVVCIsIk9CSkVDVF9XSEVSRV9JTlBVVCIsIkRBVEVfV0hFUkVfSU5QVVQiLCJjbGFzc0dyYXBoUUxSZWxhdGlvbkNvbnN0cmFpbnRzVHlwZSIsIk9CSkVDVCIsIkZJTEVfV0hFUkVfSU5QVVQiLCJHRU9fUE9JTlRfV0hFUkVfSU5QVVQiLCJQT0xZR09OX1dIRVJFX0lOUFVUIiwiQllURVNfV0hFUkVfSU5QVVQiLCJ1bmRlZmluZWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0dyYXBoUUwvdHJhbnNmb3JtZXJzL2NvbnN0cmFpbnRUeXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGRlZmF1bHRHcmFwaFFMVHlwZXMgZnJvbSAnLi4vbG9hZGVycy9kZWZhdWx0R3JhcGhRTFR5cGVzJztcblxuY29uc3QgdHJhbnNmb3JtQ29uc3RyYWludFR5cGVUb0dyYXBoUUwgPSAocGFyc2VUeXBlLCB0YXJnZXRDbGFzcywgcGFyc2VDbGFzc1R5cGVzLCBmaWVsZE5hbWUpID0+IHtcbiAgaWYgKGZpZWxkTmFtZSA9PT0gJ2lkJyB8fCBmaWVsZE5hbWUgPT09ICdvYmplY3RJZCcpIHtcbiAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5JRF9XSEVSRV9JTlBVVDtcbiAgfVxuXG4gIHN3aXRjaCAocGFyc2VUeXBlKSB7XG4gICAgY2FzZSAnU3RyaW5nJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLlNUUklOR19XSEVSRV9JTlBVVDtcbiAgICBjYXNlICdOdW1iZXInOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuTlVNQkVSX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ0Jvb2xlYW4nOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuQk9PTEVBTl9XSEVSRV9JTlBVVDtcbiAgICBjYXNlICdBcnJheSc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5BUlJBWV9XSEVSRV9JTlBVVDtcbiAgICBjYXNlICdPYmplY3QnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuT0JKRUNUX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ0RhdGUnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuREFURV9XSEVSRV9JTlBVVDtcbiAgICBjYXNlICdQb2ludGVyJzpcbiAgICAgIGlmIChcbiAgICAgICAgcGFyc2VDbGFzc1R5cGVzW3RhcmdldENsYXNzXSAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTFJlbGF0aW9uQ29uc3RyYWludHNUeXBlXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMUmVsYXRpb25Db25zdHJhaW50c1R5cGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5PQkpFQ1Q7XG4gICAgICB9XG4gICAgY2FzZSAnRmlsZSc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5GSUxFX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ0dlb1BvaW50JzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkdFT19QT0lOVF9XSEVSRV9JTlBVVDtcbiAgICBjYXNlICdQb2x5Z29uJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLlBPTFlHT05fV0hFUkVfSU5QVVQ7XG4gICAgY2FzZSAnQnl0ZXMnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuQllURVNfV0hFUkVfSU5QVVQ7XG4gICAgY2FzZSAnQUNMJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLk9CSkVDVF9XSEVSRV9JTlBVVDtcbiAgICBjYXNlICdSZWxhdGlvbic6XG4gICAgICBpZiAoXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10gJiZcbiAgICAgICAgcGFyc2VDbGFzc1R5cGVzW3RhcmdldENsYXNzXS5jbGFzc0dyYXBoUUxSZWxhdGlvbkNvbnN0cmFpbnRzVHlwZVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTFJlbGF0aW9uQ29uc3RyYWludHNUeXBlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuT0JKRUNUO1xuICAgICAgfVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuXG5leHBvcnQgeyB0cmFuc2Zvcm1Db25zdHJhaW50VHlwZVRvR3JhcGhRTCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxt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
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWZhdWx0R3JhcGhRTFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwidHJhbnNmb3JtQ29uc3RyYWludFR5cGVUb0dyYXBoUUwiLCJwYXJzZVR5cGUiLCJ0YXJnZXRDbGFzcyIsInBhcnNlQ2xhc3NUeXBlcyIsImZpZWxkTmFtZSIsIklEX1dIRVJFX0lOUFVUIiwiU1RSSU5HX1dIRVJFX0lOUFVUIiwiTlVNQkVSX1dIRVJFX0lOUFVUIiwiQk9PTEVBTl9XSEVSRV9JTlBVVCIsIkFSUkFZX1dIRVJFX0lOUFVUIiwiT0JKRUNUX1dIRVJFX0lOUFVUIiwiREFURV9XSEVSRV9JTlBVVCIsImNsYXNzR3JhcGhRTFJlbGF0aW9uQ29uc3RyYWludHNUeXBlIiwiT0JKRUNUIiwiRklMRV9XSEVSRV9JTlBVVCIsIkdFT19QT0lOVF9XSEVSRV9JTlBVVCIsIlBPTFlHT05fV0hFUkVfSU5QVVQiLCJCWVRFU19XSEVSRV9JTlBVVCIsInVuZGVmaW5lZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvR3JhcGhRTC90cmFuc2Zvcm1lcnMvY29uc3RyYWludFR5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZGVmYXVsdEdyYXBoUUxUeXBlcyBmcm9tICcuLi9sb2FkZXJzL2RlZmF1bHRHcmFwaFFMVHlwZXMnO1xuXG5jb25zdCB0cmFuc2Zvcm1Db25zdHJhaW50VHlwZVRvR3JhcGhRTCA9IChwYXJzZVR5cGUsIHRhcmdldENsYXNzLCBwYXJzZUNsYXNzVHlwZXMsIGZpZWxkTmFtZSkgPT4ge1xuICBpZiAoZmllbGROYW1lID09PSAnaWQnIHx8IGZpZWxkTmFtZSA9PT0gJ29iamVjdElkJykge1xuICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLklEX1dIRVJFX0lOUFVUO1xuICB9XG5cbiAgc3dpdGNoIChwYXJzZVR5cGUpIHtcbiAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuU1RSSU5HX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ051bWJlcic6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5OVU1CRVJfV0hFUkVfSU5QVVQ7XG4gICAgY2FzZSAnQm9vbGVhbic6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5CT09MRUFOX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ0FycmF5JzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkFSUkFZX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ09iamVjdCc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5PQkpFQ1RfV0hFUkVfSU5QVVQ7XG4gICAgY2FzZSAnRGF0ZSc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5EQVRFX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ1BvaW50ZXInOlxuICAgICAgaWYgKFxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdICYmXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMUmVsYXRpb25Db25zdHJhaW50c1R5cGVcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcGFyc2VDbGFzc1R5cGVzW3RhcmdldENsYXNzXS5jbGFzc0dyYXBoUUxSZWxhdGlvbkNvbnN0cmFpbnRzVHlwZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLk9CSkVDVDtcbiAgICAgIH1cbiAgICBjYXNlICdGaWxlJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkZJTEVfV0hFUkVfSU5QVVQ7XG4gICAgY2FzZSAnR2VvUG9pbnQnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuR0VPX1BPSU5UX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ1BvbHlnb24nOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuUE9MWUdPTl9XSEVSRV9JTlBVVDtcbiAgICBjYXNlICdCeXRlcyc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5CWVRFU19XSEVSRV9JTlBVVDtcbiAgICBjYXNlICdBQ0wnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuT0JKRUNUX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ1JlbGF0aW9uJzpcbiAgICAgIGlmIChcbiAgICAgICAgcGFyc2VDbGFzc1R5cGVzW3RhcmdldENsYXNzXSAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTFJlbGF0aW9uQ29uc3RyYWludHNUeXBlXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMUmVsYXRpb25Db25zdHJhaW50c1R5cGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5PQkpFQ1Q7XG4gICAgICB9XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG5cbmV4cG9ydCB7IHRyYW5zZm9ybUNvbnN0cmFpbnRUeXBlVG9HcmFwaFFMIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLG1CQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFBc0UsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENB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
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.transformInputTypeToGraphQL = void 0;
7
7
  var _graphql = require("graphql");
8
8
  var defaultGraphQLTypes = _interopRequireWildcard(require("../loaders/defaultGraphQLTypes"));
9
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
11
  const transformInputTypeToGraphQL = (parseType, targetClass, parseClassTypes) => {
12
12
  switch (parseType) {
13
13
  case 'String':
@@ -49,4 +49,4 @@ const transformInputTypeToGraphQL = (parseType, targetClass, parseClassTypes) =>
49
49
  }
50
50
  };
51
51
  exports.transformInputTypeToGraphQL = transformInputTypeToGraphQL;
52
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ3JhcGhxbCIsInJlcXVpcmUiLCJkZWZhdWx0R3JhcGhRTFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwidHJhbnNmb3JtSW5wdXRUeXBlVG9HcmFwaFFMIiwicGFyc2VUeXBlIiwidGFyZ2V0Q2xhc3MiLCJwYXJzZUNsYXNzVHlwZXMiLCJHcmFwaFFMU3RyaW5nIiwiR3JhcGhRTEZsb2F0IiwiR3JhcGhRTEJvb2xlYW4iLCJHcmFwaFFMTGlzdCIsIkFOWSIsIk9CSkVDVCIsIkRBVEUiLCJjbGFzc0dyYXBoUUxQb2ludGVyVHlwZSIsImNsYXNzR3JhcGhRTFJlbGF0aW9uVHlwZSIsIkZJTEVfSU5QVVQiLCJHRU9fUE9JTlRfSU5QVVQiLCJQT0xZR09OX0lOUFVUIiwiQllURVMiLCJBQ0xfSU5QVVQiLCJ1bmRlZmluZWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0dyYXBoUUwvdHJhbnNmb3JtZXJzL2lucHV0VHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcmFwaFFMU3RyaW5nLCBHcmFwaFFMRmxvYXQsIEdyYXBoUUxCb29sZWFuLCBHcmFwaFFMTGlzdCB9IGZyb20gJ2dyYXBocWwnO1xuaW1wb3J0ICogYXMgZGVmYXVsdEdyYXBoUUxUeXBlcyBmcm9tICcuLi9sb2FkZXJzL2RlZmF1bHRHcmFwaFFMVHlwZXMnO1xuXG5jb25zdCB0cmFuc2Zvcm1JbnB1dFR5cGVUb0dyYXBoUUwgPSAocGFyc2VUeXBlLCB0YXJnZXRDbGFzcywgcGFyc2VDbGFzc1R5cGVzKSA9PiB7XG4gIHN3aXRjaCAocGFyc2VUeXBlKSB7XG4gICAgY2FzZSAnU3RyaW5nJzpcbiAgICAgIHJldHVybiBHcmFwaFFMU3RyaW5nO1xuICAgIGNhc2UgJ051bWJlcic6XG4gICAgICByZXR1cm4gR3JhcGhRTEZsb2F0O1xuICAgIGNhc2UgJ0Jvb2xlYW4nOlxuICAgICAgcmV0dXJuIEdyYXBoUUxCb29sZWFuO1xuICAgIGNhc2UgJ0FycmF5JzpcbiAgICAgIHJldHVybiBuZXcgR3JhcGhRTExpc3QoZGVmYXVsdEdyYXBoUUxUeXBlcy5BTlkpO1xuICAgIGNhc2UgJ09iamVjdCc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5PQkpFQ1Q7XG4gICAgY2FzZSAnRGF0ZSc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5EQVRFO1xuICAgIGNhc2UgJ1BvaW50ZXInOlxuICAgICAgaWYgKFxuICAgICAgICBwYXJzZUNsYXNzVHlwZXMgJiZcbiAgICAgICAgcGFyc2VDbGFzc1R5cGVzW3RhcmdldENsYXNzXSAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTFBvaW50ZXJUeXBlXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMUG9pbnRlclR5cGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5PQkpFQ1Q7XG4gICAgICB9XG4gICAgY2FzZSAnUmVsYXRpb24nOlxuICAgICAgaWYgKFxuICAgICAgICBwYXJzZUNsYXNzVHlwZXMgJiZcbiAgICAgICAgcGFyc2VDbGFzc1R5cGVzW3RhcmdldENsYXNzXSAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTFJlbGF0aW9uVHlwZVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTFJlbGF0aW9uVHlwZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLk9CSkVDVDtcbiAgICAgIH1cbiAgICBjYXNlICdGaWxlJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkZJTEVfSU5QVVQ7XG4gICAgY2FzZSAnR2VvUG9pbnQnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuR0VPX1BPSU5UX0lOUFVUO1xuICAgIGNhc2UgJ1BvbHlnb24nOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuUE9MWUdPTl9JTlBVVDtcbiAgICBjYXNlICdCeXRlcyc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5CWVRFUztcbiAgICBjYXNlICdBQ0wnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuQUNMX0lOUFVUO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuXG5leHBvcnQgeyB0cmFuc2Zvcm1JbnB1dFR5cGVUb0dyYXBoUUwgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsbUJBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUFzRSxTQUFBRyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBRix3QkFBQU0sR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdB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
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ3JhcGhxbCIsInJlcXVpcmUiLCJkZWZhdWx0R3JhcGhRTFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJ0cmFuc2Zvcm1JbnB1dFR5cGVUb0dyYXBoUUwiLCJwYXJzZVR5cGUiLCJ0YXJnZXRDbGFzcyIsInBhcnNlQ2xhc3NUeXBlcyIsIkdyYXBoUUxTdHJpbmciLCJHcmFwaFFMRmxvYXQiLCJHcmFwaFFMQm9vbGVhbiIsIkdyYXBoUUxMaXN0IiwiQU5ZIiwiT0JKRUNUIiwiREFURSIsImNsYXNzR3JhcGhRTFBvaW50ZXJUeXBlIiwiY2xhc3NHcmFwaFFMUmVsYXRpb25UeXBlIiwiRklMRV9JTlBVVCIsIkdFT19QT0lOVF9JTlBVVCIsIlBPTFlHT05fSU5QVVQiLCJCWVRFUyIsIkFDTF9JTlBVVCIsInVuZGVmaW5lZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvR3JhcGhRTC90cmFuc2Zvcm1lcnMvaW5wdXRUeXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyYXBoUUxTdHJpbmcsIEdyYXBoUUxGbG9hdCwgR3JhcGhRTEJvb2xlYW4sIEdyYXBoUUxMaXN0IH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0R3JhcGhRTFR5cGVzIGZyb20gJy4uL2xvYWRlcnMvZGVmYXVsdEdyYXBoUUxUeXBlcyc7XG5cbmNvbnN0IHRyYW5zZm9ybUlucHV0VHlwZVRvR3JhcGhRTCA9IChwYXJzZVR5cGUsIHRhcmdldENsYXNzLCBwYXJzZUNsYXNzVHlwZXMpID0+IHtcbiAgc3dpdGNoIChwYXJzZVR5cGUpIHtcbiAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgcmV0dXJuIEdyYXBoUUxTdHJpbmc7XG4gICAgY2FzZSAnTnVtYmVyJzpcbiAgICAgIHJldHVybiBHcmFwaFFMRmxvYXQ7XG4gICAgY2FzZSAnQm9vbGVhbic6XG4gICAgICByZXR1cm4gR3JhcGhRTEJvb2xlYW47XG4gICAgY2FzZSAnQXJyYXknOlxuICAgICAgcmV0dXJuIG5ldyBHcmFwaFFMTGlzdChkZWZhdWx0R3JhcGhRTFR5cGVzLkFOWSk7XG4gICAgY2FzZSAnT2JqZWN0JzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLk9CSkVDVDtcbiAgICBjYXNlICdEYXRlJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkRBVEU7XG4gICAgY2FzZSAnUG9pbnRlcic6XG4gICAgICBpZiAoXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlcyAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdICYmXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMUG9pbnRlclR5cGVcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcGFyc2VDbGFzc1R5cGVzW3RhcmdldENsYXNzXS5jbGFzc0dyYXBoUUxQb2ludGVyVHlwZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLk9CSkVDVDtcbiAgICAgIH1cbiAgICBjYXNlICdSZWxhdGlvbic6XG4gICAgICBpZiAoXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlcyAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdICYmXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMUmVsYXRpb25UeXBlXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMUmVsYXRpb25UeXBlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuT0JKRUNUO1xuICAgICAgfVxuICAgIGNhc2UgJ0ZpbGUnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuRklMRV9JTlBVVDtcbiAgICBjYXNlICdHZW9Qb2ludCc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5HRU9fUE9JTlRfSU5QVVQ7XG4gICAgY2FzZSAnUG9seWdvbic6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5QT0xZR09OX0lOUFVUO1xuICAgIGNhc2UgJ0J5dGVzJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkJZVEVTO1xuICAgIGNhc2UgJ0FDTCc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5BQ0xfSU5QVVQ7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG5cbmV4cG9ydCB7IHRyYW5zZm9ybUlucHV0VHlwZVRvR3JhcGhRTCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxtQkFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQXNFLFNBQUFHLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFGLHdCQUFBRSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFB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