{"version":3,"file":"index.cjs","sources":["../../../../src/modules/reports/index.ts"],"sourcesContent":["/**\n * Auto-generated module\n * Generated from: wildberries_api_doc/12-reports.yaml\n * DO NOT EDIT MANUALLY - Changes will be overwritten on next generation\n */\n\nimport { BaseClient } from '../../client/base-client';\nimport type {\n  AcceptanceReportDownloadItem,\n  AntifraudDetailsResponse,\n  BannedProductsBlockedResponse,\n  BannedProductsShadowedResponse,\n  BrandShareBrandsResponse,\n  BrandShareParentSubjectsResponse,\n  BrandShareResponse,\n  CreateTaskResponse,\n  DeductionsParams,\n  DeductionsResponse,\n  ExciseReportRequest,\n  ExciseReportResponse,\n  GetTasksResponse,\n  GoodsLabelingResponse,\n  GoodsReturnResponse,\n  MeasurementPenaltiesParams,\n  MeasurementPenaltiesResponse,\n  OrdersItem,\n  RegionSaleResponse,\n  ResponsePaidStorage,\n  SalesItem,\n  StocksItem,\n  WarehouseMeasurementsV2Params,\n  WarehouseMeasurementsV2Response,\n  WarehouseRemainsDownloadItem,\n} from '../../types/reports.types';\n\nexport class ReportsModule {\n  constructor(private client: BaseClient) {}\n\n  /**\n   * Склады\n   *\n   * Метод возвращает количество остатков товаров на складах WB.<br>Данные обновляются раз в 30 минут. <br><br> Для одного ответа в системе установлено условное ограничение 60000 строк. Поэтому, чтобы получить все остатки, может потребоваться более, чем один запрос. Во втором и далее запросе в параметре `dateFrom` используйте полное значение поля `lastChangeDate` из последней строки ответа на предыдущий запрос.<br> Если в ответе отдаётся пустой массив `[]`, все остатки уже выгружены. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 минута | 1 запрос | 1 минута | 1 запрос | </div>\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   * @example\n   * const result = await sdk.reports.getSupplierStocks({});\n   * console.log(result);\n   */\n  async getSupplierStocks(options?: { dateFrom: string }): Promise<StocksItem[]> {\n    return this.client.get<StocksItem[]>(\n      'https://statistics-api.wildberries.ru/api/v1/supplier/stocks',\n      { params: options, rateLimitKey: 'reports.supplierStocks' }\n    );\n  }\n\n  /**\n   * Заказы\n   *\n   * Метод возвращает информацию обо всех заказах.<br>Данные обновляются раз в 30 минут.<br><br> 1 строка = 1 заказ = 1 cборочное задание = 1 единица товара.<br>Для определения заказа рекомендуем использовать поле `srid`.<br><br> Информация о заказе хранится 90 дней с момента оформления.<br><br> Для одного ответа на запрос с `flag=0` или без `flag` в системе установлено условное ограничение 80000 строк. Поэтому, чтобы получить все заказы, может потребоваться более, чем один запрос. Во втором и далее запросе в параметре `dateFrom` используйте полное значение поля `lastChangeDate` из последней строки ответа на предыдущий запрос.<br> Если в ответе отдаётся пустой массив `[]`, все заказы уже выгружены. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 минута | 1 запрос | 1 минута | 1 запрос | </div>\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   * @example\n   * const result = await sdk.reports.getSupplierOrders({});\n   * console.log(result);\n   */\n  async getSupplierOrders(options?: { dateFrom: string; flag?: number }): Promise<OrdersItem[]> {\n    return this.client.get<OrdersItem[]>(\n      'https://statistics-api.wildberries.ru/api/v1/supplier/orders',\n      { params: options, rateLimitKey: 'reports.supplierOrders' }\n    );\n  }\n\n  /**\n   * Продажи\n   *\n   * Метод возвращает информацию о продажах и возвратах.<br>Данные обновляются раз в 30 минут.<br><br> 1 строка = 1 заказ = 1 cборочное задание = 1 единица товара.<br>Для определения заказа рекомендуем использовать поле `srid`.<br><br> Информация о заказе хранится 90 дней с момента оформления.<br><br> Для одного ответа на запрос с `flag=0` или без `flag` в системе установлено условное ограничение 80000 строк. Поэтому, чтобы получить все продажи и возвраты, может потребоваться более, чем один запрос. Во втором и далее запросе в параметре `dateFrom `используйте полное значение поля `lastChangeDate` из последней строки ответа на предыдущий запрос.<br> Если в ответе отдаётся пустой массив `[]`, все продажи и возвраты уже выгружены. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 минута | 1 запрос | 1 минута | 1 запрос | </div>\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   * @example\n   * const result = await sdk.reports.getSupplierSales({});\n   * console.log(result);\n   */\n  async getSupplierSales(options?: { dateFrom: string; flag?: number }): Promise<SalesItem[]> {\n    return this.client.get<SalesItem[]>(\n      'https://statistics-api.wildberries.ru/api/v1/supplier/sales',\n      { params: options, rateLimitKey: 'reports.supplierSales' }\n    );\n  }\n\n  /**\n   * Получить отчёт\n   *\n   * Метод возвращает отчёт с [операциями по товарам с обязательной маркировкой](https://seller.wildberries.ru/analytics-reports/excise-report).<br><br> Данный отчёт можно сохранить в [формате таблиц](https://dev.wildberries.ru/cases/1). <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 5 часов | 10 запросов | 30 минут | 10 запросов | </div>\n   *\n   * @param [options] - Query parameters\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   * @example\n   * const result = await sdk.reports.createAnalyticsExciseReport({}, {});\n   * console.log(result);\n   */\n  async createAnalyticsExciseReport(\n    options?: { dateFrom: string; dateTo: string },\n    data?: ExciseReportRequest\n  ): Promise<ExciseReportResponse> {\n    return this.client.post<ExciseReportResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/analytics/excise-report',\n      data,\n      { params: options, rateLimitKey: 'reports.postAnalyticsExciseReport' }\n    );\n  }\n\n  /**\n   * Создать отчёт\n   *\n   * Метод создаёт [задание на генерацию](/openapi/reports#tag/Otchyot-ob-ostatkah-na-skladah/paths/~1api~1v1~1warehouse_remains~1tasks~1%7Btask_id%7D~1status/get) отчёта об [остатках на складах WB](/openapi/reports#tag/Otchyot-ob-ostatkah-na-skladah/paths/~1api~1v1~1warehouse_remains~1tasks~1%7Btask_id%7D~1download/get).<br><br> Параметры `groupBy` и `filter` (группировки и фильтры) можно задать в любой комбинации — аналогично [версии](https://seller.wildberries.ru/analytics-reports/warehouse-remains) в личном кабинете. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 минута | 1 запрос | 1 минута | 5 запросов | </div>\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   * @example\n   * const result = await sdk.reports.warehouseRemains({});\n   * console.log(result);\n   */\n  async warehouseRemains(options?: {\n    locale?: string;\n    groupByBrand?: boolean;\n    groupBySubject?: boolean;\n    groupBySa?: boolean;\n    groupByNm?: boolean;\n    groupByBarcode?: boolean;\n    groupBySize?: boolean;\n    filterPics?: number;\n    filterVolume?: number;\n  }): Promise<CreateTaskResponse> {\n    return this.client.get<CreateTaskResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/warehouse_remains',\n      { params: options, rateLimitKey: 'reports.warehouse_remains' }\n    );\n  }\n\n  /**\n   * Проверить статус задания на генерацию отчёта об остатках на складах WB\n   *\n   * @param task_id - ID задания на генерацию\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   * @example\n   * const result = await sdk.reports.getWarehouseRemainsTaskStatus('task-uuid');\n   * console.log(result.data?.status);\n   */\n  async getWarehouseRemainsTaskStatus(task_id: string): Promise<GetTasksResponse> {\n    return this.client.get<GetTasksResponse>(\n      `https://seller-analytics-api.wildberries.ru/api/v1/warehouse_remains/tasks/${task_id}/status`,\n      { rateLimitKey: 'reports.warehouse_remainsTasksStatus' }\n    );\n  }\n\n  /**\n   * Получить отчёт об остатках на складах WB\n   *\n   * @param task_id - ID задания на генерацию\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   * @example\n   * const result = await sdk.reports.downloadWarehouseRemainsReport('task-uuid');\n   * console.log(result);\n   */\n  async downloadWarehouseRemainsReport(task_id: string): Promise<WarehouseRemainsDownloadItem[]> {\n    return this.client.get<WarehouseRemainsDownloadItem[]>(\n      `https://seller-analytics-api.wildberries.ru/api/v1/warehouse_remains/tasks/${task_id}/download`,\n      { rateLimitKey: 'reports.warehouse_remainsTasksDownload' }\n    );\n  }\n\n  /**\n   * Самовыкупы\n   *\n   * Метод возвращает отчёт об удержаниях за самовыкупы. Отчёт формируется каждую неделю по средам, до 7:00 по московскому времени, и содержит данные за одну неделю.<br><br> Удержание за самовыкуп — 30% от стоимости товаров.<br>Минимальная сумма всех удержаний — 100 000 ₽, если за неделю в ПВЗ привезли ваших товаров больше, чем на сумму 100 000 ₽.<br><br> Данные доступны с августа 2023. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 100 минут | 10 запросов | 10 минут | 10 запросов | </div>\n   *\n   * @param [options] - Query parameters\n   * @returns Response data\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   * @example\n   * const result = await sdk.reports.getAnalyticsAntifraudDetails({});\n   * console.log(result);\n   */\n  async getAnalyticsAntifraudDetails(options?: {\n    date?: string;\n  }): Promise<AntifraudDetailsResponse> {\n    return this.client.get<AntifraudDetailsResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/analytics/antifraud-details',\n      { params: options, rateLimitKey: 'reports.analyticsAntifraudDetails' }\n    );\n  }\n\n  /**\n   * Маркировка товара\n   *\n   * Метод возвращает отчёт о штрафах за отсутствие обязательной маркировки товаров.<br> В отчёте представлены фотографии товаров, на которых маркировка отсутствует либо не считывается.<br><br> Можно получить данные максимум за 31 день. Данные доступны с марта 2024. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 10 минут | 10 запросов | 1 минута | 10 запросов | </div>\n   *\n   * @param [options] - Query parameters\n   * @returns Response data\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   * @example\n   * const result = await sdk.reports.getAnalyticsGoodsLabeling({});\n   * console.log(result);\n   */\n  async getAnalyticsGoodsLabeling(options?: {\n    dateFrom: string;\n    dateTo: string;\n  }): Promise<GoodsLabelingResponse> {\n    return this.client.get<GoodsLabelingResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/analytics/goods-labeling',\n      { params: options, rateLimitKey: 'reports.analyticsGoodsLabeling' }\n    );\n  }\n\n  /**\n   * Создать отчёт\n   *\n   * Метод создаёт [задание на генерацию](/openapi/reports#tag/Platnaya-priyomka/paths/~1api~1v1~1acceptance_report~1tasks~1%7Btask_id%7D~1status/get) отчёта о [платной приёмке](/openapi/reports#tag/Platnaya-priyomka/paths/~1api~1v1~1acceptance_report~1tasks~1%7Btask_id%7D~1download/get).<br><br> Можно получить отчёт максимум за 31 день. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 минута | 1 запрос | 1 минута | 1 запрос | </div>\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   * @example\n   * const result = await sdk.reports.acceptanceReport({});\n   * console.log(result);\n   */\n  async acceptanceReport(options?: {\n    dateFrom: string;\n    dateTo: string;\n  }): Promise<CreateTaskResponse> {\n    return this.client.get<CreateTaskResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/acceptance_report',\n      { params: options, rateLimitKey: 'reports.acceptance_report' }\n    );\n  }\n\n  /**\n   * Проверить статус задания на генерацию отчёта о платной приёмке\n   *\n   * @param task_id - ID задания на генерацию\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   * @example\n   * const result = await sdk.reports.getAcceptanceReportTaskStatus('task-uuid');\n   * console.log(result.data?.status);\n   */\n  async getAcceptanceReportTaskStatus(task_id: string): Promise<GetTasksResponse> {\n    return this.client.get<GetTasksResponse>(\n      `https://seller-analytics-api.wildberries.ru/api/v1/acceptance_report/tasks/${task_id}/status`,\n      { rateLimitKey: 'reports.acceptance_reportTasksStatus' }\n    );\n  }\n\n  /**\n   * Получить отчёт о платной приёмке\n   *\n   * @param task_id - ID задания на генерацию\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   * @example\n   * const result = await sdk.reports.downloadAcceptanceReport('task-uuid');\n   * console.log(result);\n   */\n  async downloadAcceptanceReport(task_id: string): Promise<AcceptanceReportDownloadItem[]> {\n    return this.client.get<AcceptanceReportDownloadItem[]>(\n      `https://seller-analytics-api.wildberries.ru/api/v1/acceptance_report/tasks/${task_id}/download`,\n      { rateLimitKey: 'reports.acceptance_reportTasksDownload' }\n    );\n  }\n\n  /**\n   * Создать отчёт\n   *\n   * Метод создаёт [задание на генерацию](/openapi/reports#tag/Platnoe-hranenie/paths/~1api~1v1~1paid_storage~1tasks~1%7Btask_id%7D~1status/get) отчёта о [платном хранении](/openapi/reports#tag/Platnoe-hranenie/paths/~1api~1v1~1paid_storage~1tasks~1%7Btask_id%7D~1download/get).<br><br> Можно получить отчёт максимум за 8 дней. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 минута | 1 запрос | 1 минута | 5 запросов | </div>\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   * @example\n   * const result = await sdk.reports.paidStorage({});\n   * console.log(result);\n   */\n  async paidStorage(options?: { dateFrom: string; dateTo: string }): Promise<CreateTaskResponse> {\n    return this.client.get<CreateTaskResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/paid_storage',\n      { params: options, rateLimitKey: 'reports.paid_storage' }\n    );\n  }\n\n  /**\n   * Проверить статус задания на генерацию отчёта о платном хранении\n   *\n   * @param task_id - ID задания на генерацию\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   * @example\n   * const result = await sdk.reports.getPaidStorageTaskStatus('task-uuid');\n   * console.log(result.data?.status);\n   */\n  async getPaidStorageTaskStatus(task_id: string): Promise<GetTasksResponse> {\n    return this.client.get<GetTasksResponse>(\n      `https://seller-analytics-api.wildberries.ru/api/v1/paid_storage/tasks/${task_id}/status`,\n      { rateLimitKey: 'reports.paid_storageTasksStatus' }\n    );\n  }\n\n  /**\n   * Получить отчёт о платном хранении\n   *\n   * @param task_id - ID задания на генерацию\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   * @example\n   * const result = await sdk.reports.downloadPaidStorageReport('task-uuid');\n   * console.log(result);\n   */\n  async downloadPaidStorageReport(task_id: string): Promise<ResponsePaidStorage> {\n    return this.client.get<ResponsePaidStorage>(\n      `https://seller-analytics-api.wildberries.ru/api/v1/paid_storage/tasks/${task_id}/download`,\n      { rateLimitKey: 'reports.paid_storageTasksDownload' }\n    );\n  }\n\n  /**\n   * Получить отчёт\n   *\n   * Метод возвращает отчёт с [данными продаж, сгруппированных по регионам стран](https://seller.wildberries.ru/analytics-reports/region-sale).<br><br> Можно получить отчёт максимум за 31 день. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 10 секунд | 1 запрос | 10 секунд | 5 запросов | </div>\n   *\n   * @param [options] - Query parameters\n   * @returns Response data\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   * @example\n   * const result = await sdk.reports.getAnalyticsRegionSale({});\n   * console.log(result);\n   */\n  async getAnalyticsRegionSale(options?: {\n    dateFrom: string;\n    dateTo: string;\n  }): Promise<RegionSaleResponse> {\n    return this.client.get<RegionSaleResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/analytics/region-sale',\n      { params: options, rateLimitKey: 'reports.analyticsRegionSale' }\n    );\n  }\n\n  /**\n   * Бренды продавца\n   *\n   * Метод возвращает список брендов продавца для отчёта о [доле бренда в продажах](https://seller.wildberries.ru/analytics-reports/brand-share). <br><br> Можно получить только бренды, которые: - Продавались за последние 90 дней. - Есть на складе WB. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 минута | 1 запрос | 1 минута | 10 запросов | </div>\n   *\n   * @returns Response data\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   * @example\n   * const result = await sdk.reports.getBrandShareBrands();\n   * console.log(result);\n   */\n  async getBrandShareBrands(): Promise<BrandShareBrandsResponse> {\n    return this.client.get<BrandShareBrandsResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/analytics/brand-share/brands',\n      { rateLimitKey: 'reports.analyticsBrandShareBrands' }\n    );\n  }\n\n  /**\n   * Родительские категории бренда\n   *\n   * Метод возвращает родительские категории бренда продавца для отчёта о [доле бренда в продажах](https://seller.wildberries.ru/analytics-reports/brand-share).<br><br> Можно получить отчёт максимум за 365 дней. Данные доступны с 1 ноября 2022. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 5 секунд | 1 запрос | 5 секунд | 20 запросов | </div>\n   *\n   * @param [options] - Query parameters\n   * @returns Response data\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   * @example\n   * const result = await sdk.reports.getBrandShareParentSubjects({});\n   * console.log(result);\n   */\n  async getBrandShareParentSubjects(options?: {\n    locale?: string;\n    brand: string;\n    dateFrom: string;\n    dateTo: string;\n  }): Promise<BrandShareParentSubjectsResponse> {\n    return this.client.get<BrandShareParentSubjectsResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/analytics/brand-share/parent-subjects',\n      { params: options, rateLimitKey: 'reports.analyticsBrandShareParentSubjects' }\n    );\n  }\n\n  /**\n   * Получить отчёт\n   *\n   * Метод возвращает отчёт о [доле бренда продавца в продажах](https://seller.wildberries.ru/analytics-reports/brand-share). <br><br> Можно получить отчёт максимум за 365 дней. Данные доступны с 1 ноября 2022. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 5 секунд | 1 запрос | 5 секунд | 20 запросов | </div>\n   *\n   * @param [options] - Query parameters\n   * @returns Response data\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   * @example\n   * const result = await sdk.reports.getAnalyticsBrandShare({});\n   * console.log(result);\n   */\n  async getAnalyticsBrandShare(options?: {\n    parentId: number;\n    brand: string;\n    dateFrom: string;\n    dateTo: string;\n  }): Promise<BrandShareResponse> {\n    return this.client.get<BrandShareResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/analytics/brand-share',\n      { params: options, rateLimitKey: 'reports.analyticsBrandShare' }\n    );\n  }\n\n  /**\n   * Заблокированные карточки\n   *\n   * Метод возвращает список [заблокированных карточек товаров продавца](https://seller.wildberries.ru/analytics-reports/banned-products) с причинами блокировки. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 10 секунд | 1 запрос | 10 секунд | 6 запросов | </div>\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   * @example\n   * const result = await sdk.reports.getBannedProductsBlocked({});\n   * console.log(result);\n   */\n  async getBannedProductsBlocked(options?: {\n    sort: 'brand' | 'nmId' | 'title' | 'vendorCode' | 'reason';\n    order: 'desc' | 'asc';\n  }): Promise<BannedProductsBlockedResponse> {\n    return this.client.get<BannedProductsBlockedResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/analytics/banned-products/blocked',\n      { params: options, rateLimitKey: 'reports.analyticsBannedProductsBlocked' }\n    );\n  }\n\n  /**\n   * Скрытые из каталога\n   *\n   * Метод возвращает список [товаров продавца, скрытых из каталога](https://seller.wildberries.ru/analytics-reports/banned-products/shadowed). <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 10 секунд | 1 запрос | 10 секунд | 6 запросов | </div>\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   * @deprecated Scheduled for removal by Wildberries on 2026-07-30. Use\n   * `sdk.analytics.getItemRatingV2({ onlyShadowedNms: true, ... })` instead;\n   * v2 returns catalog visibility in `data.items[].isShadowed`.\n   * @example\n   * const result = await sdk.reports.getBannedProductsShadowed({});\n   * console.log(result);\n   */\n  async getBannedProductsShadowed(options?: {\n    sort: 'brand' | 'nmId' | 'title' | 'vendorCode' | 'nmRating';\n    order: 'desc' | 'asc';\n  }): Promise<BannedProductsShadowedResponse> {\n    return this.client.get<BannedProductsShadowedResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/analytics/banned-products/shadowed',\n      { params: options, rateLimitKey: 'reports.analyticsBannedProductsShadowed' }\n    );\n  }\n\n  /**\n   * Получить отчёт\n   *\n   * Метод возвращает отчёт о [возвратах товаров продавцу](https://seller.wildberries.ru/analytics-reports/goods-return). <br><br> Можно получить отчёт максимум за 31 день. <div class=\"description_limit\"> <a href=\"/openapi/api-information#tag/Vvedenie/Limity-zaprosov\">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 минута | 1 запрос | 1 минута | 10 запросов | </div>\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   * @example\n   * const result = await sdk.reports.getAnalyticsGoodsReturn({});\n   * console.log(result);\n   */\n  async getAnalyticsGoodsReturn(options?: {\n    dateFrom: string;\n    dateTo: string;\n  }): Promise<GoodsReturnResponse> {\n    return this.client.get<GoodsReturnResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/v1/analytics/goods-return',\n      { params: options, rateLimitKey: 'reports.analyticsGoodsReturn' }\n    );\n  }\n\n  // ==========================================================================\n  // New Deduction Endpoints - EPIC 44\n  // ==========================================================================\n\n  /**\n   * Занижение габаритов упаковки (штрафы)\n   *\n   * Метод возвращает отчёт об удержаниях за занижение габаритов упаковки.\n   *\n   * Rate limit: 1 req/min, 1 min interval, burst 1\n   *\n   * @param options - Query parameters\n   * @param options.dateFrom - Start of reporting period (ISO 8601)\n   * @param options.dateTo - End of reporting period (ISO 8601, required)\n   * @param options.limit - Number of items in response (max 1000, required)\n   * @param options.offset - Number of items to skip (default 0)\n   * @returns Penalty reports with total count\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 EPIC 44 - New endpoint replacing tab=penalty on old warehouse-measurements\n   * @example\n   * const result = await sdk.reports.getMeasurementPenalties({\n   *   dateTo: '2026-02-06',\n   *   limit: 100\n   * });\n   * console.log(result.data?.reports);\n   */\n  async getMeasurementPenalties(\n    options: MeasurementPenaltiesParams\n  ): Promise<MeasurementPenaltiesResponse> {\n    return this.client.get<MeasurementPenaltiesResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/analytics/v1/measurement-penalties',\n      { params: options, rateLimitKey: 'reports.measurementPenalties' }\n    );\n  }\n\n  /**\n   * Замеры склада\n   *\n   * Метод возвращает отчёт о замерах склада.\n   *\n   * Rate limit: 1 req/min, 1 min interval, burst 1\n   *\n   * @param options - Query parameters\n   * @param options.dateFrom - Start of reporting period (ISO 8601)\n   * @param options.dateTo - End of reporting period (ISO 8601, required)\n   * @param options.limit - Number of items in response (max 1000, required)\n   * @param options.offset - Number of items to skip (default 0)\n   * @returns Measurement reports with total count\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 EPIC 44 - New endpoint replacing tab=measurement on old warehouse-measurements\n   * @example\n   * const result = await sdk.reports.getWarehouseMeasurementsV2({\n   *   dateTo: '2026-02-06',\n   *   limit: 100\n   * });\n   * console.log(result.data?.reports);\n   */\n  async getWarehouseMeasurementsV2(\n    options: WarehouseMeasurementsV2Params\n  ): Promise<WarehouseMeasurementsV2Response> {\n    return this.client.get<WarehouseMeasurementsV2Response>(\n      'https://seller-analytics-api.wildberries.ru/api/analytics/v1/warehouse-measurements',\n      { params: options, rateLimitKey: 'reports.warehouseMeasurementsV2' }\n    );\n  }\n\n  /**\n   * Удержания за подмену и некорректные вложения\n   *\n   * Метод возвращает отчёт об удержаниях за подмену товара и некорректные вложения.\n   * Заменяет удалённый endpoint /api/v1/analytics/incorrect-attachments.\n   *\n   * Rate limit: 1 req/min, 1 min interval, burst 1\n   *\n   * @param options - Query parameters\n   * @param options.dateFrom - Start of reporting period (ISO 8601)\n   * @param options.dateTo - End of reporting period (ISO 8601, required)\n   * @param options.sort - Sort field: nmId, dtBonus, bonusSumm (default: dtBonus)\n   * @param options.order - Sort order: desc, asc (default: desc)\n   * @param options.limit - Number of items in response (max 1000, required)\n   * @param options.offset - Number of items to skip (default 0)\n   * @returns Deduction reports with total count\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 EPIC 44 - New endpoint replacing removed incorrect-attachments\n   * @example\n   * const result = await sdk.reports.getDeductions({\n   *   dateTo: '2026-02-06',\n   *   limit: 100,\n   *   sort: 'dtBonus',\n   *   order: 'desc'\n   * });\n   * console.log(result.data?.reports);\n   */\n  async getDeductions(options: DeductionsParams): Promise<DeductionsResponse> {\n    return this.client.get<DeductionsResponse>(\n      'https://seller-analytics-api.wildberries.ru/api/analytics/v1/deductions',\n      { params: options, rateLimitKey: 'reports.deductions' }\n    );\n  }\n}\n// Re-export all reports types from the subpath import 'daytona-wildberries-typescript-sdk/reports'.\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  IncomesItem,\n  StocksItem,\n  OrdersItem,\n  SalesItem,\n  ResponseErrorStatistics,\n  ResponseErrorStatistics2,\n  ExciseReportRequest,\n  ExciseReportResponse,\n  ModelsExciseReportResponse,\n  ModelsExciseReportResponseData,\n  Penalty,\n  Measurement,\n  Response400Retentions,\n  Response403Retentions,\n  ResponsePaidStorage,\n  GetTasksResponse,\n  GetTasksResponseData,\n  CreateTaskResponse,\n  CreateTaskResponseData,\n  Response4xxResponse,\n  AntifraudDetailsItem,\n  AntifraudDetailsResponse,\n  GoodsLabelingItem,\n  GoodsLabelingResponse,\n  RegionSaleItem,\n  RegionSaleResponse,\n  BrandShareBrandsResponse,\n  BrandShareParentSubjectsItem,\n  BrandShareParentSubjectsResponse,\n  BrandShareItem,\n  BrandShareResponse,\n  WarehouseRemainsDownloadItem,\n  WarehouseQuantity,\n  AcceptanceReportDownloadItem,\n  BannedProductBlockedItem,\n  BannedProductsBlockedResponse,\n  BannedProductShadowedItem,\n  BannedProductsShadowedResponse,\n  GoodsReturnItem,\n  GoodsReturnResponse,\n  MeasurementPenaltiesParams,\n  WarehouseMeasurementsV2Params,\n  DeductionsParams,\n  DeductionItem,\n  DeductionsResponse,\n  MeasurementPenaltiesResponse,\n  WarehouseMeasurementsV2Response,\n} from '../../types/reports.types';\n"],"names":["ReportsModule","client","options","data","task_id"],"mappings":"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"}