serverless-spy 0.0.8 → 0.0.11

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 (352) hide show
  1. package/.jsii +17 -14
  2. package/cli/cli.ts +1 -1
  3. package/cli/node_modules/ws/LICENSE +19 -0
  4. package/cli/node_modules/ws/README.md +495 -0
  5. package/cli/node_modules/ws/browser.js +8 -0
  6. package/cli/node_modules/ws/index.js +13 -0
  7. package/cli/node_modules/ws/lib/buffer-util.js +127 -0
  8. package/cli/node_modules/ws/lib/constants.js +12 -0
  9. package/cli/node_modules/ws/lib/event-target.js +266 -0
  10. package/cli/node_modules/ws/lib/extension.js +203 -0
  11. package/cli/node_modules/ws/lib/limiter.js +55 -0
  12. package/cli/node_modules/ws/lib/permessage-deflate.js +511 -0
  13. package/cli/node_modules/ws/lib/receiver.js +618 -0
  14. package/cli/node_modules/ws/lib/sender.js +478 -0
  15. package/cli/node_modules/ws/lib/stream.js +159 -0
  16. package/cli/node_modules/ws/lib/subprotocol.js +62 -0
  17. package/cli/node_modules/ws/lib/validation.js +125 -0
  18. package/cli/node_modules/ws/lib/websocket-server.js +535 -0
  19. package/cli/node_modules/ws/lib/websocket.js +1305 -0
  20. package/cli/node_modules/ws/package.json +61 -0
  21. package/cli/node_modules/ws/wrapper.mjs +8 -0
  22. package/cli/ws.ts +1 -1
  23. package/lib/cjs/cli/cli.d.ts +1 -0
  24. package/lib/cjs/cli/cli.js +87 -0
  25. package/lib/cjs/cli/ws.d.ts +1 -0
  26. package/lib/cjs/cli/ws.js +68 -0
  27. package/lib/cjs/common/getWebSocketUrl.d.ts +2 -0
  28. package/lib/cjs/common/getWebSocketUrl.js +57 -0
  29. package/lib/cjs/index.d.ts +2 -0
  30. package/lib/cjs/index.js +19 -0
  31. package/lib/cjs/listener/PrettifyForDisplay.d.ts +3 -0
  32. package/lib/cjs/listener/PrettifyForDisplay.js +3 -0
  33. package/lib/cjs/listener/RecursivePartial.d.ts +4 -0
  34. package/lib/cjs/listener/RecursivePartial.js +3 -0
  35. package/lib/cjs/listener/SpyHandlers.ts.d.ts +109 -0
  36. package/lib/cjs/listener/SpyHandlers.ts.js +3 -0
  37. package/lib/cjs/listener/SpyListener.d.ts +40 -0
  38. package/lib/cjs/listener/SpyListener.js +3 -0
  39. package/lib/cjs/listener/createServerlessSpyListener.d.ts +13 -0
  40. package/lib/cjs/listener/createServerlessSpyListener.js +167 -0
  41. package/lib/cjs/listener/index.d.ts +2 -0
  42. package/lib/cjs/listener/index.js +19 -0
  43. package/lib/cjs/listener/matchers.d.ts +0 -0
  44. package/lib/cjs/listener/matchers.js +55 -0
  45. package/lib/cjs/listener/setup.d.ts +0 -0
  46. package/lib/cjs/listener/setup.js +21 -0
  47. package/lib/{ServerlessSpy.d.ts → cjs/src/ServerlessSpy.d.ts} +0 -0
  48. package/lib/{ServerlessSpy.js → cjs/src/ServerlessSpy.js} +1 -1
  49. package/lib/{index.d.ts → cjs/src/index.d.ts} +0 -0
  50. package/lib/{index.js → cjs/src/index.js} +0 -0
  51. package/lib/mjs/cli/cli.d.ts +1 -0
  52. package/lib/mjs/cli/cli.js +85 -0
  53. package/lib/mjs/cli/ws.d.ts +1 -0
  54. package/lib/mjs/cli/ws.js +66 -0
  55. package/lib/mjs/common/getWebSocketUrl.d.ts +2 -0
  56. package/lib/mjs/common/getWebSocketUrl.js +53 -0
  57. package/lib/mjs/index.d.ts +2 -0
  58. package/lib/mjs/index.js +3 -0
  59. package/lib/mjs/listener/PrettifyForDisplay.d.ts +3 -0
  60. package/lib/mjs/listener/PrettifyForDisplay.js +2 -0
  61. package/lib/mjs/listener/RecursivePartial.d.ts +4 -0
  62. package/lib/mjs/listener/RecursivePartial.js +2 -0
  63. package/lib/mjs/listener/SpyHandlers.ts.d.ts +109 -0
  64. package/lib/mjs/listener/SpyHandlers.ts.js +2 -0
  65. package/lib/mjs/listener/SpyListener.d.ts +40 -0
  66. package/lib/mjs/listener/SpyListener.js +2 -0
  67. package/lib/mjs/listener/createServerlessSpyListener.d.ts +13 -0
  68. package/lib/mjs/listener/createServerlessSpyListener.js +163 -0
  69. package/lib/mjs/listener/index.d.ts +2 -0
  70. package/lib/mjs/listener/index.js +3 -0
  71. package/lib/mjs/listener/matchers.d.ts +0 -0
  72. package/lib/mjs/listener/matchers.js +55 -0
  73. package/lib/mjs/listener/setup.d.ts +0 -0
  74. package/lib/mjs/listener/setup.js +21 -0
  75. package/lib/mjs/src/ServerlessSpy.d.ts +27 -0
  76. package/lib/mjs/src/ServerlessSpy.js +293 -0
  77. package/lib/mjs/src/index.d.ts +1 -0
  78. package/lib/mjs/src/index.js +2 -0
  79. package/listener/node_modules/ws/LICENSE +19 -0
  80. package/listener/node_modules/ws/README.md +495 -0
  81. package/listener/node_modules/ws/browser.js +8 -0
  82. package/listener/node_modules/ws/index.js +13 -0
  83. package/listener/node_modules/ws/lib/buffer-util.js +127 -0
  84. package/listener/node_modules/ws/lib/constants.js +12 -0
  85. package/listener/node_modules/ws/lib/event-target.js +266 -0
  86. package/listener/node_modules/ws/lib/extension.js +203 -0
  87. package/listener/node_modules/ws/lib/limiter.js +55 -0
  88. package/listener/node_modules/ws/lib/permessage-deflate.js +511 -0
  89. package/listener/node_modules/ws/lib/receiver.js +618 -0
  90. package/listener/node_modules/ws/lib/sender.js +478 -0
  91. package/listener/node_modules/ws/lib/stream.js +159 -0
  92. package/listener/node_modules/ws/lib/subprotocol.js +62 -0
  93. package/listener/node_modules/ws/lib/validation.js +125 -0
  94. package/listener/node_modules/ws/lib/websocket-server.js +535 -0
  95. package/listener/node_modules/ws/lib/websocket.js +1305 -0
  96. package/listener/node_modules/ws/package.json +61 -0
  97. package/listener/node_modules/ws/wrapper.mjs +8 -0
  98. package/node_modules/@aws-crypto/crc32/node_modules/tslib/package.json +1 -5
  99. package/node_modules/@aws-crypto/crc32/package.json +1 -5
  100. package/node_modules/@aws-crypto/crc32c/node_modules/tslib/package.json +1 -5
  101. package/node_modules/@aws-crypto/crc32c/package.json +1 -5
  102. package/node_modules/@aws-crypto/ie11-detection/node_modules/tslib/package.json +1 -5
  103. package/node_modules/@aws-crypto/ie11-detection/package.json +1 -5
  104. package/node_modules/@aws-crypto/sha1-browser/node_modules/tslib/package.json +1 -5
  105. package/node_modules/@aws-crypto/sha1-browser/package.json +1 -5
  106. package/node_modules/@aws-crypto/sha256-browser/node_modules/tslib/package.json +1 -5
  107. package/node_modules/@aws-crypto/sha256-browser/package.json +1 -5
  108. package/node_modules/@aws-crypto/sha256-js/node_modules/tslib/package.json +1 -5
  109. package/node_modules/@aws-crypto/sha256-js/package.json +1 -5
  110. package/node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib/package.json +1 -5
  111. package/node_modules/@aws-crypto/supports-web-crypto/package.json +1 -5
  112. package/node_modules/@aws-crypto/util/node_modules/tslib/package.json +1 -5
  113. package/node_modules/@aws-crypto/util/package.json +1 -5
  114. package/node_modules/@aws-sdk/abort-controller/package.json +1 -5
  115. package/node_modules/@aws-sdk/chunked-blob-reader/package.json +1 -5
  116. package/node_modules/@aws-sdk/chunked-blob-reader-native/package.json +1 -5
  117. package/node_modules/@aws-sdk/client-apigatewaymanagementapi/package.json +1 -5
  118. package/node_modules/@aws-sdk/client-cognito-identity/CHANGELOG.md +8 -0
  119. package/node_modules/@aws-sdk/client-cognito-identity/package.json +3 -7
  120. package/node_modules/@aws-sdk/client-dynamodb/package.json +1 -5
  121. package/node_modules/@aws-sdk/client-eventbridge/package.json +1 -5
  122. package/node_modules/@aws-sdk/client-lambda/package.json +1 -5
  123. package/node_modules/@aws-sdk/client-s3/CHANGELOG.md +8 -0
  124. package/node_modules/@aws-sdk/client-s3/node_modules/entities/package.json +1 -5
  125. package/node_modules/@aws-sdk/client-s3/package.json +2 -6
  126. package/node_modules/@aws-sdk/client-sns/node_modules/entities/package.json +1 -5
  127. package/node_modules/@aws-sdk/client-sns/package.json +1 -5
  128. package/node_modules/@aws-sdk/client-sqs/node_modules/entities/package.json +1 -5
  129. package/node_modules/@aws-sdk/client-sqs/package.json +1 -5
  130. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/abort-controller/package.json +1 -5
  131. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/client-sso/package.json +1 -5
  132. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/client-sts/package.json +1 -5
  133. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/config-resolver/package.json +1 -5
  134. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-env/package.json +1 -5
  135. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-imds/package.json +1 -5
  136. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-ini/package.json +1 -5
  137. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-node/package.json +1 -5
  138. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-process/package.json +1 -5
  139. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-sso/package.json +1 -5
  140. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-web-identity/package.json +1 -5
  141. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/fetch-http-handler/package.json +1 -5
  142. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/hash-node/package.json +1 -5
  143. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/invalid-dependency/package.json +1 -5
  144. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/is-array-buffer/package.json +1 -5
  145. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-content-length/package.json +1 -5
  146. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-host-header/package.json +1 -5
  147. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-logger/package.json +1 -5
  148. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-retry/package.json +1 -5
  149. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-sdk-sts/package.json +1 -5
  150. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-serde/package.json +1 -5
  151. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-signing/package.json +1 -5
  152. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-stack/package.json +1 -5
  153. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-user-agent/package.json +1 -5
  154. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/node-config-provider/package.json +1 -5
  155. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/node-http-handler/package.json +1 -5
  156. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/property-provider/package.json +1 -5
  157. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/protocol-http/package.json +1 -5
  158. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/querystring-builder/package.json +1 -5
  159. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/querystring-parser/package.json +1 -5
  160. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/service-error-classification/package.json +1 -5
  161. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/shared-ini-file-loader/package.json +1 -5
  162. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/signature-v4/package.json +1 -5
  163. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/smithy-client/package.json +1 -5
  164. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/types/package.json +1 -5
  165. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/url-parser/package.json +1 -5
  166. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-base64-browser/package.json +1 -5
  167. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-base64-node/package.json +1 -5
  168. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-body-length-browser/package.json +1 -5
  169. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-body-length-node/package.json +1 -5
  170. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-buffer-from/package.json +1 -5
  171. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-config-provider/package.json +1 -5
  172. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-hex-encoding/package.json +1 -5
  173. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-uri-escape/package.json +1 -5
  174. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-user-agent-browser/package.json +1 -5
  175. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-user-agent-node/package.json +1 -5
  176. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-utf8-browser/package.json +1 -5
  177. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-utf8-node/package.json +1 -5
  178. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-waiter/package.json +1 -5
  179. package/node_modules/@aws-sdk/client-ssm/node_modules/entities/package.json +1 -5
  180. package/node_modules/@aws-sdk/client-ssm/package.json +1 -5
  181. package/node_modules/@aws-sdk/client-sso/package.json +1 -5
  182. package/node_modules/@aws-sdk/client-sts/node_modules/entities/package.json +1 -5
  183. package/node_modules/@aws-sdk/client-sts/package.json +1 -5
  184. package/node_modules/@aws-sdk/config-resolver/package.json +1 -5
  185. package/node_modules/@aws-sdk/credential-provider-cognito-identity/CHANGELOG.md +8 -0
  186. package/node_modules/@aws-sdk/credential-provider-cognito-identity/package.json +3 -7
  187. package/node_modules/@aws-sdk/credential-provider-env/package.json +1 -5
  188. package/node_modules/@aws-sdk/credential-provider-imds/package.json +1 -5
  189. package/node_modules/@aws-sdk/credential-provider-ini/package.json +1 -5
  190. package/node_modules/@aws-sdk/credential-provider-node/package.json +1 -5
  191. package/node_modules/@aws-sdk/credential-provider-process/package.json +1 -5
  192. package/node_modules/@aws-sdk/credential-provider-sso/package.json +1 -5
  193. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +1 -5
  194. package/node_modules/@aws-sdk/credential-providers/CHANGELOG.md +8 -0
  195. package/node_modules/@aws-sdk/credential-providers/package.json +4 -8
  196. package/node_modules/@aws-sdk/endpoint-cache/package.json +1 -5
  197. package/node_modules/@aws-sdk/eventstream-codec/package.json +1 -5
  198. package/node_modules/@aws-sdk/eventstream-serde-browser/package.json +1 -5
  199. package/node_modules/@aws-sdk/eventstream-serde-config-resolver/package.json +1 -5
  200. package/node_modules/@aws-sdk/eventstream-serde-node/package.json +1 -5
  201. package/node_modules/@aws-sdk/eventstream-serde-universal/package.json +1 -5
  202. package/node_modules/@aws-sdk/fetch-http-handler/package.json +1 -5
  203. package/node_modules/@aws-sdk/hash-blob-browser/package.json +1 -5
  204. package/node_modules/@aws-sdk/hash-node/package.json +1 -5
  205. package/node_modules/@aws-sdk/hash-stream-node/package.json +1 -5
  206. package/node_modules/@aws-sdk/invalid-dependency/package.json +1 -5
  207. package/node_modules/@aws-sdk/is-array-buffer/package.json +1 -5
  208. package/node_modules/@aws-sdk/lib-dynamodb/package.json +1 -5
  209. package/node_modules/@aws-sdk/md5-js/package.json +1 -5
  210. package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +1 -5
  211. package/node_modules/@aws-sdk/middleware-content-length/package.json +1 -5
  212. package/node_modules/@aws-sdk/middleware-endpoint-discovery/package.json +1 -5
  213. package/node_modules/@aws-sdk/middleware-expect-continue/package.json +1 -5
  214. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +1 -5
  215. package/node_modules/@aws-sdk/middleware-host-header/package.json +1 -5
  216. package/node_modules/@aws-sdk/middleware-location-constraint/package.json +1 -5
  217. package/node_modules/@aws-sdk/middleware-logger/package.json +1 -5
  218. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +1 -5
  219. package/node_modules/@aws-sdk/middleware-retry/package.json +1 -5
  220. package/node_modules/@aws-sdk/middleware-sdk-eventbridge/package.json +1 -5
  221. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +1 -5
  222. package/node_modules/@aws-sdk/middleware-sdk-sqs/package.json +1 -5
  223. package/node_modules/@aws-sdk/middleware-sdk-sts/package.json +1 -5
  224. package/node_modules/@aws-sdk/middleware-serde/package.json +1 -5
  225. package/node_modules/@aws-sdk/middleware-signing/package.json +1 -5
  226. package/node_modules/@aws-sdk/middleware-ssec/package.json +1 -5
  227. package/node_modules/@aws-sdk/middleware-stack/package.json +1 -5
  228. package/node_modules/@aws-sdk/middleware-user-agent/package.json +1 -5
  229. package/node_modules/@aws-sdk/node-config-provider/package.json +1 -5
  230. package/node_modules/@aws-sdk/node-http-handler/package.json +1 -5
  231. package/node_modules/@aws-sdk/property-provider/package.json +1 -5
  232. package/node_modules/@aws-sdk/protocol-http/package.json +1 -5
  233. package/node_modules/@aws-sdk/querystring-builder/package.json +1 -5
  234. package/node_modules/@aws-sdk/querystring-parser/package.json +1 -5
  235. package/node_modules/@aws-sdk/service-error-classification/package.json +1 -5
  236. package/node_modules/@aws-sdk/shared-ini-file-loader/package.json +1 -5
  237. package/node_modules/@aws-sdk/signature-v4/package.json +1 -5
  238. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +1 -5
  239. package/node_modules/@aws-sdk/smithy-client/package.json +1 -5
  240. package/node_modules/@aws-sdk/types/package.json +1 -5
  241. package/node_modules/@aws-sdk/url-parser/package.json +1 -5
  242. package/node_modules/@aws-sdk/util-arn-parser/package.json +1 -5
  243. package/node_modules/@aws-sdk/util-base64-browser/package.json +1 -5
  244. package/node_modules/@aws-sdk/util-base64-node/package.json +1 -5
  245. package/node_modules/@aws-sdk/util-body-length-browser/package.json +1 -5
  246. package/node_modules/@aws-sdk/util-body-length-node/package.json +1 -5
  247. package/node_modules/@aws-sdk/util-buffer-from/package.json +1 -5
  248. package/node_modules/@aws-sdk/util-config-provider/package.json +1 -5
  249. package/node_modules/@aws-sdk/util-credentials/node_modules/@aws-sdk/shared-ini-file-loader/package.json +1 -5
  250. package/node_modules/@aws-sdk/util-credentials/package.json +1 -5
  251. package/node_modules/@aws-sdk/util-defaults-mode-browser/package.json +1 -5
  252. package/node_modules/@aws-sdk/util-defaults-mode-node/package.json +1 -5
  253. package/node_modules/@aws-sdk/util-dynamodb/package.json +1 -5
  254. package/node_modules/@aws-sdk/util-hex-encoding/package.json +1 -5
  255. package/node_modules/@aws-sdk/util-locate-window/package.json +1 -5
  256. package/node_modules/@aws-sdk/util-middleware/package.json +1 -5
  257. package/node_modules/@aws-sdk/util-stream-browser/package.json +1 -5
  258. package/node_modules/@aws-sdk/util-stream-node/package.json +1 -5
  259. package/node_modules/@aws-sdk/util-uri-escape/package.json +1 -5
  260. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +1 -5
  261. package/node_modules/@aws-sdk/util-user-agent-node/package.json +1 -5
  262. package/node_modules/@aws-sdk/util-utf8-browser/package.json +1 -5
  263. package/node_modules/@aws-sdk/util-utf8-node/package.json +1 -5
  264. package/node_modules/@aws-sdk/util-waiter/package.json +1 -5
  265. package/node_modules/@aws-sdk/xml-builder/package.json +1 -5
  266. package/node_modules/@graphql-tools/merge/package.json +0 -4
  267. package/node_modules/@graphql-tools/schema/package.json +0 -4
  268. package/node_modules/@graphql-tools/utils/package.json +0 -4
  269. package/node_modules/@serverless-stack/node/.turbo/turbo-build.log +1 -1
  270. package/node_modules/@serverless-stack/node/CHANGELOG.md +2 -0
  271. package/node_modules/@serverless-stack/node/package.json +2 -6
  272. package/node_modules/@tsconfig/node14/package.json +1 -5
  273. package/node_modules/available-typed-arrays/package.json +1 -5
  274. package/node_modules/aws-jwt-verify/package.json +1 -5
  275. package/node_modules/aws-lambda/node_modules/argparse/package.json +1 -5
  276. package/node_modules/aws-lambda/node_modules/commander/package.json +1 -5
  277. package/node_modules/aws-lambda/node_modules/js-yaml/package.json +1 -5
  278. package/node_modules/aws-lambda/package.json +1 -5
  279. package/node_modules/aws-sdk/node_modules/uuid/package.json +1 -5
  280. package/node_modules/aws-sdk/package.json +0 -4
  281. package/node_modules/aws4/package.json +1 -5
  282. package/node_modules/base64-js/package.json +1 -5
  283. package/node_modules/bowser/package.json +1 -5
  284. package/node_modules/buffer/package.json +1 -5
  285. package/node_modules/call-bind/package.json +1 -5
  286. package/node_modules/define-properties/package.json +1 -5
  287. package/node_modules/es-abstract/package.json +1 -5
  288. package/node_modules/es-to-primitive/package.json +1 -5
  289. package/node_modules/esprima/package.json +1 -5
  290. package/node_modules/events/package.json +0 -4
  291. package/node_modules/fast-xml-parser/package.json +1 -5
  292. package/node_modules/for-each/package.json +1 -5
  293. package/node_modules/function-bind/package.json +1 -5
  294. package/node_modules/function.prototype.name/package.json +1 -5
  295. package/node_modules/functions-have-names/package.json +1 -5
  296. package/node_modules/get-intrinsic/package.json +1 -5
  297. package/node_modules/get-symbol-description/package.json +1 -5
  298. package/node_modules/glob-to-regexp/package.json +1 -5
  299. package/node_modules/graceful-fs/package.json +1 -5
  300. package/node_modules/graphql/package.json +1 -5
  301. package/node_modules/graphql-helix/package.json +1 -5
  302. package/node_modules/has/package.json +1 -5
  303. package/node_modules/has-bigints/package.json +1 -5
  304. package/node_modules/has-property-descriptors/package.json +1 -5
  305. package/node_modules/has-symbols/package.json +1 -5
  306. package/node_modules/has-tostringtag/package.json +1 -5
  307. package/node_modules/ieee754/package.json +1 -5
  308. package/node_modules/inherits/package.json +1 -5
  309. package/node_modules/internal-slot/package.json +1 -5
  310. package/node_modules/is-arguments/package.json +1 -5
  311. package/node_modules/is-bigint/package.json +1 -5
  312. package/node_modules/is-boolean-object/package.json +1 -5
  313. package/node_modules/is-callable/package.json +1 -5
  314. package/node_modules/is-date-object/package.json +1 -5
  315. package/node_modules/is-generator-function/package.json +1 -5
  316. package/node_modules/is-negative-zero/package.json +1 -5
  317. package/node_modules/is-number-object/package.json +1 -5
  318. package/node_modules/is-regex/package.json +1 -5
  319. package/node_modules/is-shared-array-buffer/package.json +1 -5
  320. package/node_modules/is-string/package.json +1 -5
  321. package/node_modules/is-symbol/package.json +1 -5
  322. package/node_modules/is-typed-array/package.json +1 -5
  323. package/node_modules/is-weakref/package.json +1 -5
  324. package/node_modules/isarray/package.json +1 -5
  325. package/node_modules/jmespath/package.json +1 -5
  326. package/node_modules/mnemonist/package.json +1 -5
  327. package/node_modules/object-inspect/package.json +1 -5
  328. package/node_modules/object-keys/package.json +1 -5
  329. package/node_modules/object.assign/package.json +1 -5
  330. package/node_modules/obliterator/package.json +1 -5
  331. package/node_modules/querystring/package.json +1 -5
  332. package/node_modules/regexp.prototype.flags/package.json +1 -5
  333. package/node_modules/safe-buffer/package.json +1 -5
  334. package/node_modules/sax/package.json +1 -5
  335. package/node_modules/side-channel/package.json +1 -5
  336. package/node_modules/sprintf-js/package.json +1 -5
  337. package/node_modules/string.prototype.trimend/package.json +1 -5
  338. package/node_modules/string.prototype.trimstart/package.json +1 -5
  339. package/node_modules/tslib/package.json +1 -5
  340. package/node_modules/unbox-primitive/package.json +1 -5
  341. package/node_modules/url/node_modules/punycode/package.json +1 -5
  342. package/node_modules/url/package.json +1 -5
  343. package/node_modules/util/package.json +1 -5
  344. package/node_modules/uuid/package.json +1 -5
  345. package/node_modules/value-or-promise/package.json +1 -5
  346. package/node_modules/watchpack/package.json +1 -5
  347. package/node_modules/which-boxed-primitive/package.json +1 -5
  348. package/node_modules/which-typed-array/package.json +1 -5
  349. package/node_modules/xml2js/node_modules/xmlbuilder/package.json +1 -5
  350. package/node_modules/xml2js/package.json +1 -5
  351. package/package.json +35 -27
  352. package/tsconfig.npm.json +50 -0
