@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,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Assets = void 0;
4
+ const ramda_1 = require("ramda");
5
+ const HttpClient_1 = require("../../HttpClient");
6
+ const utils_1 = require("../../utils");
7
+ const InfraClient_1 = require("./InfraClient");
8
+ const dependsOnApp = (appsAtMajor) => (a) => {
9
+ let dependsOn = false;
10
+ appsAtMajor.forEach(appAtMajor => {
11
+ const [name, major] = appAtMajor.split('@');
12
+ const sanitizedMajor = major.includes('.') ? major.split('.')[0] : major;
13
+ const version = a._resolvedDependencies[name];
14
+ if (version) {
15
+ const [depMajor] = version.split('.');
16
+ if (sanitizedMajor === depMajor) {
17
+ dependsOn = true;
18
+ }
19
+ }
20
+ });
21
+ return dependsOn;
22
+ };
23
+ const useBuildJson = (app, appVendorName) => {
24
+ const buildFeatures = app._buildFeatures;
25
+ return buildFeatures && buildFeatures[appVendorName] && (0, ramda_1.contains)('build.json', buildFeatures[appVendorName]);
26
+ };
27
+ const appOrRegistry = (workspace, { name, version, build }) => build
28
+ ? `${workspace}/apps/${name}@${version}+${build}`
29
+ : `master/registry/${name}/${version}`;
30
+ const createRoutes = (workspace) => ({
31
+ Bundle: (scope, locator, path) => `/${scope}/${appOrRegistry(workspace, locator)}/bundle/${path}`,
32
+ Files: (scope, locator, path) => `/${scope}/${appOrRegistry(workspace, locator)}/files/${path}`,
33
+ });
34
+ class Assets extends InfraClient_1.InfraClient {
35
+ constructor(context, options) {
36
+ super('apps@0.x', context, options, true);
37
+ this.getAppBundleByVendor = (app, bundlePath, generatePackageJson, tracingConfig) => {
38
+ const locator = (0, utils_1.parseAppId)(app);
39
+ const params = generatePackageJson && { _packageJSONEngine: 'npm', _packageJSONFilter: 'vtex.render-builder@x' };
40
+ const metric = locator.build ? 'apps-get-bundle' : 'registry-get-bundle';
41
+ return this.http.getStream(this.routes.Bundle(this.context.account, locator, bundlePath), {
42
+ headers: {
43
+ Accept: 'application/x-gzip',
44
+ 'Accept-Encoding': 'gzip',
45
+ },
46
+ metric,
47
+ params,
48
+ tracing: {
49
+ requestSpanNameSuffix: metric,
50
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
51
+ },
52
+ });
53
+ };
54
+ this.getAppJSONByAccount = (app, path, nullIfNotFound, tracingConfig) => {
55
+ const locator = (0, utils_1.parseAppId)(app);
56
+ const inflightKey = HttpClient_1.inflightURL;
57
+ const metric = 'assets-get-json-by-account';
58
+ return this.http.get(this.routes.Files(this.context.account, locator, path), {
59
+ cacheable: HttpClient_1.CacheType.Memory,
60
+ inflightKey,
61
+ metric,
62
+ nullIfNotFound,
63
+ tracing: {
64
+ requestSpanNameSuffix: metric,
65
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
66
+ },
67
+ });
68
+ };
69
+ this.getAppJSONByVendor = (app, path, nullIfNotFound, tracingConfig) => {
70
+ const locator = (0, utils_1.parseAppId)(app);
71
+ const vendor = locator.name.split('.')[0];
72
+ const inflightKey = HttpClient_1.inflightURL;
73
+ const metric = 'assets-get-json-by-vendor';
74
+ return this.http.get(this.routes.Files(vendor, locator, path), {
75
+ cacheable: HttpClient_1.CacheType.Any,
76
+ inflightKey,
77
+ metric,
78
+ nullIfNotFound,
79
+ tracing: {
80
+ requestSpanNameSuffix: metric,
81
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
82
+ },
83
+ });
84
+ };
85
+ this.getAppFileByAccount = (app, path, nullIfNotFound, tracingConfig) => {
86
+ const locator = (0, utils_1.parseAppId)(app);
87
+ const inflightKey = HttpClient_1.inflightURL;
88
+ const metric = 'assets-get-file-by-account';
89
+ return this.http.getBuffer(this.routes.Files(this.context.account, locator, path), {
90
+ cacheable: HttpClient_1.CacheType.Any,
91
+ inflightKey,
92
+ metric,
93
+ nullIfNotFound,
94
+ tracing: {
95
+ requestSpanNameSuffix: metric,
96
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
97
+ },
98
+ });
99
+ };
100
+ this.getAppFileByVendor = (app, path, nullIfNotFound, tracingConfig) => {
101
+ const locator = (0, utils_1.parseAppId)(app);
102
+ const vendor = locator.name.split('.')[0];
103
+ const inflightKey = HttpClient_1.inflightURL;
104
+ const metric = 'assets-get-file-by-vendor';
105
+ return this.http.getBuffer(this.routes.Files(vendor, locator, path), {
106
+ cacheable: HttpClient_1.CacheType.Any,
107
+ inflightKey,
108
+ metric,
109
+ nullIfNotFound,
110
+ tracing: {
111
+ requestSpanNameSuffix: metric,
112
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
113
+ },
114
+ });
115
+ };
116
+ this.routes = createRoutes(this.context.workspace);
117
+ }
118
+ getSettings(dependencies, appAtMajor, params = {}, tracingConfig) {
119
+ const { pick, files } = params;
120
+ const filtered = this.getFilteredDependencies(appAtMajor, dependencies);
121
+ return Promise.all(filtered.map(dependency => {
122
+ const [appVendorName] = appAtMajor.split('@');
123
+ const buildJson = useBuildJson(dependency, appVendorName);
124
+ return buildJson
125
+ ? this.getBuildJSONForApp(dependency, appVendorName, pick, tracingConfig)
126
+ : this.getSettingsFromFilesForApp(dependency, files, tracingConfig);
127
+ }));
128
+ }
129
+ async getBuildJSONForApp(app, appVendorName, pick = [], tracingConfig) {
130
+ const pickArray = Array.isArray(pick) ? pick : [pick];
131
+ const buildJson = await this.getJSON(app.id, `dist/${appVendorName}/build.json`, undefined, tracingConfig);
132
+ const result = !(0, ramda_1.isEmpty)(pickArray) ? (0, ramda_1.pick)(pickArray, buildJson) : buildJson;
133
+ result.declarer = app.id;
134
+ return result;
135
+ }
136
+ async getSettingsFromFilesForApp(app, files = [], tracingConfig) {
137
+ // If there's no support for build.json, then fetch individual files and zip them into an {[file]: content} object.
138
+ const filesArray = Array.isArray(files) ? files : [files];
139
+ const fetched = await Promise.all(filesArray.map(file => this.getJSON(app.id, file, true, tracingConfig)));
140
+ const result = (0, ramda_1.zipObj)(filesArray, fetched);
141
+ result.declarer = app.id;
142
+ return result;
143
+ }
144
+ async getJSON(appId, file, nullIfNotFound, tracingConfig) {
145
+ const locator = (0, utils_1.parseAppId)(appId);
146
+ const linked = !!locator.build;
147
+ if (linked) {
148
+ return this.getAppJSONByAccount(appId, file, nullIfNotFound, tracingConfig);
149
+ }
150
+ return this.getAppJSONByVendor(appId, file, nullIfNotFound, tracingConfig);
151
+ }
152
+ async getFile(appId, file, nullIfNotFound, tracingConfig) {
153
+ const locator = (0, utils_1.parseAppId)(appId);
154
+ const linked = !!locator.build;
155
+ if (linked) {
156
+ return this.getAppFileByAccount(appId, file, nullIfNotFound, tracingConfig);
157
+ }
158
+ return this.getAppFileByVendor(appId, file, nullIfNotFound, tracingConfig);
159
+ }
160
+ getFilteredDependencies(apps, dependencies) {
161
+ const appsAtMajor = typeof (apps) === 'string' ? [apps] : apps;
162
+ const depends = dependsOnApp(appsAtMajor);
163
+ return (0, ramda_1.filter)(depends, dependencies);
164
+ }
165
+ }
166
+ exports.Assets = Assets;
@@ -0,0 +1,13 @@
1
+ import { InstanceOptions, RequestTracingConfig } from '../../HttpClient';
2
+ import { IOContext } from '../../service/worker/runtime/typings';
3
+ import { InfraClient } from './InfraClient';
4
+ export declare class BillingMetrics extends InfraClient {
5
+ constructor(context: IOContext, options?: InstanceOptions);
6
+ sendMetric: (metric: BillingMetric, tracingConfig?: RequestTracingConfig) => Promise<BillingMetric>;
7
+ }
8
+ export interface BillingMetric {
9
+ value: number;
10
+ unit: string;
11
+ metricId: string;
12
+ timestamp?: number;
13
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BillingMetrics = void 0;
4
+ const InfraClient_1 = require("./InfraClient");
5
+ class BillingMetrics extends InfraClient_1.InfraClient {
6
+ constructor(context, options) {
7
+ super('colossus@0.x', context, options);
8
+ this.sendMetric = (metric, tracingConfig) => {
9
+ return this.http.post('/metrics', metric, { tracing: {
10
+ requestSpanNameSuffix: 'send-metric',
11
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
12
+ } });
13
+ };
14
+ }
15
+ }
16
+ exports.BillingMetrics = BillingMetrics;
@@ -0,0 +1,12 @@
1
+ import { InstanceOptions, RequestTracingConfig } from '../../HttpClient';
2
+ import { IOContext } from '../../service/worker/runtime/typings';
3
+ import { InfraClient } from './InfraClient';
4
+ export declare class Events extends InfraClient {
5
+ constructor({ recorder, ...context }: IOContext, options?: InstanceOptions);
6
+ sendEvent: (appIdOrResource: string | ResourceVRN, route: string, message?: any, tracingConfig?: RequestTracingConfig) => Promise<void>;
7
+ private resourceFor;
8
+ }
9
+ export interface ResourceVRN {
10
+ service: string;
11
+ path: string;
12
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Events = void 0;
4
+ const util_1 = require("util");
5
+ const InfraClient_1 = require("./InfraClient");
6
+ const ANY_APP = '';
7
+ const eventRoute = (route) => `/events/${route}`;
8
+ const isResourceVRN = (appIdOrResource) => (0, util_1.isObject)(appIdOrResource) && !(0, util_1.isNullOrUndefined)(appIdOrResource.service);
9
+ class Events extends InfraClient_1.InfraClient {
10
+ constructor({ recorder, ...context }, options) {
11
+ super('courier@0.x', context, options);
12
+ this.sendEvent = (appIdOrResource, route, message, tracingConfig) => {
13
+ const resource = this.resourceFor(appIdOrResource);
14
+ return this.http.put(eventRoute(route), message, {
15
+ metric: 'events-send',
16
+ params: { resource },
17
+ tracing: {
18
+ requestSpanNameSuffix: 'events-send',
19
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
20
+ },
21
+ });
22
+ };
23
+ this.resourceFor = (appIdOrResource) => {
24
+ if (appIdOrResource === ANY_APP) {
25
+ return ANY_APP;
26
+ }
27
+ const { service, path } = isResourceVRN(appIdOrResource)
28
+ ? appIdOrResource
29
+ : { service: 'apps', path: `/apps/${appIdOrResource}` };
30
+ return `vrn:${service}:${this.context.region}:${this.context.account}:${this.context.workspace}:${path}`;
31
+ };
32
+ }
33
+ }
34
+ exports.Events = Events;
@@ -0,0 +1,10 @@
1
+ import { InstanceOptions, RequestTracingConfig } from '../../HttpClient';
2
+ import { HousekeeperStatesAndUpdates } from '../../responses';
3
+ import { IOContext } from '../../service/worker/runtime/typings';
4
+ import { InfraClient } from './InfraClient';
5
+ export declare class Housekeeper extends InfraClient {
6
+ constructor(context: IOContext, options?: InstanceOptions);
7
+ apply: (data: HousekeeperStatesAndUpdates, tracingConfig?: RequestTracingConfig) => Promise<void>;
8
+ perform: (tracingConfig?: RequestTracingConfig) => Promise<void>;
9
+ resolve: (tracingConfig?: RequestTracingConfig) => Promise<HousekeeperStatesAndUpdates>;
10
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Housekeeper = void 0;
4
+ const InfraClient_1 = require("./InfraClient");
5
+ class Housekeeper extends InfraClient_1.InfraClient {
6
+ constructor(context, options) {
7
+ super('housekeeper@0.x', context, options);
8
+ this.apply = async (data, tracingConfig) => {
9
+ const metric = 'housekeeper-apply';
10
+ return this.http.post('v2/housekeeping/apply', data, { metric, tracing: {
11
+ requestSpanNameSuffix: metric,
12
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
13
+ } });
14
+ };
15
+ this.perform = async (tracingConfig) => {
16
+ const metric = 'housekeeper-perform';
17
+ return this.http.post('v2/_housekeeping/perform', {}, { metric, tracing: {
18
+ requestSpanNameSuffix: metric,
19
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
20
+ } });
21
+ };
22
+ this.resolve = async (tracingConfig) => {
23
+ const metric = 'housekeeper-resolve';
24
+ return this.http.get('v2/housekeeping/resolve', { metric, tracing: {
25
+ requestSpanNameSuffix: metric,
26
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
27
+ } });
28
+ };
29
+ }
30
+ }
31
+ exports.Housekeeper = Housekeeper;
@@ -1,6 +1,6 @@
1
- import { IOContext } from '../service/typings';
2
- import { IOClient } from './IOClient';
3
- import { InstanceOptions } from './typings';
1
+ import { InstanceOptions } from '../../HttpClient/typings';
2
+ import { IOContext } from '../../service/worker/runtime/typings';
3
+ import { IOClient } from '../IOClient';
4
4
  /**
5
5
  * Used to perform calls on infra apps (e.g. sphinx, apps, vbase).
6
6
  */
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const IOClient_1 = require("./IOClient");
4
- const typings_1 = require("./typings");
5
- const useHttps = !process.env.VTEX_IO;
3
+ exports.InfraClient = void 0;
4
+ const constants_1 = require("../../constants");
5
+ const typings_1 = require("../../HttpClient/typings");
6
+ const IOClient_1 = require("../IOClient");
7
+ const useHttps = !constants_1.IS_IO;
6
8
  /**
7
9
  * Used to perform calls on infra apps (e.g. sphinx, apps, vbase).
8
10
  */
@@ -23,7 +25,11 @@ class InfraClient extends IOClient_1.IOClient {
23
25
  console.warn(`${account} in ${workspace} is using old routing for ${app}. This will stop working soon`);
24
26
  baseURL = `http://${app}.${region}.vtex.io${isRoot ? '' : `/${account}/${workspace}`}`;
25
27
  }
26
- super(context, Object.assign({}, options, { authType: typings_1.AuthType.bearer, baseURL }));
28
+ super(context, {
29
+ ...options,
30
+ authType: typings_1.AuthType.bearer,
31
+ baseURL,
32
+ });
27
33
  }
28
34
  }
29
35
  exports.InfraClient = InfraClient;
@@ -0,0 +1,65 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ /// <reference types="node" />
4
+ import { IncomingMessage } from 'http';
5
+ import { Readable, Writable } from 'stream';
6
+ import { ZlibOptions } from 'zlib';
7
+ import { InstanceOptions, RequestTracingConfig } from '../../HttpClient';
8
+ import { AppFilesList, AppManifest, AppState } from '../../responses';
9
+ import { IOContext } from '../../service/worker/runtime/typings';
10
+ import { InfraClient } from './InfraClient';
11
+ export declare class Registry extends InfraClient {
12
+ constructor(context: IOContext, options?: InstanceOptions);
13
+ getAppState: (app: string, version: string, tracingConfig?: RequestTracingConfig) => Promise<AppState>;
14
+ publishApp: (files: File[], tag?: string, { zlib }?: ZipOptions, tracingConfig?: RequestTracingConfig) => Promise<import("../../responses").AppBundleResponse & {
15
+ bundleSize?: number | undefined;
16
+ }>;
17
+ publishAppRc: (files: File[], tag?: string, { zlib }?: ZipOptions, tracingConfig?: RequestTracingConfig) => Promise<import("../../responses").AppBundleResponse & {
18
+ bundleSize?: number | undefined;
19
+ }>;
20
+ listApps: (tracingConfig?: RequestTracingConfig) => Promise<RegistryAppsList>;
21
+ listVersionsByApp: (app: string, tracingConfig?: RequestTracingConfig) => Promise<RegistryAppVersionsList>;
22
+ deprecateApp: (app: string, version: string, tracingConfig?: RequestTracingConfig) => Promise<void>;
23
+ undeprecateApp: (app: string, version: string, tracingConfig?: RequestTracingConfig) => Promise<void>;
24
+ validateApp: (app: string, version: string, tracingConfig?: RequestTracingConfig) => Promise<void>;
25
+ getAppManifest: (app: string, version: string, opts?: AppsManifestOptions, tracingConfig?: RequestTracingConfig) => Promise<AppManifest>;
26
+ listAppFiles: (app: string, version: string, opts?: ListAppFilesOptions, tracingConfig?: RequestTracingConfig) => Promise<AppFilesList>;
27
+ getAppFile: (app: string, version: string, path: string, tracingConfig?: RequestTracingConfig) => Promise<{
28
+ data: Buffer;
29
+ headers: any;
30
+ }>;
31
+ getAppJSON: <T extends object | null>(app: string, version: string, path: string, nullIfNotFound?: boolean, tracingConfig?: RequestTracingConfig) => Promise<T>;
32
+ getAppFileStream: (app: string, version: string, path: string, tracingConfig?: RequestTracingConfig) => Promise<IncomingMessage>;
33
+ getAppBundle: (app: string, version: string, bundlePath: string, generatePackageJson: boolean, tracingConfig?: RequestTracingConfig) => Promise<Readable>;
34
+ unpackAppBundle: (app: string, version: string, bundlePath: string, unpackPath: string, generatePackageJson: boolean, tracingConfig?: RequestTracingConfig) => Promise<Writable>;
35
+ resolveDependenciesWithManifest: (manifest: AppManifest, filter?: string, tracingConfig?: RequestTracingConfig) => Promise<Record<string, string[]>>;
36
+ private publish;
37
+ }
38
+ interface ZipOptions {
39
+ zlib?: ZlibOptions;
40
+ }
41
+ export interface AppsManifestOptions {
42
+ resolveDeps: boolean;
43
+ }
44
+ export interface ListAppFilesOptions {
45
+ prefix: string;
46
+ }
47
+ export interface RegistryAppsListItem {
48
+ partialIdentifier: string;
49
+ location: string;
50
+ }
51
+ export interface RegistryAppsList {
52
+ data: RegistryAppsListItem[];
53
+ }
54
+ export interface RegistryAppVersionsListItem {
55
+ versionIdentifier: string;
56
+ location: string;
57
+ }
58
+ export interface RegistryAppVersionsList {
59
+ data: RegistryAppVersionsListItem[];
60
+ }
61
+ export interface File {
62
+ path: string;
63
+ content: any;
64
+ }
65
+ export {};
@@ -0,0 +1,209 @@
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
+ exports.Registry = void 0;
7
+ const archiver_1 = __importDefault(require("archiver"));
8
+ const tar_fs_1 = require("tar-fs");
9
+ const zlib_1 = require("zlib");
10
+ const constants_1 = require("../../constants");
11
+ const HttpClient_1 = require("../../HttpClient");
12
+ const InfraClient_1 = require("./InfraClient");
13
+ const EMPTY_OBJECT = {};
14
+ const routes = {
15
+ App: (app) => `${routes.Registry}/${app}`,
16
+ AppBundle: (app, version, path) => {
17
+ return path ? `${routes.AppVersion(app, version)}/bundle/${path}` : `${routes.AppVersion(app, version)}/bundle`;
18
+ },
19
+ AppFile: (app, version, path) => `${routes.AppFiles(app, version)}/${path}`,
20
+ AppFiles: (app, version) => `${routes.AppVersion(app, version)}/files`,
21
+ AppState: (app, version) => `${routes.AppVersion(app, version)}/state`,
22
+ AppVersion: (app, version) => `${routes.App(app)}/${version}`,
23
+ Publish: '/v2/registry',
24
+ PublishRc: '/v2/registry/rc',
25
+ Registry: '/registry',
26
+ ResolveDependenciesWithManifest: '/v2/registry/_resolve',
27
+ };
28
+ class Registry extends InfraClient_1.InfraClient {
29
+ constructor(context, options) {
30
+ super('apps@0.x', { ...context, workspace: constants_1.DEFAULT_WORKSPACE }, options);
31
+ this.getAppState = (app, version, tracingConfig) => {
32
+ const metric = 'registry-app-state';
33
+ const inflightKey = HttpClient_1.inflightUrlWithQuery;
34
+ return this.http.get(routes.AppState(app, version), {
35
+ inflightKey,
36
+ metric,
37
+ tracing: {
38
+ requestSpanNameSuffix: metric,
39
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
40
+ },
41
+ });
42
+ };
43
+ this.publishApp = (files, tag, { zlib } = {}, tracingConfig) => {
44
+ return this.publish(routes.Publish, files, tag, { zlib }, tracingConfig);
45
+ };
46
+ this.publishAppRc = (files, tag, { zlib } = {}, tracingConfig) => {
47
+ return this.publish(routes.PublishRc, files, tag, { zlib }, tracingConfig);
48
+ };
49
+ this.listApps = (tracingConfig) => {
50
+ const inflightKey = HttpClient_1.inflightURL;
51
+ const metric = 'registry-list';
52
+ return this.http.get(routes.Registry, { inflightKey, metric, tracing: {
53
+ requestSpanNameSuffix: metric,
54
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
55
+ } });
56
+ };
57
+ this.listVersionsByApp = (app, tracingConfig) => {
58
+ const inflightKey = HttpClient_1.inflightURL;
59
+ const metric = 'registry-list-versions';
60
+ return this.http.get(routes.App(app), { inflightKey, metric, tracing: {
61
+ requestSpanNameSuffix: metric,
62
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
63
+ } });
64
+ };
65
+ this.deprecateApp = (app, version, tracingConfig) => {
66
+ const metric = 'registry-deprecate';
67
+ return this.http.patch(routes.AppVersion(app, version), { patchState: 'deprecate' }, { metric, tracing: {
68
+ requestSpanNameSuffix: metric,
69
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
70
+ } });
71
+ };
72
+ this.undeprecateApp = (app, version, tracingConfig) => {
73
+ const metric = 'registry-undeprecate';
74
+ return this.http.patch(routes.AppVersion(app, version), { patchState: 'undeprecate' }, { metric, tracing: {
75
+ requestSpanNameSuffix: metric,
76
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
77
+ } });
78
+ };
79
+ this.validateApp = (app, version, tracingConfig) => {
80
+ const metric = 'registry-validate';
81
+ return this.http.patch(routes.AppVersion(app, version), { patchState: 'validate' }, { metric, tracing: {
82
+ requestSpanNameSuffix: metric,
83
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
84
+ } });
85
+ };
86
+ this.getAppManifest = (app, version, opts, tracingConfig) => {
87
+ const inflightKey = HttpClient_1.inflightUrlWithQuery;
88
+ const params = opts;
89
+ const metric = 'registry-manifest';
90
+ return this.http.get(routes.AppVersion(app, version), { inflightKey, metric, params, tracing: {
91
+ requestSpanNameSuffix: metric,
92
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
93
+ } });
94
+ };
95
+ this.listAppFiles = (app, version, opts, tracingConfig) => {
96
+ const inflightKey = HttpClient_1.inflightUrlWithQuery;
97
+ const params = opts;
98
+ const metric = 'registry-list-files';
99
+ return this.http.get(routes.AppFiles(app, version), { inflightKey, metric, params, tracing: {
100
+ requestSpanNameSuffix: metric,
101
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
102
+ } });
103
+ };
104
+ this.getAppFile = (app, version, path, tracingConfig) => {
105
+ const inflightKey = HttpClient_1.inflightURL;
106
+ const metric = 'registry-get-file';
107
+ return this.http.getBuffer(routes.AppFile(app, version, path), {
108
+ cacheable: HttpClient_1.CacheType.Disk,
109
+ inflightKey,
110
+ metric,
111
+ tracing: {
112
+ requestSpanNameSuffix: metric,
113
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
114
+ },
115
+ });
116
+ };
117
+ this.getAppJSON = (app, version, path, nullIfNotFound, tracingConfig) => {
118
+ const inflightKey = HttpClient_1.inflightURL;
119
+ const metric = 'registry-get-json';
120
+ return this.http.get(routes.AppFile(app, version, path), {
121
+ cacheable: HttpClient_1.CacheType.Any,
122
+ inflightKey,
123
+ metric,
124
+ nullIfNotFound,
125
+ tracing: {
126
+ requestSpanNameSuffix: metric,
127
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
128
+ },
129
+ });
130
+ };
131
+ this.getAppFileStream = (app, version, path, tracingConfig) => {
132
+ const metric = 'registry-get-file-s';
133
+ return this.http.getStream(routes.AppFile(app, version, path), {
134
+ metric,
135
+ tracing: {
136
+ requestSpanNameSuffix: metric,
137
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
138
+ },
139
+ });
140
+ };
141
+ this.getAppBundle = (app, version, bundlePath, generatePackageJson, tracingConfig) => {
142
+ const params = generatePackageJson && { _packageJSONEngine: 'npm', _packageJSONFilter: 'vtex.render-builder@x' };
143
+ const metric = 'registry-get-bundle';
144
+ return this.http.getStream(routes.AppBundle(app, version, bundlePath), {
145
+ headers: {
146
+ Accept: 'application/x-gzip',
147
+ 'Accept-Encoding': 'gzip',
148
+ },
149
+ metric,
150
+ params,
151
+ tracing: {
152
+ requestSpanNameSuffix: metric,
153
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
154
+ },
155
+ });
156
+ };
157
+ this.unpackAppBundle = (app, version, bundlePath, unpackPath, generatePackageJson, tracingConfig) => {
158
+ return this.getAppBundle(app, version, bundlePath, generatePackageJson, tracingConfig)
159
+ .then(stream => stream
160
+ .pipe((0, zlib_1.createGunzip)())
161
+ .pipe((0, tar_fs_1.extract)(unpackPath)));
162
+ };
163
+ this.resolveDependenciesWithManifest = (manifest, filter = '', tracingConfig) => {
164
+ const params = { filter };
165
+ const metric = 'registry-resolve-deps';
166
+ return this.http.post(routes.ResolveDependenciesWithManifest, manifest, { metric, params, tracing: {
167
+ requestSpanNameSuffix: metric,
168
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
169
+ } });
170
+ };
171
+ this.publish = async (route, files, tag, { zlib } = {}, tracingConfig) => {
172
+ if (!(files[0] && files[0].path && files[0].content)) {
173
+ throw new Error('Argument files must be an array of {path, content}, where content can be a String, a Buffer or a ReadableStream.');
174
+ }
175
+ const indexOfManifest = files.findIndex(({ path }) => path === 'manifest.json');
176
+ if (indexOfManifest === -1) {
177
+ throw new Error('No manifest.json file found in files.');
178
+ }
179
+ const zip = (0, archiver_1.default)('zip', { zlib });
180
+ // Throw stream errors so they reject the promise chain.
181
+ zip.on('error', (e) => {
182
+ throw e;
183
+ });
184
+ const metric = 'registry-publish';
185
+ const request = this.http.post(route, zip, {
186
+ headers: { 'Content-Type': 'application/zip' },
187
+ metric,
188
+ params: tag ? { tag } : EMPTY_OBJECT,
189
+ tracing: {
190
+ requestSpanNameSuffix: metric,
191
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
192
+ },
193
+ });
194
+ files.forEach(({ content, path }) => zip.append(content, { name: path }));
195
+ const finalize = zip.finalize();
196
+ try {
197
+ const [response] = await Promise.all([request, finalize]);
198
+ response.bundleSize = zip.pointer();
199
+ return response;
200
+ }
201
+ catch (e) {
202
+ // See Apps.ts `link` method for more information on this cast
203
+ e.bundleSize = zip.pointer();
204
+ throw e;
205
+ }
206
+ };
207
+ }
208
+ }
209
+ exports.Registry = Registry;
@@ -0,0 +1,34 @@
1
+ import { InstanceOptions, RequestTracingConfig } from '../../HttpClient';
2
+ import { IOContext } from '../../service/worker/runtime/typings';
3
+ import { InfraClient } from './InfraClient';
4
+ export declare class Router extends InfraClient {
5
+ constructor(ioContext: IOContext, opts?: InstanceOptions);
6
+ listAvailableIoVersions: (tracingConfig?: RequestTracingConfig) => Promise<AvaiableIO[]>;
7
+ getInstalledIoVersion: (tracingConfig?: RequestTracingConfig) => Promise<AvaiableIO>;
8
+ installIo: (version: string, tracingConfig?: RequestTracingConfig) => Promise<void>;
9
+ listAvailableServices: (tracingConfig?: RequestTracingConfig) => Promise<AvailableServices>;
10
+ getAvailableVersions: (name: string, tracingConfig?: RequestTracingConfig) => Promise<AvailableServiceVersions>;
11
+ listInstalledServices: (tracingConfig?: RequestTracingConfig) => Promise<InstalledService[]>;
12
+ installService: (name: string, version: string, tracingConfig?: RequestTracingConfig) => Promise<void>;
13
+ }
14
+ export interface AvaiableIO {
15
+ version: string;
16
+ tested: boolean;
17
+ services: {
18
+ [service: string]: string;
19
+ };
20
+ }
21
+ export type InstalledIO = AvaiableIO;
22
+ export interface AvailableServiceVersions {
23
+ versions: {
24
+ [region: string]: string[];
25
+ };
26
+ }
27
+ export interface AvailableServices {
28
+ [service: string]: AvailableServiceVersions;
29
+ }
30
+ export interface InstalledService {
31
+ name: string;
32
+ version: string;
33
+ serviceIsolation: number;
34
+ }