serverless-spy 0.0.35 → 0.0.37
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 +236 -9
- package/API.md +161 -0
- package/cli/cli.ts +145 -75
- package/cli/icons/Arch_AWS-Lambda_16.svg +18 -0
- package/cli/icons/Arch_Amazon-DynamoDB_16.svg +18 -0
- package/cli/icons/Arch_Amazon-EventBridge_16.svg +18 -0
- package/cli/icons/Arch_Amazon-Simple-Notification-Service_16.svg +18 -0
- package/cli/icons/Arch_Amazon-Simple-Queue-Service_16.svg +18 -0
- package/cli/icons/Arch_Amazon-Simple-Storage-Service_16.svg +18 -0
- package/cli/index.html +84 -25
- package/cli/node_modules/commander/LICENSE +22 -0
- package/cli/node_modules/commander/Readme.md +1114 -0
- package/cli/node_modules/commander/esm.mjs +16 -0
- package/cli/node_modules/commander/index.js +27 -0
- package/cli/node_modules/commander/lib/argument.js +147 -0
- package/cli/node_modules/commander/lib/command.js +2161 -0
- package/cli/node_modules/commander/lib/error.js +45 -0
- package/cli/node_modules/commander/lib/help.js +406 -0
- package/cli/node_modules/commander/lib/option.js +324 -0
- package/cli/node_modules/commander/lib/suggestSimilar.js +100 -0
- package/cli/node_modules/commander/package-support.json +16 -0
- package/cli/node_modules/commander/package.json +80 -0
- package/cli/node_modules/commander/typings/index.d.ts +879 -0
- package/cli/package.json +23 -0
- package/cli/sampleData.ts +518 -0
- package/cli/style.css +66 -42
- package/cli/webServerlessSpy.ts +461 -0
- package/common/SpyEventSender.ts +291 -0
- package/common/getWebSocketUrl.ts +21 -4
- package/common/spyEvents/EventBridgeBaseSpyEvent.ts +13 -0
- package/common/spyEvents/EventBridgeRuleSpyEvent.ts +2 -7
- package/common/spyEvents/EventBridgeSpyEvent.ts +2 -7
- package/common/spyEvents/FunctionBaseSpyEvent.ts +7 -0
- package/common/spyEvents/FunctionConsole.ts +5 -0
- package/common/spyEvents/FunctionConsoleSpyEvent.ts +5 -8
- package/common/spyEvents/FunctionResponseSpyEvent.ts +2 -5
- package/common/spyEvents/SnsSpyEventBase.ts +11 -0
- package/common/spyEvents/SnsSubscriptionSpyEvent.ts +3 -9
- package/common/spyEvents/SnsTopicSpyEvent.ts +3 -9
- package/dist/releasetag.txt +1 -1
- package/extension/interceptor.ts +107 -27
- package/functions/sendMessage.ts +4 -2
- package/functions/sqsSubscriptionAndDropAllMessages.ts +3 -0
- package/lib/cli/cli.js +124 -65
- package/lib/cli/cli.mjs +125 -66
- package/lib/cli/sampleData.d.ts +892 -0
- package/lib/cli/sampleData.js +481 -0
- package/lib/cli/sampleData.mjs +478 -0
- package/lib/cli/webServerlessSpy.js +5516 -0
- package/lib/cli/webServerlessSpy.js.map +7 -0
- package/lib/common/SpyEventSender.d.ts +17 -0
- package/lib/common/SpyEventSender.js +227 -0
- package/lib/common/SpyEventSender.mjs +223 -0
- package/lib/common/getWebSocketUrl.d.ts +1 -1
- package/lib/common/getWebSocketUrl.js +19 -7
- package/lib/common/getWebSocketUrl.mjs +17 -5
- package/lib/common/spyEvents/EventBridgeBaseSpyEvent.d.ts +9 -0
- package/lib/common/spyEvents/EventBridgeBaseSpyEvent.js +3 -0
- package/lib/common/spyEvents/EventBridgeBaseSpyEvent.mjs +2 -0
- package/lib/common/spyEvents/EventBridgeRuleSpyEvent.d.ts +2 -7
- package/lib/common/spyEvents/EventBridgeRuleSpyEvent.js +1 -1
- package/lib/common/spyEvents/EventBridgeRuleSpyEvent.mjs +1 -1
- package/lib/common/spyEvents/EventBridgeSpyEvent.d.ts +2 -7
- package/lib/common/spyEvents/EventBridgeSpyEvent.js +1 -1
- package/lib/common/spyEvents/EventBridgeSpyEvent.mjs +1 -1
- package/lib/common/spyEvents/FunctionBaseSpyEvent.d.ts +6 -0
- package/lib/common/spyEvents/FunctionBaseSpyEvent.js +3 -0
- package/lib/common/spyEvents/FunctionBaseSpyEvent.mjs +2 -0
- package/lib/common/spyEvents/FunctionConsole.d.ts +5 -0
- package/lib/common/spyEvents/FunctionConsole.js +3 -0
- package/lib/common/spyEvents/FunctionConsole.mjs +2 -0
- package/lib/common/spyEvents/FunctionConsoleSpyEvent.d.ts +4 -8
- package/lib/common/spyEvents/FunctionConsoleSpyEvent.js +1 -1
- package/lib/common/spyEvents/FunctionConsoleSpyEvent.mjs +1 -1
- package/lib/common/spyEvents/FunctionResponseSpyEvent.d.ts +2 -5
- package/lib/common/spyEvents/FunctionResponseSpyEvent.js +1 -1
- package/lib/common/spyEvents/FunctionResponseSpyEvent.mjs +1 -1
- package/lib/common/spyEvents/SnsSpyEventBase.d.ts +10 -0
- package/lib/common/spyEvents/SnsSpyEventBase.js +3 -0
- package/lib/common/spyEvents/SnsSpyEventBase.mjs +2 -0
- package/lib/common/spyEvents/SnsSubscriptionSpyEvent.d.ts +2 -9
- package/lib/common/spyEvents/SnsSubscriptionSpyEvent.js +1 -1
- package/lib/common/spyEvents/SnsSubscriptionSpyEvent.mjs +1 -1
- package/lib/common/spyEvents/SnsTopicSpyEvent.d.ts +2 -9
- package/lib/common/spyEvents/SnsTopicSpyEvent.js +1 -1
- package/lib/common/spyEvents/SnsTopicSpyEvent.mjs +1 -1
- package/lib/extension/dist/layer/nodejs/node_modules/interceptor.js +10793 -23825
- package/lib/extension/dist/layer/nodejs/node_modules/interceptor.js.map +4 -4
- package/lib/listener/ServerlessSpyListenerParams.d.ts +1 -0
- package/lib/listener/ServerlessSpyListenerParams.js +1 -1
- package/lib/listener/ServerlessSpyListenerParams.mjs +1 -1
- package/lib/listener/SpyHandlers.ts.d.ts +30 -2
- package/lib/listener/SpyHandlers.ts.js +1 -1
- package/lib/listener/SpyHandlers.ts.mjs +1 -1
- package/lib/listener/WsListener.d.ts +4 -21
- package/lib/listener/WsListener.js +21 -13
- package/lib/listener/WsListener.mjs +22 -14
- package/lib/src/ServerlessSpy.d.ts +44 -14
- package/lib/src/ServerlessSpy.js +228 -86
- package/lib/src/ServerlessSpy.mjs +227 -85
- package/lib/src/common/envVariableNames.d.ts +6 -2
- package/lib/src/common/envVariableNames.js +6 -2
- package/lib/src/common/envVariableNames.mjs +6 -2
- package/listener/ServerlessSpyListenerParams.ts +1 -0
- package/listener/SpyHandlers.ts.ts +70 -9
- package/listener/WsListener.ts +39 -24
- package/package.json +5 -3
- package/cli/serverlessSpy.js +0 -73
- package/cli/ws.ts +0 -79
- package/common/publishSpyEvent.ts +0 -269
- package/lib/cli/ws.d.ts +0 -1
- package/lib/cli/ws.js +0 -68
- package/lib/cli/ws.mjs +0 -66
- package/lib/common/publishSpyEvent.d.ts +0 -4
- package/lib/common/publishSpyEvent.js +0 -211
- package/lib/common/publishSpyEvent.mjs +0 -205
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ApiGatewayManagementApi,
|
|
3
|
-
PostToConnectionCommand,
|
|
4
|
-
} from '@aws-sdk/client-apigatewaymanagementapi';
|
|
5
|
-
import {
|
|
6
|
-
AttributeValue,
|
|
7
|
-
DeleteItemCommand,
|
|
8
|
-
DynamoDBClient,
|
|
9
|
-
ScanCommand,
|
|
10
|
-
} from '@aws-sdk/client-dynamodb';
|
|
11
|
-
|
|
12
|
-
import { unmarshall } from '@aws-sdk/util-dynamodb';
|
|
13
|
-
import {
|
|
14
|
-
DynamoDBStreamEvent,
|
|
15
|
-
S3Event,
|
|
16
|
-
SNSEvent,
|
|
17
|
-
EventBridgeEvent,
|
|
18
|
-
SQSEvent,
|
|
19
|
-
} from 'aws-lambda';
|
|
20
|
-
import { envVariableNames } from '../src/common/envVariableNames';
|
|
21
|
-
import { DynamoDBSpyEvent } from './spyEvents/DynamoDBSpyEvent';
|
|
22
|
-
import { EventBridgeRuleSpyEvent } from './spyEvents/EventBridgeRuleSpyEvent';
|
|
23
|
-
import { EventBridgeSpyEvent } from './spyEvents/EventBridgeSpyEvent';
|
|
24
|
-
import { S3SpyEvent } from './spyEvents/S3SpyEvent';
|
|
25
|
-
import { SnsSubscriptionSpyEvent } from './spyEvents/SnsSubscriptionSpyEvent';
|
|
26
|
-
import { SnsTopicSpyEvent } from './spyEvents/SnsTopicSpyEvent';
|
|
27
|
-
import { SpyMessage } from './spyEvents/SpyMessage';
|
|
28
|
-
import { SqsSpyEvent } from './spyEvents/SqsSpyEvent';
|
|
29
|
-
|
|
30
|
-
const ddb = new DynamoDBClient({
|
|
31
|
-
region: process.env.AWS_REGION,
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
const apigwManagementApi = new ApiGatewayManagementApi({
|
|
35
|
-
apiVersion: '2018-11-29',
|
|
36
|
-
endpoint: process.env[envVariableNames.SSPY_WS_ENDPOINT]!,
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
let connections: Record<string, AttributeValue>[] | undefined;
|
|
40
|
-
|
|
41
|
-
export async function publishSpyEvent(event: any) {
|
|
42
|
-
console.log('EVENT', JSON.stringify(event));
|
|
43
|
-
|
|
44
|
-
const mapping = JSON.parse(process.env[envVariableNames.SSPY_INFRA_MAPPING]!);
|
|
45
|
-
console.log('mapping', JSON.stringify(mapping));
|
|
46
|
-
|
|
47
|
-
let connectionData;
|
|
48
|
-
|
|
49
|
-
const scanParams = new ScanCommand({
|
|
50
|
-
TableName: process.env[envVariableNames.SSPY_WS_TABLE_NAME] as string,
|
|
51
|
-
ProjectionExpression: 'connectionId',
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
connectionData = await ddb.send(scanParams);
|
|
55
|
-
|
|
56
|
-
connections = connectionData.Items;
|
|
57
|
-
|
|
58
|
-
console.log(
|
|
59
|
-
`connections at ${new Date().toISOString()}`,
|
|
60
|
-
JSON.stringify(connections)
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
const postDataPromises: Promise<any>[] = [];
|
|
64
|
-
|
|
65
|
-
if (event?.Records && event.Records[0]?.Sns) {
|
|
66
|
-
console.log('*** SNS ***');
|
|
67
|
-
const eventSns = event as SNSEvent;
|
|
68
|
-
for (const record of eventSns.Records) {
|
|
69
|
-
const subscriptionArn = record.EventSubscriptionArn;
|
|
70
|
-
|
|
71
|
-
let serviceKey: string;
|
|
72
|
-
if (mapping[subscriptionArn]) {
|
|
73
|
-
// subscription event that could contain filter based on existing subscription
|
|
74
|
-
serviceKey = mapping[subscriptionArn];
|
|
75
|
-
} else {
|
|
76
|
-
// catch all subscription
|
|
77
|
-
const topicArn = record.Sns.TopicArn;
|
|
78
|
-
serviceKey = mapping[topicArn];
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
let message: string;
|
|
82
|
-
|
|
83
|
-
try {
|
|
84
|
-
message = JSON.parse(record.Sns.Message);
|
|
85
|
-
} catch {
|
|
86
|
-
message = record.Sns.Message;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const spyEventType = getSpyEventType(serviceKey) as
|
|
90
|
-
| 'FunctionSnsTopic'
|
|
91
|
-
| 'FunctionSnsSubscription';
|
|
92
|
-
|
|
93
|
-
const data: SnsTopicSpyEvent | SnsSubscriptionSpyEvent = {
|
|
94
|
-
spyEventType,
|
|
95
|
-
message,
|
|
96
|
-
subject: record.Sns.Subject,
|
|
97
|
-
timestamp: record.Sns.Timestamp,
|
|
98
|
-
topicArn: record.Sns.TopicArn,
|
|
99
|
-
messageId: record.Sns.MessageId,
|
|
100
|
-
messageAttributes: record.Sns.MessageAttributes,
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
const fluentEvent: Omit<SpyMessage, 'timestamp'> = {
|
|
104
|
-
data,
|
|
105
|
-
serviceKey,
|
|
106
|
-
};
|
|
107
|
-
postDataPromises.push(postData(fluentEvent));
|
|
108
|
-
}
|
|
109
|
-
} else if (event?.Records && event.Records[0]?.eventSource === 'aws:sqs') {
|
|
110
|
-
console.log('*** SQS ***');
|
|
111
|
-
const eventSqs = event as SQSEvent;
|
|
112
|
-
for (const record of eventSqs.Records) {
|
|
113
|
-
const subscriptionArn = record.eventSourceARN;
|
|
114
|
-
|
|
115
|
-
const serviceKey = mapping[subscriptionArn];
|
|
116
|
-
let body: string;
|
|
117
|
-
|
|
118
|
-
try {
|
|
119
|
-
body = JSON.parse(record.body);
|
|
120
|
-
} catch {
|
|
121
|
-
body = record.body;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const data: SqsSpyEvent = {
|
|
125
|
-
spyEventType: 'Sqs',
|
|
126
|
-
body,
|
|
127
|
-
messageAttributes: record.messageAttributes,
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
const fluentEvent: Omit<SpyMessage, 'timestamp'> = {
|
|
131
|
-
data,
|
|
132
|
-
serviceKey,
|
|
133
|
-
};
|
|
134
|
-
postDataPromises.push(postData(fluentEvent));
|
|
135
|
-
}
|
|
136
|
-
} else if (event?.Records && event.Records[0]?.s3) {
|
|
137
|
-
console.log('*** S3 ***');
|
|
138
|
-
const eventS3 = event as S3Event;
|
|
139
|
-
for (const record of eventS3.Records) {
|
|
140
|
-
const bucketArn = record.s3.bucket.arn;
|
|
141
|
-
|
|
142
|
-
const data: S3SpyEvent = {
|
|
143
|
-
spyEventType: 'S3',
|
|
144
|
-
eventName: record.eventName,
|
|
145
|
-
eventTime: record.eventTime,
|
|
146
|
-
bucket: record.s3.bucket.name,
|
|
147
|
-
key: record.s3.object.key,
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
const fluentEvent: Omit<SpyMessage, 'timestamp'> = {
|
|
151
|
-
data,
|
|
152
|
-
serviceKey: mapping[bucketArn],
|
|
153
|
-
};
|
|
154
|
-
postDataPromises.push(postData(fluentEvent));
|
|
155
|
-
}
|
|
156
|
-
} else if (event.Records && event.Records[0]?.dynamodb) {
|
|
157
|
-
console.log('*** DYNAMODB ***');
|
|
158
|
-
const eventDynamoDB = event as DynamoDBStreamEvent;
|
|
159
|
-
for (const record of eventDynamoDB.Records) {
|
|
160
|
-
let arn = record.eventSourceARN!;
|
|
161
|
-
arn = arn.substring(0, arn.indexOf('/stream/'));
|
|
162
|
-
|
|
163
|
-
const data: DynamoDBSpyEvent = {
|
|
164
|
-
spyEventType: 'DynamoDB',
|
|
165
|
-
eventName: record.eventName,
|
|
166
|
-
newImage: unmarshall(record.dynamodb?.NewImage as any),
|
|
167
|
-
keys: unmarshall(record.dynamodb?.Keys as any),
|
|
168
|
-
oldImage: record.dynamodb?.OldImage
|
|
169
|
-
? unmarshall(record.dynamodb?.OldImage as any)
|
|
170
|
-
: undefined,
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
const fluentEvent: Omit<SpyMessage, 'timestamp'> = {
|
|
174
|
-
data,
|
|
175
|
-
serviceKey: mapping[arn],
|
|
176
|
-
};
|
|
177
|
-
postDataPromises.push(postData(fluentEvent));
|
|
178
|
-
}
|
|
179
|
-
} else if (
|
|
180
|
-
event.detail &&
|
|
181
|
-
event['detail-type'] &&
|
|
182
|
-
event.version &&
|
|
183
|
-
event.source
|
|
184
|
-
) {
|
|
185
|
-
console.log('*** EventBridge ***');
|
|
186
|
-
const eventEb = event as EventBridgeEvent<any, any>;
|
|
187
|
-
|
|
188
|
-
const serviceKey = mapping.eventBridge; // the is new lambda for each subscription
|
|
189
|
-
|
|
190
|
-
const spyEventType = getSpyEventType(serviceKey) as
|
|
191
|
-
| 'EventBridge'
|
|
192
|
-
| 'EventBridgeRule';
|
|
193
|
-
|
|
194
|
-
const message = eventEb.detail;
|
|
195
|
-
|
|
196
|
-
const data: EventBridgeSpyEvent | EventBridgeRuleSpyEvent = {
|
|
197
|
-
spyEventType,
|
|
198
|
-
detail: message,
|
|
199
|
-
detailType: eventEb['detail-type'],
|
|
200
|
-
source: eventEb.source,
|
|
201
|
-
time: eventEb.time,
|
|
202
|
-
account: eventEb.account,
|
|
203
|
-
};
|
|
204
|
-
|
|
205
|
-
const fluentEvent: Omit<SpyMessage, 'timestamp'> = {
|
|
206
|
-
data,
|
|
207
|
-
serviceKey,
|
|
208
|
-
};
|
|
209
|
-
postDataPromises.push(postData(fluentEvent));
|
|
210
|
-
} else {
|
|
211
|
-
console.log('*** OTHER ***');
|
|
212
|
-
const fluentEvent: Omit<SpyMessage, 'timestamp'> = event;
|
|
213
|
-
postDataPromises.push(postData(fluentEvent));
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
await Promise.all(postDataPromises);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
export async function postData(spyMessage: Omit<SpyMessage, 'timestamp'>) {
|
|
220
|
-
// const postData = JSON.parse(event.body!).data;
|
|
221
|
-
console.log('postData', JSON.stringify(spyMessage));
|
|
222
|
-
|
|
223
|
-
if (!connections) {
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
const postCalls = connections.map(async ({ connectionId }) => {
|
|
228
|
-
console.log(`Sending message to: ${connectionId.S}`);
|
|
229
|
-
|
|
230
|
-
try {
|
|
231
|
-
const postToConnectionCommand = new PostToConnectionCommand({
|
|
232
|
-
ConnectionId: connectionId.S,
|
|
233
|
-
Data: JSON.stringify({
|
|
234
|
-
timestamp: new Date().toISOString(),
|
|
235
|
-
serviceKey: spyMessage.serviceKey,
|
|
236
|
-
data: spyMessage.data,
|
|
237
|
-
}) as any,
|
|
238
|
-
});
|
|
239
|
-
|
|
240
|
-
await apigwManagementApi.send(postToConnectionCommand);
|
|
241
|
-
} catch (e) {
|
|
242
|
-
console.error(`Fails sending message to: ${connectionId.S}`, e);
|
|
243
|
-
console.error(`Status code: ${(e as any).statusCode}`);
|
|
244
|
-
if ((e as any).$metadata.httpStatusCode === 410) {
|
|
245
|
-
console.log(`Found stale connection, deleting ${connectionId}`);
|
|
246
|
-
|
|
247
|
-
const deleteParams = new DeleteItemCommand({
|
|
248
|
-
TableName: process.env[envVariableNames.SSPY_WS_TABLE_NAME],
|
|
249
|
-
Key: { connectionId },
|
|
250
|
-
});
|
|
251
|
-
|
|
252
|
-
await ddb.send(deleteParams);
|
|
253
|
-
} else {
|
|
254
|
-
throw e;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
});
|
|
258
|
-
|
|
259
|
-
await Promise.all(postCalls);
|
|
260
|
-
console.log('Send message finish');
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
export function getSpyEventType(serviceKey: string) {
|
|
264
|
-
if (!serviceKey) {
|
|
265
|
-
throw new Error('Missing serviceKey');
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
return serviceKey.substring(0, serviceKey.indexOf('#'));
|
|
269
|
-
}
|
package/lib/cli/ws.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/lib/cli/ws.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const fs = require("fs");
|
|
4
|
-
const readline = require("readline");
|
|
5
|
-
const ws_1 = require("ws");
|
|
6
|
-
const getWebSocketUrl_1 = require("../common/getWebSocketUrl");
|
|
7
|
-
async function run() {
|
|
8
|
-
// var credentialsProvider = awsCp.fromTemporaryCredentials();
|
|
9
|
-
// const credentials = await credentialsProvider();
|
|
10
|
-
// const client = new STSClient({});
|
|
11
|
-
// client.send()
|
|
12
|
-
// const command = new GetSessionTokenCommand({});
|
|
13
|
-
// const { Credentials: credentials } = await client.send(command);
|
|
14
|
-
// //const credentials = s.Credentials;
|
|
15
|
-
// console.log("credentials", credentials);
|
|
16
|
-
// const url = process.argv[2];
|
|
17
|
-
const url = 'wss://preh1xo1xh.execute-api.eu-west-1.amazonaws.com/prod';
|
|
18
|
-
// https://medium.com/@o.bredenberg/iam-sign-your-api-gateway-websocket-connection-request-no-custom-auth-from-your-frontend-65451166757d
|
|
19
|
-
const url2 = await (0, getWebSocketUrl_1.getWebSocketUrl)(url);
|
|
20
|
-
const ws = new ws_1.default(url2);
|
|
21
|
-
const fileDescriptor = fs.openSync('spy_log.json', 'w');
|
|
22
|
-
// 📢📁⚡️💾 💽 💾 💿 📀🛢🪣📑🔊
|
|
23
|
-
ws.on('open', () => console.log(`connected ${new Date().toISOString()}`));
|
|
24
|
-
ws.on('message', (data) => {
|
|
25
|
-
// console.log(`From server: ${data}`);
|
|
26
|
-
let parsed;
|
|
27
|
-
try {
|
|
28
|
-
parsed = JSON.parse(data);
|
|
29
|
-
}
|
|
30
|
-
catch (err) {
|
|
31
|
-
console.error(`Can not parse ${data}`);
|
|
32
|
-
}
|
|
33
|
-
if (parsed) {
|
|
34
|
-
console.log(`\x1b[47m\x1b[34m${parsed.timestamp} \x1b[31m🍕 ${parsed.serviceKey}\x1b[0m\x1b[32m\n${JSON.stringify(parsed.data, null, 2)}\x1b[0m`);
|
|
35
|
-
}
|
|
36
|
-
fs.write(fileDescriptor, data, (error) => {
|
|
37
|
-
if (!error) {
|
|
38
|
-
// fs.close(fileDescriptor);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
console.error(error);
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
fs.write(fileDescriptor, '\n', (error) => {
|
|
45
|
-
if (!error) {
|
|
46
|
-
// fs.close(fileDescriptor);
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
console.error(error);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
ws.on('close', () => {
|
|
54
|
-
console.log(`disconnected ${new Date().toISOString()}`);
|
|
55
|
-
fs.close(fileDescriptor, () => undefined);
|
|
56
|
-
process.exit();
|
|
57
|
-
});
|
|
58
|
-
readline
|
|
59
|
-
.createInterface({
|
|
60
|
-
input: process.stdin,
|
|
61
|
-
output: process.stdout,
|
|
62
|
-
})
|
|
63
|
-
.on('line', (data) => {
|
|
64
|
-
ws.send(data);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
run().catch(console.error);
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jbGkvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5QkFBeUI7QUFDekIscUNBQXFDO0FBQ3JDLDJCQUEyQjtBQUMzQiwrREFBNEQ7QUFFNUQsS0FBSyxVQUFVLEdBQUc7SUFDaEIsOERBQThEO0lBQzlELG1EQUFtRDtJQUVuRCxvQ0FBb0M7SUFDcEMsZ0JBQWdCO0lBRWhCLGtEQUFrRDtJQUNsRCxtRUFBbUU7SUFDbkUsdUNBQXVDO0lBRXZDLDJDQUEyQztJQUUzQywrQkFBK0I7SUFDL0IsTUFBTSxHQUFHLEdBQUcsMkRBQTJELENBQUM7SUFFeEUseUlBQXlJO0lBQ3pJLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxpQ0FBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sRUFBRSxHQUFHLElBQUksWUFBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRS9CLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELCtCQUErQjtJQUUvQixFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRSxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFO1FBQzdCLHVDQUF1QztRQUV2QyxJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUk7WUFDRixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN4QztRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FDVCxtQkFBbUIsTUFBTSxDQUFDLFNBQVMsZUFDakMsTUFBTSxDQUFDLFVBQ1Qsb0JBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FDbEUsQ0FBQztTQUNIO1FBRUQsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDViw0QkFBNEI7YUFDN0I7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDViw0QkFBNEI7YUFDN0I7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEQsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUTtTQUNMLGVBQWUsQ0FBQztRQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztRQUNwQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdkIsQ0FBQztTQUNELEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNuQixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUNELEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyByZWFkbGluZSBmcm9tICdyZWFkbGluZSc7XG5pbXBvcnQgV2ViU29ja2V0IGZyb20gJ3dzJztcbmltcG9ydCB7IGdldFdlYlNvY2tldFVybCB9IGZyb20gJy4uL2NvbW1vbi9nZXRXZWJTb2NrZXRVcmwnO1xuXG5hc3luYyBmdW5jdGlvbiBydW4oKSB7XG4gIC8vIHZhciBjcmVkZW50aWFsc1Byb3ZpZGVyID0gYXdzQ3AuZnJvbVRlbXBvcmFyeUNyZWRlbnRpYWxzKCk7XG4gIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgY3JlZGVudGlhbHNQcm92aWRlcigpO1xuXG4gIC8vIGNvbnN0IGNsaWVudCA9IG5ldyBTVFNDbGllbnQoe30pO1xuICAvLyBjbGllbnQuc2VuZCgpXG5cbiAgLy8gY29uc3QgY29tbWFuZCA9IG5ldyBHZXRTZXNzaW9uVG9rZW5Db21tYW5kKHt9KTtcbiAgLy8gY29uc3QgeyBDcmVkZW50aWFsczogY3JlZGVudGlhbHMgfSA9IGF3YWl0IGNsaWVudC5zZW5kKGNvbW1hbmQpO1xuICAvLyAvL2NvbnN0IGNyZWRlbnRpYWxzID0gcy5DcmVkZW50aWFscztcblxuICAvLyBjb25zb2xlLmxvZyhcImNyZWRlbnRpYWxzXCIsIGNyZWRlbnRpYWxzKTtcblxuICAvLyBjb25zdCB1cmwgPSBwcm9jZXNzLmFyZ3ZbMl07XG4gIGNvbnN0IHVybCA9ICd3c3M6Ly9wcmVoMXhvMXhoLmV4ZWN1dGUtYXBpLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL3Byb2QnO1xuXG4gIC8vIGh0dHBzOi8vbWVkaXVtLmNvbS9Aby5icmVkZW5iZXJnL2lhbS1zaWduLXlvdXItYXBpLWdhdGV3YXktd2Vic29ja2V0LWNvbm5lY3Rpb24tcmVxdWVzdC1uby1jdXN0b20tYXV0aC1mcm9tLXlvdXItZnJvbnRlbmQtNjU0NTExNjY3NTdkXG4gIGNvbnN0IHVybDIgPSBhd2FpdCBnZXRXZWJTb2NrZXRVcmwodXJsKTtcblxuICBjb25zdCB3cyA9IG5ldyBXZWJTb2NrZXQodXJsMik7XG5cbiAgY29uc3QgZmlsZURlc2NyaXB0b3IgPSBmcy5vcGVuU3luYygnc3B5X2xvZy5qc29uJywgJ3cnKTtcbiAgLy8g8J+TovCfk4HimqHvuI/wn5K+IPCfkr0g8J+SviDwn5K/IPCfk4Dwn5ui8J+qo/Cfk5Hwn5SKXG5cbiAgd3Mub24oJ29wZW4nLCAoKSA9PiBjb25zb2xlLmxvZyhgY29ubmVjdGVkICR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWApKTtcbiAgd3Mub24oJ21lc3NhZ2UnLCAoZGF0YTogYW55KSA9PiB7XG4gICAgLy8gY29uc29sZS5sb2coYEZyb20gc2VydmVyOiAke2RhdGF9YCk7XG5cbiAgICBsZXQgcGFyc2VkO1xuICAgIHRyeSB7XG4gICAgICBwYXJzZWQgPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihgQ2FuIG5vdCBwYXJzZSAke2RhdGF9YCk7XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZCkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBcXHgxYls0N21cXHgxYlszNG0ke3BhcnNlZC50aW1lc3RhbXB9IFxceDFiWzMxbfCfjZUgJHtcbiAgICAgICAgICBwYXJzZWQuc2VydmljZUtleVxuICAgICAgICB9XFx4MWJbMG1cXHgxYlszMm1cXG4ke0pTT04uc3RyaW5naWZ5KHBhcnNlZC5kYXRhLCBudWxsLCAyKX1cXHgxYlswbWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZnMud3JpdGUoZmlsZURlc2NyaXB0b3IsIGRhdGEsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAvLyBmcy5jbG9zZShmaWxlRGVzY3JpcHRvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBmcy53cml0ZShmaWxlRGVzY3JpcHRvciwgJ1xcbicsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAvLyBmcy5jbG9zZShmaWxlRGVzY3JpcHRvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIHdzLm9uKCdjbG9zZScsICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgZGlzY29ubmVjdGVkICR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWApO1xuICAgIGZzLmNsb3NlKGZpbGVEZXNjcmlwdG9yLCAoKSA9PiB1bmRlZmluZWQpO1xuICAgIHByb2Nlc3MuZXhpdCgpO1xuICB9KTtcblxuICByZWFkbGluZVxuICAgIC5jcmVhdGVJbnRlcmZhY2Uoe1xuICAgICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXG4gICAgICBvdXRwdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICAgIH0pXG4gICAgLm9uKCdsaW5lJywgKGRhdGEpID0+IHtcbiAgICAgIHdzLnNlbmQoZGF0YSk7XG4gICAgfSk7XG59XG5ydW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiJdfQ==
|
package/lib/cli/ws.mjs
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs';
|
|
2
|
-
import * as readline from 'readline';
|
|
3
|
-
import WebSocket from 'ws';
|
|
4
|
-
import { getWebSocketUrl } from '../common/getWebSocketUrl';
|
|
5
|
-
async function run() {
|
|
6
|
-
// var credentialsProvider = awsCp.fromTemporaryCredentials();
|
|
7
|
-
// const credentials = await credentialsProvider();
|
|
8
|
-
// const client = new STSClient({});
|
|
9
|
-
// client.send()
|
|
10
|
-
// const command = new GetSessionTokenCommand({});
|
|
11
|
-
// const { Credentials: credentials } = await client.send(command);
|
|
12
|
-
// //const credentials = s.Credentials;
|
|
13
|
-
// console.log("credentials", credentials);
|
|
14
|
-
// const url = process.argv[2];
|
|
15
|
-
const url = 'wss://preh1xo1xh.execute-api.eu-west-1.amazonaws.com/prod';
|
|
16
|
-
// https://medium.com/@o.bredenberg/iam-sign-your-api-gateway-websocket-connection-request-no-custom-auth-from-your-frontend-65451166757d
|
|
17
|
-
const url2 = await getWebSocketUrl(url);
|
|
18
|
-
const ws = new WebSocket(url2);
|
|
19
|
-
const fileDescriptor = fs.openSync('spy_log.json', 'w');
|
|
20
|
-
// 📢📁⚡️💾 💽 💾 💿 📀🛢🪣📑🔊
|
|
21
|
-
ws.on('open', () => console.log(`connected ${new Date().toISOString()}`));
|
|
22
|
-
ws.on('message', (data) => {
|
|
23
|
-
// console.log(`From server: ${data}`);
|
|
24
|
-
let parsed;
|
|
25
|
-
try {
|
|
26
|
-
parsed = JSON.parse(data);
|
|
27
|
-
}
|
|
28
|
-
catch (err) {
|
|
29
|
-
console.error(`Can not parse ${data}`);
|
|
30
|
-
}
|
|
31
|
-
if (parsed) {
|
|
32
|
-
console.log(`\x1b[47m\x1b[34m${parsed.timestamp} \x1b[31m🍕 ${parsed.serviceKey}\x1b[0m\x1b[32m\n${JSON.stringify(parsed.data, null, 2)}\x1b[0m`);
|
|
33
|
-
}
|
|
34
|
-
fs.write(fileDescriptor, data, (error) => {
|
|
35
|
-
if (!error) {
|
|
36
|
-
// fs.close(fileDescriptor);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
console.error(error);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
fs.write(fileDescriptor, '\n', (error) => {
|
|
43
|
-
if (!error) {
|
|
44
|
-
// fs.close(fileDescriptor);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
console.error(error);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
ws.on('close', () => {
|
|
52
|
-
console.log(`disconnected ${new Date().toISOString()}`);
|
|
53
|
-
fs.close(fileDescriptor, () => undefined);
|
|
54
|
-
process.exit();
|
|
55
|
-
});
|
|
56
|
-
readline
|
|
57
|
-
.createInterface({
|
|
58
|
-
input: process.stdin,
|
|
59
|
-
output: process.stdout,
|
|
60
|
-
})
|
|
61
|
-
.on('line', (data) => {
|
|
62
|
-
ws.send(data);
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
run().catch(console.error);
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jbGkvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxLQUFLLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFDckMsT0FBTyxTQUFTLE1BQU0sSUFBSSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxLQUFLLFVBQVUsR0FBRztJQUNoQiw4REFBOEQ7SUFDOUQsbURBQW1EO0lBRW5ELG9DQUFvQztJQUNwQyxnQkFBZ0I7SUFFaEIsa0RBQWtEO0lBQ2xELG1FQUFtRTtJQUNuRSx1Q0FBdUM7SUFFdkMsMkNBQTJDO0lBRTNDLCtCQUErQjtJQUMvQixNQUFNLEdBQUcsR0FBRywyREFBMkQsQ0FBQztJQUV4RSx5SUFBeUk7SUFDekksTUFBTSxJQUFJLEdBQUcsTUFBTSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFeEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFL0IsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEQsK0JBQStCO0lBRS9CLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBUyxFQUFFLEVBQUU7UUFDN0IsdUNBQXVDO1FBRXZDLElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSTtZQUNGLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNCO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUNULG1CQUFtQixNQUFNLENBQUMsU0FBUyxlQUNqQyxNQUFNLENBQUMsVUFDVCxvQkFBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUNsRSxDQUFDO1NBQ0g7UUFFRCxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLDRCQUE0QjthQUM3QjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLDRCQUE0QjthQUM3QjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RCxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRO1NBQ0wsZUFBZSxDQUFDO1FBQ2YsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUN2QixDQUFDO1NBQ0QsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ25CLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBQ0QsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHJlYWRsaW5lIGZyb20gJ3JlYWRsaW5lJztcbmltcG9ydCBXZWJTb2NrZXQgZnJvbSAnd3MnO1xuaW1wb3J0IHsgZ2V0V2ViU29ja2V0VXJsIH0gZnJvbSAnLi4vY29tbW9uL2dldFdlYlNvY2tldFVybCc7XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bigpIHtcbiAgLy8gdmFyIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBhd3NDcC5mcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMoKTtcbiAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCBjcmVkZW50aWFsc1Byb3ZpZGVyKCk7XG5cbiAgLy8gY29uc3QgY2xpZW50ID0gbmV3IFNUU0NsaWVudCh7fSk7XG4gIC8vIGNsaWVudC5zZW5kKClcblxuICAvLyBjb25zdCBjb21tYW5kID0gbmV3IEdldFNlc3Npb25Ub2tlbkNvbW1hbmQoe30pO1xuICAvLyBjb25zdCB7IENyZWRlbnRpYWxzOiBjcmVkZW50aWFscyB9ID0gYXdhaXQgY2xpZW50LnNlbmQoY29tbWFuZCk7XG4gIC8vIC8vY29uc3QgY3JlZGVudGlhbHMgPSBzLkNyZWRlbnRpYWxzO1xuXG4gIC8vIGNvbnNvbGUubG9nKFwiY3JlZGVudGlhbHNcIiwgY3JlZGVudGlhbHMpO1xuXG4gIC8vIGNvbnN0IHVybCA9IHByb2Nlc3MuYXJndlsyXTtcbiAgY29uc3QgdXJsID0gJ3dzczovL3ByZWgxeG8xeGguZXhlY3V0ZS1hcGkuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vcHJvZCc7XG5cbiAgLy8gaHR0cHM6Ly9tZWRpdW0uY29tL0BvLmJyZWRlbmJlcmcvaWFtLXNpZ24teW91ci1hcGktZ2F0ZXdheS13ZWJzb2NrZXQtY29ubmVjdGlvbi1yZXF1ZXN0LW5vLWN1c3RvbS1hdXRoLWZyb20teW91ci1mcm9udGVuZC02NTQ1MTE2Njc1N2RcbiAgY29uc3QgdXJsMiA9IGF3YWl0IGdldFdlYlNvY2tldFVybCh1cmwpO1xuXG4gIGNvbnN0IHdzID0gbmV3IFdlYlNvY2tldCh1cmwyKTtcblxuICBjb25zdCBmaWxlRGVzY3JpcHRvciA9IGZzLm9wZW5TeW5jKCdzcHlfbG9nLmpzb24nLCAndycpO1xuICAvLyDwn5Oi8J+TgeKaoe+4j/Cfkr4g8J+SvSDwn5K+IPCfkr8g8J+TgPCfm6Lwn6qj8J+TkfCflIpcblxuICB3cy5vbignb3BlbicsICgpID0+IGNvbnNvbGUubG9nKGBjb25uZWN0ZWQgJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9YCkpO1xuICB3cy5vbignbWVzc2FnZScsIChkYXRhOiBhbnkpID0+IHtcbiAgICAvLyBjb25zb2xlLmxvZyhgRnJvbSBzZXJ2ZXI6ICR7ZGF0YX1gKTtcblxuICAgIGxldCBwYXJzZWQ7XG4gICAgdHJ5IHtcbiAgICAgIHBhcnNlZCA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBDYW4gbm90IHBhcnNlICR7ZGF0YX1gKTtcbiAgICB9XG5cbiAgICBpZiAocGFyc2VkKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFxceDFiWzQ3bVxceDFiWzM0bSR7cGFyc2VkLnRpbWVzdGFtcH0gXFx4MWJbMzFt8J+NlSAke1xuICAgICAgICAgIHBhcnNlZC5zZXJ2aWNlS2V5XG4gICAgICAgIH1cXHgxYlswbVxceDFiWzMybVxcbiR7SlNPTi5zdHJpbmdpZnkocGFyc2VkLmRhdGEsIG51bGwsIDIpfVxceDFiWzBtYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmcy53cml0ZShmaWxlRGVzY3JpcHRvciwgZGF0YSwgKGVycm9yKSA9PiB7XG4gICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgIC8vIGZzLmNsb3NlKGZpbGVEZXNjcmlwdG9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGZzLndyaXRlKGZpbGVEZXNjcmlwdG9yLCAnXFxuJywgKGVycm9yKSA9PiB7XG4gICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgIC8vIGZzLmNsb3NlKGZpbGVEZXNjcmlwdG9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbiAgd3Mub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGBkaXNjb25uZWN0ZWQgJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9YCk7XG4gICAgZnMuY2xvc2UoZmlsZURlc2NyaXB0b3IsICgpID0+IHVuZGVmaW5lZCk7XG4gICAgcHJvY2Vzcy5leGl0KCk7XG4gIH0pO1xuXG4gIHJlYWRsaW5lXG4gICAgLmNyZWF0ZUludGVyZmFjZSh7XG4gICAgICBpbnB1dDogcHJvY2Vzcy5zdGRpbixcbiAgICAgIG91dHB1dDogcHJvY2Vzcy5zdGRvdXQsXG4gICAgfSlcbiAgICAub24oJ2xpbmUnLCAoZGF0YSkgPT4ge1xuICAgICAgd3Muc2VuZChkYXRhKTtcbiAgICB9KTtcbn1cbnJ1bigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { SpyMessage } from './spyEvents/SpyMessage';
|
|
2
|
-
export declare function publishSpyEvent(event: any): Promise<void>;
|
|
3
|
-
export declare function postData(spyMessage: Omit<SpyMessage, 'timestamp'>): Promise<void>;
|
|
4
|
-
export declare function getSpyEventType(serviceKey: string): string;
|