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

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 (430) hide show
  1. package/gen/manifest.schema +5 -3
  2. package/lib/HttpClient/GraphQLClient.d.ts +2 -1
  3. package/lib/HttpClient/GraphQLClient.js +5 -1
  4. package/lib/HttpClient/HttpClient.d.ts +6 -5
  5. package/lib/HttpClient/HttpClient.js +64 -21
  6. package/lib/HttpClient/agents.d.ts +3 -0
  7. package/lib/HttpClient/agents.js +37 -0
  8. package/lib/HttpClient/index.d.ts +1 -7
  9. package/lib/HttpClient/index.js +17 -16
  10. package/lib/HttpClient/middlewares/cache.d.ts +8 -2
  11. package/lib/HttpClient/middlewares/cache.js +126 -33
  12. package/lib/HttpClient/middlewares/cancellationToken.d.ts +1 -1
  13. package/lib/HttpClient/middlewares/cancellationToken.js +3 -1
  14. package/lib/HttpClient/middlewares/inflight.js +1 -0
  15. package/lib/HttpClient/middlewares/memoization.js +9 -1
  16. package/lib/HttpClient/middlewares/metrics.js +17 -31
  17. package/lib/HttpClient/middlewares/notFound.js +1 -0
  18. package/lib/HttpClient/middlewares/recorder.d.ts +1 -1
  19. package/lib/HttpClient/middlewares/recorder.js +20 -12
  20. package/lib/HttpClient/middlewares/request/HttpAgentSingleton.d.ts +11 -0
  21. package/lib/HttpClient/middlewares/request/HttpAgentSingleton.js +31 -0
  22. package/lib/HttpClient/middlewares/request/index.d.ts +18 -0
  23. package/lib/HttpClient/middlewares/request/index.js +85 -0
  24. package/lib/HttpClient/middlewares/request/setupAxios/index.d.ts +2 -0
  25. package/lib/HttpClient/middlewares/request/setupAxios/index.js +21 -0
  26. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/exponentialBackoff.d.ts +2 -0
  27. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/exponentialBackoff.js +54 -0
  28. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/index.d.ts +2 -0
  29. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/index.js +7 -0
  30. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/index.d.ts +8 -0
  31. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/index.js +56 -0
  32. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/spanSetup.d.ts +4 -0
  33. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/spanSetup.js +30 -0
  34. package/lib/HttpClient/middlewares/tracing.d.ts +15 -0
  35. package/lib/HttpClient/middlewares/tracing.js +61 -0
  36. package/lib/HttpClient/typings.d.ts +44 -10
  37. package/lib/HttpClient/typings.js +1 -0
  38. package/lib/caches/DiskCache.d.ts +1 -1
  39. package/lib/caches/DiskCache.js +1 -0
  40. package/lib/caches/LRUCache.d.ts +2 -2
  41. package/lib/caches/LRUCache.js +6 -1
  42. package/lib/caches/LRUDiskCache.d.ts +1 -1
  43. package/lib/caches/LRUDiskCache.js +6 -1
  44. package/lib/caches/MultilayeredCache.d.ts +1 -1
  45. package/lib/caches/MultilayeredCache.js +2 -1
  46. package/lib/caches/index.js +16 -7
  47. package/lib/{HttpClient → clients}/IOClient.d.ts +4 -4
  48. package/lib/clients/IOClient.js +20 -0
  49. package/lib/clients/IOClients.d.ts +28 -24
  50. package/lib/clients/IOClients.js +36 -28
  51. package/lib/{HttpClient → clients}/IOGraphQLClient.d.ts +4 -4
  52. package/lib/{HttpClient → clients}/IOGraphQLClient.js +3 -2
  53. package/lib/{HttpClient → clients/apps}/AppClient.d.ts +3 -3
  54. package/lib/{HttpClient → clients/apps}/AppClient.js +11 -5
  55. package/lib/{HttpClient → clients/apps}/AppGraphQLClient.d.ts +3 -3
  56. package/lib/{HttpClient → clients/apps}/AppGraphQLClient.js +11 -5
  57. package/lib/clients/apps/Billing.d.ts +12 -0
  58. package/lib/clients/{Billing.js → apps/Billing.js} +9 -3
  59. package/lib/clients/{Builder.d.ts → apps/Builder.d.ts} +12 -11
  60. package/lib/clients/{Builder.js → apps/Builder.js} +50 -22
  61. package/lib/clients/apps/MessagesGraphQL.d.ts +61 -0
  62. package/lib/clients/apps/MessagesGraphQL.js +122 -0
  63. package/lib/clients/{Settings.d.ts → apps/Settings.d.ts} +5 -4
  64. package/lib/clients/{Settings.js → apps/Settings.js} +15 -20
  65. package/lib/clients/apps/catalogGraphQL/brand.d.ts +13 -0
  66. package/lib/clients/apps/catalogGraphQL/brand.js +19 -0
  67. package/lib/clients/apps/catalogGraphQL/category.d.ts +11 -0
  68. package/lib/clients/apps/catalogGraphQL/category.js +17 -0
  69. package/lib/clients/apps/catalogGraphQL/index.d.ts +22 -0
  70. package/lib/clients/apps/catalogGraphQL/index.js +89 -0
  71. package/lib/clients/apps/catalogGraphQL/product.d.ts +25 -0
  72. package/lib/clients/apps/catalogGraphQL/product.js +31 -0
  73. package/lib/clients/apps/catalogGraphQL/sku.d.ts +26 -0
  74. package/lib/clients/apps/catalogGraphQL/sku.js +31 -0
  75. package/lib/clients/apps/index.d.ts +7 -0
  76. package/lib/clients/apps/index.js +19 -0
  77. package/lib/{HttpClient → clients/external}/ExternalClient.d.ts +3 -3
  78. package/lib/{HttpClient → clients/external}/ExternalClient.js +10 -2
  79. package/lib/clients/external/ID.d.ts +23 -0
  80. package/lib/clients/external/ID.js +61 -0
  81. package/lib/clients/external/Masterdata.d.ts +94 -0
  82. package/lib/clients/external/Masterdata.js +225 -0
  83. package/lib/clients/external/PaymentProvider.d.ts +31 -0
  84. package/lib/clients/external/PaymentProvider.js +43 -0
  85. package/lib/clients/external/index.d.ts +4 -0
  86. package/lib/clients/external/index.js +16 -0
  87. package/lib/clients/index.d.ts +9 -21
  88. package/lib/clients/index.js +23 -24
  89. package/lib/clients/infra/Apps.d.ts +88 -0
  90. package/lib/clients/infra/Apps.js +511 -0
  91. package/lib/clients/infra/Assets.d.ts +34 -0
  92. package/lib/clients/{Assets.js → infra/Assets.js} +75 -19
  93. package/lib/clients/infra/BillingMetrics.d.ts +13 -0
  94. package/lib/clients/infra/BillingMetrics.js +16 -0
  95. package/lib/clients/infra/Events.d.ts +12 -0
  96. package/lib/clients/infra/Events.js +34 -0
  97. package/lib/clients/infra/Housekeeper.d.ts +10 -0
  98. package/lib/clients/infra/Housekeeper.js +31 -0
  99. package/lib/{HttpClient → clients/infra}/InfraClient.d.ts +3 -3
  100. package/lib/{HttpClient → clients/infra}/InfraClient.js +10 -4
  101. package/lib/clients/infra/Registry.d.ts +59 -0
  102. package/lib/clients/{Registry.js → infra/Registry.js} +95 -33
  103. package/lib/clients/infra/Router.d.ts +34 -0
  104. package/lib/clients/infra/Router.js +82 -0
  105. package/lib/clients/infra/Sphinx.d.ts +13 -0
  106. package/lib/clients/infra/Sphinx.js +30 -0
  107. package/lib/clients/infra/VBase.d.ts +60 -0
  108. package/lib/clients/infra/VBase.js +197 -0
  109. package/lib/clients/infra/Workspaces.d.ts +18 -0
  110. package/lib/clients/infra/Workspaces.js +66 -0
  111. package/lib/clients/infra/index.d.ts +11 -0
  112. package/lib/clients/infra/index.js +23 -0
  113. package/lib/{HttpClient → clients/janus}/JanusClient.d.ts +3 -3
  114. package/lib/{HttpClient → clients/janus}/JanusClient.js +8 -3
  115. package/lib/clients/janus/LicenseManager.d.ts +7 -0
  116. package/lib/clients/{LicenseManager.js → janus/LicenseManager.js} +24 -8
  117. package/lib/clients/{Segment.d.ts → janus/Segment.d.ts} +7 -11
  118. package/lib/clients/janus/Segment.js +89 -0
  119. package/lib/clients/{Session.d.ts → janus/Session.d.ts} +4 -4
  120. package/lib/clients/{Session.js → janus/Session.js} +25 -13
  121. package/lib/clients/{Tenant.d.ts → janus/Tenant.d.ts} +6 -7
  122. package/lib/clients/janus/Tenant.js +29 -0
  123. package/lib/clients/janus/index.d.ts +5 -0
  124. package/lib/clients/janus/index.js +17 -0
  125. package/lib/constants.d.ts +49 -1
  126. package/lib/constants.js +55 -1
  127. package/lib/errors/AuthenticationError.js +1 -0
  128. package/lib/errors/ForbiddenError.js +1 -0
  129. package/lib/errors/NotFoundError.js +1 -0
  130. package/lib/errors/RequestCancelledError.js +1 -0
  131. package/lib/errors/ResolverError.d.ts +1 -1
  132. package/lib/errors/ResolverError.js +3 -2
  133. package/lib/errors/ResolverWarning.d.ts +1 -1
  134. package/lib/errors/ResolverWarning.js +3 -2
  135. package/lib/errors/TooManyRequestsError.js +1 -0
  136. package/lib/errors/UserInputError.js +1 -0
  137. package/lib/errors/index.js +18 -11
  138. package/lib/index.d.ts +9 -7
  139. package/lib/index.js +27 -16
  140. package/lib/metrics/MetricsAccumulator.d.ts +1 -18
  141. package/lib/metrics/MetricsAccumulator.js +39 -22
  142. package/lib/responses.d.ts +3 -44
  143. package/lib/service/index.d.ts +2 -0
  144. package/lib/service/index.js +34 -0
  145. package/lib/service/loaders.d.ts +8 -0
  146. package/lib/service/loaders.js +55 -0
  147. package/lib/service/logger/console.d.ts +10 -0
  148. package/lib/service/logger/console.js +37 -0
  149. package/lib/service/logger/index.d.ts +2 -28
  150. package/lib/service/logger/index.js +12 -68
  151. package/lib/service/logger/logger.d.ts +29 -0
  152. package/lib/service/logger/logger.js +62 -0
  153. package/lib/service/logger/metricsLogger.d.ts +40 -0
  154. package/lib/service/logger/metricsLogger.js +150 -0
  155. package/lib/service/master.d.ts +2 -0
  156. package/lib/service/master.js +88 -0
  157. package/lib/service/metrics/requestMetricsMiddleware.d.ts +2 -0
  158. package/lib/service/metrics/requestMetricsMiddleware.js +45 -0
  159. package/lib/service/tracing/TracerSingleton.d.ts +7 -0
  160. package/lib/service/tracing/TracerSingleton.js +49 -0
  161. package/lib/service/tracing/metrics/MetricNames.d.ts +60 -0
  162. package/lib/service/tracing/metrics/MetricNames.js +45 -0
  163. package/lib/service/tracing/metrics/instruments.d.ts +9 -0
  164. package/lib/service/tracing/metrics/instruments.js +12 -0
  165. package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.d.ts +9 -0
  166. package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.js +26 -0
  167. package/lib/service/tracing/tracingMiddlewares.d.ts +5 -0
  168. package/lib/service/tracing/tracingMiddlewares.js +114 -0
  169. package/lib/service/worker/index.d.ts +11 -0
  170. package/lib/service/worker/index.js +196 -0
  171. package/lib/service/worker/listeners.d.ts +3 -0
  172. package/lib/{utils/unhandled.js → service/worker/listeners.js} +10 -15
  173. package/lib/service/{Service.d.ts → worker/runtime/Service.d.ts} +5 -5
  174. package/lib/service/{Service.js → worker/runtime/Service.js} +3 -1
  175. package/lib/service/worker/runtime/builtIn/handlers.d.ts +4 -0
  176. package/lib/service/worker/runtime/builtIn/handlers.js +31 -0
  177. package/lib/service/worker/runtime/builtIn/middlewares.d.ts +4 -0
  178. package/lib/service/worker/runtime/builtIn/middlewares.js +41 -0
  179. package/lib/service/worker/runtime/events/index.d.ts +4 -0
  180. package/lib/service/worker/runtime/events/index.js +47 -0
  181. package/lib/service/worker/runtime/events/middlewares/body.d.ts +3 -0
  182. package/lib/service/worker/runtime/events/middlewares/body.js +26 -0
  183. package/lib/service/worker/runtime/events/middlewares/context.d.ts +3 -0
  184. package/lib/service/worker/runtime/events/middlewares/context.js +23 -0
  185. package/lib/service/worker/runtime/events/router.d.ts +2 -0
  186. package/lib/service/worker/runtime/events/router.js +28 -0
  187. package/lib/service/worker/runtime/graphql/index.d.ts +6 -0
  188. package/lib/service/worker/runtime/graphql/index.js +28 -0
  189. package/lib/service/worker/runtime/graphql/middlewares/context.d.ts +2 -0
  190. package/lib/service/worker/runtime/graphql/middlewares/context.js +17 -0
  191. package/lib/service/worker/runtime/graphql/middlewares/error.js +97 -0
  192. package/lib/service/worker/runtime/graphql/middlewares/query.d.ts +3 -0
  193. package/lib/service/worker/runtime/graphql/middlewares/query.js +53 -0
  194. package/lib/service/worker/runtime/graphql/middlewares/response.js +39 -0
  195. package/lib/service/worker/runtime/graphql/middlewares/run.d.ts +2 -0
  196. package/lib/service/worker/runtime/graphql/middlewares/run.js +20 -0
  197. package/lib/service/worker/runtime/graphql/middlewares/updateSchema.d.ts +5 -0
  198. package/lib/service/worker/runtime/graphql/middlewares/updateSchema.js +29 -0
  199. package/lib/service/worker/runtime/graphql/middlewares/upload.d.ts +4 -0
  200. package/lib/service/{graphql → worker/runtime/graphql}/middlewares/upload.js +1 -0
  201. package/lib/service/worker/runtime/graphql/schema/index.d.ts +7 -0
  202. package/lib/service/worker/runtime/graphql/schema/index.js +32 -0
  203. package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.d.ts +6 -0
  204. package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.js +80 -0
  205. package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/Auth.d.ts +1 -0
  206. package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/Auth.js +17 -10
  207. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/CacheControl.d.ts +7 -0
  208. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/CacheControl.js +38 -0
  209. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.d.ts +11 -0
  210. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.js +62 -0
  211. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Metric.d.ts +7 -0
  212. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Metric.js +41 -0
  213. package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/Sanitize.d.ts +1 -0
  214. package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/Sanitize.js +7 -0
  215. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.d.ts +6 -0
  216. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.js +35 -0
  217. package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/SmartCacheDirective.d.ts +1 -0
  218. package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/SmartCacheDirective.js +9 -3
  219. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.d.ts +7 -0
  220. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.js +40 -0
  221. package/lib/service/{graphql/schema/schemaDirectives/Translatable.d.ts → worker/runtime/graphql/schema/schemaDirectives/TranslateTo.d.ts} +2 -1
  222. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslateTo.js +34 -0
  223. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.d.ts +22 -0
  224. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.js +37 -0
  225. package/lib/service/worker/runtime/graphql/schema/typeDefs/index.d.ts +8 -0
  226. package/lib/service/worker/runtime/graphql/schema/typeDefs/index.js +13 -0
  227. package/lib/service/{graphql → worker/runtime/graphql}/schema/typeDefs/ioUpload.js +1 -0
  228. package/lib/service/{graphql → worker/runtime/graphql}/schema/typeDefs/sanitizedString.js +6 -1
  229. package/lib/service/worker/runtime/graphql/typings.d.ts +31 -0
  230. package/lib/service/worker/runtime/graphql/utils/cacheControl.d.ts +2 -0
  231. package/lib/service/worker/runtime/graphql/utils/cacheControl.js +33 -0
  232. package/lib/service/worker/runtime/graphql/utils/error.d.ts +2 -0
  233. package/lib/service/worker/runtime/graphql/utils/error.js +77 -0
  234. package/lib/service/{graphql → worker/runtime/graphql}/utils/pathname.js +1 -0
  235. package/lib/service/worker/runtime/graphql/utils/translations.d.ts +14 -0
  236. package/lib/service/worker/runtime/graphql/utils/translations.js +39 -0
  237. package/lib/service/worker/runtime/http/index.d.ts +5 -0
  238. package/lib/service/worker/runtime/http/index.js +59 -0
  239. package/lib/service/worker/runtime/http/middlewares/authTokens.d.ts +3 -0
  240. package/lib/service/{http → worker/runtime/http}/middlewares/authTokens.js +1 -0
  241. package/lib/service/worker/runtime/http/middlewares/cancellationToken.d.ts +3 -0
  242. package/lib/service/{http → worker/runtime/http}/middlewares/cancellationToken.js +3 -1
  243. package/lib/service/worker/runtime/http/middlewares/clients.d.ts +4 -0
  244. package/lib/service/{http → worker/runtime/http}/middlewares/clients.js +1 -0
  245. package/lib/service/worker/runtime/http/middlewares/context.d.ts +4 -0
  246. package/lib/service/worker/runtime/http/middlewares/context.js +37 -0
  247. package/lib/service/worker/runtime/http/middlewares/error.d.ts +2 -0
  248. package/lib/service/{http → worker/runtime/http}/middlewares/error.js +28 -15
  249. package/lib/service/worker/runtime/http/middlewares/rateLimit.d.ts +6 -0
  250. package/lib/service/worker/runtime/http/middlewares/rateLimit.js +43 -0
  251. package/lib/service/{http → worker/runtime/http}/middlewares/requestStats.d.ts +3 -3
  252. package/lib/service/{http → worker/runtime/http}/middlewares/requestStats.js +1 -0
  253. package/lib/service/worker/runtime/http/middlewares/setCookie.d.ts +3 -0
  254. package/lib/service/{http → worker/runtime/http}/middlewares/setCookie.js +1 -0
  255. package/lib/service/worker/runtime/http/middlewares/settings.d.ts +9 -0
  256. package/lib/service/worker/runtime/http/middlewares/settings.js +45 -0
  257. package/lib/service/worker/runtime/http/middlewares/timings.d.ts +3 -0
  258. package/lib/service/{http → worker/runtime/http}/middlewares/timings.js +22 -8
  259. package/lib/service/worker/runtime/http/middlewares/vary.d.ts +3 -0
  260. package/lib/service/{http → worker/runtime/http}/middlewares/vary.js +4 -3
  261. package/lib/service/worker/runtime/http/router.d.ts +2 -0
  262. package/lib/service/worker/runtime/http/router.js +24 -0
  263. package/lib/service/worker/runtime/http/routes.d.ts +19 -0
  264. package/lib/service/worker/runtime/http/routes.js +13 -0
  265. package/lib/service/worker/runtime/method.d.ts +9 -0
  266. package/lib/service/{method.js → worker/runtime/method.js} +1 -0
  267. package/lib/service/worker/runtime/statusTrack.d.ts +14 -0
  268. package/lib/service/worker/runtime/statusTrack.js +38 -0
  269. package/lib/service/{typings.d.ts → worker/runtime/typings.d.ts} +70 -36
  270. package/lib/service/worker/runtime/utils/compose.d.ts +5 -0
  271. package/lib/service/{utils → worker/runtime/utils}/compose.js +3 -2
  272. package/lib/service/worker/runtime/utils/context.d.ts +5 -0
  273. package/lib/service/worker/runtime/utils/context.js +41 -0
  274. package/lib/service/worker/runtime/utils/diff.d.ts +12 -0
  275. package/lib/service/worker/runtime/utils/diff.js +22 -0
  276. package/lib/service/worker/runtime/utils/recorder.d.ts +8 -0
  277. package/lib/service/worker/runtime/utils/recorder.js +38 -0
  278. package/lib/service/{graphql/utils/array.js → worker/runtime/utils/toArray.js} +1 -0
  279. package/lib/service/worker/runtime/utils/tokenBucket.d.ts +2 -0
  280. package/lib/service/worker/runtime/utils/tokenBucket.js +17 -0
  281. package/lib/tracing/LogEvents.d.ts +31 -0
  282. package/lib/tracing/LogEvents.js +3 -0
  283. package/lib/tracing/LogFields.d.ts +66 -0
  284. package/lib/tracing/LogFields.js +3 -0
  285. package/lib/tracing/Tags.d.ts +81 -0
  286. package/lib/tracing/Tags.js +8 -0
  287. package/lib/tracing/UserLandTracer.d.ts +27 -0
  288. package/lib/tracing/UserLandTracer.js +57 -0
  289. package/lib/tracing/errorReporting/ErrorReport.d.ts +31 -0
  290. package/lib/tracing/errorReporting/ErrorReport.js +71 -0
  291. package/lib/tracing/index.d.ts +9 -0
  292. package/lib/tracing/index.js +20 -0
  293. package/lib/tracing/spanReference/SpanReferenceTypes.d.ts +4 -0
  294. package/lib/tracing/spanReference/SpanReferenceTypes.js +8 -0
  295. package/lib/tracing/spanReference/createSpanReference.d.ts +3 -0
  296. package/lib/tracing/spanReference/createSpanReference.js +9 -0
  297. package/lib/tracing/utils.d.ts +13 -0
  298. package/lib/tracing/utils.js +41 -0
  299. package/lib/utils/MineWinsConflictsResolver.d.ts +6 -4
  300. package/lib/utils/MineWinsConflictsResolver.js +35 -17
  301. package/lib/utils/app.d.ts +3 -1
  302. package/lib/utils/app.js +4 -1
  303. package/lib/utils/appsStaleIfError.d.ts +1 -1
  304. package/lib/utils/appsStaleIfError.js +20 -7
  305. package/lib/utils/billingOptions.d.ts +36 -3
  306. package/lib/utils/billingOptions.js +8 -3
  307. package/lib/utils/binding.d.ts +3 -3
  308. package/lib/utils/binding.js +1 -0
  309. package/lib/utils/buildFullPath.d.ts +11 -0
  310. package/lib/utils/buildFullPath.js +54 -0
  311. package/lib/utils/cancel.d.ts +2 -2
  312. package/lib/utils/cancel.js +3 -1
  313. package/lib/utils/conflicts.mock.d.ts +17 -0
  314. package/lib/utils/conflicts.mock.js +28 -0
  315. package/lib/utils/domain.js +1 -0
  316. package/lib/utils/error.js +1 -0
  317. package/lib/utils/index.js +19 -12
  318. package/lib/utils/json.js +1 -0
  319. package/lib/utils/log.d.ts +1 -3
  320. package/lib/utils/log.js +3 -2
  321. package/lib/utils/message.js +5 -1
  322. package/lib/utils/renameBy.js +1 -0
  323. package/lib/utils/retry.js +3 -2
  324. package/lib/utils/status.js +1 -0
  325. package/lib/utils/tenant.d.ts +3 -3
  326. package/lib/utils/tenant.js +1 -0
  327. package/lib/utils/throwOnGraphQLErrors.js +1 -0
  328. package/lib/utils/time.d.ts +7 -7
  329. package/lib/utils/time.js +10 -2
  330. package/package.json +3 -3
  331. package/lib/HttpClient/IOClient.js +0 -14
  332. package/lib/HttpClient/factories/index.d.ts +0 -8
  333. package/lib/HttpClient/factories/index.js +0 -31
  334. package/lib/HttpClient/middlewares/request.d.ts +0 -10
  335. package/lib/HttpClient/middlewares/request.js +0 -87
  336. package/lib/IODataSource.d.ts +0 -27
  337. package/lib/IODataSource.js +0 -46
  338. package/lib/clients/Apps.d.ts +0 -84
  339. package/lib/clients/Apps.js +0 -326
  340. package/lib/clients/Assets.d.ts +0 -21
  341. package/lib/clients/Billing.d.ts +0 -11
  342. package/lib/clients/BillingMetrics.d.ts +0 -12
  343. package/lib/clients/BillingMetrics.js +0 -10
  344. package/lib/clients/Events.d.ts +0 -6
  345. package/lib/clients/Events.js +0 -19
  346. package/lib/clients/Housekeeper.d.ts +0 -11
  347. package/lib/clients/Housekeeper.js +0 -24
  348. package/lib/clients/ID.d.ts +0 -22
  349. package/lib/clients/ID.js +0 -48
  350. package/lib/clients/LicenseManager.d.ts +0 -6
  351. package/lib/clients/Logger.d.ts +0 -27
  352. package/lib/clients/Logger.js +0 -32
  353. package/lib/clients/Messages.d.ts +0 -18
  354. package/lib/clients/Messages.js +0 -20
  355. package/lib/clients/MessagesGraphQL.d.ts +0 -63
  356. package/lib/clients/MessagesGraphQL.js +0 -50
  357. package/lib/clients/Metadata.d.ts +0 -25
  358. package/lib/clients/Metadata.js +0 -53
  359. package/lib/clients/Registry.d.ts +0 -61
  360. package/lib/clients/Router.d.ts +0 -33
  361. package/lib/clients/Router.js +0 -50
  362. package/lib/clients/Segment.js +0 -69
  363. package/lib/clients/Sphinx.d.ts +0 -12
  364. package/lib/clients/Sphinx.js +0 -19
  365. package/lib/clients/Tenant.js +0 -13
  366. package/lib/clients/VBase.d.ts +0 -57
  367. package/lib/clients/VBase.js +0 -116
  368. package/lib/clients/Workspaces.d.ts +0 -17
  369. package/lib/clients/Workspaces.js +0 -38
  370. package/lib/service/Runtime.d.ts +0 -18
  371. package/lib/service/Runtime.js +0 -57
  372. package/lib/service/events/index.d.ts +0 -3
  373. package/lib/service/events/index.js +0 -21
  374. package/lib/service/graphql/index.d.ts +0 -7
  375. package/lib/service/graphql/index.js +0 -33
  376. package/lib/service/graphql/middlewares/error.js +0 -107
  377. package/lib/service/graphql/middlewares/formatters.d.ts +0 -2
  378. package/lib/service/graphql/middlewares/formatters.js +0 -64
  379. package/lib/service/graphql/middlewares/query.d.ts +0 -2
  380. package/lib/service/graphql/middlewares/query.js +0 -32
  381. package/lib/service/graphql/middlewares/response.js +0 -36
  382. package/lib/service/graphql/middlewares/run.d.ts +0 -4
  383. package/lib/service/graphql/middlewares/run.js +0 -55
  384. package/lib/service/graphql/middlewares/schema.d.ts +0 -2
  385. package/lib/service/graphql/middlewares/schema.js +0 -8
  386. package/lib/service/graphql/middlewares/timings.d.ts +0 -2
  387. package/lib/service/graphql/middlewares/timings.js +0 -10
  388. package/lib/service/graphql/middlewares/upload.d.ts +0 -7
  389. package/lib/service/graphql/schema/index.d.ts +0 -3
  390. package/lib/service/graphql/schema/index.js +0 -66
  391. package/lib/service/graphql/schema/messagesLoader.d.ts +0 -4
  392. package/lib/service/graphql/schema/messagesLoader.js +0 -41
  393. package/lib/service/graphql/schema/messagesLoaderV2.d.ts +0 -5
  394. package/lib/service/graphql/schema/messagesLoaderV2.js +0 -44
  395. package/lib/service/graphql/schema/schemaDirectives/Translatable.js +0 -54
  396. package/lib/service/graphql/schema/schemaDirectives/TranslatableV2.d.ts +0 -13
  397. package/lib/service/graphql/schema/schemaDirectives/TranslatableV2.js +0 -67
  398. package/lib/service/graphql/schema/schemaDirectives/index.d.ts +0 -13
  399. package/lib/service/graphql/schema/schemaDirectives/index.js +0 -17
  400. package/lib/service/graphql/schema/typeDefs/index.d.ts +0 -16
  401. package/lib/service/graphql/schema/typeDefs/index.js +0 -21
  402. package/lib/service/graphql/schema/typeDefs/ioMessage.d.ts +0 -8
  403. package/lib/service/graphql/schema/typeDefs/ioMessage.js +0 -33
  404. package/lib/service/graphql/typings.d.ts +0 -21
  405. package/lib/service/graphql/utils/cacheControl.d.ts +0 -6
  406. package/lib/service/graphql/utils/cacheControl.js +0 -38
  407. package/lib/service/graphql/utils/maxAgeEnum.d.ts +0 -6
  408. package/lib/service/graphql/utils/maxAgeEnum.js +0 -17
  409. package/lib/service/http/index.d.ts +0 -3
  410. package/lib/service/http/index.js +0 -18
  411. package/lib/service/http/middlewares/authTokens.d.ts +0 -3
  412. package/lib/service/http/middlewares/cancellationToken.d.ts +0 -3
  413. package/lib/service/http/middlewares/clients.d.ts +0 -4
  414. package/lib/service/http/middlewares/error.d.ts +0 -3
  415. package/lib/service/http/middlewares/setCookie.d.ts +0 -3
  416. package/lib/service/http/middlewares/timings.d.ts +0 -3
  417. package/lib/service/http/middlewares/vary.d.ts +0 -3
  418. package/lib/service/method.d.ts +0 -9
  419. package/lib/service/utils/compose.d.ts +0 -4
  420. package/lib/utils/MineWinsConflictsResolver.test.d.ts +0 -1
  421. package/lib/utils/MineWinsConflictsResolver.test.js +0 -134
  422. package/lib/utils/unhandled.d.ts +0 -1
  423. /package/lib/service/{graphql → worker/runtime/graphql}/middlewares/error.d.ts +0 -0
  424. /package/lib/service/{graphql → worker/runtime/graphql}/middlewares/response.d.ts +0 -0
  425. /package/lib/service/{graphql → worker/runtime/graphql}/schema/typeDefs/ioUpload.d.ts +0 -0
  426. /package/lib/service/{graphql → worker/runtime/graphql}/schema/typeDefs/sanitizedString.d.ts +0 -0
  427. /package/lib/service/{graphql → worker/runtime/graphql}/typings.js +0 -0
  428. /package/lib/service/{graphql → worker/runtime/graphql}/utils/pathname.d.ts +0 -0
  429. /package/lib/service/{typings.js → worker/runtime/typings.js} +0 -0
  430. /package/lib/service/{graphql/utils/array.d.ts → worker/runtime/utils/toArray.d.ts} +0 -0
