@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,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sanitizeDirectiveTypeDefs = exports.SanitizeDirective = void 0;
3
4
  const graphql_1 = require("graphql");
4
5
  const graphql_tools_1 = require("graphql-tools");
5
6
  const sanitizedString_1 = require("../typeDefs/sanitizedString");
@@ -27,3 +28,9 @@ class SanitizeDirective extends graphql_tools_1.SchemaDirectiveVisitor {
27
28
  }
28
29
  }
29
30
  exports.SanitizeDirective = SanitizeDirective;
31
+ exports.sanitizeDirectiveTypeDefs = `
32
+ directive @sanitize(
33
+ allowHTMLTags: Boolean
34
+ stripIgnoreTag: Boolean
35
+ ) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION | ARGUMENT_DEFINITION
36
+ `;
@@ -0,0 +1,6 @@
1
+ import { GraphQLField } from 'graphql';
2
+ import { SchemaDirectiveVisitor } from 'graphql-tools';
3
+ export declare class SettingsDirective extends SchemaDirectiveVisitor {
4
+ visitFieldDefinition(field: GraphQLField<any, any>): void;
5
+ }
6
+ export declare const settingsDirectiveTypeDefs = "\ndirective @settings(\n settingsType: String\n) on FIELD_DEFINITION\n";
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.settingsDirectiveTypeDefs = exports.SettingsDirective = void 0;
4
+ const graphql_1 = require("graphql");
5
+ const graphql_tools_1 = require("graphql-tools");
6
+ const settings_1 = require("../../../http/middlewares/settings");
7
+ const addSettings = async (settings, ctx) => {
8
+ if (settings === 'pure') {
9
+ return ctx;
10
+ }
11
+ const { clients: { apps, assets } } = ctx;
12
+ const dependenciesSettings = await settings_1.getDependenciesSettings(apps, assets);
13
+ if (!ctx.vtex) {
14
+ ctx.vtex = {};
15
+ }
16
+ ctx.vtex.settings = { ...ctx.vtex.settings, dependenciesSettings };
17
+ };
18
+ class SettingsDirective extends graphql_tools_1.SchemaDirectiveVisitor {
19
+ visitFieldDefinition(field) {
20
+ const { resolve = graphql_1.defaultFieldResolver } = field;
21
+ const { settingsType } = this.args;
22
+ field.resolve = async (root, args, ctx, info) => {
23
+ if (settingsType) {
24
+ await addSettings(settingsType, ctx);
25
+ }
26
+ return resolve(root, args, ctx, info);
27
+ };
28
+ }
29
+ }
30
+ exports.SettingsDirective = SettingsDirective;
31
+ exports.settingsDirectiveTypeDefs = `
32
+ directive @settings(
33
+ settingsType: String
34
+ ) on FIELD_DEFINITION
35
+ `;
@@ -3,3 +3,4 @@ import { SchemaDirectiveVisitor } from 'graphql-tools';
3
3
  export declare class SmartCacheDirective extends SchemaDirectiveVisitor {
4
4
  visitFieldDefinition(field: GraphQLField<any, any>): void;
5
5
  }
6
+ export declare const smartCacheDirectiveTypeDefs = "\ndirective @smartcache(\n maxAge: String\n) on FIELD_DEFINITION\n";
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.smartCacheDirectiveTypeDefs = exports.SmartCacheDirective = void 0;
3
4
  const graphql_1 = require("graphql");
4
5
  const graphql_tools_1 = require("graphql-tools");
5
- const maxAgeEnum_1 = require("../../utils/maxAgeEnum");
6
+ const constants_1 = require("../../../../../../constants");
6
7
  const ETAG_CONTROL_HEADER = 'x-vtex-etag-control';
