@vtex/api 6.48.1-beta → 6.48.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/gen/manifest.schema +5 -3
- package/lib/HttpClient/GraphQLClient.d.ts +3 -2
- package/lib/HttpClient/GraphQLClient.js +5 -1
- package/lib/HttpClient/HttpClient.d.ts +9 -7
- package/lib/HttpClient/HttpClient.js +70 -27
- package/lib/HttpClient/agents.d.ts +6 -0
- package/lib/HttpClient/agents.js +43 -0
- package/lib/HttpClient/index.d.ts +1 -7
- package/lib/HttpClient/index.js +22 -16
- package/lib/HttpClient/middlewares/cache.d.ts +9 -3
- package/lib/HttpClient/middlewares/cache.js +130 -35
- package/lib/HttpClient/middlewares/cancellationToken.d.ts +2 -2
- package/lib/HttpClient/middlewares/cancellationToken.js +5 -2
- package/lib/HttpClient/middlewares/inflight.d.ts +1 -1
- package/lib/HttpClient/middlewares/inflight.js +7 -3
- package/lib/HttpClient/middlewares/memoization.d.ts +1 -1
- package/lib/HttpClient/middlewares/memoization.js +13 -4
- package/lib/HttpClient/middlewares/metrics.js +25 -38
- package/lib/HttpClient/middlewares/notFound.d.ts +1 -1
- package/lib/HttpClient/middlewares/notFound.js +5 -2
- package/lib/HttpClient/middlewares/recorder.d.ts +1 -1
- package/lib/HttpClient/middlewares/recorder.js +21 -12
- package/lib/HttpClient/middlewares/request/HttpAgentSingleton.d.ts +11 -0
- package/lib/HttpClient/middlewares/request/HttpAgentSingleton.js +31 -0
- package/lib/HttpClient/middlewares/request/index.d.ts +18 -0
- package/lib/HttpClient/middlewares/request/index.js +88 -0
- package/lib/HttpClient/middlewares/request/setupAxios/index.d.ts +1 -0
- package/lib/HttpClient/middlewares/request/setupAxios/index.js +22 -0
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/exponentialBackoff.d.ts +2 -0
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/exponentialBackoff.js +55 -0
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/index.d.ts +2 -0
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/index.js +8 -0
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/index.d.ts +8 -0
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/index.js +56 -0
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/spanSetup.d.ts +4 -0
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/spanSetup.js +32 -0
- package/lib/HttpClient/middlewares/tracing.d.ts +15 -0
- package/lib/HttpClient/middlewares/tracing.js +62 -0
- package/lib/HttpClient/typings.d.ts +46 -12
- package/lib/HttpClient/typings.js +1 -0
- package/lib/caches/DiskCache.d.ts +1 -1
- package/lib/caches/DiskCache.js +3 -2
- package/lib/caches/LRUCache.d.ts +3 -3
- package/lib/caches/LRUCache.js +6 -1
- package/lib/caches/LRUDiskCache.d.ts +2 -2
- package/lib/caches/LRUDiskCache.js +8 -3
- package/lib/caches/MultilayeredCache.d.ts +2 -2
- package/lib/caches/MultilayeredCache.js +8 -7
- package/lib/caches/index.js +20 -7
- package/lib/caches/typings.d.ts +5 -5
- package/lib/clients/IOClient.d.ts +13 -0
- package/lib/clients/IOClient.js +20 -0
- package/lib/clients/IOClients.d.ts +29 -25
- package/lib/clients/IOClients.js +36 -28
- package/lib/{HttpClient → clients}/IOGraphQLClient.d.ts +4 -4
- package/lib/{HttpClient → clients}/IOGraphQLClient.js +3 -2
- package/lib/{HttpClient → clients/apps}/AppClient.d.ts +3 -3
- package/lib/{HttpClient → clients/apps}/AppClient.js +11 -5
- package/lib/{HttpClient → clients/apps}/AppGraphQLClient.d.ts +3 -3
- package/lib/{HttpClient → clients/apps}/AppGraphQLClient.js +11 -5
- package/lib/clients/apps/Billing.d.ts +12 -0
- package/lib/clients/{Billing.js → apps/Billing.js} +9 -3
- package/lib/clients/{Builder.d.ts → apps/Builder.d.ts} +12 -11
- package/lib/clients/{Builder.js → apps/Builder.js} +51 -23
- package/lib/clients/apps/MessagesGraphQL.d.ts +61 -0
- package/lib/clients/apps/MessagesGraphQL.js +122 -0
- package/lib/clients/{Settings.d.ts → apps/Settings.d.ts} +5 -4
- package/lib/clients/apps/Settings.js +39 -0
- package/lib/clients/apps/catalogGraphQL/brand.d.ts +13 -0
- package/lib/clients/apps/catalogGraphQL/brand.js +19 -0
- package/lib/clients/apps/catalogGraphQL/category.d.ts +11 -0
- package/lib/clients/apps/catalogGraphQL/category.js +17 -0
- package/lib/clients/apps/catalogGraphQL/index.d.ts +22 -0
- package/lib/clients/apps/catalogGraphQL/index.js +89 -0
- package/lib/clients/apps/catalogGraphQL/product.d.ts +25 -0
- package/lib/clients/apps/catalogGraphQL/product.js +31 -0
- package/lib/clients/apps/catalogGraphQL/sku.d.ts +26 -0
- package/lib/clients/apps/catalogGraphQL/sku.js +31 -0
- package/lib/clients/apps/index.d.ts +7 -0
- package/lib/clients/apps/index.js +23 -0
- package/lib/{HttpClient → clients/external}/ExternalClient.d.ts +3 -3
- package/lib/{HttpClient → clients/external}/ExternalClient.js +10 -2
- package/lib/clients/external/ID.d.ts +23 -0
- package/lib/clients/external/ID.js +61 -0
- package/lib/clients/external/Masterdata.d.ts +94 -0
- package/lib/clients/external/Masterdata.js +225 -0
- package/lib/clients/external/PaymentProvider.d.ts +31 -0
- package/lib/clients/external/PaymentProvider.js +43 -0
- package/lib/clients/external/index.d.ts +4 -0
- package/lib/clients/external/index.js +20 -0
- package/lib/clients/index.d.ts +9 -21
- package/lib/clients/index.js +27 -24
- package/lib/clients/infra/Apps.d.ts +93 -0
- package/lib/clients/infra/Apps.js +511 -0
- package/lib/clients/infra/Assets.d.ts +35 -0
- package/lib/clients/infra/Assets.js +166 -0
- package/lib/clients/infra/BillingMetrics.d.ts +13 -0
- package/lib/clients/infra/BillingMetrics.js +16 -0
- package/lib/clients/infra/Events.d.ts +12 -0
- package/lib/clients/infra/Events.js +34 -0
- package/lib/clients/infra/Housekeeper.d.ts +10 -0
- package/lib/clients/infra/Housekeeper.js +31 -0
- package/lib/{HttpClient → clients/infra}/InfraClient.d.ts +3 -3
- package/lib/{HttpClient → clients/infra}/InfraClient.js +10 -4
- package/lib/clients/infra/Registry.d.ts +65 -0
- package/lib/clients/infra/Registry.js +209 -0
- package/lib/clients/infra/Router.d.ts +34 -0
- package/lib/clients/infra/Router.js +82 -0
- package/lib/clients/infra/Sphinx.d.ts +13 -0
- package/lib/clients/infra/Sphinx.js +30 -0
- package/lib/clients/infra/VBase.d.ts +61 -0
- package/lib/clients/infra/VBase.js +197 -0
- package/lib/clients/infra/Workspaces.d.ts +18 -0
- package/lib/clients/infra/Workspaces.js +66 -0
- package/lib/clients/infra/index.d.ts +11 -0
- package/lib/clients/infra/index.js +27 -0
- package/lib/{HttpClient → clients/janus}/JanusClient.d.ts +4 -4
- package/lib/{HttpClient → clients/janus}/JanusClient.js +8 -3
- package/lib/clients/janus/LicenseManager.d.ts +7 -0
- package/lib/clients/janus/LicenseManager.js +59 -0
- package/lib/clients/{Segment.d.ts → janus/Segment.d.ts} +7 -11
- package/lib/clients/janus/Segment.js +89 -0
- package/lib/clients/{Session.d.ts → janus/Session.d.ts} +4 -4
- package/lib/clients/{Session.js → janus/Session.js} +25 -13
- package/lib/clients/{Tenant.d.ts → janus/Tenant.d.ts} +7 -8
- package/lib/clients/janus/Tenant.js +29 -0
- package/lib/clients/janus/index.d.ts +5 -0
- package/lib/clients/janus/index.js +21 -0
- package/lib/constants.d.ts +50 -2
- package/lib/constants.js +55 -1
- package/lib/errors/AuthenticationError.js +1 -0
- package/lib/errors/ForbiddenError.js +1 -0
- package/lib/errors/NotFoundError.js +1 -0
- package/lib/errors/RequestCancelledError.js +1 -0
- package/lib/errors/ResolverError.d.ts +1 -1
- package/lib/errors/ResolverError.js +4 -3
- package/lib/errors/ResolverWarning.d.ts +1 -1
- package/lib/errors/ResolverWarning.js +3 -2
- package/lib/errors/TooManyRequestsError.js +1 -0
- package/lib/errors/UserInputError.js +1 -0
- package/lib/errors/index.js +22 -11
- package/lib/index.d.ts +9 -7
- package/lib/index.js +31 -16
- package/lib/metrics/MetricsAccumulator.d.ts +3 -20
- package/lib/metrics/MetricsAccumulator.js +44 -27
- package/lib/responses.d.ts +5 -46
- package/lib/service/index.d.ts +2 -0
- package/lib/service/index.js +35 -0
- package/lib/service/loaders.d.ts +8 -0
- package/lib/service/loaders.js +57 -0
- package/lib/service/logger/console.d.ts +10 -0
- package/lib/service/logger/console.js +40 -0
- package/lib/service/logger/index.d.ts +2 -28
- package/lib/service/logger/index.js +16 -68
- package/lib/service/logger/logger.d.ts +29 -0
- package/lib/service/logger/logger.js +62 -0
- package/lib/service/logger/metricsLogger.d.ts +40 -0
- package/lib/service/logger/metricsLogger.js +150 -0
- package/lib/service/master.d.ts +2 -0
- package/lib/service/master.js +89 -0
- package/lib/service/metrics/requestMetricsMiddleware.d.ts +2 -0
- package/lib/service/metrics/requestMetricsMiddleware.js +46 -0
- package/lib/service/tracing/TracerSingleton.d.ts +7 -0
- package/lib/service/tracing/TracerSingleton.js +49 -0
- package/lib/service/tracing/metrics/MetricNames.d.ts +60 -0
- package/lib/service/tracing/metrics/MetricNames.js +45 -0
- package/lib/service/tracing/metrics/instruments.d.ts +9 -0
- package/lib/service/tracing/metrics/instruments.js +19 -0
- package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.d.ts +9 -0
- package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.js +26 -0
- package/lib/service/tracing/tracingMiddlewares.d.ts +5 -0
- package/lib/service/tracing/tracingMiddlewares.js +117 -0
- package/lib/service/worker/index.d.ts +11 -0
- package/lib/service/worker/index.js +197 -0
- package/lib/service/worker/listeners.d.ts +3 -0
- package/lib/{utils/unhandled.js → service/worker/listeners.js} +12 -16
- package/lib/service/{Service.d.ts → worker/runtime/Service.d.ts} +5 -5
- package/lib/service/{Service.js → worker/runtime/Service.js} +3 -1
- package/lib/service/worker/runtime/builtIn/handlers.d.ts +4 -0
- package/lib/service/worker/runtime/builtIn/handlers.js +34 -0
- package/lib/service/worker/runtime/builtIn/middlewares.d.ts +4 -0
- package/lib/service/worker/runtime/builtIn/middlewares.js +43 -0
- package/lib/service/worker/runtime/events/index.d.ts +4 -0
- package/lib/service/worker/runtime/events/index.js +48 -0
- package/lib/service/worker/runtime/events/middlewares/body.d.ts +3 -0
- package/lib/service/worker/runtime/events/middlewares/body.js +26 -0
- package/lib/service/worker/runtime/events/middlewares/context.d.ts +3 -0
- package/lib/service/worker/runtime/events/middlewares/context.js +23 -0
- package/lib/service/worker/runtime/events/router.d.ts +2 -0
- package/lib/service/worker/runtime/events/router.js +29 -0
- package/lib/service/worker/runtime/graphql/index.d.ts +6 -0
- package/lib/service/worker/runtime/graphql/index.js +29 -0
- package/lib/service/worker/runtime/graphql/middlewares/context.d.ts +2 -0
- package/lib/service/worker/runtime/graphql/middlewares/context.js +17 -0
- package/lib/service/worker/runtime/graphql/middlewares/error.js +97 -0
- package/lib/service/worker/runtime/graphql/middlewares/query.d.ts +3 -0
- package/lib/service/worker/runtime/graphql/middlewares/query.js +54 -0
- package/lib/service/worker/runtime/graphql/middlewares/response.js +39 -0
- package/lib/service/worker/runtime/graphql/middlewares/run.d.ts +2 -0
- package/lib/service/worker/runtime/graphql/middlewares/run.js +21 -0
- package/lib/service/worker/runtime/graphql/middlewares/updateSchema.d.ts +5 -0
- package/lib/service/worker/runtime/graphql/middlewares/updateSchema.js +30 -0
- package/lib/service/worker/runtime/graphql/middlewares/upload.d.ts +4 -0
- package/lib/service/{graphql → worker/runtime/graphql}/middlewares/upload.js +2 -1
- package/lib/service/worker/runtime/graphql/schema/index.d.ts +7 -0
- package/lib/service/worker/runtime/graphql/schema/index.js +33 -0
- package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.d.ts +6 -0
- package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.js +81 -0
- package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/Auth.d.ts +1 -0
- package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/Auth.js +17 -10
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/CacheControl.d.ts +7 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/CacheControl.js +38 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.d.ts +11 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.js +62 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Metric.d.ts +7 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Metric.js +41 -0
- package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/Sanitize.d.ts +1 -0
- package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/Sanitize.js +7 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.d.ts +6 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.js +35 -0
- package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/SmartCacheDirective.d.ts +1 -0
- package/lib/service/{graphql → worker/runtime/graphql}/schema/schemaDirectives/SmartCacheDirective.js +9 -3
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.d.ts +7 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.js +40 -0
- package/lib/service/{graphql/schema/schemaDirectives/Translatable.d.ts → worker/runtime/graphql/schema/schemaDirectives/TranslateTo.d.ts} +2 -1
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslateTo.js +34 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.d.ts +22 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.js +37 -0
- package/lib/service/worker/runtime/graphql/schema/typeDefs/index.d.ts +8 -0
- package/lib/service/worker/runtime/graphql/schema/typeDefs/index.js +14 -0
- package/lib/service/{graphql → worker/runtime/graphql}/schema/typeDefs/ioUpload.js +1 -0
- package/lib/service/{graphql → worker/runtime/graphql}/schema/typeDefs/sanitizedString.js +8 -3
- package/lib/service/worker/runtime/graphql/typings.d.ts +31 -0
- package/lib/service/worker/runtime/graphql/utils/cacheControl.d.ts +2 -0
- package/lib/service/worker/runtime/graphql/utils/cacheControl.js +34 -0
- package/lib/service/worker/runtime/graphql/utils/error.d.ts +2 -0
- package/lib/service/worker/runtime/graphql/utils/error.js +78 -0
- package/lib/service/worker/runtime/graphql/utils/pathname.js +9 -0
- package/lib/service/worker/runtime/graphql/utils/translations.d.ts +14 -0
- package/lib/service/worker/runtime/graphql/utils/translations.js +42 -0
- package/lib/service/worker/runtime/http/index.d.ts +5 -0
- package/lib/service/worker/runtime/http/index.js +61 -0
- package/lib/service/worker/runtime/http/middlewares/authTokens.d.ts +3 -0
- package/lib/service/{http → worker/runtime/http}/middlewares/authTokens.js +1 -0
- package/lib/service/worker/runtime/http/middlewares/cancellationToken.d.ts +3 -0
- package/lib/service/{http → worker/runtime/http}/middlewares/cancellationToken.js +3 -1
- package/lib/service/worker/runtime/http/middlewares/clients.d.ts +4 -0
- package/lib/service/{http → worker/runtime/http}/middlewares/clients.js +1 -0
- package/lib/service/worker/runtime/http/middlewares/context.d.ts +4 -0
- package/lib/service/worker/runtime/http/middlewares/context.js +39 -0
- package/lib/service/worker/runtime/http/middlewares/error.d.ts +2 -0
- package/lib/service/{http → worker/runtime/http}/middlewares/error.js +29 -16
- package/lib/service/worker/runtime/http/middlewares/rateLimit.d.ts +6 -0
- package/lib/service/worker/runtime/http/middlewares/rateLimit.js +43 -0
- package/lib/service/{http → worker/runtime/http}/middlewares/requestStats.d.ts +3 -3
- package/lib/service/{http → worker/runtime/http}/middlewares/requestStats.js +1 -0
- package/lib/service/worker/runtime/http/middlewares/setCookie.d.ts +3 -0
- package/lib/service/{http → worker/runtime/http}/middlewares/setCookie.js +6 -5
- package/lib/service/worker/runtime/http/middlewares/settings.d.ts +9 -0
- package/lib/service/worker/runtime/http/middlewares/settings.js +49 -0
- package/lib/service/worker/runtime/http/middlewares/timings.d.ts +3 -0
- package/lib/service/{http → worker/runtime/http}/middlewares/timings.js +25 -11
- package/lib/service/worker/runtime/http/middlewares/vary.d.ts +3 -0
- package/lib/service/{http → worker/runtime/http}/middlewares/vary.js +4 -3
- package/lib/service/worker/runtime/http/router.d.ts +2 -0
- package/lib/service/worker/runtime/http/router.js +25 -0
- package/lib/service/worker/runtime/http/routes.d.ts +19 -0
- package/lib/service/worker/runtime/http/routes.js +16 -0
- package/lib/service/worker/runtime/method.d.ts +9 -0
- package/lib/service/{method.js → worker/runtime/method.js} +2 -1
- package/lib/service/worker/runtime/statusTrack.d.ts +14 -0
- package/lib/service/worker/runtime/statusTrack.js +43 -0
- package/lib/service/worker/runtime/typings.d.ts +173 -0
- package/lib/service/worker/runtime/utils/compose.d.ts +5 -0
- package/lib/service/worker/runtime/utils/compose.js +14 -0
- package/lib/service/worker/runtime/utils/context.d.ts +5 -0
- package/lib/service/worker/runtime/utils/context.js +42 -0
- package/lib/service/worker/runtime/utils/diff.d.ts +12 -0
- package/lib/service/worker/runtime/utils/diff.js +22 -0
- package/lib/service/worker/runtime/utils/recorder.d.ts +8 -0
- package/lib/service/worker/runtime/utils/recorder.js +38 -0
- package/lib/service/worker/runtime/utils/toArray.js +5 -0
- package/lib/service/worker/runtime/utils/tokenBucket.d.ts +2 -0
- package/lib/service/worker/runtime/utils/tokenBucket.js +17 -0
- package/lib/tracing/LogEvents.d.ts +31 -0
- package/lib/{service/graphql/utils/array.js → tracing/LogEvents.js} +1 -1
- package/lib/tracing/LogFields.d.ts +66 -0
- package/lib/tracing/LogFields.js +3 -0
- package/lib/tracing/Tags.d.ts +81 -0
- package/lib/tracing/Tags.js +8 -0
- package/lib/tracing/UserLandTracer.d.ts +27 -0
- package/lib/tracing/UserLandTracer.js +58 -0
- package/lib/tracing/errorReporting/ErrorReport.d.ts +31 -0
- package/lib/tracing/errorReporting/ErrorReport.js +71 -0
- package/lib/tracing/index.d.ts +9 -0
- package/lib/tracing/index.js +20 -0
- package/lib/tracing/spanReference/SpanReferenceTypes.d.ts +4 -0
- package/lib/tracing/spanReference/SpanReferenceTypes.js +8 -0
- package/lib/tracing/spanReference/createSpanReference.d.ts +3 -0
- package/lib/tracing/spanReference/createSpanReference.js +9 -0
- package/lib/tracing/utils.d.ts +13 -0
- package/lib/tracing/utils.js +42 -0
- package/lib/utils/MineWinsConflictsResolver.d.ts +7 -5
- package/lib/utils/MineWinsConflictsResolver.js +40 -22
- package/lib/utils/app.d.ts +3 -1
- package/lib/utils/app.js +40 -21
- package/lib/utils/appsStaleIfError.d.ts +2 -1
- package/lib/utils/appsStaleIfError.js +33 -12
- package/lib/utils/billingOptions.d.ts +36 -3
- package/lib/utils/billingOptions.js +9 -3
- package/lib/utils/binding.d.ts +3 -3
- package/lib/utils/binding.js +5 -2
- package/lib/utils/cancel.d.ts +2 -2
- package/lib/utils/cancel.js +3 -1
- package/lib/utils/conflicts.mock.d.ts +17 -0
- package/lib/utils/conflicts.mock.js +28 -0
- package/lib/utils/domain.js +2 -1
- package/lib/utils/error.js +6 -4
- package/lib/utils/index.js +23 -12
- package/lib/utils/json.js +1 -0
- package/lib/utils/log.d.ts +1 -3
- package/lib/utils/log.js +6 -4
- package/lib/utils/message.js +11 -4
- package/lib/utils/renameBy.js +3 -1
- package/lib/utils/retry.js +10 -7
- package/lib/utils/status.js +3 -1
- package/lib/utils/tenant.d.ts +3 -3
- package/lib/utils/tenant.js +5 -2
- package/lib/utils/throwOnGraphQLErrors.js +1 -0
- package/lib/utils/time.d.ts +7 -7
- package/lib/utils/time.js +29 -12
- package/package.json +3 -3
- package/lib/HttpClient/IOClient.d.ts +0 -13
- package/lib/HttpClient/IOClient.js +0 -14
- package/lib/HttpClient/factories/index.d.ts +0 -8
- package/lib/HttpClient/factories/index.js +0 -31
- package/lib/HttpClient/middlewares/request.d.ts +0 -10
- package/lib/HttpClient/middlewares/request.js +0 -87
- package/lib/IODataSource.d.ts +0 -27
- package/lib/IODataSource.js +0 -46
- package/lib/clients/Apps.d.ts +0 -84
- package/lib/clients/Apps.js +0 -326
- package/lib/clients/Assets.d.ts +0 -21
- package/lib/clients/Assets.js +0 -110
- package/lib/clients/Billing.d.ts +0 -11
- package/lib/clients/BillingMetrics.d.ts +0 -12
- package/lib/clients/BillingMetrics.js +0 -10
- package/lib/clients/Events.d.ts +0 -6
- package/lib/clients/Events.js +0 -19
- package/lib/clients/Housekeeper.d.ts +0 -11
- package/lib/clients/Housekeeper.js +0 -24
- package/lib/clients/ID.d.ts +0 -22
- package/lib/clients/ID.js +0 -48
- package/lib/clients/LicenseManager.d.ts +0 -6
- package/lib/clients/LicenseManager.js +0 -43
- package/lib/clients/Logger.d.ts +0 -27
- package/lib/clients/Logger.js +0 -32
- package/lib/clients/Messages.d.ts +0 -18
- package/lib/clients/Messages.js +0 -20
- package/lib/clients/MessagesGraphQL.d.ts +0 -63
- package/lib/clients/MessagesGraphQL.js +0 -50
- package/lib/clients/Metadata.d.ts +0 -25
- package/lib/clients/Metadata.js +0 -53
- package/lib/clients/Registry.d.ts +0 -61
- package/lib/clients/Registry.js +0 -147
- package/lib/clients/Router.d.ts +0 -33
- package/lib/clients/Router.js +0 -50
- package/lib/clients/Segment.js +0 -69
- package/lib/clients/Settings.js +0 -44
- package/lib/clients/Sphinx.d.ts +0 -12
- package/lib/clients/Sphinx.js +0 -19
- package/lib/clients/Tenant.js +0 -13
- package/lib/clients/VBase.d.ts +0 -57
- package/lib/clients/VBase.js +0 -116
- package/lib/clients/Workspaces.d.ts +0 -17
- package/lib/clients/Workspaces.js +0 -38
- package/lib/service/Runtime.d.ts +0 -18
- package/lib/service/Runtime.js +0 -57
- package/lib/service/events/index.d.ts +0 -3
- package/lib/service/events/index.js +0 -21
- package/lib/service/graphql/index.d.ts +0 -7
- package/lib/service/graphql/index.js +0 -33
- package/lib/service/graphql/middlewares/error.js +0 -107
- package/lib/service/graphql/middlewares/formatters.d.ts +0 -2
- package/lib/service/graphql/middlewares/formatters.js +0 -64
- package/lib/service/graphql/middlewares/query.d.ts +0 -2
- package/lib/service/graphql/middlewares/query.js +0 -32
- package/lib/service/graphql/middlewares/response.js +0 -36
- package/lib/service/graphql/middlewares/run.d.ts +0 -4
- package/lib/service/graphql/middlewares/run.js +0 -55
- package/lib/service/graphql/middlewares/schema.d.ts +0 -2
- package/lib/service/graphql/middlewares/schema.js +0 -8
- package/lib/service/graphql/middlewares/timings.d.ts +0 -2
- package/lib/service/graphql/middlewares/timings.js +0 -10
- package/lib/service/graphql/middlewares/upload.d.ts +0 -7
- package/lib/service/graphql/schema/index.d.ts +0 -3
- package/lib/service/graphql/schema/index.js +0 -66
- package/lib/service/graphql/schema/messagesLoader.d.ts +0 -4
- package/lib/service/graphql/schema/messagesLoader.js +0 -41
- package/lib/service/graphql/schema/messagesLoaderV2.d.ts +0 -5
- package/lib/service/graphql/schema/messagesLoaderV2.js +0 -44
- package/lib/service/graphql/schema/schemaDirectives/Translatable.js +0 -54
- package/lib/service/graphql/schema/schemaDirectives/TranslatableV2.d.ts +0 -13
- package/lib/service/graphql/schema/schemaDirectives/TranslatableV2.js +0 -67
- package/lib/service/graphql/schema/schemaDirectives/index.d.ts +0 -13
- package/lib/service/graphql/schema/schemaDirectives/index.js +0 -17
- package/lib/service/graphql/schema/typeDefs/index.d.ts +0 -16
- package/lib/service/graphql/schema/typeDefs/index.js +0 -21
- package/lib/service/graphql/schema/typeDefs/ioMessage.d.ts +0 -8
- package/lib/service/graphql/schema/typeDefs/ioMessage.js +0 -33
- package/lib/service/graphql/typings.d.ts +0 -21
- package/lib/service/graphql/utils/cacheControl.d.ts +0 -6
- package/lib/service/graphql/utils/cacheControl.js +0 -38
- package/lib/service/graphql/utils/maxAgeEnum.d.ts +0 -6
- package/lib/service/graphql/utils/maxAgeEnum.js +0 -17
- package/lib/service/graphql/utils/pathname.js +0 -7
- package/lib/service/http/index.d.ts +0 -3
- package/lib/service/http/index.js +0 -18
- package/lib/service/http/middlewares/authTokens.d.ts +0 -3
- package/lib/service/http/middlewares/cancellationToken.d.ts +0 -3
- package/lib/service/http/middlewares/clients.d.ts +0 -4
- package/lib/service/http/middlewares/error.d.ts +0 -3
- package/lib/service/http/middlewares/setCookie.d.ts +0 -3
- package/lib/service/http/middlewares/timings.d.ts +0 -3
- package/lib/service/http/middlewares/vary.d.ts +0 -3
- package/lib/service/method.d.ts +0 -9
- package/lib/service/typings.d.ts +0 -139
- package/lib/service/utils/compose.d.ts +0 -4
- package/lib/service/utils/compose.js +0 -11
- package/lib/utils/MineWinsConflictsResolver.test.d.ts +0 -1
- package/lib/utils/MineWinsConflictsResolver.test.js +0 -134
- package/lib/utils/unhandled.d.ts +0 -1
- /package/lib/service/{graphql → worker/runtime/graphql}/middlewares/error.d.ts +0 -0
- /package/lib/service/{graphql → worker/runtime/graphql}/middlewares/response.d.ts +0 -0
- /package/lib/service/{graphql → worker/runtime/graphql}/schema/typeDefs/ioUpload.d.ts +0 -0
- /package/lib/service/{graphql → worker/runtime/graphql}/schema/typeDefs/sanitizedString.d.ts +0 -0
- /package/lib/service/{graphql → worker/runtime/graphql}/typings.js +0 -0
- /package/lib/service/{graphql → worker/runtime/graphql}/utils/pathname.d.ts +0 -0
- /package/lib/service/{typings.js → worker/runtime/typings.js} +0 -0
- /package/lib/service/{graphql/utils/array.d.ts → worker/runtime/utils/toArray.d.ts} +0 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserlandTags = exports.OpentracingTags = void 0;
|
|
4
|
+
const opentracing_1 = require("opentracing");
|
|
5
|
+
Object.defineProperty(exports, "OpentracingTags", { enumerable: true, get: function () { return opentracing_1.Tags; } });
|
|
6
|
+
exports.UserlandTags = {
|
|
7
|
+
...opentracing_1.Tags,
|
|
8
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Span, SpanContext, SpanOptions, Tracer } from 'opentracing';
|
|
2
|
+
export interface IUserLandTracer {
|
|
3
|
+
traceId?: string;
|
|
4
|
+
isTraceSampled: boolean;
|
|
5
|
+
startSpan: Tracer['startSpan'];
|
|
6
|
+
inject: Tracer['inject'];
|
|
7
|
+
fallbackSpanContext: () => SpanContext | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare const createTracingContextFromCarrier: (newSpanName: string, carrier: Record<string, any>) => {
|
|
10
|
+
span: Span;
|
|
11
|
+
tracer: IUserLandTracer;
|
|
12
|
+
};
|
|
13
|
+
export declare class UserLandTracer implements IUserLandTracer {
|
|
14
|
+
private tracer;
|
|
15
|
+
private fallbackSpan;
|
|
16
|
+
private fallbackSpanLock;
|
|
17
|
+
private _isSampled;
|
|
18
|
+
private _traceId?;
|
|
19
|
+
constructor(tracer: Tracer, fallbackSpan?: Span);
|
|
20
|
+
get traceId(): string | undefined;
|
|
21
|
+
get isTraceSampled(): boolean;
|
|
22
|
+
lockFallbackSpan(): void;
|
|
23
|
+
setFallbackSpan(newSpan?: Span): void;
|
|
24
|
+
startSpan(name: string, options?: SpanOptions): Span;
|
|
25
|
+
inject(spanContext: SpanContext | Span, format: string, carrier: any): void;
|
|
26
|
+
fallbackSpanContext(): SpanContext | undefined;
|
|
27
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserLandTracer = exports.createTracingContextFromCarrier = void 0;
|
|
4
|
+
const opentracing_1 = require("opentracing");
|
|
5
|
+
const TracerSingleton_1 = require("../service/tracing/TracerSingleton");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const createTracingContextFromCarrier = (newSpanName, carrier) => {
|
|
8
|
+
const tracer = TracerSingleton_1.TracerSingleton.getTracer();
|
|
9
|
+
const rootSpan = tracer.extract(opentracing_1.FORMAT_HTTP_HEADERS, carrier);
|
|
10
|
+
if (rootSpan == null) {
|
|
11
|
+
throw new Error('Missing span context data on carrier');
|
|
12
|
+
}
|
|
13
|
+
const span = tracer.startSpan(newSpanName, { childOf: rootSpan });
|
|
14
|
+
const userlandTracer = new UserLandTracer(tracer, span);
|
|
15
|
+
userlandTracer.lockFallbackSpan();
|
|
16
|
+
return { span, tracer: userlandTracer };
|
|
17
|
+
};
|
|
18
|
+
exports.createTracingContextFromCarrier = createTracingContextFromCarrier;
|
|
19
|
+
class UserLandTracer {
|
|
20
|
+
constructor(tracer, fallbackSpan) {
|
|
21
|
+
this.tracer = tracer;
|
|
22
|
+
this.fallbackSpan = fallbackSpan;
|
|
23
|
+
this.fallbackSpanLock = false;
|
|
24
|
+
const { traceId, isSampled } = (0, utils_1.getTraceInfo)(fallbackSpan);
|
|
25
|
+
this._traceId = traceId;
|
|
26
|
+
this._isSampled = isSampled;
|
|
27
|
+
}
|
|
28
|
+
get traceId() {
|
|
29
|
+
return this._traceId;
|
|
30
|
+
}
|
|
31
|
+
get isTraceSampled() {
|
|
32
|
+
return this._isSampled;
|
|
33
|
+
}
|
|
34
|
+
lockFallbackSpan() {
|
|
35
|
+
this.fallbackSpanLock = true;
|
|
36
|
+
}
|
|
37
|
+
setFallbackSpan(newSpan) {
|
|
38
|
+
if (this.fallbackSpanLock) {
|
|
39
|
+
throw new Error(`FallbackSpan is locked, can't change it`);
|
|
40
|
+
}
|
|
41
|
+
this.fallbackSpan = newSpan;
|
|
42
|
+
}
|
|
43
|
+
startSpan(name, options) {
|
|
44
|
+
var _a;
|
|
45
|
+
if (options && (options.childOf || ((_a = options.references) === null || _a === void 0 ? void 0 : _a.length))) {
|
|
46
|
+
return this.tracer.startSpan(name, options);
|
|
47
|
+
}
|
|
48
|
+
return this.tracer.startSpan(name, { ...options, childOf: this.fallbackSpan });
|
|
49
|
+
}
|
|
50
|
+
inject(spanContext, format, carrier) {
|
|
51
|
+
return this.tracer.inject(spanContext, format, carrier);
|
|
52
|
+
}
|
|
53
|
+
fallbackSpanContext() {
|
|
54
|
+
var _a;
|
|
55
|
+
return (_a = this.fallbackSpan) === null || _a === void 0 ? void 0 : _a.context();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.UserLandTracer = UserLandTracer;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ErrorReportBase, ErrorReportCreateArgs } from '@vtex/node-error-report';
|
|
2
|
+
import { Span } from 'opentracing';
|
|
3
|
+
import { IOContext } from '../../service/worker/runtime/typings';
|
|
4
|
+
export declare class ErrorReport extends ErrorReportBase {
|
|
5
|
+
/**
|
|
6
|
+
* Create a new ErrorReport wrapping args.originalError
|
|
7
|
+
*
|
|
8
|
+
* In case the args.originalError argument is already an ErrorReport
|
|
9
|
+
* instance, then ErrorReport.create just returns it. If it's not,
|
|
10
|
+
* it returns a new ErrorReport wrapping the error. This way you can
|
|
11
|
+
* use ErrorReport.create on a catchAll, e.g.:
|
|
12
|
+
*
|
|
13
|
+
* ```
|
|
14
|
+
* try {
|
|
15
|
+
* await next()
|
|
16
|
+
* } catch(err) {
|
|
17
|
+
* ErrorReport.create({ originalError: err }).injectOnSpan(span)
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* More docs on the ErrorReport available on: https://github.com/vtex/node-error-report
|
|
22
|
+
*/
|
|
23
|
+
static create(args: ErrorReportCreateArgs): ErrorReport;
|
|
24
|
+
/**
|
|
25
|
+
* Inject information about the error wrapped by this ErrorReport
|
|
26
|
+
* instance on the provided Span. If a logger is provided and the
|
|
27
|
+
* span is part of a **sampled** trace, then the error will be logged.
|
|
28
|
+
*/
|
|
29
|
+
injectOnSpan(span?: Span, logger?: IOContext['logger']): this;
|
|
30
|
+
private shouldLogToSplunk;
|
|
31
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorReport = void 0;
|
|
4
|
+
const node_error_report_1 = require("@vtex/node-error-report");
|
|
5
|
+
const __1 = require("..");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
class ErrorReport extends node_error_report_1.ErrorReportBase {
|
|
8
|
+
/**
|
|
9
|
+
* Create a new ErrorReport wrapping args.originalError
|
|
10
|
+
*
|
|
11
|
+
* In case the args.originalError argument is already an ErrorReport
|
|
12
|
+
* instance, then ErrorReport.create just returns it. If it's not,
|
|
13
|
+
* it returns a new ErrorReport wrapping the error. This way you can
|
|
14
|
+
* use ErrorReport.create on a catchAll, e.g.:
|
|
15
|
+
*
|
|
16
|
+
* ```
|
|
17
|
+
* try {
|
|
18
|
+
* await next()
|
|
19
|
+
* } catch(err) {
|
|
20
|
+
* ErrorReport.create({ originalError: err }).injectOnSpan(span)
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* More docs on the ErrorReport available on: https://github.com/vtex/node-error-report
|
|
25
|
+
*/
|
|
26
|
+
static create(args) {
|
|
27
|
+
if (args.originalError instanceof ErrorReport) {
|
|
28
|
+
return args.originalError;
|
|
29
|
+
}
|
|
30
|
+
return new ErrorReport((0, node_error_report_1.createErrorReportBaseArgs)(args));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Inject information about the error wrapped by this ErrorReport
|
|
34
|
+
* instance on the provided Span. If a logger is provided and the
|
|
35
|
+
* span is part of a **sampled** trace, then the error will be logged.
|
|
36
|
+
*/
|
|
37
|
+
injectOnSpan(span, logger) {
|
|
38
|
+
var _a, _b, _c, _d;
|
|
39
|
+
span === null || span === void 0 ? void 0 : span.setTag(__1.TracingTags.ERROR, 'true');
|
|
40
|
+
const indexedLogs = {
|
|
41
|
+
["error.kind" /* ErrorReportLogFields.ERROR_KIND */]: this.kind,
|
|
42
|
+
["error.id" /* ErrorReportLogFields.ERROR_ID */]: this.metadata.errorId,
|
|
43
|
+
};
|
|
44
|
+
if ((0, node_error_report_1.isRequestInfo)(this.parsedInfo) &&
|
|
45
|
+
this.parsedInfo.response &&
|
|
46
|
+
(0, node_error_report_1.isInfraErrorData)((_a = this.parsedInfo.response) === null || _a === void 0 ? void 0 : _a.data)) {
|
|
47
|
+
indexedLogs["error.server.code" /* ErrorReportLogFields.ERROR_SERVER_CODE */] = this.parsedInfo.response.data.code;
|
|
48
|
+
indexedLogs["error.server.request_id" /* ErrorReportLogFields.ERROR_SERVER_REQUEST_ID */] = this.parsedInfo.response.data.requestId;
|
|
49
|
+
}
|
|
50
|
+
const serializableError = this.toObject();
|
|
51
|
+
span === null || span === void 0 ? void 0 : span.log({
|
|
52
|
+
event: 'error',
|
|
53
|
+
...indexedLogs,
|
|
54
|
+
["error.message" /* ErrorReportLogFields.ERROR_MESSAGE */]: serializableError.message,
|
|
55
|
+
["error.metadata.metrics.InstantiationTime" /* ErrorReportLogFields.ERROR_METADATA_METRICS_INSTANTIATION_TIME */]: (_b = serializableError.metadata) === null || _b === void 0 ? void 0 : _b.reportCount,
|
|
56
|
+
["error.metadata.reportCount" /* ErrorReportLogFields.ERROR_METADATA_REPORT_COUNT */]: (_d = (_c = serializableError.metadata) === null || _c === void 0 ? void 0 : _c.metrics) === null || _d === void 0 ? void 0 : _d.instantiationTime,
|
|
57
|
+
["error.stack" /* ErrorReportLogFields.ERROR_STACK */]: serializableError.stack,
|
|
58
|
+
["error.code" /* ErrorReportLogFields.ERROR_CODE */]: serializableError.code,
|
|
59
|
+
});
|
|
60
|
+
if (logger && this.shouldLogToSplunk(span)) {
|
|
61
|
+
logger.error(serializableError);
|
|
62
|
+
this.markErrorAsReported();
|
|
63
|
+
}
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
shouldLogToSplunk(span) {
|
|
67
|
+
var _a;
|
|
68
|
+
return !this.isErrorReported() && ((_a = (0, utils_1.getTraceInfo)(span)) === null || _a === void 0 ? void 0 : _a.isSampled);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.ErrorReport = ErrorReport;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FORMAT_HTTP_HEADERS, Span } from 'opentracing';
|
|
2
|
+
export { ErrorKindsBase as ErrorKinds } from '@vtex/node-error-report';
|
|
3
|
+
export { ErrorReport } from './errorReporting/ErrorReport';
|
|
4
|
+
export { createSpanReference } from './spanReference/createSpanReference';
|
|
5
|
+
export { SpanReferenceTypes } from './spanReference/SpanReferenceTypes';
|
|
6
|
+
export { UserlandTags as TracingTags } from './Tags';
|
|
7
|
+
export { createTracingContextFromCarrier, IUserLandTracer } from './UserLandTracer';
|
|
8
|
+
export { getTraceInfo, TraceInfo } from './utils';
|
|
9
|
+
export { Span, FORMAT_HTTP_HEADERS };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FORMAT_HTTP_HEADERS = exports.Span = exports.getTraceInfo = exports.createTracingContextFromCarrier = exports.TracingTags = exports.SpanReferenceTypes = exports.createSpanReference = exports.ErrorReport = exports.ErrorKinds = void 0;
|
|
4
|
+
const opentracing_1 = require("opentracing");
|
|
5
|
+
Object.defineProperty(exports, "FORMAT_HTTP_HEADERS", { enumerable: true, get: function () { return opentracing_1.FORMAT_HTTP_HEADERS; } });
|
|
6
|
+
Object.defineProperty(exports, "Span", { enumerable: true, get: function () { return opentracing_1.Span; } });
|
|
7
|
+
var node_error_report_1 = require("@vtex/node-error-report");
|
|
8
|
+
Object.defineProperty(exports, "ErrorKinds", { enumerable: true, get: function () { return node_error_report_1.ErrorKindsBase; } });
|
|
9
|
+
var ErrorReport_1 = require("./errorReporting/ErrorReport");
|
|
10
|
+
Object.defineProperty(exports, "ErrorReport", { enumerable: true, get: function () { return ErrorReport_1.ErrorReport; } });
|
|
11
|
+
var createSpanReference_1 = require("./spanReference/createSpanReference");
|
|
12
|
+
Object.defineProperty(exports, "createSpanReference", { enumerable: true, get: function () { return createSpanReference_1.createSpanReference; } });
|
|
13
|
+
var SpanReferenceTypes_1 = require("./spanReference/SpanReferenceTypes");
|
|
14
|
+
Object.defineProperty(exports, "SpanReferenceTypes", { enumerable: true, get: function () { return SpanReferenceTypes_1.SpanReferenceTypes; } });
|
|
15
|
+
var Tags_1 = require("./Tags");
|
|
16
|
+
Object.defineProperty(exports, "TracingTags", { enumerable: true, get: function () { return Tags_1.UserlandTags; } });
|
|
17
|
+
var UserLandTracer_1 = require("./UserLandTracer");
|
|
18
|
+
Object.defineProperty(exports, "createTracingContextFromCarrier", { enumerable: true, get: function () { return UserLandTracer_1.createTracingContextFromCarrier; } });
|
|
19
|
+
var utils_1 = require("./utils");
|
|
20
|
+
Object.defineProperty(exports, "getTraceInfo", { enumerable: true, get: function () { return utils_1.getTraceInfo; } });
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SpanReferenceTypes = void 0;
|
|
4
|
+
var SpanReferenceTypes;
|
|
5
|
+
(function (SpanReferenceTypes) {
|
|
6
|
+
SpanReferenceTypes[SpanReferenceTypes["CHILD_OF"] = 0] = "CHILD_OF";
|
|
7
|
+
SpanReferenceTypes[SpanReferenceTypes["FOLLOWS_FROM"] = 1] = "FOLLOWS_FROM";
|
|
8
|
+
})(SpanReferenceTypes = exports.SpanReferenceTypes || (exports.SpanReferenceTypes = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSpanReference = void 0;
|
|
4
|
+
const opentracing_1 = require("opentracing");
|
|
5
|
+
const SpanReferenceTypes_1 = require("./SpanReferenceTypes");
|
|
6
|
+
function createSpanReference(span, type) {
|
|
7
|
+
return new opentracing_1.Reference(type === SpanReferenceTypes_1.SpanReferenceTypes.CHILD_OF ? opentracing_1.REFERENCE_CHILD_OF : opentracing_1.REFERENCE_FOLLOWS_FROM, span.context());
|
|
8
|
+
}
|
|
9
|
+
exports.createSpanReference = createSpanReference;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Span } from 'opentracing';
|
|
2
|
+
export interface TraceInfo {
|
|
3
|
+
traceId?: string;
|
|
4
|
+
isSampled: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function getTraceInfo(span?: Span): TraceInfo;
|
|
7
|
+
/**
|
|
8
|
+
* Do a shallow copy of a headers object and redacts sensitive information.
|
|
9
|
+
*
|
|
10
|
+
* @param headersObj The headers object
|
|
11
|
+
* @param resultFieldsPrefix The prefix that will be added to each field on the result object
|
|
12
|
+
*/
|
|
13
|
+
export declare const cloneAndSanitizeHeaders: (headersObj: Record<string, any>, resultFieldsPrefix?: string) => Record<string, string>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cloneAndSanitizeHeaders = exports.getTraceInfo = void 0;
|
|
4
|
+
const node_error_report_1 = require("@vtex/node-error-report");
|
|
5
|
+
function getTraceInfo(span) {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
const spanContext = span === null || span === void 0 ? void 0 : span.context();
|
|
8
|
+
return {
|
|
9
|
+
isSampled: (_b = (_a = spanContext === null || spanContext === void 0 ? void 0 : spanContext.isSampled) === null || _a === void 0 ? void 0 : _a.call(spanContext)) !== null && _b !== void 0 ? _b : false,
|
|
10
|
+
traceId: spanContext === null || spanContext === void 0 ? void 0 : spanContext.toTraceId(),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
exports.getTraceInfo = getTraceInfo;
|
|
14
|
+
/**
|
|
15
|
+
* Do a shallow copy of a headers object and redacts sensitive information.
|
|
16
|
+
*
|
|
17
|
+
* @param headersObj The headers object
|
|
18
|
+
* @param resultFieldsPrefix The prefix that will be added to each field on the result object
|
|
19
|
+
*/
|
|
20
|
+
const cloneAndSanitizeHeaders = (headersObj, resultFieldsPrefix = '') => {
|
|
21
|
+
const ret = {};
|
|
22
|
+
const entries = Object.entries(headersObj);
|
|
23
|
+
for (const [key, val] of entries) {
|
|
24
|
+
// Most of the time val is a string, but there are some cases, for example when we do a axios interceptor,
|
|
25
|
+
// that a header field can contain an object, for example:
|
|
26
|
+
// ```
|
|
27
|
+
// "common": {
|
|
28
|
+
// "Accept": "application/json, text/plain, */*"
|
|
29
|
+
// },
|
|
30
|
+
// "delete": { },
|
|
31
|
+
// "get": { },
|
|
32
|
+
// "head": { },
|
|
33
|
+
// "post": {
|
|
34
|
+
// "Content-Type": "application/x-www-form-urlencoded"
|
|
35
|
+
// },
|
|
36
|
+
// ```
|
|
37
|
+
// In those corner cases we probably won't have a sensitive string as key, so we don't treat them here
|
|
38
|
+
ret[`${resultFieldsPrefix}${key}`] = node_error_report_1.authFields.includes(key) ? (0, node_error_report_1.sanitizeAuth)(val) : val;
|
|
39
|
+
}
|
|
40
|
+
return ret;
|
|
41
|
+
};
|
|
42
|
+
exports.cloneAndSanitizeHeaders = cloneAndSanitizeHeaders;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { Logger } from './../service/logger/logger';
|
|
2
|
+
import { ConflictsResolver, VBase } from '../clients/infra/VBase';
|
|
3
|
+
type Configuration = Record<string, ConfigurationData | ConfigurationData[] | object> | ConfigurationData[];
|
|
4
|
+
type ConfigurationData = Record<string, object>;
|
|
5
|
+
export declare class MineWinsConflictsResolver<T> implements ConflictsResolver<T> {
|
|
5
6
|
/***
|
|
6
7
|
* Take mine and merge with master keys that have no conflict
|
|
7
8
|
* We use base to decide wether a key was deleted or not
|
|
@@ -11,7 +12,8 @@ export declare class MineWinsConflictsResolver implements ConflictsResolver {
|
|
|
11
12
|
private filePath;
|
|
12
13
|
private comparableKeys;
|
|
13
14
|
constructor(client: VBase, bucket: string, filePath: string, comparableKeys?: string[]);
|
|
14
|
-
resolve(): Promise<any>;
|
|
15
|
+
resolve(logger?: Logger): Promise<any>;
|
|
16
|
+
resolveAll(): Promise<Configuration[]>;
|
|
15
17
|
protected mergeMineWins(base: Configuration, master: Configuration, mine: Configuration): Configuration;
|
|
16
18
|
private parseConflict;
|
|
17
19
|
private serializeContentByMimetype;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MineWinsConflictsResolver = void 0;
|
|
3
4
|
const js_base64_1 = require("js-base64");
|
|
4
5
|
const ramda_1 = require("ramda");
|
|
5
6
|
const util_1 = require("util");
|
|
@@ -10,12 +11,15 @@ class MineWinsConflictsResolver {
|
|
|
10
11
|
this.filePath = filePath;
|
|
11
12
|
this.comparableKeys = comparableKeys;
|
|
12
13
|
}
|
|
13
|
-
async resolve() {
|
|
14
|
-
return await this.client.getConflicts(this.bucket).then(data => {
|
|
14
|
+
async resolve(logger) {
|
|
15
|
+
return await this.client.getConflicts(this.bucket).then((data) => {
|
|
15
16
|
const { data: conflicts } = data;
|
|
16
|
-
const selectedConflict = conflicts.find(conflict => conflict.path === this.filePath);
|
|
17
|
+
const selectedConflict = conflicts.find((conflict) => conflict.path === this.filePath);
|
|
17
18
|
if (!selectedConflict) {
|
|
18
|
-
|
|
19
|
+
throw {
|
|
20
|
+
message: 'No conflict could be found.',
|
|
21
|
+
status: 404,
|
|
22
|
+
};
|
|
19
23
|
}
|
|
20
24
|
selectedConflict.base.parsedContent = this.parseConflict(selectedConflict.base);
|
|
21
25
|
selectedConflict.master.parsedContent = this.parseConflict(selectedConflict.master);
|
|
@@ -24,11 +28,22 @@ class MineWinsConflictsResolver {
|
|
|
24
28
|
return resolved;
|
|
25
29
|
});
|
|
26
30
|
}
|
|
31
|
+
async resolveAll() {
|
|
32
|
+
const conflictsResponse = await this.client.getConflicts(this.bucket);
|
|
33
|
+
const { data: conflicts } = conflictsResponse;
|
|
34
|
+
const resolvedConflicts = conflicts.map((conflict) => {
|
|
35
|
+
conflict.base.parsedContent = this.parseConflict(conflict.base);
|
|
36
|
+
conflict.master.parsedContent = this.parseConflict(conflict.master);
|
|
37
|
+
conflict.mine.parsedContent = this.parseConflict(conflict.mine);
|
|
38
|
+
return this.resolveConflictMineWins(conflict);
|
|
39
|
+
});
|
|
40
|
+
return resolvedConflicts;
|
|
41
|
+
}
|
|
27
42
|
mergeMineWins(base, master, mine) {
|
|
28
|
-
if (util_1.isArray(master)) {
|
|
43
|
+
if ((0, util_1.isArray)(master)) {
|
|
29
44
|
return this.mergeMineWinsArray((base || []), master, (mine || []));
|
|
30
45
|
}
|
|
31
|
-
else if (util_1.isObject(master)) {
|
|
46
|
+
else if ((0, util_1.isObject)(master)) {
|
|
32
47
|
return this.mergeMineWinsObject((base || {}), master, (mine || {}));
|
|
33
48
|
}
|
|
34
49
|
return mine ? mine : master;
|
|
@@ -53,30 +68,33 @@ class MineWinsConflictsResolver {
|
|
|
53
68
|
}
|
|
54
69
|
resolveConflictMineWins(conflict) {
|
|
55
70
|
if (!conflict) {
|
|
56
|
-
|
|
71
|
+
throw {
|
|
72
|
+
message: 'No conflict could be found.',
|
|
73
|
+
status: 404,
|
|
74
|
+
};
|
|
57
75
|
}
|
|
58
76
|
const { base, master, mine, path } = conflict;
|
|
59
|
-
this.mergeMineWins(base.parsedContent, master.parsedContent, mine.parsedContent);
|
|
77
|
+
const merged = this.mergeMineWins(base.parsedContent, master.parsedContent, mine.parsedContent);
|
|
60
78
|
const mergedContent = {
|
|
61
|
-
content: js_base64_1.Base64.encode(this.serializeContentByMimetype(
|
|
79
|
+
content: js_base64_1.Base64.encode(this.serializeContentByMimetype(merged, conflict.mine.mimeType)),
|
|
62
80
|
mimeType: conflict.mine.mimeType,
|
|
63
81
|
};
|
|
64
82
|
this.client.resolveConflict(this.bucket, path, mergedContent);
|
|
65
|
-
return
|
|
83
|
+
return merged;
|
|
66
84
|
}
|
|
67
85
|
mergeMineWinsObject(base, master, mine) {
|
|
68
|
-
const merged =
|
|
86
|
+
const merged = { ...master, ...mine };
|
|
69
87
|
Object.entries(merged).forEach(([key, value]) => {
|
|
70
|
-
if (master[key] == null && base && base[key] != null && ramda_1.equals(value, base[key])) {
|
|
88
|
+
if (master[key] == null && base && base[key] != null && (0, ramda_1.equals)(value, base[key])) {
|
|
71
89
|
delete merged[key]; // value deleted from master with no conflict
|
|
72
90
|
}
|
|
73
91
|
else if (base[key] && master[key] && !mine[key]) {
|
|
74
92
|
delete merged[key]; // value deleted from mine
|
|
75
93
|
}
|
|
76
|
-
else if (util_1.isArray(value)) {
|
|
94
|
+
else if ((0, util_1.isArray)(value)) {
|
|
77
95
|
merged[key] = this.mergeMineWinsArray((base[key] || []), (master[key] || []), value);
|
|
78
96
|
}
|
|
79
|
-
else if (util_1.isObject(value)) {
|
|
97
|
+
else if ((0, util_1.isObject)(value)) {
|
|
80
98
|
merged[key] = this.mergeMineWins((base[key] || {}), (master[key] || {}), (value || {}));
|
|
81
99
|
}
|
|
82
100
|
});
|
|
@@ -88,10 +106,10 @@ class MineWinsConflictsResolver {
|
|
|
88
106
|
return mine;
|
|
89
107
|
}
|
|
90
108
|
removeMasterDeletedElements(base, master, mine) {
|
|
91
|
-
base.forEach(baseItem => {
|
|
109
|
+
base.forEach((baseItem) => {
|
|
92
110
|
const foundInMaster = this.isObjectInArray(baseItem, master);
|
|
93
111
|
if (!foundInMaster) {
|
|
94
|
-
const foundInMine = mine.findIndex(mineItem => ramda_1.equals(mineItem, baseItem));
|
|
112
|
+
const foundInMine = mine.findIndex((mineItem) => (0, ramda_1.equals)(mineItem, baseItem));
|
|
95
113
|
if (foundInMine > -1) {
|
|
96
114
|
mine.splice(foundInMine, 1);
|
|
97
115
|
}
|
|
@@ -99,21 +117,21 @@ class MineWinsConflictsResolver {
|
|
|
99
117
|
});
|
|
100
118
|
}
|
|
101
119
|
isObjectInArray(obj, array) {
|
|
102
|
-
return array.find(item => ramda_1.equals(item, obj));
|
|
120
|
+
return array.find((item) => (0, ramda_1.equals)(item, obj));
|
|
103
121
|
}
|
|
104
122
|
appendMasterAddedElements(base, master, mine) {
|
|
105
|
-
master.forEach(item => {
|
|
123
|
+
master.forEach((item) => {
|
|
106
124
|
if (this.shouldAddToMine(item, base, mine)) {
|
|
107
125
|
mine.push(item);
|
|
108
126
|
}
|
|
109
127
|
});
|
|
110
128
|
}
|
|
111
129
|
shouldAddToMine(item, base, mine) {
|
|
112
|
-
if (this.comparableKeys && Object.keys(item).some(key => this.comparableKeys.includes(key))) {
|
|
113
|
-
return (!mine.some(mineItem => this.comparableKeys.some(key => ramda_1.eqProps(key, item, mineItem))) &&
|
|
114
|
-
!base.some(baseItem =>
|
|
130
|
+
if (this.comparableKeys && Object.keys(item).some((key) => this.comparableKeys.includes(key))) {
|
|
131
|
+
return (!mine.some((mineItem) => this.comparableKeys.some((key) => (0, ramda_1.eqProps)(key, item, mineItem))) &&
|
|
132
|
+
!base.some((baseItem) => (0, ramda_1.equals)(baseItem, item)));
|
|
115
133
|
}
|
|
116
|
-
return !mine.some(mineItem => ramda_1.equals(mineItem, item)) && !base.some(baseItem => ramda_1.equals(baseItem, item));
|
|
134
|
+
return !mine.some((mineItem) => (0, ramda_1.equals)(mineItem, item)) && !base.some((baseItem) => (0, ramda_1.equals)(baseItem, item));
|
|
117
135
|
}
|
|
118
136
|
}
|
|
119
137
|
exports.MineWinsConflictsResolver = MineWinsConflictsResolver;
|
package/lib/utils/app.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AppMetaInfo } from '../clients/Apps';
|
|
1
|
+
import { AppMetaInfo } from '../clients/infra/Apps';
|
|
2
2
|
export declare const removeBuild: (id: string) => string;
|
|
3
3
|
export declare const removeVersionFromAppId: (appId: string) => string;
|
|
4
4
|
export declare const extractVersionFromAppId: (appId: string) => string;
|
|
@@ -13,6 +13,8 @@ export declare const versionToMajorRange: (version: string) => string;
|
|
|
13
13
|
export declare const formatMajorLocator: (name: string, version: string) => string;
|
|
14
14
|
export declare const appIdToAppAtMajor: (appId: string) => string;
|
|
15
15
|
export declare const isValidAppIdOrLocator: (appId: string) => boolean;
|
|
16
|
+
export declare const sameMajor: (v1: string, v2: string) => boolean;
|
|
17
|
+
export declare const majorEqualAndGreaterThan: (v1: string, v2: string) => boolean;
|
|
16
18
|
export interface ParsedLocator {
|
|
17
19
|
name: string;
|
|
18
20
|
version: string;
|
package/lib/utils/app.js
CHANGED
|
@@ -3,44 +3,63 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.majorEqualAndGreaterThan = exports.sameMajor = exports.isValidAppIdOrLocator = exports.appIdToAppAtMajor = exports.formatMajorLocator = exports.versionToMajorRange = exports.versionToMajor = exports.satisfies = exports.formatAppId = exports.parseAppId = exports.isLinkedApp = exports.formatLocator = exports.transformToLinkedLocator = exports.extractVersionFromAppId = exports.removeVersionFromAppId = exports.removeBuild = void 0;
|
|
6
7
|
const semver_1 = __importDefault(require("semver"));
|
|
7
8
|
// Note: The name that composes the part of the appId that precedes the
|
|
8
9
|
// character '@' includes the name given to the app and the vendor name.
|
|
9
|
-
|
|
10
|
-
exports.
|
|
11
|
-
|
|
12
|
-
exports.
|
|
13
|
-
|
|
14
|
-
exports.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
const removeBuild = (id) => id.split('+')[0];
|
|
11
|
+
exports.removeBuild = removeBuild;
|
|
12
|
+
const removeVersionFromAppId = (appId) => appId.split('@')[0];
|
|
13
|
+
exports.removeVersionFromAppId = removeVersionFromAppId;
|
|
14
|
+
const extractVersionFromAppId = (appId) => appId.split('@').slice(-1)[0];
|
|
15
|
+
exports.extractVersionFromAppId = extractVersionFromAppId;
|
|
16
|
+
const transformToLinkedLocator = (appId) => appId.replace(/\+build.*$/, '+linked');
|
|
17
|
+
exports.transformToLinkedLocator = transformToLinkedLocator;
|
|
18
|
+
const formatLocator = (name, versionAndBuild) => `${name}@${(0, exports.removeBuild)(versionAndBuild)}`;
|
|
19
|
+
exports.formatLocator = formatLocator;
|
|
20
|
+
const isLinkedApp = (app) => app.id.includes('+build');
|
|
21
|
+
exports.isLinkedApp = isLinkedApp;
|
|
22
|
+
const parseAppId = (appId) => {
|
|
23
|
+
const name = (0, exports.removeVersionFromAppId)(appId);
|
|
24
|
+
const version = (0, exports.extractVersionFromAppId)(appId);
|
|
18
25
|
const splittedVersion = version.split('+');
|
|
19
26
|
return {
|
|
20
27
|
build: splittedVersion[1],
|
|
21
|
-
locator: exports.formatLocator(name, version),
|
|
28
|
+
locator: (0, exports.formatLocator)(name, version),
|
|
22
29
|
name,
|
|
23
30
|
version: splittedVersion[0],
|
|
24
31
|
};
|
|
25
32
|
};
|
|
26
|
-
exports.
|
|
27
|
-
|
|
28
|
-
|
|
33
|
+
exports.parseAppId = parseAppId;
|
|
34
|
+
const formatAppId = ({ locator, build }) => (build ? `${locator}+${build}` : locator);
|
|
35
|
+
exports.formatAppId = formatAppId;
|
|
36
|
+
const satisfies = (appId, version) => {
|
|
37
|
+
const { version: appVer } = (0, exports.parseAppId)(appId);
|
|
29
38
|
return semver_1.default.satisfies(appVer, version);
|
|
30
39
|
};
|
|
31
|
-
exports.
|
|
32
|
-
|
|
33
|
-
exports.
|
|
34
|
-
|
|
40
|
+
exports.satisfies = satisfies;
|
|
41
|
+
const versionToMajor = (version) => version.split('.')[0];
|
|
42
|
+
exports.versionToMajor = versionToMajor;
|
|
43
|
+
const versionToMajorRange = (version) => `${(0, exports.versionToMajor)(version)}.x`;
|
|
44
|
+
exports.versionToMajorRange = versionToMajorRange;
|
|
45
|
+
const formatMajorLocator = (name, version) => {
|
|
46
|
+
const majorRange = (0, exports.versionToMajorRange)(version);
|
|
35
47
|
return `${name}@${majorRange}`;
|
|
36
48
|
};
|
|
37
|
-
exports.
|
|
38
|
-
|
|
39
|
-
const
|
|
49
|
+
exports.formatMajorLocator = formatMajorLocator;
|
|
50
|
+
const appIdToAppAtMajor = (appId) => {
|
|
51
|
+
const { name, version } = (0, exports.parseAppId)(appId);
|
|
52
|
+
const majorRange = (0, exports.versionToMajorRange)(version);
|
|
40
53
|
return `${name}@${majorRange}`;
|
|
41
54
|
};
|
|
55
|
+
exports.appIdToAppAtMajor = appIdToAppAtMajor;
|
|
42
56
|
// SemVer regex from https://github.com/sindresorhus/semver-regex
|
|
43
57
|
const APP_ID_REGEX = /^[\w\-]+\.[\w\-]+@(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[\da-z\-]+(?:\.[\da-z\-]+)*)?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?$/;
|
|
44
|
-
|
|
58
|
+
const isValidAppIdOrLocator = (appId) => {
|
|
45
59
|
return APP_ID_REGEX.test(appId);
|
|
46
60
|
};
|
|
61
|
+
exports.isValidAppIdOrLocator = isValidAppIdOrLocator;
|
|
62
|
+
const sameMajor = (v1, v2) => (0, exports.versionToMajor)(v1) === (0, exports.versionToMajor)(v2);
|
|
63
|
+
exports.sameMajor = sameMajor;
|
|
64
|
+
const majorEqualAndGreaterThan = (v1, v2) => (0, exports.sameMajor)(v1, v2) && semver_1.default.gt(v1, v2);
|
|
65
|
+
exports.majorEqualAndGreaterThan = majorEqualAndGreaterThan;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
import { AppMetaInfo, Apps } from '..';
|
|
3
4
|
import { CacheLayer } from '../caches';
|
|
4
5
|
import { Logger } from '../service/logger';
|
|
5
|
-
export declare const getMetaInfoKey: (account: string) => string;
|
|
6
|
+
export declare const getMetaInfoKey: (account: string, workspace: string) => string;
|
|
6
7
|
export declare const updateMetaInfoCache: (cacheStorage: CacheLayer<string, AppMetaInfo[]>, account: string, workspace: string, dependencies: AppMetaInfo[], logger: Logger) => Promise<void>;
|
|
7
8
|
export declare const saveVersion: (app: string, cacheStorage: CacheLayer<string, string>) => Promise<void>;
|
|
8
9
|
export declare const getFallbackFile: (app: string, path: string, cacheStorage: CacheLayer<string, string>, apps: Apps) => Promise<{
|