@vtex/api 6.48.1-beta.3 → 6.49.0

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 (192) hide show
  1. package/gen/manifest.schema +1 -1
  2. package/lib/HttpClient/GraphQLClient.d.ts +1 -1
  3. package/lib/HttpClient/HttpClient.d.ts +3 -2
  4. package/lib/HttpClient/HttpClient.js +14 -14
  5. package/lib/HttpClient/agents.d.ts +5 -2
  6. package/lib/HttpClient/agents.js +10 -4
  7. package/lib/HttpClient/index.js +7 -2
  8. package/lib/HttpClient/middlewares/cache.d.ts +1 -1
  9. package/lib/HttpClient/middlewares/cache.js +43 -44
  10. package/lib/HttpClient/middlewares/cancellationToken.d.ts +1 -1
  11. package/lib/HttpClient/middlewares/cancellationToken.js +2 -1
  12. package/lib/HttpClient/middlewares/inflight.d.ts +1 -1
  13. package/lib/HttpClient/middlewares/inflight.js +6 -3
  14. package/lib/HttpClient/middlewares/memoization.d.ts +1 -1
  15. package/lib/HttpClient/middlewares/memoization.js +9 -8
  16. package/lib/HttpClient/middlewares/metrics.js +8 -11
  17. package/lib/HttpClient/middlewares/notFound.d.ts +1 -1
  18. package/lib/HttpClient/middlewares/notFound.js +4 -2
  19. package/lib/HttpClient/middlewares/recorder.js +2 -5
  20. package/lib/HttpClient/middlewares/request/HttpAgentSingleton.js +1 -1
  21. package/lib/HttpClient/middlewares/request/index.d.ts +1 -1
  22. package/lib/HttpClient/middlewares/request/index.js +13 -10
  23. package/lib/HttpClient/middlewares/request/setupAxios/index.d.ts +0 -1
  24. package/lib/HttpClient/middlewares/request/setupAxios/index.js +5 -4
  25. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/exponentialBackoff.js +6 -5
  26. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/index.js +1 -0
  27. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/index.js +8 -8
  28. package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/spanSetup.js +10 -8
  29. package/lib/HttpClient/middlewares/tracing.js +11 -14
  30. package/lib/HttpClient/typings.d.ts +3 -3
  31. package/lib/caches/DiskCache.js +3 -3
  32. package/lib/caches/LRUCache.d.ts +2 -2
  33. package/lib/caches/LRUDiskCache.d.ts +1 -1
  34. package/lib/caches/LRUDiskCache.js +3 -3
  35. package/lib/caches/MultilayeredCache.d.ts +2 -2
  36. package/lib/caches/MultilayeredCache.js +7 -7
  37. package/lib/caches/index.js +6 -2
  38. package/lib/caches/typings.d.ts +5 -5
  39. package/lib/clients/IOClient.d.ts +1 -1
  40. package/lib/clients/IOClients.d.ts +1 -1
  41. package/lib/clients/apps/AppClient.js +1 -1
  42. package/lib/clients/apps/AppGraphQLClient.js +1 -1
  43. package/lib/clients/apps/Billing.d.ts +1 -1
  44. package/lib/clients/apps/Builder.d.ts +7 -7
  45. package/lib/clients/apps/Builder.js +1 -1
  46. package/lib/clients/apps/MessagesGraphQL.d.ts +1 -1
  47. package/lib/clients/apps/MessagesGraphQL.js +3 -3
  48. package/lib/clients/apps/Settings.js +3 -3
  49. package/lib/clients/apps/catalogGraphQL/index.d.ts +4 -4
  50. package/lib/clients/apps/catalogGraphQL/index.js +4 -4
  51. package/lib/clients/apps/index.js +6 -2
  52. package/lib/clients/external/ID.d.ts +4 -4
  53. package/lib/clients/external/PaymentProvider.d.ts +2 -2
  54. package/lib/clients/external/index.js +6 -2
  55. package/lib/clients/index.js +6 -2
  56. package/lib/clients/infra/Apps.d.ts +32 -27
  57. package/lib/clients/infra/Apps.js +16 -18
  58. package/lib/clients/infra/Assets.d.ts +6 -5
  59. package/lib/clients/infra/Assets.js +11 -11
  60. package/lib/clients/infra/BillingMetrics.d.ts +1 -1
  61. package/lib/clients/infra/Events.d.ts +1 -1
  62. package/lib/clients/infra/Events.js +1 -1
  63. package/lib/clients/infra/Housekeeper.d.ts +3 -3
  64. package/lib/clients/infra/Registry.d.ts +23 -17
  65. package/lib/clients/infra/Registry.js +3 -4
  66. package/lib/clients/infra/Router.d.ts +8 -8
  67. package/lib/clients/infra/Sphinx.d.ts +2 -2
  68. package/lib/clients/infra/VBase.d.ts +15 -14
  69. package/lib/clients/infra/VBase.js +3 -3
  70. package/lib/clients/infra/Workspaces.d.ts +7 -7
  71. package/lib/clients/infra/index.js +6 -2
  72. package/lib/clients/janus/JanusClient.d.ts +1 -1
  73. package/lib/clients/janus/LicenseManager.js +1 -1
  74. package/lib/clients/janus/Segment.d.ts +3 -3
  75. package/lib/clients/janus/Segment.js +2 -2
  76. package/lib/clients/janus/Session.d.ts +2 -2
  77. package/lib/clients/janus/Tenant.d.ts +1 -1
  78. package/lib/clients/janus/index.js +6 -2
  79. package/lib/constants.d.ts +2 -1
  80. package/lib/constants.js +3 -2
  81. package/lib/errors/ResolverError.js +1 -1
  82. package/lib/errors/index.js +6 -2
  83. package/lib/index.js +6 -2
  84. package/lib/metrics/MetricsAccumulator.d.ts +2 -2
  85. package/lib/metrics/MetricsAccumulator.js +9 -9
  86. package/lib/responses.d.ts +4 -4
  87. package/lib/service/index.js +7 -9
  88. package/lib/service/loaders.js +8 -6
  89. package/lib/service/logger/client.d.ts +2 -0
  90. package/lib/service/logger/client.js +48 -0
  91. package/lib/service/logger/console.d.ts +1 -1
  92. package/lib/service/logger/console.js +7 -4
  93. package/lib/service/logger/index.d.ts +2 -0
  94. package/lib/service/logger/index.js +8 -2
  95. package/lib/service/logger/logger.d.ts +4 -15
  96. package/lib/service/logger/logger.js +61 -18
  97. package/lib/service/logger/loggerTypes.d.ts +14 -0
  98. package/lib/service/logger/loggerTypes.js +10 -0
  99. package/lib/service/logger/metricsLogger.js +10 -10
  100. package/lib/service/master.js +7 -6
  101. package/lib/service/metrics/requestMetricsMiddleware.js +14 -13
  102. package/lib/service/telemetry/client.d.ts +3 -0
  103. package/lib/service/telemetry/client.js +57 -0
  104. package/lib/service/telemetry/index.d.ts +1 -0
  105. package/lib/service/telemetry/index.js +17 -0
  106. package/lib/service/tracing/TracerSingleton.js +9 -9
  107. package/lib/service/tracing/metrics/MetricNames.js +12 -12
  108. package/lib/service/tracing/metrics/instruments.js +14 -7
  109. package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.js +5 -5
  110. package/lib/service/tracing/tracingMiddlewares.js +18 -21
  111. package/lib/service/worker/index.js +25 -24
  112. package/lib/service/worker/listeners.js +2 -1
  113. package/lib/service/worker/runtime/Service.js +1 -1
  114. package/lib/service/worker/runtime/builtIn/handlers.js +6 -3
  115. package/lib/service/worker/runtime/builtIn/middlewares.js +5 -3
  116. package/lib/service/worker/runtime/events/index.d.ts +1 -1
  117. package/lib/service/worker/runtime/events/index.js +11 -10
  118. package/lib/service/worker/runtime/events/middlewares/body.js +3 -6
  119. package/lib/service/worker/runtime/events/middlewares/context.js +1 -1
  120. package/lib/service/worker/runtime/events/router.js +3 -2
  121. package/lib/service/worker/runtime/graphql/index.js +8 -7
  122. package/lib/service/worker/runtime/graphql/middlewares/error.js +5 -8
  123. package/lib/service/worker/runtime/graphql/middlewares/query.js +7 -6
  124. package/lib/service/worker/runtime/graphql/middlewares/response.js +1 -1
  125. package/lib/service/worker/runtime/graphql/middlewares/run.js +3 -2
  126. package/lib/service/worker/runtime/graphql/middlewares/updateSchema.js +4 -3
  127. package/lib/service/worker/runtime/graphql/middlewares/upload.js +1 -1
  128. package/lib/service/worker/runtime/graphql/schema/index.d.ts +1 -1
  129. package/lib/service/worker/runtime/graphql/schema/index.js +8 -7
  130. package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.d.ts +2 -2
  131. package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.js +4 -3
  132. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Auth.js +1 -1
  133. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.js +1 -1
  134. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.js +1 -1
  135. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.js +2 -2
  136. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslateTo.js +2 -2
  137. package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.js +1 -1
  138. package/lib/service/worker/runtime/graphql/schema/typeDefs/index.js +2 -1
  139. package/lib/service/worker/runtime/graphql/schema/typeDefs/sanitizedString.js +2 -2
  140. package/lib/service/worker/runtime/graphql/typings.d.ts +3 -3
  141. package/lib/service/worker/runtime/graphql/utils/cacheControl.js +2 -1
  142. package/lib/service/worker/runtime/graphql/utils/error.js +10 -9
  143. package/lib/service/worker/runtime/graphql/utils/pathname.js +3 -2
  144. package/lib/service/worker/runtime/graphql/utils/translations.d.ts +1 -1
  145. package/lib/service/worker/runtime/graphql/utils/translations.js +7 -4
  146. package/lib/service/worker/runtime/http/index.d.ts +2 -2
  147. package/lib/service/worker/runtime/http/index.js +22 -20
  148. package/lib/service/worker/runtime/http/middlewares/context.js +7 -5
  149. package/lib/service/worker/runtime/http/middlewares/error.js +6 -9
  150. package/lib/service/worker/runtime/http/middlewares/rateLimit.js +1 -1
  151. package/lib/service/worker/runtime/http/middlewares/setCookie.js +5 -5
  152. package/lib/service/worker/runtime/http/middlewares/settings.d.ts +1 -1
  153. package/lib/service/worker/runtime/http/middlewares/settings.js +13 -9
  154. package/lib/service/worker/runtime/http/middlewares/timings.js +3 -3
  155. package/lib/service/worker/runtime/http/router.js +3 -2
  156. package/lib/service/worker/runtime/http/routes.js +8 -5
  157. package/lib/service/worker/runtime/method.d.ts +2 -2
  158. package/lib/service/worker/runtime/method.js +1 -1
  159. package/lib/service/worker/runtime/statusTrack.d.ts +1 -1
  160. package/lib/service/worker/runtime/statusTrack.js +10 -5
  161. package/lib/service/worker/runtime/typings.d.ts +10 -10
  162. package/lib/service/worker/runtime/utils/compose.d.ts +2 -2
  163. package/lib/service/worker/runtime/utils/compose.js +4 -2
  164. package/lib/service/worker/runtime/utils/context.d.ts +2 -2
  165. package/lib/service/worker/runtime/utils/context.js +5 -4
  166. package/lib/service/worker/runtime/utils/recorder.js +1 -1
  167. package/lib/service/worker/runtime/utils/toArray.js +2 -1
  168. package/lib/tracing/UserLandTracer.js +3 -2
  169. package/lib/tracing/errorReporting/ErrorReport.js +13 -13
  170. package/lib/tracing/index.js +1 -1
  171. package/lib/tracing/utils.js +5 -4
  172. package/lib/utils/MineWinsConflictsResolver.d.ts +4 -4
  173. package/lib/utils/MineWinsConflictsResolver.js +10 -10
  174. package/lib/utils/app.js +39 -23
  175. package/lib/utils/appsStaleIfError.d.ts +1 -0
  176. package/lib/utils/appsStaleIfError.js +17 -9
  177. package/lib/utils/billingOptions.js +2 -1
  178. package/lib/utils/binding.js +4 -2
  179. package/lib/utils/domain.js +1 -1
  180. package/lib/utils/error.js +5 -4
  181. package/lib/utils/index.js +6 -2
  182. package/lib/utils/log.js +3 -2
  183. package/lib/utils/message.js +8 -5
  184. package/lib/utils/renameBy.js +2 -1
  185. package/lib/utils/retry.js +8 -6
  186. package/lib/utils/status.js +2 -1
  187. package/lib/utils/tenant.js +4 -2
  188. package/lib/utils/time.d.ts +1 -1
  189. package/lib/utils/time.js +23 -14
  190. package/package.json +27 -5
  191. package/lib/utils/buildFullPath.d.ts +0 -11
  192. package/lib/utils/buildFullPath.js +0 -54
