serverless-spy 0.0.33 → 0.0.34

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 (49) hide show
  1. package/.jsii +9 -9
  2. package/common/publishSpyEvent.ts +269 -0
  3. package/dist/releasetag.txt +1 -1
  4. package/extension/interceptor.ts +24 -13
  5. package/functions/onConnect.ts +2 -1
  6. package/functions/onDisconnect.ts +2 -1
  7. package/functions/sendMessage.ts +3 -268
  8. package/lib/common/publishSpyEvent.d.ts +4 -0
  9. package/lib/common/publishSpyEvent.js +211 -0
  10. package/lib/common/publishSpyEvent.mjs +205 -0
  11. package/lib/extension/dist/layer/nodejs/node_modules/interceptor.js +13890 -13
  12. package/lib/extension/dist/layer/nodejs/node_modules/interceptor.js.map +4 -4
  13. package/lib/listener/{SpyListener.d.ts → ServerlessSpyListener.d.ts} +12 -12
  14. package/lib/listener/ServerlessSpyListener.js +3 -0
  15. package/lib/listener/ServerlessSpyListener.mjs +2 -0
  16. package/lib/listener/ServerlessSpyListenerParams.d.ts +5 -0
  17. package/lib/listener/ServerlessSpyListenerParams.js +3 -0
  18. package/lib/listener/ServerlessSpyListenerParams.mjs +2 -0
  19. package/lib/listener/SpyHandlers.ts.d.ts +1 -1
  20. package/lib/listener/SpyHandlers.ts.js +1 -1
  21. package/lib/listener/SpyHandlers.ts.mjs +1 -1
  22. package/lib/listener/WaitForParams.d.ts +5 -0
  23. package/lib/listener/WaitForParams.js +3 -0
  24. package/lib/listener/WaitForParams.mjs +2 -0
  25. package/lib/listener/WsListener.d.ts +38 -0
  26. package/lib/listener/WsListener.js +185 -0
  27. package/lib/listener/WsListener.mjs +181 -0
  28. package/lib/listener/createServerlessSpyListener.d.ts +2 -13
  29. package/lib/listener/createServerlessSpyListener.js +5 -163
  30. package/lib/listener/createServerlessSpyListener.mjs +5 -163
  31. package/lib/listener/index.d.ts +1 -1
  32. package/lib/listener/index.js +2 -2
  33. package/lib/listener/index.mjs +2 -2
  34. package/lib/src/ServerlessSpy.d.ts +16 -8
  35. package/lib/src/ServerlessSpy.js +94 -53
  36. package/lib/src/ServerlessSpy.mjs +93 -52
  37. package/lib/src/common/envVariableNames.d.ts +8 -0
  38. package/lib/src/common/envVariableNames.js +15 -0
  39. package/lib/src/common/envVariableNames.mjs +12 -0
  40. package/listener/{SpyListener.ts → ServerlessSpyListener.ts} +12 -13
  41. package/listener/ServerlessSpyListenerParams.ts +6 -0
  42. package/listener/SpyHandlers.ts.ts +1 -1
  43. package/listener/WaitForParams.ts +6 -0
  44. package/listener/WsListener.ts +273 -0
  45. package/listener/createServerlessSpyListener.ts +5 -265
  46. package/listener/index.ts +1 -1
  47. package/package.json +1 -1
  48. package/lib/listener/SpyListener.js +0 -3
  49. package/lib/listener/SpyListener.mjs +0 -2
@@ -1,17 +1,17 @@
1
- import { DynamoDBSpyEvent } from './../common/spyEvents/DynamoDBSpyEvent';
2
- import { EventBridgeRuleSpyEvent } from './../common/spyEvents/EventBridgeRuleSpyEvent';
3
- import { EventBridgeSpyEvent } from './../common/spyEvents/EventBridgeSpyEvent';
4
- import { FunctionConsoleSpyEvent } from './../common/spyEvents/FunctionConsoleSpyEvent';
5
- import { FunctionRequestSpyEvent } from './../common/spyEvents/FunctionRequestSpyEvent';
6
- import { FunctionResponseSpyEvent } from './../common/spyEvents/FunctionResponseSpyEvent';
7
- import { S3SpyEvent } from './../common/spyEvents/S3SpyEvent';
8
- import { SnsSubscriptionSpyEvent } from './../common/spyEvents/SnsSubscriptionSpyEvent';
9
- import { SnsTopicSpyEvent } from './../common/spyEvents/SnsTopicSpyEvent';
10
- import { SqsSpyEvent } from './../common/spyEvents/SqsSpyEvent';
11
- import { WaitForParams } from './createServerlessSpyListener';
1
+ import { DynamoDBSpyEvent } from '../common/spyEvents/DynamoDBSpyEvent';
2
+ import { EventBridgeRuleSpyEvent } from '../common/spyEvents/EventBridgeRuleSpyEvent';
3
+ import { EventBridgeSpyEvent } from '../common/spyEvents/EventBridgeSpyEvent';
4
+ import { FunctionConsoleSpyEvent } from '../common/spyEvents/FunctionConsoleSpyEvent';
5
+ import { FunctionRequestSpyEvent } from '../common/spyEvents/FunctionRequestSpyEvent';
6
+ import { FunctionResponseSpyEvent } from '../common/spyEvents/FunctionResponseSpyEvent';
7
+ import { S3SpyEvent } from '../common/spyEvents/S3SpyEvent';
8
+ import { SnsSubscriptionSpyEvent } from '../common/spyEvents/SnsSubscriptionSpyEvent';
9
+ import { SnsTopicSpyEvent } from '../common/spyEvents/SnsTopicSpyEvent';
10
+ import { SqsSpyEvent } from '../common/spyEvents/SqsSpyEvent';
12
11
  import { PrettifyForDisplay } from './PrettifyForDisplay';
13
12
  import { DynamoDBSpyHandler, EventBridgeSpyHandler, EventBridgeRuleSpyHandler, S3SpyHandler, SnsSubscriptionSpyHandler, SnsTopicSpyHandler, SqsSpyHandler, FunctionRequestSpyHandler, FunctionConsoleSpyHandler, FunctionResponseSpyHandler } from './SpyHandlers.ts';
