serverless-spy 0.0.61 → 0.0.62
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 +3 -2
- package/_config.yml +14 -3
- package/assets/images/site-logo.png +0 -0
- package/dist/releasetag.txt +1 -1
- package/extension/interceptor.ts +5 -1
- package/lib/extension/dist/layer/nodejs/node_modules/interceptor.js +147 -2
- package/lib/extension/dist/layer/nodejs/node_modules/interceptor.js.map +4 -4
- package/lib/src/ServerlessSpy.js +1 -1
- package/logo/full_logo.png +0 -0
- package/node_modules/serialize-error/error-constructors.d.ts +8 -0
- package/node_modules/serialize-error/error-constructors.js +26 -0
- package/node_modules/serialize-error/index.d.ts +171 -0
- package/node_modules/serialize-error/index.js +205 -0
- package/node_modules/serialize-error/license +9 -0
- package/node_modules/serialize-error/node_modules/type-fest/index.d.ts +95 -0
- package/node_modules/serialize-error/node_modules/type-fest/package.json +52 -0
- package/node_modules/serialize-error/node_modules/type-fest/readme.md +905 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/async-return-type.d.ts +25 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/asyncify.d.ts +33 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/basic.d.ts +45 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/camel-case.d.ts +73 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/camel-cased-properties-deep.d.ts +54 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/camel-cased-properties.d.ts +36 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/conditional-except.d.ts +45 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/conditional-keys.d.ts +47 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/conditional-pick.d.ts +44 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/delimiter-case.d.ts +93 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts +60 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/delimiter-cased-properties.d.ts +37 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/entries.d.ts +62 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/entry.d.ts +65 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/exact.d.ts +73 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/except.d.ts +57 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/fixed-length-array.d.ts +43 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/get.d.ts +184 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/has-optional-keys.d.ts +21 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/has-required-keys.d.ts +59 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/includes.d.ts +22 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/internal.d.ts +59 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/invariant-of.d.ts +76 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/iterable-element.d.ts +54 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/join.d.ts +30 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/jsonify.d.ts +90 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/kebab-case.d.ts +38 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/kebab-cased-properties-deep.d.ts +47 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/kebab-cased-properties.d.ts +30 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/last-array-element.d.ts +28 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/literal-to-primitive.d.ts +36 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/literal-union.d.ts +35 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/merge-exclusive.d.ts +41 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/merge.d.ts +27 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/multidimensional-array.d.ts +43 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/multidimensional-readonly-array.d.ts +47 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/mutable.d.ts +5 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/numeric.d.ts +170 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/observable-like.d.ts +62 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/opaque.d.ts +107 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/optional-keys-of.d.ts +38 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/package-json.d.ts +663 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/partial-deep.d.ts +113 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/partial-on-undefined-deep.d.ts +70 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/pascal-case.d.ts +38 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/pascal-cased-properties-deep.d.ts +54 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/pascal-cased-properties.d.ts +34 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/primitive.d.ts +13 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/promisable.d.ts +25 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/promise-value.d.ts +29 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/readonly-deep.d.ts +85 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/readonly-tuple.d.ts +41 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/remove-index-signature.d.ts +104 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/replace.d.ts +67 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/require-all-or-none.d.ts +36 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/require-at-least-one.d.ts +35 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/require-exactly-one.d.ts +34 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/required-keys-of.d.ts +29 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/schema.d.ts +72 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/screaming-snake-case.d.ts +33 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/set-non-nullable.d.ts +35 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/set-optional.d.ts +35 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/set-required.d.ts +35 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/set-return-type.d.ts +31 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/simplify.d.ts +83 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/snake-case.d.ts +38 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/snake-cased-properties-deep.d.ts +47 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/snake-cased-properties.d.ts +30 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/split.d.ts +29 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/spread.d.ts +85 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/string-key-of.d.ts +25 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/stringified.d.ts +23 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/trim.d.ts +25 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/tsconfig-json.d.ts +1172 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/typed-array.d.ts +17 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/union-to-intersection.d.ts +60 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/value-of.d.ts +42 -0
- package/node_modules/serialize-error/node_modules/type-fest/source/writable.d.ts +40 -0
- package/node_modules/serialize-error/package.json +46 -0
- package/node_modules/serialize-error/readme.md +198 -0
- package/package.json +6 -4
package/.jsii
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"caporal": "^1.4.0",
|
|
30
30
|
"json-format-highlight": "^1.0.4",
|
|
31
31
|
"open": "^8.4.0",
|
|
32
|
+
"serialize-error": "^11.0.0",
|
|
32
33
|
"ws": "^8.9.0"
|
|
33
34
|
},
|
|
34
35
|
"dependencies": {
|
|
@@ -3554,6 +3555,6 @@
|
|
|
3554
3555
|
"symbolId": "src/ServerlessSpy:SpyFilter"
|
|
3555
3556
|
}
|
|
3556
3557
|
},
|
|
3557
|
-
"version": "0.0.
|
|
3558
|
-
"fingerprint": "
|
|
3558
|
+
"version": "0.0.62",
|
|
3559
|
+
"fingerprint": "ch9R369njclSIl5fVQ2DpKGxZ9r/81SAEQPXC0yrNPo="
|
|
3559
3560
|
}
|
package/_config.yml
CHANGED
|
@@ -3,8 +3,11 @@ project: 'ServerlessSpy'
|
|
|
3
3
|
description: 'CDK-based library for writing elegant integration tests on AWS serverless architecture and an additional web console to monitor events in real time.'
|
|
4
4
|
author: Marko (ServerlessLife)
|
|
5
5
|
email: marko@serverlesslife.com
|
|
6
|
-
image: logo/full_logo.
|
|
6
|
+
image: https://serverlessspy.com/logo/full_logo.svg
|
|
7
7
|
twitter_username: ServerlessL
|
|
8
|
+
twitter:
|
|
9
|
+
username: ServerlessL
|
|
10
|
+
og_image: https://serverlessspy.com/logo/full_logo.svg
|
|
8
11
|
github_username: serverlesslife
|
|
9
12
|
show_downloads: false
|
|
10
13
|
encoding: UTF-8
|
|
@@ -17,8 +20,8 @@ jailed: false
|
|
|
17
20
|
gfm_quirks: paragraph_end
|
|
18
21
|
theme: minimal-mistakes-jekyll
|
|
19
22
|
minimal_mistakes_skin: dark
|
|
20
|
-
teaser: /logo/full_logo.svg
|
|
21
|
-
logo: /logo/full_logo.svg
|
|
23
|
+
teaser: https://serverlessspy.com/logo/full_logo.svg
|
|
24
|
+
logo: https://serverlessspy.com/logo/full_logo.svg
|
|
22
25
|
markdown: kramdown
|
|
23
26
|
sass:
|
|
24
27
|
# Where you keep your scss files
|
|
@@ -40,3 +43,11 @@ analytics:
|
|
|
40
43
|
provider: 'google-gtag'
|
|
41
44
|
google:
|
|
42
45
|
tracking_id: 'G-C2PHH6WYPP'
|
|
46
|
+
social:
|
|
47
|
+
links:
|
|
48
|
+
- 'https://twitter.com/ServerlessL'
|
|
49
|
+
- 'https://www.linkedin.com/in/marko-serverlesslife/'
|
|
50
|
+
author:
|
|
51
|
+
name : Marko (ServerlessLife)
|
|
52
|
+
avatar : "/logo/marko_serverlesslife.jpg"
|
|
53
|
+
bio : "Full-stack Software Developer | AWS Certified Professional | Serverless Specialist"
|
|
Binary file
|
package/dist/releasetag.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
v0.0.
|
|
1
|
+
v0.0.62
|
package/extension/interceptor.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { FunctionResponseSpyEvent } from '../common/spyEvents/FunctionResponseSp
|
|
|
7
7
|
import { SpyEventSender } from '../common/SpyEventSender';
|
|
8
8
|
import { envVariableNames } from '../src/common/envVariableNames';
|
|
9
9
|
import { load } from './aws/UserFunction';
|
|
10
|
+
import { serializeError } from 'serialize-error';
|
|
10
11
|
|
|
11
12
|
const ORIGINAL_HANDLER_KEY = 'ORIGINAL_HANDLER';
|
|
12
13
|
|
|
@@ -73,12 +74,15 @@ export const handler = (
|
|
|
73
74
|
|
|
74
75
|
const fail = (error: any) => {
|
|
75
76
|
logError(error);
|
|
77
|
+
|
|
78
|
+
const errorSerialized = serializeError(error);
|
|
79
|
+
|
|
76
80
|
const key = `Function#${
|
|
77
81
|
process.env[envVariableNames.SSPY_FUNCTION_NAME]
|
|
78
82
|
}#Error`;
|
|
79
83
|
const p = sendLambdaSpyEvent(key, <FunctionErrorSpyEvent>{
|
|
80
84
|
request: event,
|
|
81
|
-
error,
|
|
85
|
+
error: errorSerialized,
|
|
82
86
|
context: contextSpy,
|
|
83
87
|
});
|
|
84
88
|
promises.push(p);
|
|
@@ -26199,7 +26199,7 @@ var require_convertToNative = __commonJS({
|
|
|
26199
26199
|
};
|
|
26200
26200
|
var convertString = (stringValue) => stringValue;
|
|
26201
26201
|
var convertBinary = (binaryValue) => binaryValue;
|
|
26202
|
-
var convertList = (
|
|
26202
|
+
var convertList = (list2, options) => list2.map((item) => (0, exports.convertToNative)(item, options));
|
|
26203
26203
|
var convertMap = (map, options) => Object.entries(map).reduce((acc, [key, value]) => ({
|
|
26204
26204
|
...acc,
|
|
26205
26205
|
[key]: (0, exports.convertToNative)(value, options)
|
|
@@ -26605,6 +26605,150 @@ var load = function(appRoot, fullHandlerString) {
|
|
|
26605
26605
|
return handlerFunc;
|
|
26606
26606
|
};
|
|
26607
26607
|
|
|
26608
|
+
// node_modules/serialize-error/error-constructors.js
|
|
26609
|
+
var list = [
|
|
26610
|
+
EvalError,
|
|
26611
|
+
RangeError,
|
|
26612
|
+
ReferenceError,
|
|
26613
|
+
SyntaxError,
|
|
26614
|
+
TypeError,
|
|
26615
|
+
URIError,
|
|
26616
|
+
globalThis.DOMException,
|
|
26617
|
+
globalThis.AssertionError,
|
|
26618
|
+
globalThis.SystemError
|
|
26619
|
+
].filter(Boolean).map(
|
|
26620
|
+
(constructor) => [constructor.name, constructor]
|
|
26621
|
+
);
|
|
26622
|
+
var errorConstructors = new Map(list);
|
|
26623
|
+
var error_constructors_default = errorConstructors;
|
|
26624
|
+
|
|
26625
|
+
// node_modules/serialize-error/index.js
|
|
26626
|
+
var commonProperties = [
|
|
26627
|
+
{
|
|
26628
|
+
property: "name",
|
|
26629
|
+
enumerable: false
|
|
26630
|
+
},
|
|
26631
|
+
{
|
|
26632
|
+
property: "message",
|
|
26633
|
+
enumerable: false
|
|
26634
|
+
},
|
|
26635
|
+
{
|
|
26636
|
+
property: "stack",
|
|
26637
|
+
enumerable: false
|
|
26638
|
+
},
|
|
26639
|
+
{
|
|
26640
|
+
property: "code",
|
|
26641
|
+
enumerable: true
|
|
26642
|
+
},
|
|
26643
|
+
{
|
|
26644
|
+
property: "cause",
|
|
26645
|
+
enumerable: false
|
|
26646
|
+
}
|
|
26647
|
+
];
|
|
26648
|
+
var toJsonWasCalled = Symbol(".toJSON was called");
|
|
26649
|
+
var toJSON = (from) => {
|
|
26650
|
+
from[toJsonWasCalled] = true;
|
|
26651
|
+
const json = from.toJSON();
|
|
26652
|
+
delete from[toJsonWasCalled];
|
|
26653
|
+
return json;
|
|
26654
|
+
};
|
|
26655
|
+
var getErrorConstructor = (name) => error_constructors_default.get(name) ?? Error;
|
|
26656
|
+
var destroyCircular = ({
|
|
26657
|
+
from,
|
|
26658
|
+
seen,
|
|
26659
|
+
to,
|
|
26660
|
+
forceEnumerable,
|
|
26661
|
+
maxDepth,
|
|
26662
|
+
depth,
|
|
26663
|
+
useToJSON,
|
|
26664
|
+
serialize
|
|
26665
|
+
}) => {
|
|
26666
|
+
if (!to) {
|
|
26667
|
+
if (Array.isArray(from)) {
|
|
26668
|
+
to = [];
|
|
26669
|
+
} else if (!serialize && isErrorLike(from)) {
|
|
26670
|
+
const Error2 = getErrorConstructor(from.name);
|
|
26671
|
+
to = new Error2();
|
|
26672
|
+
} else {
|
|
26673
|
+
to = {};
|
|
26674
|
+
}
|
|
26675
|
+
}
|
|
26676
|
+
seen.push(from);
|
|
26677
|
+
if (depth >= maxDepth) {
|
|
26678
|
+
return to;
|
|
26679
|
+
}
|
|
26680
|
+
if (useToJSON && typeof from.toJSON === "function" && from[toJsonWasCalled] !== true) {
|
|
26681
|
+
return toJSON(from);
|
|
26682
|
+
}
|
|
26683
|
+
const continueDestroyCircular = (value) => destroyCircular({
|
|
26684
|
+
from: value,
|
|
26685
|
+
seen: [...seen],
|
|
26686
|
+
forceEnumerable,
|
|
26687
|
+
maxDepth,
|
|
26688
|
+
depth,
|
|
26689
|
+
useToJSON,
|
|
26690
|
+
serialize
|
|
26691
|
+
});
|
|
26692
|
+
for (const [key, value] of Object.entries(from)) {
|
|
26693
|
+
if (typeof Buffer === "function" && Buffer.isBuffer(value)) {
|
|
26694
|
+
to[key] = "[object Buffer]";
|
|
26695
|
+
continue;
|
|
26696
|
+
}
|
|
26697
|
+
if (value !== null && typeof value === "object" && typeof value.pipe === "function") {
|
|
26698
|
+
to[key] = "[object Stream]";
|
|
26699
|
+
continue;
|
|
26700
|
+
}
|
|
26701
|
+
if (typeof value === "function") {
|
|
26702
|
+
continue;
|
|
26703
|
+
}
|
|
26704
|
+
if (!value || typeof value !== "object") {
|
|
26705
|
+
to[key] = value;
|
|
26706
|
+
continue;
|
|
26707
|
+
}
|
|
26708
|
+
if (!seen.includes(from[key])) {
|
|
26709
|
+
depth++;
|
|
26710
|
+
to[key] = continueDestroyCircular(from[key]);
|
|
26711
|
+
continue;
|
|
26712
|
+
}
|
|
26713
|
+
to[key] = "[Circular]";
|
|
26714
|
+
}
|
|
26715
|
+
for (const { property, enumerable } of commonProperties) {
|
|
26716
|
+
if (typeof from[property] !== "undefined" && from[property] !== null) {
|
|
26717
|
+
Object.defineProperty(to, property, {
|
|
26718
|
+
value: isErrorLike(from[property]) ? continueDestroyCircular(from[property]) : from[property],
|
|
26719
|
+
enumerable: forceEnumerable ? true : enumerable,
|
|
26720
|
+
configurable: true,
|
|
26721
|
+
writable: true
|
|
26722
|
+
});
|
|
26723
|
+
}
|
|
26724
|
+
}
|
|
26725
|
+
return to;
|
|
26726
|
+
};
|
|
26727
|
+
function serializeError(value, options = {}) {
|
|
26728
|
+
const {
|
|
26729
|
+
maxDepth = Number.POSITIVE_INFINITY,
|
|
26730
|
+
useToJSON = true
|
|
26731
|
+
} = options;
|
|
26732
|
+
if (typeof value === "object" && value !== null) {
|
|
26733
|
+
return destroyCircular({
|
|
26734
|
+
from: value,
|
|
26735
|
+
seen: [],
|
|
26736
|
+
forceEnumerable: true,
|
|
26737
|
+
maxDepth,
|
|
26738
|
+
depth: 0,
|
|
26739
|
+
useToJSON,
|
|
26740
|
+
serialize: true
|
|
26741
|
+
});
|
|
26742
|
+
}
|
|
26743
|
+
if (typeof value === "function") {
|
|
26744
|
+
return `[Function: ${value.name ?? "anonymous"}]`;
|
|
26745
|
+
}
|
|
26746
|
+
return value;
|
|
26747
|
+
}
|
|
26748
|
+
function isErrorLike(value) {
|
|
26749
|
+
return Boolean(value) && typeof value === "object" && "name" in value && "message" in value && "stack" in value;
|
|
26750
|
+
}
|
|
26751
|
+
|
|
26608
26752
|
// extension/interceptor.ts
|
|
26609
26753
|
var ORIGINAL_HANDLER_KEY = "ORIGINAL_HANDLER";
|
|
26610
26754
|
var subscribedToSQS = process.env["SSPY_SUBSCRIBED_TO_SQS" /* SSPY_SUBSCRIBED_TO_SQS */] === "true";
|
|
@@ -26647,10 +26791,11 @@ var handler = (event, context, callback) => {
|
|
|
26647
26791
|
const originalHandler = getOriginalHandler();
|
|
26648
26792
|
const fail = (error) => {
|
|
26649
26793
|
logError(error);
|
|
26794
|
+
const errorSerialized = serializeError(error);
|
|
26650
26795
|
const key2 = `Function#${process.env["SSPY_FUNCTION_NAME" /* SSPY_FUNCTION_NAME */]}#Error`;
|
|
26651
26796
|
const p2 = sendLambdaSpyEvent(key2, {
|
|
26652
26797
|
request: event,
|
|
26653
|
-
error,
|
|
26798
|
+
error: errorSerialized,
|
|
26654
26799
|
context: contextSpy
|
|
26655
26800
|
});
|
|
26656
26801
|
promises.push(p2);
|