@vtex/api 6.47.0 → 6.48.1-beta

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 (404) hide show
  1. package/gen/manifest.schema +0 -3
  2. package/lib/{clients/apps → HttpClient}/AppClient.d.ts +3 -3
  3. package/lib/{clients/apps → HttpClient}/AppClient.js +5 -10
  4. package/lib/{clients/apps → HttpClient}/AppGraphQLClient.d.ts +3 -3
  5. package/lib/{clients/apps → HttpClient}/AppGraphQLClient.js +5 -10
  6. package/lib/{clients/external → HttpClient}/ExternalClient.d.ts +3 -3
  7. package/lib/{clients/external → HttpClient}/ExternalClient.js +2 -9
  8. package/lib/HttpClient/GraphQLClient.d.ts +1 -2
  9. package/lib/HttpClient/GraphQLClient.js +1 -4
  10. package/lib/HttpClient/HttpClient.d.ts +5 -6
  11. package/lib/HttpClient/HttpClient.js +21 -63
  12. package/lib/{clients → HttpClient}/IOClient.d.ts +4 -4
  13. package/lib/HttpClient/IOClient.js +14 -0
  14. package/lib/{clients → HttpClient}/IOGraphQLClient.d.ts +4 -4
  15. package/lib/{clients → HttpClient}/IOGraphQLClient.js +2 -2
  16. package/lib/{clients/infra → HttpClient}/InfraClient.d.ts +3 -3
  17. package/lib/{clients/infra → HttpClient}/InfraClient.js +4 -9
  18. package/lib/{clients/janus → HttpClient}/JanusClient.d.ts +3 -3
  19. package/lib/{clients/janus → HttpClient}/JanusClient.js +3 -7
  20. package/lib/HttpClient/factories/index.d.ts +8 -0
  21. package/lib/HttpClient/factories/index.js +31 -0
  22. package/lib/HttpClient/index.d.ts +7 -1
  23. package/lib/HttpClient/index.js +7 -1
  24. package/lib/HttpClient/middlewares/cache.d.ts +2 -8
  25. package/lib/HttpClient/middlewares/cache.js +31 -120
  26. package/lib/HttpClient/middlewares/cancellationToken.d.ts +1 -1
  27. package/lib/HttpClient/middlewares/cancellationToken.js +1 -2
  28. package/lib/HttpClient/middlewares/memoization.js +1 -8
  29. package/lib/HttpClient/middlewares/metrics.js +31 -12
  30. package/lib/HttpClient/middlewares/recorder.d.ts +1 -1
  31. package/lib/HttpClient/middlewares/recorder.js +13 -16
  32. package/lib/HttpClient/middlewares/request.d.ts +10 -0
  33. package/lib/HttpClient/middlewares/request.js +87 -0
  34. package/lib/HttpClient/typings.d.ts +9 -43
  35. package/lib/IODataSource.d.ts +27 -0
  36. package/lib/IODataSource.js +46 -0
  37. package/lib/caches/LRUCache.js +1 -5
  38. package/lib/caches/LRUDiskCache.js +1 -5
  39. package/lib/clients/Apps.d.ts +84 -0
  40. package/lib/clients/Apps.js +326 -0
  41. package/lib/clients/Assets.d.ts +21 -0
  42. package/lib/clients/{infra/Assets.js → Assets.js} +19 -74
  43. package/lib/clients/Billing.d.ts +11 -0
  44. package/lib/clients/{apps/Billing.js → Billing.js} +3 -8
  45. package/lib/clients/BillingMetrics.d.ts +12 -0
  46. package/lib/clients/BillingMetrics.js +10 -0
  47. package/lib/clients/{apps/Builder.d.ts → Builder.d.ts} +11 -12
  48. package/lib/clients/{apps/Builder.js → Builder.js} +22 -49
  49. package/lib/clients/Events.d.ts +6 -0
  50. package/lib/clients/Events.js +19 -0
  51. package/lib/clients/Housekeeper.d.ts +11 -0
  52. package/lib/clients/Housekeeper.js +24 -0
  53. package/lib/clients/ID.d.ts +22 -0
  54. package/lib/clients/ID.js +48 -0
  55. package/lib/clients/IOClients.d.ts +24 -29
  56. package/lib/clients/IOClients.js +26 -36
  57. package/lib/clients/LicenseManager.d.ts +6 -0
  58. package/lib/clients/{janus/LicenseManager.js → LicenseManager.js} +8 -23
  59. package/lib/clients/Logger.d.ts +27 -0
  60. package/lib/clients/Logger.js +32 -0
  61. package/lib/clients/Messages.d.ts +18 -0
  62. package/lib/clients/Messages.js +20 -0
  63. package/lib/clients/MessagesGraphQL.d.ts +63 -0
  64. package/lib/clients/MessagesGraphQL.js +50 -0
  65. package/lib/clients/Metadata.d.ts +25 -0
  66. package/lib/clients/Metadata.js +53 -0
  67. package/lib/clients/Registry.d.ts +61 -0
  68. package/lib/clients/{infra/Registry.js → Registry.js} +33 -93
  69. package/lib/clients/Router.d.ts +33 -0
  70. package/lib/clients/Router.js +50 -0
  71. package/lib/clients/{janus/Segment.d.ts → Segment.d.ts} +11 -7
  72. package/lib/clients/Segment.js +69 -0
  73. package/lib/clients/{janus/Session.d.ts → Session.d.ts} +4 -4
  74. package/lib/clients/{janus/Session.js → Session.js} +13 -24
  75. package/lib/clients/{apps/Settings.d.ts → Settings.d.ts} +4 -5
  76. package/lib/clients/{apps/Settings.js → Settings.js} +20 -14
  77. package/lib/clients/Sphinx.d.ts +12 -0
  78. package/lib/clients/Sphinx.js +19 -0
  79. package/lib/clients/{janus/Tenant.d.ts → Tenant.d.ts} +7 -6
  80. package/lib/clients/Tenant.js +13 -0
  81. package/lib/clients/VBase.d.ts +57 -0
  82. package/lib/clients/VBase.js +116 -0
  83. package/lib/clients/Workspaces.d.ts +17 -0
  84. package/lib/clients/Workspaces.js +38 -0
  85. package/lib/clients/index.d.ts +21 -9
  86. package/lib/clients/index.js +21 -12
  87. package/lib/constants.d.ts +1 -49
  88. package/lib/constants.js +1 -54
  89. package/lib/errors/ResolverError.d.ts +1 -1
  90. package/lib/errors/ResolverError.js +2 -2
  91. package/lib/errors/ResolverWarning.d.ts +1 -1
  92. package/lib/errors/ResolverWarning.js +2 -2
  93. package/lib/index.d.ts +7 -9
  94. package/lib/index.js +6 -8
  95. package/lib/metrics/MetricsAccumulator.d.ts +18 -1
  96. package/lib/metrics/MetricsAccumulator.js +22 -38
  97. package/lib/responses.d.ts +44 -3
  98. package/lib/service/Runtime.d.ts +18 -0
  99. package/lib/service/Runtime.js +57 -0
  100. package/lib/service/{worker/runtime/Service.d.ts → Service.d.ts} +5 -5
  101. package/lib/service/{worker/runtime/Service.js → Service.js} +1 -2
  102. package/lib/service/events/index.d.ts +3 -0
  103. package/lib/service/events/index.js +21 -0
  104. package/lib/service/graphql/index.d.ts +7 -0
  105. package/lib/service/graphql/index.js +33 -0
  106. package/lib/service/graphql/middlewares/error.js +107 -0
  107. package/lib/service/graphql/middlewares/formatters.d.ts +2 -0
  108. package/lib/service/graphql/middlewares/formatters.js +64 -0
  109. package/lib/service/graphql/middlewares/query.d.ts +2 -0
  110. package/lib/service/graphql/middlewares/query.js +32 -0
  111. package/lib/service/graphql/middlewares/response.js +36 -0
  112. package/lib/service/graphql/middlewares/run.d.ts +4 -0
  113. package/lib/service/graphql/middlewares/run.js +55 -0
  114. package/lib/service/graphql/middlewares/schema.d.ts +2 -0
  115. package/lib/service/graphql/middlewares/schema.js +8 -0
  116. package/lib/service/graphql/middlewares/timings.d.ts +2 -0
  117. package/lib/service/graphql/middlewares/timings.js +10 -0
  118. package/lib/service/graphql/middlewares/upload.d.ts +7 -0
  119. package/lib/service/graphql/schema/index.d.ts +3 -0
  120. package/lib/service/graphql/schema/index.js +66 -0
  121. package/lib/service/graphql/schema/messagesLoader.d.ts +4 -0
  122. package/lib/service/graphql/schema/messagesLoader.js +41 -0
  123. package/lib/service/graphql/schema/messagesLoaderV2.d.ts +5 -0
  124. package/lib/service/graphql/schema/messagesLoaderV2.js +44 -0
  125. package/lib/service/{worker/runtime/graphql → graphql}/schema/schemaDirectives/Auth.d.ts +0 -1
  126. package/lib/service/{worker/runtime/graphql → graphql}/schema/schemaDirectives/Auth.js +5 -11
  127. package/lib/service/{worker/runtime/graphql → graphql}/schema/schemaDirectives/Sanitize.d.ts +0 -1
  128. package/lib/service/{worker/runtime/graphql → graphql}/schema/schemaDirectives/Sanitize.js +0 -6
  129. package/lib/service/{worker/runtime/graphql → graphql}/schema/schemaDirectives/SmartCacheDirective.d.ts +0 -1
  130. package/lib/service/{worker/runtime/graphql → graphql}/schema/schemaDirectives/SmartCacheDirective.js +3 -8
  131. package/lib/service/{worker/runtime/graphql/schema/schemaDirectives/TranslateTo.d.ts → graphql/schema/schemaDirectives/Translatable.d.ts} +1 -2
  132. package/lib/service/graphql/schema/schemaDirectives/Translatable.js +54 -0
  133. package/lib/service/graphql/schema/schemaDirectives/TranslatableV2.d.ts +13 -0
  134. package/lib/service/graphql/schema/schemaDirectives/TranslatableV2.js +67 -0
  135. package/lib/service/graphql/schema/schemaDirectives/index.d.ts +13 -0
  136. package/lib/service/graphql/schema/schemaDirectives/index.js +17 -0
  137. package/lib/service/graphql/schema/typeDefs/index.d.ts +16 -0
  138. package/lib/service/graphql/schema/typeDefs/index.js +21 -0
  139. package/lib/service/graphql/schema/typeDefs/ioMessage.d.ts +8 -0
  140. package/lib/service/graphql/schema/typeDefs/ioMessage.js +33 -0
  141. package/lib/service/{worker/runtime/graphql → graphql}/schema/typeDefs/sanitizedString.js +1 -5
  142. package/lib/service/graphql/typings.d.ts +21 -0
  143. package/lib/service/graphql/utils/cacheControl.d.ts +6 -0
  144. package/lib/service/graphql/utils/cacheControl.js +38 -0
  145. package/lib/service/graphql/utils/maxAgeEnum.d.ts +6 -0
  146. package/lib/service/graphql/utils/maxAgeEnum.js +17 -0
  147. package/lib/service/http/index.d.ts +3 -0
  148. package/lib/service/http/index.js +18 -0
  149. package/lib/service/http/middlewares/authTokens.d.ts +3 -0
  150. package/lib/service/http/middlewares/cancellationToken.d.ts +3 -0
  151. package/lib/service/{worker/runtime/http → http}/middlewares/cancellationToken.js +1 -2
  152. package/lib/service/http/middlewares/clients.d.ts +4 -0
  153. package/lib/service/http/middlewares/error.d.ts +3 -0
  154. package/lib/service/{worker/runtime/http → http}/middlewares/error.js +10 -19
  155. package/lib/service/{worker/runtime/http → http}/middlewares/requestStats.d.ts +3 -3
  156. package/lib/service/http/middlewares/setCookie.d.ts +3 -0
  157. package/lib/service/http/middlewares/timings.d.ts +3 -0
  158. package/lib/service/{worker/runtime/http → http}/middlewares/timings.js +8 -21
  159. package/lib/service/http/middlewares/vary.d.ts +3 -0
  160. package/lib/service/{worker/runtime/http → http}/middlewares/vary.js +3 -3
  161. package/lib/service/logger/index.d.ts +28 -2
  162. package/lib/service/logger/index.js +68 -5
  163. package/lib/service/method.d.ts +9 -0
  164. package/lib/service/{worker/runtime/typings.d.ts → typings.d.ts} +36 -70
  165. package/lib/service/utils/compose.d.ts +4 -0
  166. package/lib/service/{worker/runtime/utils → utils}/compose.js +2 -2
  167. package/lib/utils/MineWinsConflictsResolver.d.ts +4 -5
  168. package/lib/utils/MineWinsConflictsResolver.js +17 -23
  169. package/lib/utils/MineWinsConflictsResolver.test.d.ts +1 -0
  170. package/lib/utils/MineWinsConflictsResolver.test.js +134 -0
  171. package/lib/utils/app.d.ts +1 -3
  172. package/lib/utils/app.js +1 -3
  173. package/lib/utils/appsStaleIfError.d.ts +1 -1
  174. package/lib/utils/appsStaleIfError.js +2 -2
  175. package/lib/utils/billingOptions.d.ts +3 -36
  176. package/lib/utils/billingOptions.js +3 -7
  177. package/lib/utils/binding.d.ts +3 -3
  178. package/lib/utils/cancel.d.ts +2 -2
  179. package/lib/utils/cancel.js +1 -2
  180. package/lib/utils/log.d.ts +3 -1
  181. package/lib/utils/log.js +2 -2
  182. package/lib/utils/message.js +1 -4
  183. package/lib/utils/tenant.d.ts +3 -3
  184. package/lib/utils/time.d.ts +2 -4
  185. package/lib/utils/time.js +2 -9
  186. package/lib/utils/unhandled.d.ts +1 -0
  187. package/lib/{service/worker/listeners.js → utils/unhandled.js} +15 -9
  188. package/package.json +2 -2
  189. package/CHANGELOG.md +0 -1846
  190. package/lib/HttpClient/agents.d.ts +0 -3
  191. package/lib/HttpClient/agents.js +0 -24
  192. package/lib/HttpClient/middlewares/request/HttpAgentSingleton.d.ts +0 -11
  193. package/lib/HttpClient/middlewares/request/HttpAgentSingleton.js +0 -30
  194. package/lib/HttpClient/middlewares/request/index.d.ts +0 -18
  195. package/lib/HttpClient/middlewares/request/index.js +0 -84
  196. package/lib/HttpClient/middlewares/request/setupAxios/index.d.ts +0 -1
  197. package/lib/HttpClient/middlewares/request/setupAxios/index.js +0 -20
  198. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/exponentialBackoff.d.ts +0 -2
  199. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/exponentialBackoff.js +0 -53
  200. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/index.d.ts +0 -2
  201. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/index.js +0 -7
  202. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/index.d.ts +0 -8
  203. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/index.js +0 -53
  204. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/spanSetup.d.ts +0 -4
  205. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/spanSetup.js +0 -29
  206. package/lib/HttpClient/middlewares/tracing.d.ts +0 -15
  207. package/lib/HttpClient/middlewares/tracing.js +0 -56
  208. package/lib/clients/IOClient.js +0 -19
  209. package/lib/clients/apps/Billing.d.ts +0 -12
  210. package/lib/clients/apps/MessagesGraphQL.d.ts +0 -61
  211. package/lib/clients/apps/MessagesGraphQL.js +0 -121
  212. package/lib/clients/apps/catalogGraphQL/brand.d.ts +0 -13
  213. package/lib/clients/apps/catalogGraphQL/brand.js +0 -18
  214. package/lib/clients/apps/catalogGraphQL/category.d.ts +0 -11
  215. package/lib/clients/apps/catalogGraphQL/category.js +0 -16
  216. package/lib/clients/apps/catalogGraphQL/index.d.ts +0 -22
  217. package/lib/clients/apps/catalogGraphQL/index.js +0 -88
  218. package/lib/clients/apps/catalogGraphQL/product.d.ts +0 -25
  219. package/lib/clients/apps/catalogGraphQL/product.js +0 -30
  220. package/lib/clients/apps/catalogGraphQL/sku.d.ts +0 -26
  221. package/lib/clients/apps/catalogGraphQL/sku.js +0 -30
  222. package/lib/clients/apps/index.d.ts +0 -7
  223. package/lib/clients/apps/index.js +0 -12
  224. package/lib/clients/external/ID.d.ts +0 -23
  225. package/lib/clients/external/ID.js +0 -60
  226. package/lib/clients/external/Masterdata.d.ts +0 -94
  227. package/lib/clients/external/Masterdata.js +0 -224
  228. package/lib/clients/external/PaymentProvider.d.ts +0 -31
  229. package/lib/clients/external/PaymentProvider.js +0 -42
  230. package/lib/clients/external/index.d.ts +0 -4
  231. package/lib/clients/external/index.js +0 -9
  232. package/lib/clients/infra/Apps.d.ts +0 -88
  233. package/lib/clients/infra/Apps.js +0 -508
  234. package/lib/clients/infra/Assets.d.ts +0 -34
  235. package/lib/clients/infra/BillingMetrics.d.ts +0 -13
  236. package/lib/clients/infra/BillingMetrics.js +0 -15
  237. package/lib/clients/infra/Events.d.ts +0 -12
  238. package/lib/clients/infra/Events.js +0 -33
  239. package/lib/clients/infra/Housekeeper.d.ts +0 -10
  240. package/lib/clients/infra/Housekeeper.js +0 -30
  241. package/lib/clients/infra/Metadata.d.ts +0 -26
  242. package/lib/clients/infra/Metadata.js +0 -83
  243. package/lib/clients/infra/Registry.d.ts +0 -59
  244. package/lib/clients/infra/Router.d.ts +0 -34
  245. package/lib/clients/infra/Router.js +0 -81
  246. package/lib/clients/infra/Sphinx.d.ts +0 -13
  247. package/lib/clients/infra/Sphinx.js +0 -29
  248. package/lib/clients/infra/VBase.d.ts +0 -60
  249. package/lib/clients/infra/VBase.js +0 -196
  250. package/lib/clients/infra/Workspaces.d.ts +0 -18
  251. package/lib/clients/infra/Workspaces.js +0 -65
  252. package/lib/clients/infra/index.d.ts +0 -12
  253. package/lib/clients/infra/index.js +0 -17
  254. package/lib/clients/janus/LicenseManager.d.ts +0 -7
  255. package/lib/clients/janus/Segment.js +0 -88
  256. package/lib/clients/janus/Tenant.js +0 -28
  257. package/lib/clients/janus/index.d.ts +0 -5
  258. package/lib/clients/janus/index.js +0 -10
  259. package/lib/service/index.d.ts +0 -2
  260. package/lib/service/index.js +0 -30
  261. package/lib/service/loaders.d.ts +0 -8
  262. package/lib/service/loaders.js +0 -54
  263. package/lib/service/logger/console.d.ts +0 -10
  264. package/lib/service/logger/console.js +0 -36
  265. package/lib/service/logger/logger.d.ts +0 -29
  266. package/lib/service/logger/logger.js +0 -61
  267. package/lib/service/logger/metricsLogger.d.ts +0 -40
  268. package/lib/service/logger/metricsLogger.js +0 -149
  269. package/lib/service/master.d.ts +0 -2
  270. package/lib/service/master.js +0 -87
  271. package/lib/service/metrics/requestMetricsMiddleware.d.ts +0 -2
  272. package/lib/service/metrics/requestMetricsMiddleware.js +0 -44
  273. package/lib/service/tracing/TracerSingleton.d.ts +0 -7
  274. package/lib/service/tracing/TracerSingleton.js +0 -48
  275. package/lib/service/tracing/metrics/MetricNames.d.ts +0 -60
  276. package/lib/service/tracing/metrics/MetricNames.js +0 -44
  277. package/lib/service/tracing/metrics/instruments.d.ts +0 -9
  278. package/lib/service/tracing/metrics/instruments.js +0 -11
  279. package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.d.ts +0 -9
  280. package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.js +0 -25
  281. package/lib/service/tracing/tracingMiddlewares.d.ts +0 -5
  282. package/lib/service/tracing/tracingMiddlewares.js +0 -107
  283. package/lib/service/worker/index.d.ts +0 -11
  284. package/lib/service/worker/index.js +0 -195
  285. package/lib/service/worker/listeners.d.ts +0 -3
  286. package/lib/service/worker/runtime/builtIn/handlers.d.ts +0 -4
  287. package/lib/service/worker/runtime/builtIn/handlers.js +0 -30
  288. package/lib/service/worker/runtime/builtIn/middlewares.d.ts +0 -4
  289. package/lib/service/worker/runtime/builtIn/middlewares.js +0 -40
  290. package/lib/service/worker/runtime/events/index.d.ts +0 -4
  291. package/lib/service/worker/runtime/events/index.js +0 -46
  292. package/lib/service/worker/runtime/events/middlewares/body.d.ts +0 -3
  293. package/lib/service/worker/runtime/events/middlewares/body.js +0 -22
  294. package/lib/service/worker/runtime/events/middlewares/context.d.ts +0 -3
  295. package/lib/service/worker/runtime/events/middlewares/context.js +0 -22
  296. package/lib/service/worker/runtime/events/router.d.ts +0 -2
  297. package/lib/service/worker/runtime/events/router.js +0 -27
  298. package/lib/service/worker/runtime/graphql/index.d.ts +0 -6
  299. package/lib/service/worker/runtime/graphql/index.js +0 -27
  300. package/lib/service/worker/runtime/graphql/middlewares/context.d.ts +0 -2
  301. package/lib/service/worker/runtime/graphql/middlewares/context.js +0 -16
  302. package/lib/service/worker/runtime/graphql/middlewares/error.js +0 -93
  303. package/lib/service/worker/runtime/graphql/middlewares/query.d.ts +0 -2
  304. package/lib/service/worker/runtime/graphql/middlewares/query.js +0 -52
  305. package/lib/service/worker/runtime/graphql/middlewares/response.js +0 -38
  306. package/lib/service/worker/runtime/graphql/middlewares/run.d.ts +0 -2
  307. package/lib/service/worker/runtime/graphql/middlewares/run.js +0 -19
  308. package/lib/service/worker/runtime/graphql/middlewares/updateSchema.d.ts +0 -4
  309. package/lib/service/worker/runtime/graphql/middlewares/updateSchema.js +0 -28
  310. package/lib/service/worker/runtime/graphql/middlewares/upload.d.ts +0 -4
  311. package/lib/service/worker/runtime/graphql/schema/index.d.ts +0 -7
  312. package/lib/service/worker/runtime/graphql/schema/index.js +0 -31
  313. package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.d.ts +0 -6
  314. package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.js +0 -79
  315. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/CacheControl.d.ts +0 -7
  316. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/CacheControl.js +0 -37
  317. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.d.ts +0 -11
  318. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.js +0 -61
  319. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Metric.d.ts +0 -7
  320. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Metric.js +0 -40
  321. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.d.ts +0 -6
  322. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.js +0 -34
  323. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.d.ts +0 -7
  324. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.js +0 -39
  325. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslateTo.js +0 -33
  326. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.d.ts +0 -22
  327. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.js +0 -36
  328. package/lib/service/worker/runtime/graphql/schema/typeDefs/index.d.ts +0 -7
  329. package/lib/service/worker/runtime/graphql/schema/typeDefs/index.js +0 -12
  330. package/lib/service/worker/runtime/graphql/typings.d.ts +0 -31
  331. package/lib/service/worker/runtime/graphql/utils/cacheControl.d.ts +0 -1
  332. package/lib/service/worker/runtime/graphql/utils/cacheControl.js +0 -32
  333. package/lib/service/worker/runtime/graphql/utils/error.d.ts +0 -1
  334. package/lib/service/worker/runtime/graphql/utils/error.js +0 -76
  335. package/lib/service/worker/runtime/graphql/utils/translations.d.ts +0 -14
  336. package/lib/service/worker/runtime/graphql/utils/translations.js +0 -38
  337. package/lib/service/worker/runtime/http/index.d.ts +0 -5
  338. package/lib/service/worker/runtime/http/index.js +0 -58
  339. package/lib/service/worker/runtime/http/middlewares/authTokens.d.ts +0 -3
  340. package/lib/service/worker/runtime/http/middlewares/cancellationToken.d.ts +0 -3
  341. package/lib/service/worker/runtime/http/middlewares/clients.d.ts +0 -4
  342. package/lib/service/worker/runtime/http/middlewares/context.d.ts +0 -4
  343. package/lib/service/worker/runtime/http/middlewares/context.js +0 -36
  344. package/lib/service/worker/runtime/http/middlewares/error.d.ts +0 -2
  345. package/lib/service/worker/runtime/http/middlewares/rateLimit.d.ts +0 -6
  346. package/lib/service/worker/runtime/http/middlewares/rateLimit.js +0 -42
  347. package/lib/service/worker/runtime/http/middlewares/setCookie.d.ts +0 -3
  348. package/lib/service/worker/runtime/http/middlewares/settings.d.ts +0 -9
  349. package/lib/service/worker/runtime/http/middlewares/settings.js +0 -44
  350. package/lib/service/worker/runtime/http/middlewares/timings.d.ts +0 -3
  351. package/lib/service/worker/runtime/http/middlewares/vary.d.ts +0 -3
  352. package/lib/service/worker/runtime/http/router.d.ts +0 -2
  353. package/lib/service/worker/runtime/http/router.js +0 -23
  354. package/lib/service/worker/runtime/http/routes.d.ts +0 -19
  355. package/lib/service/worker/runtime/http/routes.js +0 -12
  356. package/lib/service/worker/runtime/method.d.ts +0 -9
  357. package/lib/service/worker/runtime/statusTrack.d.ts +0 -14
  358. package/lib/service/worker/runtime/statusTrack.js +0 -37
  359. package/lib/service/worker/runtime/utils/compose.d.ts +0 -5
  360. package/lib/service/worker/runtime/utils/context.d.ts +0 -2
  361. package/lib/service/worker/runtime/utils/context.js +0 -40
  362. package/lib/service/worker/runtime/utils/diff.d.ts +0 -12
  363. package/lib/service/worker/runtime/utils/diff.js +0 -21
  364. package/lib/service/worker/runtime/utils/recorder.d.ts +0 -8
  365. package/lib/service/worker/runtime/utils/recorder.js +0 -37
  366. package/lib/service/worker/runtime/utils/tokenBucket.d.ts +0 -2
  367. package/lib/service/worker/runtime/utils/tokenBucket.js +0 -16
  368. package/lib/tracing/LogEvents.d.ts +0 -31
  369. package/lib/tracing/LogEvents.js +0 -3
  370. package/lib/tracing/LogFields.d.ts +0 -66
  371. package/lib/tracing/LogFields.js +0 -3
  372. package/lib/tracing/Tags.d.ts +0 -81
  373. package/lib/tracing/Tags.js +0 -7
  374. package/lib/tracing/UserLandTracer.d.ts +0 -27
  375. package/lib/tracing/UserLandTracer.js +0 -56
  376. package/lib/tracing/errorReporting/ErrorReport.d.ts +0 -31
  377. package/lib/tracing/errorReporting/ErrorReport.js +0 -70
  378. package/lib/tracing/index.d.ts +0 -9
  379. package/lib/tracing/index.js +0 -19
  380. package/lib/tracing/spanReference/SpanReferenceTypes.d.ts +0 -4
  381. package/lib/tracing/spanReference/SpanReferenceTypes.js +0 -7
  382. package/lib/tracing/spanReference/createSpanReference.d.ts +0 -3
  383. package/lib/tracing/spanReference/createSpanReference.js +0 -8
  384. package/lib/tracing/utils.d.ts +0 -13
  385. package/lib/tracing/utils.js +0 -40
  386. package/lib/utils/conflicts.mock.d.ts +0 -17
  387. package/lib/utils/conflicts.mock.js +0 -27
  388. /package/lib/service/{worker/runtime/graphql → graphql}/middlewares/error.d.ts +0 -0
  389. /package/lib/service/{worker/runtime/graphql → graphql}/middlewares/response.d.ts +0 -0
  390. /package/lib/service/{worker/runtime/graphql → graphql}/middlewares/upload.js +0 -0
  391. /package/lib/service/{worker/runtime/graphql → graphql}/schema/typeDefs/ioUpload.d.ts +0 -0
  392. /package/lib/service/{worker/runtime/graphql → graphql}/schema/typeDefs/ioUpload.js +0 -0
  393. /package/lib/service/{worker/runtime/graphql → graphql}/schema/typeDefs/sanitizedString.d.ts +0 -0
  394. /package/lib/service/{worker/runtime/graphql → graphql}/typings.js +0 -0
  395. /package/lib/service/{worker/runtime/utils/toArray.d.ts → graphql/utils/array.d.ts} +0 -0
  396. /package/lib/service/{worker/runtime/utils/toArray.js → graphql/utils/array.js} +0 -0
  397. /package/lib/service/{worker/runtime/graphql → graphql}/utils/pathname.d.ts +0 -0
  398. /package/lib/service/{worker/runtime/graphql → graphql}/utils/pathname.js +0 -0
  399. /package/lib/service/{worker/runtime/http → http}/middlewares/authTokens.js +0 -0
  400. /package/lib/service/{worker/runtime/http → http}/middlewares/clients.js +0 -0
  401. /package/lib/service/{worker/runtime/http → http}/middlewares/requestStats.js +0 -0
  402. /package/lib/service/{worker/runtime/http → http}/middlewares/setCookie.js +0 -0
  403. /package/lib/service/{worker/runtime/method.js → method.js} +0 -0
  404. /package/lib/service/{worker/runtime/typings.js → typings.js} +0 -0