14
- export declare type SpyListener<TSpyEvents> = {
13
+ import { WaitForParams } from './WaitForParams';
14
+ export declare type ServerlessSpyListener<TSpyEvents> = {
15
15
  [P in keyof FilterConditionally<TSpyEvents, `DynamoDB#${any}`> & string as `waitFor${P}`]: <T = any>(param?: PrettifyForDisplay<WaitForParams<PrettifyForDisplay<DynamoDBSpyEvent>>>) => Promise<DynamoDBSpyHandler<T>>;
16
16
  } & {
17
17
  [P in keyof FilterConditionally<TSpyEvents, `EventBridge#${any}`> & string as `waitFor${P}`]: <T = any>(param?: PrettifyForDisplay<WaitForParams<PrettifyForDisplay<EventBridgeSpyEvent<T>>>>) => Promise<EventBridgeSpyHandler<T>>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVybGVzc1NweUxpc3RlbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGlzdGVuZXIvU2VydmVybGVzc1NweUxpc3RlbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbW9EQlNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9EeW5hbW9EQlNweUV2ZW50JztcbmltcG9ydCB7IEV2ZW50QnJpZGdlUnVsZVNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9FdmVudEJyaWRnZVJ1bGVTcHlFdmVudCc7XG5pbXBvcnQgeyBFdmVudEJyaWRnZVNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9FdmVudEJyaWRnZVNweUV2ZW50JztcbmltcG9ydCB7IEZ1bmN0aW9uQ29uc29sZVNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9GdW5jdGlvbkNvbnNvbGVTcHlFdmVudCc7XG5pbXBvcnQgeyBGdW5jdGlvblJlcXVlc3RTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQnO1xuaW1wb3J0IHsgRnVuY3Rpb25SZXNwb25zZVNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9GdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQnO1xuaW1wb3J0IHsgUzNTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvUzNTcHlFdmVudCc7XG5pbXBvcnQgeyBTbnNTdWJzY3JpcHRpb25TcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvU25zU3Vic2NyaXB0aW9uU3B5RXZlbnQnO1xuaW1wb3J0IHsgU25zVG9waWNTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvU25zVG9waWNTcHlFdmVudCc7XG5pbXBvcnQgeyBTcXNTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvU3FzU3B5RXZlbnQnO1xuaW1wb3J0IHsgUHJldHRpZnlGb3JEaXNwbGF5IH0gZnJvbSAnLi9QcmV0dGlmeUZvckRpc3BsYXknO1xuaW1wb3J0IHtcbiAgRHluYW1vREJTcHlIYW5kbGVyLFxuICBFdmVudEJyaWRnZVNweUhhbmRsZXIsXG4gIEV2ZW50QnJpZGdlUnVsZVNweUhhbmRsZXIsXG4gIFMzU3B5SGFuZGxlcixcbiAgU25zU3Vic2NyaXB0aW9uU3B5SGFuZGxlcixcbiAgU25zVG9waWNTcHlIYW5kbGVyLFxuICBTcXNTcHlIYW5kbGVyLFxuICBGdW5jdGlvblJlcXVlc3RTcHlIYW5kbGVyLFxuICBGdW5jdGlvbkNvbnNvbGVTcHlIYW5kbGVyLFxuICBGdW5jdGlvblJlc3BvbnNlU3B5SGFuZGxlcixcbn0gZnJvbSAnLi9TcHlIYW5kbGVycy50cyc7XG5pbXBvcnQgeyBXYWl0Rm9yUGFyYW1zIH0gZnJvbSAnLi9XYWl0Rm9yUGFyYW1zJztcblxuZXhwb3J0IHR5cGUgU2VydmVybGVzc1NweUxpc3RlbmVyPFRTcHlFdmVudHM+ID0ge1xuICBbUCBpbiBrZXlvZiBGaWx0ZXJDb25kaXRpb25hbGx5PFRTcHlFdmVudHMsIGBEeW5hbW9EQiMke2FueX1gPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxEeW5hbW9EQlNweUV2ZW50Pj5cbiAgICA+XG4gICkgPT4gUHJvbWlzZTxEeW5hbW9EQlNweUhhbmRsZXI8VD4+O1xufSAmIHtcbiAgW1AgaW4ga2V5b2YgRmlsdGVyQ29uZGl0aW9uYWxseTxUU3B5RXZlbnRzLCBgRXZlbnRCcmlkZ2UjJHthbnl9YD4gJlxuICAgIHN0cmluZyBhcyBgd2FpdEZvciR7UH1gXTogPFQgPSBhbnk+KFxuICAgIHBhcmFtPzogUHJldHRpZnlGb3JEaXNwbGF5PFxuICAgICAgV2FpdEZvclBhcmFtczxQcmV0dGlmeUZvckRpc3BsYXk8RXZlbnRCcmlkZ2VTcHlFdmVudDxUPj4+XG4gICAgPlxuICApID0+IFByb21pc2U8RXZlbnRCcmlkZ2VTcHlIYW5kbGVyPFQ+Pjtcbn0gJiB7XG4gIFtQIGluIGtleW9mIEZpbHRlckNvbmRpdGlvbmFsbHk8VFNweUV2ZW50cywgYEV2ZW50QnJpZGdlUnVsZSMke2FueX1gPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxFdmVudEJyaWRnZVJ1bGVTcHlFdmVudDxUPj4+XG4gICAgPlxuICApID0+IFByb21pc2U8RXZlbnRCcmlkZ2VSdWxlU3B5SGFuZGxlcjxUPj47XG59ICYge1xuICBbUCBpbiBrZXlvZiBGaWx0ZXJDb25kaXRpb25hbGx5PFRTcHlFdmVudHMsIGBTMyMke2FueX1gPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiAoXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8V2FpdEZvclBhcmFtczxQcmV0dGlmeUZvckRpc3BsYXk8UzNTcHlFdmVudD4+PlxuICApID0+IFByb21pc2U8UzNTcHlIYW5kbGVyPjtcbn0gJiB7XG4gIFtQIGluIGtleW9mIEZpbHRlckNvbmRpdGlvbmFsbHk8VFNweUV2ZW50cywgYFNuc1N1YnNjcmlwdGlvbiMke2FueX1gPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxTbnNTdWJzY3JpcHRpb25TcHlFdmVudDxUPj4+XG4gICAgPlxuICApID0+IFByb21pc2U8U25zU3Vic2NyaXB0aW9uU3B5SGFuZGxlcjxUPj47XG59ICYge1xuICBbUCBpbiBrZXlvZiBGaWx0ZXJDb25kaXRpb25hbGx5PFRTcHlFdmVudHMsIGBTbnNUb3BpYyMke2FueX1gPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxTbnNUb3BpY1NweUV2ZW50PFQ+Pj5cbiAgICA+XG4gICkgPT4gUHJvbWlzZTxTbnNUb3BpY1NweUhhbmRsZXI8VD4+O1xufSAmIHtcbiAgW1AgaW4ga2V5b2YgRmlsdGVyQ29uZGl0aW9uYWxseTxUU3B5RXZlbnRzLCBgU3FzIyR7YW55fWA+ICZcbiAgICBzdHJpbmcgYXMgYHdhaXRGb3Ike1B9YF06IDxUID0gYW55PihcbiAgICBwYXJhbT86IFByZXR0aWZ5Rm9yRGlzcGxheTxcbiAgICAgIFdhaXRGb3JQYXJhbXM8UHJldHRpZnlGb3JEaXNwbGF5PFNxc1NweUV2ZW50PFQ+Pj5cbiAgICA+XG4gICkgPT4gUHJvbWlzZTxTcXNTcHlIYW5kbGVyPFQ+Pjtcbn0gJiB7XG4gIFtQIGluIGtleW9mIEZpbHRlckNvbmRpdGlvbmFsbHk8VFNweUV2ZW50cywgYEZ1bmN0aW9uIyR7YW55fSNSZXF1ZXN0YD4gJlxuICAgIHN0cmluZyBhcyBgd2FpdEZvciR7UH1gXTogPFQgPSBhbnk+KFxuICAgIHBhcmFtPzogUHJldHRpZnlGb3JEaXNwbGF5PFxuICAgICAgV2FpdEZvclBhcmFtczxQcmV0dGlmeUZvckRpc3BsYXk8RnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQ8VD4+PlxuICAgID5cbiAgKSA9PiBQcm9taXNlPEZ1bmN0aW9uUmVxdWVzdFNweUhhbmRsZXI8VD4+O1xufSAmIHtcbiAgW1AgaW4ga2V5b2YgRmlsdGVyQ29uZGl0aW9uYWxseTxUU3B5RXZlbnRzLCBgRnVuY3Rpb24jJHthbnl9I0NvbnNvbGVgPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvbkNvbnNvbGVTcHlFdmVudDxUPj4+XG4gICAgPlxuICApID0+IFByb21pc2U8RnVuY3Rpb25Db25zb2xlU3B5SGFuZGxlcjxUPj47XG59ICYge1xuICBbUCBpbiBrZXlvZiBGaWx0ZXJDb25kaXRpb25hbGx5PFRTcHlFdmVudHMsIGBGdW5jdGlvbiMke2FueX0jUmVzcG9uc2VgPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQ8VD4+PlxuICAgID4gLy8gICAgICBmaWx0ZXI/OiAoZXZlbnQ6IEZ1bmN0aW9uUmVzcG9uc2VTcHlFdmVudDxUPikgPT4gYm9vbGVhblxuICApID0+IFByb21pc2U8RnVuY3Rpb25SZXNwb25zZVNweUhhbmRsZXI8VD4+O1xufSAmIHtcbiAgc3RvcDogKCkgPT4gdm9pZDtcbn07XG5cbnR5cGUgRmlsdGVyQ29uZGl0aW9uYWxseTxTb3VyY2UsIENvbmRpdGlvbj4gPSBQaWNrPFxuICBTb3VyY2UsXG4gIHtcbiAgICBbSyBpbiBrZXlvZiBTb3VyY2VdOiBTb3VyY2VbS10gZXh0ZW5kcyBDb25kaXRpb24gPyBLIDogbmV2ZXI7XG4gIH1ba2V5b2YgU291cmNlXVxuPjtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVybGVzc1NweUxpc3RlbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGlzdGVuZXIvU2VydmVybGVzc1NweUxpc3RlbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbW9EQlNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9EeW5hbW9EQlNweUV2ZW50JztcbmltcG9ydCB7IEV2ZW50QnJpZGdlUnVsZVNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9FdmVudEJyaWRnZVJ1bGVTcHlFdmVudCc7XG5pbXBvcnQgeyBFdmVudEJyaWRnZVNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9FdmVudEJyaWRnZVNweUV2ZW50JztcbmltcG9ydCB7IEZ1bmN0aW9uQ29uc29sZVNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9GdW5jdGlvbkNvbnNvbGVTcHlFdmVudCc7XG5pbXBvcnQgeyBGdW5jdGlvblJlcXVlc3RTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQnO1xuaW1wb3J0IHsgRnVuY3Rpb25SZXNwb25zZVNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9GdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQnO1xuaW1wb3J0IHsgUzNTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvUzNTcHlFdmVudCc7XG5pbXBvcnQgeyBTbnNTdWJzY3JpcHRpb25TcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvU25zU3Vic2NyaXB0aW9uU3B5RXZlbnQnO1xuaW1wb3J0IHsgU25zVG9waWNTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvU25zVG9waWNTcHlFdmVudCc7XG5pbXBvcnQgeyBTcXNTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvU3FzU3B5RXZlbnQnO1xuaW1wb3J0IHsgUHJldHRpZnlGb3JEaXNwbGF5IH0gZnJvbSAnLi9QcmV0dGlmeUZvckRpc3BsYXknO1xuaW1wb3J0IHtcbiAgRHluYW1vREJTcHlIYW5kbGVyLFxuICBFdmVudEJyaWRnZVNweUhhbmRsZXIsXG4gIEV2ZW50QnJpZGdlUnVsZVNweUhhbmRsZXIsXG4gIFMzU3B5SGFuZGxlcixcbiAgU25zU3Vic2NyaXB0aW9uU3B5SGFuZGxlcixcbiAgU25zVG9waWNTcHlIYW5kbGVyLFxuICBTcXNTcHlIYW5kbGVyLFxuICBGdW5jdGlvblJlcXVlc3RTcHlIYW5kbGVyLFxuICBGdW5jdGlvbkNvbnNvbGVTcHlIYW5kbGVyLFxuICBGdW5jdGlvblJlc3BvbnNlU3B5SGFuZGxlcixcbn0gZnJvbSAnLi9TcHlIYW5kbGVycy50cyc7XG5pbXBvcnQgeyBXYWl0Rm9yUGFyYW1zIH0gZnJvbSAnLi9XYWl0Rm9yUGFyYW1zJztcblxuZXhwb3J0IHR5cGUgU2VydmVybGVzc1NweUxpc3RlbmVyPFRTcHlFdmVudHM+ID0ge1xuICBbUCBpbiBrZXlvZiBGaWx0ZXJDb25kaXRpb25hbGx5PFRTcHlFdmVudHMsIGBEeW5hbW9EQiMke2FueX1gPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxEeW5hbW9EQlNweUV2ZW50Pj5cbiAgICA+XG4gICkgPT4gUHJvbWlzZTxEeW5hbW9EQlNweUhhbmRsZXI8VD4+O1xufSAmIHtcbiAgW1AgaW4ga2V5b2YgRmlsdGVyQ29uZGl0aW9uYWxseTxUU3B5RXZlbnRzLCBgRXZlbnRCcmlkZ2UjJHthbnl9YD4gJlxuICAgIHN0cmluZyBhcyBgd2FpdEZvciR7UH1gXTogPFQgPSBhbnk+KFxuICAgIHBhcmFtPzogUHJldHRpZnlGb3JEaXNwbGF5PFxuICAgICAgV2FpdEZvclBhcmFtczxQcmV0dGlmeUZvckRpc3BsYXk8RXZlbnRCcmlkZ2VTcHlFdmVudDxUPj4+XG4gICAgPlxuICApID0+IFByb21pc2U8RXZlbnRCcmlkZ2VTcHlIYW5kbGVyPFQ+Pjtcbn0gJiB7XG4gIFtQIGluIGtleW9mIEZpbHRlckNvbmRpdGlvbmFsbHk8VFNweUV2ZW50cywgYEV2ZW50QnJpZGdlUnVsZSMke2FueX1gPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxFdmVudEJyaWRnZVJ1bGVTcHlFdmVudDxUPj4+XG4gICAgPlxuICApID0+IFByb21pc2U8RXZlbnRCcmlkZ2VSdWxlU3B5SGFuZGxlcjxUPj47XG59ICYge1xuICBbUCBpbiBrZXlvZiBGaWx0ZXJDb25kaXRpb25hbGx5PFRTcHlFdmVudHMsIGBTMyMke2FueX1gPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiAoXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8V2FpdEZvclBhcmFtczxQcmV0dGlmeUZvckRpc3BsYXk8UzNTcHlFdmVudD4+PlxuICApID0+IFByb21pc2U8UzNTcHlIYW5kbGVyPjtcbn0gJiB7XG4gIFtQIGluIGtleW9mIEZpbHRlckNvbmRpdGlvbmFsbHk8VFNweUV2ZW50cywgYFNuc1N1YnNjcmlwdGlvbiMke2FueX1gPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxTbnNTdWJzY3JpcHRpb25TcHlFdmVudDxUPj4+XG4gICAgPlxuICApID0+IFByb21pc2U8U25zU3Vic2NyaXB0aW9uU3B5SGFuZGxlcjxUPj47XG59ICYge1xuICBbUCBpbiBrZXlvZiBGaWx0ZXJDb25kaXRpb25hbGx5PFRTcHlFdmVudHMsIGBTbnNUb3BpYyMke2FueX1gPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxTbnNUb3BpY1NweUV2ZW50PFQ+Pj5cbiAgICA+XG4gICkgPT4gUHJvbWlzZTxTbnNUb3BpY1NweUhhbmRsZXI8VD4+O1xufSAmIHtcbiAgW1AgaW4ga2V5b2YgRmlsdGVyQ29uZGl0aW9uYWxseTxUU3B5RXZlbnRzLCBgU3FzIyR7YW55fWA+ICZcbiAgICBzdHJpbmcgYXMgYHdhaXRGb3Ike1B9YF06IDxUID0gYW55PihcbiAgICBwYXJhbT86IFByZXR0aWZ5Rm9yRGlzcGxheTxcbiAgICAgIFdhaXRGb3JQYXJhbXM8UHJldHRpZnlGb3JEaXNwbGF5PFNxc1NweUV2ZW50PFQ+Pj5cbiAgICA+XG4gICkgPT4gUHJvbWlzZTxTcXNTcHlIYW5kbGVyPFQ+Pjtcbn0gJiB7XG4gIFtQIGluIGtleW9mIEZpbHRlckNvbmRpdGlvbmFsbHk8VFNweUV2ZW50cywgYEZ1bmN0aW9uIyR7YW55fSNSZXF1ZXN0YD4gJlxuICAgIHN0cmluZyBhcyBgd2FpdEZvciR7UH1gXTogPFQgPSBhbnk+KFxuICAgIHBhcmFtPzogUHJldHRpZnlGb3JEaXNwbGF5PFxuICAgICAgV2FpdEZvclBhcmFtczxQcmV0dGlmeUZvckRpc3BsYXk8RnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQ8VD4+PlxuICAgID5cbiAgKSA9PiBQcm9taXNlPEZ1bmN0aW9uUmVxdWVzdFNweUhhbmRsZXI8VD4+O1xufSAmIHtcbiAgW1AgaW4ga2V5b2YgRmlsdGVyQ29uZGl0aW9uYWxseTxUU3B5RXZlbnRzLCBgRnVuY3Rpb24jJHthbnl9I0NvbnNvbGVgPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvbkNvbnNvbGVTcHlFdmVudDxUPj4+XG4gICAgPlxuICApID0+IFByb21pc2U8RnVuY3Rpb25Db25zb2xlU3B5SGFuZGxlcjxUPj47XG59ICYge1xuICBbUCBpbiBrZXlvZiBGaWx0ZXJDb25kaXRpb25hbGx5PFRTcHlFdmVudHMsIGBGdW5jdGlvbiMke2FueX0jUmVzcG9uc2VgPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQ8VD4+PlxuICAgID4gLy8gICAgICBmaWx0ZXI/OiAoZXZlbnQ6IEZ1bmN0aW9uUmVzcG9uc2VTcHlFdmVudDxUPikgPT4gYm9vbGVhblxuICApID0+IFByb21pc2U8RnVuY3Rpb25SZXNwb25zZVNweUhhbmRsZXI8VD4+O1xufSAmIHtcbiAgc3RvcDogKCkgPT4gdm9pZDtcbn07XG5cbnR5cGUgRmlsdGVyQ29uZGl0aW9uYWxseTxTb3VyY2UsIENvbmRpdGlvbj4gPSBQaWNrPFxuICBTb3VyY2UsXG4gIHtcbiAgICBbSyBpbiBrZXlvZiBTb3VyY2VdOiBTb3VyY2VbS10gZXh0ZW5kcyBDb25kaXRpb24gPyBLIDogbmV2ZXI7XG4gIH1ba2V5b2YgU291cmNlXVxuPjtcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ import { Credentials } from '@aws-sdk/types';
2
+ export declare type ServerlessSpyListenerParams = {
3
+ serverlessSpyWsUrl: string;
4
+ credentials?: Credentials;
5
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVybGVzc1NweUxpc3RlbmVyUGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGlzdGVuZXIvU2VydmVybGVzc1NweUxpc3RlbmVyUGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVkZW50aWFscyB9IGZyb20gJ0Bhd3Mtc2RrL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgU2VydmVybGVzc1NweUxpc3RlbmVyUGFyYW1zID0ge1xuICBzZXJ2ZXJsZXNzU3B5V3NVcmw6IHN0cmluZztcbiAgY3JlZGVudGlhbHM/OiBDcmVkZW50aWFscztcbn07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVybGVzc1NweUxpc3RlbmVyUGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGlzdGVuZXIvU2VydmVybGVzc1NweUxpc3RlbmVyUGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVkZW50aWFscyB9IGZyb20gJ0Bhd3Mtc2RrL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgU2VydmVybGVzc1NweUxpc3RlbmVyUGFyYW1zID0ge1xuICBzZXJ2ZXJsZXNzU3B5V3NVcmw6IHN0cmluZztcbiAgY3JlZGVudGlhbHM/OiBDcmVkZW50aWFscztcbn07XG4iXX0=
@@ -75,7 +75,7 @@ export interface EventBridgeSpyHandler<TData = any> extends JestExpectWithSpyMet
75
75
  getData: () => PrettifyForDisplay<EventBridgeSpyEvent<TData>>;
76
76
  }
77
77
  export interface FunctionBaseSpyHandler<TData = any> extends JestExpectWithSpyMethods<FunctionRequestSpyEvent<TData>, FunctionRequestSpyHandler<TData>> {
78
- followedByResponse: <TDataResponse = any>(param: {
78
+ followedByResponse: <TDataResponse = any>(param?: {
79
79
  condition?: (event: {
80
80
  spyEventType: 'FunctionResponse';
81
81
  request: TData;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3B5SGFuZGxlcnMudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saXN0ZW5lci9TcHlIYW5kbGVycy50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1vREJTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRHluYW1vREJTcHlFdmVudCc7XG5pbXBvcnQgeyBFdmVudEJyaWRnZVJ1bGVTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRXZlbnRCcmlkZ2VSdWxlU3B5RXZlbnQnO1xuaW1wb3J0IHsgRXZlbnRCcmlkZ2VTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRXZlbnRCcmlkZ2VTcHlFdmVudCc7XG5pbXBvcnQgeyBGdW5jdGlvbkNvbnNvbGVTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25Db25zb2xlU3B5RXZlbnQnO1xuaW1wb3J0IHsgRnVuY3Rpb25Db250ZXh0IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9GdW5jdGlvbkNvbnRleHQnO1xuaW1wb3J0IHsgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL0Z1bmN0aW9uUmVxdWVzdFNweUV2ZW50JztcbmltcG9ydCB7IEZ1bmN0aW9uUmVzcG9uc2VTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25SZXNwb25zZVNweUV2ZW50JztcbmltcG9ydCB7IFMzU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1MzU3B5RXZlbnQnO1xuaW1wb3J0IHsgU25zU3Vic2NyaXB0aW9uU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1Nuc1N1YnNjcmlwdGlvblNweUV2ZW50JztcbmltcG9ydCB7IFNuc1RvcGljU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1Nuc1RvcGljU3B5RXZlbnQnO1xuaW1wb3J0IHsgU3FzU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1Nxc1NweUV2ZW50JztcbmltcG9ydCB7IFByZXR0aWZ5Rm9yRGlzcGxheSB9IGZyb20gJy4vUHJldHRpZnlGb3JEaXNwbGF5JztcbmltcG9ydCB7IFJlY3Vyc2l2ZVBhcnRpYWwgfSBmcm9tICcuL1JlY3Vyc2l2ZVBhcnRpYWwnO1xuXG50eXBlIE15SmVzdE1hdGNoZXJzID0gUmV0dXJuVHlwZTx0eXBlb2YgZXhwZWN0PjtcbnR5cGUgTXlKZXN0TWF0Y2hlcnNXaXRPbmx5RnVuY3Rpb25zID0gUGljazxcbiAgTXlKZXN0TWF0Y2hlcnMsXG4gIHtcbiAgICBbUCBpbiBrZXlvZiBNeUplc3RNYXRjaGVyc106IE15SmVzdE1hdGNoZXJzW1BdIGV4dGVuZHMgKC4uLmFyZ3M6IGFueSkgPT4gYW55XG4gICAgICA/IFBcbiAgICAgIDogbmV2ZXI7XG4gIH1ba2V5b2YgTXlKZXN0TWF0Y2hlcnNdXG4+O1xudHlwZSBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8VFNweUV2ZW50LCBUU3B5SGFuZGxlcj4gPSBPbWl0PFxuICB7XG4gICAgLy8gdG9NYXRjaE9iamVjdDogKGV4cGVjdGVkOiBSZWN1cnNpdmVQYXJ0aWFsPFRTcHlFdmVudD4pID0+IFRTcHlIYW5kbGVyO1xuICAgIFtLIGluIGtleW9mIE15SmVzdE1hdGNoZXJzV2l0T25seUZ1bmN0aW9uc106IChcbiAgICAgIC4uLmFyZ3M6IFBhcmFtZXRlcnM8TXlKZXN0TWF0Y2hlcnNXaXRPbmx5RnVuY3Rpb25zW0tdPlxuICAgICkgPT4gVFNweUhhbmRsZXI7XG4gIH0sXG4gICd0b0NvbnRhaW5FcXVhbCcgfCAndG9FcXVhbCcgfCAndG9NYXRjaE9iamVjdCcgfCAndG9TdHJpY3RFcXVhbCdcbj4gJiB7XG4gIC8qKlxuICAgKiBVc2VkIHdoZW4geW91IHdhbnQgdG8gY2hlY2sgdGhhdCBhbiBpdGVtIGlzIGluIGEgbGlzdC5cbiAgICogRm9yIHRlc3RpbmcgdGhlIGl0ZW1zIGluIHRoZSBsaXN0LCB0aGlzIG1hdGNoZXIgcmVjdXJzaXZlbHkgY2hlY2tzIHRoZVxuICAgKiBlcXVhbGl0eSBvZiBhbGwgZmllbGRzLCByYXRoZXIgdGhhbiBjaGVja2luZyBmb3Igb2JqZWN0IGlkZW50aXR5LlxuICAgKlxuICAgKiBPcHRpb25hbGx5LCB5b3UgY2FuIHByb3ZpZGUgYSB0eXBlIGZvciB0aGUgZXhwZWN0ZWQgdmFsdWUgdmlhIGEgZ2VuZXJpYy5cbiAgICogVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBlbnN1cmluZyBleHBlY3RlZCBvYmplY3RzIGhhdmUgdGhlIHJpZ2h0IHN0cnVjdHVyZS5cbiAgICovXG5cbiAgdG9Db250YWluRXF1YWwoZXhwZWN0ZWQ6IFRTcHlFdmVudCk6IFRTcHlIYW5kbGVyO1xuICAvKipcbiAgICogVXNlZCB3aGVuIHlvdSB3YW50IHRvIGNoZWNrIHRoYXQgdHdvIG9iamVjdHMgaGF2ZSB0aGUgc2FtZSB2YWx1ZS5cbiAgICogVGhpcyBtYXRjaGVyIHJlY3Vyc2l2ZWx5IGNoZWNrcyB0aGUgZXF1YWxpdHkgb2YgYWxsIGZpZWxkcywgcmF0aGVyIHRoYW4gY2hlY2tpbmcgZm9yIG9iamVjdCBpZGVudGl0eS5cbiAgICpcbiAgICogT3B0aW9uYWxseSwgeW91IGNhbiBwcm92aWRlIGEgdHlwZSBmb3IgdGhlIGV4cGVjdGVkIHZhbHVlIHZpYSBhIGdlbmVyaWMuXG4gICAqIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgZW5zdXJpbmcgZXhwZWN0ZWQgb2JqZWN0cyBoYXZlIHRoZSByaWdodCBzdHJ1Y3R1cmUuXG4gICAqL1xuXG4gIHRvRXF1YWwoZXhwZWN0ZWQ6IFRTcHlFdmVudCk6IFRTcHlIYW5kbGVyO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGNoZWNrIHRoYXQgYSBKYXZhU2NyaXB0IG9iamVjdCBtYXRjaGVzIGEgc3Vic2V0IG9mIHRoZSBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdFxuICAgKlxuICAgKiBPcHRpb25hbGx5LCB5b3UgY2FuIHByb3ZpZGUgYW4gb2JqZWN0IHRvIHVzZSBhcyBHZW5lcmljIHR5cGUgZm9yIHRoZSBleHBlY3RlZCB2YWx1ZS5cbiAgICogVGhpcyBlbnN1cmVzIHRoYXQgdGhlIG1hdGNoaW5nIG9iamVjdCBtYXRjaGVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHByb3ZpZGVkIG9iamVjdC1saWtlIHR5cGUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIHR5cGUgSG91c2UgPSB7XG4gICAqICAgYmF0aDogYm9vbGVhbjtcbiAgICogICBiZWRyb29tczogbnVtYmVyO1xuICAgKiAgIGtpdGNoZW46IHtcbiAgICogICAgIGFtZW5pdGllczogc3RyaW5nW107XG4gICAqICAgICBhcmVhOiBudW1iZXI7XG4gICAqICAgICB3YWxsQ29sb3I6IHN0cmluZztcbiAgICogICB9XG4gICAqIH07XG4gICAqXG4gICAqIGV4cGVjdChkZXNpcmVkSG91c2UpLnRvTWF0Y2hPYmplY3Q8SG91c2U+KHsuLi5zdGFuZGFyZEhvdXNlLCBraXRjaGVuOiB7YXJlYTogMjB9fSkgLy8gd2hlcmVpbiBzdGFuZGFyZEhvdXNlIGlzIHNvbWUgYmFzZSBvYmplY3Qgb2YgdHlwZSBIb3VzZVxuICAgKi9cblxuICB0b01hdGNoT2JqZWN0KFxuICAgIGV4cGVjdGVkOiBQcmV0dGlmeUZvckRpc3BsYXk8UmVjdXJzaXZlUGFydGlhbDxUU3B5RXZlbnQ+PlxuICApOiBUU3B5SGFuZGxlcjtcblxuICAvKipcbiAgICogVXNlIHRvIHRlc3QgdGhhdCBvYmplY3RzIGhhdmUgdGhlIHNhbWUgdHlwZXMgYXMgd2VsbCBhcyBzdHJ1Y3R1cmUuXG4gICAqXG4gICAqIE9wdGlvbmFsbHksIHlvdSBjYW4gcHJvdmlkZSBhIHR5cGUgZm9yIHRoZSBleHBlY3RlZCB2YWx1ZSB2aWEgYSBnZW5lcmljLlxuICAgKiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIGVuc3VyaW5nIGV4cGVjdGVkIG9iamVjdHMgaGF2ZSB0aGUgcmlnaHQgc3RydWN0dXJlLlxuICAgKi9cblxuICB0b1N0cmljdEVxdWFsKGV4cGVjdGVkOiBUU3B5RXZlbnQpOiBUU3B5SGFuZGxlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1vREJTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBEeW5hbW9EQlNweUV2ZW50PFREYXRhPixcbiAgICBEeW5hbW9EQlNweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8RHluYW1vREJTcHlFdmVudDxURGF0YT4+O1xufVxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJyaWRnZVJ1bGVTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBFdmVudEJyaWRnZVJ1bGVTcHlFdmVudDxURGF0YT4sXG4gICAgRXZlbnRCcmlkZ2VSdWxlU3B5SGFuZGxlcjxURGF0YT5cbiAgPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxFdmVudEJyaWRnZVJ1bGVTcHlFdmVudDxURGF0YT4+O1xufVxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJyaWRnZVNweUhhbmRsZXI8VERhdGEgPSBhbnk+XG4gIGV4dGVuZHMgSmVzdEV4cGVjdFdpdGhTcHlNZXRob2RzPFxuICAgIEV2ZW50QnJpZGdlU3B5RXZlbnQ8VERhdGE+LFxuICAgIEV2ZW50QnJpZGdlU3B5SGFuZGxlcjxURGF0YT5cbiAgPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxFdmVudEJyaWRnZVNweUV2ZW50PFREYXRhPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25CYXNlU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQ8VERhdGE+LFxuICAgIEZ1bmN0aW9uUmVxdWVzdFNweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICAvLyBmb2xsd2VkQnlDb25zb2xlTG9nOiAoKSA9PiBQcm9taXNlPFxuICAvLyAgIEZ1bmN0aW9uQmFzZVNweUhhbmRsZXI8VERhdGE+ICZcbiAgLy8gICAgIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgLy8gICAgICAgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQ8VERhdGE+LFxuICAvLyAgICAgICBGdW5jdGlvblJlcXVlc3RTcHlIYW5kbGVyPFREYXRhPlxuICAvLyAgICAgPlxuICAvLyA+O1xuICBmb2xsb3dlZEJ5UmVzcG9uc2U6IDxURGF0YVJlc3BvbnNlID0gYW55PihcbiAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGNvbmZ1c2VzIFR5cGVTY3JpcHQgd2hpY2ggZG9lcyBub3QgYWNjdXJhdGVseSBkaXNwbGF5IHRoZSB0eXBlLlxuICAgIC8vIExlYXZlIGl0IGZvciByZWZlcmVuY2UhXG4gICAgLy8gcGFyYW06IFByZXR0aWZ5Rm9yRGlzcGxheTxcbiAgICAvLyAgIFdhaXRGb3JQYXJhbXM8XG4gICAgLy8gICAgIFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQ8VERhdGEsIFREYXRhUmVzcG9uc2U+PlxuICAgIC8vICAgPlxuICAgIC8vID5cbiAgICBwYXJhbToge1xuICAgICAgY29uZGl0aW9uPzogKGV2ZW50OiB7XG4gICAgICAgIHNweUV2ZW50VHlwZTogJ0Z1bmN0aW9uUmVzcG9uc2UnO1xuICAgICAgICByZXF1ZXN0OiBURGF0YTtcbiAgICAgICAgY29udGV4dDogRnVuY3Rpb25Db250ZXh0O1xuICAgICAgICByZXNwb25zZTogVERhdGFSZXNwb25zZTtcbiAgICAgIH0pID0+IGJvb2xlYW47XG4gICAgICB0aW1vdXRNcz86IG51bWJlcjtcbiAgICB9XG4gICkgPT4gUHJvbWlzZTxcbiAgICBGdW5jdGlvblJlc3BvbnNlU3B5SGFuZGxlciAmXG4gICAgICBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgICAgIEZ1bmN0aW9uUmVxdWVzdFNweUV2ZW50PFREYXRhPixcbiAgICAgICAgRnVuY3Rpb25SZXF1ZXN0U3B5SGFuZGxlcjxURGF0YT5cbiAgICAgID5cbiAgPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblJlcXVlc3RTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEZ1bmN0aW9uQmFzZVNweUhhbmRsZXI8VERhdGE+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PEZ1bmN0aW9uUmVxdWVzdFNweUV2ZW50PFREYXRhPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25Db25zb2xlU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBGdW5jdGlvbkJhc2VTcHlIYW5kbGVyPFREYXRhPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvbkNvbnNvbGVTcHlFdmVudDxURGF0YT4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uUmVzcG9uc2VTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBGdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQ8VERhdGE+LFxuICAgIEZ1bmN0aW9uUmVzcG9uc2VTcHlIYW5kbGVyPFREYXRhPlxuICA+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PEZ1bmN0aW9uUmVzcG9uc2VTcHlFdmVudDxURGF0YT4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFMzU3B5SGFuZGxlclxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxTM1NweUV2ZW50LCBTM1NweUhhbmRsZXI+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUzNTcHlFdmVudDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU25zU3Vic2NyaXB0aW9uU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgU25zU3Vic2NyaXB0aW9uU3B5RXZlbnQ8VERhdGE+LFxuICAgIFNuc1N1YnNjcmlwdGlvblNweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8U25zU3Vic2NyaXB0aW9uU3B5RXZlbnQ8VERhdGE+Pjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU25zVG9waWNTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBTbnNUb3BpY1NweUV2ZW50PFREYXRhPixcbiAgICBTbnNUb3BpY1NweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8U25zVG9waWNTcHlFdmVudDxURGF0YT4+O1xufVxuZXhwb3J0IGludGVyZmFjZSBTcXNTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxTcXNTcHlFdmVudDxURGF0YT4sIFNxc1NweUhhbmRsZXI8VERhdGE+PiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxTcXNTcHlFdmVudDxURGF0YT4+O1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3B5SGFuZGxlcnMudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saXN0ZW5lci9TcHlIYW5kbGVycy50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1vREJTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRHluYW1vREJTcHlFdmVudCc7XG5pbXBvcnQgeyBFdmVudEJyaWRnZVJ1bGVTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRXZlbnRCcmlkZ2VSdWxlU3B5RXZlbnQnO1xuaW1wb3J0IHsgRXZlbnRCcmlkZ2VTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRXZlbnRCcmlkZ2VTcHlFdmVudCc7XG5pbXBvcnQgeyBGdW5jdGlvbkNvbnNvbGVTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25Db25zb2xlU3B5RXZlbnQnO1xuaW1wb3J0IHsgRnVuY3Rpb25Db250ZXh0IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9GdW5jdGlvbkNvbnRleHQnO1xuaW1wb3J0IHsgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL0Z1bmN0aW9uUmVxdWVzdFNweUV2ZW50JztcbmltcG9ydCB7IEZ1bmN0aW9uUmVzcG9uc2VTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25SZXNwb25zZVNweUV2ZW50JztcbmltcG9ydCB7IFMzU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1MzU3B5RXZlbnQnO1xuaW1wb3J0IHsgU25zU3Vic2NyaXB0aW9uU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1Nuc1N1YnNjcmlwdGlvblNweUV2ZW50JztcbmltcG9ydCB7IFNuc1RvcGljU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1Nuc1RvcGljU3B5RXZlbnQnO1xuaW1wb3J0IHsgU3FzU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1Nxc1NweUV2ZW50JztcbmltcG9ydCB7IFByZXR0aWZ5Rm9yRGlzcGxheSB9IGZyb20gJy4vUHJldHRpZnlGb3JEaXNwbGF5JztcbmltcG9ydCB7IFJlY3Vyc2l2ZVBhcnRpYWwgfSBmcm9tICcuL1JlY3Vyc2l2ZVBhcnRpYWwnO1xuXG50eXBlIE15SmVzdE1hdGNoZXJzID0gUmV0dXJuVHlwZTx0eXBlb2YgZXhwZWN0PjtcbnR5cGUgTXlKZXN0TWF0Y2hlcnNXaXRPbmx5RnVuY3Rpb25zID0gUGljazxcbiAgTXlKZXN0TWF0Y2hlcnMsXG4gIHtcbiAgICBbUCBpbiBrZXlvZiBNeUplc3RNYXRjaGVyc106IE15SmVzdE1hdGNoZXJzW1BdIGV4dGVuZHMgKC4uLmFyZ3M6IGFueSkgPT4gYW55XG4gICAgICA/IFBcbiAgICAgIDogbmV2ZXI7XG4gIH1ba2V5b2YgTXlKZXN0TWF0Y2hlcnNdXG4+O1xudHlwZSBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8VFNweUV2ZW50LCBUU3B5SGFuZGxlcj4gPSBPbWl0PFxuICB7XG4gICAgLy8gdG9NYXRjaE9iamVjdDogKGV4cGVjdGVkOiBSZWN1cnNpdmVQYXJ0aWFsPFRTcHlFdmVudD4pID0+IFRTcHlIYW5kbGVyO1xuICAgIFtLIGluIGtleW9mIE15SmVzdE1hdGNoZXJzV2l0T25seUZ1bmN0aW9uc106IChcbiAgICAgIC4uLmFyZ3M6IFBhcmFtZXRlcnM8TXlKZXN0TWF0Y2hlcnNXaXRPbmx5RnVuY3Rpb25zW0tdPlxuICAgICkgPT4gVFNweUhhbmRsZXI7XG4gIH0sXG4gICd0b0NvbnRhaW5FcXVhbCcgfCAndG9FcXVhbCcgfCAndG9NYXRjaE9iamVjdCcgfCAndG9TdHJpY3RFcXVhbCdcbj4gJiB7XG4gIC8qKlxuICAgKiBVc2VkIHdoZW4geW91IHdhbnQgdG8gY2hlY2sgdGhhdCBhbiBpdGVtIGlzIGluIGEgbGlzdC5cbiAgICogRm9yIHRlc3RpbmcgdGhlIGl0ZW1zIGluIHRoZSBsaXN0LCB0aGlzIG1hdGNoZXIgcmVjdXJzaXZlbHkgY2hlY2tzIHRoZVxuICAgKiBlcXVhbGl0eSBvZiBhbGwgZmllbGRzLCByYXRoZXIgdGhhbiBjaGVja2luZyBmb3Igb2JqZWN0IGlkZW50aXR5LlxuICAgKlxuICAgKiBPcHRpb25hbGx5LCB5b3UgY2FuIHByb3ZpZGUgYSB0eXBlIGZvciB0aGUgZXhwZWN0ZWQgdmFsdWUgdmlhIGEgZ2VuZXJpYy5cbiAgICogVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBlbnN1cmluZyBleHBlY3RlZCBvYmplY3RzIGhhdmUgdGhlIHJpZ2h0IHN0cnVjdHVyZS5cbiAgICovXG5cbiAgdG9Db250YWluRXF1YWwoZXhwZWN0ZWQ6IFRTcHlFdmVudCk6IFRTcHlIYW5kbGVyO1xuICAvKipcbiAgICogVXNlZCB3aGVuIHlvdSB3YW50IHRvIGNoZWNrIHRoYXQgdHdvIG9iamVjdHMgaGF2ZSB0aGUgc2FtZSB2YWx1ZS5cbiAgICogVGhpcyBtYXRjaGVyIHJlY3Vyc2l2ZWx5IGNoZWNrcyB0aGUgZXF1YWxpdHkgb2YgYWxsIGZpZWxkcywgcmF0aGVyIHRoYW4gY2hlY2tpbmcgZm9yIG9iamVjdCBpZGVudGl0eS5cbiAgICpcbiAgICogT3B0aW9uYWxseSwgeW91IGNhbiBwcm92aWRlIGEgdHlwZSBmb3IgdGhlIGV4cGVjdGVkIHZhbHVlIHZpYSBhIGdlbmVyaWMuXG4gICAqIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgZW5zdXJpbmcgZXhwZWN0ZWQgb2JqZWN0cyBoYXZlIHRoZSByaWdodCBzdHJ1Y3R1cmUuXG4gICAqL1xuXG4gIHRvRXF1YWwoZXhwZWN0ZWQ6IFRTcHlFdmVudCk6IFRTcHlIYW5kbGVyO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGNoZWNrIHRoYXQgYSBKYXZhU2NyaXB0IG9iamVjdCBtYXRjaGVzIGEgc3Vic2V0IG9mIHRoZSBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdFxuICAgKlxuICAgKiBPcHRpb25hbGx5LCB5b3UgY2FuIHByb3ZpZGUgYW4gb2JqZWN0IHRvIHVzZSBhcyBHZW5lcmljIHR5cGUgZm9yIHRoZSBleHBlY3RlZCB2YWx1ZS5cbiAgICogVGhpcyBlbnN1cmVzIHRoYXQgdGhlIG1hdGNoaW5nIG9iamVjdCBtYXRjaGVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHByb3ZpZGVkIG9iamVjdC1saWtlIHR5cGUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIHR5cGUgSG91c2UgPSB7XG4gICAqICAgYmF0aDogYm9vbGVhbjtcbiAgICogICBiZWRyb29tczogbnVtYmVyO1xuICAgKiAgIGtpdGNoZW46IHtcbiAgICogICAgIGFtZW5pdGllczogc3RyaW5nW107XG4gICAqICAgICBhcmVhOiBudW1iZXI7XG4gICAqICAgICB3YWxsQ29sb3I6IHN0cmluZztcbiAgICogICB9XG4gICAqIH07XG4gICAqXG4gICAqIGV4cGVjdChkZXNpcmVkSG91c2UpLnRvTWF0Y2hPYmplY3Q8SG91c2U+KHsuLi5zdGFuZGFyZEhvdXNlLCBraXRjaGVuOiB7YXJlYTogMjB9fSkgLy8gd2hlcmVpbiBzdGFuZGFyZEhvdXNlIGlzIHNvbWUgYmFzZSBvYmplY3Qgb2YgdHlwZSBIb3VzZVxuICAgKi9cblxuICB0b01hdGNoT2JqZWN0KFxuICAgIGV4cGVjdGVkOiBQcmV0dGlmeUZvckRpc3BsYXk8UmVjdXJzaXZlUGFydGlhbDxUU3B5RXZlbnQ+PlxuICApOiBUU3B5SGFuZGxlcjtcblxuICAvKipcbiAgICogVXNlIHRvIHRlc3QgdGhhdCBvYmplY3RzIGhhdmUgdGhlIHNhbWUgdHlwZXMgYXMgd2VsbCBhcyBzdHJ1Y3R1cmUuXG4gICAqXG4gICAqIE9wdGlvbmFsbHksIHlvdSBjYW4gcHJvdmlkZSBhIHR5cGUgZm9yIHRoZSBleHBlY3RlZCB2YWx1ZSB2aWEgYSBnZW5lcmljLlxuICAgKiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIGVuc3VyaW5nIGV4cGVjdGVkIG9iamVjdHMgaGF2ZSB0aGUgcmlnaHQgc3RydWN0dXJlLlxuICAgKi9cblxuICB0b1N0cmljdEVxdWFsKGV4cGVjdGVkOiBUU3B5RXZlbnQpOiBUU3B5SGFuZGxlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1vREJTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBEeW5hbW9EQlNweUV2ZW50PFREYXRhPixcbiAgICBEeW5hbW9EQlNweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8RHluYW1vREJTcHlFdmVudDxURGF0YT4+O1xufVxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJyaWRnZVJ1bGVTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBFdmVudEJyaWRnZVJ1bGVTcHlFdmVudDxURGF0YT4sXG4gICAgRXZlbnRCcmlkZ2VSdWxlU3B5SGFuZGxlcjxURGF0YT5cbiAgPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxFdmVudEJyaWRnZVJ1bGVTcHlFdmVudDxURGF0YT4+O1xufVxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJyaWRnZVNweUhhbmRsZXI8VERhdGEgPSBhbnk+XG4gIGV4dGVuZHMgSmVzdEV4cGVjdFdpdGhTcHlNZXRob2RzPFxuICAgIEV2ZW50QnJpZGdlU3B5RXZlbnQ8VERhdGE+LFxuICAgIEV2ZW50QnJpZGdlU3B5SGFuZGxlcjxURGF0YT5cbiAgPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxFdmVudEJyaWRnZVNweUV2ZW50PFREYXRhPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25CYXNlU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQ8VERhdGE+LFxuICAgIEZ1bmN0aW9uUmVxdWVzdFNweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICAvLyBmb2xsd2VkQnlDb25zb2xlTG9nOiAoKSA9PiBQcm9taXNlPFxuICAvLyAgIEZ1bmN0aW9uQmFzZVNweUhhbmRsZXI8VERhdGE+ICZcbiAgLy8gICAgIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgLy8gICAgICAgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQ8VERhdGE+LFxuICAvLyAgICAgICBGdW5jdGlvblJlcXVlc3RTcHlIYW5kbGVyPFREYXRhPlxuICAvLyAgICAgPlxuICAvLyA+O1xuICBmb2xsb3dlZEJ5UmVzcG9uc2U6IDxURGF0YVJlc3BvbnNlID0gYW55PihcbiAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGNvbmZ1c2VzIFR5cGVTY3JpcHQgd2hpY2ggZG9lcyBub3QgYWNjdXJhdGVseSBkaXNwbGF5IHRoZSB0eXBlLlxuICAgIC8vIExlYXZlIGl0IGZvciByZWZlcmVuY2UhXG4gICAgLy8gcGFyYW06IFByZXR0aWZ5Rm9yRGlzcGxheTxcbiAgICAvLyAgIFdhaXRGb3JQYXJhbXM8XG4gICAgLy8gICAgIFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQ8VERhdGEsIFREYXRhUmVzcG9uc2U+PlxuICAgIC8vICAgPlxuICAgIC8vID5cbiAgICBwYXJhbT86IHtcbiAgICAgIGNvbmRpdGlvbj86IChldmVudDoge1xuICAgICAgICBzcHlFdmVudFR5cGU6ICdGdW5jdGlvblJlc3BvbnNlJztcbiAgICAgICAgcmVxdWVzdDogVERhdGE7XG4gICAgICAgIGNvbnRleHQ6IEZ1bmN0aW9uQ29udGV4dDtcbiAgICAgICAgcmVzcG9uc2U6IFREYXRhUmVzcG9uc2U7XG4gICAgICB9KSA9PiBib29sZWFuO1xuICAgICAgdGltb3V0TXM/OiBudW1iZXI7XG4gICAgfVxuICApID0+IFByb21pc2U8XG4gICAgRnVuY3Rpb25SZXNwb25zZVNweUhhbmRsZXIgJlxuICAgICAgSmVzdEV4cGVjdFdpdGhTcHlNZXRob2RzPFxuICAgICAgICBGdW5jdGlvblJlcXVlc3RTcHlFdmVudDxURGF0YT4sXG4gICAgICAgIEZ1bmN0aW9uUmVxdWVzdFNweUhhbmRsZXI8VERhdGE+XG4gICAgICA+XG4gID47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25SZXF1ZXN0U3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBGdW5jdGlvbkJhc2VTcHlIYW5kbGVyPFREYXRhPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvblJlcXVlc3RTcHlFdmVudDxURGF0YT4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uQ29uc29sZVNweUhhbmRsZXI8VERhdGEgPSBhbnk+XG4gIGV4dGVuZHMgRnVuY3Rpb25CYXNlU3B5SGFuZGxlcjxURGF0YT4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8RnVuY3Rpb25Db25zb2xlU3B5RXZlbnQ8VERhdGE+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblJlc3BvbnNlU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgRnVuY3Rpb25SZXNwb25zZVNweUV2ZW50PFREYXRhPixcbiAgICBGdW5jdGlvblJlc3BvbnNlU3B5SGFuZGxlcjxURGF0YT5cbiAgPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQ8VERhdGE+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTM1NweUhhbmRsZXJcbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8UzNTcHlFdmVudCwgUzNTcHlIYW5kbGVyPiB7XG4gIGdldERhdGE6ICgpID0+IFMzU3B5RXZlbnQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNuc1N1YnNjcmlwdGlvblNweUhhbmRsZXI8VERhdGEgPSBhbnk+XG4gIGV4dGVuZHMgSmVzdEV4cGVjdFdpdGhTcHlNZXRob2RzPFxuICAgIFNuc1N1YnNjcmlwdGlvblNweUV2ZW50PFREYXRhPixcbiAgICBTbnNTdWJzY3JpcHRpb25TcHlIYW5kbGVyPFREYXRhPlxuICA+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PFNuc1N1YnNjcmlwdGlvblNweUV2ZW50PFREYXRhPj47XG59XG5leHBvcnQgaW50ZXJmYWNlIFNuc1RvcGljU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgU25zVG9waWNTcHlFdmVudDxURGF0YT4sXG4gICAgU25zVG9waWNTcHlIYW5kbGVyPFREYXRhPlxuICA+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PFNuc1RvcGljU3B5RXZlbnQ8VERhdGE+Pjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU3FzU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8U3FzU3B5RXZlbnQ8VERhdGE+LCBTcXNTcHlIYW5kbGVyPFREYXRhPj4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8U3FzU3B5RXZlbnQ8VERhdGE+Pjtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3B5SGFuZGxlcnMudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saXN0ZW5lci9TcHlIYW5kbGVycy50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1vREJTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRHluYW1vREJTcHlFdmVudCc7XG5pbXBvcnQgeyBFdmVudEJyaWRnZVJ1bGVTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRXZlbnRCcmlkZ2VSdWxlU3B5RXZlbnQnO1xuaW1wb3J0IHsgRXZlbnRCcmlkZ2VTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRXZlbnRCcmlkZ2VTcHlFdmVudCc7XG5pbXBvcnQgeyBGdW5jdGlvbkNvbnNvbGVTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25Db25zb2xlU3B5RXZlbnQnO1xuaW1wb3J0IHsgRnVuY3Rpb25Db250ZXh0IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9GdW5jdGlvbkNvbnRleHQnO1xuaW1wb3J0IHsgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL0Z1bmN0aW9uUmVxdWVzdFNweUV2ZW50JztcbmltcG9ydCB7IEZ1bmN0aW9uUmVzcG9uc2VTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25SZXNwb25zZVNweUV2ZW50JztcbmltcG9ydCB7IFMzU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1MzU3B5RXZlbnQnO1xuaW1wb3J0IHsgU25zU3Vic2NyaXB0aW9uU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1Nuc1N1YnNjcmlwdGlvblNweUV2ZW50JztcbmltcG9ydCB7IFNuc1RvcGljU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1Nuc1RvcGljU3B5RXZlbnQnO1xuaW1wb3J0IHsgU3FzU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1Nxc1NweUV2ZW50JztcbmltcG9ydCB7IFByZXR0aWZ5Rm9yRGlzcGxheSB9IGZyb20gJy4vUHJldHRpZnlGb3JEaXNwbGF5JztcbmltcG9ydCB7IFJlY3Vyc2l2ZVBhcnRpYWwgfSBmcm9tICcuL1JlY3Vyc2l2ZVBhcnRpYWwnO1xuXG50eXBlIE15SmVzdE1hdGNoZXJzID0gUmV0dXJuVHlwZTx0eXBlb2YgZXhwZWN0PjtcbnR5cGUgTXlKZXN0TWF0Y2hlcnNXaXRPbmx5RnVuY3Rpb25zID0gUGljazxcbiAgTXlKZXN0TWF0Y2hlcnMsXG4gIHtcbiAgICBbUCBpbiBrZXlvZiBNeUplc3RNYXRjaGVyc106IE15SmVzdE1hdGNoZXJzW1BdIGV4dGVuZHMgKC4uLmFyZ3M6IGFueSkgPT4gYW55XG4gICAgICA/IFBcbiAgICAgIDogbmV2ZXI7XG4gIH1ba2V5b2YgTXlKZXN0TWF0Y2hlcnNdXG4+O1xudHlwZSBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8VFNweUV2ZW50LCBUU3B5SGFuZGxlcj4gPSBPbWl0PFxuICB7XG4gICAgLy8gdG9NYXRjaE9iamVjdDogKGV4cGVjdGVkOiBSZWN1cnNpdmVQYXJ0aWFsPFRTcHlFdmVudD4pID0+IFRTcHlIYW5kbGVyO1xuICAgIFtLIGluIGtleW9mIE15SmVzdE1hdGNoZXJzV2l0T25seUZ1bmN0aW9uc106IChcbiAgICAgIC4uLmFyZ3M6IFBhcmFtZXRlcnM8TXlKZXN0TWF0Y2hlcnNXaXRPbmx5RnVuY3Rpb25zW0tdPlxuICAgICkgPT4gVFNweUhhbmRsZXI7XG4gIH0sXG4gICd0b0NvbnRhaW5FcXVhbCcgfCAndG9FcXVhbCcgfCAndG9NYXRjaE9iamVjdCcgfCAndG9TdHJpY3RFcXVhbCdcbj4gJiB7XG4gIC8qKlxuICAgKiBVc2VkIHdoZW4geW91IHdhbnQgdG8gY2hlY2sgdGhhdCBhbiBpdGVtIGlzIGluIGEgbGlzdC5cbiAgICogRm9yIHRlc3RpbmcgdGhlIGl0ZW1zIGluIHRoZSBsaXN0LCB0aGlzIG1hdGNoZXIgcmVjdXJzaXZlbHkgY2hlY2tzIHRoZVxuICAgKiBlcXVhbGl0eSBvZiBhbGwgZmllbGRzLCByYXRoZXIgdGhhbiBjaGVja2luZyBmb3Igb2JqZWN0IGlkZW50aXR5LlxuICAgKlxuICAgKiBPcHRpb25hbGx5LCB5b3UgY2FuIHByb3ZpZGUgYSB0eXBlIGZvciB0aGUgZXhwZWN0ZWQgdmFsdWUgdmlhIGEgZ2VuZXJpYy5cbiAgICogVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBlbnN1cmluZyBleHBlY3RlZCBvYmplY3RzIGhhdmUgdGhlIHJpZ2h0IHN0cnVjdHVyZS5cbiAgICovXG5cbiAgdG9Db250YWluRXF1YWwoZXhwZWN0ZWQ6IFRTcHlFdmVudCk6IFRTcHlIYW5kbGVyO1xuICAvKipcbiAgICogVXNlZCB3aGVuIHlvdSB3YW50IHRvIGNoZWNrIHRoYXQgdHdvIG9iamVjdHMgaGF2ZSB0aGUgc2FtZSB2YWx1ZS5cbiAgICogVGhpcyBtYXRjaGVyIHJlY3Vyc2l2ZWx5IGNoZWNrcyB0aGUgZXF1YWxpdHkgb2YgYWxsIGZpZWxkcywgcmF0aGVyIHRoYW4gY2hlY2tpbmcgZm9yIG9iamVjdCBpZGVudGl0eS5cbiAgICpcbiAgICogT3B0aW9uYWxseSwgeW91IGNhbiBwcm92aWRlIGEgdHlwZSBmb3IgdGhlIGV4cGVjdGVkIHZhbHVlIHZpYSBhIGdlbmVyaWMuXG4gICAqIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgZW5zdXJpbmcgZXhwZWN0ZWQgb2JqZWN0cyBoYXZlIHRoZSByaWdodCBzdHJ1Y3R1cmUuXG4gICAqL1xuXG4gIHRvRXF1YWwoZXhwZWN0ZWQ6IFRTcHlFdmVudCk6IFRTcHlIYW5kbGVyO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGNoZWNrIHRoYXQgYSBKYXZhU2NyaXB0IG9iamVjdCBtYXRjaGVzIGEgc3Vic2V0IG9mIHRoZSBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdFxuICAgKlxuICAgKiBPcHRpb25hbGx5LCB5b3UgY2FuIHByb3ZpZGUgYW4gb2JqZWN0IHRvIHVzZSBhcyBHZW5lcmljIHR5cGUgZm9yIHRoZSBleHBlY3RlZCB2YWx1ZS5cbiAgICogVGhpcyBlbnN1cmVzIHRoYXQgdGhlIG1hdGNoaW5nIG9iamVjdCBtYXRjaGVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHByb3ZpZGVkIG9iamVjdC1saWtlIHR5cGUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIHR5cGUgSG91c2UgPSB7XG4gICAqICAgYmF0aDogYm9vbGVhbjtcbiAgICogICBiZWRyb29tczogbnVtYmVyO1xuICAgKiAgIGtpdGNoZW46IHtcbiAgICogICAgIGFtZW5pdGllczogc3RyaW5nW107XG4gICAqICAgICBhcmVhOiBudW1iZXI7XG4gICAqICAgICB3YWxsQ29sb3I6IHN0cmluZztcbiAgICogICB9XG4gICAqIH07XG4gICAqXG4gICAqIGV4cGVjdChkZXNpcmVkSG91c2UpLnRvTWF0Y2hPYmplY3Q8SG91c2U+KHsuLi5zdGFuZGFyZEhvdXNlLCBraXRjaGVuOiB7YXJlYTogMjB9fSkgLy8gd2hlcmVpbiBzdGFuZGFyZEhvdXNlIGlzIHNvbWUgYmFzZSBvYmplY3Qgb2YgdHlwZSBIb3VzZVxuICAgKi9cblxuICB0b01hdGNoT2JqZWN0KFxuICAgIGV4cGVjdGVkOiBQcmV0dGlmeUZvckRpc3BsYXk8UmVjdXJzaXZlUGFydGlhbDxUU3B5RXZlbnQ+PlxuICApOiBUU3B5SGFuZGxlcjtcblxuICAvKipcbiAgICogVXNlIHRvIHRlc3QgdGhhdCBvYmplY3RzIGhhdmUgdGhlIHNhbWUgdHlwZXMgYXMgd2VsbCBhcyBzdHJ1Y3R1cmUuXG4gICAqXG4gICAqIE9wdGlvbmFsbHksIHlvdSBjYW4gcHJvdmlkZSBhIHR5cGUgZm9yIHRoZSBleHBlY3RlZCB2YWx1ZSB2aWEgYSBnZW5lcmljLlxuICAgKiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIGVuc3VyaW5nIGV4cGVjdGVkIG9iamVjdHMgaGF2ZSB0aGUgcmlnaHQgc3RydWN0dXJlLlxuICAgKi9cblxuICB0b1N0cmljdEVxdWFsKGV4cGVjdGVkOiBUU3B5RXZlbnQpOiBUU3B5SGFuZGxlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1vREJTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBEeW5hbW9EQlNweUV2ZW50PFREYXRhPixcbiAgICBEeW5hbW9EQlNweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8RHluYW1vREJTcHlFdmVudDxURGF0YT4+O1xufVxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJyaWRnZVJ1bGVTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBFdmVudEJyaWRnZVJ1bGVTcHlFdmVudDxURGF0YT4sXG4gICAgRXZlbnRCcmlkZ2VSdWxlU3B5SGFuZGxlcjxURGF0YT5cbiAgPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxFdmVudEJyaWRnZVJ1bGVTcHlFdmVudDxURGF0YT4+O1xufVxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJyaWRnZVNweUhhbmRsZXI8VERhdGEgPSBhbnk+XG4gIGV4dGVuZHMgSmVzdEV4cGVjdFdpdGhTcHlNZXRob2RzPFxuICAgIEV2ZW50QnJpZGdlU3B5RXZlbnQ8VERhdGE+LFxuICAgIEV2ZW50QnJpZGdlU3B5SGFuZGxlcjxURGF0YT5cbiAgPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxFdmVudEJyaWRnZVNweUV2ZW50PFREYXRhPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25CYXNlU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQ8VERhdGE+LFxuICAgIEZ1bmN0aW9uUmVxdWVzdFNweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICAvLyBmb2xsd2VkQnlDb25zb2xlTG9nOiAoKSA9PiBQcm9taXNlPFxuICAvLyAgIEZ1bmN0aW9uQmFzZVNweUhhbmRsZXI8VERhdGE+ICZcbiAgLy8gICAgIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgLy8gICAgICAgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQ8VERhdGE+LFxuICAvLyAgICAgICBGdW5jdGlvblJlcXVlc3RTcHlIYW5kbGVyPFREYXRhPlxuICAvLyAgICAgPlxuICAvLyA+O1xuICBmb2xsb3dlZEJ5UmVzcG9uc2U6IDxURGF0YVJlc3BvbnNlID0gYW55PihcbiAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGNvbmZ1c2VzIFR5cGVTY3JpcHQgd2hpY2ggZG9lcyBub3QgYWNjdXJhdGVseSBkaXNwbGF5IHRoZSB0eXBlLlxuICAgIC8vIExlYXZlIGl0IGZvciByZWZlcmVuY2UhXG4gICAgLy8gcGFyYW06IFByZXR0aWZ5Rm9yRGlzcGxheTxcbiAgICAvLyAgIFdhaXRGb3JQYXJhbXM8XG4gICAgLy8gICAgIFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQ8VERhdGEsIFREYXRhUmVzcG9uc2U+PlxuICAgIC8vICAgPlxuICAgIC8vID5cbiAgICBwYXJhbToge1xuICAgICAgY29uZGl0aW9uPzogKGV2ZW50OiB7XG4gICAgICAgIHNweUV2ZW50VHlwZTogJ0Z1bmN0aW9uUmVzcG9uc2UnO1xuICAgICAgICByZXF1ZXN0OiBURGF0YTtcbiAgICAgICAgY29udGV4dDogRnVuY3Rpb25Db250ZXh0O1xuICAgICAgICByZXNwb25zZTogVERhdGFSZXNwb25zZTtcbiAgICAgIH0pID0+IGJvb2xlYW47XG4gICAgICB0aW1vdXRNcz86IG51bWJlcjtcbiAgICB9XG4gICkgPT4gUHJvbWlzZTxcbiAgICBGdW5jdGlvblJlc3BvbnNlU3B5SGFuZGxlciAmXG4gICAgICBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgICAgIEZ1bmN0aW9uUmVxdWVzdFNweUV2ZW50PFREYXRhPixcbiAgICAgICAgRnVuY3Rpb25SZXF1ZXN0U3B5SGFuZGxlcjxURGF0YT5cbiAgICAgID5cbiAgPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblJlcXVlc3RTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEZ1bmN0aW9uQmFzZVNweUhhbmRsZXI8VERhdGE+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PEZ1bmN0aW9uUmVxdWVzdFNweUV2ZW50PFREYXRhPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25Db25zb2xlU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBGdW5jdGlvbkJhc2VTcHlIYW5kbGVyPFREYXRhPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvbkNvbnNvbGVTcHlFdmVudDxURGF0YT4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uUmVzcG9uc2VTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBGdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQ8VERhdGE+LFxuICAgIEZ1bmN0aW9uUmVzcG9uc2VTcHlIYW5kbGVyPFREYXRhPlxuICA+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PEZ1bmN0aW9uUmVzcG9uc2VTcHlFdmVudDxURGF0YT4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFMzU3B5SGFuZGxlclxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxTM1NweUV2ZW50LCBTM1NweUhhbmRsZXI+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUzNTcHlFdmVudDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU25zU3Vic2NyaXB0aW9uU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgU25zU3Vic2NyaXB0aW9uU3B5RXZlbnQ8VERhdGE+LFxuICAgIFNuc1N1YnNjcmlwdGlvblNweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8U25zU3Vic2NyaXB0aW9uU3B5RXZlbnQ8VERhdGE+Pjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU25zVG9waWNTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBTbnNUb3BpY1NweUV2ZW50PFREYXRhPixcbiAgICBTbnNUb3BpY1NweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8U25zVG9waWNTcHlFdmVudDxURGF0YT4+O1xufVxuZXhwb3J0IGludGVyZmFjZSBTcXNTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxTcXNTcHlFdmVudDxURGF0YT4sIFNxc1NweUhhbmRsZXI8VERhdGE+PiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxTcXNTcHlFdmVudDxURGF0YT4+O1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3B5SGFuZGxlcnMudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saXN0ZW5lci9TcHlIYW5kbGVycy50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1vREJTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRHluYW1vREJTcHlFdmVudCc7XG5pbXBvcnQgeyBFdmVudEJyaWRnZVJ1bGVTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRXZlbnRCcmlkZ2VSdWxlU3B5RXZlbnQnO1xuaW1wb3J0IHsgRXZlbnRCcmlkZ2VTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRXZlbnRCcmlkZ2VTcHlFdmVudCc7XG5pbXBvcnQgeyBGdW5jdGlvbkNvbnNvbGVTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25Db25zb2xlU3B5RXZlbnQnO1xuaW1wb3J0IHsgRnVuY3Rpb25Db250ZXh0IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9GdW5jdGlvbkNvbnRleHQnO1xuaW1wb3J0IHsgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL0Z1bmN0aW9uUmVxdWVzdFNweUV2ZW50JztcbmltcG9ydCB7IEZ1bmN0aW9uUmVzcG9uc2VTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25SZXNwb25zZVNweUV2ZW50JztcbmltcG9ydCB7IFMzU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1MzU3B5RXZlbnQnO1xuaW1wb3J0IHsgU25zU3Vic2NyaXB0aW9uU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1Nuc1N1YnNjcmlwdGlvblNweUV2ZW50JztcbmltcG9ydCB7IFNuc1RvcGljU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1Nuc1RvcGljU3B5RXZlbnQnO1xuaW1wb3J0IHsgU3FzU3B5RXZlbnQgfSBmcm9tICcuLi9jb21tb24vc3B5RXZlbnRzL1Nxc1NweUV2ZW50JztcbmltcG9ydCB7IFByZXR0aWZ5Rm9yRGlzcGxheSB9IGZyb20gJy4vUHJldHRpZnlGb3JEaXNwbGF5JztcbmltcG9ydCB7IFJlY3Vyc2l2ZVBhcnRpYWwgfSBmcm9tICcuL1JlY3Vyc2l2ZVBhcnRpYWwnO1xuXG50eXBlIE15SmVzdE1hdGNoZXJzID0gUmV0dXJuVHlwZTx0eXBlb2YgZXhwZWN0PjtcbnR5cGUgTXlKZXN0TWF0Y2hlcnNXaXRPbmx5RnVuY3Rpb25zID0gUGljazxcbiAgTXlKZXN0TWF0Y2hlcnMsXG4gIHtcbiAgICBbUCBpbiBrZXlvZiBNeUplc3RNYXRjaGVyc106IE15SmVzdE1hdGNoZXJzW1BdIGV4dGVuZHMgKC4uLmFyZ3M6IGFueSkgPT4gYW55XG4gICAgICA/IFBcbiAgICAgIDogbmV2ZXI7XG4gIH1ba2V5b2YgTXlKZXN0TWF0Y2hlcnNdXG4+O1xudHlwZSBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8VFNweUV2ZW50LCBUU3B5SGFuZGxlcj4gPSBPbWl0PFxuICB7XG4gICAgLy8gdG9NYXRjaE9iamVjdDogKGV4cGVjdGVkOiBSZWN1cnNpdmVQYXJ0aWFsPFRTcHlFdmVudD4pID0+IFRTcHlIYW5kbGVyO1xuICAgIFtLIGluIGtleW9mIE15SmVzdE1hdGNoZXJzV2l0T25seUZ1bmN0aW9uc106IChcbiAgICAgIC4uLmFyZ3M6IFBhcmFtZXRlcnM8TXlKZXN0TWF0Y2hlcnNXaXRPbmx5RnVuY3Rpb25zW0tdPlxuICAgICkgPT4gVFNweUhhbmRsZXI7XG4gIH0sXG4gICd0b0NvbnRhaW5FcXVhbCcgfCAndG9FcXVhbCcgfCAndG9NYXRjaE9iamVjdCcgfCAndG9TdHJpY3RFcXVhbCdcbj4gJiB7XG4gIC8qKlxuICAgKiBVc2VkIHdoZW4geW91IHdhbnQgdG8gY2hlY2sgdGhhdCBhbiBpdGVtIGlzIGluIGEgbGlzdC5cbiAgICogRm9yIHRlc3RpbmcgdGhlIGl0ZW1zIGluIHRoZSBsaXN0LCB0aGlzIG1hdGNoZXIgcmVjdXJzaXZlbHkgY2hlY2tzIHRoZVxuICAgKiBlcXVhbGl0eSBvZiBhbGwgZmllbGRzLCByYXRoZXIgdGhhbiBjaGVja2luZyBmb3Igb2JqZWN0IGlkZW50aXR5LlxuICAgKlxuICAgKiBPcHRpb25hbGx5LCB5b3UgY2FuIHByb3ZpZGUgYSB0eXBlIGZvciB0aGUgZXhwZWN0ZWQgdmFsdWUgdmlhIGEgZ2VuZXJpYy5cbiAgICogVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBlbnN1cmluZyBleHBlY3RlZCBvYmplY3RzIGhhdmUgdGhlIHJpZ2h0IHN0cnVjdHVyZS5cbiAgICovXG5cbiAgdG9Db250YWluRXF1YWwoZXhwZWN0ZWQ6IFRTcHlFdmVudCk6IFRTcHlIYW5kbGVyO1xuICAvKipcbiAgICogVXNlZCB3aGVuIHlvdSB3YW50IHRvIGNoZWNrIHRoYXQgdHdvIG9iamVjdHMgaGF2ZSB0aGUgc2FtZSB2YWx1ZS5cbiAgICogVGhpcyBtYXRjaGVyIHJlY3Vyc2l2ZWx5IGNoZWNrcyB0aGUgZXF1YWxpdHkgb2YgYWxsIGZpZWxkcywgcmF0aGVyIHRoYW4gY2hlY2tpbmcgZm9yIG9iamVjdCBpZGVudGl0eS5cbiAgICpcbiAgICogT3B0aW9uYWxseSwgeW91IGNhbiBwcm92aWRlIGEgdHlwZSBmb3IgdGhlIGV4cGVjdGVkIHZhbHVlIHZpYSBhIGdlbmVyaWMuXG4gICAqIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgZW5zdXJpbmcgZXhwZWN0ZWQgb2JqZWN0cyBoYXZlIHRoZSByaWdodCBzdHJ1Y3R1cmUuXG4gICAqL1xuXG4gIHRvRXF1YWwoZXhwZWN0ZWQ6IFRTcHlFdmVudCk6IFRTcHlIYW5kbGVyO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGNoZWNrIHRoYXQgYSBKYXZhU2NyaXB0IG9iamVjdCBtYXRjaGVzIGEgc3Vic2V0IG9mIHRoZSBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdFxuICAgKlxuICAgKiBPcHRpb25hbGx5LCB5b3UgY2FuIHByb3ZpZGUgYW4gb2JqZWN0IHRvIHVzZSBhcyBHZW5lcmljIHR5cGUgZm9yIHRoZSBleHBlY3RlZCB2YWx1ZS5cbiAgICogVGhpcyBlbnN1cmVzIHRoYXQgdGhlIG1hdGNoaW5nIG9iamVjdCBtYXRjaGVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHByb3ZpZGVkIG9iamVjdC1saWtlIHR5cGUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIHR5cGUgSG91c2UgPSB7XG4gICAqICAgYmF0aDogYm9vbGVhbjtcbiAgICogICBiZWRyb29tczogbnVtYmVyO1xuICAgKiAgIGtpdGNoZW46IHtcbiAgICogICAgIGFtZW5pdGllczogc3RyaW5nW107XG4gICAqICAgICBhcmVhOiBudW1iZXI7XG4gICAqICAgICB3YWxsQ29sb3I6IHN0cmluZztcbiAgICogICB9XG4gICAqIH07XG4gICAqXG4gICAqIGV4cGVjdChkZXNpcmVkSG91c2UpLnRvTWF0Y2hPYmplY3Q8SG91c2U+KHsuLi5zdGFuZGFyZEhvdXNlLCBraXRjaGVuOiB7YXJlYTogMjB9fSkgLy8gd2hlcmVpbiBzdGFuZGFyZEhvdXNlIGlzIHNvbWUgYmFzZSBvYmplY3Qgb2YgdHlwZSBIb3VzZVxuICAgKi9cblxuICB0b01hdGNoT2JqZWN0KFxuICAgIGV4cGVjdGVkOiBQcmV0dGlmeUZvckRpc3BsYXk8UmVjdXJzaXZlUGFydGlhbDxUU3B5RXZlbnQ+PlxuICApOiBUU3B5SGFuZGxlcjtcblxuICAvKipcbiAgICogVXNlIHRvIHRlc3QgdGhhdCBvYmplY3RzIGhhdmUgdGhlIHNhbWUgdHlwZXMgYXMgd2VsbCBhcyBzdHJ1Y3R1cmUuXG4gICAqXG4gICAqIE9wdGlvbmFsbHksIHlvdSBjYW4gcHJvdmlkZSBhIHR5cGUgZm9yIHRoZSBleHBlY3RlZCB2YWx1ZSB2aWEgYSBnZW5lcmljLlxuICAgKiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIGVuc3VyaW5nIGV4cGVjdGVkIG9iamVjdHMgaGF2ZSB0aGUgcmlnaHQgc3RydWN0dXJlLlxuICAgKi9cblxuICB0b1N0cmljdEVxdWFsKGV4cGVjdGVkOiBUU3B5RXZlbnQpOiBUU3B5SGFuZGxlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1vREJTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBEeW5hbW9EQlNweUV2ZW50PFREYXRhPixcbiAgICBEeW5hbW9EQlNweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8RHluYW1vREJTcHlFdmVudDxURGF0YT4+O1xufVxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJyaWRnZVJ1bGVTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBFdmVudEJyaWRnZVJ1bGVTcHlFdmVudDxURGF0YT4sXG4gICAgRXZlbnRCcmlkZ2VSdWxlU3B5SGFuZGxlcjxURGF0YT5cbiAgPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxFdmVudEJyaWRnZVJ1bGVTcHlFdmVudDxURGF0YT4+O1xufVxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJyaWRnZVNweUhhbmRsZXI8VERhdGEgPSBhbnk+XG4gIGV4dGVuZHMgSmVzdEV4cGVjdFdpdGhTcHlNZXRob2RzPFxuICAgIEV2ZW50QnJpZGdlU3B5RXZlbnQ8VERhdGE+LFxuICAgIEV2ZW50QnJpZGdlU3B5SGFuZGxlcjxURGF0YT5cbiAgPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxFdmVudEJyaWRnZVNweUV2ZW50PFREYXRhPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25CYXNlU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQ8VERhdGE+LFxuICAgIEZ1bmN0aW9uUmVxdWVzdFNweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICAvLyBmb2xsd2VkQnlDb25zb2xlTG9nOiAoKSA9PiBQcm9taXNlPFxuICAvLyAgIEZ1bmN0aW9uQmFzZVNweUhhbmRsZXI8VERhdGE+ICZcbiAgLy8gICAgIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgLy8gICAgICAgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQ8VERhdGE+LFxuICAvLyAgICAgICBGdW5jdGlvblJlcXVlc3RTcHlIYW5kbGVyPFREYXRhPlxuICAvLyAgICAgPlxuICAvLyA+O1xuICBmb2xsb3dlZEJ5UmVzcG9uc2U6IDxURGF0YVJlc3BvbnNlID0gYW55PihcbiAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGNvbmZ1c2VzIFR5cGVTY3JpcHQgd2hpY2ggZG9lcyBub3QgYWNjdXJhdGVseSBkaXNwbGF5IHRoZSB0eXBlLlxuICAgIC8vIExlYXZlIGl0IGZvciByZWZlcmVuY2UhXG4gICAgLy8gcGFyYW06IFByZXR0aWZ5Rm9yRGlzcGxheTxcbiAgICAvLyAgIFdhaXRGb3JQYXJhbXM8XG4gICAgLy8gICAgIFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQ8VERhdGEsIFREYXRhUmVzcG9uc2U+PlxuICAgIC8vICAgPlxuICAgIC8vID5cbiAgICBwYXJhbT86IHtcbiAgICAgIGNvbmRpdGlvbj86IChldmVudDoge1xuICAgICAgICBzcHlFdmVudFR5cGU6ICdGdW5jdGlvblJlc3BvbnNlJztcbiAgICAgICAgcmVxdWVzdDogVERhdGE7XG4gICAgICAgIGNvbnRleHQ6IEZ1bmN0aW9uQ29udGV4dDtcbiAgICAgICAgcmVzcG9uc2U6IFREYXRhUmVzcG9uc2U7XG4gICAgICB9KSA9PiBib29sZWFuO1xuICAgICAgdGltb3V0TXM/OiBudW1iZXI7XG4gICAgfVxuICApID0+IFByb21pc2U8XG4gICAgRnVuY3Rpb25SZXNwb25zZVNweUhhbmRsZXIgJlxuICAgICAgSmVzdEV4cGVjdFdpdGhTcHlNZXRob2RzPFxuICAgICAgICBGdW5jdGlvblJlcXVlc3RTcHlFdmVudDxURGF0YT4sXG4gICAgICAgIEZ1bmN0aW9uUmVxdWVzdFNweUhhbmRsZXI8VERhdGE+XG4gICAgICA+XG4gID47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25SZXF1ZXN0U3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBGdW5jdGlvbkJhc2VTcHlIYW5kbGVyPFREYXRhPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvblJlcXVlc3RTcHlFdmVudDxURGF0YT4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uQ29uc29sZVNweUhhbmRsZXI8VERhdGEgPSBhbnk+XG4gIGV4dGVuZHMgRnVuY3Rpb25CYXNlU3B5SGFuZGxlcjxURGF0YT4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8RnVuY3Rpb25Db25zb2xlU3B5RXZlbnQ8VERhdGE+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblJlc3BvbnNlU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgRnVuY3Rpb25SZXNwb25zZVNweUV2ZW50PFREYXRhPixcbiAgICBGdW5jdGlvblJlc3BvbnNlU3B5SGFuZGxlcjxURGF0YT5cbiAgPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxGdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQ8VERhdGE+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTM1NweUhhbmRsZXJcbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8UzNTcHlFdmVudCwgUzNTcHlIYW5kbGVyPiB7XG4gIGdldERhdGE6ICgpID0+IFMzU3B5RXZlbnQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNuc1N1YnNjcmlwdGlvblNweUhhbmRsZXI8VERhdGEgPSBhbnk+XG4gIGV4dGVuZHMgSmVzdEV4cGVjdFdpdGhTcHlNZXRob2RzPFxuICAgIFNuc1N1YnNjcmlwdGlvblNweUV2ZW50PFREYXRhPixcbiAgICBTbnNTdWJzY3JpcHRpb25TcHlIYW5kbGVyPFREYXRhPlxuICA+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PFNuc1N1YnNjcmlwdGlvblNweUV2ZW50PFREYXRhPj47XG59XG5leHBvcnQgaW50ZXJmYWNlIFNuc1RvcGljU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgU25zVG9waWNTcHlFdmVudDxURGF0YT4sXG4gICAgU25zVG9waWNTcHlIYW5kbGVyPFREYXRhPlxuICA+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PFNuc1RvcGljU3B5RXZlbnQ8VERhdGE+Pjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU3FzU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8U3FzU3B5RXZlbnQ8VERhdGE+LCBTcXNTcHlIYW5kbGVyPFREYXRhPj4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8U3FzU3B5RXZlbnQ8VERhdGE+Pjtcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ import { SpyEvent } from '../common/spyEvents/SpyEvent';
2
+ export interface WaitForParams<TSpyEvent extends SpyEvent = SpyEvent> {
3
+ condition?: (event: TSpyEvent) => boolean;
4
+ timoutMs?: number;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FpdEZvclBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpc3RlbmVyL1dhaXRGb3JQYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9TcHlFdmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FpdEZvclBhcmFtczxUU3B5RXZlbnQgZXh0ZW5kcyBTcHlFdmVudCA9IFNweUV2ZW50PiB7XG4gIGNvbmRpdGlvbj86IChldmVudDogVFNweUV2ZW50KSA9PiBib29sZWFuO1xuICB0aW1vdXRNcz86IG51bWJlcjtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FpdEZvclBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpc3RlbmVyL1dhaXRGb3JQYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9TcHlFdmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FpdEZvclBhcmFtczxUU3B5RXZlbnQgZXh0ZW5kcyBTcHlFdmVudCA9IFNweUV2ZW50PiB7XG4gIGNvbmRpdGlvbj86IChldmVudDogVFNweUV2ZW50KSA9PiBib29sZWFuO1xuICB0aW1vdXRNcz86IG51bWJlcjtcbn1cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { SpyEvent } from '../common/spyEvents/SpyEvent';
2
+ import { SpyMessage } from '../common/spyEvents/SpyMessage';
3
+ import { ServerlessSpyListener } from './ServerlessSpyListener';
4
+ import { ServerlessSpyListenerParams } from './ServerlessSpyListenerParams';
5
+ import { WaitForParams } from './WaitForParams';
6
+ export declare class WsListener<TSpyEvents> {
7
+ private messages;
8
+ private trackers;
9
+ private connectionOpenResolve?;
10
+ private waitForConnection?;
11
+ private ws?;
12
+ private closed;
13
+ private functionPrefix;
14
+ start(params: ServerlessSpyListenerParams): Promise<void>;
15
+ stop(): Promise<void>;
16
+ trackerMatchMessage(tracker: Tracker, message: SpyMessageStorage): boolean | undefined;
17
+ private resolveTrackerInOldMessages;
18
+ private resolveOldTrackerWithNewMessage;
19
+ private trackerMatchCondition;
20
+ createWaitForXXXFunc(serviceKeyForFunction: string, functionContextAwsRequestId?: string): (paramsW?: WaitForParams<SpyEvent>) => Promise<unknown>;
21
+ createProxy(): ServerlessSpyListener<TSpyEvents>;
22
+ }
23
+ declare type Tracker = {
24
+ promiseResolve: (data: any) => void;
25
+ promiseReject: (data: any) => void;
26
+ finished: boolean;
27
+ serviceKey?: string;
28
+ serviceKeyForFunction?: string;
29
+ condition?: (data: any) => boolean;
30
+ timoutMs?: number;
31
+ functionContextAwsRequestId?: string;
32
+ possibleSpyMessageDataForDebugging?: any;
33
+ };
34
+ declare type SpyMessageStorage = SpyMessage & {
35
+ serviceKeyForFunction: string;
36
+ functionContextAwsRequestId?: string;
37
+ };
38
+ export {};
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WsListener = void 0;
4
+ const ws_1 = require("ws");
5
+ const getWebSocketUrl_1 = require("../common/getWebSocketUrl");
6
+ class WsListener {
7
+ constructor() {
8
+ this.messages = [];
9
+ this.trackers = [];
10
+ this.closed = true;
11
+ this.functionPrefix = 'waitFor';
12
+ }
13
+ async start(params) {
14
+ this.waitForConnection = new Promise((resolve) => {
15
+ this.connectionOpenResolve = resolve;
16
+ });
17
+ const urlSigned = await (0, getWebSocketUrl_1.getWebSocketUrl)(params.serverlessSpyWsUrl, params.credentials);
18
+ this.ws = new ws_1.WebSocket(urlSigned);
19
+ this.closed = false;
20
+ this.ws.on('open', () => {
21
+ this.connectionOpenResolve();
22
+ });
23
+ this.ws.on('message', (data) => {
24
+ if (this.closed)
25
+ return;
26
+ const message = JSON.parse(data.toString());
27
+ message.serviceKeyForFunction = message.serviceKey.replace(/#/g, '');
28
+ if (message.serviceKey.startsWith('Function')) {
29
+ message.functionContextAwsRequestId = message.data.context.awsRequestId;
30
+ }
31
+ this.messages.push(message);
32
+ this.resolveOldTrackerWithNewMessage(message);
33
+ });
34
+ this.ws.on('close', () => {
35
+ this.closed = true;
36
+ //console.log('disconnected ' + new Date().toISOString());
37
+ });
38
+ await this.waitForConnection;
39
+ }
40
+ async stop() {
41
+ this.closed = true;
42
+ this.ws.close();
43
+ }
44
+ trackerMatchMessage(tracker, message) {
45
+ if (tracker.finished)
46
+ return;
47
+ if ((tracker.serviceKey && tracker.serviceKey === message.serviceKey) ||
48
+ (tracker.serviceKeyForFunction &&
49
+ tracker.serviceKeyForFunction === message.serviceKeyForFunction)) {
50
+ if (this.trackerMatchCondition(tracker, message)) {
51
+ tracker.finished = true;
52
+ const spyAndJestMatchers = {
53
+ getData: () => message.data,
54
+ };
55
+ const serviceKeyForFunction = tracker.serviceKeyForFunction;
56
+ if (serviceKeyForFunction &&
57
+ serviceKeyForFunction.startsWith('Function') &&
58
+ (serviceKeyForFunction.endsWith('Request') ||
59
+ serviceKeyForFunction.endsWith('Console'))) {
60
+ let serviceKeyForFunctionResponse = serviceKeyForFunction;
61
+ if (serviceKeyForFunctionResponse.endsWith('Request')) {
62
+ serviceKeyForFunctionResponse =
63
+ serviceKeyForFunctionResponse.substring(0, serviceKeyForFunctionResponse.length - 'Request'.length);
64
+ }
65
+ else if (serviceKeyForFunctionResponse.endsWith('Console')) {
66
+ serviceKeyForFunctionResponse =
67
+ serviceKeyForFunctionResponse.substring(0, serviceKeyForFunctionResponse.length - 'Console'.length);
68
+ }
69
+ serviceKeyForFunctionResponse += 'Response';
70
+ spyAndJestMatchers.followedByResponse = (paramsW) => {
71
+ return this.createWaitForXXXFunc(serviceKeyForFunctionResponse, message.data.context.awsRequestId)(paramsW);
72
+ };
73
+ }
74
+ const proxy = new Proxy(spyAndJestMatchers, {
75
+ get: function (target, objectKey) {
76
+ if (target.hasOwnProperty(objectKey)) {
77
+ return target[objectKey];
78
+ }
79
+ else if (objectKey !== 'then') {
80
+ return function () {
81
+ const jestFunctionToExecute = expect(message.data)[objectKey];
82
+ jestFunctionToExecute.apply(undefined, arguments);
83
+ return proxy;
84
+ };
85
+ }
86
+ },
87
+ });
88
+ tracker.promiseResolve(proxy);
89
+ return true;
90
+ }
91
+ }
92
+ return false;
93
+ }
94
+ resolveTrackerInOldMessages(tracker) {
95
+ for (const message of this.messages) {
96
+ if (this.trackerMatchMessage(tracker, message)) {
97
+ return true;
98
+ }
99
+ }
100
+ return false;
101
+ }
102
+ resolveOldTrackerWithNewMessage(message) {
103
+ for (let index = 0; index < this.trackers.length; index++) {
104
+ const tracker = this.trackers[index];
105
+ if (this.trackerMatchMessage(tracker, message)) {
106
+ this.trackers = this.trackers.splice(index, 1);
107
+ return true;
108
+ }
109
+ }
110
+ return false;
111
+ }
112
+ trackerMatchCondition(tracker, message) {
113
+ const matchCondition = (tracker.condition && tracker.condition(message.data)) ||
114
+ !tracker.condition;
115
+ const matchRequestId = (tracker.functionContextAwsRequestId &&
116
+ tracker.functionContextAwsRequestId ===
117
+ message.functionContextAwsRequestId) ||
118
+ !tracker.functionContextAwsRequestId;
119
+ if (matchCondition && matchRequestId) {
120
+ return true;
121
+ }
122
+ else {
123
+ if (!matchCondition &&
124
+ matchRequestId &&
125
+ !tracker.possibleSpyMessageDataForDebugging) {
126
+ tracker.possibleSpyMessageDataForDebugging = message.data;
127
+ }
128
+ return false;
129
+ }
130
+ }
131
+ createWaitForXXXFunc(serviceKeyForFunction, functionContextAwsRequestId) {
132
+ let tracker;
133
+ const promise = new Promise((resolve, reject) => {
134
+ tracker = {
135
+ finished: false,
136
+ promiseResolve: resolve,
137
+ promiseReject: reject,
138
+ serviceKeyForFunction,
139
+ functionContextAwsRequestId,
140
+ };
141
+ });
142
+ //waitForXXXFunc
143
+ return (paramsW) => {
144
+ tracker.condition = paramsW?.condition;
145
+ const timer = setTimeout(() => {
146
+ if (tracker.finished)
147
+ return;
148
+ tracker.finished = true;
149
+ let message = `Timeout waiting for Serverless Spy message ${serviceKeyForFunction}.`;
150
+ if (tracker.possibleSpyMessageDataForDebugging) {
151
+ message += ` Similar matching spy event data: ${JSON.stringify(tracker.possibleSpyMessageDataForDebugging, null, 2)}`;
152
+ }
153
+ tracker.promiseReject(new Error(message));
154
+ }, paramsW?.timoutMs || 10000);
155
+ promise.finally(() => {
156
+ clearTimeout(timer);
157
+ });
158
+ if (!this.resolveTrackerInOldMessages(tracker)) {
159
+ this.trackers.push(tracker);
160
+ }
161
+ return promise;
162
+ };
163
+ }
164
+ createProxy() {
165
+ const spyListener = {};
166
+ spyListener.stop = async () => {
167
+ await this.stop();
168
+ };
169
+ const proxy = new Proxy(spyListener, {
170
+ get: (target, objectKey) => {
171
+ if (target.hasOwnProperty(objectKey)) {
172
+ return target[objectKey];
173
+ }
174
+ else if (typeof objectKey === 'string' &&
175
+ objectKey.startsWith(this.functionPrefix)) {
176
+ const serviceKeyForFunction = objectKey.substring(this.functionPrefix.length);
177
+ return this.createWaitForXXXFunc(serviceKeyForFunction);
178
+ }
179
+ },
180
+ });
181
+ return proxy;
182
+ }
183
+ }
184
+ exports.WsListener = WsListener;
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV3NMaXN0ZW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpc3RlbmVyL1dzTGlzdGVuZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkJBQStCO0FBQy9CLCtEQUE0RDtBQVE1RCxNQUFhLFVBQVU7SUFBdkI7UUFDVSxhQUFRLEdBQXdCLEVBQUUsQ0FBQztRQUNuQyxhQUFRLEdBQWMsRUFBRSxDQUFDO1FBS3pCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxtQkFBYyxHQUFHLFNBQVMsQ0FBQztJQThPckMsQ0FBQztJQTVPQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQW1DO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQy9DLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEsaUNBQWUsRUFDckMsTUFBTSxDQUFDLGtCQUFrQixFQUN6QixNQUFNLENBQUMsV0FBVyxDQUNuQixDQUFDO1FBRUYsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLGNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxxQkFBc0IsRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBRXhCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFzQixD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QUFDO1FBRUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ25DLEdBQUcsRUFBRSxDQUFDLE1BQVcsRUFBRSxTQUFpQixFQUFFLEVBQUU7Z0JBQ3RDLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDcEMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQzFCO3FCQUFNLElBQ0wsT0FBTyxTQUFTLEtBQUssUUFBUTtvQkFDN0IsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQ3pDO29CQUNBLE1BQU0scUJBQXFCLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQzNCLENBQUM7b0JBRUYsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMscUJBQXFCLENBQUMsQ0FBQztpQkFDekQ7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUEwQyxDQUFDO0lBQ3BELENBQUM7Q0FDRjtBQXRQRCxnQ0FzUEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXZWJTb2NrZXQgfSBmcm9tICd3cyc7XG5pbXBvcnQgeyBnZXRXZWJTb2NrZXRVcmwgfSBmcm9tICcuLi9jb21tb24vZ2V0V2ViU29ja2V0VXJsJztcbmltcG9ydCB7IEZ1bmN0aW9uUmVxdWVzdFNweUV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL3NweUV2ZW50cy9GdW5jdGlvblJlcXVlc3RTcHlFdmVudCc7XG5pbXBvcnQgeyBTcHlFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvU3B5RXZlbnQnO1xuaW1wb3J0IHsgU3B5TWVzc2FnZSB9IGZyb20gJy4uL2NvbW1vbi9zcHlFdmVudHMvU3B5TWVzc2FnZSc7XG5pbXBvcnQgeyBTZXJ2ZXJsZXNzU3B5TGlzdGVuZXIgfSBmcm9tICcuL1NlcnZlcmxlc3NTcHlMaXN0ZW5lcic7XG5pbXBvcnQgeyBTZXJ2ZXJsZXNzU3B5TGlzdGVuZXJQYXJhbXMgfSBmcm9tICcuL1NlcnZlcmxlc3NTcHlMaXN0ZW5lclBhcmFtcyc7XG5pbXBvcnQgeyBXYWl0Rm9yUGFyYW1zIH0gZnJvbSAnLi9XYWl0Rm9yUGFyYW1zJztcblxuZXhwb3J0IGNsYXNzIFdzTGlzdGVuZXI8VFNweUV2ZW50cz4ge1xuICBwcml2YXRlIG1lc3NhZ2VzOiBTcHlNZXNzYWdlU3RvcmFnZVtdID0gW107XG4gIHByaXZhdGUgdHJhY2tlcnM6IFRyYWNrZXJbXSA9IFtdO1xuXG4gIHByaXZhdGUgY29ubmVjdGlvbk9wZW5SZXNvbHZlPzogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSB3YWl0Rm9yQ29ubmVjdGlvbj86IFByb21pc2U8dm9pZD47XG4gIHByaXZhdGUgd3M/OiBXZWJTb2NrZXQ7XG4gIHByaXZhdGUgY2xvc2VkID0gdHJ1ZTtcbiAgcHJpdmF0ZSBmdW5jdGlvblByZWZpeCA9ICd3YWl0Rm9yJztcblxuICBhc3luYyBzdGFydChwYXJhbXM6IFNlcnZlcmxlc3NTcHlMaXN0ZW5lclBhcmFtcykge1xuICAgIHRoaXMud2FpdEZvckNvbm5lY3Rpb24gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy5jb25uZWN0aW9uT3BlblJlc29sdmUgPSByZXNvbHZlO1xuICAgIH0pO1xuXG4gICAgY29uc3QgdXJsU2lnbmVkID0gYXdhaXQgZ2V0V2ViU29ja2V0VXJsKFxuICAgICAgcGFyYW1zLnNlcnZlcmxlc3NTcHlXc1VybCxcbiAgICAgIHBhcmFtcy5jcmVkZW50aWFsc1xuICAgICk7XG5cbiAgICB0aGlzLndzID0gbmV3IFdlYlNvY2tldCh1cmxTaWduZWQpO1xuICAgIHRoaXMuY2xvc2VkID0gZmFsc2U7XG4gICAgdGhpcy53cy5vbignb3BlbicsICgpID0+IHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbk9wZW5SZXNvbHZlISgpO1xuICAgIH0pO1xuICAgIHRoaXMud3Mub24oJ21lc3NhZ2UnLCAoZGF0YSkgPT4ge1xuICAgICAgaWYgKHRoaXMuY2xvc2VkKSByZXR1cm47XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBKU09OLnBhcnNlKGRhdGEudG9TdHJpbmcoKSkgYXMgU3B5TWVzc2FnZVN0b3JhZ2U7XG5cbiAgICAgIG1lc3NhZ2Uuc2VydmljZUtleUZvckZ1bmN0aW9uID0gbWVzc2FnZS5zZXJ2aWNlS2V5LnJlcGxhY2UoLyMvZywgJycpO1xuXG4gICAgICBpZiAobWVzc2FnZS5zZXJ2aWNlS2V5LnN0YXJ0c1dpdGgoJ0Z1bmN0aW9uJykpIHtcbiAgICAgICAgbWVzc2FnZS5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQgPSAoXG4gICAgICAgICAgbWVzc2FnZS5kYXRhIGFzIEZ1bmN0aW9uUmVxdWVzdFNweUV2ZW50XG4gICAgICAgICkuY29udGV4dC5hd3NSZXF1ZXN0SWQ7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubWVzc2FnZXMucHVzaChtZXNzYWdlKTtcbiAgICAgIHRoaXMucmVzb2x2ZU9sZFRyYWNrZXJXaXRoTmV3TWVzc2FnZShtZXNzYWdlKTtcbiAgICB9KTtcbiAgICB0aGlzLndzLm9uKCdjbG9zZScsICgpID0+IHtcbiAgICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcbiAgICAgIC8vY29uc29sZS5sb2coJ2Rpc2Nvbm5lY3RlZCAnICsgbmV3IERhdGUoKS50b0lTT1N0cmluZygpKTtcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMud2FpdEZvckNvbm5lY3Rpb247XG4gIH1cblxuICBhc3luYyBzdG9wKCkge1xuICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcbiAgICB0aGlzLndzIS5jbG9zZSgpO1xuICB9XG5cbiAgdHJhY2tlck1hdGNoTWVzc2FnZSh0cmFja2VyOiBUcmFja2VyLCBtZXNzYWdlOiBTcHlNZXNzYWdlU3RvcmFnZSkge1xuICAgIGlmICh0cmFja2VyLmZpbmlzaGVkKSByZXR1cm47XG5cbiAgICBpZiAoXG4gICAgICAodHJhY2tlci5zZXJ2aWNlS2V5ICYmIHRyYWNrZXIuc2VydmljZUtleSA9PT0gbWVzc2FnZS5zZXJ2aWNlS2V5KSB8fFxuICAgICAgKHRyYWNrZXIuc2VydmljZUtleUZvckZ1bmN0aW9uICYmXG4gICAgICAgIHRyYWNrZXIuc2VydmljZUtleUZvckZ1bmN0aW9uID09PSBtZXNzYWdlLnNlcnZpY2VLZXlGb3JGdW5jdGlvbilcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLnRyYWNrZXJNYXRjaENvbmRpdGlvbih0cmFja2VyLCBtZXNzYWdlKSkge1xuICAgICAgICB0cmFja2VyLmZpbmlzaGVkID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBzcHlBbmRKZXN0TWF0Y2hlcnM6IGFueSA9IHtcbiAgICAgICAgICBnZXREYXRhOiAoKSA9PiBtZXNzYWdlLmRhdGEsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2VydmljZUtleUZvckZ1bmN0aW9uID0gdHJhY2tlci5zZXJ2aWNlS2V5Rm9yRnVuY3Rpb247XG4gICAgICAgIGlmIChcbiAgICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb24gJiZcbiAgICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb24uc3RhcnRzV2l0aCgnRnVuY3Rpb24nKSAmJlxuICAgICAgICAgIChzZXJ2aWNlS2V5Rm9yRnVuY3Rpb24uZW5kc1dpdGgoJ1JlcXVlc3QnKSB8fFxuICAgICAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uLmVuZHNXaXRoKCdDb25zb2xlJykpXG4gICAgICAgICkge1xuICAgICAgICAgIGxldCBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb25SZXNwb25zZSA9IHNlcnZpY2VLZXlGb3JGdW5jdGlvbjtcblxuICAgICAgICAgIGlmIChzZXJ2aWNlS2V5Rm9yRnVuY3Rpb25SZXNwb25zZS5lbmRzV2l0aCgnUmVxdWVzdCcpKSB7XG4gICAgICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb25SZXNwb25zZSA9XG4gICAgICAgICAgICAgIHNlcnZpY2VLZXlGb3JGdW5jdGlvblJlc3BvbnNlLnN1YnN0cmluZyhcbiAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgIHNlcnZpY2VLZXlGb3JGdW5jdGlvblJlc3BvbnNlLmxlbmd0aCAtICdSZXF1ZXN0Jy5sZW5ndGhcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHNlcnZpY2VLZXlGb3JGdW5jdGlvblJlc3BvbnNlLmVuZHNXaXRoKCdDb25zb2xlJykpIHtcbiAgICAgICAgICAgIHNlcnZpY2VLZXlGb3JGdW5jdGlvblJlc3BvbnNlID1cbiAgICAgICAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uUmVzcG9uc2Uuc3Vic3RyaW5nKFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uUmVzcG9uc2UubGVuZ3RoIC0gJ0NvbnNvbGUnLmxlbmd0aFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNlcnZpY2VLZXlGb3JGdW5jdGlvblJlc3BvbnNlICs9ICdSZXNwb25zZSc7XG5cbiAgICAgICAgICBzcHlBbmRKZXN0TWF0Y2hlcnMuZm9sbG93ZWRCeVJlc3BvbnNlID0gKHBhcmFtc1c6IFdhaXRGb3JQYXJhbXMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVdhaXRGb3JYWFhGdW5jKFxuICAgICAgICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb25SZXNwb25zZSxcbiAgICAgICAgICAgICAgKG1lc3NhZ2UuZGF0YSBhcyBGdW5jdGlvblJlcXVlc3RTcHlFdmVudCkuY29udGV4dC5hd3NSZXF1ZXN0SWRcbiAgICAgICAgICAgICkocGFyYW1zVyk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb3h5ID0gbmV3IFByb3h5KHNweUFuZEplc3RNYXRjaGVycywge1xuICAgICAgICAgIGdldDogZnVuY3Rpb24gKHRhcmdldDogYW55LCBvYmplY3RLZXk6IHN0cmluZykge1xuICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNPd25Qcm9wZXJ0eShvYmplY3RLZXkpKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0YXJnZXRbb2JqZWN0S2V5XTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAob2JqZWN0S2V5ICE9PSAndGhlbicpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBqZXN0RnVuY3Rpb25Ub0V4ZWN1dGUgPSAoZXhwZWN0KG1lc3NhZ2UuZGF0YSkgYXMgYW55KVtcbiAgICAgICAgICAgICAgICAgIG9iamVjdEtleVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgamVzdEZ1bmN0aW9uVG9FeGVjdXRlLmFwcGx5KHVuZGVmaW5lZCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJveHk7XG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdHJhY2tlci5wcm9taXNlUmVzb2x2ZShwcm94eSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVUcmFja2VySW5PbGRNZXNzYWdlcyh0cmFja2VyOiBUcmFja2VyKSB7XG4gICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIHRoaXMubWVzc2FnZXMpIHtcbiAgICAgIGlmICh0aGlzLnRyYWNrZXJNYXRjaE1lc3NhZ2UodHJhY2tlciwgbWVzc2FnZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlT2xkVHJhY2tlcldpdGhOZXdNZXNzYWdlKG1lc3NhZ2U6IFNweU1lc3NhZ2VTdG9yYWdlKSB7XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMudHJhY2tlcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCB0cmFja2VyID0gdGhpcy50cmFja2Vyc1tpbmRleF07XG4gICAgICBpZiAodGhpcy50cmFja2VyTWF0Y2hNZXNzYWdlKHRyYWNrZXIsIG1lc3NhZ2UpKSB7XG4gICAgICAgIHRoaXMudHJhY2tlcnMgPSB0aGlzLnRyYWNrZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhY2tlck1hdGNoQ29uZGl0aW9uKHRyYWNrZXI6IFRyYWNrZXIsIG1lc3NhZ2U6IFNweU1lc3NhZ2VTdG9yYWdlKSB7XG4gICAgY29uc3QgbWF0Y2hDb25kaXRpb24gPVxuICAgICAgKHRyYWNrZXIuY29uZGl0aW9uICYmIHRyYWNrZXIuY29uZGl0aW9uKG1lc3NhZ2UuZGF0YSkpIHx8XG4gICAgICAhdHJhY2tlci5jb25kaXRpb247XG5cbiAgICBjb25zdCBtYXRjaFJlcXVlc3RJZCA9XG4gICAgICAodHJhY2tlci5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQgJiZcbiAgICAgICAgdHJhY2tlci5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQgPT09XG4gICAgICAgICAgbWVzc2FnZS5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQpIHx8XG4gICAgICAhdHJhY2tlci5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQ7XG5cbiAgICBpZiAobWF0Y2hDb25kaXRpb24gJiYgbWF0Y2hSZXF1ZXN0SWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoXG4gICAgICAgICFtYXRjaENvbmRpdGlvbiAmJlxuICAgICAgICBtYXRjaFJlcXVlc3RJZCAmJlxuICAgICAgICAhdHJhY2tlci5wb3NzaWJsZVNweU1lc3NhZ2VEYXRhRm9yRGVidWdnaW5nXG4gICAgICApIHtcbiAgICAgICAgdHJhY2tlci5wb3NzaWJsZVNweU1lc3NhZ2VEYXRhRm9yRGVidWdnaW5nID0gbWVzc2FnZS5kYXRhO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVXYWl0Rm9yWFhYRnVuYyhcbiAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb246IHN0cmluZyxcbiAgICBmdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQ/OiBzdHJpbmdcbiAgKSB7XG4gICAgbGV0IHRyYWNrZXI6IFRyYWNrZXI7XG5cbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJhY2tlciA9IHtcbiAgICAgICAgZmluaXNoZWQ6IGZhbHNlLFxuICAgICAgICBwcm9taXNlUmVzb2x2ZTogcmVzb2x2ZSxcbiAgICAgICAgcHJvbWlzZVJlamVjdDogcmVqZWN0LFxuICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb24sXG4gICAgICAgIGZ1bmN0aW9uQ29udGV4dEF3c1JlcXVlc3RJZCxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvL3dhaXRGb3JYWFhGdW5jXG4gICAgcmV0dXJuIChwYXJhbXNXPzogV2FpdEZvclBhcmFtczxTcHlFdmVudD4pID0+IHtcbiAgICAgIHRyYWNrZXIuY29uZGl0aW9uID0gcGFyYW1zVz8uY29uZGl0aW9uO1xuXG4gICAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodHJhY2tlci5maW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICB0cmFja2VyLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgbGV0IG1lc3NhZ2UgPSBgVGltZW91dCB3YWl0aW5nIGZvciBTZXJ2ZXJsZXNzIFNweSBtZXNzYWdlICR7c2VydmljZUtleUZvckZ1bmN0aW9ufS5gO1xuXG4gICAgICAgIGlmICh0cmFja2VyLnBvc3NpYmxlU3B5TWVzc2FnZURhdGFGb3JEZWJ1Z2dpbmcpIHtcbiAgICAgICAgICBtZXNzYWdlICs9IGAgU2ltaWxhciBtYXRjaGluZyBzcHkgZXZlbnQgZGF0YTogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHRyYWNrZXIucG9zc2libGVTcHlNZXNzYWdlRGF0YUZvckRlYnVnZ2luZyxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAyXG4gICAgICAgICAgKX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJhY2tlci5wcm9taXNlUmVqZWN0KG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gICAgICB9LCBwYXJhbXNXPy50aW1vdXRNcyB8fCAxMDAwMCk7XG5cbiAgICAgIHByb21pc2UuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICB9KTtcblxuICAgICAgaWYgKCF0aGlzLnJlc29sdmVUcmFja2VySW5PbGRNZXNzYWdlcyh0cmFja2VyKSkge1xuICAgICAgICB0aGlzLnRyYWNrZXJzLnB1c2godHJhY2tlcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlUHJveHkoKSB7XG4gICAgY29uc3Qgc3B5TGlzdGVuZXIgPSB7fSBhcyBTZXJ2ZXJsZXNzU3B5TGlzdGVuZXI8VFNweUV2ZW50cz47XG5cbiAgICBzcHlMaXN0ZW5lci5zdG9wID0gYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5zdG9wKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHByb3h5ID0gbmV3IFByb3h5KHNweUxpc3RlbmVyLCB7XG4gICAgICBnZXQ6ICh0YXJnZXQ6IGFueSwgb2JqZWN0S2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHRhcmdldC5oYXNPd25Qcm9wZXJ0eShvYmplY3RLZXkpKSB7XG4gICAgICAgICAgcmV0dXJuIHRhcmdldFtvYmplY3RLZXldO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIHR5cGVvZiBvYmplY3RLZXkgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgb2JqZWN0S2V5LnN0YXJ0c1dpdGgodGhpcy5mdW5jdGlvblByZWZpeClcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3Qgc2VydmljZUtleUZvckZ1bmN0aW9uID0gb2JqZWN0S2V5LnN1YnN0cmluZyhcbiAgICAgICAgICAgIHRoaXMuZnVuY3Rpb25QcmVmaXgubGVuZ3RoXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVdhaXRGb3JYWFhGdW5jKHNlcnZpY2VLZXlGb3JGdW5jdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJveHkgYXMgU2VydmVybGVzc1NweUxpc3RlbmVyPFRTcHlFdmVudHM+O1xuICB9XG59XG5cbnR5cGUgVHJhY2tlciA9IHtcbiAgcHJvbWlzZVJlc29sdmU6IChkYXRhOiBhbnkpID0+IHZvaWQ7XG4gIHByb21pc2VSZWplY3Q6IChkYXRhOiBhbnkpID0+IHZvaWQ7XG4gIGZpbmlzaGVkOiBib29sZWFuO1xuICBzZXJ2aWNlS2V5Pzogc3RyaW5nO1xuICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb24/OiBzdHJpbmc7XG4gIGNvbmRpdGlvbj86IChkYXRhOiBhbnkpID0+IGJvb2xlYW47XG4gIHRpbW91dE1zPzogbnVtYmVyO1xuICBmdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gIHBvc3NpYmxlU3B5TWVzc2FnZURhdGFGb3JEZWJ1Z2dpbmc/OiBhbnk7XG59O1xuXG50eXBlIFNweU1lc3NhZ2VTdG9yYWdlID0gU3B5TWVzc2FnZSAmIHtcbiAgc2VydmljZUtleUZvckZ1bmN0aW9uOiBzdHJpbmc7XG4gIGZ1bmN0aW9uQ29udGV4dEF3c1JlcXVlc3RJZD86IHN0cmluZztcbn07XG4iXX0=