serverless-spy 0.0.9 → 0.0.12

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 (374) 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/cli/cli.d.ts +1 -0
  24. package/lib/cli/cli.js +87 -0
  25. package/lib/cli/cli.mjs +85 -0
  26. package/lib/cli/ws.d.ts +1 -0
  27. package/lib/cli/ws.js +68 -0
  28. package/lib/cli/ws.mjs +66 -0
  29. package/lib/common/getWebSocketUrl.d.ts +2 -0
  30. package/lib/common/getWebSocketUrl.js +57 -0
  31. package/lib/common/getWebSocketUrl.mjs +53 -0
  32. package/lib/common/spyEvents/DynamoDBSpyEvent.d.ts +10 -0
  33. package/lib/common/spyEvents/DynamoDBSpyEvent.js +3 -0
  34. package/lib/common/spyEvents/DynamoDBSpyEvent.mjs +2 -0
  35. package/lib/common/spyEvents/EventBridgeRuleSpyEvent.d.ts +9 -0
  36. package/lib/common/spyEvents/EventBridgeRuleSpyEvent.js +3 -0
  37. package/lib/common/spyEvents/EventBridgeRuleSpyEvent.mjs +2 -0
  38. package/lib/common/spyEvents/EventBridgeSpyEvent.d.ts +9 -0
  39. package/lib/common/spyEvents/EventBridgeSpyEvent.js +3 -0
  40. package/lib/common/spyEvents/EventBridgeSpyEvent.mjs +2 -0
  41. package/lib/common/spyEvents/FunctionConsoleSpyEvent.d.ts +10 -0
  42. package/lib/common/spyEvents/FunctionConsoleSpyEvent.js +3 -0
  43. package/lib/common/spyEvents/FunctionConsoleSpyEvent.mjs +2 -0
  44. package/lib/common/spyEvents/FunctionContext.d.ts +7 -0
  45. package/lib/common/spyEvents/FunctionContext.js +3 -0
  46. package/lib/common/spyEvents/FunctionContext.mjs +2 -0
  47. package/lib/common/spyEvents/FunctionErrorSpyEvent.d.ts +8 -0
  48. package/lib/common/spyEvents/FunctionErrorSpyEvent.js +3 -0
  49. package/lib/common/spyEvents/FunctionErrorSpyEvent.mjs +2 -0
  50. package/lib/common/spyEvents/FunctionRequestSpyEvent.d.ts +7 -0
  51. package/lib/common/spyEvents/FunctionRequestSpyEvent.js +3 -0
  52. package/lib/common/spyEvents/FunctionRequestSpyEvent.mjs +2 -0
  53. package/lib/common/spyEvents/FunctionResponseSpyEvent.d.ts +8 -0
  54. package/lib/common/spyEvents/FunctionResponseSpyEvent.js +3 -0
  55. package/lib/common/spyEvents/FunctionResponseSpyEvent.mjs +2 -0
  56. package/lib/common/spyEvents/S3SpyEvent.d.ts +8 -0
  57. package/lib/common/spyEvents/S3SpyEvent.js +3 -0
  58. package/lib/common/spyEvents/S3SpyEvent.mjs +2 -0
  59. package/lib/common/spyEvents/SnsSubscriptionSpyEvent.d.ts +11 -0
  60. package/lib/common/spyEvents/SnsSubscriptionSpyEvent.js +3 -0
  61. package/lib/common/spyEvents/SnsSubscriptionSpyEvent.mjs +2 -0
  62. package/lib/common/spyEvents/SnsTopicSpyEvent.d.ts +11 -0
  63. package/lib/common/spyEvents/SnsTopicSpyEvent.js +3 -0
  64. package/lib/common/spyEvents/SnsTopicSpyEvent.mjs +2 -0
  65. package/lib/common/spyEvents/SpyEvent.d.ts +3 -0
  66. package/lib/common/spyEvents/SpyEvent.js +3 -0
  67. package/lib/common/spyEvents/SpyEvent.mjs +2 -0
  68. package/lib/common/spyEvents/SpyMessage.d.ts +6 -0
  69. package/lib/common/spyEvents/SpyMessage.js +3 -0
  70. package/lib/common/spyEvents/SpyMessage.mjs +2 -0
  71. package/lib/common/spyEvents/SqsSpyEvent.d.ts +7 -0
  72. package/lib/common/spyEvents/SqsSpyEvent.js +3 -0
  73. package/lib/common/spyEvents/SqsSpyEvent.mjs +2 -0
  74. package/lib/index.d.ts +2 -1
  75. package/lib/index.js +9 -4
  76. package/lib/index.mjs +3 -0
  77. package/lib/listener/PrettifyForDisplay.d.ts +3 -0
  78. package/lib/listener/PrettifyForDisplay.js +3 -0
  79. package/lib/listener/PrettifyForDisplay.mjs +2 -0
  80. package/lib/listener/RecursivePartial.d.ts +4 -0
  81. package/lib/listener/RecursivePartial.js +3 -0
  82. package/lib/listener/RecursivePartial.mjs +2 -0
  83. package/lib/listener/SpyHandlers.ts.d.ts +109 -0
  84. package/lib/listener/SpyHandlers.ts.js +3 -0
  85. package/lib/listener/SpyHandlers.ts.mjs +2 -0
  86. package/lib/listener/SpyListener.d.ts +40 -0
  87. package/lib/listener/SpyListener.js +3 -0
  88. package/lib/listener/SpyListener.mjs +2 -0
  89. package/lib/listener/createServerlessSpyListener.d.ts +13 -0
  90. package/lib/listener/createServerlessSpyListener.js +167 -0
  91. package/lib/listener/createServerlessSpyListener.mjs +163 -0
  92. package/lib/listener/index.d.ts +2 -0
  93. package/lib/listener/index.js +19 -0
  94. package/lib/listener/index.mjs +3 -0
  95. package/lib/listener/matchers.d.ts +0 -0
  96. package/lib/listener/matchers.js +55 -0
  97. package/lib/listener/matchers.mjs +55 -0
  98. package/lib/listener/setup.d.ts +0 -0
  99. package/lib/listener/setup.js +21 -0
  100. package/lib/listener/setup.mjs +21 -0
  101. package/lib/{ServerlessSpy.d.ts → src/ServerlessSpy.d.ts} +0 -0
  102. package/lib/{ServerlessSpy.js → src/ServerlessSpy.js} +1 -1
  103. package/lib/src/ServerlessSpy.mjs +293 -0
  104. package/lib/src/index.d.ts +1 -0
  105. package/lib/src/index.js +14 -0
  106. package/lib/src/index.mjs +2 -0
  107. package/listener/node_modules/ws/LICENSE +19 -0
  108. package/listener/node_modules/ws/README.md +495 -0
  109. package/listener/node_modules/ws/browser.js +8 -0
  110. package/listener/node_modules/ws/index.js +13 -0
  111. package/listener/node_modules/ws/lib/buffer-util.js +127 -0
  112. package/listener/node_modules/ws/lib/constants.js +12 -0
  113. package/listener/node_modules/ws/lib/event-target.js +266 -0
  114. package/listener/node_modules/ws/lib/extension.js +203 -0
  115. package/listener/node_modules/ws/lib/limiter.js +55 -0
  116. package/listener/node_modules/ws/lib/permessage-deflate.js +511 -0
  117. package/listener/node_modules/ws/lib/receiver.js +618 -0
  118. package/listener/node_modules/ws/lib/sender.js +478 -0
  119. package/listener/node_modules/ws/lib/stream.js +159 -0
  120. package/listener/node_modules/ws/lib/subprotocol.js +62 -0
  121. package/listener/node_modules/ws/lib/validation.js +125 -0
  122. package/listener/node_modules/ws/lib/websocket-server.js +535 -0
  123. package/listener/node_modules/ws/lib/websocket.js +1305 -0
  124. package/listener/node_modules/ws/package.json +61 -0
  125. package/listener/node_modules/ws/wrapper.mjs +8 -0
  126. package/node_modules/@aws-crypto/crc32/node_modules/tslib/package.json +1 -5
  127. package/node_modules/@aws-crypto/crc32/package.json +1 -5
  128. package/node_modules/@aws-crypto/crc32c/node_modules/tslib/package.json +1 -5
  129. package/node_modules/@aws-crypto/crc32c/package.json +1 -5
  130. package/node_modules/@aws-crypto/ie11-detection/node_modules/tslib/package.json +1 -5
  131. package/node_modules/@aws-crypto/ie11-detection/package.json +1 -5
  132. package/node_modules/@aws-crypto/sha1-browser/node_modules/tslib/package.json +1 -5
  133. package/node_modules/@aws-crypto/sha1-browser/package.json +1 -5
  134. package/node_modules/@aws-crypto/sha256-browser/node_modules/tslib/package.json +1 -5
  135. package/node_modules/@aws-crypto/sha256-browser/package.json +1 -5
  136. package/node_modules/@aws-crypto/sha256-js/node_modules/tslib/package.json +1 -5
  137. package/node_modules/@aws-crypto/sha256-js/package.json +1 -5
  138. package/node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib/package.json +1 -5
  139. package/node_modules/@aws-crypto/supports-web-crypto/package.json +1 -5
  140. package/node_modules/@aws-crypto/util/node_modules/tslib/package.json +1 -5
  141. package/node_modules/@aws-crypto/util/package.json +1 -5
  142. package/node_modules/@aws-sdk/abort-controller/package.json +1 -5
  143. package/node_modules/@aws-sdk/chunked-blob-reader/package.json +1 -5
  144. package/node_modules/@aws-sdk/chunked-blob-reader-native/package.json +1 -5
  145. package/node_modules/@aws-sdk/client-apigatewaymanagementapi/package.json +1 -5
  146. package/node_modules/@aws-sdk/client-cognito-identity/package.json +1 -5
  147. package/node_modules/@aws-sdk/client-dynamodb/package.json +1 -5
  148. package/node_modules/@aws-sdk/client-eventbridge/package.json +1 -5
  149. package/node_modules/@aws-sdk/client-lambda/package.json +1 -5
  150. package/node_modules/@aws-sdk/client-s3/node_modules/entities/package.json +1 -5
  151. package/node_modules/@aws-sdk/client-s3/package.json +1 -5
  152. package/node_modules/@aws-sdk/client-sns/node_modules/entities/package.json +1 -5
  153. package/node_modules/@aws-sdk/client-sns/package.json +1 -5
  154. package/node_modules/@aws-sdk/client-sqs/node_modules/entities/package.json +1 -5
  155. package/node_modules/@aws-sdk/client-sqs/package.json +1 -5
  156. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/abort-controller/package.json +1 -5
  157. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/client-sso/package.json +1 -5
  158. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/client-sts/package.json +1 -5
  159. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/config-resolver/package.json +1 -5
  160. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-env/package.json +1 -5
  161. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-imds/package.json +1 -5
  162. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-ini/package.json +1 -5
  163. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-node/package.json +1 -5
  164. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-process/package.json +1 -5
  165. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-sso/package.json +1 -5
  166. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/credential-provider-web-identity/package.json +1 -5
  167. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/fetch-http-handler/package.json +1 -5
  168. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/hash-node/package.json +1 -5
  169. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/invalid-dependency/package.json +1 -5
  170. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/is-array-buffer/package.json +1 -5
  171. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-content-length/package.json +1 -5
  172. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-host-header/package.json +1 -5
  173. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-logger/package.json +1 -5
  174. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-retry/package.json +1 -5
  175. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-sdk-sts/package.json +1 -5
  176. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-serde/package.json +1 -5
  177. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-signing/package.json +1 -5
  178. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-stack/package.json +1 -5
  179. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/middleware-user-agent/package.json +1 -5
  180. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/node-config-provider/package.json +1 -5
  181. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/node-http-handler/package.json +1 -5
  182. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/property-provider/package.json +1 -5
  183. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/protocol-http/package.json +1 -5
  184. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/querystring-builder/package.json +1 -5
  185. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/querystring-parser/package.json +1 -5
  186. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/service-error-classification/package.json +1 -5
  187. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/shared-ini-file-loader/package.json +1 -5
  188. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/signature-v4/package.json +1 -5
  189. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/smithy-client/package.json +1 -5
  190. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/types/package.json +1 -5
  191. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/url-parser/package.json +1 -5
  192. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-base64-browser/package.json +1 -5
  193. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-base64-node/package.json +1 -5
  194. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-body-length-browser/package.json +1 -5
  195. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-body-length-node/package.json +1 -5
  196. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-buffer-from/package.json +1 -5
  197. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-config-provider/package.json +1 -5
  198. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-hex-encoding/package.json +1 -5
  199. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-uri-escape/package.json +1 -5
  200. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-user-agent-browser/package.json +1 -5
  201. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-user-agent-node/package.json +1 -5
  202. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-utf8-browser/package.json +1 -5
  203. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-utf8-node/package.json +1 -5
  204. package/node_modules/@aws-sdk/client-ssm/node_modules/@aws-sdk/util-waiter/package.json +1 -5
  205. package/node_modules/@aws-sdk/client-ssm/node_modules/entities/package.json +1 -5
  206. package/node_modules/@aws-sdk/client-ssm/package.json +1 -5
  207. package/node_modules/@aws-sdk/client-sso/package.json +1 -5
  208. package/node_modules/@aws-sdk/client-sts/node_modules/entities/package.json +1 -5
  209. package/node_modules/@aws-sdk/client-sts/package.json +1 -5
  210. package/node_modules/@aws-sdk/config-resolver/package.json +1 -5
  211. package/node_modules/@aws-sdk/credential-provider-cognito-identity/package.json +1 -5
  212. package/node_modules/@aws-sdk/credential-provider-env/package.json +1 -5
  213. package/node_modules/@aws-sdk/credential-provider-imds/package.json +1 -5
  214. package/node_modules/@aws-sdk/credential-provider-ini/package.json +1 -5
  215. package/node_modules/@aws-sdk/credential-provider-node/package.json +1 -5
  216. package/node_modules/@aws-sdk/credential-provider-process/package.json +1 -5
  217. package/node_modules/@aws-sdk/credential-provider-sso/package.json +1 -5
  218. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +1 -5
  219. package/node_modules/@aws-sdk/credential-providers/package.json +1 -5
  220. package/node_modules/@aws-sdk/endpoint-cache/package.json +1 -5
  221. package/node_modules/@aws-sdk/eventstream-codec/package.json +1 -5
  222. package/node_modules/@aws-sdk/eventstream-serde-browser/package.json +1 -5
  223. package/node_modules/@aws-sdk/eventstream-serde-config-resolver/package.json +1 -5
  224. package/node_modules/@aws-sdk/eventstream-serde-node/package.json +1 -5
  225. package/node_modules/@aws-sdk/eventstream-serde-universal/package.json +1 -5
  226. package/node_modules/@aws-sdk/fetch-http-handler/package.json +1 -5
  227. package/node_modules/@aws-sdk/hash-blob-browser/package.json +1 -5
  228. package/node_modules/@aws-sdk/hash-node/package.json +1 -5
  229. package/node_modules/@aws-sdk/hash-stream-node/package.json +1 -5
  230. package/node_modules/@aws-sdk/invalid-dependency/package.json +1 -5
  231. package/node_modules/@aws-sdk/is-array-buffer/package.json +1 -5
  232. package/node_modules/@aws-sdk/lib-dynamodb/package.json +1 -5
  233. package/node_modules/@aws-sdk/md5-js/package.json +1 -5
  234. package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +1 -5
  235. package/node_modules/@aws-sdk/middleware-content-length/package.json +1 -5
  236. package/node_modules/@aws-sdk/middleware-endpoint-discovery/package.json +1 -5
  237. package/node_modules/@aws-sdk/middleware-expect-continue/package.json +1 -5
  238. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +1 -5
  239. package/node_modules/@aws-sdk/middleware-host-header/package.json +1 -5
  240. package/node_modules/@aws-sdk/middleware-location-constraint/package.json +1 -5
  241. package/node_modules/@aws-sdk/middleware-logger/package.json +1 -5
  242. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +1 -5
  243. package/node_modules/@aws-sdk/middleware-retry/package.json +1 -5
  244. package/node_modules/@aws-sdk/middleware-sdk-eventbridge/package.json +1 -5
  245. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +1 -5
  246. package/node_modules/@aws-sdk/middleware-sdk-sqs/package.json +1 -5
  247. package/node_modules/@aws-sdk/middleware-sdk-sts/package.json +1 -5
  248. package/node_modules/@aws-sdk/middleware-serde/package.json +1 -5
  249. package/node_modules/@aws-sdk/middleware-signing/package.json +1 -5
  250. package/node_modules/@aws-sdk/middleware-ssec/package.json +1 -5
  251. package/node_modules/@aws-sdk/middleware-stack/package.json +1 -5
  252. package/node_modules/@aws-sdk/middleware-user-agent/package.json +1 -5
  253. package/node_modules/@aws-sdk/node-config-provider/package.json +1 -5
  254. package/node_modules/@aws-sdk/node-http-handler/package.json +1 -5
  255. package/node_modules/@aws-sdk/property-provider/package.json +1 -5
  256. package/node_modules/@aws-sdk/protocol-http/package.json +1 -5
  257. package/node_modules/@aws-sdk/querystring-builder/package.json +1 -5
  258. package/node_modules/@aws-sdk/querystring-parser/package.json +1 -5
  259. package/node_modules/@aws-sdk/service-error-classification/package.json +1 -5
  260. package/node_modules/@aws-sdk/shared-ini-file-loader/package.json +1 -5
  261. package/node_modules/@aws-sdk/signature-v4/package.json +1 -5
  262. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +1 -5
  263. package/node_modules/@aws-sdk/smithy-client/package.json +1 -5
  264. package/node_modules/@aws-sdk/types/package.json +1 -5
  265. package/node_modules/@aws-sdk/url-parser/package.json +1 -5
  266. package/node_modules/@aws-sdk/util-arn-parser/package.json +1 -5
  267. package/node_modules/@aws-sdk/util-base64-browser/package.json +1 -5
  268. package/node_modules/@aws-sdk/util-base64-node/package.json +1 -5
  269. package/node_modules/@aws-sdk/util-body-length-browser/package.json +1 -5
  270. package/node_modules/@aws-sdk/util-body-length-node/package.json +1 -5
  271. package/node_modules/@aws-sdk/util-buffer-from/package.json +1 -5
  272. package/node_modules/@aws-sdk/util-config-provider/package.json +1 -5
  273. package/node_modules/@aws-sdk/util-credentials/node_modules/@aws-sdk/shared-ini-file-loader/package.json +1 -5
  274. package/node_modules/@aws-sdk/util-credentials/package.json +1 -5
  275. package/node_modules/@aws-sdk/util-defaults-mode-browser/package.json +1 -5
  276. package/node_modules/@aws-sdk/util-defaults-mode-node/package.json +1 -5
  277. package/node_modules/@aws-sdk/util-dynamodb/package.json +1 -5
  278. package/node_modules/@aws-sdk/util-hex-encoding/package.json +1 -5
  279. package/node_modules/@aws-sdk/util-locate-window/package.json +1 -5
  280. package/node_modules/@aws-sdk/util-middleware/package.json +1 -5
  281. package/node_modules/@aws-sdk/util-stream-browser/package.json +1 -5
  282. package/node_modules/@aws-sdk/util-stream-node/package.json +1 -5
  283. package/node_modules/@aws-sdk/util-uri-escape/package.json +1 -5
  284. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +1 -5
  285. package/node_modules/@aws-sdk/util-user-agent-node/package.json +1 -5
  286. package/node_modules/@aws-sdk/util-utf8-browser/package.json +1 -5
  287. package/node_modules/@aws-sdk/util-utf8-node/package.json +1 -5
  288. package/node_modules/@aws-sdk/util-waiter/package.json +1 -5
  289. package/node_modules/@aws-sdk/xml-builder/package.json +1 -5
  290. package/node_modules/@graphql-tools/merge/package.json +0 -4
  291. package/node_modules/@graphql-tools/schema/package.json +0 -4
  292. package/node_modules/@graphql-tools/utils/package.json +0 -4
  293. package/node_modules/@serverless-stack/node/package.json +1 -5
  294. package/node_modules/@tsconfig/node14/package.json +1 -5
  295. package/node_modules/available-typed-arrays/package.json +1 -5
  296. package/node_modules/aws-jwt-verify/package.json +1 -5
  297. package/node_modules/aws-lambda/node_modules/argparse/package.json +1 -5
  298. package/node_modules/aws-lambda/node_modules/commander/package.json +1 -5
  299. package/node_modules/aws-lambda/node_modules/js-yaml/package.json +1 -5
  300. package/node_modules/aws-lambda/package.json +1 -5
  301. package/node_modules/aws-sdk/node_modules/uuid/package.json +1 -5
  302. package/node_modules/aws-sdk/package.json +0 -4
  303. package/node_modules/aws4/package.json +1 -5
  304. package/node_modules/base64-js/package.json +1 -5
  305. package/node_modules/bowser/package.json +1 -5
  306. package/node_modules/buffer/package.json +1 -5
  307. package/node_modules/call-bind/package.json +1 -5
  308. package/node_modules/define-properties/package.json +1 -5
  309. package/node_modules/es-abstract/package.json +1 -5
  310. package/node_modules/es-to-primitive/package.json +1 -5
  311. package/node_modules/esprima/package.json +1 -5
  312. package/node_modules/events/package.json +0 -4
  313. package/node_modules/fast-xml-parser/package.json +1 -5
  314. package/node_modules/for-each/package.json +1 -5
  315. package/node_modules/function-bind/package.json +1 -5
  316. package/node_modules/function.prototype.name/package.json +1 -5
  317. package/node_modules/functions-have-names/package.json +1 -5
  318. package/node_modules/get-intrinsic/package.json +1 -5
  319. package/node_modules/get-symbol-description/package.json +1 -5
  320. package/node_modules/glob-to-regexp/package.json +1 -5
  321. package/node_modules/graceful-fs/package.json +1 -5
  322. package/node_modules/graphql/package.json +1 -5
  323. package/node_modules/graphql-helix/package.json +1 -5
  324. package/node_modules/has/package.json +1 -5
  325. package/node_modules/has-bigints/package.json +1 -5
  326. package/node_modules/has-property-descriptors/package.json +1 -5
  327. package/node_modules/has-symbols/package.json +1 -5
  328. package/node_modules/has-tostringtag/package.json +1 -5
  329. package/node_modules/ieee754/package.json +1 -5
  330. package/node_modules/inherits/package.json +1 -5
  331. package/node_modules/internal-slot/package.json +1 -5
  332. package/node_modules/is-arguments/package.json +1 -5
  333. package/node_modules/is-bigint/package.json +1 -5
  334. package/node_modules/is-boolean-object/package.json +1 -5
  335. package/node_modules/is-callable/package.json +1 -5
  336. package/node_modules/is-date-object/package.json +1 -5
  337. package/node_modules/is-generator-function/package.json +1 -5
  338. package/node_modules/is-negative-zero/package.json +1 -5
  339. package/node_modules/is-number-object/package.json +1 -5
  340. package/node_modules/is-regex/package.json +1 -5
  341. package/node_modules/is-shared-array-buffer/package.json +1 -5
  342. package/node_modules/is-string/package.json +1 -5
  343. package/node_modules/is-symbol/package.json +1 -5
  344. package/node_modules/is-typed-array/package.json +1 -5
  345. package/node_modules/is-weakref/package.json +1 -5
  346. package/node_modules/isarray/package.json +1 -5
  347. package/node_modules/jmespath/package.json +1 -5
  348. package/node_modules/mnemonist/package.json +1 -5
  349. package/node_modules/object-inspect/package.json +1 -5
  350. package/node_modules/object-keys/package.json +1 -5
  351. package/node_modules/object.assign/package.json +1 -5
  352. package/node_modules/obliterator/package.json +1 -5
  353. package/node_modules/querystring/package.json +1 -5
  354. package/node_modules/regexp.prototype.flags/package.json +1 -5
  355. package/node_modules/safe-buffer/package.json +1 -5
  356. package/node_modules/sax/package.json +1 -5
  357. package/node_modules/side-channel/package.json +1 -5
  358. package/node_modules/sprintf-js/package.json +1 -5
  359. package/node_modules/string.prototype.trimend/package.json +1 -5
  360. package/node_modules/string.prototype.trimstart/package.json +1 -5
  361. package/node_modules/tslib/package.json +1 -5
  362. package/node_modules/unbox-primitive/package.json +1 -5
  363. package/node_modules/url/node_modules/punycode/package.json +1 -5
  364. package/node_modules/url/package.json +1 -5
  365. package/node_modules/util/package.json +1 -5
  366. package/node_modules/uuid/package.json +1 -5
  367. package/node_modules/value-or-promise/package.json +1 -5
  368. package/node_modules/watchpack/package.json +1 -5
  369. package/node_modules/which-boxed-primitive/package.json +1 -5
  370. package/node_modules/which-typed-array/package.json +1 -5
  371. package/node_modules/xml2js/node_modules/xmlbuilder/package.json +1 -5
  372. package/node_modules/xml2js/package.json +1 -5
  373. package/package.json +10 -2
  374. package/tsconfig.npm.json +51 -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 {};
