@vtex/api 6.48.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 (402) 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 -28
  56. package/lib/clients/IOClients.js +28 -35
  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 +10 -16
  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 -6
  168. package/lib/utils/MineWinsConflictsResolver.js +17 -34
  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 -1858
  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/Registry.d.ts +0 -59
  242. package/lib/clients/infra/Router.d.ts +0 -34
  243. package/lib/clients/infra/Router.js +0 -81
  244. package/lib/clients/infra/Sphinx.d.ts +0 -13
  245. package/lib/clients/infra/Sphinx.js +0 -29
  246. package/lib/clients/infra/VBase.d.ts +0 -60
  247. package/lib/clients/infra/VBase.js +0 -196
  248. package/lib/clients/infra/Workspaces.d.ts +0 -18
  249. package/lib/clients/infra/Workspaces.js +0 -65
  250. package/lib/clients/infra/index.d.ts +0 -11
  251. package/lib/clients/infra/index.js +0 -16
  252. package/lib/clients/janus/LicenseManager.d.ts +0 -7
  253. package/lib/clients/janus/Segment.js +0 -88
  254. package/lib/clients/janus/Tenant.js +0 -28
  255. package/lib/clients/janus/index.d.ts +0 -5
  256. package/lib/clients/janus/index.js +0 -10
  257. package/lib/service/index.d.ts +0 -2
  258. package/lib/service/index.js +0 -30
  259. package/lib/service/loaders.d.ts +0 -8
  260. package/lib/service/loaders.js +0 -54
  261. package/lib/service/logger/console.d.ts +0 -10
  262. package/lib/service/logger/console.js +0 -36
  263. package/lib/service/logger/logger.d.ts +0 -29
  264. package/lib/service/logger/logger.js +0 -61
  265. package/lib/service/logger/metricsLogger.d.ts +0 -40
  266. package/lib/service/logger/metricsLogger.js +0 -149
  267. package/lib/service/master.d.ts +0 -2
  268. package/lib/service/master.js +0 -87
  269. package/lib/service/metrics/requestMetricsMiddleware.d.ts +0 -2
  270. package/lib/service/metrics/requestMetricsMiddleware.js +0 -44
  271. package/lib/service/tracing/TracerSingleton.d.ts +0 -7
  272. package/lib/service/tracing/TracerSingleton.js +0 -48
  273. package/lib/service/tracing/metrics/MetricNames.d.ts +0 -60
  274. package/lib/service/tracing/metrics/MetricNames.js +0 -44
  275. package/lib/service/tracing/metrics/instruments.d.ts +0 -9
  276. package/lib/service/tracing/metrics/instruments.js +0 -11
  277. package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.d.ts +0 -9
  278. package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.js +0 -25
  279. package/lib/service/tracing/tracingMiddlewares.d.ts +0 -5
  280. package/lib/service/tracing/tracingMiddlewares.js +0 -107
  281. package/lib/service/worker/index.d.ts +0 -11
  282. package/lib/service/worker/index.js +0 -195
  283. package/lib/service/worker/listeners.d.ts +0 -3
  284. package/lib/service/worker/runtime/builtIn/handlers.d.ts +0 -4
  285. package/lib/service/worker/runtime/builtIn/handlers.js +0 -30
  286. package/lib/service/worker/runtime/builtIn/middlewares.d.ts +0 -4
  287. package/lib/service/worker/runtime/builtIn/middlewares.js +0 -40
  288. package/lib/service/worker/runtime/events/index.d.ts +0 -4
  289. package/lib/service/worker/runtime/events/index.js +0 -46
  290. package/lib/service/worker/runtime/events/middlewares/body.d.ts +0 -3
  291. package/lib/service/worker/runtime/events/middlewares/body.js +0 -22
  292. package/lib/service/worker/runtime/events/middlewares/context.d.ts +0 -3
  293. package/lib/service/worker/runtime/events/middlewares/context.js +0 -22
  294. package/lib/service/worker/runtime/events/router.d.ts +0 -2
  295. package/lib/service/worker/runtime/events/router.js +0 -27
  296. package/lib/service/worker/runtime/graphql/index.d.ts +0 -6
  297. package/lib/service/worker/runtime/graphql/index.js +0 -27
  298. package/lib/service/worker/runtime/graphql/middlewares/context.d.ts +0 -2
  299. package/lib/service/worker/runtime/graphql/middlewares/context.js +0 -16
  300. package/lib/service/worker/runtime/graphql/middlewares/error.js +0 -93
  301. package/lib/service/worker/runtime/graphql/middlewares/query.d.ts +0 -2
  302. package/lib/service/worker/runtime/graphql/middlewares/query.js +0 -52
  303. package/lib/service/worker/runtime/graphql/middlewares/response.js +0 -38
  304. package/lib/service/worker/runtime/graphql/middlewares/run.d.ts +0 -2
  305. package/lib/service/worker/runtime/graphql/middlewares/run.js +0 -19
  306. package/lib/service/worker/runtime/graphql/middlewares/updateSchema.d.ts +0 -4
  307. package/lib/service/worker/runtime/graphql/middlewares/updateSchema.js +0 -28
  308. package/lib/service/worker/runtime/graphql/middlewares/upload.d.ts +0 -4
  309. package/lib/service/worker/runtime/graphql/schema/index.d.ts +0 -7
  310. package/lib/service/worker/runtime/graphql/schema/index.js +0 -31
  311. package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.d.ts +0 -6
  312. package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.js +0 -79
  313. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/CacheControl.d.ts +0 -7
  314. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/CacheControl.js +0 -37
  315. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.d.ts +0 -11
  316. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.js +0 -61
  317. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Metric.d.ts +0 -7
  318. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Metric.js +0 -40
  319. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.d.ts +0 -6
  320. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.js +0 -34
  321. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.d.ts +0 -7
  322. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.js +0 -39
  323. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslateTo.js +0 -33
  324. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.d.ts +0 -22
  325. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.js +0 -36
  326. package/lib/service/worker/runtime/graphql/schema/typeDefs/index.d.ts +0 -7
  327. package/lib/service/worker/runtime/graphql/schema/typeDefs/index.js +0 -12
  328. package/lib/service/worker/runtime/graphql/typings.d.ts +0 -31
  329. package/lib/service/worker/runtime/graphql/utils/cacheControl.d.ts +0 -1
  330. package/lib/service/worker/runtime/graphql/utils/cacheControl.js +0 -32
  331. package/lib/service/worker/runtime/graphql/utils/error.d.ts +0 -1
  332. package/lib/service/worker/runtime/graphql/utils/error.js +0 -76
  333. package/lib/service/worker/runtime/graphql/utils/translations.d.ts +0 -14
  334. package/lib/service/worker/runtime/graphql/utils/translations.js +0 -38
  335. package/lib/service/worker/runtime/http/index.d.ts +0 -5
  336. package/lib/service/worker/runtime/http/index.js +0 -58
  337. package/lib/service/worker/runtime/http/middlewares/authTokens.d.ts +0 -3
  338. package/lib/service/worker/runtime/http/middlewares/cancellationToken.d.ts +0 -3
  339. package/lib/service/worker/runtime/http/middlewares/clients.d.ts +0 -4
  340. package/lib/service/worker/runtime/http/middlewares/context.d.ts +0 -4
  341. package/lib/service/worker/runtime/http/middlewares/context.js +0 -36
  342. package/lib/service/worker/runtime/http/middlewares/error.d.ts +0 -2
  343. package/lib/service/worker/runtime/http/middlewares/rateLimit.d.ts +0 -6
  344. package/lib/service/worker/runtime/http/middlewares/rateLimit.js +0 -42
  345. package/lib/service/worker/runtime/http/middlewares/setCookie.d.ts +0 -3
  346. package/lib/service/worker/runtime/http/middlewares/settings.d.ts +0 -9
  347. package/lib/service/worker/runtime/http/middlewares/settings.js +0 -44
  348. package/lib/service/worker/runtime/http/middlewares/timings.d.ts +0 -3
  349. package/lib/service/worker/runtime/http/middlewares/vary.d.ts +0 -3
  350. package/lib/service/worker/runtime/http/router.d.ts +0 -2
  351. package/lib/service/worker/runtime/http/router.js +0 -23
  352. package/lib/service/worker/runtime/http/routes.d.ts +0 -19
  353. package/lib/service/worker/runtime/http/routes.js +0 -12
  354. package/lib/service/worker/runtime/method.d.ts +0 -9
  355. package/lib/service/worker/runtime/statusTrack.d.ts +0 -14
  356. package/lib/service/worker/runtime/statusTrack.js +0 -37
  357. package/lib/service/worker/runtime/utils/compose.d.ts +0 -5
  358. package/lib/service/worker/runtime/utils/context.d.ts +0 -2
  359. package/lib/service/worker/runtime/utils/context.js +0 -40
  360. package/lib/service/worker/runtime/utils/diff.d.ts +0 -12
  361. package/lib/service/worker/runtime/utils/diff.js +0 -21
  362. package/lib/service/worker/runtime/utils/recorder.d.ts +0 -8
  363. package/lib/service/worker/runtime/utils/recorder.js +0 -37
  364. package/lib/service/worker/runtime/utils/tokenBucket.d.ts +0 -2
  365. package/lib/service/worker/runtime/utils/tokenBucket.js +0 -16
  366. package/lib/tracing/LogEvents.d.ts +0 -31
  367. package/lib/tracing/LogEvents.js +0 -3
  368. package/lib/tracing/LogFields.d.ts +0 -66
  369. package/lib/tracing/LogFields.js +0 -3
  370. package/lib/tracing/Tags.d.ts +0 -81
  371. package/lib/tracing/Tags.js +0 -7
  372. package/lib/tracing/UserLandTracer.d.ts +0 -27
  373. package/lib/tracing/UserLandTracer.js +0 -56
  374. package/lib/tracing/errorReporting/ErrorReport.d.ts +0 -31
  375. package/lib/tracing/errorReporting/ErrorReport.js +0 -70
  376. package/lib/tracing/index.d.ts +0 -9
  377. package/lib/tracing/index.js +0 -19
  378. package/lib/tracing/spanReference/SpanReferenceTypes.d.ts +0 -4
  379. package/lib/tracing/spanReference/SpanReferenceTypes.js +0 -7
  380. package/lib/tracing/spanReference/createSpanReference.d.ts +0 -3
  381. package/lib/tracing/spanReference/createSpanReference.js +0 -8
  382. package/lib/tracing/utils.d.ts +0 -13
  383. package/lib/tracing/utils.js +0 -40
  384. package/lib/utils/conflicts.mock.d.ts +0 -17
  385. package/lib/utils/conflicts.mock.js +0 -27
  386. /package/lib/service/{worker/runtime/graphql → graphql}/middlewares/error.d.ts +0 -0
  387. /package/lib/service/{worker/runtime/graphql → graphql}/middlewares/response.d.ts +0 -0
  388. /package/lib/service/{worker/runtime/graphql → graphql}/middlewares/upload.js +0 -0
  389. /package/lib/service/{worker/runtime/graphql → graphql}/schema/typeDefs/ioUpload.d.ts +0 -0
  390. /package/lib/service/{worker/runtime/graphql → graphql}/schema/typeDefs/ioUpload.js +0 -0
  391. /package/lib/service/{worker/runtime/graphql → graphql}/schema/typeDefs/sanitizedString.d.ts +0 -0
  392. /package/lib/service/{worker/runtime/graphql → graphql}/typings.js +0 -0
  393. /package/lib/service/{worker/runtime/utils/toArray.d.ts → graphql/utils/array.d.ts} +0 -0
  394. /package/lib/service/{worker/runtime/utils/toArray.js → graphql/utils/array.js} +0 -0
  395. /package/lib/service/{worker/runtime/graphql → graphql}/utils/pathname.d.ts +0 -0
  396. /package/lib/service/{worker/runtime/graphql → graphql}/utils/pathname.js +0 -0
  397. /package/lib/service/{worker/runtime/http → http}/middlewares/authTokens.js +0 -0
  398. /package/lib/service/{worker/runtime/http → http}/middlewares/clients.js +0 -0
  399. /package/lib/service/{worker/runtime/http → http}/middlewares/requestStats.js +0 -0
  400. /package/lib/service/{worker/runtime/http → http}/middlewares/setCookie.js +0 -0
  401. /package/lib/service/{worker/runtime/method.js → method.js} +0 -0
  402. /package/lib/service/{worker/runtime/typings.js → typings.js} +0 -0
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const stream_1 = require("stream");
4
- const utils_1 = require("../../utils");
5
- const instruments_1 = require("../tracing/metrics/instruments");
6
- exports.addRequestMetricsMiddleware = () => {
7
- const concurrentRequests = instruments_1.createConcurrentRequestsInstrument();
8
- const requestTimings = instruments_1.createRequestsTimingsInstrument();
9
- const totalRequests = instruments_1.createTotalRequestsInstrument();
10
- const responseSizes = instruments_1.createRequestsResponseSizesInstrument();
11
- const abortedRequests = instruments_1.createTotalAbortedRequestsInstrument();
12
- return async function addRequestMetrics(ctx, next) {
13
- const start = process.hrtime();
14
- concurrentRequests.inc(1);
15
- ctx.req.once('aborted', () => abortedRequests.inc({ ["handler" /* REQUEST_HANDLER */]: ctx.requestHandlerName }, 1));
16
- let responseClosed = false;
17
- ctx.res.once('close', () => (responseClosed = true));
18
- try {
19
- await next();
20
- }
21
- finally {
22
- const responseLength = ctx.response.length;
23
- if (responseLength) {
24
- responseSizes.observe({ ["handler" /* REQUEST_HANDLER */]: ctx.requestHandlerName }, responseLength);
25
- }
26
- totalRequests.inc({
27
- ["handler" /* REQUEST_HANDLER */]: ctx.requestHandlerName,
28
- ["status_code" /* STATUS_CODE */]: ctx.response.status,
29
- }, 1);
30
- const onResFinished = () => {
31
- requestTimings.observe({
32
- ["handler" /* REQUEST_HANDLER */]: ctx.requestHandlerName,
33
- }, utils_1.hrToMillisFloat(process.hrtime(start)));
34
- concurrentRequests.dec(1);
35
- };
36
- if (responseClosed) {
37
- onResFinished();
38
- }
39
- else {
40
- stream_1.finished(ctx.res, onResFinished);
41
- }
42
- }
43
- };
44
- };
@@ -1,7 +0,0 @@
1
- import { Tracer } from 'opentracing';
2
- export declare class TracerSingleton {
3
- static getTracer(): Tracer;
4
- private static singleton;
5
- private static initServiceTracer;
6
- private static createJaegerTracer;
7
- }
@@ -1,48 +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 jaeger_client_1 = require("jaeger-client");
7
- const prom_client_1 = __importDefault(require("prom-client"));
8
- const constants_1 = require("../../constants");
9
- const utils_1 = require("../../utils");
10
- class TracerSingleton {
11
- static getTracer() {
12
- if (!TracerSingleton.singleton) {
13
- TracerSingleton.singleton = TracerSingleton.initServiceTracer();
14
- }
15
- return TracerSingleton.singleton;
16
- }
17
- static initServiceTracer() {
18
- return TracerSingleton.createJaegerTracer(utils_1.appIdToAppAtMajor(constants_1.APP.ID), {
19
- ["app.linked" /* VTEX_APP_LINKED */]: constants_1.LINKED,
20
- ["app.node_vtex_api_version" /* VTEX_APP_NODE_VTEX_API_VERSION */]: constants_1.NODE_VTEX_API_VERSION,
21
- ["app.production" /* VTEX_APP_PRODUCTION */]: constants_1.PRODUCTION,
22
- ["app.region" /* VTEX_APP_REGION */]: constants_1.REGION,
23
- ["app.version" /* VTEX_APP_VERSION */]: constants_1.APP.VERSION,
24
- ["app.workspace" /* VTEX_APP_WORKSPACE */]: constants_1.WORKSPACE,
25
- ["app.node_env" /* VTEX_APP_NODE_ENV */]: constants_1.NODE_ENV !== null && constants_1.NODE_ENV !== void 0 ? constants_1.NODE_ENV : 'undefined',
26
- });
27
- }
28
- static createJaegerTracer(serviceName, defaultTags) {
29
- const config = {
30
- reporter: {
31
- agentHost: process.env.VTEX_OWN_NODE_IP,
32
- },
33
- serviceName,
34
- };
35
- const options = {
36
- /**
37
- * Jaeger metric names are available in:
38
- * https://github.com/jaegertracing/jaeger-client-node/blob/master/src/metrics/metrics.js
39
- *
40
- * Runtime will prefix these metrics with 'runtime:'
41
- */
42
- metrics: new jaeger_client_1.PrometheusMetricsFactory(prom_client_1.default, 'runtime'),
43
- tags: defaultTags,
44
- };
45
- return jaeger_client_1.initTracer(config, options);
46
- }
47
- }
48
- exports.TracerSingleton = TracerSingleton;
@@ -1,60 +0,0 @@
1
- declare const enum METRIC_TYPES {
2
- /** Counter is monotonic */
3
- COUNTER = "counter",
4
- /** Gauge is a counter that can be increased and decreased */
5
- GAUGE = "gauge",
6
- /** Histogram creates a counter timeseries for each bucket specified */
7
- HISTOGRAM = "histogram"
8
- }
9
- export declare const enum RequestsMetricLabels {
10
- /** The status code for the HTTP request */
11
- STATUS_CODE = "status_code",
12
- /** The service.json handler name for the current request (e.g. 'public-handler:render') */
13
- REQUEST_HANDLER = "handler"
14
- }
15
- export declare const enum EventLoopMetricLabels {
16
- PERCENTILE = "percentile"
17
- }
18
- export declare const CONCURRENT_REQUESTS: {
19
- name: string;
20
- help: string;
21
- type: METRIC_TYPES;
22
- };
23
- export declare const REQUESTS_TOTAL: {
24
- name: string;
25
- help: string;
26
- labelNames: RequestsMetricLabels[];
27
- type: METRIC_TYPES;
28
- };
29
- export declare const REQUESTS_ABORTED: {
30
- name: string;
31
- help: string;
32
- labelNames: RequestsMetricLabels[];
33
- type: METRIC_TYPES;
34
- };
35
- export declare const REQUEST_TIMINGS: {
36
- name: string;
37
- help: string;
38
- labelNames: RequestsMetricLabels[];
39
- buckets: number[];
40
- type: METRIC_TYPES;
41
- };
42
- export declare const REQUEST_RESPONSE_SIZES: {
43
- name: string;
44
- help: string;
45
- labelNames: RequestsMetricLabels[];
46
- buckets: number[];
47
- type: METRIC_TYPES;
48
- };
49
- export declare const BETWEEN_SCRAPES_EVENT_LOOP_LAG_MAX: {
50
- name: string;
51
- help: string;
52
- type: METRIC_TYPES;
53
- };
54
- export declare const BETWEEN_SCRAPES_EVENT_LOOP_LAG_PERCENTILES: {
55
- name: string;
56
- help: string;
57
- labelNames: EventLoopMetricLabels[];
58
- type: METRIC_TYPES;
59
- };
60
- export {};
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CONCURRENT_REQUESTS = {
4
- name: 'io_http_requests_current',
5
- help: 'The current number of requests in course.',
6
- type: "gauge" /* GAUGE */,
7
- };
8
- exports.REQUESTS_TOTAL = {
9
- name: 'runtime_http_requests_total',
10
- help: 'The total number of HTTP requests.',
11
- labelNames: ["status_code" /* STATUS_CODE */, "handler" /* REQUEST_HANDLER */],
12
- type: "counter" /* COUNTER */,
13
- };
14
- exports.REQUESTS_ABORTED = {
15
- name: 'runtime_http_aborted_requests_total',
16
- help: 'The total number of HTTP requests aborted.',
17
- labelNames: ["handler" /* REQUEST_HANDLER */],
18
- type: "counter" /* COUNTER */,
19
- };
20
- exports.REQUEST_TIMINGS = {
21
- name: 'runtime_http_requests_duration_milliseconds',
22
- help: 'The incoming http requests total duration.',
23
- labelNames: ["handler" /* REQUEST_HANDLER */],
24
- buckets: [10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120],
25
- type: "histogram" /* HISTOGRAM */,
26
- };
27
- exports.REQUEST_RESPONSE_SIZES = {
28
- name: 'runtime_http_response_size_bytes',
29
- help: `The outgoing response sizes (only applicable when the response isn't a stream).`,
30
- labelNames: ["handler" /* REQUEST_HANDLER */],
31
- buckets: [500, 2000, 8000, 16000, 64000, 256000, 1024000, 4096000],
32
- type: "histogram" /* HISTOGRAM */,
33
- };
34
- exports.BETWEEN_SCRAPES_EVENT_LOOP_LAG_MAX = {
35
- name: 'runtime_event_loop_lag_max_between_scrapes_seconds',
36
- help: 'The max event loop lag that occurred between this and the previous scrape',
37
- type: "gauge" /* GAUGE */,
38
- };
39
- exports.BETWEEN_SCRAPES_EVENT_LOOP_LAG_PERCENTILES = {
40
- name: 'runtime_event_loop_lag_percentiles_between_scrapes_seconds',
41
- help: 'Event loop lag percentiles from the observations that occurred between this and the previous scrape',
42
- labelNames: ["percentile" /* PERCENTILE */],
43
- type: "gauge" /* GAUGE */,
44
- };
@@ -1,9 +0,0 @@
1
- import { Counter, Gauge, Histogram } from 'prom-client';
2
- export { EventLoopMetricLabels, RequestsMetricLabels } from './MetricNames';
3
- export declare const createTotalRequestsInstrument: () => Counter<import("./MetricNames").RequestsMetricLabels>;
4
- export declare const createTotalAbortedRequestsInstrument: () => Counter<import("./MetricNames").RequestsMetricLabels>;
5
- export declare const createRequestsTimingsInstrument: () => Histogram<import("./MetricNames").RequestsMetricLabels>;
6
- export declare const createRequestsResponseSizesInstrument: () => Histogram<import("./MetricNames").RequestsMetricLabels>;
7
- export declare const createConcurrentRequestsInstrument: () => Gauge<string>;
8
- export declare const createEventLoopLagMaxInstrument: () => Gauge<string>;
9
- export declare const createEventLoopLagPercentilesInstrument: () => Gauge<import("./MetricNames").EventLoopMetricLabels>;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const prom_client_1 = require("prom-client");
4
- const MetricNames_1 = require("./MetricNames");
5
- exports.createTotalRequestsInstrument = () => new prom_client_1.Counter(MetricNames_1.REQUESTS_TOTAL);
6
- exports.createTotalAbortedRequestsInstrument = () => new prom_client_1.Counter(MetricNames_1.REQUESTS_ABORTED);
7
- exports.createRequestsTimingsInstrument = () => new prom_client_1.Histogram(MetricNames_1.REQUEST_TIMINGS);
8
- exports.createRequestsResponseSizesInstrument = () => new prom_client_1.Histogram(MetricNames_1.REQUEST_RESPONSE_SIZES);
9
- exports.createConcurrentRequestsInstrument = () => new prom_client_1.Gauge(MetricNames_1.CONCURRENT_REQUESTS);
10
- exports.createEventLoopLagMaxInstrument = () => new prom_client_1.Gauge(MetricNames_1.BETWEEN_SCRAPES_EVENT_LOOP_LAG_MAX);
11
- exports.createEventLoopLagPercentilesInstrument = () => new prom_client_1.Gauge(MetricNames_1.BETWEEN_SCRAPES_EVENT_LOOP_LAG_PERCENTILES);
@@ -1,9 +0,0 @@
1
- export declare class EventLoopLagMeasurer {
2
- private eventLoopDelayMonitor;
3
- private percentilesInstrument;
4
- private maxInstrument;
5
- constructor();
6
- start(): void;
7
- updateInstrumentsAndReset(): Promise<void>;
8
- private setPercentileObservation;
9
- }
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const perf_hooks_1 = require("perf_hooks");
4
- const utils_1 = require("../../../../utils");
5
- const instruments_1 = require("../instruments");
6
- class EventLoopLagMeasurer {
7
- constructor() {
8
- this.eventLoopDelayMonitor = perf_hooks_1.monitorEventLoopDelay({ resolution: 10 });
9
- this.percentilesInstrument = instruments_1.createEventLoopLagPercentilesInstrument();
10
- this.maxInstrument = instruments_1.createEventLoopLagMaxInstrument();
11
- }
12
- start() {
13
- this.eventLoopDelayMonitor.enable();
14
- }
15
- async updateInstrumentsAndReset() {
16
- this.maxInstrument.set(utils_1.nanosecondsToSeconds(this.eventLoopDelayMonitor.max));
17
- this.setPercentileObservation(95);
18
- this.setPercentileObservation(99);
19
- this.eventLoopDelayMonitor.reset();
20
- }
21
- setPercentileObservation(percentile) {
22
- this.percentilesInstrument.set({ ["percentile" /* PERCENTILE */]: percentile }, utils_1.nanosecondsToSeconds(this.eventLoopDelayMonitor.percentile(percentile)));
23
- }
24
- }
25
- exports.EventLoopLagMeasurer = EventLoopLagMeasurer;
@@ -1,5 +0,0 @@
1
- import { Tracer } from 'opentracing';
2
- import { ServiceContext } from '../worker/runtime/typings';
3
- export declare const addTracingMiddleware: (tracer: Tracer) => (ctx: ServiceContext<import("../..").IOClients, import("../worker/runtime/typings").RecorderState, import("../worker/runtime/typings").ParamsContext>, next: () => Promise<void>) => Promise<void>;
4
- export declare const nameSpanOperationMiddleware: (operationType: string, operationName: string) => (ctx: ServiceContext<import("../..").IOClients, import("../worker/runtime/typings").RecorderState, import("../worker/runtime/typings").ParamsContext>, next: () => Promise<void>) => Promise<void>;
5
- export declare const traceUserLandRemainingPipelineMiddleware: () => (ctx: ServiceContext<import("../..").IOClients, import("../worker/runtime/typings").RecorderState, import("../worker/runtime/typings").ParamsContext>, next: () => Promise<void>) => Promise<void>;
@@ -1,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const opentracing_1 = require("opentracing");
4
- const stream_1 = require("stream");
5
- const constants_1 = require("../../constants");
6
- const tracing_1 = require("../../tracing");
7
- const Tags_1 = require("../../tracing/Tags");
8
- const utils_1 = require("../../tracing/utils");
9
- const utils_2 = require("../../utils");
10
- const PATHS_BLACKLISTED_FOR_TRACING = ['/_status', '/healthcheck'];
11
- exports.addTracingMiddleware = (tracer) => {
12
- return async function addTracing(ctx, next) {
13
- var _a;
14
- const rootSpan = tracer.extract(opentracing_1.FORMAT_HTTP_HEADERS, ctx.request.headers);
15
- ctx.tracing = { tracer, currentSpan: undefined };
16
- if (!shouldTrace(ctx, rootSpan)) {
17
- await next();
18
- return;
19
- }
20
- const currentSpan = tracer.startSpan('unknown-operation', {
21
- childOf: rootSpan,
22
- tags: { [Tags_1.OpentracingTags.SPAN_KIND]: Tags_1.OpentracingTags.SPAN_KIND_RPC_SERVER },
23
- });
24
- const initialSamplingDecision = tracing_1.getTraceInfo(currentSpan).isSampled;
25
- ctx.tracing = { currentSpan, tracer };
26
- let responseClosed = false;
27
- ctx.res.once('close', () => (responseClosed = true));
28
- try {
29
- await next();
30
- }
31
- catch (err) {
32
- tracing_1.ErrorReport.create({ originalError: err }).injectOnSpan(currentSpan, (_a = ctx.vtex) === null || _a === void 0 ? void 0 : _a.logger);
33
- throw err;
34
- }
35
- finally {
36
- const traceInfo = tracing_1.getTraceInfo(currentSpan);
37
- if (traceInfo === null || traceInfo === void 0 ? void 0 : traceInfo.isSampled) {
38
- if (!initialSamplingDecision) {
39
- currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.setTag(Tags_1.OpentracingTags.SPAN_KIND, Tags_1.OpentracingTags.SPAN_KIND_RPC_SERVER);
40
- }
41
- currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.addTags({
42
- [Tags_1.OpentracingTags.HTTP_URL]: ctx.request.href,
43
- [Tags_1.OpentracingTags.HTTP_METHOD]: ctx.request.method,
44
- [Tags_1.OpentracingTags.HTTP_STATUS_CODE]: ctx.response.status,
45
- ["http.path" /* HTTP_PATH */]: ctx.request.path,
46
- ["vtex.request_id" /* VTEX_REQUEST_ID */]: ctx.get(constants_1.REQUEST_ID_HEADER),
47
- ["vtex.incoming.workspace" /* VTEX_WORKSPACE */]: ctx.get(constants_1.WORKSPACE_HEADER),
48
- ["vtex.incoming.account" /* VTEX_ACCOUNT */]: ctx.get(constants_1.ACCOUNT_HEADER),
49
- });
50
- currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.log(utils_1.cloneAndSanitizeHeaders(ctx.request.headers, 'req.headers.'));
51
- currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.log(utils_1.cloneAndSanitizeHeaders(ctx.response.headers, 'res.headers.'));
52
- ctx.set(constants_1.TRACE_ID_HEADER, traceInfo.traceId);
53
- }
54
- const onResFinished = () => {
55
- currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.finish();
56
- };
57
- if (responseClosed) {
58
- onResFinished();
59
- }
60
- else {
61
- stream_1.finished(ctx.res, onResFinished);
62
- }
63
- }
64
- };
65
- };
66
- exports.nameSpanOperationMiddleware = (operationType, operationName) => {
67
- return function nameSpanOperation(ctx, next) {
68
- var _a, _b;
69
- ctx.requestHandlerName = `${operationType}:${operationName}`;
70
- (_b = (_a = ctx.tracing) === null || _a === void 0 ? void 0 : _a.currentSpan) === null || _b === void 0 ? void 0 : _b.setOperationName(ctx.requestHandlerName);
71
- return next();
72
- };
73
- };
74
- exports.traceUserLandRemainingPipelineMiddleware = () => {
75
- return async function traceUserLandRemainingPipeline(ctx, next) {
76
- const tracingCtx = ctx.tracing;
77
- ctx.tracing = undefined;
78
- const span = tracingCtx === null || tracingCtx === void 0 ? void 0 : tracingCtx.currentSpan;
79
- const userLandTracer = ctx.vtex.tracer;
80
- userLandTracer.setFallbackSpan(span);
81
- userLandTracer.lockFallbackSpan();
82
- const startTime = process.hrtime();
83
- try {
84
- span === null || span === void 0 ? void 0 : span.log({ event: "user-middlewares-start" /* USER_MIDDLEWARES_START */ });
85
- await next();
86
- }
87
- catch (err) {
88
- tracing_1.ErrorReport.create({ originalError: err }).injectOnSpan(span, ctx.vtex.logger);
89
- throw err;
90
- }
91
- finally {
92
- span === null || span === void 0 ? void 0 : span.log({
93
- event: "user-middlewares-finish" /* USER_MIDDLEWARES_FINISH */,
94
- ["user-middlewares-duration" /* USER_MIDDLEWARES_DURATION */]: utils_2.hrToMillis(process.hrtime(startTime)),
95
- });
96
- ctx.tracing = tracingCtx;
97
- }
98
- };
99
- };
100
- function shouldTrace(ctx, rootSpan) {
101
- var _a, _b, _c;
102
- /** Should trace if path isnt blacklisted and sampling decision came from the edge
103
- * ((rootSpan as any).isSampled. returns whether or not this span context was sampled
104
- * There is a cast to bypass opentracing typescript
105
- */
106
- return !PATHS_BLACKLISTED_FOR_TRACING.includes(ctx.request.path) && ((_c = (_b = (_a = rootSpan).isSampled) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : false);
107
- }
@@ -1,11 +0,0 @@
1
- import Koa from 'koa';
2
- import { MetricsAccumulator } from '../../metrics/MetricsAccumulator';
3
- import { ServiceJSON } from './runtime/typings';
4
- export declare const startWorker: (serviceJSON: ServiceJSON) => Koa<Koa.DefaultState, Koa.DefaultContext>;
5
- declare global {
6
- namespace NodeJS {
7
- interface Global {
8
- metrics: MetricsAccumulator;
9
- }
10
- }
11
- }
@@ -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>;