@@ -1,195 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const http_1 = require("http");
7
- const koa_1 = __importDefault(require("koa"));
8
- const koa_compress_1 = __importDefault(require("koa-compress"));
9
- const koa_router_1 = __importDefault(require("koa-router"));
10
- const ramda_1 = require("ramda");
11
- const constants_1 = require("../../constants");
12
- const MetricsAccumulator_1 = require("../../metrics/MetricsAccumulator");
13
- const loaders_1 = require("../loaders");
14
- const console_1 = require("../logger/console");
15
- const logger_1 = require("../logger/logger");
16
- const requestMetricsMiddleware_1 = require("../metrics/requestMetricsMiddleware");
17
- const TracerSingleton_1 = require("../tracing/TracerSingleton");
18
- const tracingMiddlewares_1 = require("../tracing/tracingMiddlewares");
19
- const listeners_1 = require("./listeners");
20
- const handlers_1 = require("./runtime/builtIn/handlers");
21
- const middlewares_1 = require("./runtime/builtIn/middlewares");
22
- const events_1 = require("./runtime/events");
23
- const router_1 = require("./runtime/events/router");
24
- const graphql_1 = require("./runtime/graphql");
25
- const http_2 = require("./runtime/http");
26
- const error_1 = require("./runtime/http/middlewares/error");
27
- const rateLimit_1 = require("./runtime/http/middlewares/rateLimit");
28
- const router_2 = require("./runtime/http/router");
29
- const routes_1 = require("./runtime/http/routes");
30
- const statusTrack_1 = require("./runtime/statusTrack");
31
- const tokenBucket_1 = require("./runtime/utils/tokenBucket");
32
- const upSignal = () => {
33
- const data = JSON.stringify({ statusTrack: true });
34
- const options = {
35
- headers: {
36
- 'Content-Type': 'application/json',
37
- },
38
- host: 'localhost',
39
- method: 'POST',
40
- path: '/_up',
41
- port: 5000,
42
- };
43
- const req = http_1.request(options);
44
- req.write(data);
45
- req.end();
46
- };
47
- const isUpSignal = (message) => message === constants_1.UP_SIGNAL;
48
- const onMessage = (service) => (message) => {
49
- if (isUpSignal(message)) {
50
- upSignal();
51
- routes_1.logAvailableRoutes(service);
52
- }
53
- else if (statusTrack_1.isStatusTrack(message)) {
54
- statusTrack_1.trackStatus();
55
- }
56
- else {
57
- listeners_1.logger.warn({
58
- content: message,
59
- message: 'Master sent message',
60
- pid: process.pid,
61
- });
62
- }
63
- };
64
- const createAppHttpHandlers = ({ config: { routes, clients } }, serviceJSON, globalLimiter) => {
65
- if (routes && clients) {
66
- return Object.keys(routes).reduce((acc, routeId) => {
67
- var _a;
68
- const serviceRoute = (_a = serviceJSON.routes) === null || _a === void 0 ? void 0 : _a[routeId];
69
- if (!serviceRoute) {
70
- throw new Error(`Could not find route: ${routeId}. Please add ${routeId} route in your service.json file`);
71
- }
72
- const { path: servicePath, public: publicRoute = false, extensible = false, } = serviceRoute;
73
- if (publicRoute || extensible) {
74
- acc.pub[routeId] = {
75
- handler: http_2.createPublicHttpRoute(clients, routes[routeId], serviceRoute, routeId, globalLimiter),
76
- path: servicePath,
77
- };
78
- }
79
- else {
80
- acc.pvt[routeId] = {
81
- handler: http_2.createPrivateHttpRoute(clients, routes[routeId], serviceRoute, routeId, globalLimiter),
82
- path: `/:account/:workspace${servicePath.replace(/\*([^/]*)/g, ':$1*')}`,
83
- };
84
- }
85
- return acc;
86
- }, {
87
- pub: {},
88
- pvt: {},
89
- });
90
- }
91
- return null;
92
- };
93
- const routerFromPrivateHttpHandlers = (routes) => Object.values(routes).reduce((router, { handler, path }) => router.all(path, handler), new koa_router_1.default());
94
- const createAppGraphQLHandler = ({ config: { graphql, clients } }, { routes }, globalLimiter) => {
95
- const route = routes === null || routes === void 0 ? void 0 : routes[graphql_1.GRAPHQL_ROUTE];
96
- if (graphql && route && clients) {
97
- return {
98
- pvt: {
99
- [graphql_1.GRAPHQL_ROUTE]: {
100
- handler: graphql_1.createGraphQLRoute(graphql, clients, route, graphql_1.GRAPHQL_ROUTE, globalLimiter),
101
- path: `/:account/:workspace${route.path}`,
102
- },
103
- },
104
- };
105
- }
106
- return null;
107
- };
108
- const createAppEventHandlers = ({ config: { events, clients } }, serviceJSON, globalLimiter) => {
109
- if (events && clients) {
110
- return Object.keys(events).reduce((acc, eventId) => {
111
- var _a;
112
- const serviceEvent = (_a = serviceJSON.events) === null || _a === void 0 ? void 0 : _a[eventId];
113
- acc[eventId] = events_1.createEventHandler(clients, eventId, events[eventId], serviceEvent, globalLimiter);
114
- return acc;
115
- }, {});
116
- }
117
- return null;
118
- };
119
- const createRuntimeHttpHandlers = (appEventHandlers, serviceJSON) => ({
120
- pvt: {
121
- __events: {
122
- handler: router_1.routerFromEventHandlers(appEventHandlers),
123
- path: '/:account/:workspace/_events',
124
- },
125
- __healthCheck: {
126
- handler: handlers_1.healthcheckHandler(serviceJSON),
127
- path: '/healthcheck',
128
- },
129
- __metricsLogger: {
130
- handler: handlers_1.metricsLoggerHandler,
131
- path: '/_metrics',
132
- },
133
- __statusTrack: {
134
- handler: statusTrack_1.statusTrackHandler,
135
- path: '/_status',
136
- },
137
- __whoami: {
138
- handler: handlers_1.whoAmIHandler(serviceJSON),
139
- path: '/:account/:workspace/_whoami',
140
- },
141
- },
142
- });
143
- const scaleClientCaches = (scaleFactor, options) => Object.entries(options || {}).forEach(([name, opts]) => {
144
- if (opts && opts.memoryCache && scaleFactor > 1) {
145
- const previous = opts.memoryCache.storage.max;
146
- const current = previous / scaleFactor;
147
- opts.memoryCache.storage.max = current;
148
- console_1.logOnceToDevConsole(`Scaling ${name} cache capacity from ${previous} to ${current}`, logger_1.LogLevel.Warn);
149
- }
150
- });
151
- exports.startWorker = (serviceJSON) => {
152
- var _a, _b;
153
- listeners_1.addProcessListeners();
154
- const tracer = TracerSingleton_1.TracerSingleton.getTracer();
155
- const app = new koa_1.default();
156
- app.proxy = true;
157
- app
158
- .use(error_1.error)
159
- .use(middlewares_1.prometheusLoggerMiddleware())
160
- .use(tracingMiddlewares_1.addTracingMiddleware(tracer))
161
- .use(requestMetricsMiddleware_1.addRequestMetricsMiddleware())
162
- .use(middlewares_1.addMetricsLoggerMiddleware())
163
- .use(rateLimit_1.concurrentRateLimiter((_a = serviceJSON === null || serviceJSON === void 0 ? void 0 : serviceJSON.rateLimitPerReplica) === null || _a === void 0 ? void 0 : _a.concurrent))
164
- .use(koa_compress_1.default())
165
- .use(middlewares_1.recorderMiddleware);
166
- const service = loaders_1.getService();
167
- const { config: { clients } } = service;
168
- if (clients) {
169
- scaleClientCaches(serviceJSON.workers, clients.options);
170
- }
171
- const globalLimiter = tokenBucket_1.createTokenBucket((_b = serviceJSON === null || serviceJSON === void 0 ? void 0 : serviceJSON.rateLimitPerReplica) === null || _b === void 0 ? void 0 : _b.perMinute);
172
- const appHttpHandlers = createAppHttpHandlers(service, serviceJSON, globalLimiter);
173
- const appEventHandlers = createAppEventHandlers(service, serviceJSON, globalLimiter);
174
- const appGraphQLHandlers = createAppGraphQLHandler(service, serviceJSON, globalLimiter);
175
- const runtimeHttpHandlers = createRuntimeHttpHandlers(appEventHandlers, serviceJSON);
176
- const httpHandlers = [
177
- appHttpHandlers,
178
- appGraphQLHandlers,
179
- runtimeHttpHandlers,
180
- ]
181
- .filter(x => x != null)
182
- // TODO: Fix ramda typings. Apparently there was an update that broke things
183
- .reduce(ramda_1.mergeDeepRight);
184
- if (httpHandlers === null || httpHandlers === void 0 ? void 0 : httpHandlers.pub) {
185
- const publicHandlersRouter = router_2.routerFromPublicHttpHandlers(httpHandlers.pub);
186
- app.use(publicHandlersRouter);
187
- }
188
- if (httpHandlers === null || httpHandlers === void 0 ? void 0 : httpHandlers.pvt) {
189
- const privateHandlersRouter = routerFromPrivateHttpHandlers(httpHandlers.pvt);
190
- app.use(privateHandlersRouter.routes());
191
- }
192
- process.on('message', onMessage(serviceJSON));
193
- return app;
194
- };
195
- global.metrics = new MetricsAccumulator_1.MetricsAccumulator();
@@ -1,3 +0,0 @@
1
- import { Logger } from '../logger';
2
- export declare const logger: Logger;
3
- export declare const addProcessListeners: () => void;
@@ -1,4 +0,0 @@
1
- import { ServiceContext, ServiceJSON } from '../typings';
2
- export declare const whoAmIHandler: ({ events, routes, }: ServiceJSON) => (ctx: ServiceContext<import("../../../..").IOClients, import("../typings").RecorderState, import("../typings").ParamsContext>) => void;
3
- export declare const healthcheckHandler: ({ events, routes, }: ServiceJSON) => (ctx: ServiceContext<import("../../../..").IOClients, import("../typings").RecorderState, import("../typings").ParamsContext>) => void;
4
- export declare const metricsLoggerHandler: (ctx: ServiceContext<import("../../../..").IOClients, import("../typings").RecorderState, import("../typings").ParamsContext>) => void;
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.whoAmIHandler = ({ events, routes, }) => (ctx) => {
4
- var _a, _b;
5
- ctx.requestHandlerName = 'builtin:whoami';
6
- (_b = (_a = ctx.tracing) === null || _a === void 0 ? void 0 : _a.currentSpan) === null || _b === void 0 ? void 0 : _b.setOperationName(ctx.requestHandlerName);
7
- ctx.status = 200;
8
- ctx.body = {
9
- events,
10
- routes,
11
- };
12
- ctx.set('Cache-Control', 'public, max-age=86400'); // cache for 24 hours
13
- };
14
- exports.healthcheckHandler = ({ events, routes, }) => (ctx) => {
15
- var _a, _b;
16
- ctx.requestHandlerName = 'builtin:healthcheck';
17
- (_b = (_a = ctx.tracing) === null || _a === void 0 ? void 0 : _a.currentSpan) === null || _b === void 0 ? void 0 : _b.setOperationName(ctx.requestHandlerName);
18
- ctx.status = 200;
19
- ctx.body = {
20
- events,
21
- routes,
22
- };
23
- };
24
- exports.metricsLoggerHandler = (ctx) => {
25
- var _a, _b;
26
- ctx.requestHandlerName = 'builtin:metrics-logger';
27
- (_b = (_a = ctx.tracing) === null || _a === void 0 ? void 0 : _a.currentSpan) === null || _b === void 0 ? void 0 : _b.setOperationName(ctx.requestHandlerName);
28
- ctx.status = 200;
29
- ctx.body = ctx.metricsLogger.getSummaries();
30
- };
@@ -1,4 +0,0 @@
1
- import { ServiceContext } from '../typings';
2
- export declare function recorderMiddleware(ctx: ServiceContext, next: () => Promise<void>): Promise<void>;
3
- export declare const addMetricsLoggerMiddleware: () => (ctx: ServiceContext<import("../../../..").IOClients, import("../typings").RecorderState, import("../typings").ParamsContext>, next: () => Promise<void>) => Promise<void>;
4
- export declare const prometheusLoggerMiddleware: () => (ctx: ServiceContext<import("../../../..").IOClients, import("../typings").RecorderState, import("../typings").ParamsContext>, next: () => Promise<void>) => Promise<void>;
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const prom_client_1 = require("prom-client");
4
- const constants_1 = require("../../../../constants");
5
- const metricsLogger_1 = require("../../../logger/metricsLogger");
6
- const EventLoopLagMeasurer_1 = require("../../../tracing/metrics/measurers/EventLoopLagMeasurer");
7
- const recorder_1 = require("../utils/recorder");
8
- async function recorderMiddleware(ctx, next) {
9
- const recorder = new recorder_1.Recorder();
10
- ctx.state.recorder = recorder;
11
- await next();
12
- recorder.flush(ctx);
13
- return;
14
- }
15
- exports.recorderMiddleware = recorderMiddleware;
16
- exports.addMetricsLoggerMiddleware = () => {
17
- const metricsLogger = new metricsLogger_1.MetricsLogger();
18
- return (ctx, next) => {
19
- ctx.metricsLogger = metricsLogger;
20
- return next();
21
- };
22
- };
23
- exports.prometheusLoggerMiddleware = () => {
24
- prom_client_1.collectDefaultMetrics();
25
- const eventLoopLagMeasurer = new EventLoopLagMeasurer_1.EventLoopLagMeasurer();
26
- eventLoopLagMeasurer.start();
27
- return async (ctx, next) => {
28
- if (ctx.request.path !== '/metrics') {
29
- return next();
30
- }
31
- const routeId = ctx.get(constants_1.COLOSSUS_ROUTE_ID_HEADER);
32
- if (routeId) {
33
- return next();
34
- }
35
- await eventLoopLagMeasurer.updateInstrumentsAndReset();
36
- ctx.set('Content-Type', prom_client_1.register.contentType);
37
- ctx.body = await prom_client_1.register.metrics();
38
- ctx.status = 200;
39
- };
40
- };
@@ -1,4 +0,0 @@
1
- import TokenBucket from 'tokenbucket';
2
- import { IOClients } from '../../../../clients/IOClients';
3
- import { ClientsConfig, ParamsContext, RecorderState, ServiceContext, ServiceEvent } from '../typings';
4
- export declare const createEventHandler: <T extends IOClients, U extends RecorderState, V extends ParamsContext>(clientsConfig: ClientsConfig<T>, eventId: string, handler: import("koa-compose").Middleware<import("../typings").EventContext<T, U>> | import("koa-compose").Middleware<import("../typings").EventContext<T, U>>[], serviceEvent: ServiceEvent | undefined, globalLimiter: TokenBucket | undefined) => import("koa-compose").ComposedMiddleware<ServiceContext<T, U, V>>;
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tracingMiddlewares_1 = require("../../../tracing/tracingMiddlewares");
4
- const clients_1 = require("../http/middlewares/clients");
5
- const rateLimit_1 = require("../http/middlewares/rateLimit");
6
- const settings_1 = require("../http/middlewares/settings");
7
- const timings_1 = require("../http/middlewares/timings");
8
- const compose_1 = require("../utils/compose");
9
- const toArray_1 = require("../utils/toArray");
10
- const body_1 = require("./middlewares/body");
11
- const context_1 = require("./middlewares/context");
12
- exports.createEventHandler = (clientsConfig, eventId, handler, serviceEvent, globalLimiter) => {
13
- var _a, _b;
14
- const { implementation, options } = clientsConfig;
15
- const middlewares = toArray_1.toArray(handler);
16
- const pipeline = [
17
- tracingMiddlewares_1.nameSpanOperationMiddleware('event-handler', eventId),
18
- context_1.eventContextMiddleware,
19
- body_1.parseBodyMiddleware,
20
- clients_1.clients(implementation, options),
21
- ...((serviceEvent === null || serviceEvent === void 0 ? void 0 : serviceEvent.settingsType) === 'workspace' || (serviceEvent === null || serviceEvent === void 0 ? void 0 : serviceEvent.settingsType) === 'userAndWorkspace' ? [settings_1.getServiceSettings()] : []),
22
- timings_1.timings,
23
- rateLimit_1.concurrentRateLimiter((_a = serviceEvent === null || serviceEvent === void 0 ? void 0 : serviceEvent.rateLimitPerReplica) === null || _a === void 0 ? void 0 : _a.concurrent),
24
- rateLimit_1.perMinuteRateLimiter((_b = serviceEvent === null || serviceEvent === void 0 ? void 0 : serviceEvent.rateLimitPerReplica) === null || _b === void 0 ? void 0 : _b.perMinute, globalLimiter),
25
- tracingMiddlewares_1.traceUserLandRemainingPipelineMiddleware(),
26
- contextAdapter(middlewares),
27
- ];
28
- return compose_1.compose(pipeline);
29
- };
30
- function contextAdapter(middlewares) {
31
- return async function middlewareCascade(ctx) {
32
- const ctxEvent = {
33
- body: ctx.state.body,
34
- clients: ctx.clients,
35
- key: ctx.vtex.eventInfo ? ctx.vtex.eventInfo.key : '',
36
- metrics: ctx.metrics,
37
- sender: ctx.vtex.eventInfo ? ctx.vtex.eventInfo.sender : '',
38
- state: ctx.state,
39
- subject: ctx.vtex.eventInfo ? ctx.vtex.eventInfo.subject : '',
40
- timings: ctx.timings,
41
- vtex: ctx.vtex,
42
- };
43
- await compose_1.composeForEvents(middlewares)(ctxEvent);
44
- ctx.status = 204;
45
- };
46
- }
@@ -1,3 +0,0 @@
1
- import { IOClients } from '../../../../../clients/IOClients';
2
- import { ParamsContext, RecorderState, ServiceContext } from '../../typings';
3
- export declare function parseBodyMiddleware<T extends IOClients, U extends RecorderState, V extends ParamsContext>(ctx: ServiceContext<T, U, V>, next: () => Promise<void>): Promise<void>;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const co_body_1 = __importDefault(require("co-body"));
7
- const logger_1 = require("../../../../logger");
8
- const console_1 = require("./../../../../logger/console");
9
- async function parseBodyMiddleware(ctx, next) {
10
- try {
11
- ctx.state.body = await co_body_1.default(ctx.req);
12
- }
13
- catch (err) {
14
- const msg = `Error parsing event body: ${err.message || err}`;
15
- ctx.status = 500;
16
- ctx.body = msg;
17
- console_1.logOnceToDevConsole(msg, logger_1.LogLevel.Error);
18
- return;
19
- }
20
- await next();
21
- }
22
- exports.parseBodyMiddleware = parseBodyMiddleware;
@@ -1,3 +0,0 @@
1
- import { IOClients } from '../../../../../clients/IOClients';
2
- import { ParamsContext, RecorderState, ServiceContext } from '../../typings';
3
- export declare function eventContextMiddleware<T extends IOClients, U extends RecorderState, V extends ParamsContext>(ctx: ServiceContext<T, U, V>, next: () => Promise<void>): Promise<void>;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const constants_1 = require("../../../../../constants");
4
- const context_1 = require("../../utils/context");
5
- async function eventContextMiddleware(ctx, next) {
6
- const { request: { header } } = ctx;
7
- ctx.vtex = {
8
- ...context_1.prepareHandlerCtx(header, ctx.tracing),
9
- eventInfo: {
10
- key: header[constants_1.EVENT_KEY_HEADER],
11
- sender: header[constants_1.EVENT_SENDER_HEADER],
12
- subject: header[constants_1.EVENT_SUBJECT_HEADER],
13
- },
14
- route: {
15
- id: header[constants_1.EVENT_HANDLER_ID_HEADER],
16
- params: {},
17
- type: 'event',
18
- },
19
- };
20
- await next();
21
- }
22
- exports.eventContextMiddleware = eventContextMiddleware;
@@ -1,2 +0,0 @@
1
- import { ServiceContext } from '../typings';
2
- export declare const routerFromEventHandlers: (events: Record<string, import("koa-compose").Middleware<ServiceContext<import("../../../..").IOClients, import("../typings").RecorderState, import("../typings").ParamsContext>>> | null) => (ctx: ServiceContext<import("../../../..").IOClients, import("../typings").RecorderState, import("../typings").ParamsContext>, next: () => Promise<void>) => Promise<void>;
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const constants_1 = require("../../../../constants");
4
- const logger_1 = require("../../../logger");
5
- const console_1 = require("./../../../logger/console");
6
- exports.routerFromEventHandlers = (events) => {
7
- return async (ctx, next) => {
8
- const handlerId = ctx.get(constants_1.EVENT_HANDLER_ID_HEADER);
9
- if (!handlerId || !events) {
10
- return next();
11
- }
12
- if (handlerId == null) {
13
- ctx.response.status = 400;
14
- ctx.response.body = `Request header doesn't have the field x-event-handler-id`;
15
- return;
16
- }
17
- const handler = events[handlerId];
18
- if (!handler) {
19
- const msg = `Event handler not found for ${handlerId}`;
20
- ctx.response.status = 404;
21
- ctx.response.body = msg;
22
- console_1.logOnceToDevConsole(msg, logger_1.LogLevel.Error);
23
- return;
24
- }
25
- await handler(ctx, next);
26
- };
27
- };
@@ -1,6 +0,0 @@
1
- import TokenBucket from 'tokenbucket';
2
- import { IOClients } from '../../../../clients/IOClients';
3
- import { ClientsConfig, GraphQLOptions, ParamsContext, RecorderState, ServiceRoute } from '../typings';
4
- import { GraphQLContext } from './typings';
5
- export declare const GRAPHQL_ROUTE = "__graphql";
6
- export declare const createGraphQLRoute: <T extends IOClients, U extends RecorderState, V extends ParamsContext>(graphql: GraphQLOptions<T, U, V>, clientsConfig: ClientsConfig<T>, serviceRoute: ServiceRoute, routeId: string, globalLimiter: TokenBucket | undefined) => import("koa-compose").ComposedMiddleware<import("../typings").ServiceContext<T, U, V & GraphQLContext>>;
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tracingMiddlewares_1 = require("../../../tracing/tracingMiddlewares");
4
- const http_1 = require("../http");
5
- const context_1 = require("./middlewares/context");
6
- const error_1 = require("./middlewares/error");
7
- const query_1 = require("./middlewares/query");
8
- const response_1 = require("./middlewares/response");
9
- const run_1 = require("./middlewares/run");
10
- const updateSchema_1 = require("./middlewares/updateSchema");
11
- const upload_1 = require("./middlewares/upload");
12
- const schema_1 = require("./schema");
13
- exports.GRAPHQL_ROUTE = '__graphql';
14
- exports.createGraphQLRoute = (graphql, clientsConfig, serviceRoute, routeId, globalLimiter) => {
15
- const executableSchema = schema_1.makeSchema(graphql);
16
- const pipeline = [
17
- tracingMiddlewares_1.nameSpanOperationMiddleware('graphql-handler', exports.GRAPHQL_ROUTE),
18
- updateSchema_1.updateSchema(graphql, executableSchema),
19
- context_1.injectGraphqlContext,
20
- response_1.response,
21
- error_1.graphqlError,
22
- upload_1.upload,
23
- query_1.extractQuery(executableSchema),
24
- run_1.run(executableSchema),
25
- ];
26
- return http_1.createPrivateHttpRoute(clientsConfig, pipeline, serviceRoute, routeId, globalLimiter);
27
- };
@@ -1,2 +0,0 @@
1
- import { GraphQLServiceContext } from '../typings';
2
- export declare function injectGraphqlContext(ctx: GraphQLServiceContext, next: () => Promise<void>): Promise<void>;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const constants_1 = require("../../../../../constants");
4
- async function injectGraphqlContext(ctx, next) {
5
- ctx.graphql = {
6
- cacheControl: {
7
- maxAge: constants_1.MAX_AGE.LONG,
8
- noCache: false,
9
- noStore: false,
10
- scope: 'public',
11
- },
12
- status: 'success',
13
- };
14
- await next();
15
- }
16
- exports.injectGraphqlContext = injectGraphqlContext;
@@ -1,93 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const apollo_server_errors_1 = require("apollo-server-errors");
4
- const ramda_1 = require("ramda");
5
- const constants_1 = require("../../../../../constants");
6
- const RequestCancelledError_1 = require("../../../../../errors/RequestCancelledError");
7
- const logger_1 = require("../../../../logger");
8
- const error_1 = require("../utils/error");
9
- const pathname_1 = require("../utils/pathname");
10
- const TWO_SECONDS_S = 2;
11
- const uniqErrorsByPath = (errors) => ramda_1.uniqBy(e => e.extensions && e.extensions.exception && e.extensions.exception.request
12
- ? e.extensions.exception.request.path
13
- : e, errors);
14
- const createLogErrorToSplunk = (vtex) => (err) => {
15
- var _a, _b, _c, _d, _e, _f;
16
- const { route: { id }, logger, } = vtex;
17
- try {
18
- // Prevent logging cancellation error (it's not an error)
19
- if (((_b = (_a = err === null || err === void 0 ? void 0 : err.extensions) === null || _a === void 0 ? void 0 : _a.exception) === null || _b === void 0 ? void 0 : _b.code) === RequestCancelledError_1.cancelledErrorCode) {
20
- return;
21
- }
22
- // Add pathName to each error
23
- if (err.path) {
24
- err.pathName = pathname_1.generatePathName(err.path);
25
- }
26
- const log = {
27
- ...err,
28
- routeId: id,
29
- };
30
- // Grab level from originalError, default to "error" level.
31
- let level = (_d = (_c = err === null || err === void 0 ? void 0 : err.extensions) === null || _c === void 0 ? void 0 : _c.exception) === null || _d === void 0 ? void 0 : _d.level;
32
- if (!level || !(level === logger_1.LogLevel.Error || level === logger_1.LogLevel.Warn)) {
33
- level = logger_1.LogLevel.Error;
34
- }
35
- logger.log(log, level);
36
- }
37
- finally {
38
- if (!constants_1.LINKED && ((_f = (_e = err === null || err === void 0 ? void 0 : err.extensions) === null || _e === void 0 ? void 0 : _e.exception) === null || _f === void 0 ? void 0 : _f.sensitive)) {
39
- delete err.extensions.exception.sensitive;
40
- }
41
- }
42
- };
43
- async function graphqlError(ctx, next) {
44
- const { vtex: { production }, } = ctx;
45
- let graphQLErrors = null;
46
- try {
47
- await next();
48
- const response = ctx.graphql.graphqlResponse;
49
- if (response && Array.isArray(response.errors)) {
50
- const formatter = error_1.createFormatError(ctx);
51
- graphQLErrors = apollo_server_errors_1.formatApolloErrors(response.errors, { formatter });
52
- }
53
- }
54
- catch (e) {
55
- if (e.code === RequestCancelledError_1.cancelledErrorCode) {
56
- ctx.status = RequestCancelledError_1.cancelledRequestStatus;
57
- return;
58
- }
59
- const formatError = error_1.createFormatError(ctx);
60
- graphQLErrors = Array.isArray(e)
61
- ? e.map(formatError)
62
- : [formatError(e)];
63
- // Add response
64
- ctx.status = e.statusCode || 500;
65
- if (e.headers) {
66
- ctx.set(e.headers);
67
- }
68
- }
69
- finally {
70
- if (graphQLErrors) {
71
- ctx.graphql.status = 'error';
72
- // Filter errors from the same path in the query. This should
73
- // avoid logging multiple errors from an array for example
74
- const uniqueErrors = uniqErrorsByPath(graphQLErrors);
75
- // Log each error to splunk individually
76
- const logToSplunk = createLogErrorToSplunk(ctx.vtex);
77
- uniqueErrors.forEach(logToSplunk);
78
- // In production errors, add two second cache
79
- if (production) {
80
- ctx.graphql.cacheControl.maxAge = TWO_SECONDS_S;
81
- }
82
- else {
83
- ctx.graphql.cacheControl.noCache = true;
84
- ctx.graphql.cacheControl.noStore = true;
85
- }
86
- ctx.graphql.graphqlResponse = {
87
- ...ctx.graphql.graphqlResponse,
88
- errors: uniqueErrors,
89
- };
90
- }
91
- }
92
- }
93
- exports.graphqlError = graphqlError;
@@ -1,2 +0,0 @@
1
- import { ExecutableSchema } from './../typings';
2
- export declare const extractQuery: (executableSchema: ExecutableSchema) => (ctx: import("../../typings").ServiceContext<import("../../../../..").IOClients, import("../../typings").RecorderState, import("../typings").GraphQLContext>, next: () => Promise<void>) => Promise<void>;
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const co_body_1 = require("co-body");
4
- const graphql_1 = require("graphql");
5
- const url_1 = require("url");
6
- const constants_1 = require("../../../../../constants");
7
- const LRUCache_1 = require("./../../../../../caches/LRUCache");
8
- const documentStorage = new LRUCache_1.LRUCache({
9
- max: 500,
10
- });
11
- const queryFromUrl = (url) => {
12
- const parsedUrl = url_1.parse(url, true);
13
- const { query: querystringObj } = parsedUrl;
14
- // Having a BODY_HASH means the query is in the body
15
- if (querystringObj && querystringObj[constants_1.BODY_HASH]) {
16
- return null;
17
- }
18
- // We need to JSON.parse the variables since they are a stringified
19
- // in the querystring
20
- if (querystringObj && typeof querystringObj.variables === 'string') {
21
- querystringObj.variables = JSON.parse(querystringObj.variables);
22
- }
23
- return querystringObj;
24
- };
25
- const parseAndValidateQueryToSchema = (query, schema) => {
26
- const document = graphql_1.parse(query);
27
- const validation = graphql_1.validate(schema, document);
28
- if (Array.isArray(validation) && validation.length > 0) {
29
- throw validation;
30
- }
31
- return document;
32
- };
33
- exports.extractQuery = (executableSchema) => async function parseAndValidateQuery(ctx, next) {
34
- const { request, req } = ctx;
35
- let query;
36
- if (request.is('multipart/form-data')) {
37
- query = request.body;
38
- }
39
- else if (request.method.toUpperCase() === 'POST') {
40
- query = await co_body_1.json(req, { limit: '3mb' });
41
- }
42
- else {
43
- query = queryFromUrl(request.url) || (await co_body_1.json(req, { limit: '3mb' }));
44
- }
45
- // Assign the query before setting the query.document because if the
46
- // validation fails we don't loose the query in our error log
47
- ctx.graphql.query = query;
48
- query.document = (await documentStorage.getOrSet(query.query, async () => ({
49
- value: parseAndValidateQueryToSchema(query.query, executableSchema.schema),
50
- })));
51
- await next();
52
- };