@@ -0,0 +1,53 @@
1
+ import { fromNodeProviderChain } from '@aws-sdk/credential-providers';
2
+ import * as aws4 from 'aws4';
3
+ // ""wss://m6g3w6ttdh.execute-api.eu-west-1.amazonaws.com/prod";"
4
+ export async function getWebSocketUrl(url, credentials) {
5
+ const urlParsed = parseUrl(url);
6
+ const hostParts = urlParsed.host.split('.');
7
+ console.log('urlParsed', urlParsed);
8
+ if (!credentials) {
9
+ const credentialsProvider = fromNodeProviderChain();
10
+ credentials = await credentialsProvider();
11
+ }
12
+ const AWS_REGION = hostParts[2]; // The region of your API-gateway
13
+ const SOCKET_HOST = hostParts[0]; // Your API-gateway ID
14
+ const ENV = urlParsed.pathname.replace(/^\//, ''); // The stage of your target deployment
15
+ const WEBSOCKET_URL = `${SOCKET_HOST}.execute-api.${AWS_REGION}.amazonaws.com`; // Don't prepend with wss!
16
+ // const AWS_REGION = "eu-west-1"; // The region of your API-gateway
17
+ // const SOCKET_HOST = "m6g3w6ttdh"; // Your API-gateway ID
18
+ // const ENV = "prod"; // The stage of your target deployment
19
+ // const WEBSOCKET_URL = `${SOCKET_HOST}.execute-api.${AWS_REGION}.amazonaws.com`; // Don't prepend with wss!
20
+ // Get a signed path
21
+ const { path } = aws4.sign({
22
+ method: 'GET',
23
+ host: WEBSOCKET_URL,
24
+ // path: `/${ENV}?X-Amz-Security-Token=${encodeURIComponent(
25
+ // credentials!.SessionToken!
26
+ // )}`,
27
+ path: `/${ENV}`,
28
+ service: 'execute-api',
29
+ region: AWS_REGION,
30
+ signQuery: true,
31
+ }, {
32
+ accessKeyId: credentials.accessKeyId,
33
+ secretAccessKey: credentials.secretAccessKey,
34
+ sessionToken: credentials.sessionToken,
35
+ });
36
+ const url2 = `wss://${WEBSOCKET_URL}${path}`;
37
+ console.log('path', url2);
38
+ return url2;
39
+ }
40
+ function parseUrl(href) {
41
+ const match = href.match(/^(wss?:)\/\/(([^:/?#]*)(?::([0-9]+))?)([/]{0,1}[^?#]*)(\?[^#]*|)(#.*|)$/);
42
+ return (match && {
43
+ href,
44
+ protocol: match[1],
45
+ host: match[2],
46
+ hostname: match[3],
47
+ port: match[4],
48
+ pathname: match[5],
49
+ search: match[6],
50
+ hash: match[7],
51
+ });
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0V2ViU29ja2V0VXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29tbW9uL2dldFdlYlNvY2tldFVybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV0RSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixpRUFBaUU7QUFFakUsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQUMsR0FBVyxFQUFFLFdBQXlCO0lBQzFFLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxNQUFNLFNBQVMsR0FBRyxTQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU3QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUVwQyxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2hCLE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztRQUNwRCxXQUFXLEdBQUcsTUFBTSxtQkFBbUIsRUFBRSxDQUFDO0tBQzNDO0lBRUQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQWlDO0lBQ2xFLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtJQUN4RCxNQUFNLEdBQUcsR0FBRyxTQUFVLENBQUMsUUFBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxzQ0FBc0M7SUFDM0YsTUFBTSxhQUFhLEdBQUcsR0FBRyxXQUFXLGdCQUFnQixVQUFVLGdCQUFnQixDQUFDLENBQUMsMEJBQTBCO0lBQzFHLG9FQUFvRTtJQUNwRSwyREFBMkQ7SUFDM0QsNkRBQTZEO0lBQzdELDZHQUE2RztJQUU3RyxvQkFBb0I7SUFDcEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQ3hCO1FBQ0UsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUsYUFBYTtRQUNuQiw0REFBNEQ7UUFDNUQsK0JBQStCO1FBQy9CLE9BQU87UUFDUCxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDZixPQUFPLEVBQUUsYUFBYTtRQUN0QixNQUFNLEVBQUUsVUFBVTtRQUNsQixTQUFTLEVBQUUsSUFBSTtLQUNoQixFQUNEO1FBQ0UsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXO1FBQ3BDLGVBQWUsRUFBRSxXQUFXLENBQUMsZUFBZTtRQUM1QyxZQUFZLEVBQUUsV0FBVyxDQUFDLFlBQVk7S0FDdkMsQ0FDRixDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUcsU0FBUyxhQUFhLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUIsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsSUFBWTtJQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN0Qix5RUFBeUUsQ0FDMUUsQ0FBQztJQUNGLE9BQU8sQ0FDTCxLQUFLLElBQUk7UUFDUCxJQUFJO1FBQ0osUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDZCxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsQixJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNkLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQ2YsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21Ob2RlUHJvdmlkZXJDaGFpbiB9IGZyb20gJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXJzJztcbmltcG9ydCB7IENyZWRlbnRpYWxzIH0gZnJvbSAnQGF3cy1zZGsvdHlwZXMnO1xuaW1wb3J0ICogYXMgYXdzNCBmcm9tICdhd3M0JztcblxuLy8gXCJcIndzczovL202ZzN3NnR0ZGguZXhlY3V0ZS1hcGkuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vcHJvZFwiO1wiXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRXZWJTb2NrZXRVcmwodXJsOiBzdHJpbmcsIGNyZWRlbnRpYWxzPzogQ3JlZGVudGlhbHMpIHtcbiAgY29uc3QgdXJsUGFyc2VkID0gcGFyc2VVcmwodXJsKTtcbiAgY29uc3QgaG9zdFBhcnRzID0gdXJsUGFyc2VkIS5ob3N0LnNwbGl0KCcuJyk7XG5cbiAgY29uc29sZS5sb2coJ3VybFBhcnNlZCcsIHVybFBhcnNlZCk7XG5cbiAgaWYgKCFjcmVkZW50aWFscykge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBmcm9tTm9kZVByb3ZpZGVyQ2hhaW4oKTtcbiAgICBjcmVkZW50aWFscyA9IGF3YWl0IGNyZWRlbnRpYWxzUHJvdmlkZXIoKTtcbiAgfVxuXG4gIGNvbnN0IEFXU19SRUdJT04gPSBob3N0UGFydHNbMl07IC8vIFRoZSByZWdpb24gb2YgeW91ciBBUEktZ2F0ZXdheVxuICBjb25zdCBTT0NLRVRfSE9TVCA9IGhvc3RQYXJ0c1swXTsgLy8gWW91ciBBUEktZ2F0ZXdheSBJRFxuICBjb25zdCBFTlYgPSB1cmxQYXJzZWQhLnBhdGhuYW1lIS5yZXBsYWNlKC9eXFwvLywgJycpOyAvLyBUaGUgc3RhZ2Ugb2YgeW91ciB0YXJnZXQgZGVwbG95bWVudFxuICBjb25zdCBXRUJTT0NLRVRfVVJMID0gYCR7U09DS0VUX0hPU1R9LmV4ZWN1dGUtYXBpLiR7QVdTX1JFR0lPTn0uYW1hem9uYXdzLmNvbWA7IC8vIERvbid0IHByZXBlbmQgd2l0aCB3c3MhXG4gIC8vIGNvbnN0IEFXU19SRUdJT04gPSBcImV1LXdlc3QtMVwiOyAvLyBUaGUgcmVnaW9uIG9mIHlvdXIgQVBJLWdhdGV3YXlcbiAgLy8gY29uc3QgU09DS0VUX0hPU1QgPSBcIm02ZzN3NnR0ZGhcIjsgLy8gWW91ciBBUEktZ2F0ZXdheSBJRFxuICAvLyBjb25zdCBFTlYgPSBcInByb2RcIjsgLy8gVGhlIHN0YWdlIG9mIHlvdXIgdGFyZ2V0IGRlcGxveW1lbnRcbiAgLy8gY29uc3QgV0VCU09DS0VUX1VSTCA9IGAke1NPQ0tFVF9IT1NUfS5leGVjdXRlLWFwaS4ke0FXU19SRUdJT059LmFtYXpvbmF3cy5jb21gOyAvLyBEb24ndCBwcmVwZW5kIHdpdGggd3NzIVxuXG4gIC8vIEdldCBhIHNpZ25lZCBwYXRoXG4gIGNvbnN0IHsgcGF0aCB9ID0gYXdzNC5zaWduKFxuICAgIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICBob3N0OiBXRUJTT0NLRVRfVVJMLFxuICAgICAgLy8gcGF0aDogYC8ke0VOVn0/WC1BbXotU2VjdXJpdHktVG9rZW49JHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICAvLyAgIGNyZWRlbnRpYWxzIS5TZXNzaW9uVG9rZW4hXG4gICAgICAvLyApfWAsXG4gICAgICBwYXRoOiBgLyR7RU5WfWAsXG4gICAgICBzZXJ2aWNlOiAnZXhlY3V0ZS1hcGknLFxuICAgICAgcmVnaW9uOiBBV1NfUkVHSU9OLFxuICAgICAgc2lnblF1ZXJ5OiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgYWNjZXNzS2V5SWQ6IGNyZWRlbnRpYWxzLmFjY2Vzc0tleUlkLFxuICAgICAgc2VjcmV0QWNjZXNzS2V5OiBjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksXG4gICAgICBzZXNzaW9uVG9rZW46IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbixcbiAgICB9XG4gICk7XG5cbiAgY29uc3QgdXJsMiA9IGB3c3M6Ly8ke1dFQlNPQ0tFVF9VUkx9JHtwYXRofWA7XG4gIGNvbnNvbGUubG9nKCdwYXRoJywgdXJsMik7XG4gIHJldHVybiB1cmwyO1xufVxuXG5mdW5jdGlvbiBwYXJzZVVybChocmVmOiBzdHJpbmcpIHtcbiAgY29uc3QgbWF0Y2ggPSBocmVmLm1hdGNoKFxuICAgIC9eKHdzcz86KVxcL1xcLygoW146Lz8jXSopKD86OihbMC05XSspKT8pKFsvXXswLDF9W14/I10qKShcXD9bXiNdKnwpKCMuKnwpJC9cbiAgKTtcbiAgcmV0dXJuIChcbiAgICBtYXRjaCAmJiB7XG4gICAgICBocmVmLFxuICAgICAgcHJvdG9jb2w6IG1hdGNoWzFdLFxuICAgICAgaG9zdDogbWF0Y2hbMl0sXG4gICAgICBob3N0bmFtZTogbWF0Y2hbM10sXG4gICAgICBwb3J0OiBtYXRjaFs0XSxcbiAgICAgIHBhdGhuYW1lOiBtYXRjaFs1XSxcbiAgICAgIHNlYXJjaDogbWF0Y2hbNl0sXG4gICAgICBoYXNoOiBtYXRjaFs3XSxcbiAgICB9XG4gICk7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './src/ServerlessSpy';
2
+ export * from './listener';
@@ -0,0 +1,3 @@
1
+ export * from './src/ServerlessSpy';
2
+ export * from './listener';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvU2VydmVybGVzc1NweSc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3RlbmVyJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export declare type PrettifyForDisplay<T> = T extends Function ? T : {
2
+ [K in keyof T]: T[K];
3
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJldHRpZnlGb3JEaXNwbGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGlzdGVuZXIvUHJldHRpZnlGb3JEaXNwbGF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBQcmV0dGlmeUZvckRpc3BsYXk8VD4gPSBUIGV4dGVuZHMgRnVuY3Rpb25cbiAgPyBUXG4gIDoge1xuICAgICAgW0sgaW4ga2V5b2YgVF06IFRbS107XG4gICAgfTtcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ import { PrettifyForDisplay } from './PrettifyForDisplay';
2
+ export declare type RecursivePartial<T> = {
3
+ [P in keyof T]?: T[P] extends (infer U)[] ? PrettifyForDisplay<RecursivePartial<U>>[] : T[P] extends object ? PrettifyForDisplay<RecursivePartial<T[P]>> : T[P];
4
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjdXJzaXZlUGFydGlhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpc3RlbmVyL1JlY3Vyc2l2ZVBhcnRpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZXR0aWZ5Rm9yRGlzcGxheSB9IGZyb20gJy4vUHJldHRpZnlGb3JEaXNwbGF5JztcblxuZXhwb3J0IHR5cGUgUmVjdXJzaXZlUGFydGlhbDxUPiA9IHtcbiAgW1AgaW4ga2V5b2YgVF0/OiBUW1BdIGV4dGVuZHMgKGluZmVyIFUpW11cbiAgICA/IFByZXR0aWZ5Rm9yRGlzcGxheTxSZWN1cnNpdmVQYXJ0aWFsPFU+PltdXG4gICAgOiBUW1BdIGV4dGVuZHMgb2JqZWN0XG4gICAgPyBQcmV0dGlmeUZvckRpc3BsYXk8UmVjdXJzaXZlUGFydGlhbDxUW1BdPj5cbiAgICA6IFRbUF07XG59O1xuIl19
@@ -0,0 +1,109 @@
1
+ /// <reference types="jest" />
2
+ import { DynamoDBSpyEvent } from 'serverless-spy-common/spyEvents/DynamoDBSpyEvent';
3
+ import { EventBridgeRuleSpyEvent } from 'serverless-spy-common/spyEvents/EventBridgeRuleSpyEvent';
4
+ import { EventBridgeSpyEvent } from 'serverless-spy-common/spyEvents/EventBridgeSpyEvent';
5
+ import { FunctionConsoleSpyEvent } from 'serverless-spy-common/spyEvents/FunctionConsoleSpyEvent';
6
+ import { FunctionContext } from 'serverless-spy-common/spyEvents/FunctionContext';
7
+ import { FunctionRequestSpyEvent } from 'serverless-spy-common/spyEvents/FunctionRequestSpyEvent';
8
+ import { FunctionResponseSpyEvent } from 'serverless-spy-common/spyEvents/FunctionResponseSpyEvent';
9
+ import { S3SpyEvent } from 'serverless-spy-common/spyEvents/S3SpyEvent';
10
+ import { SnsSubscriptionSpyEvent } from 'serverless-spy-common/spyEvents/SnsSubscriptionSpyEvent';
11
+ import { SnsTopicSpyEvent } from 'serverless-spy-common/spyEvents/SnsTopicSpyEvent';
12
+ import { SqsSpyEvent } from 'serverless-spy-common/spyEvents/SqsSpyEvent';
13
+ import { PrettifyForDisplay } from './PrettifyForDisplay';
14
+ import { RecursivePartial } from './RecursivePartial';
15
+ declare type MyJestMatchers = ReturnType<typeof expect>;
16
+ declare type MyJestMatchersWitOnlyFunctions = Pick<MyJestMatchers, {
17
+ [P in keyof MyJestMatchers]: MyJestMatchers[P] extends (...args: any) => any ? P : never;
18
+ }[keyof MyJestMatchers]>;
19
+ declare type JestExpectWithSpyMethods<TSpyEvent, TSpyHandler> = Omit<{
20
+ [K in keyof MyJestMatchersWitOnlyFunctions]: (...args: Parameters<MyJestMatchersWitOnlyFunctions[K]>) => TSpyHandler;
21
+ }, 'toContainEqual' | 'toEqual' | 'toMatchObject' | 'toStrictEqual'> & {
22
+ /**
23
+ * Used when you want to check that an item is in a list.
24
+ * For testing the items in the list, this matcher recursively checks the
25
+ * equality of all fields, rather than checking for object identity.
26
+ *
27
+ * Optionally, you can provide a type for the expected value via a generic.
28
+ * This is particularly useful for ensuring expected objects have the right structure.
29
+ */
30
+ toContainEqual(expected: TSpyEvent): TSpyHandler;
31
+ /**
32
+ * Used when you want to check that two objects have the same value.
33
+ * This matcher recursively checks the equality of all fields, rather than checking for object identity.
34
+ *
35
+ * Optionally, you can provide a type for the expected value via a generic.
36
+ * This is particularly useful for ensuring expected objects have the right structure.
37
+ */
38
+ toEqual(expected: TSpyEvent): TSpyHandler;
39
+ /**
40
+ * Used to check that a JavaScript object matches a subset of the properties of an object
41
+ *
42
+ * Optionally, you can provide an object to use as Generic type for the expected value.
43
+ * This ensures that the matching object matches the structure of the provided object-like type.
44
+ *
45
+ * @example
46
+ *
47
+ * type House = {
48
+ * bath: boolean;
49
+ * bedrooms: number;
50
+ * kitchen: {
51
+ * amenities: string[];
52
+ * area: number;
53
+ * wallColor: string;
54
+ * }
55
+ * };
56
+ *
57
+ * expect(desiredHouse).toMatchObject<House>({...standardHouse, kitchen: {area: 20}}) // wherein standardHouse is some base object of type House
58
+ */
59
+ toMatchObject(expected: PrettifyForDisplay<RecursivePartial<TSpyEvent>>): TSpyHandler;
60
+ /**
61
+ * Use to test that objects have the same types as well as structure.
62
+ *
63
+ * Optionally, you can provide a type for the expected value via a generic.
64
+ * This is particularly useful for ensuring expected objects have the right structure.
65
+ */
66
+ toStrictEqual(expected: TSpyEvent): TSpyHandler;
67
+ };
68
+ export interface DynamoDBSpyHandler<TData = any> extends JestExpectWithSpyMethods<DynamoDBSpyEvent<TData>, DynamoDBSpyHandler<TData>> {
69
+ getData: () => PrettifyForDisplay<DynamoDBSpyEvent<TData>>;
70
+ }
71
+ export interface EventBridgeRuleSpyHandler<TData = any> extends JestExpectWithSpyMethods<EventBridgeRuleSpyEvent<TData>, DynamoDBSpyHandler<TData>> {
72
+ getData: () => PrettifyForDisplay<EventBridgeRuleSpyEvent<TData>>;
73
+ }
74
+ export interface EventBridgeSpyHandler<TData = any> extends JestExpectWithSpyMethods<EventBridgeSpyEvent<TData>, DynamoDBSpyHandler<TData>> {
75
+ getData: () => PrettifyForDisplay<EventBridgeSpyEvent<TData>>;
76
+ }
77
+ export interface FunctionBaseSpyHandler<TData = any> extends JestExpectWithSpyMethods<FunctionRequestSpyEvent<TData>, FunctionRequestSpyHandler<TData>> {
78
+ followedByResponse: <TDataResponse = any>(param: {
79
+ condition?: (event: {
80
+ spyEventType: 'FunctionResponse';
81
+ request: TData;
82
+ context: FunctionContext;
83
+ response: TDataResponse;
84
+ }) => boolean;
85
+ timoutMs?: number;
86
+ }) => Promise<FunctionResponseSpyHandler & JestExpectWithSpyMethods<FunctionRequestSpyEvent<TData>, FunctionRequestSpyHandler<TData>>>;
87
+ }
88
+ export interface FunctionRequestSpyHandler<TData = any> extends FunctionBaseSpyHandler<TData> {
89
+ getData: () => PrettifyForDisplay<FunctionRequestSpyEvent<TData>>;
90
+ }
91
+ export interface FunctionConsoleSpyHandler<TData = any> extends FunctionBaseSpyHandler<TData> {
92
+ getData: () => PrettifyForDisplay<FunctionConsoleSpyEvent<TData>>;
93
+ }
94
+ export interface FunctionResponseSpyHandler<TData = any> extends JestExpectWithSpyMethods<FunctionResponseSpyEvent<TData>, FunctionResponseSpyHandler<TData>> {
95
+ getData: () => PrettifyForDisplay<FunctionResponseSpyEvent<TData>>;
96
+ }
97
+ export interface S3SpyHandler extends JestExpectWithSpyMethods<S3SpyEvent, DynamoDBSpyHandler> {
98
+ getData: () => S3SpyEvent;
99
+ }
100
+ export interface SnsSubscriptionSpyHandler<TData = any> extends JestExpectWithSpyMethods<SnsSubscriptionSpyEvent<TData>, DynamoDBSpyHandler<TData>> {
101
+ getData: () => PrettifyForDisplay<SnsSubscriptionSpyEvent<TData>>;
102
+ }
103
+ export interface SnsTopicSpyHandler<TData = any> extends JestExpectWithSpyMethods<SnsTopicSpyEvent<TData>, DynamoDBSpyHandler<TData>> {
104
+ getData: () => PrettifyForDisplay<SnsTopicSpyEvent<TData>>;
105
+ }
106
+ export interface SqsSpyHandler<TData = any> extends JestExpectWithSpyMethods<SqsSpyEvent<TData>, DynamoDBSpyHandler<TData>> {
107
+ getData: () => PrettifyForDisplay<SqsSpyEvent<TData>>;
108
+ }
109
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3B5SGFuZGxlcnMudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saXN0ZW5lci9TcHlIYW5kbGVycy50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1vREJTcHlFdmVudCB9IGZyb20gJ3NlcnZlcmxlc3Mtc3B5LWNvbW1vbi9zcHlFdmVudHMvRHluYW1vREJTcHlFdmVudCc7XG5pbXBvcnQgeyBFdmVudEJyaWRnZVJ1bGVTcHlFdmVudCB9IGZyb20gJ3NlcnZlcmxlc3Mtc3B5LWNvbW1vbi9zcHlFdmVudHMvRXZlbnRCcmlkZ2VSdWxlU3B5RXZlbnQnO1xuaW1wb3J0IHsgRXZlbnRCcmlkZ2VTcHlFdmVudCB9IGZyb20gJ3NlcnZlcmxlc3Mtc3B5LWNvbW1vbi9zcHlFdmVudHMvRXZlbnRCcmlkZ2VTcHlFdmVudCc7XG5pbXBvcnQgeyBGdW5jdGlvbkNvbnNvbGVTcHlFdmVudCB9IGZyb20gJ3NlcnZlcmxlc3Mtc3B5LWNvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25Db25zb2xlU3B5RXZlbnQnO1xuaW1wb3J0IHsgRnVuY3Rpb25Db250ZXh0IH0gZnJvbSAnc2VydmVybGVzcy1zcHktY29tbW9uL3NweUV2ZW50cy9GdW5jdGlvbkNvbnRleHQnO1xuaW1wb3J0IHsgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL0Z1bmN0aW9uUmVxdWVzdFNweUV2ZW50JztcbmltcG9ydCB7IEZ1bmN0aW9uUmVzcG9uc2VTcHlFdmVudCB9IGZyb20gJ3NlcnZlcmxlc3Mtc3B5LWNvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25SZXNwb25zZVNweUV2ZW50JztcbmltcG9ydCB7IFMzU3B5RXZlbnQgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL1MzU3B5RXZlbnQnO1xuaW1wb3J0IHsgU25zU3Vic2NyaXB0aW9uU3B5RXZlbnQgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL1Nuc1N1YnNjcmlwdGlvblNweUV2ZW50JztcbmltcG9ydCB7IFNuc1RvcGljU3B5RXZlbnQgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL1Nuc1RvcGljU3B5RXZlbnQnO1xuaW1wb3J0IHsgU3FzU3B5RXZlbnQgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL1Nxc1NweUV2ZW50JztcbmltcG9ydCB7IFByZXR0aWZ5Rm9yRGlzcGxheSB9IGZyb20gJy4vUHJldHRpZnlGb3JEaXNwbGF5JztcbmltcG9ydCB7IFJlY3Vyc2l2ZVBhcnRpYWwgfSBmcm9tICcuL1JlY3Vyc2l2ZVBhcnRpYWwnO1xuXG50eXBlIE15SmVzdE1hdGNoZXJzID0gUmV0dXJuVHlwZTx0eXBlb2YgZXhwZWN0PjtcbnR5cGUgTXlKZXN0TWF0Y2hlcnNXaXRPbmx5RnVuY3Rpb25zID0gUGljazxcbiAgTXlKZXN0TWF0Y2hlcnMsXG4gIHtcbiAgICBbUCBpbiBrZXlvZiBNeUplc3RNYXRjaGVyc106IE15SmVzdE1hdGNoZXJzW1BdIGV4dGVuZHMgKC4uLmFyZ3M6IGFueSkgPT4gYW55XG4gICAgICA/IFBcbiAgICAgIDogbmV2ZXI7XG4gIH1ba2V5b2YgTXlKZXN0TWF0Y2hlcnNdXG4+O1xudHlwZSBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8VFNweUV2ZW50LCBUU3B5SGFuZGxlcj4gPSBPbWl0PFxuICB7XG4gICAgLy8gdG9NYXRjaE9iamVjdDogKGV4cGVjdGVkOiBSZWN1cnNpdmVQYXJ0aWFsPFRTcHlFdmVudD4pID0+IFRTcHlIYW5kbGVyO1xuICAgIFtLIGluIGtleW9mIE15SmVzdE1hdGNoZXJzV2l0T25seUZ1bmN0aW9uc106IChcbiAgICAgIC4uLmFyZ3M6IFBhcmFtZXRlcnM8TXlKZXN0TWF0Y2hlcnNXaXRPbmx5RnVuY3Rpb25zW0tdPlxuICAgICkgPT4gVFNweUhhbmRsZXI7XG4gIH0sXG4gICd0b0NvbnRhaW5FcXVhbCcgfCAndG9FcXVhbCcgfCAndG9NYXRjaE9iamVjdCcgfCAndG9TdHJpY3RFcXVhbCdcbj4gJiB7XG4gIC8qKlxuICAgKiBVc2VkIHdoZW4geW91IHdhbnQgdG8gY2hlY2sgdGhhdCBhbiBpdGVtIGlzIGluIGEgbGlzdC5cbiAgICogRm9yIHRlc3RpbmcgdGhlIGl0ZW1zIGluIHRoZSBsaXN0LCB0aGlzIG1hdGNoZXIgcmVjdXJzaXZlbHkgY2hlY2tzIHRoZVxuICAgKiBlcXVhbGl0eSBvZiBhbGwgZmllbGRzLCByYXRoZXIgdGhhbiBjaGVja2luZyBmb3Igb2JqZWN0IGlkZW50aXR5LlxuICAgKlxuICAgKiBPcHRpb25hbGx5LCB5b3UgY2FuIHByb3ZpZGUgYSB0eXBlIGZvciB0aGUgZXhwZWN0ZWQgdmFsdWUgdmlhIGEgZ2VuZXJpYy5cbiAgICogVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBlbnN1cmluZyBleHBlY3RlZCBvYmplY3RzIGhhdmUgdGhlIHJpZ2h0IHN0cnVjdHVyZS5cbiAgICovXG5cbiAgdG9Db250YWluRXF1YWwoZXhwZWN0ZWQ6IFRTcHlFdmVudCk6IFRTcHlIYW5kbGVyO1xuICAvKipcbiAgICogVXNlZCB3aGVuIHlvdSB3YW50IHRvIGNoZWNrIHRoYXQgdHdvIG9iamVjdHMgaGF2ZSB0aGUgc2FtZSB2YWx1ZS5cbiAgICogVGhpcyBtYXRjaGVyIHJlY3Vyc2l2ZWx5IGNoZWNrcyB0aGUgZXF1YWxpdHkgb2YgYWxsIGZpZWxkcywgcmF0aGVyIHRoYW4gY2hlY2tpbmcgZm9yIG9iamVjdCBpZGVudGl0eS5cbiAgICpcbiAgICogT3B0aW9uYWxseSwgeW91IGNhbiBwcm92aWRlIGEgdHlwZSBmb3IgdGhlIGV4cGVjdGVkIHZhbHVlIHZpYSBhIGdlbmVyaWMuXG4gICAqIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgZW5zdXJpbmcgZXhwZWN0ZWQgb2JqZWN0cyBoYXZlIHRoZSByaWdodCBzdHJ1Y3R1cmUuXG4gICAqL1xuXG4gIHRvRXF1YWwoZXhwZWN0ZWQ6IFRTcHlFdmVudCk6IFRTcHlIYW5kbGVyO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGNoZWNrIHRoYXQgYSBKYXZhU2NyaXB0IG9iamVjdCBtYXRjaGVzIGEgc3Vic2V0IG9mIHRoZSBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdFxuICAgKlxuICAgKiBPcHRpb25hbGx5LCB5b3UgY2FuIHByb3ZpZGUgYW4gb2JqZWN0IHRvIHVzZSBhcyBHZW5lcmljIHR5cGUgZm9yIHRoZSBleHBlY3RlZCB2YWx1ZS5cbiAgICogVGhpcyBlbnN1cmVzIHRoYXQgdGhlIG1hdGNoaW5nIG9iamVjdCBtYXRjaGVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHByb3ZpZGVkIG9iamVjdC1saWtlIHR5cGUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIHR5cGUgSG91c2UgPSB7XG4gICAqICAgYmF0aDogYm9vbGVhbjtcbiAgICogICBiZWRyb29tczogbnVtYmVyO1xuICAgKiAgIGtpdGNoZW46IHtcbiAgICogICAgIGFtZW5pdGllczogc3RyaW5nW107XG4gICAqICAgICBhcmVhOiBudW1iZXI7XG4gICAqICAgICB3YWxsQ29sb3I6IHN0cmluZztcbiAgICogICB9XG4gICAqIH07XG4gICAqXG4gICAqIGV4cGVjdChkZXNpcmVkSG91c2UpLnRvTWF0Y2hPYmplY3Q8SG91c2U+KHsuLi5zdGFuZGFyZEhvdXNlLCBraXRjaGVuOiB7YXJlYTogMjB9fSkgLy8gd2hlcmVpbiBzdGFuZGFyZEhvdXNlIGlzIHNvbWUgYmFzZSBvYmplY3Qgb2YgdHlwZSBIb3VzZVxuICAgKi9cblxuICB0b01hdGNoT2JqZWN0KFxuICAgIGV4cGVjdGVkOiBQcmV0dGlmeUZvckRpc3BsYXk8UmVjdXJzaXZlUGFydGlhbDxUU3B5RXZlbnQ+PlxuICApOiBUU3B5SGFuZGxlcjtcblxuICAvKipcbiAgICogVXNlIHRvIHRlc3QgdGhhdCBvYmplY3RzIGhhdmUgdGhlIHNhbWUgdHlwZXMgYXMgd2VsbCBhcyBzdHJ1Y3R1cmUuXG4gICAqXG4gICAqIE9wdGlvbmFsbHksIHlvdSBjYW4gcHJvdmlkZSBhIHR5cGUgZm9yIHRoZSBleHBlY3RlZCB2YWx1ZSB2aWEgYSBnZW5lcmljLlxuICAgKiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIGVuc3VyaW5nIGV4cGVjdGVkIG9iamVjdHMgaGF2ZSB0aGUgcmlnaHQgc3RydWN0dXJlLlxuICAgKi9cblxuICB0b1N0cmljdEVxdWFsKGV4cGVjdGVkOiBUU3B5RXZlbnQpOiBUU3B5SGFuZGxlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1vREJTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBEeW5hbW9EQlNweUV2ZW50PFREYXRhPixcbiAgICBEeW5hbW9EQlNweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8RHluYW1vREJTcHlFdmVudDxURGF0YT4+O1xufVxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJyaWRnZVJ1bGVTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBFdmVudEJyaWRnZVJ1bGVTcHlFdmVudDxURGF0YT4sXG4gICAgRHluYW1vREJTcHlIYW5kbGVyPFREYXRhPlxuICA+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PEV2ZW50QnJpZGdlUnVsZVNweUV2ZW50PFREYXRhPj47XG59XG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnJpZGdlU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgRXZlbnRCcmlkZ2VTcHlFdmVudDxURGF0YT4sXG4gICAgRHluYW1vREJTcHlIYW5kbGVyPFREYXRhPlxuICA+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PEV2ZW50QnJpZGdlU3B5RXZlbnQ8VERhdGE+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvbkJhc2VTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBGdW5jdGlvblJlcXVlc3RTcHlFdmVudDxURGF0YT4sXG4gICAgRnVuY3Rpb25SZXF1ZXN0U3B5SGFuZGxlcjxURGF0YT5cbiAgPiB7XG4gIC8vIGZvbGx3ZWRCeUNvbnNvbGVMb2c6ICgpID0+IFByb21pc2U8XG4gIC8vICAgRnVuY3Rpb25CYXNlU3B5SGFuZGxlcjxURGF0YT4gJlxuICAvLyAgICAgSmVzdEV4cGVjdFdpdGhTcHlNZXRob2RzPFxuICAvLyAgICAgICBGdW5jdGlvblJlcXVlc3RTcHlFdmVudDxURGF0YT4sXG4gIC8vICAgICAgIEZ1bmN0aW9uUmVxdWVzdFNweUhhbmRsZXI8VERhdGE+XG4gIC8vICAgICA+XG4gIC8vID47XG4gIGZvbGxvd2VkQnlSZXNwb25zZTogPFREYXRhUmVzcG9uc2UgPSBhbnk+KFxuICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gY29uZnVzZXMgVHlwZVNjcmlwdCB3aGljaCBkb2VzIG5vdCBhY2N1cmF0ZWx5IGRpc3BsYXkgdGhlIHR5cGUuXG4gICAgLy8gTGVhdmUgaXQgZm9yIHJlZmVyZW5jZSFcbiAgICAvLyBwYXJhbTogUHJldHRpZnlGb3JEaXNwbGF5PFxuICAgIC8vICAgV2FpdEZvclBhcmFtczxcbiAgICAvLyAgICAgUHJldHRpZnlGb3JEaXNwbGF5PEZ1bmN0aW9uUmVzcG9uc2VTcHlFdmVudDxURGF0YSwgVERhdGFSZXNwb25zZT4+XG4gICAgLy8gICA+XG4gICAgLy8gPlxuICAgIHBhcmFtOiB7XG4gICAgICBjb25kaXRpb24/OiAoZXZlbnQ6IHtcbiAgICAgICAgc3B5RXZlbnRUeXBlOiAnRnVuY3Rpb25SZXNwb25zZSc7XG4gICAgICAgIHJlcXVlc3Q6IFREYXRhO1xuICAgICAgICBjb250ZXh0OiBGdW5jdGlvbkNvbnRleHQ7XG4gICAgICAgIHJlc3BvbnNlOiBURGF0YVJlc3BvbnNlO1xuICAgICAgfSkgPT4gYm9vbGVhbjtcbiAgICAgIHRpbW91dE1zPzogbnVtYmVyO1xuICAgIH1cbiAgKSA9PiBQcm9taXNlPFxuICAgIEZ1bmN0aW9uUmVzcG9uc2VTcHlIYW5kbGVyICZcbiAgICAgIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICAgICAgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQ8VERhdGE+LFxuICAgICAgICBGdW5jdGlvblJlcXVlc3RTcHlIYW5kbGVyPFREYXRhPlxuICAgICAgPlxuICA+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uUmVxdWVzdFNweUhhbmRsZXI8VERhdGEgPSBhbnk+XG4gIGV4dGVuZHMgRnVuY3Rpb25CYXNlU3B5SGFuZGxlcjxURGF0YT4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8RnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQ8VERhdGE+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvbkNvbnNvbGVTcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEZ1bmN0aW9uQmFzZVNweUhhbmRsZXI8VERhdGE+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PEZ1bmN0aW9uQ29uc29sZVNweUV2ZW50PFREYXRhPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25SZXNwb25zZVNweUhhbmRsZXI8VERhdGEgPSBhbnk+XG4gIGV4dGVuZHMgSmVzdEV4cGVjdFdpdGhTcHlNZXRob2RzPFxuICAgIEZ1bmN0aW9uUmVzcG9uc2VTcHlFdmVudDxURGF0YT4sXG4gICAgRnVuY3Rpb25SZXNwb25zZVNweUhhbmRsZXI8VERhdGE+XG4gID4ge1xuICBnZXREYXRhOiAoKSA9PiBQcmV0dGlmeUZvckRpc3BsYXk8RnVuY3Rpb25SZXNwb25zZVNweUV2ZW50PFREYXRhPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUzNTcHlIYW5kbGVyXG4gIGV4dGVuZHMgSmVzdEV4cGVjdFdpdGhTcHlNZXRob2RzPFMzU3B5RXZlbnQsIER5bmFtb0RCU3B5SGFuZGxlcj4ge1xuICBnZXREYXRhOiAoKSA9PiBTM1NweUV2ZW50O1xufVxuZXhwb3J0IGludGVyZmFjZSBTbnNTdWJzY3JpcHRpb25TcHlIYW5kbGVyPFREYXRhID0gYW55PlxuICBleHRlbmRzIEplc3RFeHBlY3RXaXRoU3B5TWV0aG9kczxcbiAgICBTbnNTdWJzY3JpcHRpb25TcHlFdmVudDxURGF0YT4sXG4gICAgRHluYW1vREJTcHlIYW5kbGVyPFREYXRhPlxuICA+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PFNuc1N1YnNjcmlwdGlvblNweUV2ZW50PFREYXRhPj47XG59XG5leHBvcnQgaW50ZXJmYWNlIFNuc1RvcGljU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgU25zVG9waWNTcHlFdmVudDxURGF0YT4sXG4gICAgRHluYW1vREJTcHlIYW5kbGVyPFREYXRhPlxuICA+IHtcbiAgZ2V0RGF0YTogKCkgPT4gUHJldHRpZnlGb3JEaXNwbGF5PFNuc1RvcGljU3B5RXZlbnQ8VERhdGE+Pjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU3FzU3B5SGFuZGxlcjxURGF0YSA9IGFueT5cbiAgZXh0ZW5kcyBKZXN0RXhwZWN0V2l0aFNweU1ldGhvZHM8XG4gICAgU3FzU3B5RXZlbnQ8VERhdGE+LFxuICAgIER5bmFtb0RCU3B5SGFuZGxlcjxURGF0YT5cbiAgPiB7XG4gIGdldERhdGE6ICgpID0+IFByZXR0aWZ5Rm9yRGlzcGxheTxTcXNTcHlFdmVudDxURGF0YT4+O1xufVxuIl19
@@ -0,0 +1,40 @@
1
+ import { DynamoDBSpyEvent } from 'serverless-spy-common/spyEvents/DynamoDBSpyEvent';
2
+ import { EventBridgeRuleSpyEvent } from 'serverless-spy-common/spyEvents/EventBridgeRuleSpyEvent';
3
+ import { EventBridgeSpyEvent } from 'serverless-spy-common/spyEvents/EventBridgeSpyEvent';
4
+ import { FunctionConsoleSpyEvent } from 'serverless-spy-common/spyEvents/FunctionConsoleSpyEvent';
5
+ import { FunctionRequestSpyEvent } from 'serverless-spy-common/spyEvents/FunctionRequestSpyEvent';
6
+ import { FunctionResponseSpyEvent } from 'serverless-spy-common/spyEvents/FunctionResponseSpyEvent';
7
+ import { S3SpyEvent } from 'serverless-spy-common/spyEvents/S3SpyEvent';
8
+ import { SnsSubscriptionSpyEvent } from 'serverless-spy-common/spyEvents/SnsSubscriptionSpyEvent';
9
+ import { SnsTopicSpyEvent } from 'serverless-spy-common/spyEvents/SnsTopicSpyEvent';
10
+ import { SqsSpyEvent } from 'serverless-spy-common/spyEvents/SqsSpyEvent';
11
+ import { WaitForParams } from './createServerlessSpyListener';
12
+ import { PrettifyForDisplay } from './PrettifyForDisplay';
13
+ import { DynamoDBSpyHandler, EventBridgeSpyHandler, EventBridgeRuleSpyHandler, S3SpyHandler, SnsSubscriptionSpyHandler, SnsTopicSpyHandler, SqsSpyHandler, FunctionRequestSpyHandler, FunctionConsoleSpyHandler, FunctionResponseSpyHandler } from './SpyHandlers.ts';
14
+ export declare type SpyListener<TSpyEvents> = {
15
+ [P in keyof FilterConditionally<TSpyEvents, `DynamoDB#${any}`> & string as `waitFor${P}`]: <T = any>(param?: PrettifyForDisplay<WaitForParams<PrettifyForDisplay<DynamoDBSpyEvent>>>) => DynamoDBSpyHandler<T>;
16
+ } & {
17
+ [P in keyof FilterConditionally<TSpyEvents, `EventBridge#${any}`> & string as `waitFor${P}`]: <T = any>(param?: PrettifyForDisplay<WaitForParams<PrettifyForDisplay<EventBridgeSpyEvent<T>>>>) => EventBridgeSpyHandler<T>;
18
+ } & {
19
+ [P in keyof FilterConditionally<TSpyEvents, `EventBridgeRule#${any}`> & string as `waitFor${P}`]: <T = any>(param?: PrettifyForDisplay<WaitForParams<PrettifyForDisplay<EventBridgeRuleSpyEvent<T>>>>) => EventBridgeRuleSpyHandler<T>;
20
+ } & {
21
+ [P in keyof FilterConditionally<TSpyEvents, `S3#${any}`> & string as `waitFor${P}`]: (param?: PrettifyForDisplay<WaitForParams<PrettifyForDisplay<S3SpyEvent>>>) => S3SpyHandler;
22
+ } & {
23
+ [P in keyof FilterConditionally<TSpyEvents, `SnsSubscription#${any}`> & string as `waitFor${P}`]: <T = any>(param?: PrettifyForDisplay<WaitForParams<PrettifyForDisplay<SnsSubscriptionSpyEvent<T>>>>) => SnsSubscriptionSpyHandler<T>;
24
+ } & {
25
+ [P in keyof FilterConditionally<TSpyEvents, `SnsTopic#${any}`> & string as `waitFor${P}`]: <T = any>(param?: PrettifyForDisplay<WaitForParams<PrettifyForDisplay<SnsTopicSpyEvent<T>>>>) => SnsTopicSpyHandler<T>;
26
+ } & {
27
+ [P in keyof FilterConditionally<TSpyEvents, `Sqs#${any}`> & string as `waitFor${P}`]: <T = any>(param?: PrettifyForDisplay<WaitForParams<PrettifyForDisplay<SqsSpyEvent<T>>>>) => SqsSpyHandler<T>;
28
+ } & {
29
+ [P in keyof FilterConditionally<TSpyEvents, `Function#${any}#Request`> & string as `waitFor${P}`]: <T = any>(param?: PrettifyForDisplay<WaitForParams<PrettifyForDisplay<FunctionRequestSpyEvent<T>>>>) => FunctionRequestSpyHandler<T>;
30
+ } & {
31
+ [P in keyof FilterConditionally<TSpyEvents, `Function#${any}#Console`> & string as `waitFor${P}`]: <T = any>(param?: PrettifyForDisplay<WaitForParams<PrettifyForDisplay<FunctionConsoleSpyEvent<T>>>>) => FunctionConsoleSpyHandler<T>;
32
+ } & {
33
+ [P in keyof FilterConditionally<TSpyEvents, `Function#${any}#Response`> & string as `waitFor${P}`]: <T = any>(param?: PrettifyForDisplay<WaitForParams<PrettifyForDisplay<FunctionResponseSpyEvent<T>>>>) => FunctionResponseSpyHandler<T>;
34
+ } & {
35
+ stop: () => void;
36
+ };
37
+ declare type FilterConditionally<Source, Condition> = Pick<Source, {
38
+ [K in keyof Source]: Source[K] extends Condition ? K : never;
39
+ }[keyof Source]>;
40
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3B5TGlzdGVuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saXN0ZW5lci9TcHlMaXN0ZW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1vREJTcHlFdmVudCB9IGZyb20gJ3NlcnZlcmxlc3Mtc3B5LWNvbW1vbi9zcHlFdmVudHMvRHluYW1vREJTcHlFdmVudCc7XG5pbXBvcnQgeyBFdmVudEJyaWRnZVJ1bGVTcHlFdmVudCB9IGZyb20gJ3NlcnZlcmxlc3Mtc3B5LWNvbW1vbi9zcHlFdmVudHMvRXZlbnRCcmlkZ2VSdWxlU3B5RXZlbnQnO1xuaW1wb3J0IHsgRXZlbnRCcmlkZ2VTcHlFdmVudCB9IGZyb20gJ3NlcnZlcmxlc3Mtc3B5LWNvbW1vbi9zcHlFdmVudHMvRXZlbnRCcmlkZ2VTcHlFdmVudCc7XG5pbXBvcnQgeyBGdW5jdGlvbkNvbnNvbGVTcHlFdmVudCB9IGZyb20gJ3NlcnZlcmxlc3Mtc3B5LWNvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25Db25zb2xlU3B5RXZlbnQnO1xuaW1wb3J0IHsgRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL0Z1bmN0aW9uUmVxdWVzdFNweUV2ZW50JztcbmltcG9ydCB7IEZ1bmN0aW9uUmVzcG9uc2VTcHlFdmVudCB9IGZyb20gJ3NlcnZlcmxlc3Mtc3B5LWNvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25SZXNwb25zZVNweUV2ZW50JztcbmltcG9ydCB7IFMzU3B5RXZlbnQgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL1MzU3B5RXZlbnQnO1xuaW1wb3J0IHsgU25zU3Vic2NyaXB0aW9uU3B5RXZlbnQgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL1Nuc1N1YnNjcmlwdGlvblNweUV2ZW50JztcbmltcG9ydCB7IFNuc1RvcGljU3B5RXZlbnQgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL1Nuc1RvcGljU3B5RXZlbnQnO1xuaW1wb3J0IHsgU3FzU3B5RXZlbnQgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL1Nxc1NweUV2ZW50JztcblxuaW1wb3J0IHsgV2FpdEZvclBhcmFtcyB9IGZyb20gJy4vY3JlYXRlU2VydmVybGVzc1NweUxpc3RlbmVyJztcbmltcG9ydCB7IFByZXR0aWZ5Rm9yRGlzcGxheSB9IGZyb20gJy4vUHJldHRpZnlGb3JEaXNwbGF5JztcbmltcG9ydCB7XG4gIER5bmFtb0RCU3B5SGFuZGxlcixcbiAgRXZlbnRCcmlkZ2VTcHlIYW5kbGVyLFxuICBFdmVudEJyaWRnZVJ1bGVTcHlIYW5kbGVyLFxuICBTM1NweUhhbmRsZXIsXG4gIFNuc1N1YnNjcmlwdGlvblNweUhhbmRsZXIsXG4gIFNuc1RvcGljU3B5SGFuZGxlcixcbiAgU3FzU3B5SGFuZGxlcixcbiAgRnVuY3Rpb25SZXF1ZXN0U3B5SGFuZGxlcixcbiAgRnVuY3Rpb25Db25zb2xlU3B5SGFuZGxlcixcbiAgRnVuY3Rpb25SZXNwb25zZVNweUhhbmRsZXIsXG59IGZyb20gJy4vU3B5SGFuZGxlcnMudHMnO1xuXG5leHBvcnQgdHlwZSBTcHlMaXN0ZW5lcjxUU3B5RXZlbnRzPiA9IHtcbiAgW1AgaW4ga2V5b2YgRmlsdGVyQ29uZGl0aW9uYWxseTxUU3B5RXZlbnRzLCBgRHluYW1vREIjJHthbnl9YD4gJlxuICAgIHN0cmluZyBhcyBgd2FpdEZvciR7UH1gXTogPFQgPSBhbnk+KFxuICAgIHBhcmFtPzogUHJldHRpZnlGb3JEaXNwbGF5PFxuICAgICAgV2FpdEZvclBhcmFtczxQcmV0dGlmeUZvckRpc3BsYXk8RHluYW1vREJTcHlFdmVudD4+XG4gICAgPlxuICApID0+IER5bmFtb0RCU3B5SGFuZGxlcjxUPjtcbn0gJiB7XG4gIFtQIGluIGtleW9mIEZpbHRlckNvbmRpdGlvbmFsbHk8VFNweUV2ZW50cywgYEV2ZW50QnJpZGdlIyR7YW55fWA+ICZcbiAgICBzdHJpbmcgYXMgYHdhaXRGb3Ike1B9YF06IDxUID0gYW55PihcbiAgICBwYXJhbT86IFByZXR0aWZ5Rm9yRGlzcGxheTxcbiAgICAgIFdhaXRGb3JQYXJhbXM8UHJldHRpZnlGb3JEaXNwbGF5PEV2ZW50QnJpZGdlU3B5RXZlbnQ8VD4+PlxuICAgID5cbiAgKSA9PiBFdmVudEJyaWRnZVNweUhhbmRsZXI8VD47XG59ICYge1xuICBbUCBpbiBrZXlvZiBGaWx0ZXJDb25kaXRpb25hbGx5PFRTcHlFdmVudHMsIGBFdmVudEJyaWRnZVJ1bGUjJHthbnl9YD4gJlxuICAgIHN0cmluZyBhcyBgd2FpdEZvciR7UH1gXTogPFQgPSBhbnk+KFxuICAgIHBhcmFtPzogUHJldHRpZnlGb3JEaXNwbGF5PFxuICAgICAgV2FpdEZvclBhcmFtczxQcmV0dGlmeUZvckRpc3BsYXk8RXZlbnRCcmlkZ2VSdWxlU3B5RXZlbnQ8VD4+PlxuICAgID5cbiAgKSA9PiBFdmVudEJyaWRnZVJ1bGVTcHlIYW5kbGVyPFQ+O1xufSAmIHtcbiAgW1AgaW4ga2V5b2YgRmlsdGVyQ29uZGl0aW9uYWxseTxUU3B5RXZlbnRzLCBgUzMjJHthbnl9YD4gJlxuICAgIHN0cmluZyBhcyBgd2FpdEZvciR7UH1gXTogKFxuICAgIHBhcmFtPzogUHJldHRpZnlGb3JEaXNwbGF5PFdhaXRGb3JQYXJhbXM8UHJldHRpZnlGb3JEaXNwbGF5PFMzU3B5RXZlbnQ+Pj5cbiAgKSA9PiBTM1NweUhhbmRsZXI7XG59ICYge1xuICBbUCBpbiBrZXlvZiBGaWx0ZXJDb25kaXRpb25hbGx5PFRTcHlFdmVudHMsIGBTbnNTdWJzY3JpcHRpb24jJHthbnl9YD4gJlxuICAgIHN0cmluZyBhcyBgd2FpdEZvciR7UH1gXTogPFQgPSBhbnk+KFxuICAgIHBhcmFtPzogUHJldHRpZnlGb3JEaXNwbGF5PFxuICAgICAgV2FpdEZvclBhcmFtczxQcmV0dGlmeUZvckRpc3BsYXk8U25zU3Vic2NyaXB0aW9uU3B5RXZlbnQ8VD4+PlxuICAgID5cbiAgKSA9PiBTbnNTdWJzY3JpcHRpb25TcHlIYW5kbGVyPFQ+O1xufSAmIHtcbiAgW1AgaW4ga2V5b2YgRmlsdGVyQ29uZGl0aW9uYWxseTxUU3B5RXZlbnRzLCBgU25zVG9waWMjJHthbnl9YD4gJlxuICAgIHN0cmluZyBhcyBgd2FpdEZvciR7UH1gXTogPFQgPSBhbnk+KFxuICAgIHBhcmFtPzogUHJldHRpZnlGb3JEaXNwbGF5PFxuICAgICAgV2FpdEZvclBhcmFtczxQcmV0dGlmeUZvckRpc3BsYXk8U25zVG9waWNTcHlFdmVudDxUPj4+XG4gICAgPlxuICApID0+IFNuc1RvcGljU3B5SGFuZGxlcjxUPjtcbn0gJiB7XG4gIFtQIGluIGtleW9mIEZpbHRlckNvbmRpdGlvbmFsbHk8VFNweUV2ZW50cywgYFNxcyMke2FueX1gPiAmXG4gICAgc3RyaW5nIGFzIGB3YWl0Rm9yJHtQfWBdOiA8VCA9IGFueT4oXG4gICAgcGFyYW0/OiBQcmV0dGlmeUZvckRpc3BsYXk8XG4gICAgICBXYWl0Rm9yUGFyYW1zPFByZXR0aWZ5Rm9yRGlzcGxheTxTcXNTcHlFdmVudDxUPj4+XG4gICAgPlxuICApID0+IFNxc1NweUhhbmRsZXI8VD47XG59ICYge1xuICBbUCBpbiBrZXlvZiBGaWx0ZXJDb25kaXRpb25hbGx5PFRTcHlFdmVudHMsIGBGdW5jdGlvbiMke2FueX0jUmVxdWVzdGA+ICZcbiAgICBzdHJpbmcgYXMgYHdhaXRGb3Ike1B9YF06IDxUID0gYW55PihcbiAgICBwYXJhbT86IFByZXR0aWZ5Rm9yRGlzcGxheTxcbiAgICAgIFdhaXRGb3JQYXJhbXM8UHJldHRpZnlGb3JEaXNwbGF5PEZ1bmN0aW9uUmVxdWVzdFNweUV2ZW50PFQ+Pj5cbiAgICA+XG4gICkgPT4gRnVuY3Rpb25SZXF1ZXN0U3B5SGFuZGxlcjxUPjtcbn0gJiB7XG4gIFtQIGluIGtleW9mIEZpbHRlckNvbmRpdGlvbmFsbHk8VFNweUV2ZW50cywgYEZ1bmN0aW9uIyR7YW55fSNDb25zb2xlYD4gJlxuICAgIHN0cmluZyBhcyBgd2FpdEZvciR7UH1gXTogPFQgPSBhbnk+KFxuICAgIHBhcmFtPzogUHJldHRpZnlGb3JEaXNwbGF5PFxuICAgICAgV2FpdEZvclBhcmFtczxQcmV0dGlmeUZvckRpc3BsYXk8RnVuY3Rpb25Db25zb2xlU3B5RXZlbnQ8VD4+PlxuICAgID5cbiAgKSA9PiBGdW5jdGlvbkNvbnNvbGVTcHlIYW5kbGVyPFQ+O1xufSAmIHtcbiAgW1AgaW4ga2V5b2YgRmlsdGVyQ29uZGl0aW9uYWxseTxUU3B5RXZlbnRzLCBgRnVuY3Rpb24jJHthbnl9I1Jlc3BvbnNlYD4gJlxuICAgIHN0cmluZyBhcyBgd2FpdEZvciR7UH1gXTogPFQgPSBhbnk+KFxuICAgIHBhcmFtPzogUHJldHRpZnlGb3JEaXNwbGF5PFxuICAgICAgV2FpdEZvclBhcmFtczxQcmV0dGlmeUZvckRpc3BsYXk8RnVuY3Rpb25SZXNwb25zZVNweUV2ZW50PFQ+Pj5cbiAgICA+IC8vICAgICAgZmlsdGVyPzogKGV2ZW50OiBGdW5jdGlvblJlc3BvbnNlU3B5RXZlbnQ8VD4pID0+IGJvb2xlYW5cbiAgKSA9PiBGdW5jdGlvblJlc3BvbnNlU3B5SGFuZGxlcjxUPjtcbn0gJiB7XG4gIHN0b3A6ICgpID0+IHZvaWQ7XG59O1xuXG50eXBlIEZpbHRlckNvbmRpdGlvbmFsbHk8U291cmNlLCBDb25kaXRpb24+ID0gUGljazxcbiAgU291cmNlLFxuICB7XG4gICAgW0sgaW4ga2V5b2YgU291cmNlXTogU291cmNlW0tdIGV4dGVuZHMgQ29uZGl0aW9uID8gSyA6IG5ldmVyO1xuICB9W2tleW9mIFNvdXJjZV1cbj47XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { Credentials } from '@aws-sdk/types';
2
+ import { SpyEvent } from 'serverless-spy-common/spyEvents/SpyEvent';
3
+ import { SpyListener } from './SpyListener';
4
+ declare type ServerlessSpyListenerParams = {
5
+ serverlessSpyWsUrl: string;
6
+ credentials?: Credentials;
7
+ };
8
+ export declare function createServerlessSpyListener<TSpyEvents>(params: ServerlessSpyListenerParams): Promise<SpyListener<TSpyEvents>>;
9
+ export interface WaitForParams<TSpyEvent extends SpyEvent = SpyEvent> {
10
+ condition?: (event: TSpyEvent) => boolean;
11
+ timoutMs?: number;
12
+ }
13
+ export {};
@@ -0,0 +1,163 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU2VydmVybGVzc1NweUxpc3RlbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGlzdGVuZXIvY3JlYXRlU2VydmVybGVzc1NweUxpc3RlbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUl4RSxPQUFPLFNBQVMsTUFBTSxJQUFJLENBQUM7QUFRM0IsTUFBTSxDQUFDLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsTUFBbUM7SUFFbkMsTUFBTSxTQUFTLEdBQUcsTUFBTSxlQUFlLENBQ3JDLE1BQU0sQ0FBQyxrQkFBa0IsRUFDekIsTUFBTSxDQUFDLFdBQVcsQ0FDbkIsQ0FBQztJQUNGLE1BQU0sRUFBRSxHQUFHLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sUUFBUSxHQUF3QixFQUFFLENBQUM7SUFDekMsSUFBSSxRQUFRLEdBQWMsRUFBRSxDQUFDO0lBQzdCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNuQixNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUM7SUFDakMsSUFBSSxxQkFBK0MsQ0FBQztJQUVwRCxJQUFJLGlCQUFpQixHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDOUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1FBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyRCxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDeEIsSUFBSSxNQUFNO1lBQUUsT0FBTztRQUVuQixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXBDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFzQixDQUFDO1FBRWpFLE9BQU8sQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM3QyxPQUFPLENBQUMsMkJBQTJCLEdBQ2pDLE9BQU8sQ0FBQyxJQUNULENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztTQUN4QjtRQUVELFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDbEIsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNkLDJEQUEyRDtJQUM3RCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sbUJBQW1CLEdBQUcsQ0FDMUIsT0FBZ0IsRUFDaEIsT0FBMEIsRUFDMUIsRUFBRTtRQUNGLElBQUksT0FBTyxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBRTdCLElBQ0UsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNqRSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUI7Z0JBQzVCLE9BQU8sQ0FBQyxxQkFBcUIsS0FBSyxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFDbEU7WUFDQSxJQUFJLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDM0MsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBRXhCLE1BQU0sa0JBQWtCLEdBQVE7b0JBQzlCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSTtpQkFDNUIsQ0FBQztnQkFFRixNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztnQkFDNUQsSUFDRSxxQkFBcUI7b0JBQ3JCLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7b0JBQzVDLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQzt3QkFDeEMscUJBQXFCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQzVDO29CQUNBLElBQUksNkJBQTZCLEdBQUcscUJBQXFCLENBQUM7b0JBRTFELElBQUksNkJBQTZCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO3dCQUNyRCw2QkFBNkI7NEJBQzNCLDZCQUE2QixDQUFDLFNBQVMsQ0FDckMsQ0FBQyxFQUNELDZCQUE2QixDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUN4RCxDQUFDO3FCQUNMO3lCQUFNLElBQUksNkJBQTZCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO3dCQUM1RCw2QkFBNkI7NEJBQzNCLDZCQUE2QixDQUFDLFNBQVMsQ0FDckMsQ0FBQyxFQUNELDZCQUE2QixDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUN4RCxDQUFDO3FCQUNMO29CQUVELDZCQUE2QixJQUFJLFVBQVUsQ0FBQztvQkFFNUMsa0JBQWtCLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxPQUFzQixFQUFFLEVBQUU7d0JBQ2pFLE9BQU8sb0JBQW9CLENBQ3pCLDZCQUE2QixFQUM3QixPQUFPLEVBQ04sT0FBTyxDQUFDLElBQWdDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FDL0QsRUFBRSxDQUFDO29CQUNOLENBQUMsQ0FBQztpQkFDSDtnQkFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRTtvQkFDMUMsR0FBRyxFQUFFLFVBQVUsTUFBVyxFQUFFLFNBQWlCO3dCQUMzQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUU7NEJBQ3BDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3lCQUMxQjs2QkFBTSxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUU7NEJBQy9CLE9BQU87Z0NBQ0wsTUFBTSxxQkFBcUIsR0FBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBUyxDQUN6RCxTQUFTLENBQ1YsQ0FBQztnQ0FDRixxQkFBcUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dDQUNsRCxPQUFPLEtBQUssQ0FBQzs0QkFDZixDQUFDLENBQUM7eUJBQ0g7b0JBQ0gsQ0FBQztpQkFDRixDQUFDLENBQUM7Z0JBRUgsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUIsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7SUFFRixNQUFNLDJCQUEyQixHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1FBQ3ZELEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFO1lBQzlCLElBQUksbUJBQW1CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUN6QyxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGLE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxPQUEwQixFQUFFLEVBQUU7UUFDckUsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDcEQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLElBQUksbUJBQW1CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUN6QyxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsRUFBNkIsQ0FBQztJQUVsRCxXQUFXLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRTtRQUN0QixNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1FBQ25DLEdBQUcsRUFBRSxVQUFVLE1BQVcsRUFBRSxTQUFpQjtZQUMzQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3BDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzFCO2lCQUFNLElBQ0wsT0FBTyxTQUFTLEtBQUssUUFBUTtnQkFDN0IsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFDcEM7Z0JBQ0EsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBa0IsQ0FBQztnQkFDOUMsTUFBTSxxQkFBcUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUMvQyxjQUFjLENBQUMsTUFBTSxDQUN0QixDQUFDO2dCQUVGLE9BQU8sb0JBQW9CLENBQUMscUJBQXFCLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDN0Q7UUFDSCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxpQkFBaUIsQ0FBQztJQUV4QixPQUFPLEtBQWdDLENBQUM7SUFFeEMsU0FBUyxxQkFBcUIsQ0FBQyxPQUFnQixFQUFFLE9BQTBCO1FBQ3pFLE1BQU0sY0FBYyxHQUNsQixDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBRXJCLE1BQU0sY0FBYyxHQUNsQixDQUFDLE9BQU8sQ0FBQywyQkFBMkI7WUFDbEMsT0FBTyxDQUFDLDJCQUEyQjtnQkFDakMsT0FBTyxDQUFDLDJCQUEyQixDQUFDO1lBQ3hDLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDO1FBRXZDLElBQUksT0FBTyxDQUFDLDJCQUEyQixFQUFFO1lBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQ1QsR0FBRyxPQUFPLENBQUMsMkJBQTJCLE1BQU0sT0FBTyxDQUFDLDJCQUEyQixFQUFFLENBQ2xGLENBQUM7U0FDSDtRQUVELE9BQU8sY0FBYyxJQUFJLGNBQWMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsU0FBUyxvQkFBb0IsQ0FDM0IscUJBQTZCLEVBQzdCLE9BQWdDLEVBQ2hDLDJCQUFvQztRQUVwQyxJQUFJLE9BQWdCLENBQUM7UUFFckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDOUMsT0FBTyxHQUFHO2dCQUNSLFFBQVEsRUFBRSxLQUFLO2dCQUNmLGNBQWMsRUFBRSxPQUFPO2dCQUN2QixhQUFhLEVBQUUsTUFBTTtnQkFDckIscUJBQXFCO2dCQUNyQiwyQkFBMkI7YUFDNUIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLGNBQWM7WUFDNUIsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLEVBQUUsU0FBUyxDQUFDO1lBRXZDLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQzVCLElBQUksT0FBTyxDQUFDLFFBQVE7b0JBQUUsT0FBTztnQkFDN0IsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLE9BQU8sQ0FBQyxhQUFhLENBQ25CLElBQUksS0FBSyxDQUNQLDhDQUE4QyxxQkFBcUIsRUFBRSxDQUN0RSxDQUNGLENBQUM7WUFDSixDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQztZQUUvQixPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUN6QyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3hCO1lBRUQsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cbmltcG9ydCB7IENyZWRlbnRpYWxzIH0gZnJvbSAnQGF3cy1zZGsvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0V2ViU29ja2V0VXJsIH0gZnJvbSAnc2VydmVybGVzcy1zcHktY29tbW9uL2dldFdlYlNvY2tldFVybCc7XG5pbXBvcnQgeyBGdW5jdGlvblJlcXVlc3RTcHlFdmVudCB9IGZyb20gJ3NlcnZlcmxlc3Mtc3B5LWNvbW1vbi9zcHlFdmVudHMvRnVuY3Rpb25SZXF1ZXN0U3B5RXZlbnQnO1xuaW1wb3J0IHsgU3B5RXZlbnQgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL1NweUV2ZW50JztcbmltcG9ydCB7IFNweU1lc3NhZ2UgfSBmcm9tICdzZXJ2ZXJsZXNzLXNweS1jb21tb24vc3B5RXZlbnRzL1NweU1lc3NhZ2UnO1xuaW1wb3J0IFdlYlNvY2tldCBmcm9tICd3cyc7XG5pbXBvcnQgeyBTcHlMaXN0ZW5lciB9IGZyb20gJy4vU3B5TGlzdGVuZXInO1xuXG50eXBlIFNlcnZlcmxlc3NTcHlMaXN0ZW5lclBhcmFtcyA9IHtcbiAgc2VydmVybGVzc1NweVdzVXJsOiBzdHJpbmc7XG4gIGNyZWRlbnRpYWxzPzogQ3JlZGVudGlhbHM7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU2VydmVybGVzc1NweUxpc3RlbmVyPFRTcHlFdmVudHM+KFxuICBwYXJhbXM6IFNlcnZlcmxlc3NTcHlMaXN0ZW5lclBhcmFtc1xuKSB7XG4gIGNvbnN0IHVybFNpZ25lZCA9IGF3YWl0IGdldFdlYlNvY2tldFVybChcbiAgICBwYXJhbXMuc2VydmVybGVzc1NweVdzVXJsLFxuICAgIHBhcmFtcy5jcmVkZW50aWFsc1xuICApO1xuICBjb25zdCB3cyA9IG5ldyBXZWJTb2NrZXQodXJsU2lnbmVkKTtcbiAgY29uc3QgbWVzc2FnZXM6IFNweU1lc3NhZ2VTdG9yYWdlW10gPSBbXTtcbiAgbGV0IHRyYWNrZXJzOiBUcmFja2VyW10gPSBbXTtcbiAgbGV0IGNsb3NlZCA9IGZhbHNlO1xuICBjb25zdCBmdW5jdGlvblByZWZpeCA9ICd3YWl0Rm9yJztcbiAgbGV0IGNvbm5lY3Rpb25PcGVuUmVzb2x2ZTogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkO1xuXG4gIGxldCB3YWl0Rm9yQ29ubmVjdGlvbiA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29ubmVjdGlvbk9wZW5SZXNvbHZlID0gcmVzb2x2ZTtcbiAgfSk7XG5cbiAgd3Mub24oJ29wZW4nLCAoKSA9PiB7XG4gICAgY29uc29sZS5sb2coJ2Nvbm5lY3RlZCAnICsgbmV3IERhdGUoKS50b0lTT1N0cmluZygpKTtcbiAgICBjb25uZWN0aW9uT3BlblJlc29sdmUodW5kZWZpbmVkKTtcbiAgfSk7XG4gIHdzLm9uKCdtZXNzYWdlJywgKGRhdGEpID0+IHtcbiAgICBpZiAoY2xvc2VkKSByZXR1cm47XG5cbiAgICBjb25zb2xlLmxvZyhgRnJvbSBzZXJ2ZXI6ICR7ZGF0YX1gKTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBKU09OLnBhcnNlKGRhdGEudG9TdHJpbmcoKSkgYXMgU3B5TWVzc2FnZVN0b3JhZ2U7XG5cbiAgICBtZXNzYWdlLnNlcnZpY2VLZXlGb3JGdW5jdGlvbiA9IG1lc3NhZ2Uuc2VydmljZUtleS5yZXBsYWNlKC8jL2csICcnKTtcblxuICAgIGlmIChtZXNzYWdlLnNlcnZpY2VLZXkuc3RhcnRzV2l0aCgnRnVuY3Rpb24nKSkge1xuICAgICAgbWVzc2FnZS5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQgPSAoXG4gICAgICAgIG1lc3NhZ2UuZGF0YSBhcyBGdW5jdGlvblJlcXVlc3RTcHlFdmVudFxuICAgICAgKS5jb250ZXh0LmF3c1JlcXVlc3RJZDtcbiAgICB9XG5cbiAgICBtZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xuICAgIHJlc29sdmVPbGRUcmFja2VyV2l0aE5ld01lc3NhZ2UobWVzc2FnZSk7XG4gIH0pO1xuICB3cy5vbignY2xvc2UnLCAoKSA9PiB7XG4gICAgY2xvc2VkID0gdHJ1ZTtcbiAgICAvLyBjb25zb2xlLmxvZyhcImRpc2Nvbm5lY3RlZCBcIiArIG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSk7XG4gIH0pO1xuXG4gIGNvbnN0IHRyYWNrZXJNYXRjaE1lc3NhZ2UgPSAoXG4gICAgdHJhY2tlcjogVHJhY2tlcixcbiAgICBtZXNzYWdlOiBTcHlNZXNzYWdlU3RvcmFnZVxuICApID0+IHtcbiAgICBpZiAodHJhY2tlci5maW5pc2hlZCkgcmV0dXJuO1xuXG4gICAgaWYgKFxuICAgICAgKHRyYWNrZXIuc2VydmljZUtleSAmJiB0cmFja2VyLnNlcnZpY2VLZXkgPT09IG1lc3NhZ2Uuc2VydmljZUtleSkgfHxcbiAgICAgICh0cmFja2VyLnNlcnZpY2VLZXlGb3JGdW5jdGlvbiAmJlxuICAgICAgICB0cmFja2VyLnNlcnZpY2VLZXlGb3JGdW5jdGlvbiA9PT0gbWVzc2FnZS5zZXJ2aWNlS2V5Rm9yRnVuY3Rpb24pXG4gICAgKSB7XG4gICAgICBpZiAodHJhY2tlck1hdGNoQ29uZGl0aW9uKHRyYWNrZXIsIG1lc3NhZ2UpKSB7XG4gICAgICAgIHRyYWNrZXIuZmluaXNoZWQgPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IHNweUFuZEplc3RNYXRjaGVyczogYW55ID0ge1xuICAgICAgICAgIGdldERhdGE6ICgpID0+IG1lc3NhZ2UuZGF0YSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb24gPSB0cmFja2VyLnNlcnZpY2VLZXlGb3JGdW5jdGlvbjtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlcnZpY2VLZXlGb3JGdW5jdGlvbiAmJlxuICAgICAgICAgIHNlcnZpY2VLZXlGb3JGdW5jdGlvbi5zdGFydHNXaXRoKCdGdW5jdGlvbicpICYmXG4gICAgICAgICAgKHNlcnZpY2VLZXlGb3JGdW5jdGlvbi5lbmRzV2l0aCgnUmVxdWVzdCcpIHx8XG4gICAgICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb24uZW5kc1dpdGgoJ0NvbnNvbGUnKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGV0IHNlcnZpY2VLZXlGb3JGdW5jdGlvblJlc3BvbnNlID0gc2VydmljZUtleUZvckZ1bmN0aW9uO1xuXG4gICAgICAgICAgaWYgKHNlcnZpY2VLZXlGb3JGdW5jdGlvblJlc3BvbnNlLmVuZHNXaXRoKCdSZXF1ZXN0JykpIHtcbiAgICAgICAgICAgIHNlcnZpY2VLZXlGb3JGdW5jdGlvblJlc3BvbnNlID1cbiAgICAgICAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uUmVzcG9uc2Uuc3Vic3RyaW5nKFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uUmVzcG9uc2UubGVuZ3RoIC0gJ1JlcXVlc3QnLmxlbmd0aFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc2VydmljZUtleUZvckZ1bmN0aW9uUmVzcG9uc2UuZW5kc1dpdGgoJ0NvbnNvbGUnKSkge1xuICAgICAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uUmVzcG9uc2UgPVxuICAgICAgICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb25SZXNwb25zZS5zdWJzdHJpbmcoXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb25SZXNwb25zZS5sZW5ndGggLSAnQ29uc29sZScubGVuZ3RoXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uUmVzcG9uc2UgKz0gJ1Jlc3BvbnNlJztcblxuICAgICAgICAgIHNweUFuZEplc3RNYXRjaGVycy5mb2xsb3dlZEJ5UmVzcG9uc2UgPSAocGFyYW1zVzogV2FpdEZvclBhcmFtcykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVdhaXRGb3JYWFhGdW5jKFxuICAgICAgICAgICAgICBzZXJ2aWNlS2V5Rm9yRnVuY3Rpb25SZXNwb25zZSxcbiAgICAgICAgICAgICAgcGFyYW1zVyxcbiAgICAgICAgICAgICAgKG1lc3NhZ2UuZGF0YSBhcyBGdW5jdGlvblJlcXVlc3RTcHlFdmVudCkuY29udGV4dC5hd3NSZXF1ZXN0SWRcbiAgICAgICAgICAgICkoKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJveHkgPSBuZXcgUHJveHkoc3B5QW5kSmVzdE1hdGNoZXJzLCB7XG4gICAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIG9iamVjdEtleTogc3RyaW5nKSB7XG4gICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc093blByb3BlcnR5KG9iamVjdEtleSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtvYmplY3RLZXldO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChvYmplY3RLZXkgIT09ICd0aGVuJykge1xuICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGplc3RGdW5jdGlvblRvRXhlY3V0ZSA9IChleHBlY3QobWVzc2FnZS5kYXRhKSBhcyBhbnkpW1xuICAgICAgICAgICAgICAgICAgb2JqZWN0S2V5XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBqZXN0RnVuY3Rpb25Ub0V4ZWN1dGUuYXBwbHkodW5kZWZpbmVkLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm94eTtcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICB0cmFja2VyLnByb21pc2VSZXNvbHZlKHByb3h5KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICBjb25zdCByZXNvbHZlVHJhY2tlckluT2xkTWVzc2FnZXMgPSAodHJhY2tlcjogVHJhY2tlcikgPT4ge1xuICAgIGZvciAoY29uc3QgbWVzc2FnZSBvZiBtZXNzYWdlcykge1xuICAgICAgaWYgKHRyYWNrZXJNYXRjaE1lc3NhZ2UodHJhY2tlciwgbWVzc2FnZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIGNvbnN0IHJlc29sdmVPbGRUcmFja2VyV2l0aE5ld01lc3NhZ2UgPSAobWVzc2FnZTogU3B5TWVzc2FnZVN0b3JhZ2UpID0+IHtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdHJhY2tlcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCB0cmFja2VyID0gdHJhY2tlcnNbaW5kZXhdO1xuICAgICAgaWYgKHRyYWNrZXJNYXRjaE1lc3NhZ2UodHJhY2tlciwgbWVzc2FnZSkpIHtcbiAgICAgICAgdHJhY2tlcnMgPSB0cmFja2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgY29uc3Qgc3B5TGlzdGVuZXIgPSB7fSBhcyBTcHlMaXN0ZW5lcjxUU3B5RXZlbnRzPjtcblxuICBzcHlMaXN0ZW5lci5zdG9wID0gKCkgPT4ge1xuICAgIGNsb3NlZCA9IHRydWU7XG4gICAgd3MuY2xvc2UoKTtcbiAgfTtcblxuICBjb25zdCBwcm94eSA9IG5ldyBQcm94eShzcHlMaXN0ZW5lciwge1xuICAgIGdldDogZnVuY3Rpb24gKHRhcmdldDogYW55LCBvYmplY3RLZXk6IHN0cmluZykge1xuICAgICAgaWYgKHRhcmdldC5oYXNPd25Qcm9wZXJ0eShvYmplY3RLZXkpKSB7XG4gICAgICAgIHJldHVybiB0YXJnZXRbb2JqZWN0S2V5XTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHR5cGVvZiBvYmplY3RLZXkgPT09ICdzdHJpbmcnICYmXG4gICAgICAgIG9iamVjdEtleS5zdGFydHNXaXRoKGZ1bmN0aW9uUHJlZml4KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHBhcmFtc1cgPSBhcmd1bWVudHNbMF0gYXMgV2FpdEZvclBhcmFtcztcbiAgICAgICAgY29uc3Qgc2VydmljZUtleUZvckZ1bmN0aW9uID0gb2JqZWN0S2V5LnN1YnN0cmluZyhcbiAgICAgICAgICBmdW5jdGlvblByZWZpeC5sZW5ndGhcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY3JlYXRlV2FpdEZvclhYWEZ1bmMoc2VydmljZUtleUZvckZ1bmN0aW9uLCBwYXJhbXNXKTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICBhd2FpdCB3YWl0Rm9yQ29ubmVjdGlvbjtcblxuICByZXR1cm4gcHJveHkgYXMgU3B5TGlzdGVuZXI8VFNweUV2ZW50cz47XG5cbiAgZnVuY3Rpb24gdHJhY2tlck1hdGNoQ29uZGl0aW9uKHRyYWNrZXI6IFRyYWNrZXIsIG1lc3NhZ2U6IFNweU1lc3NhZ2VTdG9yYWdlKSB7XG4gICAgY29uc3QgbWF0Y2hDb25kaXRpb24gPVxuICAgICAgKHRyYWNrZXIuY29uZGl0aW9uICYmIHRyYWNrZXIuY29uZGl0aW9uKG1lc3NhZ2UuZGF0YSkpIHx8XG4gICAgICAhdHJhY2tlci5jb25kaXRpb247XG5cbiAgICBjb25zdCBtYXRjaFJlcXVlc3RJZCA9XG4gICAgICAodHJhY2tlci5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQgJiZcbiAgICAgICAgdHJhY2tlci5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQgPT09XG4gICAgICAgICAgbWVzc2FnZS5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQpIHx8XG4gICAgICAhdHJhY2tlci5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQ7XG5cbiAgICBpZiAodHJhY2tlci5mdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgJHt0cmFja2VyLmZ1bmN0aW9uQ29udGV4dEF3c1JlcXVlc3RJZH0gLSAke21lc3NhZ2UuZnVuY3Rpb25Db250ZXh0QXdzUmVxdWVzdElkfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoQ29uZGl0aW9uICYmIG1hdGNoUmVxdWVzdElkO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlV2FpdEZvclhYWEZ1bmMoXG4gICAgc2VydmljZUtleUZvckZ1bmN0aW9uOiBzdHJpbmcsXG4gICAgcGFyYW1zVzogV2FpdEZvclBhcmFtczxTcHlFdmVudD4sXG4gICAgZnVuY3Rpb25Db250ZXh0QXdzUmVxdWVzdElkPzogc3RyaW5nXG4gICkge1xuICAgIGxldCB0cmFja2VyOiBUcmFja2VyO1xuXG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyYWNrZXIgPSB7XG4gICAgICAgIGZpbmlzaGVkOiBmYWxzZSxcbiAgICAgICAgcHJvbWlzZVJlc29sdmU6IHJlc29sdmUsXG4gICAgICAgIHByb21pc2VSZWplY3Q6IHJlamVjdCxcbiAgICAgICAgc2VydmljZUtleUZvckZ1bmN0aW9uLFxuICAgICAgICBmdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIHdhaXRGb3JYWFhGdW5jKCkge1xuICAgICAgdHJhY2tlci5jb25kaXRpb24gPSBwYXJhbXNXPy5jb25kaXRpb247XG5cbiAgICAgIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0cmFja2VyLmZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgIHRyYWNrZXIuZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICB0cmFja2VyLnByb21pc2VSZWplY3QoXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFRpbWVvdXQgd2FpdGluZyBmb3IgU2VydmVybGVzcyBTcHkgbWVzc2FnZSAke3NlcnZpY2VLZXlGb3JGdW5jdGlvbn1gXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSwgcGFyYW1zVz8udGltb3V0TXMgfHwgMTAwMDApO1xuXG4gICAgICBwcm9taXNlLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmICghcmVzb2x2ZVRyYWNrZXJJbk9sZE1lc3NhZ2VzKHRyYWNrZXIpKSB7XG4gICAgICAgIHRyYWNrZXJzLnB1c2godHJhY2tlcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXYWl0Rm9yUGFyYW1zPFRTcHlFdmVudCBleHRlbmRzIFNweUV2ZW50ID0gU3B5RXZlbnQ+IHtcbiAgY29uZGl0aW9uPzogKGV2ZW50OiBUU3B5RXZlbnQpID0+IGJvb2xlYW47XG4gIHRpbW91dE1zPzogbnVtYmVyO1xufVxuXG50eXBlIFRyYWNrZXIgPSB7XG4gIHByb21pc2VSZXNvbHZlOiAoZGF0YTogYW55KSA9PiB2b2lkO1xuICBwcm9taXNlUmVqZWN0OiAoZGF0YTogYW55KSA9PiB2b2lkO1xuICBmaW5pc2hlZDogYm9vbGVhbjtcbiAgc2VydmljZUtleT86IHN0cmluZztcbiAgc2VydmljZUtleUZvckZ1bmN0aW9uPzogc3RyaW5nO1xuICBjb25kaXRpb24/OiAoZGF0YTogYW55KSA9PiBib29sZWFuO1xuICB0aW1vdXRNcz86IG51bWJlcjtcbiAgZnVuY3Rpb25Db250ZXh0QXdzUmVxdWVzdElkPzogc3RyaW5nO1xufTtcblxudHlwZSBTcHlNZXNzYWdlU3RvcmFnZSA9IFNweU1lc3NhZ2UgJiB7XG4gIHNlcnZpY2VLZXlGb3JGdW5jdGlvbjogc3RyaW5nO1xuICBmdW5jdGlvbkNvbnRleHRBd3NSZXF1ZXN0SWQ/OiBzdHJpbmc7XG59O1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './createServerlessSpyListener';
2
+ export * from './SpyListener';
@@ -0,0 +1,3 @@
1
+ export * from './createServerlessSpyListener';
2
+ export * from './SpyListener';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saXN0ZW5lci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jcmVhdGVTZXJ2ZXJsZXNzU3B5TGlzdGVuZXInO1xuZXhwb3J0ICogZnJvbSAnLi9TcHlMaXN0ZW5lcic7XG4iXX0=
File without changes
@@ -0,0 +1,55 @@
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
@@ -0,0 +1,21 @@
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==
@@ -0,0 +1,27 @@
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
+ }