serverless-spy 0.0.9 → 0.0.10

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 (346) hide show
  1. package/.jsii +5 -2
  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/package.json +1 -5
  119. package/node_modules/@aws-sdk/client-dynamodb/package.json +1 -5
  120. package/node_modules/@aws-sdk/client-eventbridge/package.json +1 -5
  121. package/node_modules/@aws-sdk/client-lambda/package.json +1 -5
  122. package/node_modules/@aws-sdk/client-s3/node_modules/entities/package.json +1 -5
  123. package/node_modules/@aws-sdk/client-s3/package.json +1 -5
  124. package/node_modules/@aws-sdk/client-sns/node_modules/entities/package.json +1 -5
  125. package/node_modules/@aws-sdk/client-sns/package.json +1 -5
  126. package/node_modules/@aws-sdk/client-sqs/node_modules/entities/package.json +1 -5
  127. package/node_modules/@aws-sdk/client-sqs/package.json +1 -5
  128. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/abort-controller/package.json +1 -5
  129. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/client-sso/package.json +1 -5
  130. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/client-sts/package.json +1 -5
  131. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/config-resolver/package.json +1 -5
  132. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-env/package.json +1 -5
  133. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-imds/package.json +1 -5
  134. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-ini/package.json +1 -5
  135. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-node/package.json +1 -5
  136. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-process/package.json +1 -5
  137. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-sso/package.json +1 -5
  138. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-web-identity/package.json +1 -5
  139. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/fetch-http-handler/package.json +1 -5
  140. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/hash-node/package.json +1 -5
  141. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/invalid-dependency/package.json +1 -5
  142. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/is-array-buffer/package.json +1 -5
  143. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-content-length/package.json +1 -5
  144. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-host-header/package.json +1 -5
  145. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-logger/package.json +1 -5
  146. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-retry/package.json +1 -5
  147. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-sdk-sts/package.json +1 -5
  148. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-serde/package.json +1 -5
  149. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-signing/package.json +1 -5
  150. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-stack/package.json +1 -5
  151. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-user-agent/package.json +1 -5
  152. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/node-config-provider/package.json +1 -5
  153. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/node-http-handler/package.json +1 -5
  154. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/property-provider/package.json +1 -5
  155. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/protocol-http/package.json +1 -5
  156. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/querystring-builder/package.json +1 -5
  157. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/querystring-parser/package.json +1 -5
  158. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/service-error-classification/package.json +1 -5
  159. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/shared-ini-file-loader/package.json +1 -5
  160. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/signature-v4/package.json +1 -5
  161. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/smithy-client/package.json +1 -5
  162. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/types/package.json +1 -5
  163. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/url-parser/package.json +1 -5
  164. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-base64-browser/package.json +1 -5
  165. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-base64-node/package.json +1 -5
  166. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-body-length-browser/package.json +1 -5
  167. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-body-length-node/package.json +1 -5
  168. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-buffer-from/package.json +1 -5
  169. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-config-provider/package.json +1 -5
  170. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-hex-encoding/package.json +1 -5
  171. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-uri-escape/package.json +1 -5
  172. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-user-agent-browser/package.json +1 -5
  173. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-user-agent-node/package.json +1 -5
  174. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-utf8-browser/package.json +1 -5
  175. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-utf8-node/package.json +1 -5
  176. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-waiter/package.json +1 -5
  177. package/node_modules/@aws-sdk/client-ssm/node_modules/entities/package.json +1 -5
  178. package/node_modules/@aws-sdk/client-ssm/package.json +1 -5
  179. package/node_modules/@aws-sdk/client-sso/package.json +1 -5
  180. package/node_modules/@aws-sdk/client-sts/node_modules/entities/package.json +1 -5
  181. package/node_modules/@aws-sdk/client-sts/package.json +1 -5
  182. package/node_modules/@aws-sdk/config-resolver/package.json +1 -5
  183. package/node_modules/@aws-sdk/credential-provider-cognito-identity/package.json +1 -5
  184. package/node_modules/@aws-sdk/credential-provider-env/package.json +1 -5
  185. package/node_modules/@aws-sdk/credential-provider-imds/package.json +1 -5
  186. package/node_modules/@aws-sdk/credential-provider-ini/package.json +1 -5
  187. package/node_modules/@aws-sdk/credential-provider-node/package.json +1 -5
  188. package/node_modules/@aws-sdk/credential-provider-process/package.json +1 -5
  189. package/node_modules/@aws-sdk/credential-provider-sso/package.json +1 -5
  190. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +1 -5
  191. package/node_modules/@aws-sdk/credential-providers/package.json +1 -5
  192. package/node_modules/@aws-sdk/endpoint-cache/package.json +1 -5
  193. package/node_modules/@aws-sdk/eventstream-codec/package.json +1 -5
  194. package/node_modules/@aws-sdk/eventstream-serde-browser/package.json +1 -5
  195. package/node_modules/@aws-sdk/eventstream-serde-config-resolver/package.json +1 -5
  196. package/node_modules/@aws-sdk/eventstream-serde-node/package.json +1 -5
  197. package/node_modules/@aws-sdk/eventstream-serde-universal/package.json +1 -5
  198. package/node_modules/@aws-sdk/fetch-http-handler/package.json +1 -5
  199. package/node_modules/@aws-sdk/hash-blob-browser/package.json +1 -5
  200. package/node_modules/@aws-sdk/hash-node/package.json +1 -5
  201. package/node_modules/@aws-sdk/hash-stream-node/package.json +1 -5
  202. package/node_modules/@aws-sdk/invalid-dependency/package.json +1 -5
  203. package/node_modules/@aws-sdk/is-array-buffer/package.json +1 -5
  204. package/node_modules/@aws-sdk/lib-dynamodb/package.json +1 -5
  205. package/node_modules/@aws-sdk/md5-js/package.json +1 -5
  206. package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +1 -5
  207. package/node_modules/@aws-sdk/middleware-content-length/package.json +1 -5
  208. package/node_modules/@aws-sdk/middleware-endpoint-discovery/package.json +1 -5
  209. package/node_modules/@aws-sdk/middleware-expect-continue/package.json +1 -5
  210. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +1 -5
  211. package/node_modules/@aws-sdk/middleware-host-header/package.json +1 -5
  212. package/node_modules/@aws-sdk/middleware-location-constraint/package.json +1 -5
  213. package/node_modules/@aws-sdk/middleware-logger/package.json +1 -5
  214. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +1 -5
  215. package/node_modules/@aws-sdk/middleware-retry/package.json +1 -5
  216. package/node_modules/@aws-sdk/middleware-sdk-eventbridge/package.json +1 -5
  217. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +1 -5
  218. package/node_modules/@aws-sdk/middleware-sdk-sqs/package.json +1 -5
  219. package/node_modules/@aws-sdk/middleware-sdk-sts/package.json +1 -5
  220. package/node_modules/@aws-sdk/middleware-serde/package.json +1 -5
  221. package/node_modules/@aws-sdk/middleware-signing/package.json +1 -5
  222. package/node_modules/@aws-sdk/middleware-ssec/package.json +1 -5
  223. package/node_modules/@aws-sdk/middleware-stack/package.json +1 -5
  224. package/node_modules/@aws-sdk/middleware-user-agent/package.json +1 -5
  225. package/node_modules/@aws-sdk/node-config-provider/package.json +1 -5
  226. package/node_modules/@aws-sdk/node-http-handler/package.json +1 -5
  227. package/node_modules/@aws-sdk/property-provider/package.json +1 -5
  228. package/node_modules/@aws-sdk/protocol-http/package.json +1 -5
  229. package/node_modules/@aws-sdk/querystring-builder/package.json +1 -5
  230. package/node_modules/@aws-sdk/querystring-parser/package.json +1 -5
  231. package/node_modules/@aws-sdk/service-error-classification/package.json +1 -5
  232. package/node_modules/@aws-sdk/shared-ini-file-loader/package.json +1 -5
  233. package/node_modules/@aws-sdk/signature-v4/package.json +1 -5
  234. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +1 -5
  235. package/node_modules/@aws-sdk/smithy-client/package.json +1 -5
  236. package/node_modules/@aws-sdk/types/package.json +1 -5
  237. package/node_modules/@aws-sdk/url-parser/package.json +1 -5
  238. package/node_modules/@aws-sdk/util-arn-parser/package.json +1 -5
  239. package/node_modules/@aws-sdk/util-base64-browser/package.json +1 -5
  240. package/node_modules/@aws-sdk/util-base64-node/package.json +1 -5
  241. package/node_modules/@aws-sdk/util-body-length-browser/package.json +1 -5
  242. package/node_modules/@aws-sdk/util-body-length-node/package.json +1 -5
  243. package/node_modules/@aws-sdk/util-buffer-from/package.json +1 -5
  244. package/node_modules/@aws-sdk/util-config-provider/package.json +1 -5
  245. package/node_modules/@aws-sdk/util-credentials/node_modules/@aws-sdk/shared-ini-file-loader/package.json +1 -5
  246. package/node_modules/@aws-sdk/util-credentials/package.json +1 -5
  247. package/node_modules/@aws-sdk/util-defaults-mode-browser/package.json +1 -5
  248. package/node_modules/@aws-sdk/util-defaults-mode-node/package.json +1 -5
  249. package/node_modules/@aws-sdk/util-dynamodb/package.json +1 -5
  250. package/node_modules/@aws-sdk/util-hex-encoding/package.json +1 -5
  251. package/node_modules/@aws-sdk/util-locate-window/package.json +1 -5
  252. package/node_modules/@aws-sdk/util-middleware/package.json +1 -5
  253. package/node_modules/@aws-sdk/util-stream-browser/package.json +1 -5
  254. package/node_modules/@aws-sdk/util-stream-node/package.json +1 -5
  255. package/node_modules/@aws-sdk/util-uri-escape/package.json +1 -5
  256. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +1 -5
  257. package/node_modules/@aws-sdk/util-user-agent-node/package.json +1 -5
  258. package/node_modules/@aws-sdk/util-utf8-browser/package.json +1 -5
  259. package/node_modules/@aws-sdk/util-utf8-node/package.json +1 -5
  260. package/node_modules/@aws-sdk/util-waiter/package.json +1 -5
  261. package/node_modules/@aws-sdk/xml-builder/package.json +1 -5
  262. package/node_modules/@graphql-tools/merge/package.json +0 -4
  263. package/node_modules/@graphql-tools/schema/package.json +0 -4
  264. package/node_modules/@graphql-tools/utils/package.json +0 -4
  265. package/node_modules/@serverless-stack/node/package.json +1 -5
  266. package/node_modules/@tsconfig/node14/package.json +1 -5
  267. package/node_modules/available-typed-arrays/package.json +1 -5
  268. package/node_modules/aws-jwt-verify/package.json +1 -5
  269. package/node_modules/aws-lambda/node_modules/argparse/package.json +1 -5
  270. package/node_modules/aws-lambda/node_modules/commander/package.json +1 -5
  271. package/node_modules/aws-lambda/node_modules/js-yaml/package.json +1 -5
  272. package/node_modules/aws-lambda/package.json +1 -5
  273. package/node_modules/aws-sdk/node_modules/uuid/package.json +1 -5
  274. package/node_modules/aws-sdk/package.json +0 -4
  275. package/node_modules/aws4/package.json +1 -5
  276. package/node_modules/base64-js/package.json +1 -5
  277. package/node_modules/bowser/package.json +1 -5
  278. package/node_modules/buffer/package.json +1 -5
  279. package/node_modules/call-bind/package.json +1 -5
  280. package/node_modules/define-properties/package.json +1 -5
  281. package/node_modules/es-abstract/package.json +1 -5
  282. package/node_modules/es-to-primitive/package.json +1 -5
  283. package/node_modules/esprima/package.json +1 -5
  284. package/node_modules/events/package.json +0 -4
  285. package/node_modules/fast-xml-parser/package.json +1 -5
  286. package/node_modules/for-each/package.json +1 -5
  287. package/node_modules/function-bind/package.json +1 -5
  288. package/node_modules/function.prototype.name/package.json +1 -5
  289. package/node_modules/functions-have-names/package.json +1 -5
  290. package/node_modules/get-intrinsic/package.json +1 -5
  291. package/node_modules/get-symbol-description/package.json +1 -5
  292. package/node_modules/glob-to-regexp/package.json +1 -5
  293. package/node_modules/graceful-fs/package.json +1 -5
  294. package/node_modules/graphql/package.json +1 -5
  295. package/node_modules/graphql-helix/package.json +1 -5
  296. package/node_modules/has/package.json +1 -5
  297. package/node_modules/has-bigints/package.json +1 -5
  298. package/node_modules/has-property-descriptors/package.json +1 -5
  299. package/node_modules/has-symbols/package.json +1 -5
  300. package/node_modules/has-tostringtag/package.json +1 -5
  301. package/node_modules/ieee754/package.json +1 -5
  302. package/node_modules/inherits/package.json +1 -5
  303. package/node_modules/internal-slot/package.json +1 -5
  304. package/node_modules/is-arguments/package.json +1 -5
  305. package/node_modules/is-bigint/package.json +1 -5
  306. package/node_modules/is-boolean-object/package.json +1 -5
  307. package/node_modules/is-callable/package.json +1 -5
  308. package/node_modules/is-date-object/package.json +1 -5
  309. package/node_modules/is-generator-function/package.json +1 -5
  310. package/node_modules/is-negative-zero/package.json +1 -5
  311. package/node_modules/is-number-object/package.json +1 -5
  312. package/node_modules/is-regex/package.json +1 -5
  313. package/node_modules/is-shared-array-buffer/package.json +1 -5
  314. package/node_modules/is-string/package.json +1 -5
  315. package/node_modules/is-symbol/package.json +1 -5
  316. package/node_modules/is-typed-array/package.json +1 -5
  317. package/node_modules/is-weakref/package.json +1 -5
  318. package/node_modules/isarray/package.json +1 -5
  319. package/node_modules/jmespath/package.json +1 -5
  320. package/node_modules/mnemonist/package.json +1 -5
  321. package/node_modules/object-inspect/package.json +1 -5
  322. package/node_modules/object-keys/package.json +1 -5
  323. package/node_modules/object.assign/package.json +1 -5
  324. package/node_modules/obliterator/package.json +1 -5
  325. package/node_modules/querystring/package.json +1 -5
  326. package/node_modules/regexp.prototype.flags/package.json +1 -5
  327. package/node_modules/safe-buffer/package.json +1 -5
  328. package/node_modules/sax/package.json +1 -5
  329. package/node_modules/side-channel/package.json +1 -5
  330. package/node_modules/sprintf-js/package.json +1 -5
  331. package/node_modules/string.prototype.trimend/package.json +1 -5
  332. package/node_modules/string.prototype.trimstart/package.json +1 -5
  333. package/node_modules/tslib/package.json +1 -5
  334. package/node_modules/unbox-primitive/package.json +1 -5
  335. package/node_modules/url/node_modules/punycode/package.json +1 -5
  336. package/node_modules/url/package.json +1 -5
  337. package/node_modules/util/package.json +1 -5
  338. package/node_modules/uuid/package.json +1 -5
  339. package/node_modules/value-or-promise/package.json +1 -5
  340. package/node_modules/watchpack/package.json +1 -5
  341. package/node_modules/which-boxed-primitive/package.json +1 -5
  342. package/node_modules/which-typed-array/package.json +1 -5
  343. package/node_modules/xml2js/node_modules/xmlbuilder/package.json +1 -5
  344. package/node_modules/xml2js/package.json +1 -5
  345. package/package.json +11 -3
  346. package/tsconfig.npm.json +50 -0
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "ws",
3
+ "version": "8.8.1",
4
+ "description": "Simple to use, blazing fast and thoroughly tested websocket client and server for Node.js",
5
+ "keywords": [
6
+ "HyBi",
7
+ "Push",
8
+ "RFC-6455",
9
+ "WebSocket",
10
+ "WebSockets",
11
+ "real-time"
12
+ ],
13
+ "homepage": "https://github.com/websockets/ws",
14
+ "bugs": "https://github.com/websockets/ws/issues",
15
+ "repository": "websockets/ws",
16
+ "author": "Einar Otto Stangvik <einaros@gmail.com> (http://2x.io)",
17
+ "license": "MIT",
18
+ "main": "index.js",
19
+ "exports": {
20
+ "import": "./wrapper.mjs",
21
+ "require": "./index.js"
22
+ },
23
+ "browser": "browser.js",
24
+ "engines": {
25
+ "node": ">=10.0.0"
26
+ },
27
+ "files": [
28
+ "browser.js",
29
+ "index.js",
30
+ "lib/*.js",
31
+ "wrapper.mjs"
32
+ ],
33
+ "scripts": {
34
+ "test": "nyc --reporter=lcov --reporter=text mocha --throw-deprecation test/*.test.js",
35
+ "integration": "mocha --throw-deprecation test/*.integration.js",
36
+ "lint": "eslint --ignore-path .gitignore . && prettier --check --ignore-path .gitignore \"**/*.{json,md,yaml,yml}\""
37
+ },
38
+ "peerDependencies": {
39
+ "bufferutil": "^4.0.1",
40
+ "utf-8-validate": "^5.0.2"
41
+ },
42
+ "peerDependenciesMeta": {
43
+ "bufferutil": {
44
+ "optional": true
45
+ },
46
+ "utf-8-validate": {
47
+ "optional": true
48
+ }
49
+ },
50
+ "devDependencies": {
51
+ "benchmark": "^2.1.4",
52
+ "bufferutil": "^4.0.1",
53
+ "eslint": "^8.0.0",
54
+ "eslint-config-prettier": "^8.1.0",
55
+ "eslint-plugin-prettier": "^4.0.0",
56
+ "mocha": "^8.4.0",
57
+ "nyc": "^15.0.0",
58
+ "prettier": "^2.0.5",
59
+ "utf-8-validate": "^5.0.2"
60
+ }
61
+ }
@@ -0,0 +1,8 @@
1
+ import createWebSocketStream from './lib/stream.js';
2
+ import Receiver from './lib/receiver.js';
3
+ import Sender from './lib/sender.js';
4
+ import WebSocket from './lib/websocket.js';
5
+ import WebSocketServer from './lib/websocket-server.js';
6
+
7
+ export { createWebSocketStream, Receiver, Sender, WebSocket, WebSocketServer };
8
+ export default WebSocket;
package/cli/ws.ts CHANGED
@@ -63,7 +63,7 @@ async function run() {
63
63
  });
