@vtex/api 6.48.1-beta → 6.48.1-beta.2

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 (440) hide show
  1. package/gen/manifest.schema +5 -3
  2. package/lib/HttpClient/GraphQLClient.d.ts +3 -2
  3. package/lib/HttpClient/GraphQLClient.js +5 -1
  4. package/lib/HttpClient/HttpClient.d.ts +9 -7
  5. package/lib/HttpClient/HttpClient.js +70 -27
  6. package/lib/HttpClient/agents.d.ts +6 -0
  7. package/lib/HttpClient/agents.js +43 -0
  8. package/lib/HttpClient/index.d.ts +1 -7
  9. package/lib/HttpClient/index.js +22 -16
  10. package/lib/HttpClient/middlewares/cache.d.ts +9 -3
  11. package/lib/HttpClient/middlewares/cache.js +130 -35
  12. package/lib/HttpClient/middlewares/cancellationToken.d.ts +2 -2
  13. package/lib/HttpClient/middlewares/cancellationToken.js +5 -2
  14. package/lib/HttpClient/middlewares/inflight.d.ts +1 -1
  15. package/lib/HttpClient/middlewares/inflight.js +7 -3
  16. package/lib/HttpClient/middlewares/memoization.d.ts +1 -1
  17. package/lib/HttpClient/middlewares/memoization.js +13 -4
  18. package/lib/HttpClient/middlewares/metrics.js +25 -38
  19. package/lib/HttpClient/middlewares/notFound.d.ts +1 -1
  20. package/lib/HttpClient/middlewares/notFound.js +5 -2
  21. package/lib/HttpClient/middlewares/recorder.d.ts +1 -1
  22. package/lib/HttpClient/middlewares/recorder.js +21 -12
  23. package/lib/HttpClient/middlewares/request/HttpAgentSingleton.d.ts +11 -0
  24. package/lib/HttpClient/middlewares/request/HttpAgentSingleton.js +31 -0
  25. package/lib/HttpClient/middlewares/request/index.d.ts +18 -0
  26. package/lib/HttpClient/middlewares/request/index.js +88 -0
  27. package/lib/HttpClient/middlewares/request/setupAxios/index.d.ts +1 -0
  28. package/lib/HttpClient/middlewares/request/setupAxios/index.js +22 -0
  29. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/exponentialBackoff.d.ts +2 -0
  30. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/exponentialBackoff.js +55 -0
  31. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/index.d.ts +2 -0
  32. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/index.js +8 -0
  33. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/index.d.ts +8 -0
  34. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/index.js +56 -0
  35. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/spanSetup.d.ts +4 -0
  36. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/spanSetup.js +32 -0
  37. package/lib/HttpClient/middlewares/tracing.d.ts +15 -0
  38. package/lib/HttpClient/middlewares/tracing.js +62 -0
  39. package/lib/HttpClient/typings.d.ts +46 -12
  40. package/lib/HttpClient/typings.js +1 -0
  41. package/lib/caches/DiskCache.d.ts +1 -1
  42. package/lib/caches/DiskCache.js +3 -2
  43. package/lib/caches/LRUCache.d.ts +3 -3
  44. package/lib/caches/LRUCache.js +6 -1
  45. package/lib/caches/LRUDiskCache.d.ts +2 -2
  46. package/lib/caches/LRUDiskCache.js +8 -3
  47. package/lib/caches/MultilayeredCache.d.ts +2 -2
  48. package/lib/caches/MultilayeredCache.js +8 -7
  49. package/lib/caches/index.js +20 -7
  50. package/lib/caches/typings.d.ts +5 -5
  51. package/lib/clients/IOClient.d.ts +13 -0
  52. package/lib/clients/IOClient.js +20 -0
  53. package/lib/clients/IOClients.d.ts +29 -25
  54. package/lib/clients/IOClients.js +36 -28
  55. package/lib/{HttpClient → clients}/IOGraphQLClient.d.ts +4 -4
  56. package/lib/{HttpClient → clients}/IOGraphQLClient.js +3 -2
  57. package/lib/{HttpClient → clients/apps}/AppClient.d.ts +3 -3
  58. package/lib/{HttpClient → clients/apps}/AppClient.js +11 -5
  59. package/lib/{HttpClient → clients/apps}/AppGraphQLClient.d.ts +3 -3
  60. package/lib/{HttpClient → clients/apps}/AppGraphQLClient.js +11 -5
  61. package/lib/clients/apps/Billing.d.ts +12 -0
  62. package/lib/clients/{Billing.js → apps/Billing.js} +9 -3
  63. package/lib/clients/{Builder.d.ts → apps/Builder.d.ts} +12 -11
  64. package/lib/clients/{Builder.js → apps/Builder.js} +51 -23
  65. package/lib/clients/apps/MessagesGraphQL.d.ts +61 -0
  66. package/lib/clients/apps/MessagesGraphQL.js +122 -0
  67. package/lib/clients/{Settings.d.ts → apps/Settings.d.ts} +5 -4
  68. package/lib/clients/apps/Settings.js +39 -0
  69. package/lib/clients/apps/catalogGraphQL/brand.d.ts +13 -0
  70. package/lib/clients/apps/catalogGraphQL/brand.js +19 -0
  71. package/lib/clients/apps/catalogGraphQL/category.d.ts +11 -0
  72. package/lib/clients/apps/catalogGraphQL/category.js +17 -0
  73. package/lib/clients/apps/catalogGraphQL/index.d.ts +22 -0
  74. package/lib/clients/apps/catalogGraphQL/index.js +89 -0
  75. package/lib/clients/apps/catalogGraphQL/product.d.ts +25 -0
  76. package/lib/clients/apps/catalogGraphQL/product.js +31 -0
  77. package/lib/clients/apps/catalogGraphQL/sku.d.ts +26 -0
  78. package/lib/clients/apps/catalogGraphQL/sku.js +31 -0
  79. package/lib/clients/apps/index.d.ts +7 -0
  80. package/lib/clients/apps/index.js +23 -0
  81. package/lib/{HttpClient → clients/external}/ExternalClient.d.ts +3 -3
  82. package/lib/{HttpClient → clients/external}/ExternalClient.js +10 -2
  83. package/lib/clients/external/ID.d.ts +23 -0
  84. package/lib/clients/external/ID.js +61 -0
  85. package/lib/clients/external/Masterdata.d.ts +94 -0
  86. package/lib/clients/external/Masterdata.js +225 -0
  87. package/lib/clients/external/PaymentProvider.d.ts +31 -0
  88. package/lib/clients/external/PaymentProvider.js +43 -0
  89. package/lib/clients/external/index.d.ts +4 -0
  90. package/lib/clients/external/index.js +20 -0
  91. package/lib/clients/index.d.ts +9 -21
  92. package/lib/clients/index.js +27 -24
  93. package/lib/clients/infra/Apps.d.ts +93 -0
  94. package/lib/clients/infra/Apps.js +511 -0
  95. package/lib/clients/infra/Assets.d.ts +35 -0
  96. package/lib/clients/infra/Assets.js +166 -0
  97. package/lib/clients/infra/BillingMetrics.d.ts +13 -0
  98. package/lib/clients/infra/BillingMetrics.js +16 -0
  99. package/lib/clients/infra/Events.d.ts +12 -0
  100. package/lib/clients/infra/Events.js +34 -0
  101. package/lib/clients/infra/Housekeeper.d.ts +10 -0
  102. package/lib/clients/infra/Housekeeper.js +31 -0
  103. package/lib/{HttpClient → clients/infra}/InfraClient.d.ts +3 -3
  104. package/lib/{HttpClient → clients/infra}/InfraClient.js +10 -4
  105. package/lib/clients/infra/Registry.d.ts +65 -0
  106. package/lib/clients/infra/Registry.js +209 -0
  107. package/lib/clients/infra/Router.d.ts +34 -0
  108. package/lib/clients/infra/Router.js +82 -0
  109. package/lib/clients/infra/Sphinx.d.ts +13 -0
  110. package/lib/clients/infra/Sphinx.js +30 -0
  111. package/lib/clients/infra/VBase.d.ts +61 -0
  112. package/lib/clients/infra/VBase.js +197 -0
  113. package/lib/clients/infra/Workspaces.d.ts +18 -0
  114. package/lib/clients/infra/Workspaces.js +66 -0
  115. package/lib/clients/infra/index.d.ts +11 -0
  116. package/lib/clients/infra/index.js +27 -0
  117. package/lib/{HttpClient → clients/janus}/JanusClient.d.ts +4 -4
  118. package/lib/{HttpClient → clients/janus}/JanusClient.js +8 -3
  119. package/lib/clients/janus/LicenseManager.d.ts +7 -0
  120. package/lib/clients/janus/LicenseManager.js +59 -0
  121. package/lib/clients/{Segment.d.ts → janus/Segment.d.ts} +7 -11
  122. package/lib/clients/janus/Segment.js +89 -0
  123. package/lib/clients/{Session.d.ts → janus/Session.d.ts} +4 -4
  124. package/lib/clients/{Session.js → janus/Session.js} +25 -13
  125. package/lib/clients/{Tenant.d.ts → janus/Tenant.d.ts} +7 -8
  126. package/lib/clients/janus/Tenant.js +29 -0
  127. package/lib/clients/janus/index.d.ts +5 -0
  128. package/lib/clients/janus/index.js +21 -0
  129. package/lib/constants.d.ts +50 -2
  130. package/lib/constants.js +55 -1
  131. package/lib/errors/AuthenticationError.js +1 -0
  132. package/lib/errors/ForbiddenError.js +1 -0
  133. package/lib/errors/NotFoundError.js +1 -0
  134. package/lib/errors/RequestCancelledError.js +1 -0
  135. package/lib/errors/ResolverError.d.ts +1 -1
  136. package/lib/errors/ResolverError.js +4 -3
  137. package/lib/errors/ResolverWarning.d.ts +1 -1
  138. package/lib/errors/ResolverWarning.js +3 -2
  139. package/lib/errors/TooManyRequestsError.js +1 -0
  140. package/lib/errors/UserInputError.js +1 -0
  141. package/lib/errors/index.js +22 -11
  142. package/lib/index.d.ts +9 -7
  143. package/lib/index.js +31 -16
  144. package/lib/metrics/MetricsAccumulator.d.ts +3 -20
  145. package/lib/metrics/MetricsAccumulator.js +44 -27
  146. package/lib/responses.d.ts +5 -46
  147. package/lib/service/index.d.ts +2 -0
  148. package/lib/service/index.js +35 -0
  149. package/lib/service/loaders.d.ts +8 -0
  150. package/lib/service/loaders.js +57 -0
  151. package/lib/service/logger/console.d.ts +10 -0
  152. package/lib/service/logger/console.js +40 -0
  153. package/lib/service/logger/index.d.ts +2 -28
  154. package/lib/service/logger/index.js +16 -68
  155. package/lib/service/logger/logger.d.ts +29 -0
  156. package/lib/service/logger/logger.js +62 -0
  157. package/lib/service/logger/metricsLogger.d.ts +40 -0
  158. package/lib/service/logger/metricsLogger.js +150 -0
  159. package/lib/service/master.d.ts +2 -0
  160. package/lib/service/master.js +89 -0
  161. package/lib/service/metrics/requestMetricsMiddleware.d.ts +2 -0
  162. package/lib/service/metrics/requestMetricsMiddleware.js +46 -0
  163. package/lib/service/tracing/TracerSingleton.d.ts +7 -0
  164. package/lib/service/tracing/TracerSingleton.js +49 -0
  165. package/lib/service/tracing/metrics/MetricNames.d.ts +60 -0
  166. package/lib/service/tracing/metrics/MetricNames.js +45 -0
  167. package/lib/service/tracing/metrics/instruments.d.ts +9 -0
  168. package/lib/service/tracing/metrics/instruments.js +19 -0
  169. package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.d.ts +9 -0
  170. package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.js +26 -0
  171. package/lib/service/tracing/tracingMiddlewares.d.ts +5 -0
  172. package/lib/service/tracing/tracingMiddlewares.js +117 -0
  173. package/lib/service/worker/index.d.ts +11 -0
  174. package/lib/service/worker/index.js +197 -0
  175. package/lib/service/worker/listeners.d.ts +3 -0
  176. package/lib/{utils/unhandled.js → service/worker/listeners.js} +12 -16
  177. package/lib/service/{Service.d.ts → worker/runtime/Service.d.ts} +5 -5
  178. package/lib/service/{Service.js → worker/runtime/Service.js} +3 -1
  179. package/lib/service/worker/runtime/builtIn/handlers.d.ts +4 -0
  180. package/lib/service/worker/runtime/builtIn/handlers.js +34 -0
  181. package/lib/service/worker/runtime/builtIn/middlewares.d.ts +4 -0
  182. package/lib/service/worker/runtime/builtIn/middlewares.js +43 -0
  183. package/lib/service/worker/runtime/events/index.d.ts +4 -0
  184. package/lib/service/worker/runtime/events/index.js +48 -0
  185. package/lib/service/worker/runtime/events/middlewares/body.d.ts +3 -0
  186. package/lib/service/worker/runtime/events/middlewares/body.js +26 -0
  187. package/lib/service/worker/runtime/events/middlewares/context.d.ts +3 -0
  188. package/lib/service/worker/runtime/events/middlewares/context.js +23 -0
  189. package/lib/service/worker/runtime/events/router.d.ts +2 -0
  190. package/lib/service/worker/runtime/events/router.js +29 -0
  191. package/lib/service/worker/runtime/graphql/index.d.ts +6 -0
  192. package/lib/service/worker/runtime/graphql/index.js +29 -0
  193. package/lib/service/worker/runtime/graphql/middlewares/context.d.ts +2 -0
  194. package/lib/service/worker/runtime/graphql/middlewares/context.js +17 -0
  195. package/lib/service/worker/runtime/graphql/middlewares/error.js +97 -0
  196. package/lib/service/worker/runtime/graphql/middlewares/query.d.ts +3 -0
  197. package/lib/service/worker/runtime/graphql/middlewares/query.js +54 -0
  198. package/lib/service/worker/runtime/graphql/middlewares/response.js +39 -0
  199. package/lib/service/worker/runtime/graphql/middlewares/run.d.ts +2 -0
  200. package/lib/service/worker/runtime/graphql/middlewares/run.js +21 -0
  201. package/lib/service/worker/runtime/graphql/middlewares/updateSchema.d.ts +5 -0
  202. package/lib/service/worker/runtime/graphql/middlewares/updateSchema.js +30 -0
  203. package/lib/service/worker/runtime/graphql/middlewares/upload.d.ts +4 -0
  204. package/lib/service/{graphql → worker/runtime/graphql}/middlewares/upload.js +2 -1
  205. package/lib/service/worker/runtime/graphql/schema/index.d.ts +7 -0
  206. package/lib/service/worker/runtime/graphql/schema/index.js +33 -0
  207. package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.d.ts +6 -0
  208. package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.js +81 -0
  209. package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/Auth.d.ts +1 -0
  210. package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/Auth.js +17 -10
  211. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/CacheControl.d.ts +7 -0
  212. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/CacheControl.js +38 -0
  213. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.d.ts +11 -0
  214. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.js +62 -0
  215. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Metric.d.ts +7 -0
  216. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Metric.js +41 -0
  217. package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/Sanitize.d.ts +1 -0
  218. package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/Sanitize.js +7 -0
  219. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.d.ts +6 -0
  220. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.js +35 -0
  221. package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/SmartCacheDirective.d.ts +1 -0
  222. package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/SmartCacheDirective.js +9 -3
  223. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.d.ts +7 -0
  224. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.js +40 -0
  225. package/lib/service/{graphql/schema/schemaDirectives/Translatable.d.ts → worker/runtime/graphql/schema/schemaDirectives/TranslateTo.d.ts} +2 -1
  226. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslateTo.js +34 -0
  227. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.d.ts +22 -0
  228. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.js +37 -0
  229. package/lib/service/worker/runtime/graphql/schema/typeDefs/index.d.ts +8 -0
  230. package/lib/service/worker/runtime/graphql/schema/typeDefs/index.js +14 -0
  231. package/lib/service/{graphql → worker/runtime/graphql}/schema/typeDefs/ioUpload.js +1 -0
  232. package/lib/service/{graphql → worker/runtime/graphql}/schema/typeDefs/sanitizedString.js +8 -3
  233. package/lib/service/worker/runtime/graphql/typings.d.ts +31 -0
  234. package/lib/service/worker/runtime/graphql/utils/cacheControl.d.ts +2 -0
  235. package/lib/service/worker/runtime/graphql/utils/cacheControl.js +34 -0
  236. package/lib/service/worker/runtime/graphql/utils/error.d.ts +2 -0
  237. package/lib/service/worker/runtime/graphql/utils/error.js +78 -0
  238. package/lib/service/worker/runtime/graphql/utils/pathname.js +9 -0
  239. package/lib/service/worker/runtime/graphql/utils/translations.d.ts +14 -0
  240. package/lib/service/worker/runtime/graphql/utils/translations.js +42 -0
  241. package/lib/service/worker/runtime/http/index.d.ts +5 -0
  242. package/lib/service/worker/runtime/http/index.js +61 -0
  243. package/lib/service/worker/runtime/http/middlewares/authTokens.d.ts +3 -0
  244. package/lib/service/{http → worker/runtime/http}/middlewares/authTokens.js +1 -0
  245. package/lib/service/worker/runtime/http/middlewares/cancellationToken.d.ts +3 -0
  246. package/lib/service/{http → worker/runtime/http}/middlewares/cancellationToken.js +3 -1
  247. package/lib/service/worker/runtime/http/middlewares/clients.d.ts +4 -0
  248. package/lib/service/{http → worker/runtime/http}/middlewares/clients.js +1 -0
  249. package/lib/service/worker/runtime/http/middlewares/context.d.ts +4 -0
  250. package/lib/service/worker/runtime/http/middlewares/context.js +39 -0
  251. package/lib/service/worker/runtime/http/middlewares/error.d.ts +2 -0
  252. package/lib/service/{http → worker/runtime/http}/middlewares/error.js +29 -16
  253. package/lib/service/worker/runtime/http/middlewares/rateLimit.d.ts +6 -0
  254. package/lib/service/worker/runtime/http/middlewares/rateLimit.js +43 -0
  255. package/lib/service/{http → worker/runtime/http}/middlewares/requestStats.d.ts +3 -3
  256. package/lib/service/{http → worker/runtime/http}/middlewares/requestStats.js +1 -0
  257. package/lib/service/worker/runtime/http/middlewares/setCookie.d.ts +3 -0
  258. package/lib/service/{http → worker/runtime/http}/middlewares/setCookie.js +6 -5
  259. package/lib/service/worker/runtime/http/middlewares/settings.d.ts +9 -0
  260. package/lib/service/worker/runtime/http/middlewares/settings.js +49 -0
  261. package/lib/service/worker/runtime/http/middlewares/timings.d.ts +3 -0
  262. package/lib/service/{http → worker/runtime/http}/middlewares/timings.js +25 -11
  263. package/lib/service/worker/runtime/http/middlewares/vary.d.ts +3 -0
  264. package/lib/service/{http → worker/runtime/http}/middlewares/vary.js +4 -3
  265. package/lib/service/worker/runtime/http/router.d.ts +2 -0
  266. package/lib/service/worker/runtime/http/router.js +25 -0
  267. package/lib/service/worker/runtime/http/routes.d.ts +19 -0
  268. package/lib/service/worker/runtime/http/routes.js +16 -0
  269. package/lib/service/worker/runtime/method.d.ts +9 -0
  270. package/lib/service/{method.js → worker/runtime/method.js} +2 -1
  271. package/lib/service/worker/runtime/statusTrack.d.ts +14 -0
  272. package/lib/service/worker/runtime/statusTrack.js +43 -0
  273. package/lib/service/worker/runtime/typings.d.ts +173 -0
  274. package/lib/service/worker/runtime/utils/compose.d.ts +5 -0
  275. package/lib/service/worker/runtime/utils/compose.js +14 -0
  276. package/lib/service/worker/runtime/utils/context.d.ts +5 -0
  277. package/lib/service/worker/runtime/utils/context.js +42 -0
  278. package/lib/service/worker/runtime/utils/diff.d.ts +12 -0
  279. package/lib/service/worker/runtime/utils/diff.js +22 -0
  280. package/lib/service/worker/runtime/utils/recorder.d.ts +8 -0
  281. package/lib/service/worker/runtime/utils/recorder.js +38 -0
  282. package/lib/service/worker/runtime/utils/toArray.js +5 -0
  283. package/lib/service/worker/runtime/utils/tokenBucket.d.ts +2 -0
  284. package/lib/service/worker/runtime/utils/tokenBucket.js +17 -0
  285. package/lib/tracing/LogEvents.d.ts +31 -0
  286. package/lib/{service/graphql/utils/array.js → tracing/LogEvents.js} +1 -1
  287. package/lib/tracing/LogFields.d.ts +66 -0
  288. package/lib/tracing/LogFields.js +3 -0
  289. package/lib/tracing/Tags.d.ts +81 -0
  290. package/lib/tracing/Tags.js +8 -0
  291. package/lib/tracing/UserLandTracer.d.ts +27 -0
  292. package/lib/tracing/UserLandTracer.js +58 -0
  293. package/lib/tracing/errorReporting/ErrorReport.d.ts +31 -0
  294. package/lib/tracing/errorReporting/ErrorReport.js +71 -0
  295. package/lib/tracing/index.d.ts +9 -0
  296. package/lib/tracing/index.js +20 -0
  297. package/lib/tracing/spanReference/SpanReferenceTypes.d.ts +4 -0
  298. package/lib/tracing/spanReference/SpanReferenceTypes.js +8 -0
  299. package/lib/tracing/spanReference/createSpanReference.d.ts +3 -0
  300. package/lib/tracing/spanReference/createSpanReference.js +9 -0
  301. package/lib/tracing/utils.d.ts +13 -0
  302. package/lib/tracing/utils.js +42 -0
  303. package/lib/utils/MineWinsConflictsResolver.d.ts +7 -5
  304. package/lib/utils/MineWinsConflictsResolver.js +40 -22
  305. package/lib/utils/app.d.ts +3 -1
  306. package/lib/utils/app.js +40 -21
  307. package/lib/utils/appsStaleIfError.d.ts +2 -1
  308. package/lib/utils/appsStaleIfError.js +33 -12
  309. package/lib/utils/billingOptions.d.ts +36 -3
  310. package/lib/utils/billingOptions.js +9 -3
  311. package/lib/utils/binding.d.ts +3 -3
  312. package/lib/utils/binding.js +5 -2
  313. package/lib/utils/cancel.d.ts +2 -2
  314. package/lib/utils/cancel.js +3 -1
  315. package/lib/utils/conflicts.mock.d.ts +17 -0
  316. package/lib/utils/conflicts.mock.js +28 -0
  317. package/lib/utils/domain.js +2 -1
  318. package/lib/utils/error.js +6 -4
  319. package/lib/utils/index.js +23 -12
  320. package/lib/utils/json.js +1 -0
  321. package/lib/utils/log.d.ts +1 -3
  322. package/lib/utils/log.js +6 -4
  323. package/lib/utils/message.js +11 -4
  324. package/lib/utils/renameBy.js +3 -1
  325. package/lib/utils/retry.js +10 -7
  326. package/lib/utils/status.js +3 -1
  327. package/lib/utils/tenant.d.ts +3 -3
  328. package/lib/utils/tenant.js +5 -2
  329. package/lib/utils/throwOnGraphQLErrors.js +1 -0
  330. package/lib/utils/time.d.ts +7 -7
  331. package/lib/utils/time.js +29 -12
  332. package/package.json +3 -3
  333. package/lib/HttpClient/IOClient.d.ts +0 -13
  334. package/lib/HttpClient/IOClient.js +0 -14
  335. package/lib/HttpClient/factories/index.d.ts +0 -8
  336. package/lib/HttpClient/factories/index.js +0 -31
  337. package/lib/HttpClient/middlewares/request.d.ts +0 -10
  338. package/lib/HttpClient/middlewares/request.js +0 -87
  339. package/lib/IODataSource.d.ts +0 -27
  340. package/lib/IODataSource.js +0 -46
  341. package/lib/clients/Apps.d.ts +0 -84
  342. package/lib/clients/Apps.js +0 -326
  343. package/lib/clients/Assets.d.ts +0 -21
  344. package/lib/clients/Assets.js +0 -110
  345. package/lib/clients/Billing.d.ts +0 -11
  346. package/lib/clients/BillingMetrics.d.ts +0 -12
  347. package/lib/clients/BillingMetrics.js +0 -10
  348. package/lib/clients/Events.d.ts +0 -6
  349. package/lib/clients/Events.js +0 -19
  350. package/lib/clients/Housekeeper.d.ts +0 -11
  351. package/lib/clients/Housekeeper.js +0 -24
  352. package/lib/clients/ID.d.ts +0 -22
  353. package/lib/clients/ID.js +0 -48
  354. package/lib/clients/LicenseManager.d.ts +0 -6
  355. package/lib/clients/LicenseManager.js +0 -43
  356. package/lib/clients/Logger.d.ts +0 -27
  357. package/lib/clients/Logger.js +0 -32
  358. package/lib/clients/Messages.d.ts +0 -18
  359. package/lib/clients/Messages.js +0 -20
  360. package/lib/clients/MessagesGraphQL.d.ts +0 -63
  361. package/lib/clients/MessagesGraphQL.js +0 -50
  362. package/lib/clients/Metadata.d.ts +0 -25
  363. package/lib/clients/Metadata.js +0 -53
  364. package/lib/clients/Registry.d.ts +0 -61
  365. package/lib/clients/Registry.js +0 -147
  366. package/lib/clients/Router.d.ts +0 -33
  367. package/lib/clients/Router.js +0 -50
  368. package/lib/clients/Segment.js +0 -69
  369. package/lib/clients/Settings.js +0 -44
  370. package/lib/clients/Sphinx.d.ts +0 -12
  371. package/lib/clients/Sphinx.js +0 -19
  372. package/lib/clients/Tenant.js +0 -13
  373. package/lib/clients/VBase.d.ts +0 -57
  374. package/lib/clients/VBase.js +0 -116
  375. package/lib/clients/Workspaces.d.ts +0 -17
  376. package/lib/clients/Workspaces.js +0 -38
  377. package/lib/service/Runtime.d.ts +0 -18
  378. package/lib/service/Runtime.js +0 -57
  379. package/lib/service/events/index.d.ts +0 -3
  380. package/lib/service/events/index.js +0 -21
  381. package/lib/service/graphql/index.d.ts +0 -7
  382. package/lib/service/graphql/index.js +0 -33
  383. package/lib/service/graphql/middlewares/error.js +0 -107
  384. package/lib/service/graphql/middlewares/formatters.d.ts +0 -2
  385. package/lib/service/graphql/middlewares/formatters.js +0 -64
  386. package/lib/service/graphql/middlewares/query.d.ts +0 -2
  387. package/lib/service/graphql/middlewares/query.js +0 -32
  388. package/lib/service/graphql/middlewares/response.js +0 -36
  389. package/lib/service/graphql/middlewares/run.d.ts +0 -4
  390. package/lib/service/graphql/middlewares/run.js +0 -55
  391. package/lib/service/graphql/middlewares/schema.d.ts +0 -2
  392. package/lib/service/graphql/middlewares/schema.js +0 -8
  393. package/lib/service/graphql/middlewares/timings.d.ts +0 -2
  394. package/lib/service/graphql/middlewares/timings.js +0 -10
  395. package/lib/service/graphql/middlewares/upload.d.ts +0 -7
  396. package/lib/service/graphql/schema/index.d.ts +0 -3
  397. package/lib/service/graphql/schema/index.js +0 -66
  398. package/lib/service/graphql/schema/messagesLoader.d.ts +0 -4
  399. package/lib/service/graphql/schema/messagesLoader.js +0 -41
  400. package/lib/service/graphql/schema/messagesLoaderV2.d.ts +0 -5
  401. package/lib/service/graphql/schema/messagesLoaderV2.js +0 -44
  402. package/lib/service/graphql/schema/schemaDirectives/Translatable.js +0 -54
  403. package/lib/service/graphql/schema/schemaDirectives/TranslatableV2.d.ts +0 -13
  404. package/lib/service/graphql/schema/schemaDirectives/TranslatableV2.js +0 -67
  405. package/lib/service/graphql/schema/schemaDirectives/index.d.ts +0 -13
  406. package/lib/service/graphql/schema/schemaDirectives/index.js +0 -17
  407. package/lib/service/graphql/schema/typeDefs/index.d.ts +0 -16
  408. package/lib/service/graphql/schema/typeDefs/index.js +0 -21
  409. package/lib/service/graphql/schema/typeDefs/ioMessage.d.ts +0 -8
  410. package/lib/service/graphql/schema/typeDefs/ioMessage.js +0 -33
  411. package/lib/service/graphql/typings.d.ts +0 -21
  412. package/lib/service/graphql/utils/cacheControl.d.ts +0 -6
  413. package/lib/service/graphql/utils/cacheControl.js +0 -38
  414. package/lib/service/graphql/utils/maxAgeEnum.d.ts +0 -6
  415. package/lib/service/graphql/utils/maxAgeEnum.js +0 -17
  416. package/lib/service/graphql/utils/pathname.js +0 -7
  417. package/lib/service/http/index.d.ts +0 -3
  418. package/lib/service/http/index.js +0 -18
  419. package/lib/service/http/middlewares/authTokens.d.ts +0 -3
  420. package/lib/service/http/middlewares/cancellationToken.d.ts +0 -3
  421. package/lib/service/http/middlewares/clients.d.ts +0 -4
  422. package/lib/service/http/middlewares/error.d.ts +0 -3
  423. package/lib/service/http/middlewares/setCookie.d.ts +0 -3
  424. package/lib/service/http/middlewares/timings.d.ts +0 -3
  425. package/lib/service/http/middlewares/vary.d.ts +0 -3
  426. package/lib/service/method.d.ts +0 -9
  427. package/lib/service/typings.d.ts +0 -139
  428. package/lib/service/utils/compose.d.ts +0 -4
  429. package/lib/service/utils/compose.js +0 -11
  430. package/lib/utils/MineWinsConflictsResolver.test.d.ts +0 -1
  431. package/lib/utils/MineWinsConflictsResolver.test.js +0 -134
  432. package/lib/utils/unhandled.d.ts +0 -1
  433. /package/lib/service/{graphql → worker/runtime/graphql}/middlewares/error.d.ts +0 -0
  434. /package/lib/service/{graphql → worker/runtime/graphql}/middlewares/response.d.ts +0 -0
  435. /package/lib/service/{graphql → worker/runtime/graphql}/schema/typeDefs/ioUpload.d.ts +0 -0
  436. /package/lib/service/{graphql → worker/runtime/graphql}/schema/typeDefs/sanitizedString.d.ts +0 -0
  437. /package/lib/service/{graphql → worker/runtime/graphql}/typings.js +0 -0
  438. /package/lib/service/{graphql → worker/runtime/graphql}/utils/pathname.d.ts +0 -0
  439. /package/lib/service/{typings.js → worker/runtime/typings.js} +0 -0
  440. /package/lib/service/{graphql/utils/array.d.ts → worker/runtime/utils/toArray.d.ts} +0 -0
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserlandTags = exports.OpentracingTags = void 0;
4
+ const opentracing_1 = require("opentracing");
5
+ Object.defineProperty(exports, "OpentracingTags", { enumerable: true, get: function () { return opentracing_1.Tags; } });
6
+ exports.UserlandTags = {
7
+ ...opentracing_1.Tags,
8
+ };
@@ -0,0 +1,27 @@
1
+ import { Span, SpanContext, SpanOptions, Tracer } from 'opentracing';
2
+ export interface IUserLandTracer {
3
+ traceId?: string;
4
+ isTraceSampled: boolean;
5
+ startSpan: Tracer['startSpan'];
6
+ inject: Tracer['inject'];
7
+ fallbackSpanContext: () => SpanContext | undefined;
8
+ }
9
+ export declare const createTracingContextFromCarrier: (newSpanName: string, carrier: Record<string, any>) => {
10
+ span: Span;
11
+ tracer: IUserLandTracer;
12
+ };
13
+ export declare class UserLandTracer implements IUserLandTracer {
14
+ private tracer;
15
+ private fallbackSpan;
16
+ private fallbackSpanLock;
17
+ private _isSampled;
18
+ private _traceId?;
19
+ constructor(tracer: Tracer, fallbackSpan?: Span);
20
+ get traceId(): string | undefined;
21
+ get isTraceSampled(): boolean;
22
+ lockFallbackSpan(): void;
23
+ setFallbackSpan(newSpan?: Span): void;
24
+ startSpan(name: string, options?: SpanOptions): Span;
25
+ inject(spanContext: SpanContext | Span, format: string, carrier: any): void;
26
+ fallbackSpanContext(): SpanContext | undefined;
27
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserLandTracer = exports.createTracingContextFromCarrier = void 0;
4
+ const opentracing_1 = require("opentracing");
5
+ const TracerSingleton_1 = require("../service/tracing/TracerSingleton");
6
+ const utils_1 = require("./utils");
7
+ const createTracingContextFromCarrier = (newSpanName, carrier) => {
8
+ const tracer = TracerSingleton_1.TracerSingleton.getTracer();
9
+ const rootSpan = tracer.extract(opentracing_1.FORMAT_HTTP_HEADERS, carrier);
10
+ if (rootSpan == null) {
11
+ throw new Error('Missing span context data on carrier');
12
+ }
13
+ const span = tracer.startSpan(newSpanName, { childOf: rootSpan });
14
+ const userlandTracer = new UserLandTracer(tracer, span);
15
+ userlandTracer.lockFallbackSpan();
16
+ return { span, tracer: userlandTracer };
17
+ };
18
+ exports.createTracingContextFromCarrier = createTracingContextFromCarrier;
19
+ class UserLandTracer {
20
+ constructor(tracer, fallbackSpan) {
21
+ this.tracer = tracer;
22
+ this.fallbackSpan = fallbackSpan;
23
+ this.fallbackSpanLock = false;
24
+ const { traceId, isSampled } = (0, utils_1.getTraceInfo)(fallbackSpan);
25
+ this._traceId = traceId;
26
+ this._isSampled = isSampled;
27
+ }
28
+ get traceId() {
29
+ return this._traceId;
30
+ }
31
+ get isTraceSampled() {
32
+ return this._isSampled;
33
+ }
34
+ lockFallbackSpan() {
35
+ this.fallbackSpanLock = true;
36
+ }
37
+ setFallbackSpan(newSpan) {
38
+ if (this.fallbackSpanLock) {
39
+ throw new Error(`FallbackSpan is locked, can't change it`);
40
+ }
41
+ this.fallbackSpan = newSpan;
42
+ }
43
+ startSpan(name, options) {
44
+ var _a;
45
+ if (options && (options.childOf || ((_a = options.references) === null || _a === void 0 ? void 0 : _a.length))) {
46
+ return this.tracer.startSpan(name, options);
47
+ }
48
+ return this.tracer.startSpan(name, { ...options, childOf: this.fallbackSpan });
49
+ }
50
+ inject(spanContext, format, carrier) {
51
+ return this.tracer.inject(spanContext, format, carrier);
52
+ }
53
+ fallbackSpanContext() {
54
+ var _a;
55
+ return (_a = this.fallbackSpan) === null || _a === void 0 ? void 0 : _a.context();
56
+ }
57
+ }
58
+ exports.UserLandTracer = UserLandTracer;
@@ -0,0 +1,31 @@
1
+ import { ErrorReportBase, ErrorReportCreateArgs } from '@vtex/node-error-report';
2
+ import { Span } from 'opentracing';
3
+ import { IOContext } from '../../service/worker/runtime/typings';
4
+ export declare class ErrorReport extends ErrorReportBase {
5
+ /**
6
+ * Create a new ErrorReport wrapping args.originalError
7
+ *
8
+ * In case the args.originalError argument is already an ErrorReport
9
+ * instance, then ErrorReport.create just returns it. If it's not,
10
+ * it returns a new ErrorReport wrapping the error. This way you can
11
+ * use ErrorReport.create on a catchAll, e.g.:
12
+ *
13
+ * ```
14
+ * try {
15
+ * await next()
16
+ * } catch(err) {
17
+ * ErrorReport.create({ originalError: err }).injectOnSpan(span)
18
+ * }
19
+ * ```
20
+ *
21
+ * More docs on the ErrorReport available on: https://github.com/vtex/node-error-report
22
+ */
23
+ static create(args: ErrorReportCreateArgs): ErrorReport;
24
+ /**
25
+ * Inject information about the error wrapped by this ErrorReport
26
+ * instance on the provided Span. If a logger is provided and the
27
+ * span is part of a **sampled** trace, then the error will be logged.
28
+ */
29
+ injectOnSpan(span?: Span, logger?: IOContext['logger']): this;
30
+ private shouldLogToSplunk;
31
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ErrorReport = void 0;
4
+ const node_error_report_1 = require("@vtex/node-error-report");
5
+ const __1 = require("..");
6
+ const utils_1 = require("../utils");
7
+ class ErrorReport extends node_error_report_1.ErrorReportBase {
8
+ /**
9
+ * Create a new ErrorReport wrapping args.originalError
10
+ *
11
+ * In case the args.originalError argument is already an ErrorReport
12
+ * instance, then ErrorReport.create just returns it. If it's not,
13
+ * it returns a new ErrorReport wrapping the error. This way you can
14
+ * use ErrorReport.create on a catchAll, e.g.:
15
+ *
16
+ * ```
17
+ * try {
18
+ * await next()
19
+ * } catch(err) {
20
+ * ErrorReport.create({ originalError: err }).injectOnSpan(span)
21
+ * }
22
+ * ```
23
+ *
24
+ * More docs on the ErrorReport available on: https://github.com/vtex/node-error-report
25
+ */
26
+ static create(args) {
27
+ if (args.originalError instanceof ErrorReport) {
28
+ return args.originalError;
29
+ }
30
+ return new ErrorReport((0, node_error_report_1.createErrorReportBaseArgs)(args));
31
+ }
32
+ /**
33
+ * Inject information about the error wrapped by this ErrorReport
34
+ * instance on the provided Span. If a logger is provided and the
35
+ * span is part of a **sampled** trace, then the error will be logged.
36
+ */
37
+ injectOnSpan(span, logger) {
38
+ var _a, _b, _c, _d;
39
+ span === null || span === void 0 ? void 0 : span.setTag(__1.TracingTags.ERROR, 'true');
40
+ const indexedLogs = {
41
+ ["error.kind" /* ErrorReportLogFields.ERROR_KIND */]: this.kind,
42
+ ["error.id" /* ErrorReportLogFields.ERROR_ID */]: this.metadata.errorId,
43
+ };
44
+ if ((0, node_error_report_1.isRequestInfo)(this.parsedInfo) &&
45
+ this.parsedInfo.response &&
46
+ (0, node_error_report_1.isInfraErrorData)((_a = this.parsedInfo.response) === null || _a === void 0 ? void 0 : _a.data)) {
47
+ indexedLogs["error.server.code" /* ErrorReportLogFields.ERROR_SERVER_CODE */] = this.parsedInfo.response.data.code;
48
+ indexedLogs["error.server.request_id" /* ErrorReportLogFields.ERROR_SERVER_REQUEST_ID */] = this.parsedInfo.response.data.requestId;
49
+ }
50
+ const serializableError = this.toObject();
51
+ span === null || span === void 0 ? void 0 : span.log({
52
+ event: 'error',
53
+ ...indexedLogs,
54
+ ["error.message" /* ErrorReportLogFields.ERROR_MESSAGE */]: serializableError.message,
55
+ ["error.metadata.metrics.InstantiationTime" /* ErrorReportLogFields.ERROR_METADATA_METRICS_INSTANTIATION_TIME */]: (_b = serializableError.metadata) === null || _b === void 0 ? void 0 : _b.reportCount,
56
+ ["error.metadata.reportCount" /* ErrorReportLogFields.ERROR_METADATA_REPORT_COUNT */]: (_d = (_c = serializableError.metadata) === null || _c === void 0 ? void 0 : _c.metrics) === null || _d === void 0 ? void 0 : _d.instantiationTime,
57
+ ["error.stack" /* ErrorReportLogFields.ERROR_STACK */]: serializableError.stack,
58
+ ["error.code" /* ErrorReportLogFields.ERROR_CODE */]: serializableError.code,
59
+ });
60
+ if (logger && this.shouldLogToSplunk(span)) {
61
+ logger.error(serializableError);
62
+ this.markErrorAsReported();
63
+ }
64
+ return this;
65
+ }
66
+ shouldLogToSplunk(span) {
67
+ var _a;
68
+ return !this.isErrorReported() && ((_a = (0, utils_1.getTraceInfo)(span)) === null || _a === void 0 ? void 0 : _a.isSampled);
69
+ }
70
+ }
71
+ exports.ErrorReport = ErrorReport;
@@ -0,0 +1,9 @@
1
+ import { FORMAT_HTTP_HEADERS, Span } from 'opentracing';
2
+ export { ErrorKindsBase as ErrorKinds } from '@vtex/node-error-report';
3
+ export { ErrorReport } from './errorReporting/ErrorReport';
4
+ export { createSpanReference } from './spanReference/createSpanReference';
5
+ export { SpanReferenceTypes } from './spanReference/SpanReferenceTypes';
6
+ export { UserlandTags as TracingTags } from './Tags';
7
+ export { createTracingContextFromCarrier, IUserLandTracer } from './UserLandTracer';
8
+ export { getTraceInfo, TraceInfo } from './utils';
9
+ export { Span, FORMAT_HTTP_HEADERS };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FORMAT_HTTP_HEADERS = exports.Span = exports.getTraceInfo = exports.createTracingContextFromCarrier = exports.TracingTags = exports.SpanReferenceTypes = exports.createSpanReference = exports.ErrorReport = exports.ErrorKinds = void 0;
4
+ const opentracing_1 = require("opentracing");
5
+ Object.defineProperty(exports, "FORMAT_HTTP_HEADERS", { enumerable: true, get: function () { return opentracing_1.FORMAT_HTTP_HEADERS; } });
6
+ Object.defineProperty(exports, "Span", { enumerable: true, get: function () { return opentracing_1.Span; } });
7
+ var node_error_report_1 = require("@vtex/node-error-report");
8
+ Object.defineProperty(exports, "ErrorKinds", { enumerable: true, get: function () { return node_error_report_1.ErrorKindsBase; } });
9
+ var ErrorReport_1 = require("./errorReporting/ErrorReport");
10
+ Object.defineProperty(exports, "ErrorReport", { enumerable: true, get: function () { return ErrorReport_1.ErrorReport; } });
11
+ var createSpanReference_1 = require("./spanReference/createSpanReference");
12
+ Object.defineProperty(exports, "createSpanReference", { enumerable: true, get: function () { return createSpanReference_1.createSpanReference; } });
13
+ var SpanReferenceTypes_1 = require("./spanReference/SpanReferenceTypes");
14
+ Object.defineProperty(exports, "SpanReferenceTypes", { enumerable: true, get: function () { return SpanReferenceTypes_1.SpanReferenceTypes; } });
15
+ var Tags_1 = require("./Tags");
16
+ Object.defineProperty(exports, "TracingTags", { enumerable: true, get: function () { return Tags_1.UserlandTags; } });
17
+ var UserLandTracer_1 = require("./UserLandTracer");
18
+ Object.defineProperty(exports, "createTracingContextFromCarrier", { enumerable: true, get: function () { return UserLandTracer_1.createTracingContextFromCarrier; } });
19
+ var utils_1 = require("./utils");
20
+ Object.defineProperty(exports, "getTraceInfo", { enumerable: true, get: function () { return utils_1.getTraceInfo; } });
@@ -0,0 +1,4 @@
1
+ export declare enum SpanReferenceTypes {
2
+ CHILD_OF = 0,
3
+ FOLLOWS_FROM = 1
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpanReferenceTypes = void 0;
4
+ var SpanReferenceTypes;
5
+ (function (SpanReferenceTypes) {
6
+ SpanReferenceTypes[SpanReferenceTypes["CHILD_OF"] = 0] = "CHILD_OF";
7
+ SpanReferenceTypes[SpanReferenceTypes["FOLLOWS_FROM"] = 1] = "FOLLOWS_FROM";
8
+ })(SpanReferenceTypes = exports.SpanReferenceTypes || (exports.SpanReferenceTypes = {}));
@@ -0,0 +1,3 @@
1
+ import { Reference, Span } from 'opentracing';
2
+ import { SpanReferenceTypes } from './SpanReferenceTypes';
3
+ export declare function createSpanReference(span: Span, type: SpanReferenceTypes): Reference;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSpanReference = void 0;
4
+ const opentracing_1 = require("opentracing");
5
+ const SpanReferenceTypes_1 = require("./SpanReferenceTypes");
6
+ function createSpanReference(span, type) {
7
+ return new opentracing_1.Reference(type === SpanReferenceTypes_1.SpanReferenceTypes.CHILD_OF ? opentracing_1.REFERENCE_CHILD_OF : opentracing_1.REFERENCE_FOLLOWS_FROM, span.context());
8
+ }
9
+ exports.createSpanReference = createSpanReference;
@@ -0,0 +1,13 @@
1
+ import { Span } from 'opentracing';
2
+ export interface TraceInfo {
3
+ traceId?: string;
4
+ isSampled: boolean;
5
+ }
6
+ export declare function getTraceInfo(span?: Span): TraceInfo;
7
+ /**
8
+ * Do a shallow copy of a headers object and redacts sensitive information.
9
+ *
10
+ * @param headersObj The headers object
11
+ * @param resultFieldsPrefix The prefix that will be added to each field on the result object
12
+ */
13
+ export declare const cloneAndSanitizeHeaders: (headersObj: Record<string, any>, resultFieldsPrefix?: string) => Record<string, string>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cloneAndSanitizeHeaders = exports.getTraceInfo = void 0;
4
+ const node_error_report_1 = require("@vtex/node-error-report");
5
+ function getTraceInfo(span) {
6
+ var _a, _b;
7
+ const spanContext = span === null || span === void 0 ? void 0 : span.context();
8
+ return {
9
+ isSampled: (_b = (_a = spanContext === null || spanContext === void 0 ? void 0 : spanContext.isSampled) === null || _a === void 0 ? void 0 : _a.call(spanContext)) !== null && _b !== void 0 ? _b : false,
10
+ traceId: spanContext === null || spanContext === void 0 ? void 0 : spanContext.toTraceId(),
11
+ };
12
+ }
13
+ exports.getTraceInfo = getTraceInfo;
14
+ /**
15
+ * Do a shallow copy of a headers object and redacts sensitive information.
16
+ *
17
+ * @param headersObj The headers object
18
+ * @param resultFieldsPrefix The prefix that will be added to each field on the result object
19
+ */
20
+ const cloneAndSanitizeHeaders = (headersObj, resultFieldsPrefix = '') => {
21
+ const ret = {};
22
+ const entries = Object.entries(headersObj);
23
+ for (const [key, val] of entries) {
24
+ // Most of the time val is a string, but there are some cases, for example when we do a axios interceptor,
25
+ // that a header field can contain an object, for example:
26
+ // ```
27
+ // "common": {
28
+ // "Accept": "application/json, text/plain, */*"
29
+ // },
30
+ // "delete": { },
31
+ // "get": { },
32
+ // "head": { },
33
+ // "post": {
34
+ // "Content-Type": "application/x-www-form-urlencoded"
35
+ // },
36
+ // ```
37
+ // In those corner cases we probably won't have a sensitive string as key, so we don't treat them here
38
+ ret[`${resultFieldsPrefix}${key}`] = node_error_report_1.authFields.includes(key) ? (0, node_error_report_1.sanitizeAuth)(val) : val;
39
+ }
40
+ return ret;
41
+ };
42
+ exports.cloneAndSanitizeHeaders = cloneAndSanitizeHeaders;
@@ -1,7 +1,8 @@
1
- import { ConflictsResolver, VBase } from '../clients/VBase';
2
- declare type Configuration = Record<string, ConfigurationData | ConfigurationData[] | object> | ConfigurationData[];
3
- declare type ConfigurationData = Record<string, object>;
4
- export declare class MineWinsConflictsResolver implements ConflictsResolver {
1
+ import { Logger } from './../service/logger/logger';
2
+ import { ConflictsResolver, VBase } from '../clients/infra/VBase';
3
+ type Configuration = Record<string, ConfigurationData | ConfigurationData[] | object> | ConfigurationData[];
4
+ type ConfigurationData = Record<string, object>;
5
+ export declare class MineWinsConflictsResolver<T> implements ConflictsResolver<T> {
5
6
  /***
6
7
  * Take mine and merge with master keys that have no conflict
7
8
  * We use base to decide wether a key was deleted or not
@@ -11,7 +12,8 @@ export declare class MineWinsConflictsResolver implements ConflictsResolver {
11
12
  private filePath;
12
13
  private comparableKeys;
13
14
  constructor(client: VBase, bucket: string, filePath: string, comparableKeys?: string[]);
14
- resolve(): Promise<any>;
15
+ resolve(logger?: Logger): Promise<any>;
16
+ resolveAll(): Promise<Configuration[]>;
15
17
  protected mergeMineWins(base: Configuration, master: Configuration, mine: Configuration): Configuration;
16
18
  private parseConflict;
17
19
  private serializeContentByMimetype;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MineWinsConflictsResolver = void 0;
3
4
  const js_base64_1 = require("js-base64");
4
5
  const ramda_1 = require("ramda");
5
6
  const util_1 = require("util");
@@ -10,12 +11,15 @@ class MineWinsConflictsResolver {
10
11
  this.filePath = filePath;
11
12
  this.comparableKeys = comparableKeys;
12
13
  }
13
- async resolve() {
14
- return await this.client.getConflicts(this.bucket).then(data => {
14
+ async resolve(logger) {
15
+ return await this.client.getConflicts(this.bucket).then((data) => {
15
16
  const { data: conflicts } = data;
16
- const selectedConflict = conflicts.find(conflict => conflict.path === this.filePath);
17
+ const selectedConflict = conflicts.find((conflict) => conflict.path === this.filePath);
17
18
  if (!selectedConflict) {
18
- return {};
19
+ throw {
20
+ message: 'No conflict could be found.',
21
+ status: 404,
22
+ };
19
23
  }
20
24
  selectedConflict.base.parsedContent = this.parseConflict(selectedConflict.base);
21
25
  selectedConflict.master.parsedContent = this.parseConflict(selectedConflict.master);
@@ -24,11 +28,22 @@ class MineWinsConflictsResolver {
24
28
  return resolved;
25
29
  });
26
30
  }
31
+ async resolveAll() {
32
+ const conflictsResponse = await this.client.getConflicts(this.bucket);
33
+ const { data: conflicts } = conflictsResponse;
34
+ const resolvedConflicts = conflicts.map((conflict) => {
35
+ conflict.base.parsedContent = this.parseConflict(conflict.base);
36
+ conflict.master.parsedContent = this.parseConflict(conflict.master);
37
+ conflict.mine.parsedContent = this.parseConflict(conflict.mine);
38
+ return this.resolveConflictMineWins(conflict);
39
+ });
40
+ return resolvedConflicts;
41
+ }
27
42
  mergeMineWins(base, master, mine) {
28
- if (util_1.isArray(master)) {
43
+ if ((0, util_1.isArray)(master)) {
29
44
  return this.mergeMineWinsArray((base || []), master, (mine || []));
30
45
  }
31
- else if (util_1.isObject(master)) {
46
+ else if ((0, util_1.isObject)(master)) {
32
47
  return this.mergeMineWinsObject((base || {}), master, (mine || {}));
33
48
  }
34
49
  return mine ? mine : master;
@@ -53,30 +68,33 @@ class MineWinsConflictsResolver {
53
68
  }
54
69
  resolveConflictMineWins(conflict) {
55
70
  if (!conflict) {
56
- return {};
71
+ throw {
72
+ message: 'No conflict could be found.',
73
+ status: 404,
74
+ };
57
75
  }
58
76
  const { base, master, mine, path } = conflict;
59
- this.mergeMineWins(base.parsedContent, master.parsedContent, mine.parsedContent);
77
+ const merged = this.mergeMineWins(base.parsedContent, master.parsedContent, mine.parsedContent);
60
78
  const mergedContent = {
61
- content: js_base64_1.Base64.encode(this.serializeContentByMimetype(mine.parsedContent, conflict.mine.mimeType)),
79
+ content: js_base64_1.Base64.encode(this.serializeContentByMimetype(merged, conflict.mine.mimeType)),
62
80
  mimeType: conflict.mine.mimeType,
63
81
  };
64
82
  this.client.resolveConflict(this.bucket, path, mergedContent);
65
- return mine.parsedContent;
83
+ return merged;
66
84
  }
67
85
  mergeMineWinsObject(base, master, mine) {
68
- const merged = Object.assign({}, master, mine);
86
+ const merged = { ...master, ...mine };
69
87
  Object.entries(merged).forEach(([key, value]) => {
70
- if (master[key] == null && base && base[key] != null && ramda_1.equals(value, base[key])) {
88
+ if (master[key] == null && base && base[key] != null && (0, ramda_1.equals)(value, base[key])) {
71
89
  delete merged[key]; // value deleted from master with no conflict
72
90
  }
73
91
  else if (base[key] && master[key] && !mine[key]) {
74
92
  delete merged[key]; // value deleted from mine
75
93
  }
76
- else if (util_1.isArray(value)) {
94
+ else if ((0, util_1.isArray)(value)) {
77
95
  merged[key] = this.mergeMineWinsArray((base[key] || []), (master[key] || []), value);
78
96
  }
79
- else if (util_1.isObject(value)) {
97
+ else if ((0, util_1.isObject)(value)) {
80
98
  merged[key] = this.mergeMineWins((base[key] || {}), (master[key] || {}), (value || {}));
81
99
  }
82
100
  });
@@ -88,10 +106,10 @@ class MineWinsConflictsResolver {
88
106
  return mine;
89
107
  }
90
108
  removeMasterDeletedElements(base, master, mine) {
91
- base.forEach(baseItem => {
109
+ base.forEach((baseItem) => {
92
110
  const foundInMaster = this.isObjectInArray(baseItem, master);
93
111
  if (!foundInMaster) {
94
- const foundInMine = mine.findIndex(mineItem => ramda_1.equals(mineItem, baseItem));
112
+ const foundInMine = mine.findIndex((mineItem) => (0, ramda_1.equals)(mineItem, baseItem));
95
113
  if (foundInMine > -1) {
96
114
  mine.splice(foundInMine, 1);
97
115
  }
@@ -99,21 +117,21 @@ class MineWinsConflictsResolver {
99
117
  });
100
118
  }
101
119
  isObjectInArray(obj, array) {
102
- return array.find(item => ramda_1.equals(item, obj));
120
+ return array.find((item) => (0, ramda_1.equals)(item, obj));
103
121
  }
104
122
  appendMasterAddedElements(base, master, mine) {
105
- master.forEach(item => {
123
+ master.forEach((item) => {
106
124
  if (this.shouldAddToMine(item, base, mine)) {
107
125
  mine.push(item);
108
126
  }
109
127
  });
110
128
  }
111
129
  shouldAddToMine(item, base, mine) {
112
- if (this.comparableKeys && Object.keys(item).some(key => this.comparableKeys.includes(key))) {
113
- return (!mine.some(mineItem => this.comparableKeys.some(key => ramda_1.eqProps(key, item, mineItem))) &&
114
- !base.some(baseItem => this.comparableKeys.some(key => ramda_1.eqProps(key, item, baseItem))));
130
+ if (this.comparableKeys && Object.keys(item).some((key) => this.comparableKeys.includes(key))) {
131
+ return (!mine.some((mineItem) => this.comparableKeys.some((key) => (0, ramda_1.eqProps)(key, item, mineItem))) &&
132
+ !base.some((baseItem) => (0, ramda_1.equals)(baseItem, item)));
115
133
  }
116
- return !mine.some(mineItem => ramda_1.equals(mineItem, item)) && !base.some(baseItem => ramda_1.equals(baseItem, item));
134
+ return !mine.some((mineItem) => (0, ramda_1.equals)(mineItem, item)) && !base.some((baseItem) => (0, ramda_1.equals)(baseItem, item));
117
135
  }
118
136
  }
119
137
  exports.MineWinsConflictsResolver = MineWinsConflictsResolver;
@@ -1,4 +1,4 @@
1
- import { AppMetaInfo } from '../clients/Apps';
1
+ import { AppMetaInfo } from '../clients/infra/Apps';
2
2
  export declare const removeBuild: (id: string) => string;
3
3
  export declare const removeVersionFromAppId: (appId: string) => string;
4
4
  export declare const extractVersionFromAppId: (appId: string) => string;
@@ -13,6 +13,8 @@ export declare const versionToMajorRange: (version: string) => string;
13
13
  export declare const formatMajorLocator: (name: string, version: string) => string;
14
14
  export declare const appIdToAppAtMajor: (appId: string) => string;
15
15
  export declare const isValidAppIdOrLocator: (appId: string) => boolean;
16
+ export declare const sameMajor: (v1: string, v2: string) => boolean;
17
+ export declare const majorEqualAndGreaterThan: (v1: string, v2: string) => boolean;
16
18
  export interface ParsedLocator {
17
19
  name: string;
18
20
  version: string;
package/lib/utils/app.js CHANGED
@@ -3,44 +3,63 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.majorEqualAndGreaterThan = exports.sameMajor = exports.isValidAppIdOrLocator = exports.appIdToAppAtMajor = exports.formatMajorLocator = exports.versionToMajorRange = exports.versionToMajor = exports.satisfies = exports.formatAppId = exports.parseAppId = exports.isLinkedApp = exports.formatLocator = exports.transformToLinkedLocator = exports.extractVersionFromAppId = exports.removeVersionFromAppId = exports.removeBuild = void 0;
6
7
  const semver_1 = __importDefault(require("semver"));
7
8
  // Note: The name that composes the part of the appId that precedes the
8
9
  // character '@' includes the name given to the app and the vendor name.
9
- exports.removeBuild = (id) => id.split('+')[0];
10
- exports.removeVersionFromAppId = (appId) => appId.split('@')[0];
11
- exports.extractVersionFromAppId = (appId) => appId.split('@').slice(-1)[0];
12
- exports.transformToLinkedLocator = (appId) => appId.replace(/\+build.*$/, '+linked');
13
- exports.formatLocator = (name, versionAndBuild) => `${name}@${exports.removeBuild(versionAndBuild)}`;
14
- exports.isLinkedApp = (app) => app.id.includes('+build');
15
- exports.parseAppId = (appId) => {
16
- const name = exports.removeVersionFromAppId(appId);
17
- const version = exports.extractVersionFromAppId(appId);
10
+ const removeBuild = (id) => id.split('+')[0];
11
+ exports.removeBuild = removeBuild;
12
+ const removeVersionFromAppId = (appId) => appId.split('@')[0];
13
+ exports.removeVersionFromAppId = removeVersionFromAppId;
14
+ const extractVersionFromAppId = (appId) => appId.split('@').slice(-1)[0];
15
+ exports.extractVersionFromAppId = extractVersionFromAppId;
16
+ const transformToLinkedLocator = (appId) => appId.replace(/\+build.*$/, '+linked');
17
+ exports.transformToLinkedLocator = transformToLinkedLocator;
18
+ const formatLocator = (name, versionAndBuild) => `${name}@${(0, exports.removeBuild)(versionAndBuild)}`;
19
+ exports.formatLocator = formatLocator;
20
+ const isLinkedApp = (app) => app.id.includes('+build');
21
+ exports.isLinkedApp = isLinkedApp;
22
+ const parseAppId = (appId) => {
23
+ const name = (0, exports.removeVersionFromAppId)(appId);
24
+ const version = (0, exports.extractVersionFromAppId)(appId);
18
25
  const splittedVersion = version.split('+');
19
26
  return {
20
27
  build: splittedVersion[1],
21
- locator: exports.formatLocator(name, version),
28
+ locator: (0, exports.formatLocator)(name, version),
22
29
  name,
23
30
  version: splittedVersion[0],
24
31
  };
25
32
  };
26
- exports.formatAppId = ({ locator, build }) => build ? `${locator}+${build}` : locator;
27
- exports.satisfies = (appId, version) => {
28
- const { version: appVer } = exports.parseAppId(appId);
33
+ exports.parseAppId = parseAppId;
34
+ const formatAppId = ({ locator, build }) => (build ? `${locator}+${build}` : locator);
35
+ exports.formatAppId = formatAppId;
36
+ const satisfies = (appId, version) => {
37
+ const { version: appVer } = (0, exports.parseAppId)(appId);
29
38
  return semver_1.default.satisfies(appVer, version);
30
39
  };
31
- exports.versionToMajor = (version) => version.split('.')[0];
32
- exports.versionToMajorRange = (version) => `${exports.versionToMajor(version)}.x`;
33
- exports.formatMajorLocator = (name, version) => {
34
- const majorRange = exports.versionToMajorRange(version);
40
+ exports.satisfies = satisfies;
41
+ const versionToMajor = (version) => version.split('.')[0];
42
+ exports.versionToMajor = versionToMajor;
43
+ const versionToMajorRange = (version) => `${(0, exports.versionToMajor)(version)}.x`;
44
+ exports.versionToMajorRange = versionToMajorRange;
45
+ const formatMajorLocator = (name, version) => {
46
+ const majorRange = (0, exports.versionToMajorRange)(version);
35
47
  return `${name}@${majorRange}`;
36
48
  };
37
- exports.appIdToAppAtMajor = (appId) => {
38
- const { name, version } = exports.parseAppId(appId);
39
- const majorRange = exports.versionToMajorRange(version);
49
+ exports.formatMajorLocator = formatMajorLocator;
50
+ const appIdToAppAtMajor = (appId) => {
51
+ const { name, version } = (0, exports.parseAppId)(appId);
52
+ const majorRange = (0, exports.versionToMajorRange)(version);
40
53
  return `${name}@${majorRange}`;
41
54
  };
55
+ exports.appIdToAppAtMajor = appIdToAppAtMajor;
42
56
  // SemVer regex from https://github.com/sindresorhus/semver-regex
43
57
  const APP_ID_REGEX = /^[\w\-]+\.[\w\-]+@(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[\da-z\-]+(?:\.[\da-z\-]+)*)?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?$/;
44
- exports.isValidAppIdOrLocator = (appId) => {
58
+ const isValidAppIdOrLocator = (appId) => {
45
59
  return APP_ID_REGEX.test(appId);
46
60
  };
61
+ exports.isValidAppIdOrLocator = isValidAppIdOrLocator;
62
+ const sameMajor = (v1, v2) => (0, exports.versionToMajor)(v1) === (0, exports.versionToMajor)(v2);
63
+ exports.sameMajor = sameMajor;
64
+ const majorEqualAndGreaterThan = (v1, v2) => (0, exports.sameMajor)(v1, v2) && semver_1.default.gt(v1, v2);
65
+ exports.majorEqualAndGreaterThan = majorEqualAndGreaterThan;
@@ -1,8 +1,9 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { AppMetaInfo, Apps } from '..';
3
4
  import { CacheLayer } from '../caches';
4
5
  import { Logger } from '../service/logger';
5
- export declare const getMetaInfoKey: (account: string) => string;
6
+ export declare const getMetaInfoKey: (account: string, workspace: string) => string;
6
7
  export declare const updateMetaInfoCache: (cacheStorage: CacheLayer<string, AppMetaInfo[]>, account: string, workspace: string, dependencies: AppMetaInfo[], logger: Logger) => Promise<void>;
7
8
  export declare const saveVersion: (app: string, cacheStorage: CacheLayer<string, string>) => Promise<void>;
8
9
  export declare const getFallbackFile: (app: string, path: string, cacheStorage: CacheLayer<string, string>, apps: Apps) => Promise<{