{"version":3,"file":"index.modern.mjs","sources":["../src/v2/constants.ts","../src/v2/core/http-client/client.config.ts","../src/v2/configs.ts","../node_modules/tslib/tslib.es6.mjs","../src/v2/core/response/clear-response.ts","../src/v2/core/errors/index.ts","../src/v2/core/response/handle-api-error.ts","../src/v2/core/http-client/cache/key-builder.ts","../src/v2/core/http-client/client.ts","../src/v2/core/abstract-http-resource.ts","../src/v2/core/validation/shortcuts/alternatives.validator.ts","../src/v2/core/validation/shortcuts/primitives.ts","../src/v2/core/validation/shortcuts/type-or-array.validator.ts","../src/v2/core/validation/validate-data.ts","../src/v2/resources/bots/dto/addSubscriber.dto.ts","../src/v2/resources/bots/dto/delSubscriber.dto.ts","../src/v2/resources/bots/dto/get.dto.ts","../src/v2/resources/bots/dto/getSteps.dto.ts","../src/v2/resources/bots/bots.api.ts","../src/v2/core/validation/shortcuts/enum.validator.ts","../src/v2/resources/deliveries/dto/get.status.dto.ts","../src/v2/resources/deliveries/dto/get.type.dto.ts","../src/v2/resources/deliveries/dto/get.dto.ts","../src/v2/resources/deliveries/dto/stat.dto.ts","../src/v2/resources/deliveries/dto/statCount.dto.ts","../src/v2/resources/deliveries/deliveries.api.ts","../src/v2/resources/globalVars/dto/del.dto.ts","../src/v2/resources/globalVars/dto/get.dto.ts","../src/v2/resources/globalVars/dto/set.dto.ts","../src/v2/resources/globalVars/globalVars.api.ts","../src/v2/resources/groups/dto/get.dto.ts","../src/v2/resources/groups/groups.api.ts","../src/v2/resources/integration/integration.dto.ts","../src/v2/resources/integration/integration.api.ts","../src/v2/resources/subscribers/dto/add.dto.ts","../src/v2/resources/subscribers/dto/del.dto.ts","../src/v2/resources/share/types/subscription-source-type.ts","../src/v2/resources/subscribers/dto/get.dto.ts","../src/v2/resources/share/types/utm-params-type.ts","../src/v2/resources/subscribers/dto/getStatsBase.dto.ts","../src/v2/resources/subscribers/dto/statCount.dto.ts","../src/v2/resources/subscribers/dto/statSubscribe.dto.ts","../src/v2/resources/subscribers/subscribers.api.ts","../src/v2/resources/subscriptions/dto/subscription.base-editable.ts","../src/v2/resources/subscriptions/dto/add.dto.ts","../src/v2/resources/subscriptions/dto/del.dto.ts","../src/v2/resources/subscriptions/dto/edit.dto.ts","../src/v2/resources/subscriptions/dto/get.dto.ts","../src/v2/resources/subscriptions/subscription.api.ts","../src/v2/resources/utms/dto/add.dto.ts","../src/v2/resources/utms/dto/del.dto.ts","../src/v2/resources/utms/dto/edit.dto.ts","../src/v2/resources/utms/dto/get.dto.ts","../src/v2/resources/utms/dto/getLink.dto.ts","../src/v2/resources/utms/dto/statCount.dto.ts","../src/v2/resources/utms/dto/statSubscribe.dto.ts","../src/v2/resources/utms/utms.api.ts","../src/v2/resources/vars/dto/del.dto.ts","../src/v2/resources/vars/dto/get.dto.ts","../src/v2/resources/vars/dto/set.dto.ts","../src/v2/resources/vars/var.api.ts","../src/v2/client.ts"],"sourcesContent":["export const API_BASE_URL = 'https://senler.ru/api';\nexport const DEFAULT_API_VERSION = '2.0';\n\nexport const ERROR_CODES: Record<number, string> = {\n  0: 'Unknown error',\n  1: 'One of the required request parameters is missing',\n  2: 'Hash is missing',\n  3: 'Incorrect hash',\n  4: 'User did not allow sending messages',\n  5: 'The specified user was not found',\n  6: 'The specified community ID was not found',\n  7: 'The specified group ID was not found',\n  8: 'The specified tag ID was not found',\n  9: 'Too many requests per second (maximum 20)',\n  10: 'The specified bot ID was not found',\n  11: 'The variable must contain only Latin letters or numbers',\n  12: 'Incorrect parameter value',\n  13: 'The specified token was not found',\n  14: 'Invalid token',\n};\n","import axiosRetry, { IAxiosRetryConfigExtended } from 'axios-retry';\nimport { CacheConfig } from './cache';\n\nexport interface RetryConfig extends IAxiosRetryConfigExtended {\n  delayFactor?: number;\n}\n\nexport const BASE_RETRY_CONFIG: RetryConfig = {\n  retries: 5,\n\n  retryDelay(retryCount, error) {\n    return axiosRetry.exponentialDelay(retryCount, error, 1000);\n  },\n\n  retryCondition: (error): boolean => {\n    const networkError = axiosRetry.isNetworkOrIdempotentRequestError(error);\n\n    const statusCode5xx = error.response && error.response.status >= 500 && error.response.status < 600;\n    const statusCode429 = error.response && error.response.status === 429;\n\n    const isENOTFOUND = error.code === 'ENOTFOUND';\n\n    return statusCode5xx || statusCode429 || networkError || isENOTFOUND;\n  },\n};\n\nexport const BASE_CACHE_CONFIG: CacheConfig = {\n  enabled: false,\n};\n","export { CacheConfig, RequestCacheConfig } from './core/http-client/cache/cache.dto';\nexport { RetryConfig } from './core/http-client/client.config';\nexport { LoggingConfig } from './core/http-client/client.dto';\n\nimport pino from 'pino';\n\nimport { API_BASE_URL, DEFAULT_API_VERSION } from './constants';\n\nexport { BASE_CACHE_CONFIG, BASE_RETRY_CONFIG } from './core/http-client/client.config';\n\nexport const BASE_LOGGING_CONFIG = {\n  level: 'error',\n  base: { pid: false },\n  timestamp: pino.stdTimeFunctions.isoTime,\n};\n\nexport const BASE_API_CONFIG = {\n  baseUrl: API_BASE_URL,\n  apiVersion: DEFAULT_API_VERSION,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n  return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  var r, s = 0;\n  function next() {\n    while (r = env.stack.pop()) {\n      try {\n        if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n        if (r.dispose) {\n          var result = r.dispose.call(r.value);\n          if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n        }\n        else s |= 1;\n      }\n      catch (e) {\n        fail(e);\n      }\n    }\n    if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","/**\n * Decorator that removes specific metadata fields (`success`, `error_code`, `error_message`)\n * from the response object of an API method. This is useful for returning only the relevant\n * data to the user or client, without any status-related or error-related fields.\n */\nexport function clearResponse(_target: any, _propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor {\n  const originalMethod = descriptor.value;\n\n  descriptor.value = async function (...args: any[]): Promise<any> {\n    const result = await originalMethod.apply(this, args);\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const { success, error_code, error_message, ...filteredResult } = result;\n\n    return filteredResult;\n  };\n\n  return descriptor;\n}\n","import { ERROR_CODES } from '../../constants';\n\n/**\n * Raised by HttpClient when api returns `success: false`.\n * [See](https://help.senler.ru/senler/dev/api/vozvrashaemye-oshibki).\n */\nexport class ApiError extends Error {\n  public errorCode: number;\n  public details: object | undefined;\n\n  constructor(errorCode: number | any, errorMessage?: string) {\n    const message = ApiError.buildErrorMessage(errorCode, errorMessage);\n\n    super(message);\n\n    this.name = 'ApiError';\n    this.errorCode = errorCode;\n    this.details = { errorCode, errorMessage };\n  }\n\n  public static buildErrorMessage(code: any, responseErrorMessage?: string): string {\n    let message: string;\n\n    if (typeof code === 'number' && code in ERROR_CODES) {\n      message = ERROR_CODES[code];\n    } else {\n      message = 'Undefined error';\n    }\n\n    if (responseErrorMessage) {\n      message = message + ', details: ' + responseErrorMessage;\n    }\n\n    return message;\n  }\n}\n","import { ApiError } from '../errors';\nimport { BaseResponse } from './base-response';\n\n/**\n * Decorator that checks the `success` field from the response object of an API method.\n * If `success` is `false`, it throws an `ApiError` with the associated error code.\n * The decorator is intended to handle errors based on the response structure documented at:\n * https://help.senler.ru/senler/dev/api/vozvrashaemye-oshibki\n */\nexport function handleApiError(_target: any, _propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor {\n  const originalMethod = descriptor.value;\n\n  descriptor.value = async function (...args: any[]): Promise<any> {\n    const result: BaseResponse = await originalMethod.apply(this, args);\n\n    if (result.success === false) {\n      throw new ApiError(result.error_code, result.error_message);\n    }\n\n    return result;\n  };\n\n  return descriptor;\n}\n","import { AxiosDefaults, AxiosInstance, AxiosRequestConfig } from 'axios';\n\ntype CachedParameters = 'headers' | 'params' | 'data';\n\nconst _ = JSON.stringify;\n\nexport class KeyBuilder {\n  public static buildKey(url?: string, requestParams?: Pick<AxiosRequestConfig, CachedParameters>, axios?: AxiosInstance, keyPrefix: string = 'SENLER-SDK-CACHE'): string {\n    const axiosInstanceParams = this._getAxiosInstanceParams(axios);\n\n    return [keyPrefix, url, _(requestParams), _(axiosInstanceParams)].join(':');\n  }\n\n  protected static _getAxiosInstanceParams(axios?: AxiosInstance): Pick<AxiosDefaults, CachedParameters> | {} {\n    if (!axios) return {};\n\n    return {\n      headers: axios.defaults.headers,\n      params: axios.defaults.params,\n      data: axios.defaults.data,\n    };\n  }\n}\n","import axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport axiosRetry from 'axios-retry';\nimport pino, { Logger } from 'pino';\nimport { BASE_API_CONFIG, BASE_LOGGING_CONFIG } from '../../configs';\nimport { clearResponse } from '../response/clear-response';\nimport { handleApiError } from '../response/handle-api-error';\nimport { CacheConfig, KeyBuilder } from './cache';\nimport { RequestCacheConfig } from './cache/cache.dto';\nimport { BASE_RETRY_CONFIG, RetryConfig } from './client.config';\nimport { ApiConfig, CustomAxiosRequestConfig, LoggingConfig } from './client.dto';\n\nexport class HttpClient {\n  private readonly client: AxiosInstance;\n  private logger: Logger;\n\n  private readonly axiosRetryConfig: RetryConfig;\n  private readonly apiConfig: ApiConfig;\n  private readonly cacheConfig: CacheConfig;\n\n  constructor(config: { apiConfig: ApiConfig; loggingConfig?: LoggingConfig; axiosRetryConfig?: RetryConfig; cacheConfig?: CacheConfig }) {\n    this.apiConfig = Object.assign(BASE_API_CONFIG, config.apiConfig);\n    this.cacheConfig = config.cacheConfig ?? { enabled: false };\n    this.axiosRetryConfig = this.buildRetryConfig(config.axiosRetryConfig);\n\n    this.logger = this.createLogger(config.loggingConfig);\n    this.client = this.createAxiosClient();\n  }\n\n  @clearResponse\n  @handleApiError\n  public async request<T>(url: string, data?: AxiosRequestConfig['params'], cacheConfig?: RequestCacheConfig): Promise<T> {\n    const requestId = this.generateRequestId();\n    const logger = this.createChildRequestLogger(url, requestId);\n\n    cacheConfig = Object.assign(this.cacheConfig, cacheConfig);\n\n    const cachedData = await this.getCachedData<T>(url, data, cacheConfig, requestId);\n    if (cachedData) {\n      logger.info({ requestData: data, cachedData }, 'Return cached response');\n      return cachedData;\n    }\n\n    logger.info({ data }, 'Send request');\n\n    try {\n      const response: AxiosResponse<T> = await this.client.postForm<T>(url, data, { requestId } as CustomAxiosRequestConfig);\n\n      logger.info({ code: response.status, data: response.data }, 'Received response');\n\n      await this.saveCacheIfNeed(url, data, response.data, cacheConfig, requestId);\n\n      return response.data;\n    } catch (error) {\n      this.logError(error, url, data, logger);\n      throw error;\n    }\n  }\n\n  private async getCachedData<T>(url: string, data?: AxiosRequestConfig['params'], cacheConfig?: CacheConfig, requestId?: string): Promise<T | null> {\n    if (!cacheConfig?.enabled || (cacheConfig.enabled && !cacheConfig.manager)) return null;\n\n    const logger = this.createChildRequestLogger(url, requestId || 'unknown');\n\n    logger.debug('Checking cache');\n\n    const key = KeyBuilder.buildKey(url, { data }, this.client);\n\n    const cache = await cacheConfig.manager!.get<T>(key);\n\n    if (!cache) {\n      logger.debug({ key }, 'No cache found:');\n      return null;\n    }\n\n    logger.debug({ key, cache }, 'Found cache:');\n    return cache;\n  }\n\n  private async saveCacheIfNeed(\n    url: string,\n    requestData: AxiosRequestConfig['params'],\n    responseData: AxiosResponse['data'],\n    requestCacheConfig?: RequestCacheConfig,\n    requestId?: string,\n  ): Promise<void> {\n    if (!requestCacheConfig?.enabled || (requestCacheConfig.enabled && !requestCacheConfig.manager)) return;\n    if (!responseData.success) return;\n\n    const logger = this.createChildRequestLogger(url, requestId || 'unknown');\n\n    const key = KeyBuilder.buildKey(url, { data: requestData }, this.client);\n\n    await requestCacheConfig.manager!.set(key, responseData, requestCacheConfig.ttl);\n\n    logger.debug({ key, requestCacheConfig, data: responseData }, 'Set cache');\n  }\n\n  private createAxiosClient(): AxiosInstance {\n    const axiosConfig: AxiosRequestConfig = {\n      baseURL: this.apiConfig.baseUrl,\n      params: {\n        access_token: this.apiConfig.accessToken,\n        vk_group_id: this.apiConfig.vkGroupId,\n        v: this.apiConfig.apiVersion,\n      },\n    };\n\n    this.logger.debug({ axiosConfig, axiosRetryConfig: this.axiosRetryConfig }, 'Create axios client:');\n\n    const instance = axios.create(axiosConfig);\n\n    axiosRetry(instance, this.axiosRetryConfig);\n\n    return instance;\n  }\n\n  private createLogger(loggingConfig?: LoggingConfig): Logger {\n    loggingConfig = Object.assign(BASE_LOGGING_CONFIG, loggingConfig);\n\n    const { destination, ...loggerOptions } = loggingConfig;\n\n    return pino(loggerOptions, destination);\n  }\n\n  private createChildRequestLogger(endpoint: string, requestId: string): Logger {\n    return this.logger.child({ endpoint, requestId });\n  }\n\n  private buildRetryConfig(axiosRetryConfig?: RetryConfig): RetryConfig {\n    axiosRetryConfig = Object.assign(BASE_RETRY_CONFIG, axiosRetryConfig);\n    return this.appendLoggingOnRetry(axiosRetryConfig);\n  }\n\n  private appendLoggingOnRetry(oldRetryConfig: RetryConfig): RetryConfig {\n    return {\n      ...oldRetryConfig,\n\n      onRetry: async (retryCount: number, error: AxiosError, requestConfig: AxiosRequestConfig): Promise<void> => {\n        if (oldRetryConfig.onRetry) await oldRetryConfig.onRetry(retryCount, error, requestConfig);\n\n        this.logRetrying(retryCount, error, requestConfig);\n      },\n    };\n  }\n\n  private logError(error: unknown | Error | AxiosError, url: string, data: any, logger: Logger): void {\n    const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n    logger.error({ url, data, error }, `Failed request: ${errorMessage}`);\n  }\n\n  private logRetrying(retryCount: number, error: AxiosError, requestConfig: AxiosRequestConfig): void {\n    const logger = this.createChildRequestLogger((requestConfig as CustomAxiosRequestConfig).url, (requestConfig as CustomAxiosRequestConfig).requestId);\n    logger.warn({ requestConfig }, `Request ${retryCount} attempt failed, error: ${error.message}`);\n  }\n\n  private generateRequestId = (): string => Math.random().toString(16).slice(2);\n}\n","import { HttpClient } from './http-client';\n\nexport abstract class HttpResource {\n  protected httpClient: HttpClient;\n\n  abstract RESOURCE_NAME: string;\n\n  constructor(httpClient: HttpClient) {\n    this.httpClient = httpClient;\n  }\n}\n","import Joi from 'joi';\n\n/**\n * Shortcut for alternatives\n * @param combinations Array of schemas\n * @param setRequired Use all schemas as required\n * @returns Joi.Alternatives.try(your schemas)\n */\nexport const Alternatives = (combinations: Joi.AnySchema[], setRequired: boolean = false, setOptional: boolean = false): Joi.AlternativesSchema<any> => {\n  let schemas = combinations.map((schema) => (setRequired ? schema.required() : schema));\n  schemas = combinations.map((schema) => (setOptional ? schema.optional() : schema));\n\n  return Joi.alternatives().try(...schemas);\n};\n","import Joi from 'joi';\n\n// Numeric\nexport const OptionalNumber = Joi.number();\nexport const RequiredNumber = OptionalNumber.required();\n\nexport const OptionalInteger = OptionalNumber.integer();\nexport const RequiredInteger = OptionalInteger.required();\n\nexport const OptionalPosInteger = OptionalInteger.min(0);\nexport const RequiredPosInteger = OptionalPosInteger.required();\n\n// Strings\nexport const OptionalString = Joi.string().allow('');\nexport const RequiredString = OptionalString.required();","import Joi from 'joi';\n\nexport const TypeOrArray = (T: Joi.AnySchema<any>): Joi.AlternativesSchema<any> => Joi.alternatives().try(T.required(), Joi.array().items(T.optional()).required());\n\nexport const TypeOrNotEmptyArray = (T: Joi.AnySchema<any>): Joi.AlternativesSchema<any> => Joi.alternatives().try(T.required(), Joi.array().items(T.optional()).required().min(1));\n","import Joi from 'joi';\n\n/**\n * Validate first argument by provided schema\n * @param schema Schema for validation\n * @param optional Throw error if not optional and data is undefined\n */\nexport function ValidateData(schema: Joi.ObjectSchema, optional: boolean = false) {\n  return function (_target: any, _key: string, descriptor: PropertyDescriptor): any {\n    const originalMethod = descriptor.value;\n\n    descriptor.value = function (...args: any[]): any {\n      const [data] = args;\n\n      if (!optional && data === undefined) throw new Error('Validation error: Data required.');\n      if (optional && data === undefined) return originalMethod.apply(this, [...args]);\n\n      const { error, value } = schema.validate(data);\n\n      if (error) {\n        throw new Error(`Validation error: ${error.details.map((x) => x.message).join(', ')}`);\n      }\n\n      return originalMethod.apply(this, [value, ...args.slice(1)]);\n    };\n\n    return descriptor;\n  };\n}\n","// https://help.senler.ru/senler/dev/api/methods/boty/dobavlenie-podpischika-v-bota\n\nimport Joi from 'joi';\nimport { Alternatives, OptionalString, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\n\nexport interface AddSubscriberRequest {\n  vk_user_id: string | number;\n  bot_id: string | number;\n\n  /**\n   * `true` add subscriber to bot again if subscriber is already in bot\n   *\n   * `false` default\n   */\n  enforce?: boolean;\n\n  /**\n   * Step id in bot\n   *\n   * Example: `5c35bb800b295034fa5062a6`\n   */\n  step_id?: string;\n}\n\nexport const AddSubscriberRequestSchema = Joi.object({\n  vk_user_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n  bot_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n  enforce: Joi.boolean().optional(),\n  step_id: OptionalString,\n}).required();\n\nexport interface AddSubscriberResponse {}\n","// https://help.senler.ru/senler/dev/api/methods/boty/udalit-podpischika-iz-bota\n\nimport Joi from 'joi';\nimport { Alternatives, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\n\nexport interface DelSubscriberRequest {\n  vk_user_id: string;\n  bot_id: string | number;\n}\n\nexport const DelSubscriberRequestSchema = Joi.object({\n  vk_user_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n  bot_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n}).required();\n\nexport interface DelSubscriberResponse {}\n","// https://help.senler.ru/senler/dev/api/methods/boty/poluchenie-spiska-botov\n\nimport Joi from 'joi';\nimport { Alternatives, OptionalPosInteger, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\nimport { BotInfo } from './get.botInfo.dto';\n\nexport interface GetBotsListRequest {\n  /**\n   * Number of elements to return information about\n   *\n   * Maximum: `100`\n   */\n  count?: number | string;\n\n  /**\n   * Offset - how many elements to sample from\n   *\n   * Default: `0`\n   *\n   * Max: `100000`\n   */\n  offset?: number;\n\n  /**\n   * Bots id\n   *\n   * Example: `[1234123]`\n   */\n  bot_id?: Array<number | string>;\n}\n\nexport const GetBotsListRequestSchema = Joi.object({\n  count: Alternatives([RequiredPosInteger, RequiredString]).optional(),\n  offset: OptionalPosInteger,\n  bot_id: Joi.array()\n    .items(Alternatives([RequiredPosInteger, RequiredString]))\n    .optional(),\n}).required();\n\nexport interface GetBotsListResponse {\n  count: string;\n  items: Array<BotInfo>;\n}\n","// https://help.senler.ru/senler/dev/api/methods/boty/poluchenie-spiska-shagov-v-bote\n\nimport Joi from 'joi';\nimport { Alternatives, OptionalPosInteger, OptionalString, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\nimport { Step } from './getSteps.step.dto';\n\nexport interface GetStepsRequest {\n  /**\n   * Example: `2314231`\n   */\n  bot_id: string | number;\n\n  /**\n   * Number of elements to return information about\n   *\n   * Maximum: 100\n   */\n  count?: string;\n\n  /**\n   * offset - how many elements to sample from\n   *\n   * Default: 0\n   *\n   * Maximum: 100,000\n   *\n   * Example: 50\n   */\n  offset?: number;\n\n  /**\n   * Step id in bot\n   *\n   * Example: `5c35bb800b295034fa5062a6`\n   */\n  step_id?: string;\n}\n\nexport const GetStepsRequestSchema = Joi.object({\n  bot_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n  count: OptionalString,\n  offset: OptionalPosInteger,\n  step_id: OptionalString,\n}).required();\n\nexport interface GetStepsResponse {\n  count: number;\n  items: Array<Step>;\n}\n","import { RequestCacheConfig } from 'src/v2/configs';\nimport { HttpResource } from 'src/v2/core/abstract-http-resource';\nimport { ValidateData } from 'src/v2/core/validation';\nimport { AddSubscriberRequest, AddSubscriberRequestSchema, AddSubscriberResponse } from './dto/addSubscriber.dto';\nimport { DelSubscriberRequest, DelSubscriberRequestSchema, DelSubscriberResponse } from './dto/delSubscriber.dto';\nimport { GetBotsListRequest, GetBotsListRequestSchema, GetBotsListResponse } from './dto/get.dto';\nimport { GetStepsRequest, GetStepsRequestSchema, GetStepsResponse } from './dto/getSteps.dto';\n\nexport class BotsResource extends HttpResource {\n  public readonly RESOURCE_NAME = 'bots';\n\n  /**\n   * Get a list of bots.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/boty/poluchenie-spiska-botov\n   */\n  @ValidateData(GetBotsListRequestSchema, true)\n  async get(data?: GetBotsListRequest, cacheConfig?: RequestCacheConfig): Promise<GetBotsListResponse> {\n    return await this.httpClient.request<GetBotsListResponse>(`${this.RESOURCE_NAME}/get`, data, cacheConfig);\n  }\n\n  /**\n   * Get a list of steps in a bot.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/boty/poluchenie-spiska-shagov-v-bote\n   */\n  @ValidateData(GetStepsRequestSchema)\n  async getSteps(data: GetStepsRequest, cacheConfig?: RequestCacheConfig): Promise<GetStepsResponse> {\n    return await this.httpClient.request<GetStepsResponse>(`${this.RESOURCE_NAME}/getSteps`, data, cacheConfig);\n  }\n\n  /**\n   * Add a subscriber to the bot.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/boty/dobavlenie-podpischika-v-bota\n   */\n  @ValidateData(AddSubscriberRequestSchema)\n  async addSubscriber(data: AddSubscriberRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<AddSubscriberResponse> {\n    return await this.httpClient.request<AddSubscriberResponse>(`${this.RESOURCE_NAME}/addSubscriber`, data, cacheConfig);\n  }\n\n  /**\n   * Remove subscriber from bot.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/boty/udalit-podpischika-iz-bota\n   */\n  @ValidateData(DelSubscriberRequestSchema)\n  async delSubscriber(data: DelSubscriberRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<DelSubscriberResponse> {\n    return await this.httpClient.request<DelSubscriberResponse>(`${this.RESOURCE_NAME}/delSubscriber`, data, cacheConfig);\n  }\n}\n","import Joi from 'joi';\n\ninterface EnumObject {\n  [key: string]: string;\n}\n\n/**\n * Arrow function for creating a Joi schema that validates enum values\n * @param enumObject enumerate object\n * @returns Joi.Alternatives.try(your enum)\n */\nexport const OneOfEnumerate = (enumObject: EnumObject): Joi.StringSchema => {\n  return Joi.string().valid(...Object.values(enumObject));\n};\n\n/**\n * Arrow function for creating a Joi schema that validates enum values\n * @param enumObject enumerate object\n * @returns Joi.Alternatives.try(your enum)\n */\nexport const ListOfEnumerate = (enumObject: EnumObject): Joi.ArraySchema => {\n  return Joi.array().items(OneOfEnumerate(enumObject));\n};\n","export enum DeliveriesStatus {\n  waiting = 'waiting',\n  progress = 'progress',\n  done = 'done',\n  error = 'error',\n}\n","export enum DeliveriesType {\n  chain = 'chain',\n  subscription = 'subscription ',\n  once = 'once',\n  single = 'single',\n}\n","// https://help.senler.ru/senler/dev/api/methods/rassylki/poluchenie-spiska-rassylok\n\nimport Joi from 'joi';\nimport { Alternatives, OptionalInteger, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\nimport { ListOfEnumerate } from 'src/v2/core/validation/shortcuts/enum.validator';\nimport { Delivery } from './get.delivery.dto';\nimport { DeliveriesStatus } from './get.status.dto';\nimport { DeliveriesType } from './get.type.dto';\n\nexport interface GetDeliveriesRequest {\n  /**\n   * Number of elements to return information about\n   *\n   * Maximum: 100\n   *\n   * Example: 50\n   */\n  count?: number;\n\n  /**\n   * Offset - how many elements to sample from\n   *\n   * Default: 0 | max: 100,000\n   *\n   * Example: 50\n   */\n  offset?: number;\n\n  delivery_id?: Array<number | string>;\n\n  /**\n   * deliveries types:\n   *\n   * `chain` Auto message\n   *\n   * `subscription` Group mailing\n   *\n   * `once` Targeted mailing\n   *\n   * `single` One-time mailing\n   *\n   * example: `['once','auto','subscription','chain','single']`\n   */\n  type?: Array<keyof typeof DeliveriesType>;\n\n  /**\n   * mailing status:\n   *\n   * `waiting` Waiting\n   *\n   * `progress` Processing\n   *\n   * `done` Completed\n   *\n   * example: ['waiting', 'progress', 'done', 'error']\n   */\n  status?: Array<keyof typeof DeliveriesStatus>;\n}\n\nexport const GetDeliveriesRequestSchema = Joi.object({\n  count: OptionalInteger.max(100),\n  offset: OptionalInteger.max(100000),\n  delivery_id: Joi.array()\n    .items(Alternatives([RequiredPosInteger, RequiredString]))\n    .optional(),\n  type: Joi.array().items(ListOfEnumerate(DeliveriesType)).optional(),\n  status: Joi.array().items(ListOfEnumerate(DeliveriesStatus)).optional(),\n});\n\nexport interface GetDeliveriesResponse {\n  /**\n   * Number of all elements in the sample\n   *\n   * Example: `'20'`\n   */\n  count: string;\n\n  items: Array<Delivery>;\n}\n","// https://help.senler.ru/senler/dev/api/methods/rassylki/statistika-dostavki\n\nimport Joi from 'joi';\nimport { Alternatives, OptionalString, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\nimport { DeliveryToUserAgent } from './stat.deliveryToUserAgent.dto';\n\nexport interface GetRecipientStatisticsRequest {\n  /**\n   * Date and time from which subscribed/unsubscribed\n   *\n   * Format: `d.m.Y H:i:s`\n   *\n   * Example: `26.11.2018 10:00:00`\n   */\n  date_from: string;\n\n  /**\n   * Date and time before which subscribed/unsubscribed\n   *\n   * Format: `d.m.Y H:i:s`\n   *\n   * Example: `27.11.2018 10:00:00`\n   */\n  date_to: string;\n\n  /**\n   * Number of elements to return information about\n   *\n   * Maximum: `100`\n   *\n   * Example: `50`\n   */\n  count?: number;\n\n  /**\n   * Offset to pass to fetch the next set (taken from the response)\n   *\n   * Example: `5c6992770b295058e641bb86`\n   */\n  offset_id?: string;\n\n  /**\n   * VKontakte user IDs\n   *\n   * Example: `[1]`\n   */\n  vk_user_id?: Array<string | number>;\n\n  /**\n   * Mailing list identifiers\n   *\n   * Example: `[123]`\n   */\n  delivery_id?: Array<string | number>;\n}\n\nexport const GetRecipientStatisticsRequestSchema = Joi.object({\n  date_from: Joi.date().required(),\n  date_to: Joi.date().required(),\n  count: RequiredPosInteger.max(100),\n  offset_id: OptionalString,\n  vk_user_id: Joi.array()\n    .items(Alternatives([RequiredPosInteger, RequiredString]))\n    .optional(),\n  delivery_id: Joi.array()\n    .items(Alternatives([RequiredPosInteger, RequiredString]))\n    .optional(),\n}).required();\n\nexport interface RecipientStatisticsResponse {\n  /**\n   * Offset to pass to fetch the next set\n   *\n   * Example: `5c6992770b295058e641bb86`\n   */\n  offset_id: number;\n\n  items: Array<DeliveryToUserAgent>;\n}\n","// https://help.senler.ru/senler/dev/api/methods/rassylki/statcount\n\nimport Joi from 'joi';\nimport { Alternatives, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\n\nexport interface GetDeliveryCountStatisticsRequest {\n  /**\n   * Date and time from which subscribed/unsubscribed\n   *\n   * Format: `d.m.Y H:i:s`\n   *\n   * Example: `26.11.2018 10:00:00`\n   */\n  date_from: string;\n\n  /**\n   * Date and time before which subscribed/unsubscribed\n   *\n   * Format: `d.m.Y H:i:s`\n   *\n   * Example: `27.11.2018 10:00:00`\n   */\n  date_to: string;\n\n  /**\n   * VKontakte user IDs\n   *\n   * Example: `[1]`\n   */\n  vk_user_id?: Array<number | string>;\n\n  /**\n   * Mailing list identifiers\n   *\n   * Example: `[123]`\n   */\n  delivery_id?: Array<number | string>;\n}\n\nexport const GetDeliveryCountStatisticsRequestSchema = Joi.object({\n  date_from: Joi.date().required(),\n  date_to: Joi.date().required(),\n  vk_user_id: Joi.array()\n    .items(Alternatives([RequiredPosInteger, RequiredString]))\n    .optional(),\n  delivery_id: Joi.array()\n    .items(Alternatives([RequiredPosInteger, RequiredString]))\n    .optional(),\n}).required();\n\nexport interface DeliveryCountStatisticsResponse {\n  /**\n   * Offset to pass to fetch the next set\n   *\n   * Example: `5c6992770b295058e641bb86`\n   */\n  offset_id: number;\n\n  /**\n   * Link to a group of subscribers with a label\n   */\n  count: number;\n}\n","import { RequestCacheConfig } from 'src/v2/configs';\nimport { HttpResource } from 'src/v2/core/abstract-http-resource';\nimport { ValidateData } from 'src/v2/core/validation';\nimport { GetDeliveriesRequest, GetDeliveriesRequestSchema, GetDeliveriesResponse } from './dto/get.dto';\nimport { GetRecipientStatisticsRequest, GetRecipientStatisticsRequestSchema, RecipientStatisticsResponse } from './dto/stat.dto';\nimport { DeliveryCountStatisticsResponse, GetDeliveryCountStatisticsRequest, GetDeliveryCountStatisticsRequestSchema } from './dto/statCount.dto';\n\nexport class DeliveriesResource extends HttpResource {\n  public readonly RESOURCE_NAME = 'deliveries';\n\n  /**\n   * Get all deliveries.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/rassylki/poluchenie-spiska-rassylok\n   */\n  @ValidateData(GetDeliveriesRequestSchema, true)\n  async get(data?: GetDeliveriesRequest, cacheConfig?: RequestCacheConfig): Promise<GetDeliveriesResponse> {\n    return await this.httpClient.request<GetDeliveriesResponse>(`${this.RESOURCE_NAME}/get`, data, cacheConfig);\n  }\n\n  /**\n   * Delivery statistic with user info.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/rassylki/statistika-dostavki\n   */\n  @ValidateData(GetRecipientStatisticsRequestSchema)\n  async getSubscriptionsStatistics(data: GetRecipientStatisticsRequest, cacheConfig?: RequestCacheConfig): Promise<RecipientStatisticsResponse> {\n    return await this.httpClient.request<RecipientStatisticsResponse>(`${this.RESOURCE_NAME}/stat`, data, cacheConfig);\n  }\n\n  /**\n   * Delivery count statistic.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/rassylki/statcount\n   */\n  @ValidateData(GetDeliveryCountStatisticsRequestSchema)\n  async getSubscriptionsCountStatistics(data: GetDeliveryCountStatisticsRequest, cacheConfig?: RequestCacheConfig): Promise<DeliveryCountStatisticsResponse> {\n    return await this.httpClient.request<DeliveryCountStatisticsResponse>(`${this.RESOURCE_NAME}/statCount`, data, cacheConfig);\n  }\n}\n","/** https://help.senler.ru/senler/dev/api/methods/globalnye-peremennye-podpischikov/udalenie-peremennoi */\n\nimport Joi from 'joi';\nimport { RequiredString } from 'src/v2/core/validation';\n\nexport interface DeleteGlobalVarRequest {\n  name: string;\n}\n\nexport const DeleteGlobalVarRequestSchema = Joi.object({\n  name: RequiredString,\n}).required();\n\nexport interface DeleteGlobalVarResponse {}\n","/** https://help.senler.ru/senler/dev/api/methods/globalnye-peremennye-podpischikov/poluchenie-peremennoj */\n\nimport Joi from 'joi';\nimport { OptionalString } from 'src/v2/core/validation';\nimport { GlobalVar } from './get.globalVar.dto';\n\nexport interface GetGlobalVarRequest {\n  /**\n   * Variable name. If not specified, all subscriber variables will be returned.\n   *\n   * Example: `promo`\n   */\n  name?: string;\n}\n\nexport const GetGlobalVarRequestSchema = Joi.object({\n  name: OptionalString,\n});\n\nexport interface GetGlobalVarResponse {\n  items: Array<GlobalVar>;\n}\n","/** https://help.senler.ru/senler/dev/api/methods/globalnye-peremennye-podpischikov/ustanovka-peremennoj */\n\nimport Joi from 'joi';\nimport { RequiredString } from 'src/v2/core/validation';\n\nexport interface SetGlobalVarRequest {\n  name: string;\n  value: string;\n}\n\nexport const SetGlobalVarRequestSchema = Joi.object({\n  name: RequiredString,\n  value: RequiredString,\n}).required();\n\nexport interface SetGlobalVarResponse {}\n","import { RequestCacheConfig } from 'src/v2/configs';\nimport { HttpResource } from 'src/v2/core/abstract-http-resource';\nimport { ValidateData } from 'src/v2/core/validation';\nimport { GetVarResponse } from '../vars/dto/get.dto';\nimport { DeleteGlobalVarRequest, DeleteGlobalVarRequestSchema, DeleteGlobalVarResponse } from './dto/del.dto';\nimport { GetGlobalVarRequest, GetGlobalVarRequestSchema, GetGlobalVarResponse } from './dto/get.dto';\nimport { SetGlobalVarRequest, SetGlobalVarRequestSchema, SetGlobalVarResponse } from './dto/set.dto';\n\nexport class GlobalVarsResource extends HttpResource {\n  public readonly RESOURCE_NAME = 'vars_global';\n\n  /**\n   * Get a global variable.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/globalnye-peremennye-podpischikov/poluchenie-peremennoj\n   */\n  @ValidateData(GetGlobalVarRequestSchema, true)\n  async get(data?: GetGlobalVarRequest, cacheConfig?: RequestCacheConfig): Promise<GetGlobalVarResponse> {\n    return await this.httpClient.request<GetVarResponse>(`${this.RESOURCE_NAME}/get`, data, cacheConfig);\n  }\n\n  /**\n   * Set a global variable.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/globalnye-peremennye-podpischikov/ustanovka-peremennoj\n   */\n  @ValidateData(SetGlobalVarRequestSchema)\n  async set(data: SetGlobalVarRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<SetGlobalVarResponse> {\n    return await this.httpClient.request<SetGlobalVarResponse>(`${this.RESOURCE_NAME}/set`, data, cacheConfig);\n  }\n\n  /**\n   * Delete a global variable.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/globalnye-peremennye-podpischikov/udalenie-peremennoi\n   */\n  @ValidateData(DeleteGlobalVarRequestSchema)\n  async del(data: DeleteGlobalVarRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<DeleteGlobalVarResponse> {\n    return await this.httpClient.request<DeleteGlobalVarResponse>(`${this.RESOURCE_NAME}/del`, data, cacheConfig);\n  }\n}\n","/** https://dev.senler.ru/get-19249383e0 */\n\nimport Joi from 'joi';\nimport { OptionalString } from 'src/v2/core/validation';\n\nexport interface GetGroupRequest {\n  /**\n   * Group ID\n   *\n   * Example: `'123'`\n   */\n  group_id?: string;\n}\n\nexport const GetGroupRequestSchema = Joi.object({\n  group_id: OptionalString,\n}).required();\n\nexport interface Group {\n  /**\n   * Group ID in Senler\n   *\n   * Example: `'123'`\n   */\n  group_id: string;\n\n  /**\n   * Group name\n   *\n   * Example: `'My Group'`\n   */\n  name: string;\n\n  /**\n   * Group type ID (1 - VK, 2 - TG)\n   *\n   * Example: `'1'`\n   */\n  type_id: string;\n\n  /**\n   * Group type name (vk, tg)\n   *\n   * Example: `'vk'`\n   */\n  type_name: string;\n\n  /**\n   * Photo\n   *\n   * Example: `'https://example.com/photo.jpg'`\n   */\n  photo: string;\n\n  /**\n   * External group ID\n   *\n   * Example: `'123456'`\n   */\n  external_id: string;\n\n  /**\n   * Workspace ID where the group belongs\n   *\n   * Example: `'789'`\n   */\n  workspace_id: string;\n}\n\nexport interface GetGroupResponse {\n  /**\n   * Whether the request was successful\n   */\n  success: boolean;\n\n  /**\n   * Group data\n   */\n  item: Group;\n}\n","import { RequestCacheConfig } from 'src/v2/configs';\nimport { HttpResource } from 'src/v2/core/abstract-http-resource';\nimport { ValidateData } from 'src/v2/core/validation';\nimport { GetGroupRequest, GetGroupRequestSchema, GetGroupResponse } from './dto/get.dto';\n\nexport class GroupsResource extends HttpResource {\n  public readonly RESOURCE_NAME = 'groups';\n\n  /**\n   * Get a group.\n   *\n   * https://dev.senler.ru/get-19249383e0\n   */\n  @ValidateData(GetGroupRequestSchema, true)\n  async get(data?: GetGroupRequest, cacheConfig?: RequestCacheConfig): Promise<GetGroupResponse> {\n    return await this.httpClient.request<GetGroupResponse>(`${this.RESOURCE_NAME}/get`, data, cacheConfig);\n  }\n}\n","import Joi from 'joi';\nimport { RequiredInteger, RequiredString } from 'src/v2/core/validation';\nimport { OneOfEnumerate } from 'src/v2/core/validation/shortcuts/enum.validator';\n\nexport enum IntegrationType {\n  gpt = 'gpt',\n  liidex = 'liidex',\n}\n\nexport interface UpdateIntegrationsSettingsRequest {\n  vk_group_id: number;\n  bot_id: number;\n  step_id: string;\n  description: string;\n  title: string;\n  value: string;\n  settings: string;\n  params: string;\n  command: string;\n  type: IntegrationType;\n}\n\nexport const UpdateIntegrationStepSettingsRequestSchema = Joi.object({\n  vk_group_id: RequiredInteger,\n  bot_id: RequiredInteger,\n  step_id: RequiredString,\n  description: RequiredString,\n  title: RequiredString,\n  value: RequiredString,\n  settings: RequiredString,\n  params: RequiredString,\n  command: RequiredString,\n  type: OneOfEnumerate(IntegrationType),\n}).required();\n","import { HttpResource } from 'src/v2/core/abstract-http-resource';\nimport { ValidateData } from 'src/v2/core/validation';\nimport { UpdateIntegrationsSettingsRequest, UpdateIntegrationStepSettingsRequestSchema } from './integration.dto';\n\nexport class IntegrationResource extends HttpResource {\n  RESOURCE_NAME = '';\n\n  @ValidateData(UpdateIntegrationStepSettingsRequestSchema, false)\n  async updateStepSettings(data?: UpdateIntegrationsSettingsRequest): Promise<any> {\n    return await this.httpClient.request(`${this.RESOURCE_NAME}/settingsStep`, data);\n  }\n}\n","/** https://help.senler.ru/senler/dev/api/methods/podpischiki/dobavlenie-podpischika  */\n\nimport Joi from 'joi';\nimport { Alternatives, RequiredPosInteger, RequiredString, TypeOrNotEmptyArray } from 'src/v2/core/validation';\nimport { UtmFilterParams } from 'src/v2/resources/share/types';\n\nexport interface AddSubscribersInGroupRequest extends Partial<UtmFilterParams> {\n  /**\n   * VKontakte user ID it is possible to add both one user at a time and in bulk\n   *\n   * Example: `1`\n   */\n  vk_user_id: string | Array<string>;\n\n  /**\n   * Id of the subscriber group (0 - without a group)\n   *\n   * Example: `123`\n   */\n  subscription_id: number | string;\n}\n\nexport const AddSubscribersInGroupRequestSchema = Joi.object({\n  vk_user_id: TypeOrNotEmptyArray(RequiredString),\n  subscription_id: Alternatives([RequiredString, RequiredPosInteger]),\n}).required();\n\nexport interface AddSubscribersInGroupResponse {\n  subscribers: Array<AddSubscribersInGroupUserOperationDetails>;\n}\n\nexport interface AddSubscribersInGroupUserOperationDetails {\n  /**\n   * Id of the subscriber group (`0` - without a group)\n   *\n   * Example: `123`\n   */\n  vk_user_id: string;\n\n  /**\n   * Status of operation\n   */\n  success: boolean;\n\n  error?: string;\n}\n","/** https://help.senler.ru/senler/dev/api/methods/podpischiki/udalenie-podpischika */\n\nimport Joi from 'joi';\nimport { Alternatives, RequiredPosInteger, RequiredString, TypeOrNotEmptyArray } from '../../../core/validation';\n\nexport interface DelSubscriberFromSubscriptionGroupRequest {\n  /**\n   * VKontakte user ID\n   *\n   * Examples: 1; [1, 2, 3]\n   */\n  vk_user_id: string | Array<string>;\n\n  /**\n   * ID of the subscriber group (0 - full unsubscription from all groups)\n   *\n   * Example: `123`\n   */\n  subscription_id: number | string;\n}\n\nexport const DelSubscriberFromSubscriptionGroupRequestSchema = Joi.object({\n  vk_user_id: TypeOrNotEmptyArray(RequiredString),\n  subscription_id: Alternatives([RequiredString, RequiredPosInteger]),\n}).required();\n\nexport interface DelSubscriberFromSubscriptionGroupResponse {}\n","export enum SubscriptionSourceType {\n  subscriptions = 'subscriptions',\n  subscription = 'subscription',\n  widget = 'widget',\n  keyword = 'keyword',\n  api = 'api',\n  site = 'site',\n  hand = 'hand',\n  other = 'other',\n}\n","/** https://help.senler.ru/senler/dev/api/methods/podpischiki/poluchenie-podpischikov */\n\nimport Joi from 'joi';\nimport { Alternatives, OptionalInteger, OptionalPosInteger, OptionalString, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\nimport { ListOfEnumerate } from 'src/v2/core/validation/shortcuts/enum.validator';\nimport { Subscriber, SubscriptionSourceType, UtmManyFilterParams } from 'src/v2/resources/share/types';\n\nexport interface GetSubscribersRequest extends Partial<UtmManyFilterParams> {\n  /**\n   * Number of elements to return\n   *\n   * Max: `100`\n   */\n  count?: number;\n\n  /**\n   * Offset for fetching the next set\n   *\n   * Example: `5c6992770b295058e641bb86`\n   */\n  offset_id?: string;\n\n  /**\n   * VK user IDs\n   *\n   * Example: `[1, 2]`\n   */\n  vk_user_id?: Array<number | string>;\n\n  /**\n   * Subscriber group IDs, 0 for no group\n   *\n   * Example: `[1, 2]`\n   */\n  subscription_id?: Array<number | string>;\n\n  /**\n   * Exclude subscribers from these groups\n   *\n   * Example: `[120, 123]`\n   */\n  ignore_subscription_id?: Array<number | string>;\n\n  /**\n   * IDs of deliveries received by subscribers\n   *\n   * Example: `[123]`\n   */\n  delivery_id?: Array<number | string>;\n\n  /**\n   * Exclude subscribers who received these deliveries\n   *\n   * Example: `[123]`\n   */\n  ignore_delivery_id?: Array<number | string>;\n\n  /**\n   * Deliveries with errors\n   *\n   * Example: `[123]`\n   */\n  error_delivery_id?: Array<number | string>;\n\n  /**\n   * IDs of deliveries read by users\n   * Example: `[123]`\n   */\n  read_delivery_id?: Array<number | string>;\n\n  /**\n   * Deliveries not read by users\n   *\n   * Example: `[123]`\n   */\n  ignore_read_delivery_id?: Array<number | string>;\n\n  /**\n   * Deliveries where users clicked links\n   *\n   * Example: `[123]`\n   */\n  away_delivery_id?: Array<number | string>;\n\n  /**\n   * Deliveries where users did not click links\n   *\n   * Example: `[123]`\n   */\n  ignore_away_delivery_id?: Array<number | string>;\n\n  /**\n   * Subscription source\n   *\n   * Examples: 'subscriptions', 'widget', 'api', etc.\n   */\n  source?: Array<keyof typeof SubscriptionSourceType>;\n\n  /**\n   * Date of subscription from, format: d.m.Y H:i:s\n   *\n   * Example: `26.11.2018 10:00:00`\n   */\n  date_subscription_from?: string;\n\n  /**\n   * Date of subscription to, format: d.m.Y H:i:s\n   *\n   * Example: `27.11.2018 10:00:00`\n   */\n  date_subscription_to?: string;\n\n  /**\n   * Date of first subscription from, format: d.m.Y H:i:s\n   *\n   * Example: `27.11.2018 10:00:00`\n   */\n  date_first_from?: string;\n\n  /**\n   * Date of first subscription to, format: d.m.Y H:i:s\n   *\n   * Example: `27.11.2018 10:00:00`\n   */\n  date_first_to?: string;\n\n  /**\n   * Date of delivery from, format: d.m.Y H:i:s\n   *\n   * Example: `27.11.2018 10:00:00`\n   */\n  date_delivery_from?: string;\n\n  /**\n   * Date of delivery to, format: d.m.Y H:i:s\n   *\n   * Example: `27.11.2018 10:00:00`\n   */\n  date_delivery_to?: string;\n\n  /**\n   * Date of first delivery from, format: d.m.Y H:i:s\n   *\n   * Example: `27.11.2018 10:00:00`\n   */\n  date_first_delivery_from?: string;\n\n  /** Date of first delivery to, format: d.m.Y H:i:s */\n  date_first_delivery_to?: string;\n\n  /** Date of last delivery from, format: d.m.Y H:i:s */\n  date_last_delivery_from?: string;\n\n  /** Date of last delivery to, format: d.m.Y H:i:s */\n  date_last_delivery_to?: string;\n\n  /** Date of link click from, format: d.m.Y H:i:s */\n  date_away_from?: string;\n\n  /** Date of link click to, format: d.m.Y H:i:s */\n  date_away_to?: string;\n\n  /**\n   * Bot ID\n   *\n   * Example: `1234123`\n   */\n  bot_id?: number | string;\n\n  /**\n   * Bot step IDs for the given bot\n   *\n   * Example: `['5c6992770b295058e641bb86']`\n   */\n  step_id?: Array<string>;\n\n  /**\n   * Exclude subscribers from this bot\n   *\n   * Example: `1`\n   */\n  ignore_bot_id?: number;\n\n  /**\n   * Exclude steps for the bot in ignore_bot_id\n   *\n   * Example: `['5c6992770b295058e641bb86']`\n   */\n  ignore_step_id?: Array<string>;\n\n  /** Subscriber status filter, 1 for Active, 2 for Inactive */\n  lead_status?: 1 | 2;\n\n  /**\n   * Name of the variable\n   *\n   * Example: `age`\n   */\n  var_name?: string;\n\n  /**\n   * Value of the variable\n   *\n   * Example: `30`\n   */\n  var_value?: string | number;\n}\n\nexport const GetSubscribersRequestSchema = Joi.object({\n  count: OptionalInteger,\n  offset_id: OptionalString,\n  subscription_id: Joi.array()\n    .items(Alternatives([OptionalPosInteger, OptionalString]))\n    .optional(),\n  vk_user_id: Joi.array()\n    .items(Alternatives([OptionalPosInteger, OptionalString]))\n    .optional(),\n  ignore_subscription_id: Joi.array()\n    .items(Alternatives([OptionalPosInteger, OptionalString]))\n    .optional(),\n  delivery_id: Joi.array()\n    .items(Alternatives([OptionalPosInteger, OptionalString]))\n    .optional(),\n  ignore_delivery_id: Joi.array()\n    .items(Alternatives([OptionalPosInteger, OptionalString]))\n    .optional(),\n  error_delivery_id: Joi.array()\n    .items(Alternatives([OptionalPosInteger, OptionalString]))\n    .optional(),\n  read_delivery_id: Joi.array()\n    .items(Alternatives([OptionalPosInteger, OptionalString]))\n    .optional(),\n  ignore_read_delivery_id: Joi.array()\n    .items(Alternatives([OptionalPosInteger, OptionalString]))\n    .optional(),\n  away_delivery_id: Joi.array()\n    .items(Alternatives([OptionalPosInteger, OptionalString]))\n    .optional(),\n  ignore_away_delivery_id: Joi.array()\n    .items(Alternatives([OptionalPosInteger, OptionalString]))\n    .optional(),\n  source: ListOfEnumerate(SubscriptionSourceType).optional(),\n  date_subscription_from: Joi.date().optional(),\n  date_subscription_to: Joi.date().optional(),\n  date_first_from: Joi.date().optional(),\n  date_first_to: Joi.date().optional(),\n  date_delivery_from: Joi.date().optional(),\n  date_delivery_to: Joi.date().optional(),\n  date_first_delivery_from: Joi.date().optional(),\n  date_first_delivery_to: Joi.date().optional(),\n  date_last_delivery_from: Joi.date().optional(),\n  date_last_delivery_to: Joi.date().optional(),\n  date_away_from: Joi.date().optional(),\n  date_away_to: Joi.date().optional(),\n  bot_id: Alternatives([OptionalPosInteger, OptionalString]).optional(),\n  step_id: Joi.array().items(OptionalInteger).optional(),\n  ignore_bot_id: OptionalInteger,\n  ignore_step_id: Joi.array().items(OptionalString).optional(),\n  lead_status: Joi.valid(1, 2).optional(),\n  var_name: OptionalString,\n  var_value: Alternatives([RequiredString, RequiredPosInteger]),\n});\n\nexport interface GetSubscribersResponse {\n  /**\n   * The offset that needs to be transmitted to select the next set\n   *\n   * Example: `5c6992770b295058e641bb86`\n   */\n  offset_id: string;\n\n  items: Array<Subscriber>;\n}\n","import Joi from 'joi';\nimport { OptionalPosInteger, OptionalString } from 'src/v2/core/validation';\n\n/**\n * For responses annotations\n */\nexport interface Utm extends UtmFilterParams {}\n\n/**\n * For request params annotations\n */\nexport interface UtmFilterParams {\n  /**\n   * ID of the Senler tags is an\n   * Example: `123`\n   */\n  utm_id: number;\n\n  /**\n   * Campaign source\n   * Example: `vk`\n   */\n  utm_source: string;\n\n  /**\n   * Traffic type\n   * Example: `cpc`\n   */\n  utm_medium: string;\n\n  /**\n   * Campaign name\n   *\n   * Example: `skid_ko_karte`\n   */\n  utm_campaign: string;\n\n  /**\n   * The ad ID\n   *\n   * Example: `banner`\n   */\n  utm_content: string;\n\n  /**\n   * Keyword\n   * Example: `order a chair online`\n   */\n  utm_term: string;\n}\n\nexport const UtmFilterParamsSchema = Joi.object({\n  utm_id: OptionalPosInteger,\n  utm_source: OptionalString,\n  utm_medium: OptionalString,\n  utm_campaign: OptionalString,\n  utm_content: OptionalString,\n  utm_term: OptionalString,\n});\n\nexport interface UtmManyFilterParams {\n  /**\n   * UTM tag IDs from Senler\n   * Example: `[0, 123]`\n   */\n  utm_id: number[];\n\n  /**\n   * Campaign source\n   * Example: `['vk']`\n   */\n  utm_source: string[];\n\n  /**\n   * Traffic type\n   * Example: `['cpc']`\n   */\n  utm_medium: string[];\n\n  /**\n   * Campaign name\n   * Example: `['skidka_po_karte']`\n   */\n  utm_campaign: string[];\n\n  /**\n   * Advertisement identifier\n   * Example: `['banner']`\n   */\n  utm_content: string[];\n\n  /**\n   * Keyword\n   * Example: `['bill tables online']`\n   */\n  utm_term: string[];\n}\n","import Joi from 'joi';\nimport { Alternatives, OptionalPosInteger, OptionalString } from 'src/v2/core/validation';\nimport { ListOfEnumerate } from 'src/v2/core/validation/shortcuts/enum.validator';\nimport { SubscriptionSourceType, UtmFilterParams } from 'src/v2/resources/share/types';\nimport { UtmFilterParamsSchema } from 'src/v2/resources/share/types/utm-params-type';\n\nexport interface GetSubscribersStatisticsBaseRequest extends Partial<UtmFilterParams> {\n  /**\n   * Date and time from which the subscription/unsubscription occurred\n   *\n   * Format: d.m.Y H:i:s\n   *\n   * Example: `26.11.2018 10:00:00`\n   */\n  date_from: string;\n\n  /**\n   * Date and time until which the subscription/unsubscription occurred\n   *\n   * Format: d.m.Y H:i:s\n   *\n   * Example: `27.11.2018 10:00:00`\n   */\n  date_to: string;\n\n  /**\n   * VK user IDs\n   *\n   * Example: `[1]`\n   */\n  vk_user_id?: Array<number | string>;\n\n  /**\n   * Subscriber group IDs\n   *\n   * Example: `[123]`\n   */\n  subscription_id?: Array<number | string>;\n\n  /**\n   * Exclude subscribers from these groups (0 for no group)\n   *\n   * Example: `[0, 123]`\n   */\n  ignore_subscription_id?: Array<number | string>;\n\n  /**\n   * Subscription source\n   *\n   * Example: `['subscription']`\n   */\n  source?: Array<keyof typeof SubscriptionSourceType>;\n}\n\nexport const GetSubscribersStatisticsBaseRequestSchema = UtmFilterParamsSchema.concat(\n  Joi.object({\n    date_from: Joi.date().required(),\n    date_to: Joi.date().required(),\n    vk_user_id: Joi.array().items(Alternatives([OptionalPosInteger, OptionalString])),\n    subscription_id: Joi.array().items(Alternatives([OptionalPosInteger, OptionalString])),\n    ignore_subscription_id: Joi.array().items(Alternatives([OptionalPosInteger, OptionalString])),\n    source: Joi.array().items(ListOfEnumerate(SubscriptionSourceType)),\n  }),\n);\n","/** https://help.senler.ru/senler/dev/api/methods/podpischiki/statistika-podpisok */\n\nimport { GetSubscribersStatisticsBaseRequest, GetSubscribersStatisticsBaseRequestSchema } from './getStatsBase.dto';\n\nexport interface GetSubscriptionsCountStatisticsRequest extends GetSubscribersStatisticsBaseRequest {}\n\nexport const GetSubscriptionsCountStatisticsRequestSchema = GetSubscribersStatisticsBaseRequestSchema.required();\n\nexport interface GetSubscriptionsCountStatisticsResponse {\n  count_subscribe: number;\n  count_unsubscribe: number;\n}\n","/** https://help.senler.ru/senler/dev/api/methods/podpischiki/statistika-podpisok */\n\nimport Joi from 'joi';\nimport { OptionalPosInteger } from 'src/v2/core/validation';\nimport { GetSubscribersStatisticsBaseRequest, GetSubscribersStatisticsBaseRequestSchema } from './getStatsBase.dto';\n\nimport { SubscriptionAction } from 'src/v2/resources/share/types';\n\nexport interface GetSubscriptionsStatisticsRequest extends GetSubscribersStatisticsBaseRequest {\n  /**\n   * Number of elements to return\n   *\n   * Max: `100`\n   */\n  count?: number;\n\n  /**\n   * Offset for fetching a subset of conversations\n   *\n   * Example: `10`\n   */\n  offset?: number;\n}\n\nexport const GetSubscriptionsStatisticsRequestSchema = GetSubscribersStatisticsBaseRequestSchema.concat(\n  Joi.object({\n    count: OptionalPosInteger,\n    offset: OptionalPosInteger,\n  }),\n);\n\nexport interface GetSubscriptionsStatisticsResponse {\n  items: SubscriptionAction[];\n}\n","import { RequestCacheConfig } from 'src/v2/configs';\nimport { HttpResource } from 'src/v2/core/abstract-http-resource';\nimport { ValidateData } from 'src/v2/core/validation';\nimport { AddSubscribersInGroupRequest, AddSubscribersInGroupRequestSchema, AddSubscribersInGroupResponse } from './dto/add.dto';\nimport { GetSubscribersCountResponse } from './dto/count.dto';\nimport { DelSubscriberFromSubscriptionGroupRequest, DelSubscriberFromSubscriptionGroupRequestSchema, DelSubscriberFromSubscriptionGroupResponse } from './dto/del.dto';\nimport { GetSubscribersRequest, GetSubscribersRequestSchema, GetSubscribersResponse } from './dto/get.dto';\nimport { GetSubscriptionsCountStatisticsRequest, GetSubscriptionsCountStatisticsRequestSchema, GetSubscriptionsCountStatisticsResponse } from './dto/statCount.dto';\nimport { GetSubscriptionsStatisticsRequest, GetSubscriptionsStatisticsRequestSchema, GetSubscriptionsStatisticsResponse } from './dto/statSubscribe.dto';\n\nexport class SubscribersResource extends HttpResource {\n  public readonly RESOURCE_NAME = 'subscribers';\n\n  /**\n   *\n   * https://help.senler.ru/senler/dev/api/methods/podpischiki/poluchenie-podpischikov\n   */\n  @ValidateData(GetSubscribersRequestSchema, true)\n  async get(data?: GetSubscribersRequest, cacheConfig?: RequestCacheConfig): Promise<GetSubscribersResponse> {\n    return await this.httpClient.request<GetSubscribersResponse>(`${this.RESOURCE_NAME}/get`, data, cacheConfig);\n  }\n\n  /** Get count of subscribers */\n  async count(cacheConfig?: RequestCacheConfig): Promise<number> {\n    const result = await this.httpClient.request<GetSubscribersCountResponse>(`${this.RESOURCE_NAME}/count`, null, cacheConfig);\n    return result.count;\n  }\n\n  /**\n   * Adding a subscriber to a group of subscribers.\n   *\n   * Error does not appear when trying to add an existing user.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/podpischiki/dobavlenie-podpischika\n   */\n  @ValidateData(AddSubscribersInGroupRequestSchema)\n  async addInGroup(data: AddSubscribersInGroupRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<AddSubscribersInGroupResponse> {\n    return await this.httpClient.request<AddSubscribersInGroupResponse>(`${this.RESOURCE_NAME}/add`, data, cacheConfig);\n  }\n\n  /**\n   * Del a subscriber from group of subscribers.\n   *\n   * Error does not appear when trying to del already deleted user.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/podpischiki/udalenie-podpischika\n   */\n  @ValidateData(DelSubscriberFromSubscriptionGroupRequestSchema)\n  async delFromGroup(data: DelSubscriberFromSubscriptionGroupRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<DelSubscriberFromSubscriptionGroupResponse> {\n    return await this.httpClient.request<DelSubscriberFromSubscriptionGroupResponse>(`${this.RESOURCE_NAME}/del`, data, cacheConfig);\n  }\n\n  /**\n   * Statistics on registration and cancellation of subscriptions.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/podpischiki/statistika-podpisok\n   */\n  @ValidateData(GetSubscriptionsStatisticsRequestSchema)\n  async getSubscriptionsStatistics(data: GetSubscriptionsStatisticsRequest, cacheConfig?: RequestCacheConfig): Promise<GetSubscriptionsStatisticsResponse> {\n    return await this.httpClient.request<GetSubscriptionsStatisticsResponse>(`${this.RESOURCE_NAME}/statSubscribe`, data, cacheConfig);\n  }\n\n  /**\n   * Statistics on count of registration and cancellation of subscriptions.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/podpischiki/statcount\n   */\n  @ValidateData(GetSubscriptionsCountStatisticsRequestSchema)\n  async getSubscriptionsCountStatistics(data: GetSubscriptionsCountStatisticsRequest, cacheConfig?: RequestCacheConfig): Promise<GetSubscriptionsCountStatisticsResponse> {\n    return await this.httpClient.request<GetSubscriptionsCountStatisticsResponse>(`${this.RESOURCE_NAME}/statCount`, data, cacheConfig);\n  }\n}\n","import Joi from 'joi';\nimport { OptionalPosInteger, OptionalString } from 'src/v2/core/validation';\n\nexport interface BaseEditableSubscribersGroup {\n  /**\n   * Title on the subscription page\n   *\n   * Сan be omitted if it matches the title\n   *\n   * Example: `Test`\n   */\n  title?: string;\n\n  /**\n   * Text on the Subscribe button\n   *\n   * Example: `Lets`\n   */\n  btn_ok?: string;\n\n  /**\n   * Text on the Unsubscribe button\n   *\n   * Example: `Unsubscribe`\n   */\n  btn_cancel?: string;\n\n  /**\n   * Hidden group of subscribers\n   * This group will not be shown on the main page of the application\n   */\n  inactive?: boolean;\n\n  /** Don't show the number of subscribers in the app */\n  hide_subscriptions?: boolean;\n\n  /**\n   * The banner on the subscription page\n   * Is a link to a video (YouTube, Vimeo) or an image\n   */\n  video_key?: string;\n\n  /** Do not show the notification after subscribing and unsubscribing */\n  disabled_notify?: boolean;\n\n  /**\n   * Short description for the widget of the first version\n   *\n   * Example: `Click Subscribe`\n   */\n  short_description?: string;\n\n  /**\n   * Description for the subscription page\n   *\n   * Example: `To participate, click Subscribe`\n   */\n  description?: string;\n\n  /**\n   * The ID of the VKontakte pixel\n   *\n   * Example: `VK-RTRG-XXXXXX-XXXXX`\n   */\n  vk_pixel?: string;\n\n  /**\n   * The numeric ID of the Facebook pixel\n   *\n   * Example: `23463685326`\n   */\n  fb_pixel?: number;\n\n  /**\n   * The numeric ID of Yandex. metrica\n   *\n   * Example: `345373123342`\n   */\n  ya_metrica?: number;\n\n  /**\n   * Google Analytics ID\n   *\n   * Example: `UA-XXXXXXXX-X`\n   */\n  ga_metrica?: string;\n\n  /**\n   * Link to the page after subscribing\n   *\n   * Example: `https://www.example.com`\n   */\n  url_after_subscribing?: string;\n\n  /**\n   * Link to the page after unsubscribing\n   *\n   * Example: `https://www.example.com`\n   */\n  url_after_unsubscribing?: string;\n\n  /** Limit the subscription time */\n  limit_period?: boolean;\n\n  /**\n   * Subscription start date, format: d.m.Y H:i:s\n   *\n   * Example: `27.11.2018 10:00:00`\n   */\n  limit_period_from?: string;\n\n  /**\n   * Subscription end date, format: d.m.Y H:i:s\n   *\n   * Example: `27.11.2018 10:00:00`\n   */\n  limit_period_to?: string;\n\n  /**\n   * An array of numeric IDs of subscriber groups\n   * for automatic exclusion when subscribing to the current group\n   *\n   * Example: `[453731,5432]`\n   */\n  exclude_subscription_id?: number[];\n\n  /**\n   * An array of numeric IDs of bots that will be launched when subscribing\n   *\n   * Example: `[34576]`\n   */\n  bot_ids?: number[];\n}\n\nexport const BaseEditableSubscribersGroupSchema = Joi.object({\n  title: OptionalString,\n  btn_ok: OptionalString,\n  btn_cancel: OptionalString,\n  inactive: Joi.boolean(),\n  hide_subscriptions: Joi.boolean(),\n  video_key: OptionalString,\n  disabled_notify: Joi.boolean(),\n  short_description: OptionalString,\n  description: OptionalString,\n  vk_pixel: OptionalString,\n  fb_pixel: OptionalPosInteger,\n  ya_metrica: OptionalPosInteger,\n  ga_metrica: OptionalString,\n  url_after_subscribing: OptionalString,\n  url_after_unsubscribing: OptionalString,\n  limit_period: Joi.boolean(),\n  limit_period_from: OptionalString,\n  limit_period_to: OptionalString,\n  exclude_subscription_id: Joi.array().items(OptionalPosInteger),\n  bot_ids: Joi.array().items(OptionalPosInteger),\n});\n","/** https://help.senler.ru/senler/dev/api/methods/gruppy-podpischikov/dobavlenie-gruppy-podpischikov */\n\nimport Joi from 'joi';\nimport { RequiredString } from 'src/v2/core/validation';\nimport { BaseEditableSubscribersGroup, BaseEditableSubscribersGroupSchema } from './subscription.base-editable';\n\nexport interface AddSubscribersGroupRequest extends BaseEditableSubscribersGroup {\n  /** Name of group of subscriptions */\n  name: string;\n}\n\nexport const AddSubscribersGroupRequestSchema = BaseEditableSubscribersGroupSchema.concat(\n  Joi.object({\n    name: RequiredString,\n  }),\n).required();\n\nexport interface AddSubscribersGroupResponse {\n  subscription_id: string;\n}\n","/** https://help.senler.ru/senler/dev/api/methods/gruppy-podpischikov/udalenie-gruppy-podpischikov */\n\nimport Joi from 'joi';\nimport { Alternatives, RequiredInteger, RequiredString } from 'src/v2/core/validation';\n\nexport interface DelSubscribersGroupRequest {\n  subscription_id: string | number;\n}\n\n// TODO: Протестировать required\nexport const DelSubscribersGroupRequestSchema = Joi.object({\n  subscription_id: Alternatives([RequiredInteger, RequiredString]).required(),\n}).required();\n\nexport interface DelSubscribersGroupResponse {}\n","/** https://help.senler.ru/senler/dev/api/methods/gruppy-podpischikov/redaktirovanie-gruppy-podpischikov */\n\nimport Joi from 'joi';\nimport { Alternatives, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\nimport { BaseEditableSubscribersGroup, BaseEditableSubscribersGroupSchema } from './subscription.base-editable';\n\nexport interface EditSubscribersGroupRequest extends BaseEditableSubscribersGroup {\n  subscription_id: number | string;\n\n  /** Name of subscribers group */\n  name: string;\n}\n\nexport const EditSubscribersGroupRequestSchema = BaseEditableSubscribersGroupSchema.concat(\n  Joi.object({\n    subscription_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n    name: RequiredString,\n  }),\n).required();\n\nexport interface EditSubscribersGroupResponse {}\n","/** https://help.senler.ru/senler/dev/api/methods/gruppy-podpischikov/poluchenie-spiska-grupp-podpischikov */\n\nimport Joi from 'joi';\nimport { Alternatives, OptionalInteger, OptionalPosInteger, OptionalString } from 'src/v2/core/validation';\nimport { Subscription } from './subscription.dto';\n\nexport interface GetSubscribersGroupsRequest {\n  /**\n   * Number of elements to return\n   *\n   * Max: `100`\n   */\n  count?: number;\n\n  /**\n   * From what number of elements you need to make a selection\n   *\n   * Default: `0`\n   *\n   * Max: `100.000`\n   *\n   * Example: `50`\n   */\n  offset?: string;\n\n  /**\n   * Subscriber group IDs, 0 for no group\n   *\n   * Example: `[1, 2]`\n   */\n  subscription_id?: Array<number | string>;\n}\n\nexport const GetSubscribersGroupsRequestSchema = Joi.object({\n  count: OptionalInteger,\n  offset: OptionalString,\n  subscription_id: Joi.array()\n    .items(Alternatives([OptionalPosInteger, OptionalString]))\n    .optional(),\n});\n\nexport interface GetSubscribersGroupsResponse {\n  count: number;\n  items: Array<Subscription>;\n}\n","import { RequestCacheConfig } from 'src/v2/configs';\nimport { HttpResource } from 'src/v2/core/abstract-http-resource';\nimport { ValidateData } from 'src/v2/core/validation';\nimport { AddSubscribersGroupRequest, AddSubscribersGroupRequestSchema, AddSubscribersGroupResponse } from './dto/add.dto';\nimport { DelSubscribersGroupRequest, DelSubscribersGroupRequestSchema, DelSubscribersGroupResponse } from './dto/del.dto';\nimport { EditSubscribersGroupRequest, EditSubscribersGroupRequestSchema, EditSubscribersGroupResponse } from './dto/edit.dto';\nimport { GetSubscribersGroupsRequest, GetSubscribersGroupsRequestSchema, GetSubscribersGroupsResponse } from './dto/get.dto';\n\nexport class SubscribersGroupsResource extends HttpResource {\n  public readonly RESOURCE_NAME = 'subscriptions';\n\n  /**\n   * Getting list of subscribers groups.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/gruppy-podpischikov/poluchenie-spiska-grupp-podpischikov\n   */\n  @ValidateData(GetSubscribersGroupsRequestSchema, true)\n  async get(data?: GetSubscribersGroupsRequest, cacheConfig?: RequestCacheConfig): Promise<GetSubscribersGroupsResponse> {\n    return await this.httpClient.request<GetSubscribersGroupsResponse>(`${this.RESOURCE_NAME}/get`, data, cacheConfig);\n  }\n\n  /**\n   * Add subscribers group.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/gruppy-podpischikov/dobavlenie-gruppy-podpischikov\n   */\n  @ValidateData(AddSubscribersGroupRequestSchema)\n  async add(data: AddSubscribersGroupRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<AddSubscribersGroupResponse> {\n    return await this.httpClient.request<AddSubscribersGroupResponse>(`${this.RESOURCE_NAME}/add`, data, cacheConfig);\n  }\n\n  /**\n   * Edit subscribers group.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/gruppy-podpischikov/redaktirovanie-gruppy-podpischikov\n   */\n  @ValidateData(EditSubscribersGroupRequestSchema)\n  async edit(data: EditSubscribersGroupRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<EditSubscribersGroupResponse> {\n    return await this.httpClient.request<EditSubscribersGroupResponse>(`${this.RESOURCE_NAME}/edit`, data, cacheConfig);\n  }\n\n  /**\n   * Del subscribers group.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/gruppy-podpischikov/udalenie-gruppy-podpischikov\n   */\n  @ValidateData(DelSubscribersGroupRequestSchema)\n  async del(data: DelSubscribersGroupRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<DelSubscribersGroupResponse> {\n    return await this.httpClient.request<DelSubscribersGroupResponse>(`${this.RESOURCE_NAME}/del`, data, cacheConfig);\n  }\n}\n","// https://help.senler.ru/senler/dev/api/methods/metki/dobavlenie-metki\n\nimport Joi from 'joi';\nimport { RequiredString } from 'src/v2/core/validation';\n\n/** Add utm tag */\nexport interface AddUtmRequest {\n  /** Example: tag 1 */\n  name: string;\n}\n\nexport const AddUtmRequestSchema = Joi.object({\n  name: RequiredString,\n}).required();\n\nexport interface AddUtmResponse {\n  /** Created utm id */\n  utm_id: string;\n}\n","// https://help.senler.ru/senler/dev/api/methods/metki/udalenie-metki\n\nimport Joi from 'joi';\nimport { Alternatives, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\n\nexport interface DeleteUtmRequest {\n  utm_id: number | string;\n}\n\nexport const DeleteUtmRequestSchema = Joi.object({\n  utm_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n}).required();\n\nexport interface DeleteUtmResponse {}\n","// https://help.senler.ru/senler/dev/api/methods/metki/redaktirovat-metku\n\nimport Joi from 'joi';\nimport { Alternatives, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\n\n/** Change the utm tag by its `utm_id` */\nexport interface EditUtmRequest {\n  utm_id: number | string;\n\n  /**\n   * New utm tag name\n   *\n   * Example: `label 1`\n   */\n  name: string;\n}\n\nexport const EditUtmRequestSchema = Joi.object({\n  utm_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n  name: RequiredString,\n}).required();\n\nexport interface EditUtmResponse {}\n","// https://help.senler.ru/senler/dev/api/methods/metki/poluchenie-metok\n\nimport Joi from 'joi';\nimport { Alternatives, OptionalPosInteger, OptionalString } from 'src/v2/core/validation';\nimport { UtmTag } from './get.utm.dto';\n\n/** Return a list of all utm tags */\nexport interface GetUtmRequest {\n  /**\n   * Number of elements to return information about\n   *\n   * Maximum: 100\n   *\n   * Example: 50\n   */\n  count?: number;\n\n  /**\n   * Offset - how many elements to sample from\n   *\n   * Default: 0 | max: 100,000\n   *\n   * Example: 50\n   */\n  offset?: number;\n\n  utm_id?: Array<number | string>;\n}\n\nexport const GetUtmRequestSchema = Joi.object({\n  count: OptionalPosInteger.max(100),\n  offset: OptionalPosInteger.max(100000),\n  utm_id: Alternatives([OptionalPosInteger, OptionalString]).optional(),\n});\n\nexport interface GetUtmResponse {\n  /**\n   * Number of all elements in the sample\n   *\n   * Example: `'20'`\n   */\n  count: string;\n\n  items: Array<UtmTag>;\n}\n","// https://help.senler.ru/senler/dev/api/methods/metki/poluchenie-ssylki-dlya-metki\n\nimport Joi from 'joi';\nimport { Alternatives, OptionalPosInteger, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\n\n/** Getting a link to a subscription page with a tag */\nexport interface GetLinkUtmRequest {\n  utm_id: number | string;\n\n  /**\n   * Subscriber group id\n   *\n   * Example: `123`\n   */\n  subscription_id: string | number;\n\n  /**\n   * Automatic subscription on transition: 0 - no, 1 - yes (default: 0)\n   *\n   * Example: `1`\n   */\n  force?: number;\n}\n\nexport const GetLinkUtmRequestSchema = Joi.object({\n  utm_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n  subscription_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n  force: OptionalPosInteger.max(1),\n}).required();\n\nexport interface GetLinkUtmResponse {\n  /** Link to a group of subscribers with a utm tag */\n  link: string;\n}\n","// https://help.senler.ru/senler/dev/api/methods/metki/statistika-metok\n\nimport Joi from 'joi';\nimport { Alternatives, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\nimport { UtmTagWithSubscribeCount } from './statCount.subscription.dto';\n\n/** Getting statistics on the number of subscriptions to ***any*** group with the utm tag */\nexport interface GetUtmSubscriptionsCountStatisticsRequest {\n  /**\n   * Date and time from which subscribed/unsubscribed\n   *\n   * Format: `d.m.Y H:i:s` example: `26.11.2018 10:00:00`\n   */\n  date_from: string;\n\n  /**\n   * Date and time before which subscribed/unsubscribed\n   *\n   * Format: `d.m.Y H:i:s` example: `27.11.2018 10:00:00`\n   */\n  date_to: string;\n\n  /**\n   * VKontakte user IDs\n   *\n   * Example: `[1]`\n   */\n  vk_user_id?: Array<number | string>;\n\n  /**\n   * Subscriber group IDs\n   *\n   * Example: `[123]`\n   */\n  subscription_id?: Array<number | string>;\n\n  /**\n   * Utm identifiers - Senler utm tags\n   *\n   * Example: `[123]`\n   */\n  utm_id?: Array<number | string>;\n}\n\nexport const GetUtmSubscriptionsCountStatisticsRequestSchema = Joi.object({\n  date_from: Joi.date().required(),\n  date_to: Joi.date().required(),\n  vk_user_id: Joi.array()\n    .items(Alternatives([RequiredPosInteger, RequiredString]))\n    .optional(),\n  subscription_id: Joi.array()\n    .items(Alternatives([RequiredPosInteger, RequiredString]))\n    .optional(),\n  utm_id: Joi.array()\n    .items(Alternatives([RequiredPosInteger, RequiredString]))\n    .optional(),\n}).required();\n\nexport interface GetUtmSubscriptionsCountStatisticsResponse {\n  /**\n   * Link to a group of subscribers with a label\n   */\n  items: Array<UtmTagWithSubscribeCount>;\n}\n","// https://help.senler.ru/senler/dev/api/methods/metki/podpischiki-s-metkami\n\nimport Joi from 'joi';\nimport { Alternatives, OptionalPosInteger, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\nimport { SubscriptionAction } from 'src/v2/resources/share/types';\n\n/**\n * Getting an array of subscriber actions associated with a utm tag\n */\nexport interface GetUtmSubscriptionsStatisticsRequest {\n  /**\n   * Date and time from which subscribed/unsubscribed\n   *\n   * Format: `d.m.Y H:i:s` Example: `26.11.2018 10:00:00`\n   */\n  date_from: string;\n\n  /**\n   * Date and time before which subscribed/unsubscribed\n   *\n   * Format: `d.m.Y H:i:s` Example: `27.11.2018 10:00:00`\n   */\n  date_to: string;\n\n  /**\n   * Number of elements to return information about\n   *\n   * Maximum: `100`\n   *\n   * Example: `50`\n   */\n  count?: number;\n\n  /**\n   * Offset - how many elements to sample from\n   *\n   * Default: `0` | max: `100,000`\n   *\n   * Example: `50`\n   */\n  offset?: number;\n\n  /**\n   * VKontakte user IDs\n   *\n   * Example: `[1]`\n   */\n  vk_user_id?: Array<number | string>;\n\n  /**\n   * Subscriber group ID (missing if the subscription is without a group)\n   *\n   * Example: `[123]`\n   */\n  subscription_id?: Array<number | string>;\n\n  /**\n   * Utm identifiers - Senler utm tags\n   *\n   * Example: `[0,123]`\n   */\n  utm_id?: Array<number | string>;\n\n  /**\n   * Subscriber action: 0 - all, 1 - subscribe, 2 - unsubscribe (default 0)\n   *\n   * Example: `1`\n   */\n  action?: number;\n}\n\nexport const GetUtmSubscriptionsStatisticsRequestSchema = Joi.object({\n  date_from: Joi.date().required(),\n  date_to: Joi.date().required(),\n  count: OptionalPosInteger.max(100),\n  offset: OptionalPosInteger.max(100000),\n  vk_user_id: Joi.array()\n    .items(Alternatives([RequiredPosInteger, RequiredString]))\n    .optional(),\n  subscription_id: Joi.array()\n    .items(Alternatives([RequiredPosInteger, RequiredString]))\n    .optional(),\n  utm_id: Joi.array()\n    .items(Alternatives([RequiredPosInteger, RequiredString]))\n    .optional(),\n  action: OptionalPosInteger.max(2),\n}).required();\n\nexport interface SubscriptionsStatisticsResponse {\n  /**\n   * Number of all elements in the sample\n   *\n   * Example: `20`\n   */\n  count: number;\n\n  items: Array<SubscriptionAction>;\n}\n","import { RequestCacheConfig } from 'src/v2/configs';\nimport { HttpResource } from 'src/v2/core/abstract-http-resource';\nimport { ValidateData } from 'src/v2/core/validation';\nimport { AddUtmRequest, AddUtmRequestSchema, AddUtmResponse } from './dto/add.dto';\nimport { DeleteUtmRequest, DeleteUtmRequestSchema, DeleteUtmResponse } from './dto/del.dto';\nimport { EditUtmRequest, EditUtmRequestSchema, EditUtmResponse } from './dto/edit.dto';\nimport { GetUtmRequest, GetUtmRequestSchema, GetUtmResponse } from './dto/get.dto';\nimport { GetLinkUtmRequest, GetLinkUtmRequestSchema, GetLinkUtmResponse } from './dto/getLink.dto';\nimport { GetUtmSubscriptionsCountStatisticsRequest, GetUtmSubscriptionsCountStatisticsRequestSchema, GetUtmSubscriptionsCountStatisticsResponse } from './dto/statCount.dto';\nimport { GetUtmSubscriptionsStatisticsRequest, GetUtmSubscriptionsStatisticsRequestSchema, SubscriptionsStatisticsResponse } from './dto/statSubscribe.dto';\n\nexport class UtmsResource extends HttpResource {\n  public readonly RESOURCE_NAME = 'utms';\n\n  /**\n   * Add Utm.clear\n   *\n   * https://help.senler.ru/senler/dev/api/methods/metki/dobavlenie-metki\n   */\n  @ValidateData(AddUtmRequestSchema)\n  async add(data: AddUtmRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<AddUtmResponse> {\n    return await this.httpClient.request<AddUtmResponse>(`${this.RESOURCE_NAME}/add`, data, cacheConfig);\n  }\n\n  /**\n   * Edit Utms.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/metki/redaktirovat-metku\n   */\n  @ValidateData(EditUtmRequestSchema)\n  async edit(data: EditUtmRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<EditUtmResponse> {\n    return await this.httpClient.request<EditUtmResponse>(`${this.RESOURCE_NAME}/edit`, data, cacheConfig);\n  }\n\n  /**\n   * Delete Utm.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/metki/udalenie-metki\n   */\n  @ValidateData(DeleteUtmRequestSchema)\n  async del(data: DeleteUtmRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<DeleteUtmResponse> {\n    return await this.httpClient.request<DeleteUtmResponse>(`${this.RESOURCE_NAME}/del`, data, cacheConfig);\n  }\n\n  /**\n   * Get all Utms.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/metki/poluchenie-metok\n   */\n  @ValidateData(GetUtmRequestSchema, true)\n  async get(data?: GetUtmRequest, cacheConfig?: RequestCacheConfig): Promise<GetUtmResponse> {\n    return await this.httpClient.request<GetUtmResponse>(`${this.RESOURCE_NAME}/get`, data, cacheConfig);\n  }\n\n  /**\n   * Getting a link to a subscription page with a utm.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/metki/poluchenie-ssylki-dlya-metki\n   */\n  @ValidateData(GetLinkUtmRequestSchema)\n  async getLink(data: GetLinkUtmRequest, cacheConfig?: RequestCacheConfig): Promise<GetLinkUtmResponse> {\n    return await this.httpClient.request<GetLinkUtmResponse>(`${this.RESOURCE_NAME}/getLink`, data, cacheConfig);\n  }\n\n  /**\n   * Utm statistics.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/metki/statistika-metok\n   */\n  @ValidateData(GetUtmSubscriptionsCountStatisticsRequestSchema)\n  async getSubscriptionsCountStatistics(data: GetUtmSubscriptionsCountStatisticsRequest, cacheConfig?: RequestCacheConfig): Promise<GetUtmSubscriptionsCountStatisticsResponse> {\n    return await this.httpClient.request<GetUtmSubscriptionsCountStatisticsResponse>(`${this.RESOURCE_NAME}/statCount`, data, cacheConfig);\n  }\n\n  /**\n   * Subscription statistics with tags.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/metki/podpischiki-s-metkami\n   */\n  @ValidateData(GetUtmSubscriptionsStatisticsRequestSchema)\n  async getSubscriptionsStatistics(data: GetUtmSubscriptionsStatisticsRequest, cacheConfig?: RequestCacheConfig): Promise<SubscriptionsStatisticsResponse> {\n    return await this.httpClient.request<SubscriptionsStatisticsResponse>(`${this.RESOURCE_NAME}/statSubscribe`, data, cacheConfig);\n  }\n}\n","/** https://help.senler.ru/senler/dev/api/methods/peremennye-podpischikov/udalenie-peremennoi */\n\nimport Joi from 'joi';\nimport { Alternatives, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\n\nexport interface DeleteVarRequest {\n  vk_user_id: number | string;\n  name: string;\n}\n\nexport const DeleteVarRequestSchema = Joi.object({\n  vk_user_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n  name: RequiredString,\n}).required();\n\nexport interface DeleteVarResponse {}\n","/** https://help.senler.ru/senler/dev/api/methods/peremennye-podpischikov/poluchenie-peremennoi */\n\nimport Joi from 'joi';\nimport { Alternatives, OptionalString, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\nimport { Var } from './get.var.dto';\n\nexport interface GetVarRequest {\n  vk_user_id: number | string;\n\n  /**\n   * Variable name. If not specified, all subscriber variables will be returned.\n   *\n   * Example: `promo`\n   */\n  name?: string;\n\n  /** Decoding html entities. If not specified, variables with encoded entities will be returned. */\n  html_entity_decode?: boolean;\n}\n\nexport const GetVarRequestSchema = Joi.object({\n  vk_user_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n  name: OptionalString,\n  html_entity_decode: Joi.boolean().optional(),\n}).required();\n\nexport interface GetVarResponse {\n  items: Array<Var>;\n}\n","/** https://help.senler.ru/senler/dev/api/methods/peremennye-podpischikov/ustanovka-peremennoi  */\n\nimport Joi from 'joi';\nimport { Alternatives, RequiredPosInteger, RequiredString } from 'src/v2/core/validation';\n\nexport interface SetVarRequest {\n  vk_user_id: number | string;\n  name: string;\n  value: string;\n}\n\nexport const SetVarRequestSchema = Joi.object({\n  vk_user_id: Alternatives([RequiredPosInteger, RequiredString]).required(),\n  name: RequiredString,\n  value: RequiredString,\n}).required();\n\nexport interface SetVarResponse {}\n","import { RequestCacheConfig } from 'src/v2/configs';\nimport { HttpResource } from 'src/v2/core/abstract-http-resource';\nimport { ValidateData } from 'src/v2/core/validation';\nimport { DeleteVarRequest, DeleteVarRequestSchema, DeleteVarResponse } from './dto/del.dto';\nimport { GetVarRequest, GetVarRequestSchema, GetVarResponse } from './dto/get.dto';\nimport { SetVarRequest, SetVarRequestSchema, SetVarResponse } from './dto/set.dto';\n\nexport class VarsResource extends HttpResource {\n  public readonly RESOURCE_NAME = 'vars';\n\n  /**\n   * Get a user variable.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/peremennye-podpischikov/poluchenie-peremennoi\n   */\n  @ValidateData(GetVarRequestSchema)\n  async get(data: GetVarRequest, cacheConfig?: RequestCacheConfig): Promise<GetVarResponse> {\n    return await this.httpClient.request<GetVarResponse>(`${this.RESOURCE_NAME}/get`, data, cacheConfig);\n  }\n\n  /**\n   * Set a user variable.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/peremennye-podpischikov/ustanovka-peremennoi\n   */\n  @ValidateData(SetVarRequestSchema)\n  async set(data: SetVarRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<SetVarResponse> {\n    return await this.httpClient.request<SetVarResponse>(`${this.RESOURCE_NAME}/set`, data, cacheConfig);\n  }\n\n  /**\n   * Delete a user variable.\n   *\n   * https://help.senler.ru/senler/dev/api/methods/peremennye-podpischikov/udalenie-peremennoi\n   */\n  @ValidateData(DeleteVarRequestSchema)\n  async del(data: DeleteVarRequest, cacheConfig: RequestCacheConfig = { enabled: false }): Promise<DeleteVarResponse> {\n    return await this.httpClient.request<DeleteVarResponse>(`${this.RESOURCE_NAME}/del`, data, cacheConfig);\n  }\n}\n","import { BASE_LOGGING_CONFIG } from './configs';\nimport { HttpClient } from './core/http-client';\nimport { CacheConfig } from './core/http-client/cache';\nimport { RetryConfig } from './core/http-client/client.config';\nimport { ApiConfig, LoggingConfig } from './core/http-client/client.dto';\nimport { BotsResource } from './resources/bots/bots.api';\nimport { DeliveriesResource } from './resources/deliveries/deliveries.api';\nimport { GlobalVarsResource } from './resources/globalVars/globalVars.api';\nimport { GroupsResource } from './resources/groups/groups.api';\nimport { IntegrationResource } from './resources/integration/integration.api';\nimport { SubscribersResource } from './resources/subscribers/subscribers.api';\nimport { SubscribersGroupsResource } from './resources/subscriptions/subscription.api';\nimport { UtmsResource } from './resources/utms/utms.api';\nimport { VarsResource } from './resources/vars/var.api';\n\nexport interface ApiClientConfig extends ApiConfig {}\n\nexport class SenlerApiClientV2 {\n  public readonly httpClient: HttpClient;\n\n  public readonly integration: IntegrationResource;\n\n  public readonly subscribers: SubscribersResource;\n  public readonly subscribersGroups: SubscribersGroupsResource;\n  public readonly utms: UtmsResource;\n  public readonly deliveries: DeliveriesResource;\n  public readonly bots: BotsResource;\n  public readonly vars: VarsResource;\n  public readonly globalVars: GlobalVarsResource;\n  public readonly groups: GroupsResource;\n\n  constructor(config: { apiConfig: ApiClientConfig; loggingConfig?: LoggingConfig; retryConfig?: RetryConfig; cacheConfig?: CacheConfig }) {\n    config.loggingConfig = Object.assign(BASE_LOGGING_CONFIG, config.loggingConfig);\n\n    this.httpClient = new HttpClient(config);\n\n    this.integration = new IntegrationResource(this.httpClient);\n\n    this.subscribers = new SubscribersResource(this.httpClient);\n    this.subscribersGroups = new SubscribersGroupsResource(this.httpClient);\n    this.utms = new UtmsResource(this.httpClient);\n    this.deliveries = new DeliveriesResource(this.httpClient);\n    this.bots = new BotsResource(this.httpClient);\n    this.vars = new VarsResource(this.httpClient);\n    this.globalVars = new GlobalVarsResource(this.httpClient);\n    this.groups = new GroupsResource(this.httpClient);\n  }\n}\n"],"names":["API_BASE_URL","DEFAULT_API_VERSION","ERROR_CODES","BASE_RETRY_CONFIG","retries","retryDelay","retryCount","error","axiosRetry","exponentialDelay","retryCondition","networkError","isNetworkOrIdempotentRequestError","statusCode5xx","response","status","statusCode429","isENOTFOUND","code","BASE_LOGGING_CONFIG","level","base","pid","timestamp","pino","stdTimeFunctions","isoTime","BASE_API_CONFIG","baseUrl","apiVersion","clearResponse","_target","_propertyKey","descriptor","originalMethod","value","args","result","apply","filteredResult","_objectWithoutPropertiesLoose","_excluded","ApiError","Error","constructor","errorCode","errorMessage","message","buildErrorMessage","details","name","responseErrorMessage","handleApiError","success","error_code","error_message","_","JSON","stringify","KeyBuilder","buildKey","url","requestParams","axios","keyPrefix","axiosInstanceParams","_getAxiosInstanceParams","join","headers","defaults","params","data","HttpClient","config","_config$cacheConfig","client","logger","axiosRetryConfig","apiConfig","cacheConfig","generateRequestId","Math","random","toString","slice","Object","assign","enabled","buildRetryConfig","createLogger","loggingConfig","createAxiosClient","request","requestId","createChildRequestLogger","cachedData","getCachedData","info","requestData","postForm","saveCacheIfNeed","logError","manager","debug","key","cache","get","responseData","requestCacheConfig","set","ttl","axiosConfig","baseURL","access_token","accessToken","vk_group_id","vkGroupId","v","instance","create","destination","loggerOptions","endpoint","child","appendLoggingOnRetry","oldRetryConfig","_this","_extends","onRetry","requestConfig","logRetrying","warn","__decorate","prototype","HttpResource","httpClient","Alternatives","combinations","setRequired","setOptional","schemas","map","schema","required","optional","Joi","alternatives","try","OptionalNumber","number","OptionalInteger","integer","RequiredInteger","OptionalPosInteger","min","RequiredPosInteger","OptionalString","string","allow","RequiredString","TypeOrNotEmptyArray","T","array","items","ValidateData","_key","undefined","validate","x","AddSubscriberRequestSchema","object","vk_user_id","bot_id","enforce","boolean","step_id","DelSubscriberRequestSchema","GetBotsListRequestSchema","count","offset","GetStepsRequestSchema","BotsResource","RESOURCE_NAME","getSteps","addSubscriber","delSubscriber","OneOfEnumerate","enumObject","valid","values","ListOfEnumerate","DeliveriesStatus","DeliveriesType","GetDeliveriesRequestSchema","max","delivery_id","type","GetRecipientStatisticsRequestSchema","date_from","date","date_to","offset_id","GetDeliveryCountStatisticsRequestSchema","DeliveriesResource","getSubscriptionsStatistics","getSubscriptionsCountStatistics","DeleteGlobalVarRequestSchema","GetGlobalVarRequestSchema","SetGlobalVarRequestSchema","GlobalVarsResource","del","GetGroupRequestSchema","group_id","GroupsResource","IntegrationType","UpdateIntegrationStepSettingsRequestSchema","description","title","settings","command","IntegrationResource","updateStepSettings","AddSubscribersInGroupRequestSchema","subscription_id","DelSubscriberFromSubscriptionGroupRequestSchema","SubscriptionSourceType","GetSubscribersRequestSchema","ignore_subscription_id","ignore_delivery_id","error_delivery_id","read_delivery_id","ignore_read_delivery_id","away_delivery_id","ignore_away_delivery_id","source","date_subscription_from","date_subscription_to","date_first_from","date_first_to","date_delivery_from","date_delivery_to","date_first_delivery_from","date_first_delivery_to","date_last_delivery_from","date_last_delivery_to","date_away_from","date_away_to","ignore_bot_id","ignore_step_id","lead_status","var_name","var_value","UtmFilterParamsSchema","utm_id","utm_source","utm_medium","utm_campaign","utm_content","utm_term","GetSubscribersStatisticsBaseRequestSchema","concat","GetSubscriptionsCountStatisticsRequestSchema","GetSubscriptionsStatisticsRequestSchema","SubscribersResource","addInGroup","delFromGroup","BaseEditableSubscribersGroupSchema","btn_ok","btn_cancel","inactive","hide_subscriptions","video_key","disabled_notify","short_description","vk_pixel","fb_pixel","ya_metrica","ga_metrica","url_after_subscribing","url_after_unsubscribing","limit_period","limit_period_from","limit_period_to","exclude_subscription_id","bot_ids","AddSubscribersGroupRequestSchema","DelSubscribersGroupRequestSchema","EditSubscribersGroupRequestSchema","GetSubscribersGroupsRequestSchema","SubscribersGroupsResource","add","edit","AddUtmRequestSchema","DeleteUtmRequestSchema","EditUtmRequestSchema","GetUtmRequestSchema","GetLinkUtmRequestSchema","force","GetUtmSubscriptionsCountStatisticsRequestSchema","GetUtmSubscriptionsStatisticsRequestSchema","action","UtmsResource","getLink","DeleteVarRequestSchema","GetVarRequestSchema","html_entity_decode","SetVarRequestSchema","VarsResource","SenlerApiClientV2","integration","subscribers","subscribersGroups","utms","deliveries","bots","vars","globalVars","groups"],"mappings":"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"}