64
64
  ws.on('close', () => {
65
65
  console.log(`disconnected ${new Date().toISOString()}`);
66
- fs.close(fileDescriptor);
66
+ fs.close(fileDescriptor, () => undefined);
67
67
  process.exit();
68
68
  });
69
69
 
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs = require("fs");
4
+ const http = require("http");
5
+ const path = require("path");
6
+ const getWebSocketUrl_1 = require("../common/getWebSocketUrl");
7
+ async function run() {
8
+ const cdkExportFileName = '../.spy/cdkExports.json';
9
+ let serverlessSpyWsUrl;
10
+ if (fs.existsSync(cdkExportFileName)) {
11
+ const rawdata = fs.readFileSync(cdkExportFileName);
12
+ const config = JSON.parse(rawdata.toString());
13
+ if (config && config[Object.keys(config)[0]]) {
14
+ // get first ServerlessSpyWsUrl
15
+ // {
16
+ // "my-stack": {
17
+ // "ServerlessSpyWsUrl": "xxx"
18
+ // }
19
+ // }
20
+ serverlessSpyWsUrl = config[Object.keys(config)[0]].ServerlessSpyWsUrl;
21
+ }
22
+ }
23
+ serverlessSpyWsUrl =
24
+ 'wss://preh1xo1xh.execute-api.eu-west-1.amazonaws.com/prod';
25
+ if (!serverlessSpyWsUrl) {
26
+ throw new Error('Missing WS url');
27
+ }
28
+ console.log('serverlessSpyWsUrl', serverlessSpyWsUrl);
29
+ const wsUrl = await (0, getWebSocketUrl_1.getWebSocketUrl)(serverlessSpyWsUrl);
30
+ // source https://developer.mozilla.org/en-US/docs/Learn/Server-side/Node_server_without_framework
31
+ http
32
+ .createServer((request, response) => {
33
+ console.log('request ', request.url);
34
+ let filePath = `.${request.url}`;
35
+ if (filePath === './') {
36
+ filePath = './index.html';
37
+ }
38
+ const extname = String(path.extname(filePath)).toLowerCase();
39
+ const mimeTypes = {
40
+ '.html': 'text/html',
41
+ '.js': 'text/javascript',
42
+ '.css': 'text/css',
43
+ '.json': 'application/json',
44
+ '.png': 'image/png',
45
+ '.jpg': 'image/jpg',
46
+ '.gif': 'image/gif',
47
+ '.svg': 'image/svg+xml',
48
+ '.wav': 'audio/wav',
49
+ '.mp4': 'video/mp4',
50
+ '.woff': 'application/font-woff',
51
+ '.ttf': 'application/font-ttf',
52
+ '.eot': 'application/vnd.ms-fontobject',
53
+ '.otf': 'application/font-otf',
54
+ '.wasm': 'application/wasm',
55
+ };
56
+ const contentType = mimeTypes[extname] || 'application/octet-stream';
57
+ fs.readFile(filePath, (error, content) => {
58
+ if (error) {
59
+ if (error.code === 'ENOENT') {
60
+ fs.readFile('./404.html', (_err, cont) => {
61
+ response.writeHead(404, { 'Content-Type': 'text/html' });
62
+ response.end(cont, 'utf-8');
63
+ });
64
+ }
65
+ else {
66
+ response.writeHead(500);
67
+ response.end(`Sorry, check with the site admin for error: ${error.code} ..\n`);
68
+ }
69
+ }
70
+ else {
71
+ response.writeHead(200, { 'Content-Type': contentType });
72
+ if (request.url === '/serverlessSpy.js') {
73
+ const contentNew = content
74
+ .toString()
75
+ .replace('SERVERLESS_SPY_WS_URL', wsUrl);
76
+ response.end(contentNew, 'utf-8');
77
+ }
78
+ else {
79
+ response.end(content, 'utf-8');
80
+ }
81
+ }
82
+ });
83
+ })
84
+ .listen(8125);
85
+ }
86
+ run().catch(console.error);
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY2xpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsNkJBQTZCO0FBQzdCLCtEQUE0RDtBQUU1RCxLQUFLLFVBQVUsR0FBRztJQUNoQixNQUFNLGlCQUFpQixHQUFHLHlCQUF5QixDQUFDO0lBRXBELElBQUksa0JBQXNDLENBQUM7SUFDM0MsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7UUFDcEMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFOUMsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QywrQkFBK0I7WUFDL0IsSUFBSTtZQUNKLGtCQUFrQjtZQUNsQixrQ0FBa0M7WUFDbEMsTUFBTTtZQUNOLElBQUk7WUFFSixrQkFBa0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1NBQ3hFO0tBQ0Y7SUFFRCxrQkFBa0I7UUFDaEIsMkRBQTJELENBQUM7SUFFOUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQUNuQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUV0RCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUEsaUNBQWUsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXhELGtHQUFrRztJQUNsRyxJQUFJO1NBQ0QsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVyQyxJQUFJLFFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNqQyxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7WUFDckIsUUFBUSxHQUFHLGNBQWMsQ0FBQztTQUMzQjtRQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0QsTUFBTSxTQUFTLEdBQVE7WUFDckIsT0FBTyxFQUFFLFdBQVc7WUFDcEIsS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixNQUFNLEVBQUUsVUFBVTtZQUNsQixPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsTUFBTSxFQUFFLHNCQUFzQjtZQUM5QixNQUFNLEVBQUUsK0JBQStCO1lBQ3ZDLE1BQU0sRUFBRSxzQkFBc0I7WUFDOUIsT0FBTyxFQUFFLGtCQUFrQjtTQUM1QixDQUFDO1FBRUYsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLDBCQUEwQixDQUFDO1FBRXJFLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3ZDLElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7b0JBQzNCLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO3dCQUN2QyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO3dCQUN6RCxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDOUIsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEIsUUFBUSxDQUFDLEdBQUcsQ0FDViwrQ0FBK0MsS0FBSyxDQUFDLElBQUksT0FBTyxDQUNqRSxDQUFDO2lCQUNIO2FBQ0Y7aUJBQU07Z0JBQ0wsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDekQsSUFBSSxPQUFPLENBQUMsR0FBRyxLQUFLLG1CQUFtQixFQUFFO29CQUN2QyxNQUFNLFVBQVUsR0FBRyxPQUFPO3lCQUN2QixRQUFRLEVBQUU7eUJBQ1YsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUMzQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDbkM7cUJBQU07b0JBQ0wsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQ2hDO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBRUQsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgZ2V0V2ViU29ja2V0VXJsIH0gZnJvbSAnLi4vY29tbW9uL2dldFdlYlNvY2tldFVybCc7XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bigpIHtcbiAgY29uc3QgY2RrRXhwb3J0RmlsZU5hbWUgPSAnLi4vLnNweS9jZGtFeHBvcnRzLmpzb24nO1xuXG4gIGxldCBzZXJ2ZXJsZXNzU3B5V3NVcmw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaWYgKGZzLmV4aXN0c1N5bmMoY2RrRXhwb3J0RmlsZU5hbWUpKSB7XG4gICAgY29uc3QgcmF3ZGF0YSA9IGZzLnJlYWRGaWxlU3luYyhjZGtFeHBvcnRGaWxlTmFtZSk7XG4gICAgY29uc3QgY29uZmlnID0gSlNPTi5wYXJzZShyYXdkYXRhLnRvU3RyaW5nKCkpO1xuXG4gICAgaWYgKGNvbmZpZyAmJiBjb25maWdbT2JqZWN0LmtleXMoY29uZmlnKVswXV0pIHtcbiAgICAgIC8vIGdldCBmaXJzdCBTZXJ2ZXJsZXNzU3B5V3NVcmxcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgXCJteS1zdGFja1wiOiB7XG4gICAgICAvLyAgICAgXCJTZXJ2ZXJsZXNzU3B5V3NVcmxcIjogXCJ4eHhcIlxuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG5cbiAgICAgIHNlcnZlcmxlc3NTcHlXc1VybCA9IGNvbmZpZ1tPYmplY3Qua2V5cyhjb25maWcpWzBdXS5TZXJ2ZXJsZXNzU3B5V3NVcmw7XG4gICAgfVxuICB9XG5cbiAgc2VydmVybGVzc1NweVdzVXJsID1cbiAgICAnd3NzOi8vcHJlaDF4bzF4aC5leGVjdXRlLWFwaS5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9wcm9kJztcblxuICBpZiAoIXNlcnZlcmxlc3NTcHlXc1VybCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBXUyB1cmwnKTtcbiAgfVxuXG4gIGNvbnNvbGUubG9nKCdzZXJ2ZXJsZXNzU3B5V3NVcmwnLCBzZXJ2ZXJsZXNzU3B5V3NVcmwpO1xuXG4gIGNvbnN0IHdzVXJsID0gYXdhaXQgZ2V0V2ViU29ja2V0VXJsKHNlcnZlcmxlc3NTcHlXc1VybCk7XG5cbiAgLy8gc291cmNlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvTGVhcm4vU2VydmVyLXNpZGUvTm9kZV9zZXJ2ZXJfd2l0aG91dF9mcmFtZXdvcmtcbiAgaHR0cFxuICAgIC5jcmVhdGVTZXJ2ZXIoKHJlcXVlc3QsIHJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygncmVxdWVzdCAnLCByZXF1ZXN0LnVybCk7XG5cbiAgICAgIGxldCBmaWxlUGF0aCA9IGAuJHtyZXF1ZXN0LnVybH1gO1xuICAgICAgaWYgKGZpbGVQYXRoID09PSAnLi8nKSB7XG4gICAgICAgIGZpbGVQYXRoID0gJy4vaW5kZXguaHRtbCc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV4dG5hbWUgPSBTdHJpbmcocGF0aC5leHRuYW1lKGZpbGVQYXRoKSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IG1pbWVUeXBlczogYW55ID0ge1xuICAgICAgICAnLmh0bWwnOiAndGV4dC9odG1sJyxcbiAgICAgICAgJy5qcyc6ICd0ZXh0L2phdmFzY3JpcHQnLFxuICAgICAgICAnLmNzcyc6ICd0ZXh0L2NzcycsXG4gICAgICAgICcuanNvbic6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJy5wbmcnOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgJy5qcGcnOiAnaW1hZ2UvanBnJyxcbiAgICAgICAgJy5naWYnOiAnaW1hZ2UvZ2lmJyxcbiAgICAgICAgJy5zdmcnOiAnaW1hZ2Uvc3ZnK3htbCcsXG4gICAgICAgICcud2F2JzogJ2F1ZGlvL3dhdicsXG4gICAgICAgICcubXA0JzogJ3ZpZGVvL21wNCcsXG4gICAgICAgICcud29mZic6ICdhcHBsaWNhdGlvbi9mb250LXdvZmYnLFxuICAgICAgICAnLnR0Zic6ICdhcHBsaWNhdGlvbi9mb250LXR0ZicsXG4gICAgICAgICcuZW90JzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0JyxcbiAgICAgICAgJy5vdGYnOiAnYXBwbGljYXRpb24vZm9udC1vdGYnLFxuICAgICAgICAnLndhc20nOiAnYXBwbGljYXRpb24vd2FzbScsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb250ZW50VHlwZSA9IG1pbWVUeXBlc1tleHRuYW1lXSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcblxuICAgICAgZnMucmVhZEZpbGUoZmlsZVBhdGgsIChlcnJvciwgY29udGVudCkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICBpZiAoZXJyb3IuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgICAgICAgIGZzLnJlYWRGaWxlKCcuLzQwNC5odG1sJywgKF9lcnIsIGNvbnQpID0+IHtcbiAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDQwNCwgeyAnQ29udGVudC1UeXBlJzogJ3RleHQvaHRtbCcgfSk7XG4gICAgICAgICAgICAgIHJlc3BvbnNlLmVuZChjb250LCAndXRmLTgnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNwb25zZS53cml0ZUhlYWQoNTAwKTtcbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZChcbiAgICAgICAgICAgICAgYFNvcnJ5LCBjaGVjayB3aXRoIHRoZSBzaXRlIGFkbWluIGZvciBlcnJvcjogJHtlcnJvci5jb2RlfSAuLlxcbmBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3BvbnNlLndyaXRlSGVhZCgyMDAsIHsgJ0NvbnRlbnQtVHlwZSc6IGNvbnRlbnRUeXBlIH0pO1xuICAgICAgICAgIGlmIChyZXF1ZXN0LnVybCA9PT0gJy9zZXJ2ZXJsZXNzU3B5LmpzJykge1xuICAgICAgICAgICAgY29uc3QgY29udGVudE5ldyA9IGNvbnRlbnRcbiAgICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgLnJlcGxhY2UoJ1NFUlZFUkxFU1NfU1BZX1dTX1VSTCcsIHdzVXJsKTtcbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZChjb250ZW50TmV3LCAndXRmLTgnKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzcG9uc2UuZW5kKGNvbnRlbnQsICd1dGYtOCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSlcbiAgICAubGlzdGVuKDgxMjUpO1xufVxuXG5ydW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiJdfQ==
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs = require("fs");
4
+ const readline = require("readline");
5
+ const ws_1 = require("ws");
6
+ const getWebSocketUrl_1 = require("../common/getWebSocketUrl");
7
+ async function run() {
8
+ // var credentialsProvider = awsCp.fromTemporaryCredentials();
9
+ // const credentials = await credentialsProvider();
10
+ // const client = new STSClient({});
11
+ // client.send()
12
+ // const command = new GetSessionTokenCommand({});
13
+ // const { Credentials: credentials } = await client.send(command);
14
+ // //const credentials = s.Credentials;
15
+ // console.log("credentials", credentials);
16
+ // const url = process.argv[2];
17
+ const url = 'wss://preh1xo1xh.execute-api.eu-west-1.amazonaws.com/prod';
18
+ // https://medium.com/@o.bredenberg/iam-sign-your-api-gateway-websocket-connection-request-no-custom-auth-from-your-frontend-65451166757d
19
+ const url2 = await (0, getWebSocketUrl_1.getWebSocketUrl)(url);
20
+ const ws = new ws_1.default(url2);
21
+ const fileDescriptor = fs.openSync('spy_log.json', 'w');
22
+ // 📢📁⚡️💾 💽 💾 💿 📀🛢🪣📑🔊
23
+ ws.on('open', () => console.log(`connected ${new Date().toISOString()}`));
24
+ ws.on('message', (data) => {
25
+ // console.log(`From server: ${data}`);
26
+ let parsed;
27
+ try {
28
+ parsed = JSON.parse(data);
29
+ }
30
+ catch (err) {
31
+ console.error(`Can not parse ${data}`);
32
+ }
33
+ if (parsed) {
34
+ console.log(`\x1b[47m\x1b[34m${parsed.timestamp} \x1b[31m🍕 ${parsed.serviceKey}\x1b[0m\x1b[32m\n${JSON.stringify(parsed.data, null, 2)}\x1b[0m`);
35
+ }
36
+ fs.write(fileDescriptor, data, (error) => {
37
+ if (!error) {
38
+ // fs.close(fileDescriptor);
39
+ }
40
+ else {
41
+ console.error(error);
42
+ }
43
+ });
44
+ fs.write(fileDescriptor, '\n', (error) => {
45
+ if (!error) {
46
+ // fs.close(fileDescriptor);
47
+ }
48
+ else {
49
+ console.error(error);
50
+ }
51
+ });
52
+ });
53
+ ws.on('close', () => {
54
+ console.log(`disconnected ${new Date().toISOString()}`);
55
+ fs.close(fileDescriptor, () => undefined);
56
+ process.exit();
57
+ });
58
+ readline
59
+ .createInterface({
60
+ input: process.stdin,
61
+ output: process.stdout,
62
+ })
63
+ .on('line', (data) => {
64
+ ws.send(data);
65
+ });
66
+ }
67
+ run().catch(console.error);
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jbGkvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5QkFBeUI7QUFDekIscUNBQXFDO0FBQ3JDLDJCQUEyQjtBQUMzQiwrREFBNEQ7QUFFNUQsS0FBSyxVQUFVLEdBQUc7SUFDaEIsOERBQThEO0lBQzlELG1EQUFtRDtJQUVuRCxvQ0FBb0M7SUFDcEMsZ0JBQWdCO0lBRWhCLGtEQUFrRDtJQUNsRCxtRUFBbUU7SUFDbkUsdUNBQXVDO0lBRXZDLDJDQUEyQztJQUUzQywrQkFBK0I7SUFDL0IsTUFBTSxHQUFHLEdBQUcsMkRBQTJELENBQUM7SUFFeEUseUlBQXlJO0lBQ3pJLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxpQ0FBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sRUFBRSxHQUFHLElBQUksWUFBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRS9CLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELCtCQUErQjtJQUUvQixFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRSxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFO1FBQzdCLHVDQUF1QztRQUV2QyxJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUk7WUFDRixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN4QztRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FDVCxtQkFBbUIsTUFBTSxDQUFDLFNBQVMsZUFDakMsTUFBTSxDQUFDLFVBQ1Qsb0JBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FDbEUsQ0FBQztTQUNIO1FBRUQsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDViw0QkFBNEI7YUFDN0I7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDViw0QkFBNEI7YUFDN0I7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEQsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUTtTQUNMLGVBQWUsQ0FBQztRQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztRQUNwQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdkIsQ0FBQztTQUNELEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNuQixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUNELEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyByZWFkbGluZSBmcm9tICdyZWFkbGluZSc7XG5pbXBvcnQgV2ViU29ja2V0IGZyb20gJ3dzJztcbmltcG9ydCB7IGdldFdlYlNvY2tldFVybCB9IGZyb20gJy4uL2NvbW1vbi9nZXRXZWJTb2NrZXRVcmwnO1xuXG5hc3luYyBmdW5jdGlvbiBydW4oKSB7XG4gIC8vIHZhciBjcmVkZW50aWFsc1Byb3ZpZGVyID0gYXdzQ3AuZnJvbVRlbXBvcmFyeUNyZWRlbnRpYWxzKCk7XG4gIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgY3JlZGVudGlhbHNQcm92aWRlcigpO1xuXG4gIC8vIGNvbnN0IGNsaWVudCA9IG5ldyBTVFNDbGllbnQoe30pO1xuICAvLyBjbGllbnQuc2VuZCgpXG5cbiAgLy8gY29uc3QgY29tbWFuZCA9IG5ldyBHZXRTZXNzaW9uVG9rZW5Db21tYW5kKHt9KTtcbiAgLy8gY29uc3QgeyBDcmVkZW50aWFsczogY3JlZGVudGlhbHMgfSA9IGF3YWl0IGNsaWVudC5zZW5kKGNvbW1hbmQpO1xuICAvLyAvL2NvbnN0IGNyZWRlbnRpYWxzID0gcy5DcmVkZW50aWFscztcblxuICAvLyBjb25zb2xlLmxvZyhcImNyZWRlbnRpYWxzXCIsIGNyZWRlbnRpYWxzKTtcblxuICAvLyBjb25zdCB1cmwgPSBwcm9jZXNzLmFyZ3ZbMl07XG4gIGNvbnN0IHVybCA9ICd3c3M6Ly9wcmVoMXhvMXhoLmV4ZWN1dGUtYXBpLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL3Byb2QnO1xuXG4gIC8vIGh0dHBzOi8vbWVkaXVtLmNvbS9Aby5icmVkZW5iZXJnL2lhbS1zaWduLXlvdXItYXBpLWdhdGV3YXktd2Vic29ja2V0LWNvbm5lY3Rpb24tcmVxdWVzdC1uby1jdXN0b20tYXV0aC1mcm9tLXlvdXItZnJvbnRlbmQtNjU0NTExNjY3NTdkXG4gIGNvbnN0IHVybDIgPSBhd2FpdCBnZXRXZWJTb2NrZXRVcmwodXJsKTtcblxuICBjb25zdCB3cyA9IG5ldyBXZWJTb2NrZXQodXJsMik7XG5cbiAgY29uc3QgZmlsZURlc2NyaXB0b3IgPSBmcy5vcGVuU3luYygnc3B5X2xvZy5qc29uJywgJ3cnKTtcbiAgLy8g8J+TovCfk4HimqHvuI/wn5K+IPCfkr0g8J+SviDwn5K/IPCfk4Dwn5ui8J+qo/Cfk5Hwn5SKXG5cbiAgd3Mub24oJ29wZW4nLCAoKSA9PiBjb25zb2xlLmxvZyhgY29ubmVjdGVkICR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWApKTtcbiAgd3Mub24oJ21lc3NhZ2UnLCAoZGF0YTogYW55KSA9PiB7XG4gICAgLy8gY29uc29sZS5sb2coYEZyb20gc2VydmVyOiAke2RhdGF9YCk7XG5cbiAgICBsZXQgcGFyc2VkO1xuICAgIHRyeSB7XG4gICAgICBwYXJzZWQgPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihgQ2FuIG5vdCBwYXJzZSAke2RhdGF9YCk7XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZCkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBcXHgxYls0N21cXHgxYlszNG0ke3BhcnNlZC50aW1lc3RhbXB9IFxceDFiWzMxbfCfjZUgJHtcbiAgICAgICAgICBwYXJzZWQuc2VydmljZUtleVxuICAgICAgICB9XFx4MWJbMG1cXHgxYlszMm1cXG4ke0pTT04uc3RyaW5naWZ5KHBhcnNlZC5kYXRhLCBudWxsLCAyKX1cXHgxYlswbWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZnMud3JpdGUoZmlsZURlc2NyaXB0b3IsIGRhdGEsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAvLyBmcy5jbG9zZShmaWxlRGVzY3JpcHRvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBmcy53cml0ZShmaWxlRGVzY3JpcHRvciwgJ1xcbicsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAvLyBmcy5jbG9zZShmaWxlRGVzY3JpcHRvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIHdzLm9uKCdjbG9zZScsICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgZGlzY29ubmVjdGVkICR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWApO1xuICAgIGZzLmNsb3NlKGZpbGVEZXNjcmlwdG9yLCAoKSA9PiB1bmRlZmluZWQpO1xuICAgIHByb2Nlc3MuZXhpdCgpO1xuICB9KTtcblxuICByZWFkbGluZVxuICAgIC5jcmVhdGVJbnRlcmZhY2Uoe1xuICAgICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXG4gICAgICBvdXRwdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICAgIH0pXG4gICAgLm9uKCdsaW5lJywgKGRhdGEpID0+IHtcbiAgICAgIHdzLnNlbmQoZGF0YSk7XG4gICAgfSk7XG59XG5ydW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ import { Credentials } from '@aws-sdk/types';
2
+ export declare function getWebSocketUrl(url: string, credentials?: Credentials): Promise<string>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getWebSocketUrl = void 0;
4
+ const credential_providers_1 = require("@aws-sdk/credential-providers");
5
+ const aws4 = require("aws4");
6
+ // ""wss://m6g3w6ttdh.execute-api.eu-west-1.amazonaws.com/prod";"
7
+ async function getWebSocketUrl(url, credentials) {
8
+ const urlParsed = parseUrl(url);
9
+ const hostParts = urlParsed.host.split('.');
10
+ console.log('urlParsed', urlParsed);
11
+ if (!credentials) {
12
+ const credentialsProvider = (0, credential_providers_1.fromNodeProviderChain)();
13
+ credentials = await credentialsProvider();
14
+ }
15
+ const AWS_REGION = hostParts[2]; // The region of your API-gateway
16
+ const SOCKET_HOST = hostParts[0]; // Your API-gateway ID
17
+ const ENV = urlParsed.pathname.replace(/^\//, ''); // The stage of your target deployment
18
+ const WEBSOCKET_URL = `${SOCKET_HOST}.execute-api.${AWS_REGION}.amazonaws.com`; // Don't prepend with wss!
19
+ // const AWS_REGION = "eu-west-1"; // The region of your API-gateway
20
+ // const SOCKET_HOST = "m6g3w6ttdh"; // Your API-gateway ID
21
+ // const ENV = "prod"; // The stage of your target deployment
22
+ // const WEBSOCKET_URL = `${SOCKET_HOST}.execute-api.${AWS_REGION}.amazonaws.com`; // Don't prepend with wss!
23
+ // Get a signed path
24
+ const { path } = aws4.sign({
25
+ method: 'GET',
26
+ host: WEBSOCKET_URL,
27
+ // path: `/${ENV}?X-Amz-Security-Token=${encodeURIComponent(
28
+ // credentials!.SessionToken!
29
+ // )}`,
30
+ path: `/${ENV}`,
31
+ service: 'execute-api',
32
+ region: AWS_REGION,
33
+ signQuery: true,
34
+ }, {
35
+ accessKeyId: credentials.accessKeyId,
36
+ secretAccessKey: credentials.secretAccessKey,
37
+ sessionToken: credentials.sessionToken,
38
+ });
39
+ const url2 = `wss://${WEBSOCKET_URL}${path}`;
40
+ console.log('path', url2);
41
+ return url2;
42
+ }
43
+ exports.getWebSocketUrl = getWebSocketUrl;
44
+ function parseUrl(href) {
45
+ const match = href.match(/^(wss?:)\/\/(([^:/?#]*)(?::([0-9]+))?)([/]{0,1}[^?#]*)(\?[^#]*|)(#.*|)$/);
46
+ return (match && {
47
+ href,
48
+ protocol: match[1],
49
+ host: match[2],
50
+ hostname: match[3],
51
+ port: match[4],
52
+ pathname: match[5],
53
+ search: match[6],
54
+ hash: match[7],
55
+ });
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0V2ViU29ja2V0VXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29tbW9uL2dldFdlYlNvY2tldFVybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3RUFBc0U7QUFFdEUsNkJBQTZCO0FBRTdCLGlFQUFpRTtBQUUxRCxLQUFLLFVBQVUsZUFBZSxDQUFDLEdBQVcsRUFBRSxXQUF5QjtJQUMxRSxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsTUFBTSxTQUFTLEdBQUcsU0FBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFcEMsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNoQixNQUFNLG1CQUFtQixHQUFHLElBQUEsNENBQXFCLEdBQUUsQ0FBQztRQUNwRCxXQUFXLEdBQUcsTUFBTSxtQkFBbUIsRUFBRSxDQUFDO0tBQzNDO0lBRUQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQWlDO0lBQ2xFLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtJQUN4RCxNQUFNLEdBQUcsR0FBRyxTQUFVLENBQUMsUUFBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxzQ0FBc0M7SUFDM0YsTUFBTSxhQUFhLEdBQUcsR0FBRyxXQUFXLGdCQUFnQixVQUFVLGdCQUFnQixDQUFDLENBQUMsMEJBQTBCO0lBQzFHLG9FQUFvRTtJQUNwRSwyREFBMkQ7SUFDM0QsNkRBQTZEO0lBQzdELDZHQUE2RztJQUU3RyxvQkFBb0I7SUFDcEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQ3hCO1FBQ0UsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUsYUFBYTtRQUNuQiw0REFBNEQ7UUFDNUQsK0JBQStCO1FBQy9CLE9BQU87UUFDUCxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDZixPQUFPLEVBQUUsYUFBYTtRQUN0QixNQUFNLEVBQUUsVUFBVTtRQUNsQixTQUFTLEVBQUUsSUFBSTtLQUNoQixFQUNEO1FBQ0UsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXO1FBQ3BDLGVBQWUsRUFBRSxXQUFXLENBQUMsZUFBZTtRQUM1QyxZQUFZLEVBQUUsV0FBVyxDQUFDLFlBQVk7S0FDdkMsQ0FDRixDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUcsU0FBUyxhQUFhLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUIsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBM0NELDBDQTJDQztBQUVELFNBQVMsUUFBUSxDQUFDLElBQVk7SUFDNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDdEIseUVBQXlFLENBQzFFLENBQUM7SUFDRixPQUFPLENBQ0wsS0FBSyxJQUFJO1FBQ1AsSUFBSTtRQUNKLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2QsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDZCxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsQixNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNoQixJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUNmLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tTm9kZVByb3ZpZGVyQ2hhaW4gfSBmcm9tICdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBDcmVkZW50aWFscyB9IGZyb20gJ0Bhd3Mtc2RrL3R5cGVzJztcbmltcG9ydCAqIGFzIGF3czQgZnJvbSAnYXdzNCc7XG5cbi8vIFwiXCJ3c3M6Ly9tNmczdzZ0dGRoLmV4ZWN1dGUtYXBpLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL3Byb2RcIjtcIlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0V2ViU29ja2V0VXJsKHVybDogc3RyaW5nLCBjcmVkZW50aWFscz86IENyZWRlbnRpYWxzKSB7XG4gIGNvbnN0IHVybFBhcnNlZCA9IHBhcnNlVXJsKHVybCk7XG4gIGNvbnN0IGhvc3RQYXJ0cyA9IHVybFBhcnNlZCEuaG9zdC5zcGxpdCgnLicpO1xuXG4gIGNvbnNvbGUubG9nKCd1cmxQYXJzZWQnLCB1cmxQYXJzZWQpO1xuXG4gIGlmICghY3JlZGVudGlhbHMpIHtcbiAgICBjb25zdCBjcmVkZW50aWFsc1Byb3ZpZGVyID0gZnJvbU5vZGVQcm92aWRlckNoYWluKCk7XG4gICAgY3JlZGVudGlhbHMgPSBhd2FpdCBjcmVkZW50aWFsc1Byb3ZpZGVyKCk7XG4gIH1cblxuICBjb25zdCBBV1NfUkVHSU9OID0gaG9zdFBhcnRzWzJdOyAvLyBUaGUgcmVnaW9uIG9mIHlvdXIgQVBJLWdhdGV3YXlcbiAgY29uc3QgU09DS0VUX0hPU1QgPSBob3N0UGFydHNbMF07IC8vIFlvdXIgQVBJLWdhdGV3YXkgSURcbiAgY29uc3QgRU5WID0gdXJsUGFyc2VkIS5wYXRobmFtZSEucmVwbGFjZSgvXlxcLy8sICcnKTsgLy8gVGhlIHN0YWdlIG9mIHlvdXIgdGFyZ2V0IGRlcGxveW1lbnRcbiAgY29uc3QgV0VCU09DS0VUX1VSTCA9IGAke1NPQ0tFVF9IT1NUfS5leGVjdXRlLWFwaS4ke0FXU19SRUdJT059LmFtYXpvbmF3cy5jb21gOyAvLyBEb24ndCBwcmVwZW5kIHdpdGggd3NzIVxuICAvLyBjb25zdCBBV1NfUkVHSU9OID0gXCJldS13ZXN0LTFcIjsgLy8gVGhlIHJlZ2lvbiBvZiB5b3VyIEFQSS1nYXRld2F5XG4gIC8vIGNvbnN0IFNPQ0tFVF9IT1NUID0gXCJtNmczdzZ0dGRoXCI7IC8vIFlvdXIgQVBJLWdhdGV3YXkgSURcbiAgLy8gY29uc3QgRU5WID0gXCJwcm9kXCI7IC8vIFRoZSBzdGFnZSBvZiB5b3VyIHRhcmdldCBkZXBsb3ltZW50XG4gIC8vIGNvbnN0IFdFQlNPQ0tFVF9VUkwgPSBgJHtTT0NLRVRfSE9TVH0uZXhlY3V0ZS1hcGkuJHtBV1NfUkVHSU9OfS5hbWF6b25hd3MuY29tYDsgLy8gRG9uJ3QgcHJlcGVuZCB3aXRoIHdzcyFcblxuICAvLyBHZXQgYSBzaWduZWQgcGF0aFxuICBjb25zdCB7IHBhdGggfSA9IGF3czQuc2lnbihcbiAgICB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgaG9zdDogV0VCU09DS0VUX1VSTCxcbiAgICAgIC8vIHBhdGg6IGAvJHtFTlZ9P1gtQW16LVNlY3VyaXR5LVRva2VuPSR7ZW5jb2RlVVJJQ29tcG9uZW50KFxuICAgICAgLy8gICBjcmVkZW50aWFscyEuU2Vzc2lvblRva2VuIVxuICAgICAgLy8gKX1gLFxuICAgICAgcGF0aDogYC8ke0VOVn1gLFxuICAgICAgc2VydmljZTogJ2V4ZWN1dGUtYXBpJyxcbiAgICAgIHJlZ2lvbjogQVdTX1JFR0lPTixcbiAgICAgIHNpZ25RdWVyeTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGFjY2Vzc0tleUlkOiBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZCxcbiAgICAgIHNlY3JldEFjY2Vzc0tleTogY3JlZGVudGlhbHMuc2VjcmV0QWNjZXNzS2V5LFxuICAgICAgc2Vzc2lvblRva2VuOiBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4sXG4gICAgfVxuICApO1xuXG4gIGNvbnN0IHVybDIgPSBgd3NzOi8vJHtXRUJTT0NLRVRfVVJMfSR7cGF0aH1gO1xuICBjb25zb2xlLmxvZygncGF0aCcsIHVybDIpO1xuICByZXR1cm4gdXJsMjtcbn1cblxuZnVuY3Rpb24gcGFyc2VVcmwoaHJlZjogc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoID0gaHJlZi5tYXRjaChcbiAgICAvXih3c3M/OilcXC9cXC8oKFteOi8/I10qKSg/OjooWzAtOV0rKSk/KShbL117MCwxfVtePyNdKikoXFw/W14jXSp8KSgjLip8KSQvXG4gICk7XG4gIHJldHVybiAoXG4gICAgbWF0Y2ggJiYge1xuICAgICAgaHJlZixcbiAgICAgIHByb3RvY29sOiBtYXRjaFsxXSxcbiAgICAgIGhvc3Q6IG1hdGNoWzJdLFxuICAgICAgaG9zdG5hbWU6IG1hdGNoWzNdLFxuICAgICAgcG9ydDogbWF0Y2hbNF0sXG4gICAgICBwYXRobmFtZTogbWF0Y2hbNV0sXG4gICAgICBzZWFyY2g6IG1hdGNoWzZdLFxuICAgICAgaGFzaDogbWF0Y2hbN10sXG4gICAgfVxuICApO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './src/ServerlessSpy';
2
+ export * from './listener';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./src/ServerlessSpy"), exports);
18
+ __exportStar(require("./listener"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQW9DO0FBQ3BDLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL1NlcnZlcmxlc3NTcHknO1xuZXhwb3J0ICogZnJvbSAnLi9saXN0ZW5lcic7XG4iXX0=
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# 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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# 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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# 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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# 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 {};