package/lib/cli/cli.js ADDED
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY2xpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsNkJBQTZCO0FBQzdCLCtEQUE0RDtBQUU1RCxLQUFLLFVBQVUsR0FBRztJQUNoQixNQUFNLGlCQUFpQixHQUFHLHlCQUF5QixDQUFDO0lBRXBELElBQUksa0JBQXNDLENBQUM7SUFDM0MsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7UUFDcEMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFOUMsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QywrQkFBK0I7WUFDL0IsSUFBSTtZQUNKLGtCQUFrQjtZQUNsQixrQ0FBa0M7WUFDbEMsTUFBTTtZQUNOLElBQUk7WUFFSixrQkFBa0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1NBQ3hFO0tBQ0Y7SUFFRCxrQkFBa0I7UUFDaEIsMkRBQTJELENBQUM7SUFFOUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQUNuQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUV0RCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUEsaUNBQWUsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXhELGtHQUFrRztJQUNsRyxJQUFJO1NBQ0QsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVyQyxJQUFJLFFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNqQyxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7WUFDckIsUUFBUSxHQUFHLGNBQWMsQ0FBQztTQUMzQjtRQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0QsTUFBTSxTQUFTLEdBQVE7WUFDckIsT0FBTyxFQUFFLFdBQVc7WUFDcEIsS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixNQUFNLEVBQUUsVUFBVTtZQUNsQixPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE1BQU0sRUFBRSxXQUFXO1lBQ25CLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsTUFBTSxFQUFFLHNCQUFzQjtZQUM5QixNQUFNLEVBQUUsK0JBQStCO1lBQ3ZDLE1BQU0sRUFBRSxzQkFBc0I7WUFDOUIsT0FBTyxFQUFFLGtCQUFrQjtTQUM1QixDQUFDO1FBRUYsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLDBCQUEwQixDQUFDO1FBRXJFLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3ZDLElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7b0JBQzNCLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO3dCQUN2QyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO3dCQUN6RCxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDOUIsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEIsUUFBUSxDQUFDLEdBQUcsQ0FDViwrQ0FBK0MsS0FBSyxDQUFDLElBQUksT0FBTyxDQUNqRSxDQUFDO2lCQUNIO2FBQ0Y7aUJBQU07Z0JBQ0wsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDekQsSUFBSSxPQUFPLENBQUMsR0FBRyxLQUFLLG1CQUFtQixFQUFFO29CQUN2QyxNQUFNLFVBQVUsR0FBRyxPQUFPO3lCQUN2QixRQUFRLEVBQUU7eUJBQ1YsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUMzQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDbkM7cUJBQU07b0JBQ0wsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQ2hDO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBRUQsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgZ2V0V2ViU29ja2V0VXJsIH0gZnJvbSAnLi4vY29tbW9uL2dldFdlYlNvY2tldFVybCc7XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bigpIHtcbiAgY29uc3QgY2RrRXhwb3J0RmlsZU5hbWUgPSAnLi4vLnNweS9jZGtFeHBvcnRzLmpzb24nO1xuXG4gIGxldCBzZXJ2ZXJsZXNzU3B5V3NVcmw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaWYgKGZzLmV4aXN0c1N5bmMoY2RrRXhwb3J0RmlsZU5hbWUpKSB7XG4gICAgY29uc3QgcmF3ZGF0YSA9IGZzLnJlYWRGaWxlU3luYyhjZGtFeHBvcnRGaWxlTmFtZSk7XG4gICAgY29uc3QgY29uZmlnID0gSlNPTi5wYXJzZShyYXdkYXRhLnRvU3RyaW5nKCkpO1xuXG4gICAgaWYgKGNvbmZpZyAmJiBjb25maWdbT2JqZWN0LmtleXMoY29uZmlnKVswXV0pIHtcbiAgICAgIC8vIGdldCBmaXJzdCBTZXJ2ZXJsZXNzU3B5V3NVcmxcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgXCJteS1zdGFja1wiOiB7XG4gICAgICAvLyAgICAgXCJTZXJ2ZXJsZXNzU3B5V3NVcmxcIjogXCJ4eHhcIlxuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG5cbiAgICAgIHNlcnZlcmxlc3NTcHlXc1VybCA9IGNvbmZpZ1tPYmplY3Qua2V5cyhjb25maWcpWzBdXS5TZXJ2ZXJsZXNzU3B5V3NVcmw7XG4gICAgfVxuICB9XG5cbiAgc2VydmVybGVzc1NweVdzVXJsID1cbiAgICAnd3NzOi8vcHJlaDF4bzF4aC5leGVjdXRlLWFwaS5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9wcm9kJztcblxuICBpZiAoIXNlcnZlcmxlc3NTcHlXc1VybCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBXUyB1cmwnKTtcbiAgfVxuXG4gIGNvbnNvbGUubG9nKCdzZXJ2ZXJsZXNzU3B5V3NVcmwnLCBzZXJ2ZXJsZXNzU3B5V3NVcmwpO1xuXG4gIGNvbnN0IHdzVXJsID0gYXdhaXQgZ2V0V2ViU29ja2V0VXJsKHNlcnZlcmxlc3NTcHlXc1VybCk7XG5cbiAgLy8gc291cmNlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvTGVhcm4vU2VydmVyLXNpZGUvTm9kZV9zZXJ2ZXJfd2l0aG91dF9mcmFtZXdvcmtcbiAgaHR0cFxuICAgIC5jcmVhdGVTZXJ2ZXIoKHJlcXVlc3QsIHJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygncmVxdWVzdCAnLCByZXF1ZXN0LnVybCk7XG5cbiAgICAgIGxldCBmaWxlUGF0aCA9IGAuJHtyZXF1ZXN0LnVybH1gO1xuICAgICAgaWYgKGZpbGVQYXRoID09PSAnLi8nKSB7XG4gICAgICAgIGZpbGVQYXRoID0gJy4vaW5kZXguaHRtbCc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV4dG5hbWUgPSBTdHJpbmcocGF0aC5leHRuYW1lKGZpbGVQYXRoKSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IG1pbWVUeXBlczogYW55ID0ge1xuICAgICAgICAnLmh0bWwnOiAndGV4dC9odG1sJyxcbiAgICAgICAgJy5qcyc6ICd0ZXh0L2phdmFzY3JpcHQnLFxuICAgICAgICAnLmNzcyc6ICd0ZXh0L2NzcycsXG4gICAgICAgICcuanNvbic6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJy5wbmcnOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgJy5qcGcnOiAnaW1hZ2UvanBnJyxcbiAgICAgICAgJy5naWYnOiAnaW1hZ2UvZ2lmJyxcbiAgICAgICAgJy5zdmcnOiAnaW1hZ2Uvc3ZnK3htbCcsXG4gICAgICAgICcud2F2JzogJ2F1ZGlvL3dhdicsXG4gICAgICAgICcubXA0JzogJ3ZpZGVvL21wNCcsXG4gICAgICAgICcud29mZic6ICdhcHBsaWNhdGlvbi9mb250LXdvZmYnLFxuICAgICAgICAnLnR0Zic6ICdhcHBsaWNhdGlvbi9mb250LXR0ZicsXG4gICAgICAgICcuZW90JzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0JyxcbiAgICAgICAgJy5vdGYnOiAnYXBwbGljYXRpb24vZm9udC1vdGYnLFxuICAgICAgICAnLndhc20nOiAnYXBwbGljYXRpb24vd2FzbScsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb250ZW50VHlwZSA9IG1pbWVUeXBlc1tleHRuYW1lXSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcblxuICAgICAgZnMucmVhZEZpbGUoZmlsZVBhdGgsIChlcnJvciwgY29udGVudCkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICBpZiAoZXJyb3IuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgICAgICAgIGZzLnJlYWRGaWxlKCcuLzQwNC5odG1sJywgKF9lcnIsIGNvbnQpID0+IHtcbiAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDQwNCwgeyAnQ29udGVudC1UeXBlJzogJ3RleHQvaHRtbCcgfSk7XG4gICAgICAgICAgICAgIHJlc3BvbnNlLmVuZChjb250LCAndXRmLTgnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNwb25zZS53cml0ZUhlYWQoNTAwKTtcbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZChcbiAgICAgICAgICAgICAgYFNvcnJ5LCBjaGVjayB3aXRoIHRoZSBzaXRlIGFkbWluIGZvciBlcnJvcjogJHtlcnJvci5jb2RlfSAuLlxcbmBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3BvbnNlLndyaXRlSGVhZCgyMDAsIHsgJ0NvbnRlbnQtVHlwZSc6IGNvbnRlbnRUeXBlIH0pO1xuICAgICAgICAgIGlmIChyZXF1ZXN0LnVybCA9PT0gJy9zZXJ2ZXJsZXNzU3B5LmpzJykge1xuICAgICAgICAgICAgY29uc3QgY29udGVudE5ldyA9IGNvbnRlbnRcbiAgICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgLnJlcGxhY2UoJ1NFUlZFUkxFU1NfU1BZX1dTX1VSTCcsIHdzVXJsKTtcbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZChjb250ZW50TmV3LCAndXRmLTgnKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzcG9uc2UuZW5kKGNvbnRlbnQsICd1dGYtOCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSlcbiAgICAubGlzdGVuKDgxMjUpO1xufVxuXG5ydW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiJdfQ==
@@ -0,0 +1,85 @@
1
+ import * as fs from 'fs';
2
+ import * as http from 'http';
3
+ import * as path from 'path';
4
+ import { getWebSocketUrl } from '../common/getWebSocketUrl';
5
+ async function run() {
6
+ const cdkExportFileName = '../.spy/cdkExports.json';
7
+ let serverlessSpyWsUrl;
8
+ if (fs.existsSync(cdkExportFileName)) {
9
+ const rawdata = fs.readFileSync(cdkExportFileName);
10
+ const config = JSON.parse(rawdata.toString());
11
+ if (config && config[Object.keys(config)[0]]) {
12
+ // get first ServerlessSpyWsUrl
13
+ // {
14
+ // "my-stack": {
15
+ // "ServerlessSpyWsUrl": "xxx"
16
+ // }
17
+ // }
18
+ serverlessSpyWsUrl = config[Object.keys(config)[0]].ServerlessSpyWsUrl;
19
+ }
20
+ }
21
+ serverlessSpyWsUrl =
22
+ 'wss://preh1xo1xh.execute-api.eu-west-1.amazonaws.com/prod';
23
+ if (!serverlessSpyWsUrl) {
24
+ throw new Error('Missing WS url');
25
+ }
26
+ console.log('serverlessSpyWsUrl', serverlessSpyWsUrl);
27
+ const wsUrl = await getWebSocketUrl(serverlessSpyWsUrl);
28
+ // source https://developer.mozilla.org/en-US/docs/Learn/Server-side/Node_server_without_framework
29
+ http
30
+ .createServer((request, response) => {
31
+ console.log('request ', request.url);
32
+ let filePath = `.${request.url}`;
33
+ if (filePath === './') {
34
+ filePath = './index.html';
35
+ }
36
+ const extname = String(path.extname(filePath)).toLowerCase();
37
+ const mimeTypes = {
38
+ '.html': 'text/html',
39
+ '.js': 'text/javascript',
40
+ '.css': 'text/css',
41
+ '.json': 'application/json',
42
+ '.png': 'image/png',
43
+ '.jpg': 'image/jpg',
44
+ '.gif': 'image/gif',
45
+ '.svg': 'image/svg+xml',
46
+ '.wav': 'audio/wav',
47
+ '.mp4': 'video/mp4',
48
+ '.woff': 'application/font-woff',
49
+ '.ttf': 'application/font-ttf',
50
+ '.eot': 'application/vnd.ms-fontobject',
51
+ '.otf': 'application/font-otf',
52
+ '.wasm': 'application/wasm',
53
+ };
54
+ const contentType = mimeTypes[extname] || 'application/octet-stream';
55
+ fs.readFile(filePath, (error, content) => {
56
+ if (error) {
57
+ if (error.code === 'ENOENT') {
58
+ fs.readFile('./404.html', (_err, cont) => {
59
+ response.writeHead(404, { 'Content-Type': 'text/html' });
60
+ response.end(cont, 'utf-8');
61
+ });
62
+ }
63
+ else {
64
+ response.writeHead(500);
65
+ response.end(`Sorry, check with the site admin for error: ${error.code} ..\n`);
66
+ }
67
+ }
68
+ else {
69
+ response.writeHead(200, { 'Content-Type': contentType });
70
+ if (request.url === '/serverlessSpy.js') {
71
+ const contentNew = content
72
+ .toString()
73
+ .replace('SERVERLESS_SPY_WS_URL', wsUrl);
74
+ response.end(contentNew, 'utf-8');
75
+ }
76
+ else {
77
+ response.end(content, 'utf-8');
78
+ }
79
+ }
80
+ });
81
+ })
82
+ .listen(8125);
83
+ }
84
+ run().catch(console.error);
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY2xpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsS0FBSyxVQUFVLEdBQUc7SUFDaEIsTUFBTSxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQztJQUVwRCxJQUFJLGtCQUFzQyxDQUFDO0lBQzNDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNuRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTlDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUMsK0JBQStCO1lBQy9CLElBQUk7WUFDSixrQkFBa0I7WUFDbEIsa0NBQWtDO1lBQ2xDLE1BQU07WUFDTixJQUFJO1lBRUosa0JBQWtCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztTQUN4RTtLQUNGO0lBRUQsa0JBQWtCO1FBQ2hCLDJEQUEyRCxDQUFDO0lBRTlELElBQUksQ0FBQyxrQkFBa0IsRUFBRTtRQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FDbkM7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFdEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUV4RCxrR0FBa0c7SUFDbEcsSUFBSTtTQUNELFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFckMsSUFBSSxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakMsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQ3JCLFFBQVEsR0FBRyxjQUFjLENBQUM7U0FDM0I7UUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdELE1BQU0sU0FBUyxHQUFRO1lBQ3JCLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsTUFBTSxFQUFFLFVBQVU7WUFDbEIsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixNQUFNLEVBQUUsV0FBVztZQUNuQixNQUFNLEVBQUUsV0FBVztZQUNuQixNQUFNLEVBQUUsV0FBVztZQUNuQixNQUFNLEVBQUUsZUFBZTtZQUN2QixNQUFNLEVBQUUsV0FBVztZQUNuQixNQUFNLEVBQUUsV0FBVztZQUNuQixPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLE1BQU0sRUFBRSxzQkFBc0I7WUFDOUIsTUFBTSxFQUFFLCtCQUErQjtZQUN2QyxNQUFNLEVBQUUsc0JBQXNCO1lBQzlCLE9BQU8sRUFBRSxrQkFBa0I7U0FDNUIsQ0FBQztRQUVGLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSwwQkFBMEIsQ0FBQztRQUVyRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN2QyxJQUFJLEtBQUssRUFBRTtnQkFDVCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO29CQUMzQixFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTt3QkFDdkMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQzt3QkFDekQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQzlCLENBQUMsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3hCLFFBQVEsQ0FBQyxHQUFHLENBQ1YsK0NBQStDLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FDakUsQ0FBQztpQkFDSDthQUNGO2lCQUFNO2dCQUNMLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQ3pELElBQUksT0FBTyxDQUFDLEdBQUcsS0FBSyxtQkFBbUIsRUFBRTtvQkFDdkMsTUFBTSxVQUFVLEdBQUcsT0FBTzt5QkFDdkIsUUFBUSxFQUFFO3lCQUNWLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDM0MsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQ25DO3FCQUFNO29CQUNMLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUNoQzthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7U0FDRCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUVELEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGdldFdlYlNvY2tldFVybCB9IGZyb20gJy4uL2NvbW1vbi9nZXRXZWJTb2NrZXRVcmwnO1xuXG5hc3luYyBmdW5jdGlvbiBydW4oKSB7XG4gIGNvbnN0IGNka0V4cG9ydEZpbGVOYW1lID0gJy4uLy5zcHkvY2RrRXhwb3J0cy5qc29uJztcblxuICBsZXQgc2VydmVybGVzc1NweVdzVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGlmIChmcy5leGlzdHNTeW5jKGNka0V4cG9ydEZpbGVOYW1lKSkge1xuICAgIGNvbnN0IHJhd2RhdGEgPSBmcy5yZWFkRmlsZVN5bmMoY2RrRXhwb3J0RmlsZU5hbWUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IEpTT04ucGFyc2UocmF3ZGF0YS50b1N0cmluZygpKTtcblxuICAgIGlmIChjb25maWcgJiYgY29uZmlnW09iamVjdC5rZXlzKGNvbmZpZylbMF1dKSB7XG4gICAgICAvLyBnZXQgZmlyc3QgU2VydmVybGVzc1NweVdzVXJsXG4gICAgICAvLyB7XG4gICAgICAvLyAgIFwibXktc3RhY2tcIjoge1xuICAgICAgLy8gICAgIFwiU2VydmVybGVzc1NweVdzVXJsXCI6IFwieHh4XCJcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuXG4gICAgICBzZXJ2ZXJsZXNzU3B5V3NVcmwgPSBjb25maWdbT2JqZWN0LmtleXMoY29uZmlnKVswXV0uU2VydmVybGVzc1NweVdzVXJsO1xuICAgIH1cbiAgfVxuXG4gIHNlcnZlcmxlc3NTcHlXc1VybCA9XG4gICAgJ3dzczovL3ByZWgxeG8xeGguZXhlY3V0ZS1hcGkuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vcHJvZCc7XG5cbiAgaWYgKCFzZXJ2ZXJsZXNzU3B5V3NVcmwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgV1MgdXJsJyk7XG4gIH1cblxuICBjb25zb2xlLmxvZygnc2VydmVybGVzc1NweVdzVXJsJywgc2VydmVybGVzc1NweVdzVXJsKTtcblxuICBjb25zdCB3c1VybCA9IGF3YWl0IGdldFdlYlNvY2tldFVybChzZXJ2ZXJsZXNzU3B5V3NVcmwpO1xuXG4gIC8vIHNvdXJjZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL0xlYXJuL1NlcnZlci1zaWRlL05vZGVfc2VydmVyX3dpdGhvdXRfZnJhbWV3b3JrXG4gIGh0dHBcbiAgICAuY3JlYXRlU2VydmVyKChyZXF1ZXN0LCByZXNwb25zZSkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ3JlcXVlc3QgJywgcmVxdWVzdC51cmwpO1xuXG4gICAgICBsZXQgZmlsZVBhdGggPSBgLiR7cmVxdWVzdC51cmx9YDtcbiAgICAgIGlmIChmaWxlUGF0aCA9PT0gJy4vJykge1xuICAgICAgICBmaWxlUGF0aCA9ICcuL2luZGV4Lmh0bWwnO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBleHRuYW1lID0gU3RyaW5nKHBhdGguZXh0bmFtZShmaWxlUGF0aCkpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBtaW1lVHlwZXM6IGFueSA9IHtcbiAgICAgICAgJy5odG1sJzogJ3RleHQvaHRtbCcsXG4gICAgICAgICcuanMnOiAndGV4dC9qYXZhc2NyaXB0JyxcbiAgICAgICAgJy5jc3MnOiAndGV4dC9jc3MnLFxuICAgICAgICAnLmpzb24nOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICcucG5nJzogJ2ltYWdlL3BuZycsXG4gICAgICAgICcuanBnJzogJ2ltYWdlL2pwZycsXG4gICAgICAgICcuZ2lmJzogJ2ltYWdlL2dpZicsXG4gICAgICAgICcuc3ZnJzogJ2ltYWdlL3N2Zyt4bWwnLFxuICAgICAgICAnLndhdic6ICdhdWRpby93YXYnLFxuICAgICAgICAnLm1wNCc6ICd2aWRlby9tcDQnLFxuICAgICAgICAnLndvZmYnOiAnYXBwbGljYXRpb24vZm9udC13b2ZmJyxcbiAgICAgICAgJy50dGYnOiAnYXBwbGljYXRpb24vZm9udC10dGYnLFxuICAgICAgICAnLmVvdCc6ICdhcHBsaWNhdGlvbi92bmQubXMtZm9udG9iamVjdCcsXG4gICAgICAgICcub3RmJzogJ2FwcGxpY2F0aW9uL2ZvbnQtb3RmJyxcbiAgICAgICAgJy53YXNtJzogJ2FwcGxpY2F0aW9uL3dhc20nLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgY29udGVudFR5cGUgPSBtaW1lVHlwZXNbZXh0bmFtZV0gfHwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7XG5cbiAgICAgIGZzLnJlYWRGaWxlKGZpbGVQYXRoLCAoZXJyb3IsIGNvbnRlbnQpID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICAgICAgICBmcy5yZWFkRmlsZSgnLi80MDQuaHRtbCcsIChfZXJyLCBjb250KSA9PiB7XG4gICAgICAgICAgICAgIHJlc3BvbnNlLndyaXRlSGVhZCg0MDQsIHsgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L2h0bWwnIH0pO1xuICAgICAgICAgICAgICByZXNwb25zZS5lbmQoY29udCwgJ3V0Zi04Jyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDUwMCk7XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoXG4gICAgICAgICAgICAgIGBTb3JyeSwgY2hlY2sgd2l0aCB0aGUgc2l0ZSBhZG1pbiBmb3IgZXJyb3I6ICR7ZXJyb3IuY29kZX0gLi5cXG5gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNwb25zZS53cml0ZUhlYWQoMjAwLCB7ICdDb250ZW50LVR5cGUnOiBjb250ZW50VHlwZSB9KTtcbiAgICAgICAgICBpZiAocmVxdWVzdC51cmwgPT09ICcvc2VydmVybGVzc1NweS5qcycpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnROZXcgPSBjb250ZW50XG4gICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKCdTRVJWRVJMRVNTX1NQWV9XU19VUkwnLCB3c1VybCk7XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoY29udGVudE5ldywgJ3V0Zi04Jyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZChjb250ZW50LCAndXRmLTgnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pXG4gICAgLmxpc3Rlbig4MTI1KTtcbn1cblxucnVuKCkuY2F0Y2goY29uc29sZS5lcnJvcik7XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};
package/lib/cli/ws.js ADDED
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jbGkvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5QkFBeUI7QUFDekIscUNBQXFDO0FBQ3JDLDJCQUEyQjtBQUMzQiwrREFBNEQ7QUFFNUQsS0FBSyxVQUFVLEdBQUc7SUFDaEIsOERBQThEO0lBQzlELG1EQUFtRDtJQUVuRCxvQ0FBb0M7SUFDcEMsZ0JBQWdCO0lBRWhCLGtEQUFrRDtJQUNsRCxtRUFBbUU7SUFDbkUsdUNBQXVDO0lBRXZDLDJDQUEyQztJQUUzQywrQkFBK0I7SUFDL0IsTUFBTSxHQUFHLEdBQUcsMkRBQTJELENBQUM7SUFFeEUseUlBQXlJO0lBQ3pJLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxpQ0FBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sRUFBRSxHQUFHLElBQUksWUFBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRS9CLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELCtCQUErQjtJQUUvQixFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRSxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFO1FBQzdCLHVDQUF1QztRQUV2QyxJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUk7WUFDRixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN4QztRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FDVCxtQkFBbUIsTUFBTSxDQUFDLFNBQVMsZUFDakMsTUFBTSxDQUFDLFVBQ1Qsb0JBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FDbEUsQ0FBQztTQUNIO1FBRUQsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDViw0QkFBNEI7YUFDN0I7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDViw0QkFBNEI7YUFDN0I7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEQsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUTtTQUNMLGVBQWUsQ0FBQztRQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztRQUNwQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdkIsQ0FBQztTQUNELEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNuQixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUNELEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyByZWFkbGluZSBmcm9tICdyZWFkbGluZSc7XG5pbXBvcnQgV2ViU29ja2V0IGZyb20gJ3dzJztcbmltcG9ydCB7IGdldFdlYlNvY2tldFVybCB9IGZyb20gJy4uL2NvbW1vbi9nZXRXZWJTb2NrZXRVcmwnO1xuXG5hc3luYyBmdW5jdGlvbiBydW4oKSB7XG4gIC8vIHZhciBjcmVkZW50aWFsc1Byb3ZpZGVyID0gYXdzQ3AuZnJvbVRlbXBvcmFyeUNyZWRlbnRpYWxzKCk7XG4gIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgY3JlZGVudGlhbHNQcm92aWRlcigpO1xuXG4gIC8vIGNvbnN0IGNsaWVudCA9IG5ldyBTVFNDbGllbnQoe30pO1xuICAvLyBjbGllbnQuc2VuZCgpXG5cbiAgLy8gY29uc3QgY29tbWFuZCA9IG5ldyBHZXRTZXNzaW9uVG9rZW5Db21tYW5kKHt9KTtcbiAgLy8gY29uc3QgeyBDcmVkZW50aWFsczogY3JlZGVudGlhbHMgfSA9IGF3YWl0IGNsaWVudC5zZW5kKGNvbW1hbmQpO1xuICAvLyAvL2NvbnN0IGNyZWRlbnRpYWxzID0gcy5DcmVkZW50aWFscztcblxuICAvLyBjb25zb2xlLmxvZyhcImNyZWRlbnRpYWxzXCIsIGNyZWRlbnRpYWxzKTtcblxuICAvLyBjb25zdCB1cmwgPSBwcm9jZXNzLmFyZ3ZbMl07XG4gIGNvbnN0IHVybCA9ICd3c3M6Ly9wcmVoMXhvMXhoLmV4ZWN1dGUtYXBpLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL3Byb2QnO1xuXG4gIC8vIGh0dHBzOi8vbWVkaXVtLmNvbS9Aby5icmVkZW5iZXJnL2lhbS1zaWduLXlvdXItYXBpLWdhdGV3YXktd2Vic29ja2V0LWNvbm5lY3Rpb24tcmVxdWVzdC1uby1jdXN0b20tYXV0aC1mcm9tLXlvdXItZnJvbnRlbmQtNjU0NTExNjY3NTdkXG4gIGNvbnN0IHVybDIgPSBhd2FpdCBnZXRXZWJTb2NrZXRVcmwodXJsKTtcblxuICBjb25zdCB3cyA9IG5ldyBXZWJTb2NrZXQodXJsMik7XG5cbiAgY29uc3QgZmlsZURlc2NyaXB0b3IgPSBmcy5vcGVuU3luYygnc3B5X2xvZy5qc29uJywgJ3cnKTtcbiAgLy8g8J+TovCfk4HimqHvuI/wn5K+IPCfkr0g8J+SviDwn5K/IPCfk4Dwn5ui8J+qo/Cfk5Hwn5SKXG5cbiAgd3Mub24oJ29wZW4nLCAoKSA9PiBjb25zb2xlLmxvZyhgY29ubmVjdGVkICR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWApKTtcbiAgd3Mub24oJ21lc3NhZ2UnLCAoZGF0YTogYW55KSA9PiB7XG4gICAgLy8gY29uc29sZS5sb2coYEZyb20gc2VydmVyOiAke2RhdGF9YCk7XG5cbiAgICBsZXQgcGFyc2VkO1xuICAgIHRyeSB7XG4gICAgICBwYXJzZWQgPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihgQ2FuIG5vdCBwYXJzZSAke2RhdGF9YCk7XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZCkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBcXHgxYls0N21cXHgxYlszNG0ke3BhcnNlZC50aW1lc3RhbXB9IFxceDFiWzMxbfCfjZUgJHtcbiAgICAgICAgICBwYXJzZWQuc2VydmljZUtleVxuICAgICAgICB9XFx4MWJbMG1cXHgxYlszMm1cXG4ke0pTT04uc3RyaW5naWZ5KHBhcnNlZC5kYXRhLCBudWxsLCAyKX1cXHgxYlswbWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZnMud3JpdGUoZmlsZURlc2NyaXB0b3IsIGRhdGEsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAvLyBmcy5jbG9zZShmaWxlRGVzY3JpcHRvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBmcy53cml0ZShmaWxlRGVzY3JpcHRvciwgJ1xcbicsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAvLyBmcy5jbG9zZShmaWxlRGVzY3JpcHRvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIHdzLm9uKCdjbG9zZScsICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgZGlzY29ubmVjdGVkICR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWApO1xuICAgIGZzLmNsb3NlKGZpbGVEZXNjcmlwdG9yLCAoKSA9PiB1bmRlZmluZWQpO1xuICAgIHByb2Nlc3MuZXhpdCgpO1xuICB9KTtcblxuICByZWFkbGluZVxuICAgIC5jcmVhdGVJbnRlcmZhY2Uoe1xuICAgICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXG4gICAgICBvdXRwdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICAgIH0pXG4gICAgLm9uKCdsaW5lJywgKGRhdGEpID0+IHtcbiAgICAgIHdzLnNlbmQoZGF0YSk7XG4gICAgfSk7XG59XG5ydW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiJdfQ==
package/lib/cli/ws.mjs ADDED
@@ -0,0 +1,66 @@
1
+ import * as fs from 'fs';
2
+ import * as readline from 'readline';
3
+ import WebSocket from 'ws';
4
+ import { getWebSocketUrl } from '../common/getWebSocketUrl';
5
+ async function run() {
6
+ // var credentialsProvider = awsCp.fromTemporaryCredentials();
7
+ // const credentials = await credentialsProvider();
8
+ // const client = new STSClient({});
9
+ // client.send()
10
+ // const command = new GetSessionTokenCommand({});
11
+ // const { Credentials: credentials } = await client.send(command);
12
+ // //const credentials = s.Credentials;
13
+ // console.log("credentials", credentials);
14
+ // const url = process.argv[2];
15
+ const url = 'wss://preh1xo1xh.execute-api.eu-west-1.amazonaws.com/prod';
16
+ // https://medium.com/@o.bredenberg/iam-sign-your-api-gateway-websocket-connection-request-no-custom-auth-from-your-frontend-65451166757d
17
+ const url2 = await getWebSocketUrl(url);
18
+ const ws = new WebSocket(url2);
19
+ const fileDescriptor = fs.openSync('spy_log.json', 'w');
20
+ // 📢📁⚡️💾 💽 💾 💿 📀🛢🪣📑🔊
21
+ ws.on('open', () => console.log(`connected ${new Date().toISOString()}`));
22
+ ws.on('message', (data) => {
23
+ // console.log(`From server: ${data}`);
24
+ let parsed;
25
+ try {
26
+ parsed = JSON.parse(data);
27
+ }
28
+ catch (err) {
29
+ console.error(`Can not parse ${data}`);
30
+ }
31
+ if (parsed) {
32
+ console.log(`\x1b[47m\x1b[34m${parsed.timestamp} \x1b[31m🍕 ${parsed.serviceKey}\x1b[0m\x1b[32m\n${JSON.stringify(parsed.data, null, 2)}\x1b[0m`);
33
+ }
34
+ fs.write(fileDescriptor, data, (error) => {
35
+ if (!error) {
36
+ // fs.close(fileDescriptor);
37
+ }
38
+ else {
39
+ console.error(error);
40
+ }
41
+ });
42
+ fs.write(fileDescriptor, '\n', (error) => {
43
+ if (!error) {
44
+ // fs.close(fileDescriptor);
45
+ }
46
+ else {
47
+ console.error(error);
48
+ }
49
+ });
50
+ });
51
+ ws.on('close', () => {
52
+ console.log(`disconnected ${new Date().toISOString()}`);
53
+ fs.close(fileDescriptor, () => undefined);
54
+ process.exit();
55
+ });
56
+ readline
57
+ .createInterface({
58
+ input: process.stdin,
59
+ output: process.stdout,
60
+ })
61
+ .on('line', (data) => {
62
+ ws.send(data);
63
+ });
64
+ }
65
+ run().catch(console.error);
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jbGkvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxLQUFLLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFDckMsT0FBTyxTQUFTLE1BQU0sSUFBSSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxLQUFLLFVBQVUsR0FBRztJQUNoQiw4REFBOEQ7SUFDOUQsbURBQW1EO0lBRW5ELG9DQUFvQztJQUNwQyxnQkFBZ0I7SUFFaEIsa0RBQWtEO0lBQ2xELG1FQUFtRTtJQUNuRSx1Q0FBdUM7SUFFdkMsMkNBQTJDO0lBRTNDLCtCQUErQjtJQUMvQixNQUFNLEdBQUcsR0FBRywyREFBMkQsQ0FBQztJQUV4RSx5SUFBeUk7SUFDekksTUFBTSxJQUFJLEdBQUcsTUFBTSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFeEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFL0IsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEQsK0JBQStCO0lBRS9CLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBUyxFQUFFLEVBQUU7UUFDN0IsdUNBQXVDO1FBRXZDLElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSTtZQUNGLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNCO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUNULG1CQUFtQixNQUFNLENBQUMsU0FBUyxlQUNqQyxNQUFNLENBQUMsVUFDVCxvQkFBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUNsRSxDQUFDO1NBQ0g7UUFFRCxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLDRCQUE0QjthQUM3QjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLDRCQUE0QjthQUM3QjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RCxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRO1NBQ0wsZUFBZSxDQUFDO1FBQ2YsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUN2QixDQUFDO1NBQ0QsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ25CLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBQ0QsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHJlYWRsaW5lIGZyb20gJ3JlYWRsaW5lJztcbmltcG9ydCBXZWJTb2NrZXQgZnJvbSAnd3MnO1xuaW1wb3J0IHsgZ2V0V2ViU29ja2V0VXJsIH0gZnJvbSAnLi4vY29tbW9uL2dldFdlYlNvY2tldFVybCc7XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bigpIHtcbiAgLy8gdmFyIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBhd3NDcC5mcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMoKTtcbiAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCBjcmVkZW50aWFsc1Byb3ZpZGVyKCk7XG5cbiAgLy8gY29uc3QgY2xpZW50ID0gbmV3IFNUU0NsaWVudCh7fSk7XG4gIC8vIGNsaWVudC5zZW5kKClcblxuICAvLyBjb25zdCBjb21tYW5kID0gbmV3IEdldFNlc3Npb25Ub2tlbkNvbW1hbmQoe30pO1xuICAvLyBjb25zdCB7IENyZWRlbnRpYWxzOiBjcmVkZW50aWFscyB9ID0gYXdhaXQgY2xpZW50LnNlbmQoY29tbWFuZCk7XG4gIC8vIC8vY29uc3QgY3JlZGVudGlhbHMgPSBzLkNyZWRlbnRpYWxzO1xuXG4gIC8vIGNvbnNvbGUubG9nKFwiY3JlZGVudGlhbHNcIiwgY3JlZGVudGlhbHMpO1xuXG4gIC8vIGNvbnN0IHVybCA9IHByb2Nlc3MuYXJndlsyXTtcbiAgY29uc3QgdXJsID0gJ3dzczovL3ByZWgxeG8xeGguZXhlY3V0ZS1hcGkuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vcHJvZCc7XG5cbiAgLy8gaHR0cHM6Ly9tZWRpdW0uY29tL0BvLmJyZWRlbmJlcmcvaWFtLXNpZ24teW91ci1hcGktZ2F0ZXdheS13ZWJzb2NrZXQtY29ubmVjdGlvbi1yZXF1ZXN0LW5vLWN1c3RvbS1hdXRoLWZyb20teW91ci1mcm9udGVuZC02NTQ1MTE2Njc1N2RcbiAgY29uc3QgdXJsMiA9IGF3YWl0IGdldFdlYlNvY2tldFVybCh1cmwpO1xuXG4gIGNvbnN0IHdzID0gbmV3IFdlYlNvY2tldCh1cmwyKTtcblxuICBjb25zdCBmaWxlRGVzY3JpcHRvciA9IGZzLm9wZW5TeW5jKCdzcHlfbG9nLmpzb24nLCAndycpO1xuICAvLyDwn5Oi8J+TgeKaoe+4j/Cfkr4g8J+SvSDwn5K+IPCfkr8g8J+TgPCfm6Lwn6qj8J+TkfCflIpcblxuICB3cy5vbignb3BlbicsICgpID0+IGNvbnNvbGUubG9nKGBjb25uZWN0ZWQgJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9YCkpO1xuICB3cy5vbignbWVzc2FnZScsIChkYXRhOiBhbnkpID0+IHtcbiAgICAvLyBjb25zb2xlLmxvZyhgRnJvbSBzZXJ2ZXI6ICR7ZGF0YX1gKTtcblxuICAgIGxldCBwYXJzZWQ7XG4gICAgdHJ5IHtcbiAgICAgIHBhcnNlZCA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBDYW4gbm90IHBhcnNlICR7ZGF0YX1gKTtcbiAgICB9XG5cbiAgICBpZiAocGFyc2VkKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFxceDFiWzQ3bVxceDFiWzM0bSR7cGFyc2VkLnRpbWVzdGFtcH0gXFx4MWJbMzFt8J+NlSAke1xuICAgICAgICAgIHBhcnNlZC5zZXJ2aWNlS2V5XG4gICAgICAgIH1cXHgxYlswbVxceDFiWzMybVxcbiR7SlNPTi5zdHJpbmdpZnkocGFyc2VkLmRhdGEsIG51bGwsIDIpfVxceDFiWzBtYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmcy53cml0ZShmaWxlRGVzY3JpcHRvciwgZGF0YSwgKGVycm9yKSA9PiB7XG4gICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgIC8vIGZzLmNsb3NlKGZpbGVEZXNjcmlwdG9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGZzLndyaXRlKGZpbGVEZXNjcmlwdG9yLCAnXFxuJywgKGVycm9yKSA9PiB7XG4gICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgIC8vIGZzLmNsb3NlKGZpbGVEZXNjcmlwdG9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbiAgd3Mub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGBkaXNjb25uZWN0ZWQgJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9YCk7XG4gICAgZnMuY2xvc2UoZmlsZURlc2NyaXB0b3IsICgpID0+IHVuZGVmaW5lZCk7XG4gICAgcHJvY2Vzcy5leGl0KCk7XG4gIH0pO1xuXG4gIHJlYWRsaW5lXG4gICAgLmNyZWF0ZUludGVyZmFjZSh7XG4gICAgICBpbnB1dDogcHJvY2Vzcy5zdGRpbixcbiAgICAgIG91dHB1dDogcHJvY2Vzcy5zdGRvdXQsXG4gICAgfSlcbiAgICAub24oJ2xpbmUnLCAoZGF0YSkgPT4ge1xuICAgICAgd3Muc2VuZChkYXRhKTtcbiAgICB9KTtcbn1cbnJ1bigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0V2ViU29ja2V0VXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY29tbW9uL2dldFdlYlNvY2tldFVybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3RUFBc0U7QUFFdEUsNkJBQTZCO0FBRTdCLGlFQUFpRTtBQUUxRCxLQUFLLFVBQVUsZUFBZSxDQUFDLEdBQVcsRUFBRSxXQUF5QjtJQUMxRSxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsTUFBTSxTQUFTLEdBQUcsU0FBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFcEMsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNoQixNQUFNLG1CQUFtQixHQUFHLElBQUEsNENBQXFCLEdBQUUsQ0FBQztRQUNwRCxXQUFXLEdBQUcsTUFBTSxtQkFBbUIsRUFBRSxDQUFDO0tBQzNDO0lBRUQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQWlDO0lBQ2xFLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtJQUN4RCxNQUFNLEdBQUcsR0FBRyxTQUFVLENBQUMsUUFBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxzQ0FBc0M7SUFDM0YsTUFBTSxhQUFhLEdBQUcsR0FBRyxXQUFXLGdCQUFnQixVQUFVLGdCQUFnQixDQUFDLENBQUMsMEJBQTBCO0lBQzFHLG9FQUFvRTtJQUNwRSwyREFBMkQ7SUFDM0QsNkRBQTZEO0lBQzdELDZHQUE2RztJQUU3RyxvQkFBb0I7SUFDcEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQ3hCO1FBQ0UsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUsYUFBYTtRQUNuQiw0REFBNEQ7UUFDNUQsK0JBQStCO1FBQy9CLE9BQU87UUFDUCxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDZixPQUFPLEVBQUUsYUFBYTtRQUN0QixNQUFNLEVBQUUsVUFBVTtRQUNsQixTQUFTLEVBQUUsSUFBSTtLQUNoQixFQUNEO1FBQ0UsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXO1FBQ3BDLGVBQWUsRUFBRSxXQUFXLENBQUMsZUFBZTtRQUM1QyxZQUFZLEVBQUUsV0FBVyxDQUFDLFlBQVk7S0FDdkMsQ0FDRixDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUcsU0FBUyxhQUFhLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUIsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBM0NELDBDQTJDQztBQUVELFNBQVMsUUFBUSxDQUFDLElBQVk7SUFDNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDdEIseUVBQXlFLENBQzFFLENBQUM7SUFDRixPQUFPLENBQ0wsS0FBSyxJQUFJO1FBQ1AsSUFBSTtRQUNKLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2QsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDZCxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsQixNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNoQixJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUNmLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tTm9kZVByb3ZpZGVyQ2hhaW4gfSBmcm9tICdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBDcmVkZW50aWFscyB9IGZyb20gJ0Bhd3Mtc2RrL3R5cGVzJztcbmltcG9ydCAqIGFzIGF3czQgZnJvbSAnYXdzNCc7XG5cbi8vIFwiXCJ3c3M6Ly9tNmczdzZ0dGRoLmV4ZWN1dGUtYXBpLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL3Byb2RcIjtcIlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0V2ViU29ja2V0VXJsKHVybDogc3RyaW5nLCBjcmVkZW50aWFscz86IENyZWRlbnRpYWxzKSB7XG4gIGNvbnN0IHVybFBhcnNlZCA9IHBhcnNlVXJsKHVybCk7XG4gIGNvbnN0IGhvc3RQYXJ0cyA9IHVybFBhcnNlZCEuaG9zdC5zcGxpdCgnLicpO1xuXG4gIGNvbnNvbGUubG9nKCd1cmxQYXJzZWQnLCB1cmxQYXJzZWQpO1xuXG4gIGlmICghY3JlZGVudGlhbHMpIHtcbiAgICBjb25zdCBjcmVkZW50aWFsc1Byb3ZpZGVyID0gZnJvbU5vZGVQcm92aWRlckNoYWluKCk7XG4gICAgY3JlZGVudGlhbHMgPSBhd2FpdCBjcmVkZW50aWFsc1Byb3ZpZGVyKCk7XG4gIH1cblxuICBjb25zdCBBV1NfUkVHSU9OID0gaG9zdFBhcnRzWzJdOyAvLyBUaGUgcmVnaW9uIG9mIHlvdXIgQVBJLWdhdGV3YXlcbiAgY29uc3QgU09DS0VUX0hPU1QgPSBob3N0UGFydHNbMF07IC8vIFlvdXIgQVBJLWdhdGV3YXkgSURcbiAgY29uc3QgRU5WID0gdXJsUGFyc2VkIS5wYXRobmFtZSEucmVwbGFjZSgvXlxcLy8sICcnKTsgLy8gVGhlIHN0YWdlIG9mIHlvdXIgdGFyZ2V0IGRlcGxveW1lbnRcbiAgY29uc3QgV0VCU09DS0VUX1VSTCA9IGAke1NPQ0tFVF9IT1NUfS5leGVjdXRlLWFwaS4ke0FXU19SRUdJT059LmFtYXpvbmF3cy5jb21gOyAvLyBEb24ndCBwcmVwZW5kIHdpdGggd3NzIVxuICAvLyBjb25zdCBBV1NfUkVHSU9OID0gXCJldS13ZXN0LTFcIjsgLy8gVGhlIHJlZ2lvbiBvZiB5b3VyIEFQSS1nYXRld2F5XG4gIC8vIGNvbnN0IFNPQ0tFVF9IT1NUID0gXCJtNmczdzZ0dGRoXCI7IC8vIFlvdXIgQVBJLWdhdGV3YXkgSURcbiAgLy8gY29uc3QgRU5WID0gXCJwcm9kXCI7IC8vIFRoZSBzdGFnZSBvZiB5b3VyIHRhcmdldCBkZXBsb3ltZW50XG4gIC8vIGNvbnN0IFdFQlNPQ0tFVF9VUkwgPSBgJHtTT0NLRVRfSE9TVH0uZXhlY3V0ZS1hcGkuJHtBV1NfUkVHSU9OfS5hbWF6b25hd3MuY29tYDsgLy8gRG9uJ3QgcHJlcGVuZCB3aXRoIHdzcyFcblxuICAvLyBHZXQgYSBzaWduZWQgcGF0aFxuICBjb25zdCB7IHBhdGggfSA9IGF3czQuc2lnbihcbiAgICB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgaG9zdDogV0VCU09DS0VUX1VSTCxcbiAgICAgIC8vIHBhdGg6IGAvJHtFTlZ9P1gtQW16LVNlY3VyaXR5LVRva2VuPSR7ZW5jb2RlVVJJQ29tcG9uZW50KFxuICAgICAgLy8gICBjcmVkZW50aWFscyEuU2Vzc2lvblRva2VuIVxuICAgICAgLy8gKX1gLFxuICAgICAgcGF0aDogYC8ke0VOVn1gLFxuICAgICAgc2VydmljZTogJ2V4ZWN1dGUtYXBpJyxcbiAgICAgIHJlZ2lvbjogQVdTX1JFR0lPTixcbiAgICAgIHNpZ25RdWVyeTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGFjY2Vzc0tleUlkOiBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZCxcbiAgICAgIHNlY3JldEFjY2Vzc0tleTogY3JlZGVudGlhbHMuc2VjcmV0QWNjZXNzS2V5LFxuICAgICAgc2Vzc2lvblRva2VuOiBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4sXG4gICAgfVxuICApO1xuXG4gIGNvbnN0IHVybDIgPSBgd3NzOi8vJHtXRUJTT0NLRVRfVVJMfSR7cGF0aH1gO1xuICBjb25zb2xlLmxvZygncGF0aCcsIHVybDIpO1xuICByZXR1cm4gdXJsMjtcbn1cblxuZnVuY3Rpb24gcGFyc2VVcmwoaHJlZjogc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoID0gaHJlZi5tYXRjaChcbiAgICAvXih3c3M/OilcXC9cXC8oKFteOi8/I10qKSg/OjooWzAtOV0rKSk/KShbL117MCwxfVtePyNdKikoXFw/W14jXSp8KSgjLip8KSQvXG4gICk7XG4gIHJldHVybiAoXG4gICAgbWF0Y2ggJiYge1xuICAgICAgaHJlZixcbiAgICAgIHByb3RvY29sOiBtYXRjaFsxXSxcbiAgICAgIGhvc3Q6IG1hdGNoWzJdLFxuICAgICAgaG9zdG5hbWU6IG1hdGNoWzNdLFxuICAgICAgcG9ydDogbWF0Y2hbNF0sXG4gICAgICBwYXRobmFtZTogbWF0Y2hbNV0sXG4gICAgICBzZWFyY2g6IG1hdGNoWzZdLFxuICAgICAgaGFzaDogbWF0Y2hbN10sXG4gICAgfVxuICApO1xufVxuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0V2ViU29ja2V0VXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY29tbW9uL2dldFdlYlNvY2tldFVybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV0RSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixpRUFBaUU7QUFFakUsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQUMsR0FBVyxFQUFFLFdBQXlCO0lBQzFFLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxNQUFNLFNBQVMsR0FBRyxTQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU3QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUVwQyxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2hCLE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztRQUNwRCxXQUFXLEdBQUcsTUFBTSxtQkFBbUIsRUFBRSxDQUFDO0tBQzNDO0lBRUQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQWlDO0lBQ2xFLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtJQUN4RCxNQUFNLEdBQUcsR0FBRyxTQUFVLENBQUMsUUFBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxzQ0FBc0M7SUFDM0YsTUFBTSxhQUFhLEdBQUcsR0FBRyxXQUFXLGdCQUFnQixVQUFVLGdCQUFnQixDQUFDLENBQUMsMEJBQTBCO0lBQzFHLG9FQUFvRTtJQUNwRSwyREFBMkQ7SUFDM0QsNkRBQTZEO0lBQzdELDZHQUE2RztJQUU3RyxvQkFBb0I7SUFDcEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQ3hCO1FBQ0UsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUsYUFBYTtRQUNuQiw0REFBNEQ7UUFDNUQsK0JBQStCO1FBQy9CLE9BQU87UUFDUCxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDZixPQUFPLEVBQUUsYUFBYTtRQUN0QixNQUFNLEVBQUUsVUFBVTtRQUNsQixTQUFTLEVBQUUsSUFBSTtLQUNoQixFQUNEO1FBQ0UsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXO1FBQ3BDLGVBQWUsRUFBRSxXQUFXLENBQUMsZUFBZTtRQUM1QyxZQUFZLEVBQUUsV0FBVyxDQUFDLFlBQVk7S0FDdkMsQ0FDRixDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUcsU0FBUyxhQUFhLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUIsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsSUFBWTtJQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN0Qix5RUFBeUUsQ0FDMUUsQ0FBQztJQUNGLE9BQU8sQ0FDTCxLQUFLLElBQUk7UUFDUCxJQUFJO1FBQ0osUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDZCxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsQixJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNkLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQ2YsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21Ob2RlUHJvdmlkZXJDaGFpbiB9IGZyb20gJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXJzJztcbmltcG9ydCB7IENyZWRlbnRpYWxzIH0gZnJvbSAnQGF3cy1zZGsvdHlwZXMnO1xuaW1wb3J0ICogYXMgYXdzNCBmcm9tICdhd3M0JztcblxuLy8gXCJcIndzczovL202ZzN3NnR0ZGguZXhlY3V0ZS1hcGkuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vcHJvZFwiO1wiXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRXZWJTb2NrZXRVcmwodXJsOiBzdHJpbmcsIGNyZWRlbnRpYWxzPzogQ3JlZGVudGlhbHMpIHtcbiAgY29uc3QgdXJsUGFyc2VkID0gcGFyc2VVcmwodXJsKTtcbiAgY29uc3QgaG9zdFBhcnRzID0gdXJsUGFyc2VkIS5ob3N0LnNwbGl0KCcuJyk7XG5cbiAgY29uc29sZS5sb2coJ3VybFBhcnNlZCcsIHVybFBhcnNlZCk7XG5cbiAgaWYgKCFjcmVkZW50aWFscykge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBmcm9tTm9kZVByb3ZpZGVyQ2hhaW4oKTtcbiAgICBjcmVkZW50aWFscyA9IGF3YWl0IGNyZWRlbnRpYWxzUHJvdmlkZXIoKTtcbiAgfVxuXG4gIGNvbnN0IEFXU19SRUdJT04gPSBob3N0UGFydHNbMl07IC8vIFRoZSByZWdpb24gb2YgeW91ciBBUEktZ2F0ZXdheVxuICBjb25zdCBTT0NLRVRfSE9TVCA9IGhvc3RQYXJ0c1swXTsgLy8gWW91ciBBUEktZ2F0ZXdheSBJRFxuICBjb25zdCBFTlYgPSB1cmxQYXJzZWQhLnBhdGhuYW1lIS5yZXBsYWNlKC9eXFwvLywgJycpOyAvLyBUaGUgc3RhZ2Ugb2YgeW91ciB0YXJnZXQgZGVwbG95bWVudFxuICBjb25zdCBXRUJTT0NLRVRfVVJMID0gYCR7U09DS0VUX0hPU1R9LmV4ZWN1dGUtYXBpLiR7QVdTX1JFR0lPTn0uYW1hem9uYXdzLmNvbWA7IC8vIERvbid0IHByZXBlbmQgd2l0aCB3c3MhXG4gIC8vIGNvbnN0IEFXU19SRUdJT04gPSBcImV1LXdlc3QtMVwiOyAvLyBUaGUgcmVnaW9uIG9mIHlvdXIgQVBJLWdhdGV3YXlcbiAgLy8gY29uc3QgU09DS0VUX0hPU1QgPSBcIm02ZzN3NnR0ZGhcIjsgLy8gWW91ciBBUEktZ2F0ZXdheSBJRFxuICAvLyBjb25zdCBFTlYgPSBcInByb2RcIjsgLy8gVGhlIHN0YWdlIG9mIHlvdXIgdGFyZ2V0IGRlcGxveW1lbnRcbiAgLy8gY29uc3QgV0VCU09DS0VUX1VSTCA9IGAke1NPQ0tFVF9IT1NUfS5leGVjdXRlLWFwaS4ke0FXU19SRUdJT059LmFtYXpvbmF3cy5jb21gOyAvLyBEb24ndCBwcmVwZW5kIHdpdGggd3NzIVxuXG4gIC8vIEdldCBhIHNpZ25lZCBwYXRoXG4gIGNvbnN0IHsgcGF0aCB9ID0gYXdzNC5zaWduKFxuICAgIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICBob3N0OiBXRUJTT0NLRVRfVVJMLFxuICAgICAgLy8gcGF0aDogYC8ke0VOVn0/WC1BbXotU2VjdXJpdHktVG9rZW49JHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICAvLyAgIGNyZWRlbnRpYWxzIS5TZXNzaW9uVG9rZW4hXG4gICAgICAvLyApfWAsXG4gICAgICBwYXRoOiBgLyR7RU5WfWAsXG4gICAgICBzZXJ2aWNlOiAnZXhlY3V0ZS1hcGknLFxuICAgICAgcmVnaW9uOiBBV1NfUkVHSU9OLFxuICAgICAgc2lnblF1ZXJ5OiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgYWNjZXNzS2V5SWQ6IGNyZWRlbnRpYWxzLmFjY2Vzc0tleUlkLFxuICAgICAgc2VjcmV0QWNjZXNzS2V5OiBjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksXG4gICAgICBzZXNzaW9uVG9rZW46IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbixcbiAgICB9XG4gICk7XG5cbiAgY29uc3QgdXJsMiA9IGB3c3M6Ly8ke1dFQlNPQ0tFVF9VUkx9JHtwYXRofWA7XG4gIGNvbnNvbGUubG9nKCdwYXRoJywgdXJsMik7XG4gIHJldHVybiB1cmwyO1xufVxuXG5mdW5jdGlvbiBwYXJzZVVybChocmVmOiBzdHJpbmcpIHtcbiAgY29uc3QgbWF0Y2ggPSBocmVmLm1hdGNoKFxuICAgIC9eKHdzcz86KVxcL1xcLygoW146Lz8jXSopKD86OihbMC05XSspKT8pKFsvXXswLDF9W14/I10qKShcXD9bXiNdKnwpKCMuKnwpJC9cbiAgKTtcbiAgcmV0dXJuIChcbiAgICBtYXRjaCAmJiB7XG4gICAgICBocmVmLFxuICAgICAgcHJvdG9jb2w6IG1hdGNoWzFdLFxuICAgICAgaG9zdDogbWF0Y2hbMl0sXG4gICAgICBob3N0bmFtZTogbWF0Y2hbM10sXG4gICAgICBwb3J0OiBtYXRjaFs0XSxcbiAgICAgIHBhdGhuYW1lOiBtYXRjaFs1XSxcbiAgICAgIHNlYXJjaDogbWF0Y2hbNl0sXG4gICAgICBoYXNoOiBtYXRjaFs3XSxcbiAgICB9XG4gICk7XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { NativeAttributeValue } from '@aws-sdk/util-dynamodb';
2
+ import { DynamoDBRecord } from 'aws-lambda';
3
+ import { SpyEvent } from './SpyEvent';
4
+ export interface DynamoDBSpyEvent<TData = any> extends SpyEvent {
5
+ spyEventType: 'DynamoDB';
6
+ eventName: DynamoDBRecord['eventName'];
7
+ newImage: TData;
8
+ keys: Record<string, NativeAttributeValue>;
9
+ oldImage?: TData;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1vREJTcHlFdmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbW1vbi9zcHlFdmVudHMvRHluYW1vREJTcHlFdmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF0aXZlQXR0cmlidXRlVmFsdWUgfSBmcm9tICdAYXdzLXNkay91dGlsLWR5bmFtb2RiJztcbmltcG9ydCB7IER5bmFtb0RCUmVjb3JkIH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBTcHlFdmVudCB9IGZyb20gJy4vU3B5RXZlbnQnO1xuXG4vLyBhc2Rhc2RcbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1vREJTcHlFdmVudDxURGF0YSA9IGFueT4gZXh0ZW5kcyBTcHlFdmVudCB7XG4gIHNweUV2ZW50VHlwZTogJ0R5bmFtb0RCJztcbiAgZXZlbnROYW1lOiBEeW5hbW9EQlJlY29yZFsnZXZlbnROYW1lJ107XG4gIG5ld0ltYWdlOiBURGF0YTtcbiAga2V5czogUmVjb3JkPHN0cmluZywgTmF0aXZlQXR0cmlidXRlVmFsdWU+O1xuICBvbGRJbWFnZT86IFREYXRhO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1vREJTcHlFdmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbW1vbi9zcHlFdmVudHMvRHluYW1vREJTcHlFdmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF0aXZlQXR0cmlidXRlVmFsdWUgfSBmcm9tICdAYXdzLXNkay91dGlsLWR5bmFtb2RiJztcbmltcG9ydCB7IER5bmFtb0RCUmVjb3JkIH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBTcHlFdmVudCB9IGZyb20gJy4vU3B5RXZlbnQnO1xuXG4vLyBhc2Rhc2RcbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1vREJTcHlFdmVudDxURGF0YSA9IGFueT4gZXh0ZW5kcyBTcHlFdmVudCB7XG4gIHNweUV2ZW50VHlwZTogJ0R5bmFtb0RCJztcbiAgZXZlbnROYW1lOiBEeW5hbW9EQlJlY29yZFsnZXZlbnROYW1lJ107XG4gIG5ld0ltYWdlOiBURGF0YTtcbiAga2V5czogUmVjb3JkPHN0cmluZywgTmF0aXZlQXR0cmlidXRlVmFsdWU+O1xuICBvbGRJbWFnZT86IFREYXRhO1xufVxuIl19
@@ -0,0 +1,9 @@
1
+ import { SpyEvent } from './SpyEvent';
2
+ export interface EventBridgeRuleSpyEvent<MessageType = any, EventBridgeDetailType extends string = string> extends SpyEvent {
3
+ spyEventType: 'EventBridgeRule';
4
+ detail: MessageType;
5
+ detailType: EventBridgeDetailType;
6
+ source: string;
7
+ time: string;
8
+ account: string;
9
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRCcmlkZ2VSdWxlU3B5RXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21tb24vc3B5RXZlbnRzL0V2ZW50QnJpZGdlUnVsZVNweUV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcHlFdmVudCB9IGZyb20gJy4vU3B5RXZlbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnJpZGdlUnVsZVNweUV2ZW50PFxuICBNZXNzYWdlVHlwZSA9IGFueSxcbiAgRXZlbnRCcmlkZ2VEZXRhaWxUeXBlIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nXG4+IGV4dGVuZHMgU3B5RXZlbnQge1xuICBzcHlFdmVudFR5cGU6ICdFdmVudEJyaWRnZVJ1bGUnO1xuICBkZXRhaWw6IE1lc3NhZ2VUeXBlO1xuICBkZXRhaWxUeXBlOiBFdmVudEJyaWRnZURldGFpbFR5cGU7XG4gIHNvdXJjZTogc3RyaW5nO1xuICB0aW1lOiBzdHJpbmc7XG4gIGFjY291bnQ6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRCcmlkZ2VSdWxlU3B5RXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21tb24vc3B5RXZlbnRzL0V2ZW50QnJpZGdlUnVsZVNweUV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcHlFdmVudCB9IGZyb20gJy4vU3B5RXZlbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnJpZGdlUnVsZVNweUV2ZW50PFxuICBNZXNzYWdlVHlwZSA9IGFueSxcbiAgRXZlbnRCcmlkZ2VEZXRhaWxUeXBlIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nXG4+IGV4dGVuZHMgU3B5RXZlbnQge1xuICBzcHlFdmVudFR5cGU6ICdFdmVudEJyaWRnZVJ1bGUnO1xuICBkZXRhaWw6IE1lc3NhZ2VUeXBlO1xuICBkZXRhaWxUeXBlOiBFdmVudEJyaWRnZURldGFpbFR5cGU7XG4gIHNvdXJjZTogc3RyaW5nO1xuICB0aW1lOiBzdHJpbmc7XG4gIGFjY291bnQ6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import { SpyEvent } from './SpyEvent';
2
+ export interface EventBridgeSpyEvent<MessageType = any, EventBridgeDetailType extends string = string> extends SpyEvent {
3
+ spyEventType: 'EventBridge';
4
+ detail: MessageType;
5
+ detailType: EventBridgeDetailType;
6
+ source: string;
7
+ time: string;
8
+ account: string;
9
+ }