{"version":3,"file":"index.cjs","sources":["../../../../src/modules/analytics/index.ts"],"sourcesContent":["/**\n * Auto-generated module\n * Generated from: wildberries_api_doc/11-analytics.yaml\n * DO NOT EDIT MANUALLY - Changes will be overwritten on next generation\n */\n\nimport { BaseClient } from '../../client/base-client';\nimport type {\n  CommonResponseProperties,\n  MainRequest,\n  MainResponse,\n  NmReportCreateReportResponse,\n  NmReportGetReportsResponse,\n  NmReportRetryReportRequest,\n  NmReportRetryReportResponse,\n  ProductOrdersRequest,\n  ProductOrdersResponse,\n  ProductSearchTextsRequest,\n  ProductSearchTextsResponse,\n  SalesFunnelGroupReq,\n  SalesFunnelProductReq,\n  SalesFunnelProductsRequest,\n  SalesFunnelProductsResponse,\n  SalesFunnelProductsHistoryRequest,\n  SalesFunnelProductsHistoryResponse,\n  SalesFunnelGroupedHistoryRequest,\n  SalesFunnelGroupedHistoryResponse,\n  SearchReportGroupReq,\n  SearchReportProductReq,\n  SearchReportTextReq,\n  StocksReportReq,\n  InventoryHistoryReportReq,\n  TableDetailsRequest,\n  TableDetailsResponse,\n  TableGroupRequest,\n  TableGroupRequestSt,\n  TableGroupResponse,\n  TableGroupResponseSt,\n  TableProductRequest,\n  TableProductResponse,\n  TableShippingOfficeRequest,\n  TableShippingOfficeResponse,\n  TableSizeRequest,\n  TableSizeResponse,\n  WbWarehousesStockRequest,\n  WbWarehousesStockResponse,\n  ItemRatingRequest,\n  ItemRatingResponseWrapper,\n  ItemRatingV2Request,\n  ItemRatingV2ResponseWrapper,\n} from '../../types/analytics.types';\n\nexport class AnalyticsModule {\n  constructor(private client: BaseClient) {}\n\n  /**\n   * Получить список отчётов\n   *\n   * Метод возвращает список отчётов с расширенной аналитикой продавца. Ответ содержит ID созданных отчётов и статусы генерации.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @param [options] - Query parameters\n   * @returns Успешно\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Analitika-prodavca-CSV}\n   * @example\n   * const result = await sdk.analytics.getNmReportDownloads({});\n   * console.log(result);\n   */\n  async getNmReportDownloads(options?: {\n    'filter[downloadIds]'?: string[];\n  }): Promise<NmReportGetReportsResponse> {\n    return this.client.get<NmReportGetReportsResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v2/nm-report/downloads',\n      { params: options, rateLimitKey: 'analytics.nmReportDownloads' }\n    );\n  }\n\n  /**\n   * Создать отчёт\n   *\n   * Метод создаёт задание на генерацию отчёта с расширенной аналитикой продавца.\n   * Вы можете создать CSV-версии отчётов по воронке продаж или параметрам поиска с группировкой по артикулам WB, предметам, брендам и ярлыкам.\n   * В отчётах по воронке продаж можно группировать данные по дням, неделям или месяцам.\n   * Параметры `includeSubstitutedSKUs` и `includeSearchTexts` не могут одновременно иметь значение `false`.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @remarks Daily limit: 20 reports per day per seller account.\n   * @param [data] - Request body data\n   * @returns Успешно\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Analitika-prodavca-CSV}\n   * @example\n   * const result = await sdk.analytics.createNmReportDownload({});\n   * console.log(result);\n   */\n  async createNmReportDownload(\n    data?:\n      | SalesFunnelProductReq\n      | SalesFunnelGroupReq\n      | SearchReportGroupReq\n      | SearchReportProductReq\n      | SearchReportTextReq\n      | StocksReportReq\n      | InventoryHistoryReportReq\n  ): Promise<NmReportCreateReportResponse> {\n    return this.client.post<NmReportCreateReportResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v2/nm-report/downloads',\n      data,\n      { rateLimitKey: 'analytics.postNmReportDownloads' }\n    );\n  }\n\n  /**\n   * Сгенерировать отчёт повторно\n   *\n   * Метод создает повторное задание на генерацию отчёта с расширенной аналитикой продавца.\n   * Необходимо, если при генерации отчёта вы получили статус `FAILED`.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @param data - Request body data\n   * @returns Успешно\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Analitika-prodavca-CSV}\n   * @example\n   * const result = await sdk.analytics.createDownloadsRetry({});\n   * console.log(result);\n   */\n  async createDownloadsRetry(\n    data: NmReportRetryReportRequest\n  ): Promise<NmReportRetryReportResponse> {\n    return this.client.post<NmReportRetryReportResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v2/nm-report/downloads/retry',\n      data,\n      { rateLimitKey: 'analytics.postNmReportDownloadsRetry' }\n    );\n  }\n\n  /**\n   * Получить отчёт\n   *\n   * Метод возвращает отчёт с расширенной аналитикой продавца по ID задания на генерацию.\n   * Можно получить отчёт, который сгенерирован за последние 48 часов.\n   * Отчёт будет загружен внутри архива ZIP в формате CSV.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @param downloadId - ID отчёта (UUID format)\n   * @returns Успешно - ZIP архив с CSV файлом\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Analitika-prodavca-CSV}\n   * @example\n   * const result = await sdk.analytics.getDownloadsFile('downloadId-value');\n   * console.log(result);\n   */\n  async getDownloadsFile(downloadId: string): Promise<ArrayBuffer> {\n    return this.client.get<ArrayBuffer>(\n      `https://seller-analytics-api.wildberries.ru/api/v2/nm-report/downloads/file/${downloadId}`,\n      { rateLimitKey: 'analytics.nmReportDownloadsFile' }\n    );\n  }\n\n  /**\n   * Основная страница\n   *\n   * Метод формирует набор данных для основной страницы отчёта по поисковым запросам с общей информацией, позициями товаров, данными по видимости и переходам в карточку, данными для таблицы по группам.\n   * Параметры `includeSubstitutedSKUs` и `includeSearchTexts` не могут одновременно иметь значение `false`.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @param data - Request body data\n   * @returns Успешно\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Poiskovye-zaprosy}\n   * @example\n   * const result = await sdk.analytics.createSearchReportReport({});\n   * console.log(result);\n   */\n  async createSearchReportReport(\n    data: MainRequest\n  ): Promise<CommonResponseProperties & { data: MainResponse }> {\n    return this.client.post<CommonResponseProperties & { data: MainResponse }>(\n      'https://seller-analytics-api.wildberries.ru/api/v2/search-report/report',\n      data,\n      { rateLimitKey: 'analytics.postSearchReportReport' }\n    );\n  }\n\n  /**\n   * Пагинация по группам\n   *\n   * Метод формирует дополнительные данные к основному отчёту с пагинацией по группам.\n   * Пагинация возможна только при наличии фильтра по бренду, предмету или ярлыку.\n   * Параметры `includeSubstitutedSKUs` и `includeSearchTexts` не могут одновременно иметь значение `false`.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @param data - Request body data\n   * @returns Успешно\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Poiskovye-zaprosy}\n   * @example\n   * const result = await sdk.analytics.createTableGroup({});\n   * console.log(result);\n   */\n  async createTableGroup(\n    data: TableGroupRequest\n  ): Promise<CommonResponseProperties & { data: TableGroupResponse }> {\n    return this.client.post<CommonResponseProperties & { data: TableGroupResponse }>(\n      'https://seller-analytics-api.wildberries.ru/api/v2/search-report/table/groups',\n      data,\n      { rateLimitKey: 'analytics.postSearchReportTableGroups' }\n    );\n  }\n\n  /**\n   * Пагинация по товарам в группе\n   *\n   * Метод формирует дополнительные данные к основному отчёту с пагинацией по товарам в группе.\n   * Пагинация возможна вне зависимости от наличия фильтров.\n   * Параметры `includeSubstitutedSKUs` и `includeSearchTexts` не могут одновременно иметь значение `false`.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @param data - Request body data\n   * @returns Успешно\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Poiskovye-zaprosy}\n   * @example\n   * const result = await sdk.analytics.createTableDetail({});\n   * console.log(result);\n   */\n  async createTableDetail(\n    data: TableDetailsRequest\n  ): Promise<CommonResponseProperties & { data: TableDetailsResponse }> {\n    return this.client.post<CommonResponseProperties & { data: TableDetailsResponse }>(\n      'https://seller-analytics-api.wildberries.ru/api/v2/search-report/table/details',\n      data,\n      { rateLimitKey: 'analytics.postSearchReportTableDetails' }\n    );\n  }\n\n  /**\n   * Поисковые запросы по товару\n   *\n   * Метод формирует топ поисковых запросов по товару.\n   * Параметры `includeSubstitutedSKUs` и `includeSearchTexts` не могут одновременно иметь значение `false`.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @param data - Request body data\n   * @returns Успешно\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Poiskovye-zaprosy}\n   * @example\n   * const result = await sdk.analytics.createProductSearchText({});\n   * console.log(result);\n   */\n  async createProductSearchText(\n    data: ProductSearchTextsRequest\n  ): Promise<CommonResponseProperties & { data: ProductSearchTextsResponse }> {\n    return this.client.post<CommonResponseProperties & { data: ProductSearchTextsResponse }>(\n      'https://seller-analytics-api.wildberries.ru/api/v2/search-report/product/search-texts',\n      data,\n      { rateLimitKey: 'analytics.postSearchReportProductSearchTexts' }\n    );\n  }\n\n  /**\n   * Заказы и позиции по поисковым запросам товара\n   *\n   * Метод формирует данные для таблицы по количеству заказов и позиций в поиске по запросам покупателя.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @param data - Request body data\n   * @returns Успешно\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Poiskovye-zaprosy}\n   * @example\n   * const result = await sdk.analytics.createProductOrder({});\n   * console.log(result);\n   */\n  async createProductOrder(\n    data: ProductOrdersRequest\n  ): Promise<CommonResponseProperties & { data: ProductOrdersResponse }> {\n    return this.client.post<CommonResponseProperties & { data: ProductOrdersResponse }>(\n      'https://seller-analytics-api.wildberries.ru/api/v2/search-report/product/orders',\n      data,\n      { rateLimitKey: 'analytics.postSearchReportProductOrders' }\n    );\n  }\n\n  /**\n   * Данные по группам\n   *\n   * Метод формирует набор данных об остатках по группам товаров.\n   * Группа товаров описывается кортежем `subjectID, brandName, tagID`.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @param data - Request body data\n   * @returns Успешно\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Istoriya-ostatkov}\n   * @example\n   * const result = await sdk.analytics.createProductsGroup({});\n   * console.log(result);\n   */\n  async createProductsGroup(data: TableGroupRequestSt): Promise<{ data: TableGroupResponseSt }> {\n    return this.client.post<{ data: TableGroupResponseSt }>(\n      'https://seller-analytics-api.wildberries.ru/api/v2/stocks-report/products/groups',\n      data,\n      { rateLimitKey: 'analytics.postStocksReportProductsGroups' }\n    );\n  }\n\n  /**\n   * Данные по товарам\n   *\n   * Метод формирует набор данных об остатках по товарам.\n   * Можно получить данные как по отдельным товарам, так и в рамках всего отчёта — если в запросе отсутствуют фильтры: `nmIDs`, `subjectID`, `brandName`, `tagID`.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @param data - Request body data\n   * @returns Успешно\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Istoriya-ostatkov}\n   * @example\n   * const result = await sdk.analytics.createProductsProduct({});\n   * console.log(result);\n   */\n  async createProductsProduct(data: TableProductRequest): Promise<{ data: TableProductResponse }> {\n    return this.client.post<{ data: TableProductResponse }>(\n      'https://seller-analytics-api.wildberries.ru/api/v2/stocks-report/products/products',\n      data,\n      { rateLimitKey: 'analytics.postStocksReportProductsProducts' }\n    );\n  }\n\n  /**\n   * Данные по размерам\n   *\n   * Метод формирует набор данных об остатках по размерам товара.\n   * Товар не имеет размера, если у него единственный размер с `\"techSize\":\"0\"`.\n   * Данные по складам Маркетплейс (FBS) приходят в агрегированном виде.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @param data - Request body data\n   * @returns Успешно\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Istoriya-ostatkov}\n   * @example\n   * const result = await sdk.analytics.createProductsSize({});\n   * console.log(result);\n   */\n  async createProductsSize(data: TableSizeRequest): Promise<{ data: TableSizeResponse }> {\n    return this.client.post<{ data: TableSizeResponse }>(\n      'https://seller-analytics-api.wildberries.ru/api/v2/stocks-report/products/sizes',\n      data,\n      { rateLimitKey: 'analytics.postStocksReportProductsSizes' }\n    );\n  }\n\n  /**\n   * Данные по складам\n   *\n   * Метод формирует набор данных об остатках по складам.\n   * Данные по складам Маркетплейс (FBS) приходят в агрегированном виде — по всем сразу, без детализации по конкретным складам.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, burst 3\n   *\n   * @param data - Request body data\n   * @returns Успешно\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Istoriya-ostatkov}\n   * @example\n   * const result = await sdk.analytics.createStocksReportOffice({});\n   * console.log(result);\n   */\n  async createStocksReportOffice(\n    data: TableShippingOfficeRequest\n  ): Promise<{ data: TableShippingOfficeResponse }> {\n    return this.client.post<{ data: TableShippingOfficeResponse }>(\n      'https://seller-analytics-api.wildberries.ru/api/v2/stocks-report/offices',\n      data,\n      { rateLimitKey: 'analytics.postStocksReportOffices' }\n    );\n  }\n\n  // ============ v3 Sales Funnel Methods ============\n\n  /**\n   * Статистика карточек товаров за период (v3)\n   *\n   * Возвращает отчёт о товарах с ключевыми показателями — переходы в карточку,\n   * добавления в корзину, заказы — за текущий и прошлый периоды.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, 3-request burst\n   *\n   * @param data - Request parameters\n   * @returns Sales funnel products statistics\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Voronka-prodazh}\n   * @example\n   * const result = await sdk.analytics.getSalesFunnelProducts({\n   *   selectedPeriod: { start: '2026-01-01', end: '2026-01-31' },\n   *   orderBy: { field: 'orderCount', mode: 'desc' },\n   *   limit: 10,\n   *   offset: 0,\n   * });\n   * console.log(result.products);\n   */\n  async getSalesFunnelProducts(\n    data: SalesFunnelProductsRequest\n  ): Promise<SalesFunnelProductsResponse> {\n    return this.client.post<SalesFunnelProductsResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/analytics/v3/sales-funnel/products',\n      data,\n      { rateLimitKey: 'analytics.postSalesFunnelProducts' }\n    );\n  }\n\n  /**\n   * Статистика карточек товаров по дням (v3)\n   *\n   * Возвращает статистику карточек товаров по дням или неделям.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, 3-request burst\n   *\n   * @param data - Request parameters\n   * @returns Products history statistics\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Voronka-prodazh}\n   * @example\n   * const result = await sdk.analytics.getSalesFunnelProductsHistory({\n   *   selectedPeriod: { start: '2026-01-01', end: '2026-01-07' },\n   *   nmIds: [268913787],\n   *   aggregationLevel: 'day',\n   * });\n   * console.log(result);\n   */\n  async getSalesFunnelProductsHistory(\n    data: SalesFunnelProductsHistoryRequest\n  ): Promise<SalesFunnelProductsHistoryResponse> {\n    return this.client.post<SalesFunnelProductsHistoryResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/analytics/v3/sales-funnel/products/history',\n      data,\n      { rateLimitKey: 'analytics.postSalesFunnelProductsHistory' }\n    );\n  }\n\n  /**\n   * Статистика групп карточек товаров по дням (v3)\n   *\n   * Возвращает статистику карточек товаров по дням, сгруппированных по предметам, брендам и ярлыкам.\n   *\n   * Rate limit: 3 requests/minute, 20-second interval, 3-request burst\n   *\n   * @param data - Request parameters\n   * @returns Grouped history statistics\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @see {@link https://dev.wildberries.ru/openapi/seller-analytics#tag/Voronka-prodazh}\n   * @example\n   * const result = await sdk.analytics.getSalesFunnelGroupedHistory({\n   *   selectedPeriod: { start: '2026-01-01', end: '2026-01-07' },\n   *   aggregationLevel: 'day',\n   * });\n   * console.log(result);\n   */\n  async getSalesFunnelGroupedHistory(\n    data: SalesFunnelGroupedHistoryRequest\n  ): Promise<SalesFunnelGroupedHistoryResponse> {\n    return this.client.post<SalesFunnelGroupedHistoryResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/analytics/v3/sales-funnel/grouped/history',\n      data,\n      { rateLimitKey: 'analytics.postSalesFunnelGroupedHistory' }\n    );\n  }\n\n  /**\n   * Текущие остатки на складах WB\n   *\n   * Возвращает актуальные остатки товаров на складах Wildberries.\n   * Данные обновляются раз в 30 минут. Одна строка = один размер на одном складе.\n   * Результаты отсортированы по возрастанию nmId.\n   *\n   * Доступен только для токенов типа Personal и Service.\n   *\n   * **WB expanded access:** now also available to registered/authorized services\n   * via a basic token + secret (not just personal/service tokens).\n   *\n   * **Заменяет устаревший метод** `GET /api/v1/supplier/stocks`,\n   * который будет отключён 23 июня 2026.\n   *\n   * Rate limit: 3 requests per minute, 20-second interval, burst 1\n   *\n   * @param data - Filter and pagination parameters (all optional)\n   * @param data.nmIds - WB articles to filter (0-1000, empty = all)\n   * @param data.chrtIds - Size IDs (only for articles in nmIds)\n   * @param data.limit - Rows in response (max 250000, default 250000)\n   * @param data.offset - Skip N results for pagination (default 0)\n   * @returns Current inventory with warehouse IDs, region names, quantities\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @since 3.4.0\n   * @see {@link https://dev.wildberries.ru/docs/openapi/analytics#tag/Istoriya-ostatkov/operation/postV1StocksReportWbWarehouses}\n   * @see [Stocks History guide](https://dev.wildberries.ru/knowledge-base/articles/019ef14c-c72d-717a-9fc2-b0b2f361dc80)\n   * @example\n   * ```typescript\n   * // Get all inventory\n   * const stock = await sdk.analytics.getWbWarehousesStock();\n   * for (const item of stock.data.items) {\n   *   console.log(`${item.warehouseName} (${item.regionName}): ${item.quantity} шт.`);\n   * }\n   *\n   * // With filters and pagination\n   * const page = await sdk.analytics.getWbWarehousesStock({\n   *   nmIds: [395996251],\n   *   limit: 100,\n   *   offset: 0,\n   * });\n   * ```\n   */\n  async getWbWarehousesStock(data?: WbWarehousesStockRequest): Promise<WbWarehousesStockResponse> {\n    return this.client.post<WbWarehousesStockResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/analytics/v1/stocks-report/wb-warehouses',\n      data ?? {},\n      { rateLimitKey: 'analytics.postStocksReportWbWarehouses' }\n    );\n  }\n\n  /**\n   * Get the v2 item-rating report, including catalog visibility.\n   *\n   * Use `onlyShadowedNms: true` to replace the deprecated\n   * `reports.getBannedProductsShadowed()` report. Each returned item includes\n   * `isShadowed`, and the per-product array is named `items` (not the v1 `cards`).\n   *\n   * Rate limit: 3 requests per minute, 20s interval, burst 3.\n   *\n   * @param data - V2 report filters, sorting, and pagination.\n   * @returns Seller rating, feedback summary, and per-product rows with `isShadowed`.\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @since 4.1.0\n   * @see {@link https://dev.wildberries.ru/docs/openapi/analytics#tag/Ocenka-tovara/operation/postV2ItemRating}\n   * @example\n   * ```typescript\n   * const hiddenProducts = await sdk.analytics.getItemRatingV2({\n   *   currentPeriod: { start: '2026-07-01', end: '2026-07-18' },\n   *   onlyShadowedNms: true,\n   *   orderBy: { field: 'feedbackCount', mode: 'desc' },\n   *   offset: 0,\n   * });\n   * console.log(hiddenProducts.data.items[0]?.isShadowed);\n   * ```\n   */\n  async getItemRatingV2(data: ItemRatingV2Request): Promise<ItemRatingV2ResponseWrapper> {\n    return this.client.post<ItemRatingV2ResponseWrapper>(\n      'https://seller-analytics-api.wildberries.ru/api/analytics/v2/item-rating',\n      data,\n      { rateLimitKey: 'analytics.itemRatingV2' }\n    );\n  }\n\n  /**\n   * Get item rating with feedback distribution.\n   *\n   * Returns the seller rating, a feedback-increase summary (total + per-star 1-5\n   * with optional dynamics vs. the previous period), and a per-item breakdown\n   * of feedback counts and star distribution.\n   *\n   * Rate limit: 3 requests per minute, 20s interval, burst 3.\n   *\n   * @param data - Request parameters. `currentPeriod`, `orderBy`, and `offset` are required.\n   * Pass `pastPeriod` to enable compare mode (yields `dynamics` fields in the response).\n   * @param data.currentPeriod - Current period (`start`/`end` as `YYYY-MM-DD`).\n   * @param data.pastPeriod - Previous period for comparison (optional — compare mode).\n   * @param data.nmIds - WB item numbers filter (max 50).\n   * @param data.subjectIds - Subcategory IDs filter (max 50).\n   * @param data.brandNames - Brand names filter (max 50).\n   * @param data.tagIds - Label IDs filter (max 50).\n   * @param data.isNotIncludeNMsWithoutSales - Exclude items without sales (default `false`).\n   * @param data.orderBy - Sorting parameters (`field` + `mode`).\n   * @param data.limit - Items per response (default 100, max 1000).\n   * @param data.offset - Skip N results for pagination (required).\n   * @returns Seller rating, feedback-increase summary, and per-item array.\n   * @throws {AuthenticationError} When API key is invalid (401/403)\n   * @throws {RateLimitError} When rate limit exceeded (429)\n   * @throws {ValidationError} When request data is invalid (400/422)\n   * @throws {NetworkError} When network request fails or times out\n   * @deprecated Scheduled for removal by Wildberries on 2026-07-30. Use\n   * {@link AnalyticsModule.getItemRatingV2}; note the v2 response uses `items`\n   * instead of `cards` and the no-sales filter is `isNotIncludeNmsWithoutSales`.\n   * @since 3.16.0\n   * @see {@link https://dev.wildberries.ru/docs/openapi/analytics#tag/Ocenka-tovara/operation/postV1ItemRating}\n   * @example\n   * ```typescript\n   * // Period mode (single period, no dynamics)\n   * const rating = await sdk.analytics.getItemRating({\n   *   currentPeriod: { start: '2026-02-10', end: '2026-02-10' },\n   *   orderBy: { field: 'feedbackCount', mode: 'desc' },\n   *   offset: 0,\n   *   limit: 100,\n   * });\n   * console.log(rating.data.sellerRating.current); // e.g. 3.56\n   *\n   * // Compare mode (current + past period — yields `dynamics` fields)\n   * const compared = await sdk.analytics.getItemRating({\n   *   currentPeriod: { start: '2026-02-10', end: '2026-02-10' },\n   *   pastPeriod: { start: '2026-02-08', end: '2026-02-08' },\n   *   nmIds: [162579635, 166699779],\n   *   orderBy: { field: 'fiveStar', mode: 'desc' },\n   *   offset: 0,\n   * });\n   * console.log(compared.data.feedbackIncrease.fiveStar.dynamics); // % change vs past period\n   * ```\n   */\n  async getItemRating(data: ItemRatingRequest): Promise<ItemRatingResponseWrapper> {\n    return this.client.post<ItemRatingResponseWrapper>(\n      'https://seller-analytics-api.wildberries.ru/api/analytics/v1/item-rating',\n      data,\n      { rateLimitKey: 'analytics.itemRating' }\n    );\n  }\n}\n// Re-export all analytics types from the subpath import 'daytona-wildberries-typescript-sdk/analytics'.\n// Without these, consumers can import the module class but cannot access type definitions.\n// Caught by DX integration test for v3.6.0; generated as explicit list because `export type *`\n// did not propagate through the build chain in v3.6.1.\n// @since v3.6.1\nexport type {\n  MainRequest,\n  MainResponse,\n  CommonInfo,\n  PositionInfo,\n  SearchReportPositionChartItem,\n  SearchReportPositionClusters,\n  VisibilityInfo,\n  TableGroupItem,\n  TableProductItem,\n  TableGroupRequest,\n  TableGroupResponse,\n  TableDetailsRequest,\n  TableDetailsResponse,\n  ProductSearchTextsRequest,\n  ProductSearchTextsResponse,\n  TableSearchTextItem,\n  ProductOrdersRequest,\n  ProductOrdersResponse,\n  ProductOrdersTextItem,\n  ProductOrdersMetrics,\n  PositionCluster,\n  OrderBy,\n  OrderByMainAndDetails,\n  OrderByGrTe,\n  TextLimit,\n  StandardTariff,\n  AdvancedTariff,\n  Date,\n  PeriodOrdersRequest,\n  Period,\n  PastPeriod,\n  CommonResponseProperties,\n  ErrorObject400,\n  ErrorObject403,\n  ErrorObject,\n  ResponseError,\n  SalesFunnelProductReq,\n  SalesFunnelGroupReq,\n  SearchReportGroupReq,\n  SearchReportProductReq,\n  SearchReportTextReq,\n  StocksReportReq,\n  InventoryHistoryReportReq,\n  NmReportRetryReportRequest,\n  NmReportCreateReportResponse,\n  NmReportGetReportsResponse,\n  NmReportRetryReportResponse,\n  Response429Download,\n  Response429DownloadDaily,\n  TableGroupRequestSt,\n  CommonReportFilters,\n  PeriodSt,\n  StockType,\n  AvailabilityFilters,\n  TableOrderBy,\n  TableGroupField,\n  OrderByMode,\n  TableGroupResponseSt,\n  TableGroups,\n  TableGroupItemSt,\n  TableCommonMetrics,\n  FloatGraphByPeriodItem,\n  TableProductItemSt,\n  TableProductRequest,\n  CommonProductFilters,\n  TableProductResponse,\n  TableSizeRequest,\n  CommonSizeFilters,\n  TableSizeResponse,\n  TableOfficeItem,\n  TableShippingOfficeRequest,\n  CommonShippingOfficeFilters,\n  TableShippingOfficeResponse,\n  TableShippingOfficeItem,\n  TableShippingOfficeMetrics,\n  DatePeriod,\n  AggregationLevel,\n  SalesFunnelOrderBy,\n  SalesFunnelTag,\n  SalesFunnelTimeToReady,\n  SalesFunnelConversions,\n  SalesFunnelWbClubMetrics,\n  SalesFunnelWbClubMetricsDynamic,\n  SalesFunnelProductsRequest,\n  SalesFunnelProductsHistoryRequest,\n  SalesFunnelGroupedHistoryRequest,\n  SalesFunnelProduct,\n  SalesFunnelHistoryProduct,\n  SalesFunnelStatistic,\n  SalesFunnelComparison,\n  SalesFunnelStatistics,\n  SalesFunnelHistory,\n  SalesFunnelProductsResponse,\n  SalesFunnelProductsHistoryResponse,\n  SalesFunnelGroupedHistoryResponse,\n  WbWarehousesStockRequest,\n  WbWarehouseStockItem,\n  WbWarehousesStockResponse,\n  ItemRatingRequest,\n  ItemRatingResponse,\n  ItemRatingResponseWrapper,\n  ItemRatingV2Request,\n  ItemRatingV2Response,\n  ItemRatingV2ResponseWrapper,\n  DistributionTableItemV2,\n  DistributionFeedbackRatingV2,\n  PeriodItemRating,\n  PastPeriodItemRating,\n  OrderByItemRating,\n  ItemRatingOrderByField,\n  ItemRatingOrderByMode,\n  TableItemFloat,\n  FeedbacksIncreaseItem,\n  ItemRatingStarMetric,\n  DistributionTableItem,\n  TableItemBaseCommon,\n  DistributionTableIndicators,\n  DistributionTableIndicator,\n  DistributionFeedbackRating,\n} from '../../types/analytics.types';\n"],"names":["AnalyticsModule","client","options","data","downloadId"],"mappings":"gFAoDO,MAAMA,CAAgB,CAC3B,YAAoBC,EAAoB,CAApB,KAAA,OAAAA,CAAqB,CAoBzC,MAAM,qBAAqBC,EAEa,CACtC,OAAO,KAAK,OAAO,IACjB,yEACA,CAAE,OAAQA,EAAS,aAAc,6BAAA,CAA8B,CAEnE,CAwBA,MAAM,uBACJC,EAQuC,CACvC,OAAO,KAAK,OAAO,KACjB,yEACAA,EACA,CAAE,aAAc,iCAAA,CAAkC,CAEtD,CAqBA,MAAM,qBACJA,EACsC,CACtC,OAAO,KAAK,OAAO,KACjB,+EACAA,EACA,CAAE,aAAc,sCAAA,CAAuC,CAE3D,CAsBA,MAAM,iBAAiBC,EAA0C,CAC/D,OAAO,KAAK,OAAO,IACjB,+EAA+EA,CAAU,GACzF,CAAE,aAAc,iCAAA,CAAkC,CAEtD,CAqBA,MAAM,yBACJD,EAC4D,CAC5D,OAAO,KAAK,OAAO,KACjB,0EACAA,EACA,CAAE,aAAc,kCAAA,CAAmC,CAEvD,CAsBA,MAAM,iBACJA,EACkE,CAClE,OAAO,KAAK,OAAO,KACjB,gFACAA,EACA,CAAE,aAAc,uCAAA,CAAwC,CAE5D,CAsBA,MAAM,kBACJA,EACoE,CACpE,OAAO,KAAK,OAAO,KACjB,iFACAA,EACA,CAAE,aAAc,wCAAA,CAAyC,CAE7D,CAqBA,MAAM,wBACJA,EAC0E,CAC1E,OAAO,KAAK,OAAO,KACjB,wFACAA,EACA,CAAE,aAAc,8CAAA,CAA+C,CAEnE,CAoBA,MAAM,mBACJA,EACqE,CACrE,OAAO,KAAK,OAAO,KACjB,kFACAA,EACA,CAAE,aAAc,yCAAA,CAA0C,CAE9D,CAqBA,MAAM,oBAAoBA,EAAoE,CAC5F,OAAO,KAAK,OAAO,KACjB,mFACAA,EACA,CAAE,aAAc,0CAAA,CAA2C,CAE/D,CAqBA,MAAM,sBAAsBA,EAAoE,CAC9F,OAAO,KAAK,OAAO,KACjB,qFACAA,EACA,CAAE,aAAc,4CAAA,CAA6C,CAEjE,CAsBA,MAAM,mBAAmBA,EAA8D,CACrF,OAAO,KAAK,OAAO,KACjB,kFACAA,EACA,CAAE,aAAc,yCAAA,CAA0C,CAE9D,CAqBA,MAAM,yBACJA,EACgD,CAChD,OAAO,KAAK,OAAO,KACjB,2EACAA,EACA,CAAE,aAAc,mCAAA,CAAoC,CAExD,CA4BA,MAAM,uBACJA,EACsC,CACtC,OAAO,KAAK,OAAO,KACjB,qFACAA,EACA,CAAE,aAAc,mCAAA,CAAoC,CAExD,CAwBA,MAAM,8BACJA,EAC6C,CAC7C,OAAO,KAAK,OAAO,KACjB,6FACAA,EACA,CAAE,aAAc,0CAAA,CAA2C,CAE/D,CAuBA,MAAM,6BACJA,EAC4C,CAC5C,OAAO,KAAK,OAAO,KACjB,4FACAA,EACA,CAAE,aAAc,yCAAA,CAA0C,CAE9D,CAgDA,MAAM,qBAAqBA,EAAqE,CAC9F,OAAO,KAAK,OAAO,KACjB,2FACAA,GAAQ,CAAA,EACR,CAAE,aAAc,wCAAA,CAAyC,CAE7D,CA8BA,MAAM,gBAAgBA,EAAiE,CACrF,OAAO,KAAK,OAAO,KACjB,2EACAA,EACA,CAAE,aAAc,wBAAA,CAAyB,CAE7C,CAuDA,MAAM,cAAcA,EAA6D,CAC/E,OAAO,KAAK,OAAO,KACjB,2EACAA,EACA,CAAE,aAAc,sBAAA,CAAuB,CAE3C,CACF"}