@@ -1,26 +1,25 @@
1
1
  "use strict";
2
- function __export(m) {
3
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
- }
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
5
15
  Object.defineProperty(exports, "__esModule", { value: true });
6
- __export(require("./Apps"));
7
- __export(require("./Assets"));
8
- __export(require("./Billing"));
9
- __export(require("./BillingMetrics"));
10
- __export(require("./Builder"));
11
- __export(require("./Events"));
12
- __export(require("./Housekeeper"));
13
- __export(require("./ID"));
14
- __export(require("./LicenseManager"));
15
- __export(require("./Logger"));
16
- __export(require("./Messages"));
17
- __export(require("./MessagesGraphQL"));
18
- __export(require("./Metadata"));
19
- __export(require("./Registry"));
20
- __export(require("./Router"));
21
- __export(require("./Segment"));
22
- __export(require("./Settings"));
23
- __export(require("./Session"));
24
- __export(require("./Sphinx"));
25
- __export(require("./VBase"));
26
- __export(require("./Workspaces"));
16
+ exports.promclient = void 0;
17
+ __exportStar(require("./apps"), exports);
18
+ __exportStar(require("./external"), exports);
19
+ __exportStar(require("./infra"), exports);
20
+ __exportStar(require("./janus"), exports);
21
+ __exportStar(require("./IOClient"), exports);
22
+ __exportStar(require("./IOClients"), exports);
23
+ __exportStar(require("./IOGraphQLClient"), exports);
24
+ const prom_client_1 = __importDefault(require("prom-client"));
25
+ exports.promclient = prom_client_1.default;
@@ -0,0 +1,88 @@
1
+ /// <reference types="node" />
2
+ import { IncomingMessage } from 'http';
3
+ import { Readable, Writable } from 'stream';
4
+ import { ZlibOptions } from 'zlib';
5
+ import { InstanceOptions, RequestTracingConfig } from '../../HttpClient';
6
+ import { AppBundleLinked, AppFilesList, AppManifest } from '../../responses';
7
+ import { IOContext } from '../../service/worker/runtime/typings';
8
+ import { InfraClient } from './InfraClient';
9
+ export declare class Apps extends InfraClient {
10
+ private _routes;
11
+ private diskCache;
12
+ private memoryCache;
13
+ private get routes();
14
+ constructor(context: IOContext, options?: InstanceOptions);
15
+ installApp: (descriptor: string, tracingConfig?: RequestTracingConfig | undefined) => Promise<void> | Promise<AppInstallResponse>;
16
+ uninstallApp: (app: string, tracingConfig?: RequestTracingConfig | undefined) => Promise<import("../..").IOResponse<void>>;
17
+ acknowledgeApp: (app: string, service: string, tracingConfig?: RequestTracingConfig | undefined) => Promise<void>;
18
+ link: (app: string, files: Change[], { zlib }?: ZipOptions, tracingConfig?: RequestTracingConfig | undefined) => Promise<AppBundleLinked>;
19
+ patch: (app: string, changes: Change[], { zlib }?: ZipOptions, tracingConfig?: RequestTracingConfig | undefined) => Promise<void>;
20
+ unlink: (app: string, tracingConfig?: RequestTracingConfig | undefined) => Promise<import("../..").IOResponse<void>>;
21
+ unlinkAll: (tracingConfig?: RequestTracingConfig | undefined) => Promise<import("../..").IOResponse<void>>;
22
+ saveAppSettings: (app: string, settings: any, tracingConfig?: RequestTracingConfig | undefined) => Promise<void>;
23
+ listApps: ({ oldVersion, since, service }?: ListAppsOptions, tracingConfig?: RequestTracingConfig | undefined) => Promise<AppsList>;
24
+ listAppFiles: (app: string, { prefix, nextMarker }?: ListFilesOptions, tracingConfig?: RequestTracingConfig | undefined) => Promise<AppFilesList>;
25
+ listLinks: (tracingConfig?: RequestTracingConfig | undefined) => Promise<string[]>;
26
+ getAppFile: (app: string, path: string, staleIfError?: boolean | undefined, tracingConfig?: RequestTracingConfig | undefined) => Promise<{
27
+ data: Buffer;
28
+ headers: any;
29
+ }>;
30
+ getAppJSON: <T extends object | null>(app: string, path: string, nullIfNotFound?: boolean | undefined, tracingConfig?: RequestTracingConfig | undefined) => Promise<T>;
31
+ getFileFromApps: <T extends object | null>(app: string, path: string, nullIfNotFound?: boolean | undefined, tracingConfig?: RequestTracingConfig | undefined) => Promise<T>;
32
+ getAppFileStream: (app: string, path: string, tracingConfig?: RequestTracingConfig | undefined) => Promise<IncomingMessage>;
33
+ getApp: (app: string, tracingConfig?: RequestTracingConfig | undefined) => Promise<AppManifest>;
34
+ getAppSettings: (app: string, tracingConfig?: RequestTracingConfig | undefined) => Promise<any>;
35
+ getAllAppsSettings: (listAppsOptions?: ListAppsOptions, tracingConfig?: RequestTracingConfig | undefined) => Promise<AppsSettings>;
36
+ getAppBundle: (app: string, bundlePath: string, generatePackageJson: boolean, tracingConfig?: RequestTracingConfig | undefined) => Promise<Readable>;
37
+ unpackAppBundle: (app: string, bundlePath: string, unpackPath: string, generatePackageJson: boolean, tracingConfig?: RequestTracingConfig | undefined) => Promise<Writable>;
38
+ getAppsMetaInfos: (filter?: string | undefined, staleWhileRevalidate?: boolean, tracingConfig?: RequestTracingConfig | undefined) => Promise<AppMetaInfo[]>;
39
+ getDependencies: (filter?: string, tracingConfig?: RequestTracingConfig | undefined) => Promise<Record<string, string[]>>;
40
+ updateDependencies: (tracingConfig?: RequestTracingConfig | undefined) => Promise<Record<string, string[]>>;
41
+ updateDependency: (name: string, version: string, registry: string, tracingConfig?: RequestTracingConfig | undefined) => Promise<void>;
42
+ resolveDependencies: (apps: string[], registries: string[], filter?: string, tracingConfig?: RequestTracingConfig | undefined) => Promise<any>;
43
+ resolveDependenciesWithManifest: (manifest: AppManifest, filter?: string, tracingConfig?: RequestTracingConfig | undefined) => Promise<Record<string, string[]>>;
44
+ private installRuntime;
45
+ }
46
+ interface ZipOptions {
47
+ zlib?: ZlibOptions;
48
+ }
49
+ export interface AppMetaInfo {
50
+ id: string;
51
+ settingsSchema?: Record<string, any>;
52
+ _resolvedDependencies: Record<string, string>;
53
+ _isRoot: boolean;
54
+ _buildFeatures: Record<string, string[]>;
55
+ }
56
+ export interface WorkspaceMetaInfo {
57
+ apps: AppMetaInfo[];
58
+ }
59
+ export interface AppsListItem {
60
+ app: string;
61
+ id: string;
62
+ location: string;
63
+ }
64
+ export interface AppsList {
65
+ data: AppsListItem[];
66
+ }
67
+ export interface Change {
68
+ path: string;
69
+ content: string | Readable | Buffer;
70
+ }
71
+ export interface ListAppsOptions {
72
+ oldVersion?: string;
73
+ context?: string[];
74
+ since?: string;
75
+ service?: string;
76
+ }
77
+ export interface ListFilesOptions {
78
+ prefix?: string;
79
+ context?: string[];
80
+ nextMarker?: string;
81
+ }
82
+ export interface AppsSettings {
83
+ [app: string]: any;
84
+ }
85
+ export interface AppInstallResponse {
86
+ message: string;
87
+ }
88
+ export {};
@@ -0,0 +1,511 @@
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.Apps = 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 HttpClient_1 = require("../../HttpClient");
11
+ const utils_1 = require("../../utils");
12
+ const appsStaleIfError_1 = require("../../utils/appsStaleIfError");
13
+ const InfraClient_1 = require("./InfraClient");
14
+ const createRoutes = ({ account, workspace }) => {
15
+ const routes = {
16
+ Acknowledge: (app, service) => `${routes.App(app)}/acknowledge/${service}`,
17
+ App: (app) => `${routes.Apps()}/${app}`,
18
+ AppBundle: (locator, path) => `${routes.AppOrRegistry(locator)}/bundle/${path}`,
19
+ AppOrRegistry: ({ name, version, build }) => build
20
+ ? `${routes.Apps()}/${name}@${version}+${build}`
21
+ : `${routes.Registry()}/${name}/${version}`,
22
+ Apps: () => `${routes.Workspace}/apps`,
23
+ Dependencies: () => `${routes.Workspace}/dependencies`,
24
+ File: (locator, path) => `${routes.Files(locator)}/${path}`,
25
+ FileFromApps: (app, path) => `${routes.Workspace}/apps/${app}/files/${path}`,
26
+ Files: (locator) => `${routes.AppOrRegistry(locator)}/files`,
27
+ Link: (app) => `${routes.Workspace}/v2/links/${app}`,
28
+ Links: () => `${routes.Workspace}/links`,
29
+ Master: `/${account}/master`,
30
+ Meta: () => `${routes.Workspace}/v2/apps`,
31
+ Registry: () => `${routes.Master}/registry`,
32
+ ResolveDependencies: () => `${routes.Workspace}/dependencies/_resolve`,
33
+ ResolveDependenciesWithManifest: () => `${routes.Workspace}/v2/apps/_resolve`,
34
+ Settings: (app) => `${routes.App(app)}/settings`,
35
+ Unlink: (app) => `${routes.Links()}/${app}`,
36
+ Workspace: `/${account}/${workspace}`,
37
+ };
38
+ return routes;
39
+ };
40
+ const getVendorAndName = ({ id }) => utils_1.removeVersionFromAppId(id);
41
+ const notFound = (e) => {
42
+ if (e.response && e.response.status === 404) {
43
+ return {};
44
+ }
45
+ throw e;
46
+ };
47
+ const zipObj = (keys, values) => {
48
+ let idx = 0;
49
+ const len = Math.min(keys.length, values.length);
50
+ const out = {};
51
+ while (idx < len) {
52
+ out[keys[idx]] = values[idx];
53
+ idx += 1;
54
+ }
55
+ return out;
56
+ };
57
+ // 🚨🚨🚨
58
+ // In order to make changes in here, please also change the colossus App so we
59
+ // share the same cache key and do NOT call Apps unecessarily
60
+ const workspaceFields = [
61
+ '_activationDate',
62
+ '_buildFeatures',
63
+ '_isRoot',
64
+ '_resolvedDependencies',
65
+ 'credentialType',
66
+ 'link',
67
+ 'name',
68
+ 'registry',
69
+ 'settingsSchema',
70
+ 'vendor',
71
+ 'version',
72
+ ].join(',');
73
+ class Apps extends InfraClient_1.InfraClient {
74
+ constructor(context, options) {
75
+ super('apps@0.x', context, options, true);
76
+ this.installApp = (descriptor, tracingConfig) => {
77
+ if (descriptor.startsWith('infra:service-')) {
78
+ return this.installRuntime(descriptor, tracingConfig);
79
+ }
80
+ const metric = 'apps-install';
81
+ return this.http.post(this.routes.Apps(), { id: descriptor }, {
82
+ metric,
83
+ tracing: {
84
+ requestSpanNameSuffix: metric,
85
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
86
+ },
87
+ });
88
+ };
89
+ this.uninstallApp = (app, tracingConfig) => {
90
+ const metric = 'apps-uninstall';
91
+ return this.http.delete(this.routes.App(app), {
92
+ metric,
93
+ tracing: {
94
+ requestSpanNameSuffix: metric,
95
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
96
+ },
97
+ });
98
+ };
99
+ this.acknowledgeApp = (app, service, tracingConfig) => {
100
+ const metric = 'apps-ack';
101
+ return this.http.put(this.routes.Acknowledge(app, service), null, {
102
+ metric,
103
+ tracing: {
104
+ requestSpanNameSuffix: metric,
105
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
106
+ },
107
+ });
108
+ };
109
+ this.link = async (app, files, { zlib } = {}, tracingConfig) => {
110
+ if (!(files[0] && files[0].path)) {
111
+ throw new Error('Argument files must be an array of {path, content}, where content can be a String, a Buffer or a ReadableStream.');
112
+ }
113
+ const emptyChanges = files.filter(file => !file.content);
114
+ if (emptyChanges.length > 0) {
115
+ throw new Error(`Missing content for paths: ${emptyChanges.map(e => e.path).join('; ')}`);
116
+ }
117
+ const indexOfManifest = files.findIndex(({ path }) => path === 'manifest.json');
118
+ if (indexOfManifest === -1) {
119
+ throw new Error('No manifest.json file found in files.');
120
+ }
121
+ const zip = archiver_1.default('zip', { zlib });
122
+ // Throw stream errors so they reject the promise chain.
123
+ zip.on('error', (e) => {
124
+ throw e;
125
+ });
126
+ const metric = 'apps-link';
127
+ const request = this.http.put(this.routes.Link(app), zip, {
128
+ headers: { 'Content-Type': 'application/zip' },
129
+ metric,
130
+ tracing: {
131
+ requestSpanNameSuffix: metric,
132
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
133
+ },
134
+ });
135
+ files.forEach(({ content, path }) => zip.append(content, { name: path }));
136
+ const finalize = zip.finalize();
137
+ try {
138
+ const [response] = await Promise.all([request, finalize]);
139
+ response.bundleSize = zip.pointer();
140
+ return response;
141
+ }
142
+ catch (e) {
143
+ // Typing cast for compatibility with error handling in TS versions > 4.0
144
+ // Source: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html#unknown-on-catch-clause-bindings
145
+ e.bundleSize = zip.pointer();
146
+ throw e;
147
+ }
148
+ };
149
+ this.patch = async (app, changes, { zlib } = {}, tracingConfig) => {
150
+ if (!(changes[0] && changes[0].path)) {
151
+ throw new Error('Argument changes must be an array of {path, content}, where content can be a String, a Buffer or a ReadableStream.');
152
+ }
153
+ const files = changes.filter(change => !!change.content);
154
+ const deletedFiles = changes
155
+ .filter(change => !change.content)
156
+ .map(change => change.path)
157
+ .join(':');
158
+ const zip = archiver_1.default('zip', { zlib });
159
+ // Throw stream errors so they reject the promise chain.
160
+ zip.on('error', (e) => {
161
+ throw e;
162
+ });
163
+ const metric = 'apps-patch';
164
+ const request = this.http.patch(this.routes.Link(app), zip, {
165
+ headers: { 'Content-Type': 'application/zip' },
166
+ metric,
167
+ params: { deletedFiles },
168
+ tracing: {
169
+ requestSpanNameSuffix: metric,
170
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
171
+ },
172
+ });
173
+ files.forEach(({ content, path }) => zip.append(content, { name: path }));
174
+ const finalize = zip.finalize();
175
+ const [response] = await Promise.all([request, finalize]);
176
+ return response;
177
+ };
178
+ this.unlink = (app, tracingConfig) => {
179
+ return this.http.delete(this.routes.Unlink(app), {
180
+ tracing: {
181
+ requestSpanNameSuffix: 'apps-unlink',
182
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
183
+ },
184
+ });
185
+ };
186
+ this.unlinkAll = (tracingConfig) => {
187
+ return this.http.delete(this.routes.Links(), {
188
+ tracing: {
189
+ requestSpanNameSuffix: 'apps-unlink-all',
190
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
191
+ },
192
+ });
193
+ };
194
+ this.saveAppSettings = (app, settings, tracingConfig) => {
195
+ const headers = { 'Content-Type': 'application/json' };
196
+ const metric = 'apps-save';
197
+ return this.http.put(this.routes.Settings(app), settings, {
198
+ headers,
199
+ metric,
200
+ tracing: {
201
+ requestSpanNameSuffix: metric,
202
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
203
+ },
204
+ });
205
+ };
206
+ this.listApps = ({ oldVersion, since, service } = {}, tracingConfig) => {
207
+ const params = {
208
+ oldVersion,
209
+ service,
210
+ since,
211
+ };
212
+ const metric = 'apps-list';
213
+ const inflightKey = HttpClient_1.inflightUrlWithQuery;
214
+ return this.http.get(this.routes.Apps(), {
215
+ inflightKey,
216
+ metric,
217
+ params,
218
+ tracing: {
219
+ requestSpanNameSuffix: metric,
220
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
221
+ },
222
+ });
223
+ };
224
+ this.listAppFiles = (app, { prefix, nextMarker } = {}, tracingConfig) => {
225
+ const locator = utils_1.parseAppId(app);
226
+ const linked = !!locator.build;
227
+ const params = {
228
+ marker: nextMarker,
229
+ prefix,
230
+ };
231
+ const metric = linked ? 'apps-list-files' : 'registry-list-files';
232
+ const inflightKey = HttpClient_1.inflightUrlWithQuery;
233
+ return this.http.get(this.routes.Files(locator), {
234
+ inflightKey,
235
+ metric,
236
+ params,
237
+ tracing: {
238
+ requestSpanNameSuffix: metric,
239
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
240
+ },
241
+ });
242
+ };
243
+ this.listLinks = (tracingConfig) => {
244
+ const inflightKey = HttpClient_1.inflightURL;
245
+ const metric = 'apps-list-links';
246
+ return this.http.get(this.routes.Links(), {
247
+ inflightKey,
248
+ metric,
249
+ tracing: {
250
+ requestSpanNameSuffix: metric,
251
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
252
+ },
253
+ });
254
+ };
255
+ this.getAppFile = (app, path, staleIfError, tracingConfig) => {
256
+ const { logger } = this.context;
257
+ const locator = utils_1.parseAppId(app);
258
+ const linked = !!locator.build;
259
+ const inflightKey = HttpClient_1.inflightURL;
260
+ if (staleIfError && this.memoryCache) {
261
+ appsStaleIfError_1.saveVersion(app, this.memoryCache);
262
+ }
263
+ const metric = linked ? 'apps-get-file' : 'registry-get-file';
264
+ try {
265
+ return this.http.getBuffer(this.routes.File(locator, path), {
266
+ cacheable: linked ? HttpClient_1.CacheType.Memory : HttpClient_1.CacheType.Disk,
267
+ inflightKey,
268
+ metric,
269
+ tracing: {
270
+ requestSpanNameSuffix: metric,
271
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
272
+ },
273
+ });
274
+ }
275
+ catch (error) {
276
+ logger.error({ error, message: 'getAppFile failed', app, path });
277
+ if (staleIfError && this.memoryCache) {
278
+ return appsStaleIfError_1.getFallbackFile(app, path, this.memoryCache, this);
279
+ }
280
+ throw error;
281
+ }
282
+ };
283
+ this.getAppJSON = (app, path, nullIfNotFound, tracingConfig) => {
284
+ const locator = utils_1.parseAppId(app);
285
+ const linked = !!locator.build;
286
+ const inflightKey = HttpClient_1.inflightURL;
287
+ const metric = linked ? 'apps-get-json' : 'registry-get-json';
288
+ return this.http.get(this.routes.File(locator, path), {
289
+ cacheable: linked ? HttpClient_1.CacheType.Memory : HttpClient_1.CacheType.Any,
290
+ inflightKey,
291
+ metric,
292
+ nullIfNotFound,
293
+ tracing: {
294
+ requestSpanNameSuffix: metric,
295
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
296
+ },
297
+ });
298
+ };
299
+ this.getFileFromApps = (app, path, nullIfNotFound, tracingConfig) => {
300
+ const inflightKey = HttpClient_1.inflightURL;
301
+ const metric = 'get-file-from-apps';
302
+ return this.http.get(this.routes.FileFromApps(app, path), {
303
+ cacheable: HttpClient_1.CacheType.Memory,
304
+ inflightKey,
305
+ metric,
306
+ nullIfNotFound,
307
+ tracing: {
308
+ requestSpanNameSuffix: metric,
309
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
310
+ },
311
+ });
312
+ };
313
+ this.getAppFileStream = (app, path, tracingConfig) => {
314
+ const locator = utils_1.parseAppId(app);
315
+ const metric = locator.build ? 'apps-get-file-s' : 'registry-get-file-s';
316
+ return this.http.getStream(this.routes.File(locator, path), {
317
+ metric,
318
+ tracing: {
319
+ requestSpanNameSuffix: metric,
320
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
321
+ },
322
+ });
323
+ };
324
+ this.getApp = (app, tracingConfig) => {
325
+ const metric = 'apps-get-app';
326
+ const inflightKey = HttpClient_1.inflightURL;
327
+ return this.http.get(this.routes.App(app), {
328
+ inflightKey,
329
+ metric,
330
+ tracing: {
331
+ requestSpanNameSuffix: metric,
332
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
333
+ },
334
+ });
335
+ };
336
+ this.getAppSettings = (app, tracingConfig) => {
337
+ const inflightKey = HttpClient_1.inflightURL;
338
+ const metric = 'apps-get-settings';
339
+ return this.http.get(this.routes.Settings(app), {
340
+ inflightKey,
341
+ metric,
342
+ tracing: {
343
+ requestSpanNameSuffix: metric,
344
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
345
+ },
346
+ });
347
+ };
348
+ this.getAllAppsSettings = (listAppsOptions = {}, tracingConfig) => {
349
+ return this.listApps(listAppsOptions, tracingConfig).then(({ data: installedApps }) => {
350
+ const names = installedApps.map(getVendorAndName);
351
+ const settingsPromises = names.map(vendorAndName => this.getAppSettings(vendorAndName, tracingConfig).catch(notFound));
352
+ return Promise.all(settingsPromises).then((settings) => {
353
+ return zipObj(names, settings);
354
+ });
355
+ });
356
+ };
357
+ this.getAppBundle = (app, bundlePath, generatePackageJson, tracingConfig) => {
358
+ const locator = utils_1.parseAppId(app);
359
+ const params = generatePackageJson && { _packageJSONEngine: 'npm', _packageJSONFilter: 'vtex.render-builder@x' };
360
+ const metric = locator.build ? 'apps-get-bundle' : 'registry-get-bundle';
361
+ return this.http.getStream(this.routes.AppBundle(locator, bundlePath), {
362
+ headers: {
363
+ Accept: 'application/x-gzip',
364
+ 'Accept-Encoding': 'gzip',
365
+ },
366
+ metric,
367
+ params,
368
+ tracing: {
369
+ requestSpanNameSuffix: metric,
370
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
371
+ },
372
+ });
373
+ };
374
+ this.unpackAppBundle = (app, bundlePath, unpackPath, generatePackageJson, tracingConfig) => {
375
+ return this.getAppBundle(app, bundlePath, generatePackageJson, tracingConfig)
376
+ .then(stream => stream
377
+ .pipe(zlib_1.createGunzip())
378
+ .pipe(tar_fs_1.extract(unpackPath)));
379
+ };
380
+ this.getAppsMetaInfos = async (filter, staleWhileRevalidate = true, tracingConfig) => {
381
+ var _a;
382
+ const { account, production, recorder, workspace, logger } = this.context;
383
+ const metric = 'get-apps-meta';
384
+ const inflightKey = HttpClient_1.inflightURL;
385
+ const key = appsStaleIfError_1.getMetaInfoKey(account, workspace);
386
+ const cachedResponse = production && staleWhileRevalidate
387
+ ? await ((_a = this.diskCache) === null || _a === void 0 ? void 0 : _a.get(key))
388
+ : undefined;
389
+ if (cachedResponse && recorder) {
390
+ recorder.record(cachedResponse.headers);
391
+ }
392
+ const metaInfoPromise = this.http
393
+ .getRaw(this.routes.Meta(), {
394
+ ignoreRecorder: Boolean(cachedResponse),
395
+ inflightKey,
396
+ metric,
397
+ params: { fields: workspaceFields },
398
+ tracing: {
399
+ requestSpanNameSuffix: metric,
400
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
401
+ },
402
+ })
403
+ .then(response => {
404
+ const { data, headers: responseHeaders } = response;
405
+ if (this.diskCache && production) {
406
+ this.diskCache.set(key, {
407
+ appsMetaInfo: data.apps || [],
408
+ headers: responseHeaders,
409
+ });
410
+ }
411
+ return response;
412
+ });
413
+ let appsMetaInfo;
414
+ if (cachedResponse) {
415
+ appsMetaInfo = cachedResponse.appsMetaInfo;
416
+ metaInfoPromise.catch(error => {
417
+ logger.warn({ message: 'Unable to update stale cache', error });
418
+ });
419
+ }
420
+ else {
421
+ appsMetaInfo = await metaInfoPromise.then(response => response.data.apps);
422
+ }
423
+ if (filter) {
424
+ return appsMetaInfo.filter(appMeta => { var _a; return (_a = appMeta === null || appMeta === void 0 ? void 0 : appMeta._resolvedDependencies) === null || _a === void 0 ? void 0 : _a.filter; });
425
+ }
426
+ return appsMetaInfo;
427
+ };
428
+ this.getDependencies = (filter = '', tracingConfig) => {
429
+ const params = { filter };
430
+ const metric = 'apps-get-deps';
431
+ const inflightKey = HttpClient_1.inflightUrlWithQuery;
432
+ return this.http.get(this.routes.Dependencies(), {
433
+ inflightKey,
434
+ metric,
435
+ params,
436
+ tracing: {
437
+ requestSpanNameSuffix: metric,
438
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
439
+ },
440
+ });
441
+ };
442
+ this.updateDependencies = (tracingConfig) => {
443
+ const metric = 'apps-update-deps';
444
+ return this.http.put(this.routes.Dependencies(), null, {
445
+ metric,
446
+ tracing: {
447
+ requestSpanNameSuffix: metric,
448
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
449
+ },
450
+ });
451
+ };
452
+ this.updateDependency = (name, version, registry, tracingConfig) => {
453
+ const metric = 'apps-update-dep';
454
+ return this.http.patch(this.routes.Apps(), [{ name, version, registry }], {
455
+ metric,
456
+ tracing: {
457
+ requestSpanNameSuffix: metric,
458
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
459
+ },
460
+ });
461
+ };
462
+ this.resolveDependencies = (apps, registries, filter = '', tracingConfig) => {
463
+ const params = { apps, registries, filter };
464
+ const metric = 'apps-resolve-deps';
465
+ const inflightKey = HttpClient_1.inflightUrlWithQuery;
466
+ return this.http.get(this.routes.ResolveDependencies(), {
467
+ inflightKey,
468
+ metric,
469
+ params,
470
+ tracing: {
471
+ requestSpanNameSuffix: metric,
472
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
473
+ },
474
+ });
475
+ };
476
+ this.resolveDependenciesWithManifest = (manifest, filter = '', tracingConfig) => {
477
+ const params = { filter };
478
+ const metric = 'apps-resolve-deps-m';
479
+ return this.http.post(this.routes.ResolveDependenciesWithManifest(), manifest, {
480
+ metric,
481
+ params,
482
+ tracing: {
483
+ requestSpanNameSuffix: metric,
484
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
485
+ },
486
+ });
487
+ };
488
+ this.installRuntime = (descriptor, tracingConfig) => {
489
+ const { account, workspace } = this.context;
490
+ const [name, version] = descriptor.split('@');
491
+ return this.http.patch(`http://apps.aws-us-east-1.vtex.io/${account}/${workspace}/apps`, [
492
+ {
493
+ name,
494
+ version,
495
+ },
496
+ ], {
497
+ tracing: {
498
+ requestSpanNameSuffix: 'apps-install-runtime',
499
+ ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
500
+ },
501
+ });
502
+ };
503
+ this.diskCache = options && options.diskCache;
504
+ this.memoryCache = options && options.memoryCache;
505
+ this._routes = createRoutes(context);
506
+ }
507
+ get routes() {
508
+ return this._routes;
509
+ }
510
+ }
511
+ exports.Apps = Apps;