7
8
  const DEFAULT_ARGS = {
8
9
  maxAge: undefined,
@@ -11,10 +12,10 @@ class SmartCacheDirective extends graphql_tools_1.SchemaDirectiveVisitor {
11
12
  visitFieldDefinition(field) {
12
13
  const { resolve = graphql_1.defaultFieldResolver } = field;
13
14
  const { maxAge } = this.args || DEFAULT_ARGS;
14
- const maxAgeS = maxAge && maxAgeEnum_1.maxAgeEnums[maxAge];
15
+ const maxAgeS = maxAge && constants_1.MAX_AGE[maxAge];
15
16
  field.resolve = (root, args, context, info) => {
16
17
  if (maxAgeS) {
17
- context.set(ETAG_CONTROL_HEADER, maxAgeS);
18
+ context.set(ETAG_CONTROL_HEADER, `public, max-age=${maxAgeS}`);
18
19
  }
19
20
  context.vtex.recorder = context.state.recorder;
20
21
  return resolve(root, args, context, info);
@@ -22,3 +23,8 @@ class SmartCacheDirective extends graphql_tools_1.SchemaDirectiveVisitor {
22
23
  }
23
24
  }
24
25
  exports.SmartCacheDirective = SmartCacheDirective;
26
+ exports.smartCacheDirectiveTypeDefs = `
27
+ directive @smartcache(
28
+ maxAge: String
29
+ ) on FIELD_DEFINITION
30
+ `;
@@ -0,0 +1,7 @@
1
+ import { GraphQLField } from 'graphql';
2
+ import { SchemaDirectiveVisitor } from 'graphql-tools';
3
+ import { ServiceContext } from '../../../typings';
4
+ export declare class TranslatableV2 extends SchemaDirectiveVisitor {
5
+ visitFieldDefinition(field: GraphQLField<any, ServiceContext>): void;
6
+ }
7
+ export declare const translatableV2DirectiveTypeDefs = "\ndirective @translatableV2(\n behavior: String\n withAppsMetaInfo: Boolean\n) on FIELD_DEFINITION\n";
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.translatableV2DirectiveTypeDefs = exports.TranslatableV2 = void 0;
4
+ const graphql_1 = require("graphql");
5
+ const graphql_tools_1 = require("graphql-tools");
6
+ const translations_1 = require("../../utils/translations");
7
+ const messagesLoaderV2_1 = require("../messagesLoaderV2");
8
+ class TranslatableV2 extends graphql_tools_1.SchemaDirectiveVisitor {
9
+ visitFieldDefinition(field) {
10
+ const { resolve = graphql_1.defaultFieldResolver } = field;
11
+ const { behavior = 'FULL', withAppsMetaInfo = false } = this.args;
12
+ field.resolve = async (root, args, ctx, info) => {
13
+ var _a;
14
+ if (!((_a = ctx.loaders) === null || _a === void 0 ? void 0 : _a.messagesV2)) {
15
+ const { vtex: { locale: to } } = ctx;
16
+ if (to == null) {
17
+ throw new Error('@translatableV2 directive needs the locale variable available in IOContext. You can do this by either setting \`ctx.vtex.locale\` directly or calling this app with \`x-vtex-locale\` header');
18
+ }
19
+ const dependencies = withAppsMetaInfo ? await ctx.clients.apps.getAppsMetaInfos() : undefined;
20
+ ctx.loaders = {
21
+ ...ctx.loaders,
22
+ messagesV2: messagesLoaderV2_1.createMessagesLoader(ctx.clients, to, dependencies),
23
+ };
24
+ }
25
+ const response = await resolve(root, args, ctx, info);
26
+ const { vtex, loaders: { messagesV2 } } = ctx;
27
+ const handler = translations_1.handleSingleString(vtex, messagesV2, behavior, 'translatableV2');
28
+ return Array.isArray(response)
29
+ ? Promise.all(response.map(handler))
30
+ : handler(response);
31
+ };
32
+ }
33
+ }
34
+ exports.TranslatableV2 = TranslatableV2;
35
+ exports.translatableV2DirectiveTypeDefs = `
36
+ directive @translatableV2(
37
+ behavior: String
38
+ withAppsMetaInfo: Boolean
39
+ ) on FIELD_DEFINITION
40
+ `;
@@ -1,6 +1,7 @@
1
1
  import { GraphQLField } from 'graphql';
2
2
  import { SchemaDirectiveVisitor } from 'graphql-tools';
3
3
  import { ServiceContext } from '../../../typings';
4
- export declare class Translatable extends SchemaDirectiveVisitor {
4
+ export declare class TranslateTo extends SchemaDirectiveVisitor {
5
5
  visitFieldDefinition(field: GraphQLField<any, ServiceContext>): void;
6
6
  }
7
+ export declare const translateToDirectiveTypeDefs = "\ndirective @translateTo(\n language: String!\n behavior: String\n) on FIELD_DEFINITION\n";
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.translateToDirectiveTypeDefs = exports.TranslateTo = void 0;
4
+ const graphql_1 = require("graphql");
5
+ const graphql_tools_1 = require("graphql-tools");
6
+ const translations_1 = require("../../utils/translations");
7
+ const messagesLoaderV2_1 = require("../messagesLoaderV2");
8
+ class TranslateTo extends graphql_tools_1.SchemaDirectiveVisitor {
9
+ visitFieldDefinition(field) {
10
+ const { resolve = graphql_1.defaultFieldResolver } = field;
11
+ const { language, behavior = 'FULL' } = this.args;
12
+ field.resolve = async (root, args, ctx, info) => {
13
+ var _a;
14
+ if (!((_a = ctx.loaders) === null || _a === void 0 ? void 0 : _a.immutableMessagesV2)) {
15
+ const dependencies = await ctx.clients.apps.getAppsMetaInfos();
16
+ ctx.loaders = {
17
+ ...ctx.loaders,
18
+ immutableMessagesV2: messagesLoaderV2_1.createMessagesLoader(ctx.clients, language, dependencies),
19
+ };
20
+ }
21
+ const response = (await resolve(root, args, ctx, info));
22
+ const { vtex, loaders: { immutableMessagesV2 }, } = ctx;
23
+ const handler = translations_1.handleSingleString(vtex, immutableMessagesV2, behavior, 'translateTo');
24
+ return Array.isArray(response) ? Promise.all(response.map(handler)) : handler(response);
25
+ };
26
+ }
27
+ }
28
+ exports.TranslateTo = TranslateTo;
29
+ exports.translateToDirectiveTypeDefs = `
30
+ directive @translateTo(
31
+ language: String!
32
+ behavior: String
33
+ ) on FIELD_DEFINITION
34
+ `;
@@ -0,0 +1,22 @@
1
+ import { Auth } from './Auth';
2
+ import { CacheControl } from './CacheControl';
3
+ import { Deprecated } from './Deprecated';
4
+ import { Metric } from './Metric';
5
+ import { SanitizeDirective } from './Sanitize';
6
+ import { SettingsDirective } from './Settings';
7
+ import { SmartCacheDirective } from './SmartCacheDirective';
8
+ import { TranslatableV2 } from './TranslatableV2';
9
+ import { TranslateTo } from './TranslateTo';
10
+ export { parseTranslatableStringV2, formatTranslatableStringV2 } from '../../utils/translations';
11
+ export declare const nativeSchemaDirectives: {
12
+ auth: typeof Auth;
13
+ cacheControl: typeof CacheControl;
14
+ deprecated: typeof Deprecated;
15
+ metric: typeof Metric;
16
+ sanitize: typeof SanitizeDirective;
17
+ settings: typeof SettingsDirective;
18
+ smartcache: typeof SmartCacheDirective;
19
+ translatableV2: typeof TranslatableV2;
20
+ translateTo: typeof TranslateTo;
21
+ };
22
+ export declare const nativeSchemaDirectivesTypeDefs: string;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nativeSchemaDirectivesTypeDefs = exports.nativeSchemaDirectives = void 0;
4
+ const Auth_1 = require("./Auth");
5
+ const CacheControl_1 = require("./CacheControl");
6
+ const Deprecated_1 = require("./Deprecated");
7
+ const Metric_1 = require("./Metric");
8
+ const Sanitize_1 = require("./Sanitize");
9
+ const Settings_1 = require("./Settings");
10
+ const SmartCacheDirective_1 = require("./SmartCacheDirective");
11
+ const TranslatableV2_1 = require("./TranslatableV2");
12
+ const TranslateTo_1 = require("./TranslateTo");
13
+ var translations_1 = require("../../utils/translations");
14
+ Object.defineProperty(exports, "parseTranslatableStringV2", { enumerable: true, get: function () { return translations_1.parseTranslatableStringV2; } });
15
+ Object.defineProperty(exports, "formatTranslatableStringV2", { enumerable: true, get: function () { return translations_1.formatTranslatableStringV2; } });
16
+ exports.nativeSchemaDirectives = {
17
+ auth: Auth_1.Auth,
18
+ cacheControl: CacheControl_1.CacheControl,
19
+ deprecated: Deprecated_1.Deprecated,
20
+ metric: Metric_1.Metric,
21
+ sanitize: Sanitize_1.SanitizeDirective,
22
+ settings: Settings_1.SettingsDirective,
23
+ smartcache: SmartCacheDirective_1.SmartCacheDirective,
24
+ translatableV2: TranslatableV2_1.TranslatableV2,
25
+ translateTo: TranslateTo_1.TranslateTo,
26
+ };
27
+ exports.nativeSchemaDirectivesTypeDefs = [
28
+ Auth_1.authDirectiveTypeDefs,
29
+ CacheControl_1.cacheControlDirectiveTypeDefs,
30
+ Deprecated_1.deprecatedDirectiveTypeDefs,
31
+ Metric_1.metricDirectiveTypeDefs,
32
+ Sanitize_1.sanitizeDirectiveTypeDefs,
33
+ Settings_1.settingsDirectiveTypeDefs,
34
+ SmartCacheDirective_1.smartCacheDirectiveTypeDefs,
35
+ TranslatableV2_1.translatableV2DirectiveTypeDefs,
36
+ TranslateTo_1.translateToDirectiveTypeDefs,
37
+ ].join('\n\n');
@@ -0,0 +1,8 @@
1
+ import { GraphQLScalarType } from 'graphql';
2
+ import { SchemaMetaData } from '../../schema';
3
+ export declare const nativeResolvers: {
4
+ IOSanitizedString: import("./sanitizedString").IOSanitizedStringType;
5
+ IOUpload: GraphQLScalarType;
6
+ Upload: GraphQLScalarType;
7
+ };
8
+ export declare const nativeTypeDefs: (metaData: SchemaMetaData) => string;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nativeTypeDefs = exports.nativeResolvers = void 0;
4
+ const graphql_upload_1 = require("graphql-upload");
5
+ const ramda_1 = require("ramda");
6
+ const ioUpload_1 = require("./ioUpload");
7
+ const sanitizedString_1 = require("./sanitizedString");
8
+ exports.nativeResolvers = {
9
+ 'IOSanitizedString': sanitizedString_1.resolvers,
10
+ 'IOUpload': ioUpload_1.resolvers,
11
+ 'Upload': graphql_upload_1.GraphQLUpload,
12
+ };
13
+ exports.nativeTypeDefs = (metaData) => ramda_1.reduce((acc, scalar) => !metaData[scalar] ? `${acc}\nscalar ${scalar}\n` : acc, '', ramda_1.keys(exports.nativeResolvers));
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolvers = exports.scalar = void 0;
3
4
  const graphql_1 = require("graphql");
4
5
  const name = 'IOUpload';
5
6
  exports.scalar = name;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolvers = exports.IOSanitizedStringType = exports.scalar = void 0;
3
4
  const graphql_1 = require("graphql");
4
5
  const xss_1 = require("xss");
5
6
  const defaultName = 'IOSanitizedString';
@@ -15,7 +16,11 @@ class IOSanitizedStringType extends graphql_1.GraphQLScalarType {
15
16
  constructor(options) {
16
17
  const allowHTMLTags = options && options.allowHTMLTags;
17
18
  const stripIgnoreTag = !options || options.stripIgnoreTag !== false;
18
- const xssOptions = Object.assign({ stripIgnoreTag }, !allowHTMLTags && { whiteList: [] }, stripIgnoreTag && { escapeHtml: noop });
19
+ const xssOptions = {
20
+ stripIgnoreTag,
21
+ ...!allowHTMLTags && { whiteList: [] },
22
+ ...stripIgnoreTag && { escapeHtml: noop },
23
+ };
19
24
  super({
20
25
  name: options ? `Custom${defaultName}` : defaultName,
21
26
  parseLiteral: ast => {
@@ -0,0 +1,31 @@
1
+ import { DocumentNode, execute, GraphQLSchema } from 'graphql';
2
+ import { IOClients } from '../../../../clients/IOClients';
3
+ import { ParamsContext, RecorderState, ServiceContext } from '../typings';
4
+ export interface Query {
5
+ variables?: Record<string, any>;
6
+ operationName?: string;
7
+ document: DocumentNode;
8
+ }
9
+ declare type TypeFromPromise<T> = T extends Promise<infer U> ? U : T;
10
+ export declare type GraphQLResponse = TypeFromPromise<ReturnType<typeof execute>>;
11
+ export interface GraphQLCacheControl {
12
+ maxAge: number;
13
+ scope: 'private' | 'public' | 'segment';
14
+ noCache: boolean;
15
+ noStore: boolean;
16
+ }
17
+ export interface GraphQLContext extends ParamsContext {
18
+ graphql: {
19
+ query?: Query;
20
+ graphqlResponse?: GraphQLResponse;
21
+ status: 'success' | 'error';
22
+ cacheControl: GraphQLCacheControl;
23
+ };
24
+ }
25
+ export declare type GraphQLServiceContext = ServiceContext<IOClients, RecorderState, GraphQLContext>;
26
+ export interface ExecutableSchema {
27
+ schema: GraphQLSchema;
28
+ hasProvider: boolean;
29
+ provider?: string;
30
+ }
31
+ export {};
@@ -0,0 +1,2 @@
1
+ import { GraphQLServiceContext } from '../typings';
2
+ export declare const cacheControlHTTP: (ctx: GraphQLServiceContext) => string;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cacheControlHTTP = void 0;
4
+ const domain_1 = require("../../../../../utils/domain");
5
+ const PRIVATE_ROUTE_REGEX = /_v\/graphql\/private\/v*/;
6
+ const linked = !!process.env.VTEX_APP_LINK;
7
+ const isPrivateRoute = ({ request: { headers } }) => PRIVATE_ROUTE_REGEX.test(headers['x-forwarded-path'] || '');
8
+ const publicRegExp = (endpoint) => new RegExp(`.*${endpoint.replace('.', '\\.')}.*`);
9
+ const isPublicEndpoint = ({ request: { headers } }) => {
10
+ const host = headers['x-forwarded-host'];
11
+ if (headers.origin || !host) {
12
+ return false;
13
+ }
14
+ return domain_1.PUBLIC_DOMAINS.some(endpoint => publicRegExp(endpoint).test(host));
15
+ };
16
+ exports.cacheControlHTTP = (ctx) => {
17
+ const { graphql: { cacheControl: { maxAge, scope: scopeHint, noCache: noCacheHint, noStore: noStoreHint, }, }, vtex: { production, }, } = ctx;
18
+ const finalHeader = [];
19
+ const noCache = noCacheHint || !production || isPublicEndpoint(ctx);
20
+ if (noCache) {
21
+ finalHeader.push('no-cache');
22
+ }
23
+ const noStore = noStoreHint || linked;
24
+ if (noStore) {
25
+ finalHeader.push('no-store');
26
+ }
27
+ if (!noCache && !noStore) {
28
+ const scope = scopeHint === 'private' || isPrivateRoute(ctx) ? 'private' : 'public';
29
+ finalHeader.push(scope);
30
+ finalHeader.push(`max-age=${maxAge}`);
31
+ }
32
+ return finalHeader.join(',');
33
+ };
@@ -0,0 +1,2 @@
1
+ import { GraphQLServiceContext } from '../typings';
2
+ export declare const createFormatError: (ctx: GraphQLServiceContext) => (error: any) => any;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createFormatError = void 0;
4
+ const ramda_1 = require("ramda");
5
+ const error_1 = require("../../../../../utils/error");
6
+ const ERROR_FIELD_WHITELIST = ['message', 'path', 'stack', 'extensions', 'statusCode', 'name', 'headers', 'originalError', 'code'];
7
+ const QUERY_FIELDS = ['query', 'operationName', 'variables'];
8
+ const trimVariables = (variables) => {
9
+ if (variables) {
10
+ const stringifiedVariables = JSON.stringify(variables);
11
+ return stringifiedVariables.length <= 1024
12
+ ? stringifiedVariables
13
+ : `${stringifiedVariables.slice(0, 992)} [Truncated: variables too long]`;
14
+ }
15
+ return '';
16
+ };
17
+ const detailsFromCtx = (ctx) => {
18
+ const { headers: { 'x-forwarded-host': forwardedHost, 'x-forwarded-proto': forwardedProto, 'x-vtex-platform': platform, }, vtex: { operationId, requestId, }, } = ctx;
19
+ const queryRest = ramda_1.pick(QUERY_FIELDS, ctx.graphql.query || {});
20
+ const variables = ctx.request.is('multipart/form-data')
21
+ ? '[GraphQL Upload]'
22
+ : trimVariables(queryRest.variables);
23
+ const query = {
24
+ ...queryRest,
25
+ variables,
26
+ };
27
+ return {
28
+ forwardedHost,
29
+ forwardedProto,
30
+ operationId,
31
+ platform,
32
+ query,
33
+ requestId,
34
+ };
35
+ };
36
+ const formatError = (error, details) => {
37
+ const formattedError = ramda_1.pick(ERROR_FIELD_WHITELIST, error);
38
+ if (!formattedError.extensions) {
39
+ formattedError.extensions = {
40
+ code: 'INTERNAL_SERVER_ERROR',
41
+ };
42
+ }
43
+ if (formattedError.originalError) {
44
+ formattedError.originalError = error_1.cleanError(formattedError.originalError);
45
+ if (formattedError.stack === formattedError.originalError.stack) {
46
+ delete formattedError.originalError.stack;
47
+ }
48
+ if (!formattedError.extensions.exception) {
49
+ formattedError.extensions.exception = {
50
+ message: formattedError.originalError.message,
51
+ name: formattedError.originalError.name,
52
+ ...ramda_1.omit(error_1.SENSITIVE_EXCEPTION_FIELDS, formattedError.originalError),
53
+ sensitive: ramda_1.pick(error_1.SENSITIVE_EXCEPTION_FIELDS, formattedError.originalError),
54
+ };
55
+ }
56
+ else {
57
+ const mergedException = { ...formattedError.originalError,
58
+ ...formattedError.extensions.exception,
59
+ };
60
+ const extendedException = {
61
+ message: formattedError.originalError.message,
62
+ name: formattedError.originalError.name,
63
+ ...ramda_1.omit(error_1.SENSITIVE_EXCEPTION_FIELDS, mergedException),
64
+ sensitive: ramda_1.pick(error_1.SENSITIVE_EXCEPTION_FIELDS, mergedException),
65
+ };
66
+ formattedError.extensions.exception = error_1.cleanError(extendedException);
67
+ }
68
+ // Make originalError not enumerable to prevent duplicated log and response information
69
+ Object.defineProperty(formattedError, 'originalError', { enumerable: false });
70
+ }
71
+ Object.assign(formattedError, details);
72
+ return formattedError;
73
+ };
74
+ exports.createFormatError = (ctx) => {
75
+ const details = detailsFromCtx(ctx);
76
+ return (error) => formatError(error, details);
77
+ };
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatePathName = void 0;
3
4
  const ramda_1 = require("ramda");
4
5
  exports.generatePathName = (rpath) => {
5
6
  const pathFieldNames = ramda_1.filter(value => typeof value === 'string', rpath);
@@ -0,0 +1,14 @@
1
+ import { Behavior } from '../../../../../clients';
2
+ import { IOContext } from '../../typings';
3
+ export declare const CONTEXT_REGEX: RegExp;
4
+ export declare const FROM_REGEX: RegExp;
5
+ export declare const CONTENT_REGEX: RegExp;
6
+ export interface TranslatableMessageV2 {
7
+ from?: string;
8
+ content: string;
9
+ context?: string;
10
+ }
11
+ export declare type TranslationDirectiveType = 'translatableV2' | 'translateTo';
12
+ export declare const parseTranslatableStringV2: (rawMessage: string) => TranslatableMessageV2;
13
+ export declare const formatTranslatableStringV2: ({ from, content, context }: TranslatableMessageV2) => string;
14
+ export declare const handleSingleString: (ctx: IOContext, loader: import("dataloader")<import("../../../../../clients").Message, string>, behavior: Behavior, directiveName: TranslationDirectiveType) => (rawMessage: string | null) => Promise<string | null>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleSingleString = exports.formatTranslatableStringV2 = exports.parseTranslatableStringV2 = exports.CONTENT_REGEX = exports.FROM_REGEX = exports.CONTEXT_REGEX = void 0;
4
+ exports.CONTEXT_REGEX = /\(\(\((?<context>(.)*)\)\)\)/;
5
+ exports.FROM_REGEX = /\<\<\<(?<from>(.)*)\>\>\>/;
6
+ exports.CONTENT_REGEX = /\(\(\((?<context>(.)*)\)\)\)|\<\<\<(?<from>(.)*)\>\>\>/g;
7
+ exports.parseTranslatableStringV2 = (rawMessage) => {
8
+ var _a, _b, _c, _d;
9
+ const context = (_b = (_a = rawMessage.match(exports.CONTEXT_REGEX)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.context;
10
+ const from = (_d = (_c = rawMessage.match(exports.FROM_REGEX)) === null || _c === void 0 ? void 0 : _c.groups) === null || _d === void 0 ? void 0 : _d.from;
11
+ const content = rawMessage.replace(exports.CONTENT_REGEX, '');
12
+ return {
13
+ content: content === null || content === void 0 ? void 0 : content.trim(),
14
+ context: context === null || context === void 0 ? void 0 : context.trim(),
15
+ from: from === null || from === void 0 ? void 0 : from.trim(),
16
+ };
17
+ };
18
+ exports.formatTranslatableStringV2 = ({ from, content, context }) => `${content} ${context ? `(((${context})))` : ''} ${from ? `<<<${from}>>>` : ''}`;
19
+ exports.handleSingleString = (ctx, loader, behavior, directiveName) => async (rawMessage) => {
20
+ // Messages only know how to process non empty strings.
21
+ if (rawMessage == null) {
22
+ return rawMessage;
23
+ }
24
+ const { content, context, from: maybeFrom } = exports.parseTranslatableStringV2(rawMessage);
25
+ const { binding, tenant } = ctx;
26
+ if (content == null) {
27
+ throw new Error(`@${directiveName} directive needs a content to translate, but received ${JSON.stringify(rawMessage)}`);
28
+ }
29
+ const from = maybeFrom || (binding === null || binding === void 0 ? void 0 : binding.locale) || (tenant === null || tenant === void 0 ? void 0 : tenant.locale);
30
+ if (from == null) {
31
+ throw new Error(`@${directiveName} directive needs a source language to translate from. You can do this by either setting ${'`ctx.vtex.tenant`'} variable, call this app with the header ${'`x-vtex-tenant`'} or format the string with the ${'`formatTranslatableStringV2`'} function with the ${'`from`'} option set`);
32
+ }
33
+ return loader.load({
34
+ behavior,
35
+ content,
36
+ context,
37
+ from,
38
+ });
39
+ };
@@ -0,0 +1,5 @@
1
+ import TokenBucket from 'tokenbucket';
2
+ import { IOClients } from '../../../../clients/IOClients';
3
+ import { ClientsConfig, ParamsContext, RecorderState, RouteHandler, ServiceRoute } from '../typings';
4
+ export declare const createPrivateHttpRoute: <T extends IOClients, U extends RecorderState, V extends ParamsContext>(clientsConfig: ClientsConfig<T>, serviceHandler: import("koa-compose").Middleware<import("../typings").ServiceContext<T, U, V>> | import("koa-compose").Middleware<import("../typings").ServiceContext<T, U, V>>[], serviceRoute: ServiceRoute, routeId: string, globalLimiter: TokenBucket | undefined) => import("koa-compose").ComposedMiddleware<import("../typings").ServiceContext<T, U, V>>;
5
+ export declare const createPublicHttpRoute: <T extends IOClients, U extends RecorderState, V extends ParamsContext>(clientsConfig: ClientsConfig<T>, serviceHandler: import("koa-compose").Middleware<import("../typings").ServiceContext<T, U, V>> | import("koa-compose").Middleware<import("../typings").ServiceContext<T, U, V>>[], serviceRoute: ServiceRoute, routeId: string, globalLimiter: TokenBucket | undefined) => import("koa-compose").ComposedMiddleware<import("../typings").ServiceContext<T, U, V>>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPublicHttpRoute = exports.createPrivateHttpRoute = void 0;
4
+ const tracingMiddlewares_1 = require("../../../tracing/tracingMiddlewares");
5
+ const compose_1 = require("../utils/compose");
6
+ const toArray_1 = require("../utils/toArray");
7
+ const authTokens_1 = require("./middlewares/authTokens");
8
+ const cancellationToken_1 = require("./middlewares/cancellationToken");
9
+ const clients_1 = require("./middlewares/clients");
10
+ const context_1 = require("./middlewares/context");
11
+ const rateLimit_1 = require("./middlewares/rateLimit");
12
+ const requestStats_1 = require("./middlewares/requestStats");
13
+ const setCookie_1 = require("./middlewares/setCookie");
14
+ const settings_1 = require("./middlewares/settings");
15
+ const timings_1 = require("./middlewares/timings");
16
+ const vary_1 = require("./middlewares/vary");
17
+ exports.createPrivateHttpRoute = (clientsConfig, serviceHandler, serviceRoute, routeId, globalLimiter) => {
18
+ var _a, _b;
19
+ const { implementation, options } = clientsConfig;
20
+ const middlewares = toArray_1.toArray(serviceHandler);
21
+ const pipeline = [
22
+ tracingMiddlewares_1.nameSpanOperationMiddleware('private-handler', routeId),
23
+ context_1.createPvtContextMiddleware(routeId, serviceRoute),
24
+ cancellationToken_1.cancellationToken,
25
+ requestStats_1.trackIncomingRequestStats,
26
+ vary_1.vary,
27
+ authTokens_1.authTokens,
28
+ clients_1.clients(implementation, options),
29
+ ...(serviceRoute.settingsType === 'workspace' || serviceRoute.settingsType === 'userAndWorkspace' ? [settings_1.getServiceSettings()] : []),
30
+ timings_1.timings,
31
+ rateLimit_1.concurrentRateLimiter((_a = serviceRoute === null || serviceRoute === void 0 ? void 0 : serviceRoute.rateLimitPerReplica) === null || _a === void 0 ? void 0 : _a.concurrent),
32
+ rateLimit_1.perMinuteRateLimiter((_b = serviceRoute === null || serviceRoute === void 0 ? void 0 : serviceRoute.rateLimitPerReplica) === null || _b === void 0 ? void 0 : _b.perMinute, globalLimiter),
33
+ tracingMiddlewares_1.traceUserLandRemainingPipelineMiddleware(),
34
+ ...middlewares,
35
+ ];
36
+ return compose_1.compose(pipeline);
37
+ };
38
+ exports.createPublicHttpRoute = (clientsConfig, serviceHandler, serviceRoute, routeId, globalLimiter) => {
39
+ var _a, _b;
40
+ const { implementation, options } = clientsConfig;
41
+ const middlewares = toArray_1.toArray(serviceHandler);
42
+ const pipeline = [
43
+ tracingMiddlewares_1.nameSpanOperationMiddleware('public-handler', routeId),
44
+ context_1.createPubContextMiddleware(routeId, serviceRoute),
45
+ cancellationToken_1.cancellationToken,
46
+ requestStats_1.trackIncomingRequestStats,
47
+ vary_1.vary,
48
+ authTokens_1.authTokens,
49
+ clients_1.clients(implementation, options),
50
+ ...(serviceRoute.settingsType === 'workspace' || serviceRoute.settingsType === 'userAndWorkspace' ? [settings_1.getServiceSettings()] : []),
51
+ setCookie_1.removeSetCookie,
52
+ timings_1.timings,
53
+ rateLimit_1.concurrentRateLimiter((_a = serviceRoute === null || serviceRoute === void 0 ? void 0 : serviceRoute.rateLimitPerReplica) === null || _a === void 0 ? void 0 : _a.concurrent),
54
+ rateLimit_1.perMinuteRateLimiter((_b = serviceRoute === null || serviceRoute === void 0 ? void 0 : serviceRoute.rateLimitPerReplica) === null || _b === void 0 ? void 0 : _b.perMinute, globalLimiter),
55
+ tracingMiddlewares_1.traceUserLandRemainingPipelineMiddleware(),
56
+ ...middlewares,
57
+ ];
58
+ return compose_1.compose(pipeline);
59
+ };
@@ -0,0 +1,3 @@
1
+ import { IOClients } from '../../../../../clients/IOClients';
2
+ import { ParamsContext, RecorderState, ServiceContext } from '../../typings';
3
+ export declare function authTokens<T extends IOClients, U extends RecorderState, V extends ParamsContext>(ctx: ServiceContext<T, U, V>, next: () => Promise<void>): Promise<void>;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authTokens = void 0;
3
4
  const JANUS_ENV_COOKIE_KEY = 'vtex-commerce-env';
4
5
  const VTEX_ID_COOKIE_KEY = 'VtexIdclientAutCookie';
5
6
  async function authTokens(ctx, next) {
@@ -0,0 +1,3 @@
1
+ import { IOClients } from '../../../../../clients/IOClients';
2
+ import { ParamsContext, RecorderState, ServiceContext } from '../../typings';
3
+ export declare function cancellationToken<T extends IOClients, U extends RecorderState, V extends ParamsContext>(ctx: ServiceContext<T, U, V>, next: () => Promise<void>): Promise<void>;
@@ -3,9 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.cancellationToken = void 0;
6
7
  const axios_1 = __importDefault(require("axios"));
8
+ const constants_1 = require("../../../../../constants");
7
9
  async function cancellationToken(ctx, next) {
8
- if (ctx.method.toUpperCase() === ('GET' || 'OPTIONS' || 'HEAD')) {
10
+ if (constants_1.cancellableMethods.has(ctx.method.toUpperCase())) {
9
11
  ctx.vtex.cancellation = {
10
12
  cancelable: true,
11
13
  cancelled: false,
@@ -0,0 +1,4 @@
1
+ import { ClientsImplementation, IOClients } from '../../../../../clients/IOClients';
2
+ import { InstanceOptions } from '../../../../../HttpClient';
3
+ import { ParamsContext, RecorderState, ServiceContext } from '../../typings';
4
+ export declare function clients<T extends IOClients, U extends RecorderState, V extends ParamsContext>(ClientsImpl: ClientsImplementation<T>, clientOptions: Record<string, InstanceOptions>): (ctx: ServiceContext<T, U, V>, next: () => Promise<void>) => Promise<void>;