@@ -4,7 +4,7 @@ exports.routerFromPublicHttpHandlers = void 0;
4
4
  const constants_1 = require("../../../../constants");
5
5
  const logger_1 = require("../../../logger");
6
6
  const console_1 = require("./../../../logger/console");
7
- exports.routerFromPublicHttpHandlers = (routes) => {
7
+ const routerFromPublicHttpHandlers = (routes) => {
8
8
  return async (ctx, next) => {
9
9
  var _a;
10
10
  const routeId = ctx.get(constants_1.COLOSSUS_ROUTE_ID_HEADER);
@@ -16,9 +16,10 @@ exports.routerFromPublicHttpHandlers = (routes) => {
16
16
  const msg = `Handler with id '${routeId}' not implemented.`;
17
17
  ctx.status = 501;
18
18
  ctx.body = msg;
19
- console_1.logOnceToDevConsole(msg, logger_1.LogLevel.Error);
19
+ (0, console_1.logOnceToDevConsole)(msg, logger_1.LogLevel.Error);
20
20
  return;
21
21
  }
22
22
  await handler(ctx, next);
23
23
  };
24
24
  };
25
+ exports.routerFromPublicHttpHandlers = routerFromPublicHttpHandlers;
@@ -2,12 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.logAvailableRoutes = exports.formatPublicRoute = exports.formatPrivateRoute = void 0;
4
4
  const constants_1 = require("../../../../constants");
5
- exports.formatPrivateRoute = ({ protocol = 'https', vendor, name, major, account, workspace, path }) => `${protocol}://app.io.vtex.com/${vendor}.${name}/v${major}/${account}/${workspace}${path || ''}`;
6
- exports.formatPublicRoute = ({ workspace, account, endpoint, path }) => `https://${workspace}--${account}.${endpoint}${path}`;
5
+ const formatPrivateRoute = ({ protocol = 'https', vendor, name, major, account, workspace, path }) => `${protocol}://app.io.vtex.com/${vendor}.${name}/v${major}/${account}/${workspace}${path || ''}`;
6
+ exports.formatPrivateRoute = formatPrivateRoute;
7
+ const formatPublicRoute = ({ workspace, account, endpoint, path }) => `https://${workspace}--${account}.${endpoint}${path}`;
8
+ exports.formatPublicRoute = formatPublicRoute;
7
9
  const getPath = ({ public: publicRoute, path }) => publicRoute
8
- ? exports.formatPublicRoute({ workspace: constants_1.WORKSPACE, account: constants_1.ACCOUNT, endpoint: constants_1.PUBLIC_ENDPOINT, path })
9
- : exports.formatPrivateRoute({ protocol: 'https', vendor: constants_1.APP.VENDOR, name: constants_1.APP.NAME, major: constants_1.APP.MAJOR, account: constants_1.ACCOUNT, workspace: constants_1.WORKSPACE, path });
10
- exports.logAvailableRoutes = (service) => {
10
+ ? (0, exports.formatPublicRoute)({ workspace: constants_1.WORKSPACE, account: constants_1.ACCOUNT, endpoint: constants_1.PUBLIC_ENDPOINT, path })
11
+ : (0, exports.formatPrivateRoute)({ protocol: 'https', vendor: constants_1.APP.VENDOR, name: constants_1.APP.NAME, major: constants_1.APP.MAJOR, account: constants_1.ACCOUNT, workspace: constants_1.WORKSPACE, path });
12
+ const logAvailableRoutes = (service) => {
11
13
  const available = Object.values(service.routes || {}).reduce((acc, route) => `${acc}\n${getPath(route)}`, 'Available service routes:');
12
14
  console.info(available);
13
15
  };
16
+ exports.logAvailableRoutes = logAvailableRoutes;
@@ -1,7 +1,7 @@
1
1
  import { IOClients } from '../../../clients/IOClients';
2
2
  import { ParamsContext, RecorderState, RouteHandler, ServiceContext } from './typings';
3
- declare type HTTPMethods = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH' | 'DEFAULT';
4
- declare type MethodOptions<ClientsT extends IOClients = IOClients, StateT extends RecorderState = RecorderState, CustomT extends ParamsContext = ParamsContext> = Partial<Record<HTTPMethods, RouteHandler<ClientsT, StateT, CustomT> | Array<RouteHandler<ClientsT, StateT, CustomT>>>>;
3
+ type HTTPMethods = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH' | 'DEFAULT';
4
+ type MethodOptions<ClientsT extends IOClients = IOClients, StateT extends RecorderState = RecorderState, CustomT extends ParamsContext = ParamsContext> = Partial<Record<HTTPMethods, RouteHandler<ClientsT, StateT, CustomT> | Array<RouteHandler<ClientsT, StateT, CustomT>>>>;
5
5
  export declare function method<T extends IOClients, U extends RecorderState, V extends ParamsContext>(options: MethodOptions<T, U, V>): {
6
6
  (ctx: ServiceContext<T, U, V>, next: () => Promise<void>): Promise<void>;
7
7
  skipTimer: boolean;
@@ -9,7 +9,7 @@ function methodNotAllowed(ctx) {
9
9
  ctx.set('cache-control', `public, max-age=${TEN_SECONDS_S}`);
10
10
  }
11
11
  function method(options) {
12
- const handlers = ramda_1.mapObjIndexed(handler => compose_1.compose(Array.isArray(handler) ? handler : [handler]), options);
12
+ const handlers = (0, ramda_1.mapObjIndexed)(handler => (0, compose_1.compose)(Array.isArray(handler) ? handler : [handler]), options);
13
13
  const inner = async function forMethod(ctx, next) {
14
14
  const verb = ctx.method.toUpperCase();
15
15
  const handler = handlers[verb] || handlers.DEFAULT || methodNotAllowed;
@@ -1,5 +1,5 @@
1
1
  import { ServiceContext } from './typings';
2
- export declare type StatusTrack = () => EnvMetric[];
2
+ export type StatusTrack = () => EnvMetric[];
3
3
  export interface NamedMetric {
4
4
  name: string;
5
5
  [key: string]: any;
@@ -8,9 +8,11 @@ const cluster_1 = __importDefault(require("cluster"));
8
8
  const constants_1 = require("../../../constants");
9
9
  const BROADCAST_STATUS_TRACK = 'broadcastStatusTrack';
10
10
  const STATUS_TRACK = 'statusTrack';
11
- exports.isStatusTrack = (message) => message === STATUS_TRACK;
12
- exports.isStatusTrackBroadcast = (message) => message === BROADCAST_STATUS_TRACK;
13
- exports.statusTrackHandler = async (ctx) => {
11
+ const isStatusTrack = (message) => message === STATUS_TRACK;
12
+ exports.isStatusTrack = isStatusTrack;
13
+ const isStatusTrackBroadcast = (message) => message === BROADCAST_STATUS_TRACK;
14
+ exports.isStatusTrackBroadcast = isStatusTrackBroadcast;
15
+ const statusTrackHandler = async (ctx) => {
14
16
  var _a, _b, _c;
15
17
  (_b = (_a = ctx.tracing) === null || _a === void 0 ? void 0 : _a.currentSpan) === null || _b === void 0 ? void 0 : _b.setOperationName('builtin:status-track');
16
18
  if (!constants_1.LINKED) {
@@ -19,12 +21,15 @@ exports.statusTrackHandler = async (ctx) => {
19
21
  ctx.body = [];
20
22
  return;
21
23
  };
22
- exports.trackStatus = () => {
24
+ exports.statusTrackHandler = statusTrackHandler;
25
+ const trackStatus = () => {
23
26
  global.metrics.statusTrack().forEach(status => {
24
27
  logStatus(status);
25
28
  });
26
29
  };
27
- exports.broadcastStatusTrack = () => Object.values(cluster_1.default.workers).forEach(worker => worker === null || worker === void 0 ? void 0 : worker.send(STATUS_TRACK));
30
+ exports.trackStatus = trackStatus;
31
+ const broadcastStatusTrack = () => Object.values(cluster_1.default.workers).forEach(worker => worker === null || worker === void 0 ? void 0 : worker.send(STATUS_TRACK));
32
+ exports.broadcastStatusTrack = broadcastStatusTrack;
28
33
  const logStatus = (status) => console.log(JSON.stringify({
29
34
  __VTEX_IO_LOG: true,
30
35
  account: constants_1.ACCOUNT,
@@ -17,8 +17,8 @@ import { Logger } from '../../logger';
17
17
  import { MetricsLogger } from '../../logger/metricsLogger';
18
18
  import { MessagesLoaderV2 } from './graphql/schema/messagesLoaderV2';
19
19
  import { Recorder } from './utils/recorder';
20
- declare type ServerTiming = Record<string, string>;
21
- export declare type Maybe<T> = T | null | undefined;
20
+ type ServerTiming = Record<string, string>;
21
+ export type Maybe<T> = T | null | undefined;
22
22
  export interface TracingContext {
23
23
  tracer: Tracer;
24
24
  currentSpan: Span | undefined;
@@ -44,7 +44,7 @@ export interface EventContext<T extends IOClients, StateT = any> {
44
44
  sender: string;
45
45
  subject: string;
46
46
  }
47
- declare type KnownKeys<T> = {
47
+ type KnownKeys<T> = {
48
48
  [K in keyof T]: string extends K ? never : number extends K ? never : K;
49
49
  } extends {
50
50
  [_ in keyof T]: infer U;
@@ -54,13 +54,13 @@ interface Loaders {
54
54
  messagesV2?: MessagesLoaderV2;
55
55
  immutableMessagesV2?: MessagesLoaderV2;
56
56
  }
57
- export declare type ServiceContext<ClientsT extends IOClients = IOClients, StateT extends RecorderState = RecorderState, CustomT extends ParamsContext = ParamsContext> = Pick<ParameterizedContext<StateT, Context<ClientsT>>, KnownKeys<ParameterizedContext<StateT, Context<ClientsT>>>> & CustomT & {
57
+ export type ServiceContext<ClientsT extends IOClients = IOClients, StateT extends RecorderState = RecorderState, CustomT extends ParamsContext = ParamsContext> = Pick<ParameterizedContext<StateT, Context<ClientsT>>, KnownKeys<ParameterizedContext<StateT, Context<ClientsT>>>> & CustomT & {
58
58
  loaders?: Loaders;
59
59
  };
60
- export declare type RouteHandler<ClientsT extends IOClients = IOClients, StateT extends RecorderState = RecorderState, CustomT extends ParamsContext = ParamsContext> = Middleware<ServiceContext<ClientsT, StateT, CustomT>>;
61
- export declare type EventHandler<ClientsT extends IOClients = IOClients, StateT = void> = Middleware<EventContext<ClientsT, StateT>>;
62
- export declare type Resolver<ClientsT extends IOClients = IOClients, StateT extends RecorderState = RecorderState, CustomT extends ParamsContext = ParamsContext> = GraphQLFieldResolver<any, ServiceContext<ClientsT, StateT, CustomT>, any> | GraphQLFieldConfig<any, ServiceContext<ClientsT, StateT, CustomT>, any>;
63
- export declare type Handler = RouteHandler<IOClients, RecorderState, ParamsContext>;
60
+ export type RouteHandler<ClientsT extends IOClients = IOClients, StateT extends RecorderState = RecorderState, CustomT extends ParamsContext = ParamsContext> = Middleware<ServiceContext<ClientsT, StateT, CustomT>>;
61
+ export type EventHandler<ClientsT extends IOClients = IOClients, StateT = void> = Middleware<EventContext<ClientsT, StateT>>;
62
+ export type Resolver<ClientsT extends IOClients = IOClients, StateT extends RecorderState = RecorderState, CustomT extends ParamsContext = ParamsContext> = GraphQLFieldResolver<any, ServiceContext<ClientsT, StateT, CustomT>, any> | GraphQLFieldConfig<any, ServiceContext<ClientsT, StateT, CustomT>, any>;
63
+ export type Handler = RouteHandler<IOClients, RecorderState, ParamsContext>;
64
64
  export interface HttpRoute {
65
65
  handler: RouteHandler;
66
66
  path: string;
@@ -132,7 +132,7 @@ export interface EventBody {
132
132
  subject: string;
133
133
  key: string;
134
134
  }
135
- export declare type RouteSettingsType = 'pure' | 'workspace' | 'userAndWorkspace';
135
+ export type RouteSettingsType = 'pure' | 'workspace' | 'userAndWorkspace';
136
136
  export interface ServiceRoute {
137
137
  path: string;
138
138
  public?: boolean;
@@ -169,5 +169,5 @@ export interface RawServiceJSON {
169
169
  export interface ServiceJSON extends RawServiceJSON {
170
170
  workers: number;
171
171
  }
172
- export declare type JanusEnv = string;
172
+ export type JanusEnv = string;
173
173
  export {};
@@ -1,5 +1,5 @@
1
1
  import koaCompose from 'koa-compose';
2
2
  import { IOClients } from '../../../../clients/IOClients';
3
3
  import { EventHandler, ParamsContext, RecorderState, RouteHandler } from '../typings';
4
- export declare const compose: <ClientsT extends IOClients, StateT extends RecorderState, CustomT extends ParamsContext>(middlewares: koaCompose.Middleware<import("../typings").ServiceContext<ClientsT, StateT, CustomT>>[]) => koaCompose.ComposedMiddleware<import("../typings").ServiceContext<ClientsT, StateT, CustomT>>;
5
- export declare const composeForEvents: <ClientsT extends IOClients, StateT extends RecorderState>(middlewares: koaCompose.Middleware<import("../typings").EventContext<ClientsT, StateT>>[]) => koaCompose.ComposedMiddleware<import("../typings").EventContext<ClientsT, StateT>>;
4
+ export declare const compose: <ClientsT extends IOClients, StateT extends RecorderState, CustomT extends ParamsContext>(middlewares: RouteHandler<ClientsT, StateT, CustomT>[]) => koaCompose.ComposedMiddleware<import("../typings").ServiceContext<ClientsT, StateT, CustomT>>;
5
+ export declare const composeForEvents: <ClientsT extends IOClients, StateT extends RecorderState>(middlewares: EventHandler<ClientsT, StateT>[]) => koaCompose.ComposedMiddleware<import("../typings").EventContext<ClientsT, StateT>>;
@@ -8,5 +8,7 @@ const koa_compose_1 = __importDefault(require("koa-compose"));
8
8
  const ramda_1 = require("ramda");
9
9
  const cancel_1 = require("../../../../utils/cancel");
10
10
  const time_1 = require("../../../../utils/time");
11
- exports.compose = (middlewares) => koa_compose_1.default(middlewares.map(ramda_1.pipe(time_1.timer, cancel_1.cancel)));
12
- exports.composeForEvents = (middlewares) => koa_compose_1.default(middlewares.map(time_1.timerForEvents));
11
+ const compose = (middlewares) => (0, koa_compose_1.default)(middlewares.map((0, ramda_1.pipe)(time_1.timer, cancel_1.cancel)));
12
+ exports.compose = compose;
13
+ const composeForEvents = (middlewares) => (0, koa_compose_1.default)(middlewares.map(time_1.timerForEvents));
14
+ exports.composeForEvents = composeForEvents;
@@ -1,5 +1,5 @@
1
1
  import { Context } from 'koa';
2
2
  import { IOContext, TracingContext } from '../typings';
3
- declare type HandlerContext = Omit<IOContext, 'route'>;
4
- export declare const prepareHandlerCtx: (header: Context['request']['header'], tracingContext?: TracingContext | undefined) => HandlerContext;
3
+ type HandlerContext = Omit<IOContext, 'route'>;
4
+ export declare const prepareHandlerCtx: (header: Context['request']['header'], tracingContext?: TracingContext) => HandlerContext;
5
5
  export {};
@@ -13,15 +13,15 @@ const binding_1 = require("./../../../../utils/binding");
13
13
  const getPlatform = (account) => {
14
14
  return account.startsWith('gc-') ? 'gocommerce' : 'vtex';
15
15
  };
16
- exports.prepareHandlerCtx = (header, tracingContext) => {
16
+ const prepareHandlerCtx = (header, tracingContext) => {
17
17
  var _a;
18
18
  const partialContext = {
19
19
  account: header[constants_1.ACCOUNT_HEADER],
20
20
  authToken: header[constants_1.CREDENTIAL_HEADER],
21
- binding: header[constants_1.BINDING_HEADER] ? binding_1.parseBindingHeaderValue(header[constants_1.BINDING_HEADER]) : undefined,
21
+ binding: header[constants_1.BINDING_HEADER] ? (0, binding_1.parseBindingHeaderValue)(header[constants_1.BINDING_HEADER]) : undefined,
22
22
  host: header[constants_1.FORWARDED_HOST_HEADER],
23
23
  locale: header[constants_1.LOCALE_HEADER],
24
- operationId: header[constants_1.OPERATION_ID_HEADER] || v4_1.default(),
24
+ operationId: header[constants_1.OPERATION_ID_HEADER] || (0, v4_1.default)(),
25
25
  platform: header[constants_1.PLATFORM_HEADER] || getPlatform(header[constants_1.ACCOUNT_HEADER]),
26
26
  product: header[constants_1.PRODUCT_HEADER],
27
27
  production: ((_a = header[constants_1.WORKSPACE_IS_PRODUCTION_HEADER]) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true' || false,
@@ -29,7 +29,7 @@ exports.prepareHandlerCtx = (header, tracingContext) => {
29
29
  requestId: header[constants_1.REQUEST_ID_HEADER],
30
30
  segmentToken: header[constants_1.SEGMENT_HEADER],
31
31
  sessionToken: header[constants_1.SESSION_HEADER],
32
- tenant: header[constants_1.TENANT_HEADER] ? tenant_1.parseTenantHeaderValue(header[constants_1.TENANT_HEADER]) : undefined,
32
+ tenant: header[constants_1.TENANT_HEADER] ? (0, tenant_1.parseTenantHeaderValue)(header[constants_1.TENANT_HEADER]) : undefined,
33
33
  tracer: new UserLandTracer_1.UserLandTracer(tracingContext === null || tracingContext === void 0 ? void 0 : tracingContext.tracer, tracingContext === null || tracingContext === void 0 ? void 0 : tracingContext.currentSpan),
34
34
  userAgent: process.env.VTEX_APP_ID || '',
35
35
  workspace: header[constants_1.WORKSPACE_HEADER],
@@ -39,3 +39,4 @@ exports.prepareHandlerCtx = (header, tracingContext) => {
39
39
  logger: new logger_1.Logger(partialContext),
40
40
  };
41
41
  };
42
+ exports.prepareHandlerCtx = prepareHandlerCtx;
@@ -27,7 +27,7 @@ class Recorder {
27
27
  const newValueSet = new Set(this._record[headerName]);
28
28
  const currentValue = ctx.response.get(headerName);
29
29
  const parsedCurrentValue = typeof currentValue === 'string' ? currentValue.split(',') : currentValue;
30
- parsedCurrentValue.forEach(cur => newValueSet.add(ramda_1.trim(cur)));
30
+ parsedCurrentValue.forEach(cur => newValueSet.add((0, ramda_1.trim)(cur)));
31
31
  const deduped = Array.from(newValueSet).filter(x => !!x);
32
32
  if (deduped.length > 0) {
33
33
  ctx.set(headerName, deduped);
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toArray = void 0;
4
- exports.toArray = (x) => Array.isArray(x) ? x : [x];
4
+ const toArray = (x) => Array.isArray(x) ? x : [x];
5
+ exports.toArray = toArray;
@@ -4,7 +4,7 @@ exports.UserLandTracer = exports.createTracingContextFromCarrier = void 0;
4
4
  const opentracing_1 = require("opentracing");
5
5
  const TracerSingleton_1 = require("../service/tracing/TracerSingleton");
6
6
  const utils_1 = require("./utils");
7
- exports.createTracingContextFromCarrier = (newSpanName, carrier) => {
7
+ const createTracingContextFromCarrier = (newSpanName, carrier) => {
8
8
  const tracer = TracerSingleton_1.TracerSingleton.getTracer();
9
9
  const rootSpan = tracer.extract(opentracing_1.FORMAT_HTTP_HEADERS, carrier);
10
10
  if (rootSpan == null) {
@@ -15,12 +15,13 @@ exports.createTracingContextFromCarrier = (newSpanName, carrier) => {
15
15
  userlandTracer.lockFallbackSpan();
16
16
  return { span, tracer: userlandTracer };
17
17
  };
18
+ exports.createTracingContextFromCarrier = createTracingContextFromCarrier;
18
19
  class UserLandTracer {
19
20
  constructor(tracer, fallbackSpan) {
20
21
  this.tracer = tracer;
21
22
  this.fallbackSpan = fallbackSpan;
22
23
  this.fallbackSpanLock = false;
23
- const { traceId, isSampled } = utils_1.getTraceInfo(fallbackSpan);
24
+ const { traceId, isSampled } = (0, utils_1.getTraceInfo)(fallbackSpan);
24
25
  this._traceId = traceId;
25
26
  this._isSampled = isSampled;
26
27
  }
@@ -27,7 +27,7 @@ class ErrorReport extends node_error_report_1.ErrorReportBase {
27
27
  if (args.originalError instanceof ErrorReport) {
28
28
  return args.originalError;
29
29
  }
30
- return new ErrorReport(node_error_report_1.createErrorReportBaseArgs(args));
30
+ return new ErrorReport((0, node_error_report_1.createErrorReportBaseArgs)(args));
31
31
  }
32
32
  /**
33
33
  * Inject information about the error wrapped by this ErrorReport
@@ -38,24 +38,24 @@ class ErrorReport extends node_error_report_1.ErrorReportBase {
38
38
  var _a, _b, _c, _d;
39
39
  span === null || span === void 0 ? void 0 : span.setTag(__1.TracingTags.ERROR, 'true');
40
40
  const indexedLogs = {
41
- ["error.kind" /* ERROR_KIND */]: this.kind,
42
- ["error.id" /* ERROR_ID */]: this.metadata.errorId,
41
+ ["error.kind" /* ErrorReportLogFields.ERROR_KIND */]: this.kind,
42
+ ["error.id" /* ErrorReportLogFields.ERROR_ID */]: this.metadata.errorId,
43
43
  };
44
- if (node_error_report_1.isRequestInfo(this.parsedInfo) &&
44
+ if ((0, node_error_report_1.isRequestInfo)(this.parsedInfo) &&
45
45
  this.parsedInfo.response &&
46
- node_error_report_1.isInfraErrorData((_a = this.parsedInfo.response) === null || _a === void 0 ? void 0 : _a.data)) {
47
- indexedLogs["error.server.code" /* ERROR_SERVER_CODE */] = this.parsedInfo.response.data.code;
48
- indexedLogs["error.server.request_id" /* ERROR_SERVER_REQUEST_ID */] = this.parsedInfo.response.data.requestId;
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
49
  }
50
50
  const serializableError = this.toObject();
51
51
  span === null || span === void 0 ? void 0 : span.log({
52
52
  event: 'error',
53
53
  ...indexedLogs,
54
- ["error.message" /* ERROR_MESSAGE */]: serializableError.message,
55
- ["error.metadata.metrics.InstantiationTime" /* ERROR_METADATA_METRICS_INSTANTIATION_TIME */]: (_b = serializableError.metadata) === null || _b === void 0 ? void 0 : _b.reportCount,
56
- ["error.metadata.reportCount" /* 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" /* ERROR_STACK */]: serializableError.stack,
58
- ["error.code" /* ERROR_CODE */]: serializableError.code,
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
59
  });
60
60
  if (logger && this.shouldLogToSplunk(span)) {
61
61
  logger.error(serializableError);
@@ -65,7 +65,7 @@ class ErrorReport extends node_error_report_1.ErrorReportBase {
65
65
  }
66
66
  shouldLogToSplunk(span) {
67
67
  var _a;
68
- return !this.isErrorReported() && ((_a = utils_1.getTraceInfo(span)) === null || _a === void 0 ? void 0 : _a.isSampled);
68
+ return !this.isErrorReported() && ((_a = (0, utils_1.getTraceInfo)(span)) === null || _a === void 0 ? void 0 : _a.isSampled);
69
69
  }
70
70
  }
71
71
  exports.ErrorReport = ErrorReport;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FORMAT_HTTP_HEADERS = exports.Span = void 0;
3
+ exports.FORMAT_HTTP_HEADERS = exports.Span = exports.getTraceInfo = exports.createTracingContextFromCarrier = exports.TracingTags = exports.SpanReferenceTypes = exports.createSpanReference = exports.ErrorReport = exports.ErrorKinds = void 0;
4
4
  const opentracing_1 = require("opentracing");
5
5
  Object.defineProperty(exports, "FORMAT_HTTP_HEADERS", { enumerable: true, get: function () { return opentracing_1.FORMAT_HTTP_HEADERS; } });
6
6
  Object.defineProperty(exports, "Span", { enumerable: true, get: function () { return opentracing_1.Span; } });
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cloneAndSanitizeHeaders = exports.getTraceInfo = void 0;
4
4
  const node_error_report_1 = require("@vtex/node-error-report");
5
5
  function getTraceInfo(span) {
6
- var _a, _b, _c;
6
+ var _a, _b;
7
7
  const spanContext = span === null || span === void 0 ? void 0 : span.context();
8
8
  return {
9
- isSampled: (_c = (_b = (_a = spanContext) === null || _a === void 0 ? void 0 : _a.isSampled) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : false,
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
10
  traceId: spanContext === null || spanContext === void 0 ? void 0 : spanContext.toTraceId(),
11
11
  };
12
12
  }
@@ -17,7 +17,7 @@ exports.getTraceInfo = getTraceInfo;
17
17
  * @param headersObj The headers object
18
18
  * @param resultFieldsPrefix The prefix that will be added to each field on the result object
19
19
  */
20
- exports.cloneAndSanitizeHeaders = (headersObj, resultFieldsPrefix = '') => {
20
+ const cloneAndSanitizeHeaders = (headersObj, resultFieldsPrefix = '') => {
21
21
  const ret = {};
22
22
  const entries = Object.entries(headersObj);
23
23
  for (const [key, val] of entries) {
@@ -35,7 +35,8 @@ exports.cloneAndSanitizeHeaders = (headersObj, resultFieldsPrefix = '') => {
35
35
  // },
36
36
  // ```
37
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) ? node_error_report_1.sanitizeAuth(val) : val;
38
+ ret[`${resultFieldsPrefix}${key}`] = node_error_report_1.authFields.includes(key) ? (0, node_error_report_1.sanitizeAuth)(val) : val;
39
39
  }
40
40
  return ret;
41
41
  };
42
+ exports.cloneAndSanitizeHeaders = cloneAndSanitizeHeaders;
@@ -1,7 +1,7 @@
1
1
  import { Logger } from './../service/logger/logger';
2
2
  import { ConflictsResolver, VBase } from '../clients/infra/VBase';
3
- declare type Configuration = Record<string, ConfigurationData | ConfigurationData[] | object> | ConfigurationData[];
4
- declare type ConfigurationData = Record<string, object>;
3
+ type Configuration = Record<string, ConfigurationData | ConfigurationData[] | object> | ConfigurationData[];
4
+ type ConfigurationData = Record<string, object>;
5
5
  export declare class MineWinsConflictsResolver<T> implements ConflictsResolver<T> {
6
6
  /***
7
7
  * Take mine and merge with master keys that have no conflict
@@ -13,8 +13,8 @@ export declare class MineWinsConflictsResolver<T> implements ConflictsResolver<T
13
13
  private comparableKeys;
14
14
  constructor(client: VBase, bucket: string, filePath: string, comparableKeys?: string[]);
15
15
  resolve(logger?: Logger): Promise<any>;
16
- resolveAll(): Promise<(Record<string, object | Record<string, object> | Record<string, object>[]> | Record<string, object>[])[]>;
17
- protected mergeMineWins(base: Configuration, master: Configuration, mine: Configuration): Record<string, object | Record<string, object> | Record<string, object>[]> | Record<string, object>[];
16
+ resolveAll(): Promise<Configuration[]>;
17
+ protected mergeMineWins(base: Configuration, master: Configuration, mine: Configuration): Configuration;
18
18
  private parseConflict;
19
19
  private serializeContentByMimetype;
20
20
  private parseContentByMimetype;
@@ -40,10 +40,10 @@ class MineWinsConflictsResolver {
40
40
  return resolvedConflicts;
41
41
  }
42
42
  mergeMineWins(base, master, mine) {
43
- if (util_1.isArray(master)) {
43
+ if ((0, util_1.isArray)(master)) {
44
44
  return this.mergeMineWinsArray((base || []), master, (mine || []));
45
45
  }
46
- else if (util_1.isObject(master)) {
46
+ else if ((0, util_1.isObject)(master)) {
47
47
  return this.mergeMineWinsObject((base || {}), master, (mine || {}));
48
48
  }
49
49
  return mine ? mine : master;
@@ -85,16 +85,16 @@ class MineWinsConflictsResolver {
85
85
  mergeMineWinsObject(base, master, mine) {
86
86
  const merged = { ...master, ...mine };
87
87
  Object.entries(merged).forEach(([key, value]) => {
88
- 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])) {
89
89
  delete merged[key]; // value deleted from master with no conflict
90
90
  }
91
91
  else if (base[key] && master[key] && !mine[key]) {
92
92
  delete merged[key]; // value deleted from mine
93
93
  }
94
- else if (util_1.isArray(value)) {
94
+ else if ((0, util_1.isArray)(value)) {
95
95
  merged[key] = this.mergeMineWinsArray((base[key] || []), (master[key] || []), value);
96
96
  }
97
- else if (util_1.isObject(value)) {
97
+ else if ((0, util_1.isObject)(value)) {
98
98
  merged[key] = this.mergeMineWins((base[key] || {}), (master[key] || {}), (value || {}));
99
99
  }
100
100
  });
@@ -109,7 +109,7 @@ class MineWinsConflictsResolver {
109
109
  base.forEach((baseItem) => {
110
110
  const foundInMaster = this.isObjectInArray(baseItem, master);
111
111
  if (!foundInMaster) {
112
- const foundInMine = mine.findIndex((mineItem) => ramda_1.equals(mineItem, baseItem));
112
+ const foundInMine = mine.findIndex((mineItem) => (0, ramda_1.equals)(mineItem, baseItem));
113
113
  if (foundInMine > -1) {
114
114
  mine.splice(foundInMine, 1);
115
115
  }
@@ -117,7 +117,7 @@ class MineWinsConflictsResolver {
117
117
  });
118
118
  }
119
119
  isObjectInArray(obj, array) {
120
- return array.find((item) => ramda_1.equals(item, obj));
120
+ return array.find((item) => (0, ramda_1.equals)(item, obj));
121
121
  }
122
122
  appendMasterAddedElements(base, master, mine) {
123
123
  master.forEach((item) => {
@@ -128,10 +128,10 @@ class MineWinsConflictsResolver {
128
128
  }
129
129
  shouldAddToMine(item, base, mine) {
130
130
  if (this.comparableKeys && Object.keys(item).some((key) => this.comparableKeys.includes(key))) {
131
- return (!mine.some((mineItem) => this.comparableKeys.some((key) => ramda_1.eqProps(key, item, mineItem))) &&
132
- !base.some((baseItem) => ramda_1.equals(baseItem, item)));
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)));
133
133
  }
134
- 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));
135
135
  }
136
136
  }
137
137
  exports.MineWinsConflictsResolver = MineWinsConflictsResolver;
package/lib/utils/app.js CHANGED
@@ -7,43 +7,59 @@ exports.majorEqualAndGreaterThan = exports.sameMajor = exports.isValidAppIdOrLoc
7
7
  const semver_1 = __importDefault(require("semver"));
8
8
  // Note: The name that composes the part of the appId that precedes the
9
9
  // character '@' includes the name given to the app and the vendor name.
10
- exports.removeBuild = (id) => id.split('+')[0];
11
- exports.removeVersionFromAppId = (appId) => appId.split('@')[0];
12
- exports.extractVersionFromAppId = (appId) => appId.split('@').slice(-1)[0];
13
- exports.transformToLinkedLocator = (appId) => appId.replace(/\+build.*$/, '+linked');
14
- exports.formatLocator = (name, versionAndBuild) => `${name}@${exports.removeBuild(versionAndBuild)}`;
15
- exports.isLinkedApp = (app) => app.id.includes('+build');
16
- exports.parseAppId = (appId) => {
17
- const name = exports.removeVersionFromAppId(appId);
18
- const version = exports.extractVersionFromAppId(appId);
10
+ const removeBuild = (id) => id.split('+')[0];
11
+ exports.removeBuild = removeBuild;
12
+ const removeVersionFromAppId = (appId) => appId.split('@')[0];
13
+ exports.removeVersionFromAppId = removeVersionFromAppId;
14
+ const extractVersionFromAppId = (appId) => appId.split('@').slice(-1)[0];
15
+ exports.extractVersionFromAppId = extractVersionFromAppId;
16
+ const transformToLinkedLocator = (appId) => appId.replace(/\+build.*$/, '+linked');
17
+ exports.transformToLinkedLocator = transformToLinkedLocator;
18
+ const formatLocator = (name, versionAndBuild) => `${name}@${(0, exports.removeBuild)(versionAndBuild)}`;
19
+ exports.formatLocator = formatLocator;
20
+ const isLinkedApp = (app) => app.id.includes('+build');
21
+ exports.isLinkedApp = isLinkedApp;
22
+ const parseAppId = (appId) => {
23
+ const name = (0, exports.removeVersionFromAppId)(appId);
24
+ const version = (0, exports.extractVersionFromAppId)(appId);
19
25
  const splittedVersion = version.split('+');
20
26
  return {
21
27
  build: splittedVersion[1],
22
- locator: exports.formatLocator(name, version),
28
+ locator: (0, exports.formatLocator)(name, version),
23
29
  name,
24
30
  version: splittedVersion[0],
25
31
  };
26
32
  };
27
- exports.formatAppId = ({ locator, build }) => (build ? `${locator}+${build}` : locator);
28
- exports.satisfies = (appId, version) => {
29
- const { version: appVer } = exports.parseAppId(appId);
33
+ exports.parseAppId = parseAppId;
34
+ const formatAppId = ({ locator, build }) => (build ? `${locator}+${build}` : locator);
35
+ exports.formatAppId = formatAppId;
36
+ const satisfies = (appId, version) => {
37
+ const { version: appVer } = (0, exports.parseAppId)(appId);
30
38
  return semver_1.default.satisfies(appVer, version);
31
39
  };
32
- exports.versionToMajor = (version) => version.split('.')[0];
33
- exports.versionToMajorRange = (version) => `${exports.versionToMajor(version)}.x`;
34
- exports.formatMajorLocator = (name, version) => {
35
- const majorRange = exports.versionToMajorRange(version);
40
+ exports.satisfies = satisfies;
41
+ const versionToMajor = (version) => version.split('.')[0];
42
+ exports.versionToMajor = versionToMajor;
43
+ const versionToMajorRange = (version) => `${(0, exports.versionToMajor)(version)}.x`;
44
+ exports.versionToMajorRange = versionToMajorRange;
45
+ const formatMajorLocator = (name, version) => {
46
+ const majorRange = (0, exports.versionToMajorRange)(version);
36
47
  return `${name}@${majorRange}`;
37
48
  };
38
- exports.appIdToAppAtMajor = (appId) => {
39
- const { name, version } = exports.parseAppId(appId);
40
- const majorRange = exports.versionToMajorRange(version);
49
+ exports.formatMajorLocator = formatMajorLocator;
50
+ const appIdToAppAtMajor = (appId) => {
51
+ const { name, version } = (0, exports.parseAppId)(appId);
52
+ const majorRange = (0, exports.versionToMajorRange)(version);
41
53
  return `${name}@${majorRange}`;
42
54
  };
55
+ exports.appIdToAppAtMajor = appIdToAppAtMajor;
43
56
  // SemVer regex from https://github.com/sindresorhus/semver-regex
44
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\-]+)*)?$/;
45
- exports.isValidAppIdOrLocator = (appId) => {
58
+ const isValidAppIdOrLocator = (appId) => {
46
59
  return APP_ID_REGEX.test(appId);
47
60
  };
48
- exports.sameMajor = (v1, v2) => exports.versionToMajor(v1) === exports.versionToMajor(v2);
49
- exports.majorEqualAndGreaterThan = (v1, v2) => exports.sameMajor(v1, v2) && semver_1.default.gt(v1, v2);
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,4 +1,5 @@
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';
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -14,7 +18,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
14
18
  var __importStar = (this && this.__importStar) || function (mod) {
15
19
  if (mod && mod.__esModule) return mod;
16
20
  var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
22
  __setModuleDefault(result, mod);
19
23
  return result;
20
24
  };
@@ -26,16 +30,17 @@ exports.getFallbackFile = exports.saveVersion = exports.updateMetaInfoCache = ex
26
30
  const crypto_1 = __importDefault(require("crypto"));
27
31
  const ramda_1 = require("ramda");
28
32
  const semver = __importStar(require("semver"));
29
- exports.getMetaInfoKey = (account, workspace) => `${account}-${workspace}-meta-infos`;
33
+ const getMetaInfoKey = (account, workspace) => `${account}-${workspace}-meta-infos`;
34
+ exports.getMetaInfoKey = getMetaInfoKey;
30
35
  const hashMD5 = (text) => crypto_1.default
31
36
  .createHash('md5')
32
37
  .update(text)
33
38
  .digest('hex');
34
- exports.updateMetaInfoCache = async (cacheStorage, account, workspace, dependencies, logger) => {
39
+ const updateMetaInfoCache = async (cacheStorage, account, workspace, dependencies, logger) => {
35
40
  if (workspace !== 'master') {
36
41
  return;
37
42
  }
38
- const key = exports.getMetaInfoKey(account, workspace);
43
+ const key = (0, exports.getMetaInfoKey)(account, workspace);
39
44
  const hash = hashMD5(dependencies.toString());
40
45
  try {
41
46
  const storedDependencies = await cacheStorage.get(key) || '';
@@ -48,10 +53,11 @@ exports.updateMetaInfoCache = async (cacheStorage, account, workspace, dependenc
48
53
  }
49
54
  return;
50
55
  };
56
+ exports.updateMetaInfoCache = updateMetaInfoCache;
51
57
  const getFallbackKey = (appName, major) => `${appName}@${major}`;
52
- exports.saveVersion = async (app, cacheStorage) => {
58
+ const saveVersion = async (app, cacheStorage) => {
53
59
  const [appName, version] = app.split('@');
54
- const major = ramda_1.head(version.split('.')) || '';
60
+ const major = (0, ramda_1.head)(version.split('.')) || '';
55
61
  const fallbackKey = getFallbackKey(appName, major);
56
62
  if (cacheStorage.has(fallbackKey)) {
57
63
  const savedVersion = await cacheStorage.get(fallbackKey);
@@ -63,9 +69,10 @@ exports.saveVersion = async (app, cacheStorage) => {
63
69
  await cacheStorage.set(fallbackKey, version);
64
70
  }
65
71
  };
66
- exports.getFallbackFile = async (app, path, cacheStorage, apps) => {
72
+ exports.saveVersion = saveVersion;
73
+ const getFallbackFile = async (app, path, cacheStorage, apps) => {
67
74
  const [appName, version] = app.split('@');
68
- const major = ramda_1.head(version.split('.')) || '';
75
+ const major = (0, ramda_1.head)(version.split('.')) || '';
69
76
  const fallbackKey = getFallbackKey(appName, major);
70
77
  const fallbackVersion = await cacheStorage.get(fallbackKey);
71
78
  if (fallbackVersion) {
@@ -74,3 +81,4 @@ exports.getFallbackFile = async (app, path, cacheStorage, apps) => {
74
81
  }
75
82
  throw Error('Fallback version was not found');
76
83
  };
84
+ exports.getFallbackFile = getFallbackFile;