serverless-spy 0.0.11 → 0.0.14
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.
- package/.jsii +7 -4
- package/lib/{cjs/cli → cli}/cli.d.ts +0 -0
- package/lib/cli/cli.js +87 -0
- package/lib/cli/cli.mjs +85 -0
- package/lib/{cjs/cli → cli}/ws.d.ts +0 -0
- package/lib/cli/ws.js +68 -0
- package/lib/cli/ws.mjs +66 -0
- package/lib/{cjs/common → common}/getWebSocketUrl.d.ts +0 -0
- package/lib/common/getWebSocketUrl.js +57 -0
- package/lib/common/getWebSocketUrl.mjs +53 -0
- package/lib/common/spyEvents/DynamoDBSpyEvent.d.ts +10 -0
- package/lib/common/spyEvents/DynamoDBSpyEvent.js +3 -0
- package/lib/common/spyEvents/DynamoDBSpyEvent.mjs +2 -0
- package/lib/common/spyEvents/EventBridgeRuleSpyEvent.d.ts +9 -0
- package/lib/common/spyEvents/EventBridgeRuleSpyEvent.js +3 -0
- package/lib/common/spyEvents/EventBridgeRuleSpyEvent.mjs +2 -0
- package/lib/common/spyEvents/EventBridgeSpyEvent.d.ts +9 -0
- package/lib/common/spyEvents/EventBridgeSpyEvent.js +3 -0
- package/lib/common/spyEvents/EventBridgeSpyEvent.mjs +2 -0
- package/lib/common/spyEvents/FunctionConsoleSpyEvent.d.ts +10 -0
- package/lib/common/spyEvents/FunctionConsoleSpyEvent.js +3 -0
- package/lib/common/spyEvents/FunctionConsoleSpyEvent.mjs +2 -0
- package/lib/common/spyEvents/FunctionContext.d.ts +7 -0
- package/lib/common/spyEvents/FunctionContext.js +3 -0
- package/lib/common/spyEvents/FunctionContext.mjs +2 -0
- package/lib/common/spyEvents/FunctionErrorSpyEvent.d.ts +8 -0
- package/lib/common/spyEvents/FunctionErrorSpyEvent.js +3 -0
- package/lib/common/spyEvents/FunctionErrorSpyEvent.mjs +2 -0
- package/lib/common/spyEvents/FunctionRequestSpyEvent.d.ts +7 -0
- package/lib/common/spyEvents/FunctionRequestSpyEvent.js +3 -0
- package/lib/common/spyEvents/FunctionRequestSpyEvent.mjs +2 -0
- package/lib/common/spyEvents/FunctionResponseSpyEvent.d.ts +8 -0
- package/lib/common/spyEvents/FunctionResponseSpyEvent.js +3 -0
- package/lib/common/spyEvents/FunctionResponseSpyEvent.mjs +2 -0
- package/lib/common/spyEvents/S3SpyEvent.d.ts +8 -0
- package/lib/common/spyEvents/S3SpyEvent.js +3 -0
- package/lib/common/spyEvents/S3SpyEvent.mjs +2 -0
- package/lib/common/spyEvents/SnsSubscriptionSpyEvent.d.ts +11 -0
- package/lib/common/spyEvents/SnsSubscriptionSpyEvent.js +3 -0
- package/lib/common/spyEvents/SnsSubscriptionSpyEvent.mjs +2 -0
- package/lib/common/spyEvents/SnsTopicSpyEvent.d.ts +11 -0
- package/lib/common/spyEvents/SnsTopicSpyEvent.js +3 -0
- package/lib/common/spyEvents/SnsTopicSpyEvent.mjs +2 -0
- package/lib/common/spyEvents/SpyEvent.d.ts +3 -0
- package/lib/common/spyEvents/SpyEvent.js +3 -0
- package/lib/common/spyEvents/SpyEvent.mjs +2 -0
- package/lib/common/spyEvents/SpyMessage.d.ts +6 -0
- package/lib/common/spyEvents/SpyMessage.js +3 -0
- package/lib/common/spyEvents/SpyMessage.mjs +2 -0
- package/lib/common/spyEvents/SqsSpyEvent.d.ts +7 -0
- package/lib/common/spyEvents/SqsSpyEvent.js +3 -0
- package/lib/common/spyEvents/SqsSpyEvent.mjs +2 -0
- package/lib/{cjs/index.d.ts → index.d.ts} +0 -0
- package/lib/{cjs/index.js → index.js} +1 -1
- package/lib/index.mjs +3 -0
- package/lib/{cjs/listener → listener}/PrettifyForDisplay.d.ts +0 -0
- package/lib/listener/PrettifyForDisplay.js +3 -0
- package/lib/listener/PrettifyForDisplay.mjs +2 -0
- package/lib/{cjs/listener → listener}/RecursivePartial.d.ts +0 -0
- package/lib/listener/RecursivePartial.js +3 -0
- package/lib/listener/RecursivePartial.mjs +2 -0
- package/lib/{mjs/listener → listener}/SpyHandlers.ts.d.ts +11 -11
- package/lib/listener/SpyHandlers.ts.js +3 -0
- package/lib/listener/SpyHandlers.ts.mjs +2 -0
- package/lib/{mjs/listener → listener}/SpyListener.d.ts +10 -10
- package/lib/listener/SpyListener.js +3 -0
- package/lib/listener/SpyListener.mjs +2 -0
- package/lib/{mjs/listener → listener}/createServerlessSpyListener.d.ts +1 -1
- package/lib/listener/createServerlessSpyListener.js +167 -0
- package/lib/listener/createServerlessSpyListener.mjs +163 -0
- package/lib/{cjs/listener → listener}/index.d.ts +0 -0
- package/lib/{cjs/listener → listener}/index.js +1 -1
- package/lib/listener/index.mjs +3 -0
- package/lib/{cjs/listener → listener}/matchers.d.ts +0 -0
- package/lib/listener/matchers.js +55 -0
- package/lib/listener/matchers.mjs +55 -0
- package/lib/{cjs/listener → listener}/setup.d.ts +0 -0
- package/lib/listener/setup.js +21 -0
- package/lib/listener/setup.mjs +21 -0
- package/lib/{cjs/src → src}/ServerlessSpy.d.ts +0 -0
- package/lib/{cjs/src → src}/ServerlessSpy.js +1 -1
- package/lib/src/ServerlessSpy.mjs +293 -0
- package/lib/{cjs/src → src}/index.d.ts +0 -0
- package/lib/{cjs/src → src}/index.js +0 -0
- package/lib/src/index.mjs +2 -0
- package/listener/SpyHandlers.ts.ts +11 -11
- package/listener/SpyListener.ts +10 -10
- package/listener/createServerlessSpyListener.ts +4 -5
- package/{cli/node_modules → node_modules}/ws/LICENSE +0 -0
- package/{cli/node_modules → node_modules}/ws/README.md +0 -0
- package/{cli/node_modules → node_modules}/ws/browser.js +0 -0
- package/{cli/node_modules → node_modules}/ws/index.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/buffer-util.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/constants.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/event-target.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/extension.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/limiter.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/permessage-deflate.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/receiver.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/sender.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/stream.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/subprotocol.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/validation.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/websocket-server.js +0 -0
- package/{cli/node_modules → node_modules}/ws/lib/websocket.js +0 -0
- package/{cli/node_modules → node_modules}/ws/package.json +0 -0
- package/{cli/node_modules → node_modules}/ws/wrapper.mjs +0 -0
- package/package.json +18 -16
- package/tsconfig.npm.json +1 -0
- package/cli/package-lock.json +0 -2356
- package/cli/package.json +0 -14
- package/common/package.json +0 -22
- package/lib/cjs/cli/cli.js +0 -87
- package/lib/cjs/cli/ws.js +0 -68
- package/lib/cjs/common/getWebSocketUrl.js +0 -57
- package/lib/cjs/listener/PrettifyForDisplay.js +0 -3
- package/lib/cjs/listener/RecursivePartial.js +0 -3
- package/lib/cjs/listener/SpyHandlers.ts.d.ts +0 -109
- package/lib/cjs/listener/SpyHandlers.ts.js +0 -3
- package/lib/cjs/listener/SpyListener.d.ts +0 -40
- package/lib/cjs/listener/SpyListener.js +0 -3
- package/lib/cjs/listener/createServerlessSpyListener.d.ts +0 -13
- package/lib/cjs/listener/createServerlessSpyListener.js +0 -167
- package/lib/cjs/listener/matchers.js +0 -55
- package/lib/cjs/listener/setup.js +0 -21
- package/lib/mjs/cli/cli.d.ts +0 -1
- package/lib/mjs/cli/cli.js +0 -85
- package/lib/mjs/cli/ws.d.ts +0 -1
- package/lib/mjs/cli/ws.js +0 -66
- package/lib/mjs/common/getWebSocketUrl.d.ts +0 -2
- package/lib/mjs/common/getWebSocketUrl.js +0 -53
- package/lib/mjs/index.d.ts +0 -2
- package/lib/mjs/index.js +0 -3
- package/lib/mjs/listener/PrettifyForDisplay.d.ts +0 -3
- package/lib/mjs/listener/PrettifyForDisplay.js +0 -2
- package/lib/mjs/listener/RecursivePartial.d.ts +0 -4
- package/lib/mjs/listener/RecursivePartial.js +0 -2
- package/lib/mjs/listener/SpyHandlers.ts.js +0 -2
- package/lib/mjs/listener/SpyListener.js +0 -2
- package/lib/mjs/listener/createServerlessSpyListener.js +0 -163
- package/lib/mjs/listener/index.d.ts +0 -2
- package/lib/mjs/listener/index.js +0 -3
- package/lib/mjs/listener/matchers.d.ts +0 -0
- package/lib/mjs/listener/matchers.js +0 -55
- package/lib/mjs/listener/setup.d.ts +0 -0
- package/lib/mjs/listener/setup.js +0 -21
- package/lib/mjs/src/ServerlessSpy.d.ts +0 -27
- package/lib/mjs/src/ServerlessSpy.js +0 -293
- package/lib/mjs/src/index.d.ts +0 -1
- package/lib/mjs/src/index.js +0 -2
- package/listener/node_modules/ws/LICENSE +0 -19
- package/listener/node_modules/ws/README.md +0 -495
- package/listener/node_modules/ws/browser.js +0 -8
- package/listener/node_modules/ws/index.js +0 -13
- package/listener/node_modules/ws/lib/buffer-util.js +0 -127
- package/listener/node_modules/ws/lib/constants.js +0 -12
- package/listener/node_modules/ws/lib/event-target.js +0 -266
- package/listener/node_modules/ws/lib/extension.js +0 -203
- package/listener/node_modules/ws/lib/limiter.js +0 -55
- package/listener/node_modules/ws/lib/permessage-deflate.js +0 -511
- package/listener/node_modules/ws/lib/receiver.js +0 -618
- package/listener/node_modules/ws/lib/sender.js +0 -478
- package/listener/node_modules/ws/lib/stream.js +0 -159
- package/listener/node_modules/ws/lib/subprotocol.js +0 -62
- package/listener/node_modules/ws/lib/validation.js +0 -125
- package/listener/node_modules/ws/lib/websocket-server.js +0 -535
- package/listener/node_modules/ws/lib/websocket.js +0 -1305
- package/listener/node_modules/ws/package.json +0 -61
- package/listener/node_modules/ws/wrapper.mjs +0 -8
- package/listener/package.json +0 -19
- package/listener/tsconfig.dev.json +0 -16
- package/listener/tsconfig.json +0 -16
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { getWebSocketUrl } from 'serverless-spy-common/getWebSocketUrl';
|
|
2
|
-
import WebSocket from 'ws';
|
|
3
|
-
export async function createServerlessSpyListener(params) {
|
|
4
|
-
const urlSigned = await getWebSocketUrl(params.serverlessSpyWsUrl, params.credentials);
|
|
5
|
-
const ws = new WebSocket(urlSigned);
|
|
6
|
-
const messages = [];
|
|
7
|
-
let trackers = [];
|
|
8
|
-
let closed = false;
|
|
9
|
-
const functionPrefix = 'waitFor';
|
|
10
|
-
let connectionOpenResolve;
|
|
11
|
-
let waitForConnection = new Promise((resolve) => {
|
|
12
|
-
connectionOpenResolve = resolve;
|
|
13
|
-
});
|
|
14
|
-
ws.on('open', () => {
|
|
15
|
-
console.log('connected ' + new Date().toISOString());
|
|
16
|
-
connectionOpenResolve(undefined);
|
|
17
|
-
});
|
|
18
|
-
ws.on('message', (data) => {
|
|
19
|
-
if (closed)
|
|
20
|
-
return;
|
|
21
|
-
console.log(`From server: ${data}`);
|
|
22
|
-
const message = JSON.parse(data.toString());
|
|
23
|
-
message.serviceKeyForFunction = message.serviceKey.replace(/#/g, '');
|
|
24
|
-
if (message.serviceKey.startsWith('Function')) {
|
|
25
|
-
message.functionContextAwsRequestId = message.data.context.awsRequestId;
|
|
26
|
-
}
|
|
27
|
-
messages.push(message);
|
|
28
|
-
resolveOldTrackerWithNewMessage(message);
|
|
29
|
-
});
|
|
30
|
-
ws.on('close', () => {
|
|
31
|
-
closed = true;
|
|
32
|
-
// console.log("disconnected " + new Date().toISOString());
|
|
33
|
-
});
|
|
34
|
-
const trackerMatchMessage = (tracker, message) => {
|
|
35
|
-
if (tracker.finished)
|
|
36
|
-
return;
|
|
37
|
-
if ((tracker.serviceKey && tracker.serviceKey === message.serviceKey) ||
|
|
38
|
-
(tracker.serviceKeyForFunction &&
|
|
39
|
-
tracker.serviceKeyForFunction === message.serviceKeyForFunction)) {
|
|
40
|
-
if (trackerMatchCondition(tracker, message)) {
|
|
41
|
-
tracker.finished = true;
|
|
42
|
-
const spyAndJestMatchers = {
|
|
43
|
-
getData: () => message.data,
|
|
44
|
-
};
|
|
45
|
-
const serviceKeyForFunction = tracker.serviceKeyForFunction;
|
|
46
|
-
if (serviceKeyForFunction &&
|
|
47
|
-
serviceKeyForFunction.startsWith('Function') &&
|
|
48
|
-
(serviceKeyForFunction.endsWith('Request') ||
|
|
49
|
-
serviceKeyForFunction.endsWith('Console'))) {
|
|
50
|
-
let serviceKeyForFunctionResponse = serviceKeyForFunction;
|
|
51
|
-
if (serviceKeyForFunctionResponse.endsWith('Request')) {
|
|
52
|
-
serviceKeyForFunctionResponse =
|
|
53
|
-
serviceKeyForFunctionResponse.substring(0, serviceKeyForFunctionResponse.length - 'Request'.length);
|
|
54
|
-
}
|
|
55
|
-
else if (serviceKeyForFunctionResponse.endsWith('Console')) {
|
|
56
|
-
serviceKeyForFunctionResponse =
|
|
57
|
-
serviceKeyForFunctionResponse.substring(0, serviceKeyForFunctionResponse.length - 'Console'.length);
|
|
58
|
-
}
|
|
59
|
-
serviceKeyForFunctionResponse += 'Response';
|
|
60
|
-
spyAndJestMatchers.followedByResponse = (paramsW) => {
|
|
61
|
-
return createWaitForXXXFunc(serviceKeyForFunctionResponse, paramsW, message.data.context.awsRequestId)();
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
const proxy = new Proxy(spyAndJestMatchers, {
|
|
65
|
-
get: function (target, objectKey) {
|
|
66
|
-
if (target.hasOwnProperty(objectKey)) {
|
|
67
|
-
return target[objectKey];
|
|
68
|
-
}
|
|
69
|
-
else if (objectKey !== 'then') {
|
|
70
|
-
return function () {
|
|
71
|
-
const jestFunctionToExecute = expect(message.data)[objectKey];
|
|
72
|
-
jestFunctionToExecute.apply(undefined, arguments);
|
|
73
|
-
return proxy;
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
tracker.promiseResolve(proxy);
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return false;
|
|
83
|
-
};
|
|
84
|
-
const resolveTrackerInOldMessages = (tracker) => {
|
|
85
|
-
for (const message of messages) {
|
|
86
|
-
if (trackerMatchMessage(tracker, message)) {
|
|
87
|
-
return true;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return false;
|
|
91
|
-
};
|
|
92
|
-
const resolveOldTrackerWithNewMessage = (message) => {
|
|
93
|
-
for (let index = 0; index < trackers.length; index++) {
|
|
94
|
-
const tracker = trackers[index];
|
|
95
|
-
if (trackerMatchMessage(tracker, message)) {
|
|
96
|
-
trackers = trackers.splice(index, 1);
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return false;
|
|
101
|
-
};
|
|
102
|
-
const spyListener = {};
|
|
103
|
-
spyListener.stop = () => {
|
|
104
|
-
closed = true;
|
|
105
|
-
ws.close();
|
|
106
|
-
};
|
|
107
|
-
const proxy = new Proxy(spyListener, {
|
|
108
|
-
get: function (target, objectKey) {
|
|
109
|
-
if (target.hasOwnProperty(objectKey)) {
|
|
110
|
-
return target[objectKey];
|
|
111
|
-
}
|
|
112
|
-
else if (typeof objectKey === 'string' &&
|
|
113
|
-
objectKey.startsWith(functionPrefix)) {
|
|
114
|
-
const paramsW = arguments[0];
|
|
115
|
-
const serviceKeyForFunction = objectKey.substring(functionPrefix.length);
|
|
116
|
-
return createWaitForXXXFunc(serviceKeyForFunction, paramsW);
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
});
|
|
120
|
-
await waitForConnection;
|
|
121
|
-
return proxy;
|
|
122
|
-
function trackerMatchCondition(tracker, message) {
|
|
123
|
-
const matchCondition = (tracker.condition && tracker.condition(message.data)) ||
|
|
124
|
-
!tracker.condition;
|
|
125
|
-
const matchRequestId = (tracker.functionContextAwsRequestId &&
|
|
126
|
-
tracker.functionContextAwsRequestId ===
|
|
127
|
-
message.functionContextAwsRequestId) ||
|
|
128
|
-
!tracker.functionContextAwsRequestId;
|
|
129
|
-
if (tracker.functionContextAwsRequestId) {
|
|
130
|
-
console.log(`${tracker.functionContextAwsRequestId} - ${message.functionContextAwsRequestId}`);
|
|
131
|
-
}
|
|
132
|
-
return matchCondition && matchRequestId;
|
|
133
|
-
}
|
|
134
|
-
function createWaitForXXXFunc(serviceKeyForFunction, paramsW, functionContextAwsRequestId) {
|
|
135
|
-
let tracker;
|
|
136
|
-
const promise = new Promise((resolve, reject) => {
|
|
137
|
-
tracker = {
|
|
138
|
-
finished: false,
|
|
139
|
-
promiseResolve: resolve,
|
|
140
|
-
promiseReject: reject,
|
|
141
|
-
serviceKeyForFunction,
|
|
142
|
-
functionContextAwsRequestId,
|
|
143
|
-
};
|
|
144
|
-
});
|
|
145
|
-
return function waitForXXXFunc() {
|
|
146
|
-
tracker.condition = paramsW?.condition;
|
|
147
|
-
const timer = setTimeout(() => {
|
|
148
|
-
if (tracker.finished)
|
|
149
|
-
return;
|
|
150
|
-
tracker.finished = true;
|
|
151
|
-
tracker.promiseReject(new Error(`Timeout waiting for Serverless Spy message ${serviceKeyForFunction}`));
|
|
152
|
-
}, paramsW?.timoutMs || 10000);
|
|
153
|
-
promise.finally(() => {
|
|
154
|
-
clearTimeout(timer);
|
|
155
|
-
});
|
|
156
|
-
if (!resolveTrackerInOldMessages(tracker)) {
|
|
157
|
-
trackers.push(tracker);
|
|
158
|
-
}
|
|
159
|
-
return promise;
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU2VydmVybGVzc1NweUxpc3RlbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGlzdGVuZXIvY3JlYXRlU2VydmVybGVzc1NweUxpc3RlbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUl4RSxPQUFPLFNBQVMsTUFBTSxJQUFJLENBQUM7QUFRM0IsTUFBTSxDQUFDLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsTUFBbUM7SUFFbkMsTUFBTSxTQUFTLEdBQUcsTUFBTSxlQUFlLENBQ3JDLE1BQU0sQ0FBQyxrQkFBa0IsRUFDekIsTUFBTSxDQUFDLFdBQVcsQ0FDbkIsQ0FBQztJQUNGLE1BQU0sRUFBRSxHQUFHLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sUUFBUSxHQUF3QixFQUFFLENBQUM7SUFDekMsSUFBSSxRQUFRLEdBQWMsRUFBRSxDQUFDO0lBQzdCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNuQixNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUM7SUFDakMsSUFBSSxxQkFBK0MsQ0FBQztJQUVwRCxJQUFJLGlCQUFpQixHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDOUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1FBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyRCxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDeEIs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RTtnQkFDbkIsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUN6QyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3hCO1lBRUQsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cbmltcG9ydCB7IENyZWRlbnRpYWxzIH0gZnJvbSAnQGF3cy1zZGsvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0V2ViU29ja2V0VXJsIH0gZnJvbSAnc2VydmVybGVzcy1zcHktY29tbW9uL2dldFdlYlNvY2tldFVybCc7XG5pbXBvcnQgeyBGdW5jdGlvblJlcXVlc3RTcHlFdmVudCB9IGZyb20gJ3NlcnZlcmxlc3Mtc3B5LWNvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQnO1xuaW1wb3J0IHsgU3B5RXZlbnQgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL1NweUV2ZW50JztcbmltcG9ydCB7IFNweU1lc3NhZ2UgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL1NweU1lc3NhZ2UnO1xuaW1wb3J0IFdlYlNvY2tldCBmcm9tICd3cyc7XG5pbXBvcnQgeyBTcHlMaXN0ZW5lciB9IGZyb20gJy4vU3B5TGlzdGVuZXInO1xuXG50eXBlIFNlcnZlcmxlc3NTcHlMaXN0ZW5lclBhcmFtcyA9IHtcbiAgc2VydmVybGVzc1NweVdzVXJsOiBzdHJpbmc7XG4gIGNyZWRlbnRpYWxzPzogQ3JlZGVudGlhbHM7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU2VydmVybGVzc1NweUxpc3RlbmVyPFRTcHlFdmVudHM+KFxuICBwYXJhbXM6IFNlcnZlcmxlc3NTcHlMaXN0ZW5lclBhcmFtc1xuKSB7XG4gIGNvbnN0IHVybFNpZ25lZCA9IGF3YWl0IGdldFdlYlNvY2tldFVybChcbiAgICBwYXJhbXMuc2VydmVybGVzc1NweVdzVXJsLFxuICAgIHBhcmFtcy5jcmVkZW50aWFsc1xuICApO1xuICBjb25zdCB3cyA9IG5ldyBXZWJTb2NrZXQodXJsU2lnbmVkKTtcbiAgY29uc3QgbWVzc2FnZXM6IFNweU1lc3NhZ2VTdG9yYWdlW10gPSBbXTtcbiAgbGV0IHRyYWNrZXJzOiBUcmFja2VyW10gPSBbXTtcbiAgbGV0IGNsb3NlZCA9IGZhbHNlO1xuICBjb25zdCBmdW5jdGlvblByZWZpeCA9ICd3YWl0Rm9yJztcbiAgbGV0IGNvbm5lY3Rpb25PcGVuUmVzb2x2ZTogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkO1xuXG4gIGxldCB3YWl0Rm9yQ29ubmVjdGlvbiA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29ubmVjdGlvbk9wZW5SZXNvbHZlID0gcmVzb2x2ZTtcbiAgfSk7XG5cbiAgd3Mub24oJ29wZW4nLCAoKSA9PiB7XG4gICAgY29uc29sZS5sb2coJ2Nvbm5lY3RlZCAnICsgbmV3IERhdGUoKS50b0lTT1N0cmluZygpKTtcbiAgICBjb25uZWN0aW9uT3BlblJlc29sdmUodW5kZWZpbmVkKTtcbiAgfSk7XG4gIHdzLm9uKCdtZXNzYWdlJywgKGRhdGEpID0+IHtcbiAgICBpZiAoY2xvc2VkKSByZXR1cm47XG5cbiAgICBjb25zb2xlLmxvZyhgRnJvbSBzZXJ2ZXI6ICR7ZGF0YX1gKTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBKU09OLnBhcnNlKGRhdGEudG9TdHJpbmcoKSkgYXMgU3B5TWVzc2FnZVN0b3JhZ2U7XG5cbiAgICBtZXNzYWdlLnNlcnZpY2VLZXlGb3JGdW5jdGlvbiA9IG1lc3NhZ2Uuc2VydmljZUtleS5yZXBsYWNlKC8jL2csICcnKTtcblxuICAgIGlmIChtZXNzYWdlLnNlcnZpY2VLZXkuc3RhcnRzV2l0aCgnRnVuY3Rpb24nKSkge1xuICAgICAgbWVzc2FnZS5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQgPSAoXG4gICAgICAgIG1lc3NhZ2UuZGF0YSBhcyBGdW5jdGlvblJlcXVlc3RTcHlFdmVudFxuICAgICAgKS5jb250ZXh0LmF3c1JlcXVlc3RJZDtcbiAgICB9XG5cbiAgICBtZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xuICAgIHJlc29sdmVPbGRUcmFja2VyV2l0aE5ld01lc3NhZ2UobWVzc2FnZSk7XG4gIH0pO1xuICB3cy5vbignY2xvc2UnLCAoKSA9PiB7XG4gICAgY2xvc2VkID0gdHJ1ZTtcbiAgICAvLyBjb25zb2xlLmxvZyhcImRpc2Nvbm5lY3RlZCBcIiArIG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSk7XG4gIH0pO1xuXG4gIGNvbnN0IHRyYWNrZXJNYXRjaE1lc3NhZ2UgPSAoXG4gICAgdHJhY2tlcjogVHJhY2tlcixcbiAgICBtZXNzYWdlOiBTcHlNZXNzYWdlU3RvcmFnZVxuICApID0+IHtcbiAgICBpZiAodHJhY2tlci5maW5pc2hlZCkgcmV0dXJuO1xuXG4gICAgaWYgKFxuICAgICAgKHRyYWNrZXIuc2VydmljZUtleSAmJiB0cmFja2VyLnNlcnZpY2VLZXkgPT09IG1lc3NhZ2Uuc2VydmljZUtleSkgfHxcbiAgICAgICh0cmFja2VyLnNlcnZpY2VLZXlGb3JGdW5jdGlvbiAmJlxuICAgICAgICB0cmFja2VyLnNlcnZpY2VLZXlGb3JGdW5jdGlvbiA9PT0gbWVzc2FnZS5zZXJ2aWNlS2V5Rm9yRnVuY3Rpb24pXG4gICAgKSB7XG4gICAgICBpZiAodHJhY2tlck1hdGNoQ29uZGl0aW9uKHRyYWNrZXIsIG1lc3NhZ2UpKSB7XG4gICAgICAgIHRyYWNrZXIuZmluaXNoZWQgPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IHNweUFuZEplc3RNYXRjaGVyczogYW55ID0ge1xuICAgICAgICAgIGdldERhdGE6ICgpID0+IG1lc3NhZ2UuZGF0YSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb24gPSB0cmFja2VyLnNlcnZpY2VLZXlGb3JGdW5jdGlvbjtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlcnZpY2VLZXlGb3JGdW5jdGlvbiAmJlxuICAgICAgICAgIHNlcnZpY2VLZXlGb3JGdW5jdGlvbi5zdGFydHNXaXRoKCdGdW5jdGlvbicpICYmXG4gICAgICAgICAgKHNlcnZpY2VLZXlGb3JGdW5jdGlvbi5lbmRzV2l0aCgnUmVxdWVzdCcpIHx8XG4gICAgICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb24uZW5kc1dpdGgoJ0NvbnNvbGUnKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGV0IHNlcnZpY2VLZXlGb3JGdW5jdGlvblJlc3BvbnNlID0gc2VydmljZUtleUZvckZ1bmN0aW9uO1xuXG4gICAgICAgICAgaWYgKHNlcnZpY2VLZXlGb3JGdW5jdGlvblJlc3BvbnNlLmVuZHNXaXRoKCdSZXF1ZXN0JykpIHtcbiAgICAgICAgICAgIHNlcnZpY2VLZXlGb3JGdW5jdGlvblJlc3BvbnNlID1cbiAgICAgICAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uUmVzcG9uc2Uuc3Vic3RyaW5nKFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uUmVzcG9uc2UubGVuZ3RoIC0gJ1JlcXVlc3QnLmxlbmd0aFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc2VydmljZUtleUZvckZ1bmN0aW9uUmVzcG9uc2UuZW5kc1dpdGgoJ0NvbnNvbGUnKSkge1xuICAgICAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uUmVzcG9uc2UgPVxuICAgICAgICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb25SZXNwb25zZS5zdWJzdHJpbmcoXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb25SZXNwb25zZS5sZW5ndGggLSAnQ29uc29sZScubGVuZ3RoXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uUmVzcG9uc2UgKz0gJ1Jlc3BvbnNlJztcblxuICAgICAgICAgIHNweUFuZEplc3RNYXRjaGVycy5mb2xsb3dlZEJ5UmVzcG9uc2UgPSAocGFyYW1zVzogV2FpdEZvclBhcmFtcykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVdhaXRGb3JYWFhGdW5jKFxuICAgICAgICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb25SZXNwb25zZSxcbiAgICAgICAgICAgICAgcGFyYW1zVyxcbiAgICAgICAgICAgICAgKG1lc3NhZ2UuZGF0YSBhcyBGdW5jdGlvblJlcXVlc3RTcHlFdmVudCkuY29udGV4dC5hd3NSZXF1ZXN0SWRcbiAgICAgICAgICAgICkoKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJveHkgPSBuZXcgUHJveHkoc3B5QW5kSmVzdE1hdGNoZXJzLCB7XG4gICAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIG9iamVjdEtleTogc3RyaW5nKSB7XG4gICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc093blByb3BlcnR5KG9iamVjdEtleSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtvYmplY3RLZXldO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChvYmplY3RLZXkgIT09ICd0aGVuJykge1xuICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGplc3RGdW5jdGlvblRvRXhlY3V0ZSA9IChleHBlY3QobWVzc2FnZS5kYXRhKSBhcyBhbnkpW1xuICAgICAgICAgICAgICAgICAgb2JqZWN0S2V5XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBqZXN0RnVuY3Rpb25Ub0V4ZWN1dGUuYXBwbHkodW5kZWZpbmVkLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm94eTtcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICB0cmFja2VyLnByb21pc2VSZXNvbHZlKHByb3h5KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICBjb25zdCByZXNvbHZlVHJhY2tlckluT2xkTWVzc2FnZXMgPSAodHJhY2tlcjogVHJhY2tlcikgPT4ge1xuICAgIGZvciAoY29uc3QgbWVzc2FnZSBvZiBtZXNzYWdlcykge1xuICAgICAgaWYgKHRyYWNrZXJNYXRjaE1lc3NhZ2UodHJhY2tlciwgbWVzc2FnZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIGNvbnN0IHJlc29sdmVPbGRUcmFja2VyV2l0aE5ld01lc3NhZ2UgPSAobWVzc2FnZTogU3B5TWVzc2FnZVN0b3JhZ2UpID0+IHtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdHJhY2tlcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCB0cmFja2VyID0gdHJhY2tlcnNbaW5kZXhdO1xuICAgICAgaWYgKHRyYWNrZXJNYXRjaE1lc3NhZ2UodHJhY2tlciwgbWVzc2FnZSkpIHtcbiAgICAgICAgdHJhY2tlcnMgPSB0cmFja2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgY29uc3Qgc3B5TGlzdGVuZXIgPSB7fSBhcyBTcHlMaXN0ZW5lcjxUU3B5RXZlbnRzPjtcblxuICBzcHlMaXN0ZW5lci5zdG9wID0gKCkgPT4ge1xuICAgIGNsb3NlZCA9IHRydWU7XG4gICAgd3MuY2xvc2UoKTtcbiAgfTtcblxuICBjb25zdCBwcm94eSA9IG5ldyBQcm94eShzcHlMaXN0ZW5lciwge1xuICAgIGdldDogZnVuY3Rpb24gKHRhcmdldDogYW55LCBvYmplY3RLZXk6IHN0cmluZykge1xuICAgICAgaWYgKHRhcmdldC5oYXNPd25Qcm9wZXJ0eShvYmplY3RLZXkpKSB7XG4gICAgICAgIHJldHVybiB0YXJnZXRbb2JqZWN0S2V5XTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHR5cGVvZiBvYmplY3RLZXkgPT09ICdzdHJpbmcnICYmXG4gICAgICAgIG9iamVjdEtleS5zdGFydHNXaXRoKGZ1bmN0aW9uUHJlZml4KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHBhcmFtc1cgPSBhcmd1bWVudHNbMF0gYXMgV2FpdEZvclBhcmFtcztcbiAgICAgICAgY29uc3Qgc2VydmljZUtleUZvckZ1bmN0aW9uID0gb2JqZWN0S2V5LnN1YnN0cmluZyhcbiAgICAgICAgICBmdW5jdGlvblByZWZpeC5sZW5ndGhcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY3JlYXRlV2FpdEZvclhYWEZ1bmMoc2VydmljZUtleUZvckZ1bmN0aW9uLCBwYXJhbXNXKTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICBhd2FpdCB3YWl0Rm9yQ29ubmVjdGlvbjtcblxuICByZXR1cm4gcHJveHkgYXMgU3B5TGlzdGVuZXI8VFNweUV2ZW50cz47XG5cbiAgZnVuY3Rpb24gdHJhY2tlck1hdGNoQ29uZGl0aW9uKHRyYWNrZXI6IFRyYWNrZXIsIG1lc3NhZ2U6IFNweU1lc3NhZ2VTdG9yYWdlKSB7XG4gICAgY29uc3QgbWF0Y2hDb25kaXRpb24gPVxuICAgICAgKHRyYWNrZXIuY29uZGl0aW9uICYmIHRyYWNrZXIuY29uZGl0aW9uKG1lc3NhZ2UuZGF0YSkpIHx8XG4gICAgICAhdHJhY2tlci5jb25kaXRpb247XG5cbiAgICBjb25zdCBtYXRjaFJlcXVlc3RJZCA9XG4gICAgICAodHJhY2tlci5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQgJiZcbiAgICAgICAgdHJhY2tlci5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQgPT09XG4gICAgICAgICAgbWVzc2FnZS5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQpIHx8XG4gICAgICAhdHJhY2tlci5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQ7XG5cbiAgICBpZiAodHJhY2tlci5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgJHt0cmFja2VyLmZ1bmN0aW9uQ29udGV4dEF3c1JlcXVlc3RJZH0gLSAke21lc3NhZ2UuZnVuY3Rpb25Db250ZXh0QXdzUmVxdWVzdElkfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoQ29uZGl0aW9uICYmIG1hdGNoUmVxdWVzdElkO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlV2FpdEZvclhYWEZ1bmMoXG4gICAgc2VydmljZUtleUZvckZ1bmN0aW9uOiBzdHJpbmcsXG4gICAgcGFyYW1zVzogV2FpdEZvclBhcmFtczxTcHlFdmVudD4sXG4gICAgZnVuY3Rpb25Db250ZXh0QXdzUmVxdWVzdElkPzogc3RyaW5nXG4gICkge1xuICAgIGxldCB0cmFja2VyOiBUcmFja2VyO1xuXG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyYWNrZXIgPSB7XG4gICAgICAgIGZpbmlzaGVkOiBmYWxzZSxcbiAgICAgICAgcHJvbWlzZVJlc29sdmU6IHJlc29sdmUsXG4gICAgICAgIHByb21pc2VSZWplY3Q6IHJlamVjdCxcbiAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uLFxuICAgICAgICBmdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIHdhaXRGb3JYWFhGdW5jKCkge1xuICAgICAgdHJhY2tlci5jb25kaXRpb24gPSBwYXJhbXNXPy5jb25kaXRpb247XG5cbiAgICAgIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0cmFja2VyLmZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgIHRyYWNrZXIuZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICB0cmFja2VyLnByb21pc2VSZWplY3QoXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFRpbWVvdXQgd2FpdGluZyBmb3IgU2VydmVybGVzcyBTcHkgbWVzc2FnZSAke3NlcnZpY2VLZXlGb3JGdW5jdGlvbn1gXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSwgcGFyYW1zVz8udGltb3V0TXMgfHwgMTAwMDApO1xuXG4gICAgICBwcm9taXNlLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmICghcmVzb2x2ZVRyYWNrZXJJbk9sZE1lc3NhZ2VzKHRyYWNrZXIpKSB7XG4gICAgICAgIHRyYWNrZXJzLnB1c2godHJhY2tlcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXYWl0Rm9yUGFyYW1zPFRTcHlFdmVudCBleHRlbmRzIFNweUV2ZW50ID0gU3B5RXZlbnQ+IHtcbiAgY29uZGl0aW9uPzogKGV2ZW50OiBUU3B5RXZlbnQpID0+IGJvb2xlYW47XG4gIHRpbW91dE1zPzogbnVtYmVyO1xufVxuXG50eXBlIFRyYWNrZXIgPSB7XG4gIHByb21pc2VSZXNvbHZlOiAoZGF0YTogYW55KSA9PiB2b2lkO1xuICBwcm9taXNlUmVqZWN0OiAoZGF0YTogYW55KSA9PiB2b2lkO1xuICBmaW5pc2hlZDogYm9vbGVhbjtcbiAgc2VydmljZUtleT86IHN0cmluZztcbiAgc2VydmljZUtleUZvckZ1bmN0aW9uPzogc3RyaW5nO1xuICBjb25kaXRpb24/OiAoZGF0YTogYW55KSA9PiBib29sZWFuO1xuICB0aW1vdXRNcz86IG51bWJlcjtcbiAgZnVuY3Rpb25Db250ZXh0QXdzUmVxdWVzdElkPzogc3RyaW5nO1xufTtcblxudHlwZSBTcHlNZXNzYWdlU3RvcmFnZSA9IFNweU1lc3NhZ2UgJiB7XG4gIHNlcnZpY2VLZXlGb3JGdW5jdGlvbjogc3RyaW5nO1xuICBmdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQ/OiBzdHJpbmc7XG59O1xuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './createServerlessSpyListener';
|
|
2
|
-
export * from './SpyListener';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saXN0ZW5lci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jcmVhdGVTZXJ2ZXJsZXNzU3B5TGlzdGVuZXInO1xuZXhwb3J0ICogZnJvbSAnLi9TcHlMaXN0ZW5lcic7XG4iXX0=
|
|
File without changes
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
// import { ServerlessSpyListener } from "./ServerlessSpyListener";
|
|
4
|
-
|
|
5
|
-
type CustomMatcherResult = {
|
|
6
|
-
message: () => string;
|
|
7
|
-
pass: boolean;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export const toReceiveEvent = async (
|
|
11
|
-
spy: any,
|
|
12
|
-
serviceKey: string,
|
|
13
|
-
condition?: (data: any) => boolean
|
|
14
|
-
): Promise<CustomMatcherResult> => {
|
|
15
|
-
console.log('NOTRI');
|
|
16
|
-
|
|
17
|
-
await sleep(3000);
|
|
18
|
-
|
|
19
|
-
// console.log("SPY", spy);
|
|
20
|
-
// const events = await spy.awaitEvents((events) => {
|
|
21
|
-
// return events.some((event) => event["detail-type"] === expected);
|
|
22
|
-
// });
|
|
23
|
-
|
|
24
|
-
// const pass = events.some((event) => event["detail-type"] === expected);
|
|
25
|
-
|
|
26
|
-
// const message = pass
|
|
27
|
-
// ? () => {
|
|
28
|
-
// return (
|
|
29
|
-
// matcherHint("toHaveEventWithDetailType", "eventsSpy", "detail-type") +
|
|
30
|
-
// "\n\n" +
|
|
31
|
-
// `Expected: not ${printExpected(expected)}\n` +
|
|
32
|
-
// `Number of events: ${printReceived(events.length)}`
|
|
33
|
-
// );
|
|
34
|
-
// }
|
|
35
|
-
// : () => {
|
|
36
|
-
// return (
|
|
37
|
-
// matcherHint("toHaveEventWithDetailType", "eventsSpy", "detail-type") +
|
|
38
|
-
// "\n\n" +
|
|
39
|
-
// `Expected: ${printExpected(expected)}\n` +
|
|
40
|
-
// (events.length > 0
|
|
41
|
-
// ? `Received: ${printReceived(events[0]?.["detail-type"])}`
|
|
42
|
-
// : `Number of events: ${printReceived(events.length)}`)
|
|
43
|
-
// );
|
|
44
|
-
// };
|
|
45
|
-
|
|
46
|
-
return { message: () => 'OK', pass: true };
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
function sleep(ms: number) {
|
|
50
|
-
return new Promise((resolve) => {
|
|
51
|
-
setTimeout(resolve, ms);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
*/
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2hlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saXN0ZW5lci9tYXRjaGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFvREUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuLy8gaW1wb3J0IHsgU2VydmVybGVzc1NweUxpc3RlbmVyIH0gZnJvbSBcIi4vU2VydmVybGVzc1NweUxpc3RlbmVyXCI7XG5cbnR5cGUgQ3VzdG9tTWF0Y2hlclJlc3VsdCA9IHtcbiAgbWVzc2FnZTogKCkgPT4gc3RyaW5nO1xuICBwYXNzOiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IHRvUmVjZWl2ZUV2ZW50ID0gYXN5bmMgKFxuICBzcHk6IGFueSxcbiAgc2VydmljZUtleTogc3RyaW5nLFxuICBjb25kaXRpb24/OiAoZGF0YTogYW55KSA9PiBib29sZWFuXG4pOiBQcm9taXNlPEN1c3RvbU1hdGNoZXJSZXN1bHQ+ID0+IHtcbiAgY29uc29sZS5sb2coJ05PVFJJJyk7XG5cbiAgYXdhaXQgc2xlZXAoMzAwMCk7XG5cbiAgLy8gY29uc29sZS5sb2coXCJTUFlcIiwgc3B5KTtcbiAgLy8gY29uc3QgZXZlbnRzID0gYXdhaXQgc3B5LmF3YWl0RXZlbnRzKChldmVudHMpID0+IHtcbiAgLy8gICByZXR1cm4gZXZlbnRzLnNvbWUoKGV2ZW50KSA9PiBldmVudFtcImRldGFpbC10eXBlXCJdID09PSBleHBlY3RlZCk7XG4gIC8vIH0pO1xuXG4gIC8vIGNvbnN0IHBhc3MgPSBldmVudHMuc29tZSgoZXZlbnQpID0+IGV2ZW50W1wiZGV0YWlsLXR5cGVcIl0gPT09IGV4cGVjdGVkKTtcblxuICAvLyBjb25zdCBtZXNzYWdlID0gcGFzc1xuICAvLyAgID8gKCkgPT4ge1xuICAvLyAgICAgICByZXR1cm4gKFxuICAvLyAgICAgICAgIG1hdGNoZXJIaW50KFwidG9IYXZlRXZlbnRXaXRoRGV0YWlsVHlwZVwiLCBcImV2ZW50c1NweVwiLCBcImRldGFpbC10eXBlXCIpICtcbiAgLy8gICAgICAgICBcIlxcblxcblwiICtcbiAgLy8gICAgICAgICBgRXhwZWN0ZWQ6IG5vdCAke3ByaW50RXhwZWN0ZWQoZXhwZWN0ZWQpfVxcbmAgK1xuICAvLyAgICAgICAgIGBOdW1iZXIgb2YgZXZlbnRzOiAke3ByaW50UmVjZWl2ZWQoZXZlbnRzLmxlbmd0aCl9YFxuICAvLyAgICAgICApO1xuICAvLyAgICAgfVxuICAvLyAgIDogKCkgPT4ge1xuICAvLyAgICAgICByZXR1cm4gKFxuICAvLyAgICAgICAgIG1hdGNoZXJIaW50KFwidG9IYXZlRXZlbnRXaXRoRGV0YWlsVHlwZVwiLCBcImV2ZW50c1NweVwiLCBcImRldGFpbC10eXBlXCIpICtcbiAgLy8gICAgICAgICBcIlxcblxcblwiICtcbiAgLy8gICAgICAgICBgRXhwZWN0ZWQ6ICR7cHJpbnRFeHBlY3RlZChleHBlY3RlZCl9XFxuYCArXG4gIC8vICAgICAgICAgKGV2ZW50cy5sZW5ndGggPiAwXG4gIC8vICAgICAgICAgICA/IGBSZWNlaXZlZDogJHtwcmludFJlY2VpdmVkKGV2ZW50c1swXT8uW1wiZGV0YWlsLXR5cGVcIl0pfWBcbiAgLy8gICAgICAgICAgIDogYE51bWJlciBvZiBldmVudHM6ICR7cHJpbnRSZWNlaXZlZChldmVudHMubGVuZ3RoKX1gKVxuICAvLyAgICAgICApO1xuICAvLyAgICAgfTtcblxuICByZXR1cm4geyBtZXNzYWdlOiAoKSA9PiAnT0snLCBwYXNzOiB0cnVlIH07XG59O1xuXG5mdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpO1xuICB9KTtcbn1cbiovXG4iXX0=
|
|
File without changes
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import * as matchers from './matchers';
|
|
3
|
-
// if (expect !== undefined) {
|
|
4
|
-
// expect.extend(matchers);
|
|
5
|
-
// } else {
|
|
6
|
-
// /* eslint-disable no-console */
|
|
7
|
-
// console.error(
|
|
8
|
-
// "Unable to find Jest's global expect." +
|
|
9
|
-
// '\nPlease check you have added jest-extended correctly to your jest configuration.' +
|
|
10
|
-
// '\nSee https://github.com/jest-community/jest-extended#setup for help.'
|
|
11
|
-
// );
|
|
12
|
-
// /* eslint-enable no-console */
|
|
13
|
-
// }
|
|
14
|
-
// declare global {
|
|
15
|
-
// namespace jest {
|
|
16
|
-
// interface Matchers<R> {
|
|
17
|
-
// toReceiveEvent(serviceKey: string, condition?: (data: any) => boolean): R;
|
|
18
|
-
// }
|
|
19
|
-
// }
|
|
20
|
-
// }
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saXN0ZW5lci9zZXR1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMENBQTBDO0FBRTFDLDhCQUE4QjtBQUM5Qiw2QkFBNkI7QUFDN0IsV0FBVztBQUNYLG9DQUFvQztBQUNwQyxtQkFBbUI7QUFDbkIsK0NBQStDO0FBQy9DLDhGQUE4RjtBQUM5RixnRkFBZ0Y7QUFDaEYsT0FBTztBQUNQLG1DQUFtQztBQUNuQyxJQUFJO0FBRUosbUJBQW1CO0FBQ25CLHFCQUFxQjtBQUNyQiw4QkFBOEI7QUFDOUIsbUZBQW1GO0FBQ25GLFFBQVE7QUFDUixNQUFNO0FBQ04sSUFBSSIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCAqIGFzIG1hdGNoZXJzIGZyb20gJy4vbWF0Y2hlcnMnO1xuXG4vLyBpZiAoZXhwZWN0ICE9PSB1bmRlZmluZWQpIHtcbi8vICAgZXhwZWN0LmV4dGVuZChtYXRjaGVycyk7XG4vLyB9IGVsc2Uge1xuLy8gICAvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vLyAgIGNvbnNvbGUuZXJyb3IoXG4vLyAgICAgXCJVbmFibGUgdG8gZmluZCBKZXN0J3MgZ2xvYmFsIGV4cGVjdC5cIiArXG4vLyAgICAgICAnXFxuUGxlYXNlIGNoZWNrIHlvdSBoYXZlIGFkZGVkIGplc3QtZXh0ZW5kZWQgY29ycmVjdGx5IHRvIHlvdXIgamVzdCBjb25maWd1cmF0aW9uLicgK1xuLy8gICAgICAgJ1xcblNlZSBodHRwczovL2dpdGh1Yi5jb20vamVzdC1jb21tdW5pdHkvamVzdC1leHRlbmRlZCNzZXR1cCBmb3IgaGVscC4nXG4vLyAgICk7XG4vLyAgIC8qIGVzbGludC1lbmFibGUgbm8tY29uc29sZSAqL1xuLy8gfVxuXG4vLyBkZWNsYXJlIGdsb2JhbCB7XG4vLyAgIG5hbWVzcGFjZSBqZXN0IHtcbi8vICAgICBpbnRlcmZhY2UgTWF0Y2hlcnM8Uj4ge1xuLy8gICAgICAgdG9SZWNlaXZlRXZlbnQoc2VydmljZUtleTogc3RyaW5nLCBjb25kaXRpb24/OiAoZGF0YTogYW55KSA9PiBib29sZWFuKTogUjtcbi8vICAgICB9XG4vLyAgIH1cbi8vIH1cbiJdfQ==
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Construct, IConstruct } from 'constructs';
|
|
2
|
-
export declare class ServerlessSpy extends Construct {
|
|
3
|
-
private extensionLayer;
|
|
4
|
-
private table;
|
|
5
|
-
private webSocketApi;
|
|
6
|
-
private ownContructs;
|
|
7
|
-
private functionSubscriptionPool;
|
|
8
|
-
private functionSubscriptionMain;
|
|
9
|
-
private webSocketStage;
|
|
10
|
-
wsUrl: string;
|
|
11
|
-
constructor(scope: Construct, id: string);
|
|
12
|
-
private iterateAllElements;
|
|
13
|
-
private interceptSqs;
|
|
14
|
-
private createFunctionForSubscription;
|
|
15
|
-
private interceptS3;
|
|
16
|
-
private interceptDynamodb;
|
|
17
|
-
private interceptEventBusRule;
|
|
18
|
-
private interceptEventBus;
|
|
19
|
-
private interceptSnsTopic;
|
|
20
|
-
private interceptSnsSubscription;
|
|
21
|
-
private provideFunctionForSubscription;
|
|
22
|
-
private interceptFunction;
|
|
23
|
-
getConstructName(construct: IConstruct): string;
|
|
24
|
-
private getTopic;
|
|
25
|
-
private getEventBridge;
|
|
26
|
-
private findElement;
|
|
27
|
-
}
|